summaryrefslogtreecommitdiff
blob: e2c47b777d314f0d0da9f5d857bfbb6dd1f76201 (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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-misc/cisco-vpnclient-3des/cisco-vpnclient-3des-4.8.02.0030.ebuild,v 1.1 2012/02/12 11:09:24 pacho Exp $

EAPI="4"
inherit eutils linux-mod

MY_PV=${PV}-k9

DESCRIPTION="Cisco VPN Client (3DES)"
HOMEPAGE="http://cco.cisco.com/en/US/products/sw/secursw/ps2308/index.html"
SRC_URI="vpnclient-linux-x86_64-${MY_PV}.tar.gz"

LICENSE="cisco-vpn-client"
SLOT="0"
KEYWORDS="-* ~amd64 ~x86"
IUSE=""
RESTRICT="fetch mirror strip"

S=${WORKDIR}/vpnclient

VPNDIR="/opt/cisco-vpnclient"
CFGDIR="/etc/${VPNDIR}"
OLDCFG="/etc/CiscoSystemsVPNClient"

QA_TEXTRELS="${VPNDIR:1}/lib/libvpnapi.so"
QA_EXECSTACK="${VPNDIR:1}/lib/libvpnapi.so
	${VPNDIR:1}/bin/vpnclient
	${VPNDIR:1}/bin/cvpnd
	${VPNDIR:1}/bin/cisco_cert_mgr
	${VPNDIR:1}/bin/ipseclog"

MODULE_NAMES="cisco_ipsec(CiscoVPN)"
BUILD_TARGETS="clean default"

pkg_nofetch() {
	elog "Please visit:"
	elog " ${HOMEPAGE}"
	elog "and download ${A} to ${DISTDIR}"
}

src_prepare() {
	epatch "${FILESDIR}"/${PV}-frag.c.patch
	epatch "${FILESDIR}"/${PV}-GenDefs.h.patch
	epatch "${FILESDIR}"/${PV}-interceptor.c.patch
	epatch "${FILESDIR}"/${PV}-linuxcniapi.c.patch
	epatch "${FILESDIR}"/${PV}-linuxcniapi.h.patch
	epatch "${FILESDIR}"/${PV}-linuxkernelapi.c.patch
	epatch "${FILESDIR}"/${PV}-Makefile.patch
	epatch "${FILESDIR}"/${PV}-autoconf.patch
	sed -i "s:^MODULE_DIR.*$:MODULE_DIR=/lib/modules/${KV_FULL}:" Makefile
}

src_install() {
	local binaries="vpnclient ipseclog cisco_cert_mgr"
	linux-mod_src_install

	# Binaries
	exeinto /opt/cisco-vpnclient/bin
	exeopts -m0111
	doexe ${binaries}
	exeopts -m4111
	doexe cvpnd
	# Libraries
	insinto /opt/cisco-vpnclient/lib
	doins libvpnapi.so
	# Includes
	insinto /opt/cisco-vpnclient/include
	doins vpnapi.h

	# Configuration files/profiles/etc
	insinto ${CFGDIR}
	doins vpnclient.ini
	insinto ${CFGDIR}/Profiles
	doins *.pcf
	dodir ${CFGDIR}/Certificates

	# Create some symlinks
	dodir /usr/bin
	for filename in ${binaries}
	do
		dosym ${VPNDIR}/bin/${filename} /usr/bin/${filename}
	done

	# Make sure we keep these, even if they're empty.
	keepdir ${CFGDIR}/Certificates
	keepdir ${CFGDIR}/Profiles
}

pkg_postinst() {
	linux-mod_pkg_postinst
	if [ -e "${OLDCFG}" ]
	then
		elog "Found an old ${OLDCFG} configuration directory."
		elog "Moving ${OLDCFG} files to ${CFGDIR}."
		cp -pPR ${OLDCFG}/* ${CFGDIR} && rm -rf ${OLDCFG}
	fi
	if [ -e "/etc/init.d/vpnclient" ]
	then
		elog "Removing /etc/init.d/vpnclient, which is no longer needed."
		rm -f /etc/init.d/vpnclient
	fi
	runlevels=`rc-update show | grep vpnclient | cut -d\| -f2`
	if [ -n "$runlevels" ]
	then
		elog "Removing 'vpnclient' from all runlevels."
		rc-update del vpnclient
	fi
	elog "You will need to load the cisco_ipsec module before using the Cisco"
	elog "VPN Client (vpnclient) application."
}