net-vpn/libreswan: add 4.8

Signed-off-by: Hans de Graaff <graaff@gentoo.org>
This commit is contained in:
Hans de Graaff
2022-10-05 07:34:25 +02:00
parent 9ab74ab21b
commit b98f5c4cc7
2 changed files with 127 additions and 0 deletions

View File

@@ -1,2 +1,3 @@
DIST libreswan-4.6.tar.gz 3579760 BLAKE2B 56099e753d9da882ea9e4b7966706f39bac36cd88adcba5fa1c3201cbe0a2ba7a02042cb9eeb8fd52a7b1ba0f3128b854114abc748fe9bf6d9059937a72eb0e4 SHA512 c1c3efd7665dee6caaf08cb5aa50fcd37c299acad4b62648284fdb04edd50ba8fc8d33a9fb210edaf2312697f8cd251f33a6b16587eb2cfefd1269b4482dd499
DIST libreswan-4.7.tar.gz 3684167 BLAKE2B bf55be53d1034ab7706b183a7c5c3556f361ffd9453df41b03c0b03ff256ed81541365af7c7fdb2dd3d8740fe594b34b4df5301a704138b43290c601183b45aa SHA512 aea958be5512e08ea809145021695edd4e7df4487a0f3ba94c4d0165113647195c1c1599cd5fbbbfae8f6a2bebf39d7514a694f86297c29c543b1a63646ca44e
DIST libreswan-4.8.tar.gz 3702351 BLAKE2B e9eeca1c6410621897f5765632d40d103cc1903b9b8195454851a192c520dece42260a02892f0736b14f2257bd56eea8fe280b5e35364cbef8bdab5387fbb01c SHA512 f11e9c9f23871d6c6e8b0761d03c87923c055004cc50a7a4d1c1a4296b940159912294ceea0f9d125e9fd99a6c979399dc70957fdd698617015058d483030cec

View File

@@ -0,0 +1,126 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit systemd flag-o-matic toolchain-funcs tmpfiles
DESCRIPTION="IPsec implementation for Linux, fork of Openswan"
HOMEPAGE="https://libreswan.org/"
SRC_URI="https://download.libreswan.org/${P}.tar.gz"
LICENSE="GPL-2 BSD-4 RSA DES"
SLOT="0"
KEYWORDS="~amd64 ~arm ~ppc ~x86"
IUSE="caps curl dnssec ldap networkmanager pam seccomp selinux systemd test"
RESTRICT="!test? ( test )"
DEPEND="
dev-libs/gmp:0=
dev-libs/libevent:0=
dev-libs/nspr
>=dev-libs/nss-3.42
>=sys-kernel/linux-headers-4.19
virtual/libcrypt:=
caps? ( sys-libs/libcap-ng )
curl? ( net-misc/curl )
dnssec? ( >=net-dns/unbound-1.9.1-r1:= net-libs/ldns:= )
ldap? ( net-nds/openldap:= )
pam? ( sys-libs/pam )
seccomp? ( sys-libs/libseccomp )
selinux? ( sys-libs/libselinux )
systemd? ( sys-apps/systemd:0= )
"
BDEPEND="
app-text/docbook-xml-dtd:4.1.2
app-text/xmlto
dev-libs/nss
sys-devel/bison
sys-devel/flex
virtual/pkgconfig
test? ( dev-python/setproctitle )
"
RDEPEND="${DEPEND}
dev-libs/nss[utils(+)]
sys-apps/iproute2
!net-vpn/strongswan
selinux? ( sec-policy/selinux-ipsec )
"
DEPEND+=" elibc_musl? ( sys-libs/queue-standalone )"
usetf() {
usex "$1" true false
}
PATCHES=( "${FILESDIR}/${PN}-4.2-ip-path.patch" )
src_prepare() {
sed -i -e 's:/sbin/runscript:/sbin/openrc-run:' initsystems/openrc/ipsec.init.in || die
sed -i -e '/^install/ s/postcheck//' -e '/^doinstall/ s/oldinitdcheck//' initsystems/systemd/Makefile || die
default
}
src_configure() {
tc-export AR CC
use elibc_musl && append-cflags -DGLIBC_KERN_FLIP_HEADERS
export PREFIX=/usr
export FINALEXAMPLECONFDIR=/usr/share/doc/${PF}
export FINALDOCDIR=/usr/share/doc/${PF}/html
export INITSYSTEM=$(usex systemd systemd openrc)
export INITDDIRS=
export INITDDIR_DEFAULT=/etc/init.d
export USERCOMPILE=${CFLAGS}
export USERLINK=${LDFLAGS}
export USE_DNSSEC=$(usetf dnssec)
export USE_LABELED_IPSEC=$(usetf selinux)
export USE_LIBCAP_NG=$(usetf caps)
export USE_LIBCURL=$(usetf curl)
export USE_LINUX_AUDIT=$(usetf selinux)
export USE_LDAP=$(usetf ldap)
export USE_NM=$(usetf networkmanager)
export USE_SECCOMP=$(usetf seccomp)
export USE_SYSTEMD_WATCHDOG=$(usetf systemd)
export SD_WATCHDOGSEC=$(usex systemd 200 0)
export USE_AUTHPAM=$(usetf pam)
export DEBUG_CFLAGS=
export OPTIMIZE_CFLAGS=
export WERROR_CFLAGS=
}
src_compile() {
emake all
emake -C initsystems INITSYSTEM=systemd SYSTEMUNITDIR="$(systemd_get_systemunitdir)" SYSTEMTMPFILESDIR="/usr/lib/tmpfiles.d" all
}
src_test() {
: # integration tests only that require set of kvms to be set up
}
src_install() {
default
emake -C initsystems INITSYSTEM=systemd SYSTEMUNITDIR="$(systemd_get_systemunitdir)" SYSTEMTMPFILESDIR="/usr/lib/tmpfiles.d" DESTDIR="${D}" install
echo "include /etc/ipsec.d/*.secrets" > "${D}"/etc/ipsec.secrets
fperms 0600 /etc/ipsec.secrets
keepdir /var/lib/ipsec/nss
fperms 0700 /var/lib/ipsec/nss
dodoc -r docs
find "${D}" -type d -empty -delete || die
}
pkg_postinst() {
tmpfiles_process libreswan.conf
local IPSEC_CONFDIR=${ROOT}/var/lib/ipsec/nss
if [[ ! -f ${IPSEC_CONFDIR}/cert8.db && ! -f ${IPSEC_CONFDIR}/cert9.db ]] ; then
ebegin "Setting up NSS database in ${IPSEC_CONFDIR} with empty password"
certutil -N -d "${IPSEC_CONFDIR}" --empty-password
eend $?
einfo "To set a password: certutil -W -d sql:${IPSEC_CONFDIR}"
fi
}