summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/tools/networking/vpnc/default.nix65
-rw-r--r--pkgs/tools/networking/vpnc/no_default_route_when_netmask.patch12
2 files changed, 22 insertions, 55 deletions
diff --git a/pkgs/tools/networking/vpnc/default.nix b/pkgs/tools/networking/vpnc/default.nix
index 31a4262d8a6..2ae78d68c42 100644
--- a/pkgs/tools/networking/vpnc/default.nix
+++ b/pkgs/tools/networking/vpnc/default.nix
@@ -1,28 +1,28 @@
-{ lib, stdenv, fetchsvn
-, makeWrapper, pkg-config
-, gawk, gnutls, libgcrypt, nettools, openresolv, perl
+{ lib, stdenv, fetchFromGitHub, fetchpatch
+, makeWrapper, pkg-config, perl
+, gawk, gnutls, libgcrypt, openresolv, vpnc-scripts
 , opensslSupport ? false, openssl # Distributing this is a GPL violation.
 }:
 
 stdenv.mkDerivation {
-  pname = "vpnc";
-  version = "0.5.3-post-r550";
-  src = fetchsvn {
-    url = "https://svn.unix-ag.uni-kl.de/vpnc";
-    rev = "550";
-    sha256 = "0x4ckfv9lpykwmh28v1kyzz91y1j2v48fi8q5nsawrba4q0wlrls";
+  pname = "vpnc-unstable";
+  version = "2021-01-31";
+
+  src = fetchFromGitHub {
+    owner = "streambinder";
+    repo = "vpnc";
+    rev = "43780cecd7a61668002f73b6f8b9f9ba61af74ad";
+    sha256 = "1sbnvp8117qiklc5xghdhx2i310p5wgjgjg7dr6xj48i167ks1zv";
+    fetchSubmodules = true;
   };
 
-  postUnpack = ''
-    mv $sourceRoot/trunk/* $sourceRoot/.
-    rm -r $sourceRoot/{trunk,branches,tags}
-  '';
-
-  patches = [ ./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 ];
+  patches = [
+    # Don't do networking during build.
+    (fetchpatch {
+      url = "https://github.com/streambinder/vpnc/commit/9f4e3ab1f51c8c5ff27b8290f5a533a87d85c011.patch";
+      sha256 = "1h029954q9qy2kcrj6dzprgrjvr12lk96yy8dgva9nr4ghidy18a";
+    })
+  ];
 
   nativeBuildInputs = [ makeWrapper ]
     ++ lib.optional (!opensslSupport) pkg-config;
@@ -32,36 +32,15 @@ stdenv.mkDerivation {
   makeFlags = [
     "PREFIX=$(out)"
     "ETCDIR=$(out)/etc/vpnc"
-    "SCRIPT_PATH=$(out)/etc/vpnc/vpnc-script"
+    "SCRIPT_PATH=${vpnc-scripts}/bin/vpnc-script"
   ] ++ lib.optional opensslSupport "OPENSSL_GPL_VIOLATION=yes";
 
   postPatch = ''
-    patchShebangs makeman.pl
-  '';
-
-  preConfigure = ''
-    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"
-  '';
-
-  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/
+    patchShebangs src/makeman.pl
   '';
 
   meta = with lib; {
-    homepage = "https://www.unix-ag.uni-kl.de/~massar/vpnc/";
+    homepage = "https://davidepucci.it/doc/vpnc/";
     description = "Virtual private network (VPN) client for Cisco's VPN concentrators";
     license = if opensslSupport then licenses.unfree else licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/tools/networking/vpnc/no_default_route_when_netmask.patch b/pkgs/tools/networking/vpnc/no_default_route_when_netmask.patch
deleted file mode 100644
index fa12abe9b77..00000000000
--- a/pkgs/tools/networking/vpnc/no_default_route_when_netmask.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-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