commit:     676b7b6f382d645edfc87517aa843ea2fd235858
Author:     Dennis Eisele <kernlpanic <AT> dennis-eisele <DOT> de>
AuthorDate: Sun Jan 18 15:45:37 2026 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Jan 19 01:01:40 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=676b7b6f

net-vpn/strongswan: add 6.0.4

Bug: https://bugs.gentoo.org/967603
Signed-off-by: Dennis Eisele <kernlpanic <AT> dennis-eisele.de>
Part-of: https://github.com/gentoo/gentoo/pull/45427
Closes: https://github.com/gentoo/gentoo/pull/45427
Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-vpn/strongswan/Manifest                |   1 +
 net-vpn/strongswan/strongswan-6.0.4.ebuild | 253 +++++++++++++++++++++++++++++
 2 files changed, 254 insertions(+)

diff --git a/net-vpn/strongswan/Manifest b/net-vpn/strongswan/Manifest
index a0d2bc5355da..9631422e068b 100644
--- a/net-vpn/strongswan/Manifest
+++ b/net-vpn/strongswan/Manifest
@@ -1 +1,2 @@
 DIST strongswan-6.0.3.tar.bz2 4877482 BLAKE2B 
355dff5de259e545b1bb5e24853dc91148c3d400b1977a2de35271e019dfc236c838ccac4552974a4999e2768900150c432753fc0d422444d4cc34486566e192
 SHA512 
d085add33b04c908b0dfb9fdcab5c39c68b499e266cd0d5599f9bebf5974a12f0c6197f2e8a4013bf579735a648dfaa20d28dfe4fae32f5bae713d8bb8aa7dab
+DIST strongswan-6.0.4.tar.bz2 4915290 BLAKE2B 
2291900bda3e679cb68f35e44fe20011d82b44e7a9ed3fd0ae7c40ed57154c5ecded1ab5bffc9ab30c93de667ef9b103a7da1a2b31d8e2eae97b268f0be11f01
 SHA512 
e8e3b6c2f0a24ec4cf8a173c496f6591a86a89395690d54edfa8db025ad52d6e7479f81371071fd847a84ee8fa5dcb627afb74f4be2607863d1604115d8987ec

