about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/networking/vpnc
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/networking/vpnc')
-rw-r--r--nixpkgs/pkgs/tools/networking/vpnc/default.nix58
-rw-r--r--nixpkgs/pkgs/tools/networking/vpnc/makefile.patch22
-rw-r--r--nixpkgs/pkgs/tools/networking/vpnc/no_default_route_when_netmask.patch12
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