# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4

PortSystem              1.0
PortGroup               legacysupport 1.1
PortGroup               openssl 1.0

# strndup
legacysupport.newest_darwin_requires_legacy 10

name                    strongswan
version                 6.0.7
revision                0
categories              net security
maintainers             {@barracuda156 macos-powerpc.org:barracuda} openmaintainer
license                 GPL-2+
description             strongSwan – IPsec-based VPN
long_description        {*}${description}
homepage                https://strongswan.org
master_sites            https://download.strongswan.org/
use_bzip2               yes
checksums               rmd160  44dcd810a024841c32a4d20613c757b54d59d52e \
                        sha256  e518e34e159514f4c6ba80d1f926cb151e0dd4e3a1d94213171234b8b9ae6f55 \
                        size    4939164

# https://github.com/strongswan/strongswan/issues/2958
patchfiles              kernel_pfkey.patch

use_autoreconf          yes

depends_build-append    port:bison \
                        port:gettext \
                        path:bin/pkg-config:pkgconfig
depends_lib-append      port:curl \
                        port:gettext-runtime

# implicit declaration of function '__builtin_bswap16' etc.
compiler.blacklist-append \
                        *gcc-4.* {clang < 421}

# Based on https://github.com/Homebrew/homebrew-core/blob/93448d6ae81277a158d0d8b449eb8803efab48a0/Formula/s/strongswan.rb
configure.args-append   --disable-defaults \
                        --enable-charon \
                        --enable-cmd \
                        --enable-constraints \
                        --enable-curl \
                        --enable-curve25519 \
                        --enable-eap-gtc \
                        --enable-eap-identity \
                        --enable-eap-md5 \
                        --enable-eap-mschapv2 \
                        --enable-eap-peap \
                        --enable-ikev1 \
                        --enable-ikev2 \
                        --enable-kdf \
                        --enable-kernel-pfkey \
                        --enable-nonce \
                        --enable-openssl \
                        --enable-pem \
                        --enable-pgp \
                        --enable-pkcs1 \
                        --enable-pkcs8 \
                        --enable-pkcs11 \
                        --enable-pki \
                        --enable-pubkey \
                        --enable-revocation \
                        --enable-socket-default \
                        --enable-sshkey \
                        --enable-stroke \
                        --enable-swanctl \
                        --enable-unity \
                        --enable-updown \
                        --enable-x509 \
                        --enable-xauth-generic

platform darwin {
    configure.args-append \
                        --disable-scripts \
                        --disable-kernel-netlink \
                        --enable-kernel-pfroute \
                        --enable-osx-attr

    variant libipsec description "Prefer userland IPsec implementation" {
        configure.args-replace \
                        --enable-kernel-pfkey --enable-kernel-libipsec
    }
}
