summaryrefslogtreecommitdiff
blob: 5f4e12444a6433b791b969368aa5369bc8eafb0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit linux-info systemd tmpfiles toolchain-funcs

DESCRIPTION="Free client for Cisco VPN routing software"
HOMEPAGE="https://www.unix-ag.uni-kl.de/~massar/vpnc/"

if [[ ${PV} == *9999 ]]; then
	inherit git-r3
	EGIT_REPO_URI="https://github.com/streambinder/vpnc.git"
else
	inherit vcs-snapshot
	SRC_URI="
		https://api.github.com/repos/streambinder/vpnc/tarball/fdd0de7 -> ${P}.tar.gz
		https://dev.gentoo.org/~soap/distfiles/${PN}-0.5.3-docs.tar.xz"
	KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
fi

LICENSE="GPL-3"
SLOT="0"
IUSE="resolvconf +gnutls selinux"
RESTRICT="!gnutls? ( bindist )"

DEPEND="
	dev-libs/libgcrypt:=
	sys-apps/iproute2[-minimal]
	gnutls? ( net-libs/gnutls:= )
	!gnutls? ( dev-libs/openssl:= )"
RDEPEND="${DEPEND}
	>=net-vpn/vpnc-scripts-20210402-r1
	resolvconf? ( virtual/resolvconf )
	selinux? ( sec-policy/selinux-vpn )"
BDEPEND="
	dev-lang/perl
	virtual/pkgconfig"

CONFIG_CHECK="~TUN"

src_unpack() {
	if [[ ${PV} == *9999 ]]; then
		git-r3_src_unpack
	else
		vcs-snapshot_src_unpack
		mv vpnc-0.5.3-docs/src/doc/*.md "${S}"/src/doc/ || die
	fi
}

src_configure() {
	tc-export CC PKG_CONFIG
	export OPENSSL_GPL_VIOLATION=$(usex !gnutls)
}

src_install() {
	local args=(
		PREFIX="${EPREFIX}"/usr
		DOCDIR='$(PREFIX)'/share/doc/${PF}
		SYSTEMDDIR="$(systemd_get_systemunitdir)"
		DESTDIR="${D}"
	)

	emake "${args[@]}" install

	keepdir /etc/vpnc/scripts.d
	newinitd "${FILESDIR}"/vpnc-3.init vpnc
	newconfd "${FILESDIR}"/vpnc.confd vpnc

	# LICENSE file resides here, should not be installed
	rm -r "${ED}"/usr/share/licenses || die
}

pkg_postinst() {
	tmpfiles_process vpnc-tmpfiles.conf

	elog "You can generate a configuration file from the original Cisco profiles of your"
	elog "connection by using /usr/bin/pcf2vpnc to convert the .pcf file"
	elog "A guide is available at https://wiki.gentoo.org/wiki/Vpnc"

	if use gnutls; then
		elog "Will build with GnuTLS (default) instead of OpenSSL so you may even redistribute binaries."
		elog "See the Makefile itself and https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=440318"
	else
		ewarn "Building SSL support with OpenSSL instead of GnuTLS. This means that"
		ewarn "you are not allowed to re-distibute the binaries due to conflicts between BSD license and GPL,"
		ewarn "see the vpnc Makefile and https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=440318"
	fi
}