diff options
author | Markos Chandras <hwoarang@gentoo.org> | 2012-12-11 19:45:50 +0000 |
---|---|---|
committer | Markos Chandras <hwoarang@gentoo.org> | 2012-12-11 19:45:50 +0000 |
commit | 8591f0501403a8fbe4300080b6587bbb58efe308 (patch) | |
tree | 4e8be76409b25a04f74aa9e6bc67b02ae28b9f0a /net-misc/openconnect | |
parent | Linux 3.7 Support; Stability Fixes; Performance Regression Fix; Fix bug #411555 (diff) | |
download | gentoo-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/ChangeLog | 9 | ||||
-rw-r--r-- | net-misc/openconnect/files/openconnect.init.in | 20 | ||||
-rw-r--r-- | net-misc/openconnect/openconnect-4.07-r1.ebuild | 135 |
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/*" +} |