diff options
Diffstat (limited to 'nixpkgs/pkgs/tools/networking/vpnc')
3 files changed, 92 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/networking/vpnc/default.nix b/nixpkgs/pkgs/tools/networking/vpnc/default.nix new file mode 100644 index 000000000000..edb50559fc0f --- /dev/null +++ b/nixpkgs/pkgs/tools/networking/vpnc/default.nix @@ -0,0 +1,58 @@ +{ lib, stdenv, fetchsvn, nettools, libgcrypt, openssl, openresolv, perl, gawk, makeWrapper }: + +stdenv.mkDerivation { + name = "vpnc-0.5.3-post-r550"; + src = fetchsvn { + url = "https://svn.unix-ag.uni-kl.de/vpnc"; + rev = "550"; + sha256 = "0x4ckfv9lpykwmh28v1kyzz91y1j2v48fi8q5nsawrba4q0wlrls"; + }; + + postUnpack = '' + mv $sourceRoot/trunk/* $sourceRoot/. + rm -r $sourceRoot/{trunk,branches,tags} + ''; + + patches = [ ./makefile.patch ./no_default_route_when_netmask.patch ]; + + # The `etc/vpnc/vpnc-script' script relies on `which' and on + # `ifconfig' as found in net-tools (not GNU Inetutils). + propagatedBuildInputs = [ nettools ]; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [libgcrypt perl openssl ]; + + preConfigure = '' + sed -i 's|^#OPENSSL|OPENSSL|g' Makefile + + substituteInPlace "vpnc-script" \ + --replace "which" "type -P" \ + --replace "awk" "${gawk}/bin/awk" \ + --replace "/sbin/resolvconf" "${openresolv}/bin/resolvconf" + + substituteInPlace "config.c" \ + --replace "/etc/vpnc/vpnc-script" "$out/etc/vpnc/vpnc-script" + + substituteInPlace "pcf2vpnc" \ + --replace "/usr/bin/perl" "${perl}/bin/perl" + ''; + + postInstall = '' + for i in "$out/{bin,sbin}/"* + do + wrapProgram $i --prefix PATH : \ + "${nettools}/bin:${nettools}/sbin" + done + + mkdir -p $out/share/doc/vpnc + cp README nortel.txt ChangeLog $out/share/doc/vpnc/ + ''; + + meta = { + homepage = "https://www.unix-ag.uni-kl.de/~massar/vpnc/"; + description = "Virtual private network (VPN) client for Cisco's VPN concentrators"; + license = lib.licenses.gpl2Plus; + + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/tools/networking/vpnc/makefile.patch b/nixpkgs/pkgs/tools/networking/vpnc/makefile.patch new file mode 100644 index 000000000000..89a8cd6da952 --- /dev/null +++ b/nixpkgs/pkgs/tools/networking/vpnc/makefile.patch @@ -0,0 +1,22 @@ +--- vpnc-0.5.1.orig/Makefile 2008-02-10 22:22:43.000000000 +0100 ++++ vpnc-0.5.1/Makefile 2008-02-10 22:22:32.000000000 +0100 +@@ -20,8 +20,8 @@ + # $Id: Makefile 236 2007-09-05 20:40:59Z Joerg Mayer $ + + DESTDIR= +-PREFIX=/usr/local +-ETCDIR=/etc/vpnc ++PREFIX=$(out) ++ETCDIR=$(out)/etc/vpnc + BINDIR=$(PREFIX)/bin + SBINDIR=$(PREFIX)/sbin + MANDIR=$(PREFIX)/share/man +@@ -71,7 +71,7 @@ + $(CC) -o $@ $^ $(LDFLAGS) + + vpnc.8 : vpnc.8.template makeman.pl vpnc +- ./makeman.pl ++ perl makeman.pl + + cisco-decrypt : cisco-decrypt.o config.o supp.o sysdep.o vpnc-debug.o + $(CC) -o $@ $^ $(LDFLAGS) diff --git a/nixpkgs/pkgs/tools/networking/vpnc/no_default_route_when_netmask.patch b/nixpkgs/pkgs/tools/networking/vpnc/no_default_route_when_netmask.patch new file mode 100644 index 000000000000..fa12abe9b776 --- /dev/null +++ b/nixpkgs/pkgs/tools/networking/vpnc/no_default_route_when_netmask.patch @@ -0,0 +1,12 @@ +diff -uNr a/vpnc-script b/vpnc-script +--- a/vpnc-script 2015-09-06 13:19:11.408661526 +0200 ++++ b/vpnc-script 2015-09-06 14:47:40.260871556 +0200 +@@ -647,7 +647,7 @@ + echo "$i" | grep : >/dev/null || \ + set_network_route "$i" "255.255.255.255" "32" + done +- elif [ -n "$INTERNAL_IP4_ADDRESS" ]; then ++ elif [ -n "$INTERNAL_IP4_ADDRESS" -a -z "$INTERNAL_IP4_NETMASK" ]; then + set_default_route + fi + if [ -n "$CISCO_IPV6_SPLIT_INC" ]; then |