| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 2.5.2 | 8 | ~amd64 ~x86 | 0 |
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools readme.gentoo-r1 systemd linux-info
MY_PN="${PN//-aws/}"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="Patched OpenVPN with SAML support for AWS Client VPN"
HOMEPAGE="https://openvpn.net https://github.com/AnilRedshift/awsvpn-saml
https://github.com/samm-git/aws-vpn-client"
SRC_URI="https://build.openvpn.net/downloads/releases/${MY_P}.tar.gz"
S="${WORKDIR}/${MY_P}"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="down-root inotify iproute2 +lz4 +lzo mbedtls +openssl
pam pkcs11 +plugins selinux systemd test"
RESTRICT="!test? ( test )"
REQUIRED_USE="^^ ( openssl mbedtls )
pkcs11? ( !mbedtls )
!plugins? ( !pam !down-root )
inotify? ( plugins )"
CDEPEND="kernel_linux? ( iproute2? ( sys-apps/iproute2[-minimal] ) )
lz4? ( app-arch/lz4:0= )
lzo? ( dev-libs/lzo:2 )
mbedtls? ( net-libs/mbedtls:= )
openssl? ( dev-libs/openssl:0= )
pam? ( sys-libs/pam )
pkcs11? ( dev-libs/pkcs11-helper )
systemd? ( sys-apps/systemd )"
DEPEND="${CDEPEND}"
RDEPEND="${CDEPEND}
acct-group/openvpn
acct-user/openvpn
net-dns/bind-tools
selinux? ( sec-policy/selinux-openvpn )"
BDEPEND="virtual/pkgconfig
dev-lang/go:0=
test? ( dev-util/cmocka )"
PATCHES=(
"${FILESDIR}"/openvpn-2.5.0-auth-pam-missing-header.patch
"${FILESDIR}"/openvpn-2.5.2-detect-python-rst2man.patch
"${FILESDIR}"/openvpn-2.5.2-aws.patch
"${FILESDIR}"/openvpn-2.5.2-skip-broken-tests.patch
)
QA_FLAGS_IGNORED="usr/bin/awsvpnserver"
CONFIG_CHECK="~TUN"
DOC_CONTENTS="1. Remove 'auth-federate' from OVPN configuration.\\n
2. Run 'awsvpn configure' from user shell.\\n
3. Run 'awsvpn' from user shell.\\n"
src_prepare() {
default
# https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg19302.html
sed -i '/^CONFIGURE_DEFINES=/s/set/env/g' configure.ac || die "sed failed"
eautoreconf
}
src_compile() {
default
go build -o awsvpnserver "${FILESDIR}"/main.go || die "go build failed"
}
src_configure() {
local -a myeconfargs
if ! use mbedtls; then
myeconfargs+=(
"$(use_enable pkcs11)"
)
fi
myeconfargs+=(
"$(use_enable inotify async-push)"
--with-crypto-library="$(usex mbedtls mbedtls openssl)"
"$(use_enable lz4)"
"$(use_enable lzo)"
"$(use_enable plugins)"
"$(use_enable iproute2)"
"$(use_enable pam plugin-auth-pam)"
"$(use_enable down-root plugin-down-root)"
"$(use_enable systemd)"
)
SYSTEMD_UNIT_DIR="$(systemd_get_systemunitdir)" \
TMPFILES_DIR="/usr/lib/tmpfiles.d" \
IPROUTE="$(usex iproute2 '/bin/ip' '')" \
econf "${myeconfargs[@]}"
}
src_test() {
local -x RUN_SUDO=false
emake check
pushd tests/unit_tests &>/dev/null || die
emake check
popd &>/dev/null || die
}
src_install() {
newsbin src/openvpn/openvpn openvpn-aws
dobin awsvpnserver "${FILESDIR}"/awsvpn
readme.gentoo_create_doc
}
pkg_postinst() {
readme.gentoo_print_elog
}
kernel_linux? ( iproute2? ( sys-apps/iproute2[-minimal] ) ) lz4? ( app-arch/lz4:0= ) lzo? ( dev-libs/lzo:2 ) mbedtls? ( net-libs/mbedtls:= ) openssl? ( dev-libs/openssl:0= ) pam? ( sys-libs/pam ) pkcs11? ( dev-libs/pkcs11-helper ) systemd? ( sys-apps/systemd )
kernel_linux? ( iproute2? ( sys-apps/iproute2[-minimal] ) ) lz4? ( app-arch/lz4:0= ) lzo? ( dev-libs/lzo:2 ) mbedtls? ( net-libs/mbedtls:= ) openssl? ( dev-libs/openssl:0= ) pam? ( sys-libs/pam ) pkcs11? ( dev-libs/pkcs11-helper ) systemd? ( sys-apps/systemd ) acct-group/openvpn acct-user/openvpn net-dns/bind-tools selinux? ( sec-policy/selinux-openvpn )
virtual/pkgconfig dev-lang/go:0= test? ( dev-util/cmocka )