diff options
author | Julian Ospald <hasufell@gentoo.org> | 2014-03-17 17:05:14 +0000 |
---|---|---|
committer | Julian Ospald <hasufell@gentoo.org> | 2014-03-17 17:05:14 +0000 |
commit | 84454b12514fc7dfb7ebd281d89f01f95ea3cd0a (patch) | |
tree | fddacb5f610dc831c9a1013eb9d6cd38665dedb8 /net-misc | |
parent | Version bump to 3.4.49; Remove legacy genkernel versions (diff) | |
download | gentoo-2-84454b12514fc7dfb7ebd281d89f01f95ea3cd0a.tar.gz gentoo-2-84454b12514fc7dfb7ebd281d89f01f95ea3cd0a.tar.bz2 gentoo-2-84454b12514fc7dfb7ebd281d89f01f95ea3cd0a.zip |
fix bug #481978 and bug #503644
(Portage version: 2.2.8-r1/cvs/Linux x86_64, signed Manifest commit with key BDEED020)
Diffstat (limited to 'net-misc')
-rw-r--r-- | net-misc/openconnect/ChangeLog | 8 | ||||
-rw-r--r-- | net-misc/openconnect/files/openconnect.init.in-r2 | 144 | ||||
-rw-r--r-- | net-misc/openconnect/openconnect-5.99-r1.ebuild | 158 | ||||
-rw-r--r-- | net-misc/openconnect/openconnect-5.99.ebuild | 8 |
4 files changed, 311 insertions, 7 deletions
diff --git a/net-misc/openconnect/ChangeLog b/net-misc/openconnect/ChangeLog index 6b8512943753..2b533024c8b8 100644 --- a/net-misc/openconnect/ChangeLog +++ b/net-misc/openconnect/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for net-misc/openconnect # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-misc/openconnect/ChangeLog,v 1.28 2014/03/06 00:23:40 hasufell Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-misc/openconnect/ChangeLog,v 1.29 2014/03/17 17:05:14 hasufell Exp $ + +*openconnect-5.99-r1 (17 Mar 2014) + + 17 Mar 2014; Julian Ospald <hasufell@gentoo.org> openconnect-5.99.ebuild, + +openconnect-5.99-r1.ebuild, +files/openconnect.init.in-r2: + fix bug #481978 and bug #503644 06 Mar 2014; Julian Ospald <hasufell@gentoo.org> openconnect-5.99.ebuild: update linguas diff --git a/net-misc/openconnect/files/openconnect.init.in-r2 b/net-misc/openconnect/files/openconnect.init.in-r2 new file mode 100644 index 000000000000..fd4d44a7ac2c --- /dev/null +++ b/net-misc/openconnect/files/openconnect.init.in-r2 @@ -0,0 +1,144 @@ +#!/sbin/runscript +# Copyright 1999-2014 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-r2,v 1.1 2014/03/17 17:05:14 hasufell Exp $ + +VPN="${RC_SVCNAME#*.}" +VPNLOG="/var/log/openconnect/${VPN}" +VPNLOGFILE="${VPNLOG}/openconnect.log" +VPNERRFILE="${VPNLOG}/openconnect.err" +VPNPID="/run/openconnect/${VPN}.pid" +VPNDIR="/etc/openconnect/${VPN}" +PREUPSCRIPT="${VPNDIR}/preup.sh" +PREDOWNSCRIPT="${VPNDIR}/predown.sh" +POSTUPSCRIPT="${VPNDIR}/postup.sh" +POSTDOWNSCRIPT="${VPNDIR}/postdown.sh" +SERVER="server_${VPN}" +PASSWORD="password_${VPN}" +VPNOPTS="vpnopts_${VPN}" + +depend() { + before netmount +} + +checkconfig() { + if [ $VPN = "openconnect" ]; then + 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 +} + +checktuntap() { + if [ $(uname -s) = "Linux" ] ; then + if [ ! -e /dev/net/tun ]; then + if ! modprobe tun ; then + eerror "TUN/TAP support is not available in this kernel" + return 1 + fi + fi + if [ -h /dev/net/tun ] && [ -c /dev/misc/net/tun ]; then + ebegin "Detected broken /dev/net/tun symlink, fixing..." + rm -f /dev/net/tun + ln -s /dev/misc/net/tun /dev/net/tun + eend $? + fi + fi +} + +start() { + ebegin "Starting OpenConnect: ${VPN}" + + local tmp_SERVER tmp_VPNOPTS tmp_PASSWORD + eval tmp_SERVER="\${${SERVER}}" + eval tmp_VPNOPTS="\${${VPNOPTS}}" + eval tmp_PASSWORD="\${${PASSWORD}}" + + checkconfig || return 1 + + checktuntap || return 1 + + if [ "${tmp_SERVER}" = "vpn.server.tld" ]; then + eend 1 "${VPN} not configured" + return 1 + fi + + if [ ! -e "${VPNLOG}" ]; then + mkdir -p "${VPNLOG}" + fi + + 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}" + fi + + start-stop-daemon --start \ + --make-pidfile \ + --pidfile "${VPNPID}" \ + --stderr "${VPNERRFILE}" \ + --stdout "${VPNLOGFILE}" \ + --background \ + --exec /usr/sbin/openconnect -- \ + --interface="${VPN}" \ + --pid-file="${VPNPID}" \ + ${tmp_VPNOPTS} \ + ${tmp_SERVER} <<-E + ${tmp_PASSWORD} + E + + local retval=$? + + if [ ! ${retval} -eq 0 ]; then + eend ${retval} + return ${retval} + fi + + if [ -x "${POSTUPSCRIPT}" ] ; then + # wait until the interface is up and an ip address is set before running postup + while true; do + if [ -n "$(ip addr show $VPN | grep inet)" ]; then + "${POSTUPSCRIPT}" + break + fi + done + fi + + eend $? +} + +stop() { + ebegin "Stopping OpenConnect: ${VPN}" + + checkconfig || return 1 + + if [ -x "${PREDOWNSCRIPT}" ] ; then + "${PREDOWNSCRIPT}" + fi + + start-stop-daemon --pidfile "${VPNPID}" --stop /usr/sbin/openconnect + local retval=$? + + if [ ! ${retval} -eq 0 ]; then + eend ${retval} + return ${retval} + fi + + + if [ -x "${POSTDOWNSCRIPT}" ] ; then + "${POSTDOWNSCRIPT}" + fi + eend $? +} diff --git a/net-misc/openconnect/openconnect-5.99-r1.ebuild b/net-misc/openconnect/openconnect-5.99-r1.ebuild new file mode 100644 index 000000000000..ba3ba3349476 --- /dev/null +++ b/net-misc/openconnect/openconnect-5.99-r1.ebuild @@ -0,0 +1,158 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-misc/openconnect/openconnect-5.99-r1.ebuild,v 1.1 2014/03/17 17:05:14 hasufell Exp $ + +EAPI="5" + +PYTHON_COMPAT=( python2_{6,7} ) +PYTHON_REQ_USE="xml" + +inherit eutils linux-info python-any-r1 + +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/~hasufell/distfiles/openconnect-script-20130310115608.tar.xz" + +LICENSE="LGPL-2.1 GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc64 ~x86" +IUSE="doc +gnutls java libproxy nls static-libs" +ILINGUAS="ar cs de el en_GB en_US es fi fr gl id lt nl pa pl pt pt_BR sk sl ug uk zh_CN zh_TW" +for lang in $ILINGUAS; do + IUSE="${IUSE} linguas_${lang}" +done + +DEPEND="dev-libs/libxml2 + sys-libs/zlib + !gnutls? ( + || ( + >=dev-libs/openssl-1.0.1f:0[static-libs?] + ( + >=dev-libs/openssl-1.0.1:0[static-libs?] + <dev-libs/openssl-1.0.1d:0[static-libs?] + ) + <dev-libs/openssl-1.0.0k:0[static-libs?] + ) + ) + gnutls? ( + >=net-libs/gnutls-3[static-libs?] dev-libs/nettle + app-misc/ca-certificates + ) + libproxy? ( net-libs/libproxy ) + nls? ( virtual/libintl )" +RDEPEND="${DEPEND} + sys-apps/iproute2 + java? ( virtual/jre )" +DEPEND="${DEPEND} + virtual/pkgconfig + doc? ( ${PYTHON_DEPS} ) + java? ( virtual/jdk ) + nls? ( sys-devel/gettext )" + +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 doc; then + python-any-r1_pkg_setup + fi + + 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 + if ! use doc; then + # If the python cannot be found, the docs will not build + sed -e 's#"${ac_cv_path_PYTHON}"#""#' -i configure || die + fi + + # stoken and liboath not in portage + econf \ + --with-vpnc-script=/etc/openconnect/openconnect.sh \ + $(use_enable static-libs static) \ + $(use_enable nls ) \ + $(use_with !gnutls openssl) \ + $(use_with gnutls ) \ + $(use_with libproxy) \ + --without-stoken \ + --without-liboath \ + $(use_with java) +} + +src_install() { + emake DESTDIR="${D}" install + + dodoc AUTHORS TODO + newinitd "${FILESDIR}"/openconnect.init.in-r2 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/*" +} diff --git a/net-misc/openconnect/openconnect-5.99.ebuild b/net-misc/openconnect/openconnect-5.99.ebuild index 415a813a8ff3..414678589a3f 100644 --- a/net-misc/openconnect/openconnect-5.99.ebuild +++ b/net-misc/openconnect/openconnect-5.99.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-misc/openconnect/openconnect-5.99.ebuild,v 1.2 2014/03/06 00:23:40 hasufell Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-misc/openconnect/openconnect-5.99.ebuild,v 1.3 2014/03/17 17:05:14 hasufell Exp $ EAPI="5" @@ -38,11 +38,7 @@ DEPEND="dev-libs/libxml2 ) ) 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:0[static-libs?] ) - ) + >=net-libs/gnutls-3[static-libs?] dev-libs/nettle app-misc/ca-certificates ) libproxy? ( net-libs/libproxy ) |