summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkos Chandras <hwoarang@gentoo.org>2012-12-11 19:45:50 +0000
committerMarkos Chandras <hwoarang@gentoo.org>2012-12-11 19:45:50 +0000
commit8591f0501403a8fbe4300080b6587bbb58efe308 (patch)
tree4e8be76409b25a04f74aa9e6bc67b02ae28b9f0a /net-misc/openconnect
parentLinux 3.7 Support; Stability Fixes; Performance Regression Fix; Fix bug #411555 (diff)
downloadgentoo-2-8591f0501403a8fbe4300080b6587bbb58efe308.tar.gz
gentoo-2-8591f0501403a8fbe4300080b6587bbb58efe308.tar.bz2
gentoo-2-8591f0501403a8fbe4300080b6587bbb58efe308.zip
Revbump with improved init script for missing pid directory. Bug #446255. Thanks to Matthew Schultz <mattsch@gmail.com>
(Portage version: 2.1.11.34/cvs/Linux x86_64, signed Manifest commit with key B4AFF2C2)
Diffstat (limited to 'net-misc/openconnect')
-rw-r--r--net-misc/openconnect/ChangeLog9
-rw-r--r--net-misc/openconnect/files/openconnect.init.in20
-rw-r--r--net-misc/openconnect/openconnect-4.07-r1.ebuild135
3 files changed, 159 insertions, 5 deletions
diff --git a/net-misc/openconnect/ChangeLog b/net-misc/openconnect/ChangeLog
index f957a34ba800..1e201d059008 100644
--- a/net-misc/openconnect/ChangeLog
+++ b/net-misc/openconnect/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for net-misc/openconnect
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/openconnect/ChangeLog,v 1.3 2012/12/05 18:53:47 hwoarang Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/openconnect/ChangeLog,v 1.4 2012/12/11 19:45:50 hwoarang Exp $
+
+*openconnect-4.07-r1 (11 Dec 2012)
+
+ 11 Dec 2012; Markos Chandras <hwoarang@gentoo.org>
+ +openconnect-4.07-r1.ebuild, files/openconnect.init.in:
+ Revbump with improved init script for missing pid directory. Bug #446255.
+ Thanks to Matthew Schultz <mattsch@gmail.com>
*openconnect-4.07 (05 Dec 2012)
diff --git a/net-misc/openconnect/files/openconnect.init.in b/net-misc/openconnect/files/openconnect.init.in
index abe1d0788673..3f3f32651cde 100644
--- a/net-misc/openconnect/files/openconnect.init.in
+++ b/net-misc/openconnect/files/openconnect.init.in
@@ -1,13 +1,13 @@
#!/sbin/runscript
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/openconnect/files/openconnect.init.in,v 1.2 2012/12/05 18:53:47 hwoarang Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/openconnect/files/openconnect.init.in,v 1.3 2012/12/11 19:45:50 hwoarang Exp $
VPN="${RC_SVCNAME#*.}"
VPNLOG="/var/log/openconnect/${VPN}"
VPNLOGFILE="${VPNLOG}/openconnect.log"
VPNERRFILE="${VPNLOG}/openconnect.err"
-VPNPID="/var/run/openconnect/${VPN}.pid"
+VPNPID="/run/openconnect/${VPN}.pid"
VPNDIR="/etc/openconnect/${VPN}"
PREUPSCRIPT="${VPNDIR}/preup.sh"
PREDOWNSCRIPT="${VPNDIR}/predown.sh"
@@ -23,8 +23,13 @@ depend() {
checkconfig() {
if [ $VPN = "openconnect" ]; then
- eerror "You cannot call openconnect directly. You must create a symbolic link to it instead with the vpn name:"
+ eerror "You cannot call openconnect directly. You must create a symbolic link to it with the vpn name:"
+ echo
eerror "ln -s /etc/init.d/openconnect /etc/init.d/openconnect.vpn0"
+ echo
+ eerror "And then call it instead:"
+ echo
+ eerror "/etc/init.d/openconnect.vpn0 start"
return 1
fi
}
@@ -62,7 +67,14 @@ start() {
mkdir -p "${VPNLOG}"
fi
- local args=""
+ local piddir="${VPNPID%/*}"
+ if [ ! -d "$piddir" ] ; then
+ mkdir -p "$piddir"
+ if [ $? -ne 0 ]; then
+ eerror "Directory $piddir for pidfile does not exist and cannot be created"
+ return 1
+ fi
+ fi
if [ -x "${PREUPSCRIPT}" ] ; then
"${PREUPSCRIPT}"
diff --git a/net-misc/openconnect/openconnect-4.07-r1.ebuild b/net-misc/openconnect/openconnect-4.07-r1.ebuild
new file mode 100644
index 000000000000..e8f58990c583
--- /dev/null
+++ b/net-misc/openconnect/openconnect-4.07-r1.ebuild
@@ -0,0 +1,135 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/openconnect/openconnect-4.07-r1.ebuild,v 1.1 2012/12/11 19:45:50 hwoarang Exp $
+
+EAPI="5"
+
+inherit eutils linux-info
+
+DESCRIPTION="Free client for Cisco AnyConnect SSL VPN software"
+HOMEPAGE="http://www.infradead.org/openconnect.html"
+# New versions of openconnect-script can be found here:
+# http://git.infradead.org/users/dwmw2/vpnc-scripts.git/history/HEAD:/vpnc-script
+SRC_URI="ftp://ftp.infradead.org/pub/${PN}/${P}.tar.gz
+ http://dev.gentoo.org/~hwoarang/distfiles/openconnect-script-20121108205904.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="static-libs nls -gnutls +openssl"
+ILINGUAS="ar as ast bg bg_BG bn bn_IN bs ca ca@valencia cs da de el en_GB en_US eo es es_CR
+ es_MX et eu fa fi fr gd gl gu he hi hi_IN hu id it ja km kn ko ku lo lt lv ml mr
+ ms nb nl nn no or pa pl pt pt_BR pt_PT ro ru sk sl sq sr sr@latin sv ta te
+ tg th tl tr ug uk ur_PK vi vi_VN wa zh_CN zh_HK zh_TW"
+for lang in $ILINGUAS; do
+ IUSE="${IUSE} linguas_${lang}"
+done
+# only one ssl provider can be enabled
+REQUIRED_USE="^^ ( gnutls openssl )"
+
+DEPEND="dev-libs/libxml2
+ net-libs/libproxy
+ sys-libs/zlib
+ gnutls? (
+ || (
+ ( >=net-libs/gnutls-3[static-libs?] dev-libs/nettle )
+ ( =net-libs/gnutls-2.12*[nettle,static-libs?] dev-libs/nettle )
+ ( =net-libs/gnutls-2.12*[-nettle,static-libs?] dev-libs/libgcrypt[static-libs?] )
+ )
+ app-misc/ca-certificates
+ )
+ openssl? ( dev-libs/openssl[static-libs?] )"
+
+RDEPEND="${DEPEND}
+ sys-apps/iproute2"
+
+tun_tap_check() {
+ ebegin "Checking for TUN/TAP support"
+ if { ! linux_chkconfig_present TUN; }; then
+ eerror "Please enable TUN/TAP support in your kernel config, found at:"
+ eerror
+ eerror " Device Drivers --->"
+ eerror " [*] Network device support --->"
+ eerror " <*> Universal TUN/TAP device driver support"
+ eerror
+ eerror "and recompile your kernel ..."
+ die "no CONFIG_TUN support detected!"
+ fi
+ eend $?
+}
+
+pkg_setup() {
+ if use kernel_linux; then
+ get_version
+ if linux_config_exists; then
+ tun_tap_check
+ else
+ ewarn "Was unable to determine your kernel .config"
+ ewarn "Please note that OpenConnect requires CONFIG_TUN to be set in your"
+ ewarn "kernel .config, Without it, it will not work correctly."
+ # We don't die here, so it's possible to compile this package without
+ # kernel sources available. Required for cross-compilation.
+ fi
+ fi
+}
+
+src_configure() {
+ strip-linguas $ILINGUAS
+ echo ${LINGUAS} > po/LINGUAS
+ # Override vpn-script test since the build system violates the sandbox and
+ # needs the path set to the real default path after it's installed
+ sed -e "s#-x \"\$with_vpnc_script\"#-n \"${WORKDIR}/openconnect-script\"#" \
+ -i configure || die
+ econf \
+ --with-vpnc-script=/etc/openconnect/openconnect.sh \
+ $(use_enable static-libs static) \
+ $(use_enable nls ) \
+ $(use_with openssl ) \
+ $(use_with gnutls )
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ dodoc AUTHORS TODO
+ newinitd "${FILESDIR}"/openconnect.init.in openconnect
+ dodir /etc/openconnect
+ insinto /etc/openconnect
+ newconfd "${FILESDIR}"/openconnect.conf.in openconnect
+ exeinto /etc/openconnect
+ newexe "${WORKDIR}"/openconnect-script openconnect.sh
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}"/openconnect.logrotate openconnect
+ keepdir /var/log/openconnect
+
+ # Remove useless .la files
+ find "${D}" -name '*.la' -delete || die "la file removal failed"
+}
+
+pkg_postinst() {
+ elog "The init script for openconnect has changed and now supports multiple vpn tunnels."
+ elog
+ elog "You need to create a symbolic link to /etc/init.d/openconnect in /etc/init.d"
+ elog "instead of calling it directly:"
+ elog
+ elog "ln -s /etc/init.d/openconnect /etc/init.d/openconnect.vpn0"
+ elog
+ elog "You can then start the vpn tunnel like this:"
+ elog
+ elog "/etc/init.d/openconnect.vpn0 start"
+ elog
+ elog "If you would like to run preup, postup, predown, and/or postdown scripts,"
+ elog "You need to create a directory in /etc/openconnect with the name of the vpn:"
+ elog
+ elog "mkdir /etc/openconnect/vpn0"
+ elog
+ elog "Then add executable shell files:"
+ elog
+ elog "mkdir /etc/openconnect/vpn0"
+ elog "cd /etc/openconnect/vpn0"
+ elog "echo '#!/bin/sh' > preup.sh"
+ elog "cp preup.sh predown.sh"
+ elog "cp preup.sh postup.sh"
+ elog "cp preup.sh postdown.sh"
+ elog "chmod 755 /etc/openconnect/vpn0/*"
+}