diff --git a/net-vpn/strongswan/strongswan-6.0.4.ebuild 
b/net-vpn/strongswan/strongswan-6.0.4.ebuild
new file mode 100644
index 000000000000..bdcd86cb7e06
--- /dev/null
+++ b/net-vpn/strongswan/strongswan-6.0.4.ebuild
@@ -0,0 +1,253 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+inherit systemd
+
+DESCRIPTION="IPsec-based VPN solution, supporting IKEv1/IKEv2 and MOBIKE"
+HOMEPAGE="https://www.strongswan.org/";
+SRC_URI="https://download.strongswan.org/${P}.tar.bz2";
+
+LICENSE="GPL-2 RSA DES"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+IUSE="+caps curl +constraints debug dhcp eap farp gcrypt +gmp ldap mysql 
networkmanager +non-root +openssl selinux sqlite systemd pam pkcs11"
+
+STRONGSWAN_PLUGINS_STD="aes cmac curve25519 des dnskey drbg eap-radius 
fips-prf gcm hmac led lookip md5 nonce pem pgp
+pkcs1 pkcs7 pkcs8 pkcs12 pubkey random rc2 revocation sha1 sha2 sshkey 
systime-fix stroke unity vici x509 xcbc"
+STRONGSWAN_PLUGINS_OPT_DISABLE="kdf"
+STRONGSWAN_PLUGINS_OPT="acert af-alg agent addrblock aesni botan blowfish 
bypass-lan
+ccm chapoly connmark ctr error-notify forecast files gcm ha ipseckey md4 mgf1
+openxpki padlock rdrand save-keys sha3 soup test-vectors unbound whitelist 
xauth-noauth"
+
+for mod in $STRONGSWAN_PLUGINS_STD; do
+       IUSE="${IUSE} +strongswan_plugins_${mod}"
+done
+
+for mod in $STRONGSWAN_PLUGINS_OPT_DISABLE; do
+       IUSE="${IUSE} strongswan_plugins_${mod}"
+done
+
+for mod in $STRONGSWAN_PLUGINS_OPT; do
+       IUSE="${IUSE} strongswan_plugins_${mod}"
+done
+
+COMMON_DEPEND="
+       non-root? (
+               acct-user/ipsec
+               acct-group/ipsec
+       )
+       dev-libs/glib:2
+       gmp? ( >=dev-libs/gmp-4.1.5:= )
+       gcrypt? (
+               dev-libs/libgcrypt:=
+               dev-libs/libgpg-error
+       )
+       caps? ( sys-libs/libcap )
+       curl? ( net-misc/curl )
+       ldap? ( net-nds/openldap:= )
+       openssl? ( >=dev-libs/openssl-0.9.8:=[-bindist(-)] )
+       mysql? ( dev-db/mysql-connector-c:= )
+       sqlite? ( >=dev-db/sqlite-3.3.1:3 )
+       systemd? ( sys-apps/systemd )
+       networkmanager? ( net-misc/networkmanager )
+       pam? ( sys-libs/pam )
+       strongswan_plugins_botan? ( dev-libs/botan:3= )
+       strongswan_plugins_connmark? ( net-firewall/iptables:= )
+       strongswan_plugins_forecast? ( net-firewall/iptables:= )
+       strongswan_plugins_soup? ( net-libs/libsoup:3.0 )
+       strongswan_plugins_unbound? ( net-dns/unbound:= net-libs/ldns:= )
+"
+DEPEND="
+       ${COMMON_DEPEND}
+       virtual/linux-sources
+       sys-kernel/linux-headers
+"
+RDEPEND="
+       ${COMMON_DEPEND}
+       virtual/logger
+       sys-apps/iproute2
+       !net-vpn/libreswan
+       selinux? ( sec-policy/selinux-ipsec )
+"
+
+UGID="ipsec"
+
+src_configure() {
+       local myeconfargs=(
+               --disable-static
+               --enable-ikev1
+               --enable-ikev2
+               --enable-swanctl
+               --enable-socket-dynamic
+               --enable-cmd
+               $(use_enable curl)
+               $(use_enable constraints)
+               $(use_enable ldap)
+               $(use_enable debug leak-detective)
+               $(use_enable dhcp)
+               $(use_enable eap eap-sim)
+               $(use_enable eap eap-sim-file)
+               $(use_enable eap eap-simaka-sql)
+               $(use_enable eap eap-simaka-pseudonym)
+               $(use_enable eap eap-simaka-reauth)
+               $(use_enable eap eap-identity)
+               $(use_enable eap eap-md5)
+               $(use_enable eap eap-aka)
+               $(use_enable eap eap-aka-3gpp2)
+               $(use_enable eap md4)
+               $(use_enable eap eap-mschapv2)
+               $(use_enable eap eap-radius)
+               $(use_enable eap eap-tls)
+               $(use_enable eap eap-ttls)
+               $(use_enable eap xauth-eap)
+               $(use_enable eap eap-dynamic)
+               $(use_enable farp)
+               $(use_enable gmp)
+               $(use_enable gcrypt)
+               $(use_enable mysql)
+               $(use_enable networkmanager nm)
+               $(use_enable openssl)
+               $(use_enable pam xauth-pam)
+               $(use_enable pkcs11)
+               $(use_enable sqlite)
+               $(use_enable systemd)
+               $(use_with caps capabilities libcap)
+               --with-piddir=/run
+               --with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
+       )
+
+       if use non-root; then
+               myeconfargs+=(
+                       --with-user=${UGID}
+                       --with-group=${UGID}
+               )
+       fi
+
+       # If a user has already enabled db support, those plugins will
+       # most likely be desired as well. Besides they don't impose new
+       # dependencies and come at no cost (except for space).
+       if use mysql || use sqlite; then
+               myeconfargs+=(
+                       --enable-attr-sql
+                       --enable-sql
+               )
+       fi
+
+       # strongSwan builds and installs static libs by default which are
+       # useless to the user (and to strongSwan for that matter) because no
+       # header files or alike get installed... so disabling them is safe.
+       if use pam && use eap; then
+               myeconfargs+=( --enable-eap-gtc )
+       else
+               myeconfargs+=( --disable-eap-gtc )
+       fi
+
+       for mod in $STRONGSWAN_PLUGINS_STD; do
+               use strongswan_plugins_${mod} && myeconfargs+=( --enable-${mod} 
)
+       done
+
+       for mod in $STRONGSWAN_PLUGINS_OPT_DISABLE; do
+               ! use strongswan_plugins_${mod} && myeconfargs+=( 
--disable-${mod} )
+       done
+
+       for mod in $STRONGSWAN_PLUGINS_OPT; do
+               use strongswan_plugins_${mod} && myeconfargs+=( --enable-${mod} 
)
+       done
+
+       econf "${myeconfargs[@]}"
+}
+
+src_install() {
+       emake DESTDIR="${D}" install
+
+       if ! use systemd; then
+               rm -rf "${ED}"/lib/systemd || die "Failed removing systemd lib."
+       fi
+
+       doinitd "${FILESDIR}"/ipsec
+
+       local dir_ugid
+       if use non-root && use strongswan_plugins_stroke; then
+           if [ -f /etc/ipsec.conf ]; then
+                       fowners ${UGID}:${UGID} \
+                               /etc/ipsec.conf
+               fi
+
+               fowners ${UGID}:${UGID} \
+                               /etc/strongswan.conf
+
+           dir_ugid="${UGID}"
+       else
+               dir_ugid="root"
+       fi
+
+       diropts -m 0750 -o ${dir_ugid} -g ${dir_ugid}
+       dodir /etc/ipsec.d \
+               /etc/ipsec.d/aacerts \
+               /etc/ipsec.d/acerts \
+               /etc/ipsec.d/cacerts \
+               /etc/ipsec.d/certs \
+               /etc/ipsec.d/crls \
+               /etc/ipsec.d/ocspcerts \
+               /etc/ipsec.d/private \
+               /etc/ipsec.d/reqs
+
+       dodoc NEWS README TODO
+
+       # shared libs are used only internally and there are no static libs,
+       # so it's safe to get rid of the .la files
+       find "${D}" -name '*.la' -delete || die "Failed to remove .la files."
+}
+
+pkg_postinst() {
+       if ! use openssl && ! use gcrypt; then
+               elog
+               elog "${PN} has been compiled without both OpenSSL and 
libgcrypt support."
+               elog "Please note that this might effect availability and speed 
of some"
+               elog "cryptographic features. You are advised to enable the 
OpenSSL plugin."
+       elif ! use openssl; then
+               elog
+               elog "${PN} has been compiled without the OpenSSL plugin. This 
might effect"
+               elog "availability and speed of some cryptographic features. 
There will be"
+               elog "no support for Elliptic Curve Cryptography 
(Diffie-Hellman groups 19-21,"
+               elog "25, 26) and ECDSA."
+       fi
+       if ! use caps && ! use non-root; then
+               ewarn
+               ewarn "You have decided to run ${PN} with root privileges and 
built it"
+               ewarn "without support for POSIX capability dropping. It is 
generally"
+               ewarn "strongly suggested that you reconsider- especially if 
you intend"
+               ewarn "to run ${PN} as server with a public ip address."
+               ewarn
+               ewarn "You should re-emerge ${PN} with at least the 'caps' USE 
flag enabled."
+               ewarn
+       fi
+       if use non-root; then
+               elog
+               elog "${PN} has been installed without superuser privileges 
(USE=non-root)."
+               elog "This imposes a few limitations mainly to the daemon 
'charon' in"
+               elog "regards of the use of iptables."
+               elog
+               elog "Please carefully read: 
http://wiki.strongswan.org/projects/strongswan/wiki/ReducedPrivileges";
+               elog
+               elog "Thus if you require to specify a custom updown"
+               elog "script to charon which requires superuser privileges, you"
+               elog "can work around this limitation by using sudo to grant 
the"
+               elog "user \"ipsec\" the appropriate rights."
+               elog "For example (the default case):"
+               elog "/etc/sudoers:"
+               elog "  ipsec ALL=(ALL) NOPASSWD: SETENV: /usr/sbin/ipsec"
+               elog "Under the specific connection block in /etc/ipsec.conf:"
+               elog "  leftupdown=\"sudo -E ipsec _updown iptables\""
+               elog
+       fi
+       elog
+       elog "Make sure you have _all_ required kernel modules available 
including"
+       elog "the appropriate cryptographic algorithms. A list is available at:"
+       elog "  
https://wiki.strongswan.org/projects/strongswan/wiki/KernelModules";
+       elog
+       elog "The up-to-date manual is available online at:"
+       elog "  https://wiki.strongswan.org/";
+       elog
+}

Reply via email to