summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatt McHenry <github@matt.mchenryfamily.org>2020-12-02 14:24:12 -0500
committerMatt McHenry <github@matt.mchenryfamily.org>2021-06-02 18:41:33 -0400
commit6160d7374f87af59555dc9f507075c471edf0c73 (patch)
tree64e1ae3583ba7c69aa39b4264b528f9eb300e58b
parentc2e076a76710e9c22efc4f37560787bcac93f62b (diff)
downloadnixpkgs-6160d7374f87af59555dc9f507075c471edf0c73.tar
nixpkgs-6160d7374f87af59555dc9f507075c471edf0c73.tar.gz
nixpkgs-6160d7374f87af59555dc9f507075c471edf0c73.tar.bz2
nixpkgs-6160d7374f87af59555dc9f507075c471edf0c73.tar.lz
nixpkgs-6160d7374f87af59555dc9f507075c471edf0c73.tar.xz
nixpkgs-6160d7374f87af59555dc9f507075c471edf0c73.tar.zst
nixpkgs-6160d7374f87af59555dc9f507075c471edf0c73.zip
openconnect: adapt vpnc-script for use in nix
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
-rw-r--r--pkgs/tools/networking/openconnect/default.nix12
-rw-r--r--pkgs/tools/networking/vpnc-scripts/default.nix40
-rw-r--r--pkgs/top-level/all-packages.nix2
3 files changed, 45 insertions, 9 deletions
diff --git a/pkgs/tools/networking/openconnect/default.nix b/pkgs/tools/networking/openconnect/default.nix
index 5dfbca24aab..0e1da29320f 100644
--- a/pkgs/tools/networking/openconnect/default.nix
+++ b/pkgs/tools/networking/openconnect/default.nix
@@ -8,7 +8,7 @@
 , libxml2
 , stoken
 , zlib
-, fetchgit
+, vpnc-scripts
 , PCSC
 , head ? false
   , fetchFromGitLab
@@ -17,13 +17,7 @@
 
 assert (openssl != null) == (gnutls == null);
 
-let vpnc = fetchgit {
-  url = "git://git.infradead.org/users/dwmw2/vpnc-scripts.git";
-  rev = "c0122e891f7e033f35f047dad963702199d5cb9e";
-  sha256 = "11b1ls012mb704jphqxjmqrfbbhkdjb64j2q4k8wb5jmja8jnd14";
-};
-
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "openconnect${lib.optionalString head "-head"}";
   version = if head then "2021-05-05" else "8.10";
 
@@ -42,7 +36,7 @@ in stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
 
   configureFlags = [
-    "--with-vpnc-script=${vpnc}/vpnc-script"
+    "--with-vpnc-script=${vpnc-scripts}/bin/vpnc-script"
     "--disable-nls"
     "--without-openssl-version-check"
   ];
diff --git a/pkgs/tools/networking/vpnc-scripts/default.nix b/pkgs/tools/networking/vpnc-scripts/default.nix
new file mode 100644
index 00000000000..03abd48ad9d
--- /dev/null
+++ b/pkgs/tools/networking/vpnc-scripts/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, fetchgit
+, makeWrapper
+, nettools, gawk, openresolv, coreutils, gnugrep
+}:
+
+stdenv.mkDerivation {
+  pname = "vpnc-scripts";
+  version = "unstable-2020-02-21";
+  src = fetchgit {
+    url = "git://git.infradead.org/users/dwmw2/vpnc-scripts.git";
+    rev = "c0122e891f7e033f35f047dad963702199d5cb9e";
+    sha256 = "11b1ls012mb704jphqxjmqrfbbhkdjb64j2q4k8wb5jmja8jnd14";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp vpnc-script $out/bin
+  '';
+
+  preFixup = ''
+    substituteInPlace $out/bin/vpnc-script \
+      --replace "which" "type -P"
+  '' + lib.optionalString stdenv.isLinux ''
+    substituteInPlace $out/bin/vpnc-script \
+      --replace "/sbin/resolvconf" "${openresolv}/bin/resolvconf"
+  '' + ''
+    wrapProgram $out/bin/vpnc-script \
+      --prefix PATH : "${lib.makeBinPath ([ nettools gawk coreutils gnugrep ] ++ lib.optionals stdenv.isLinux [ openresolv ])}"
+  '';
+
+  meta = with lib; {
+    description = "script for vpnc to configure the network routing and name service";
+    homepage = "https://www.infradead.org/openconnect/";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ jerith666 ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 59fcc802794..10a416ae5b7 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -9456,6 +9456,8 @@ in
 
   vpnc = callPackage ../tools/networking/vpnc { };
 
+  vpnc-scripts = callPackage ../tools/networking/vpnc-scripts { };
+
   vpn-slice = python3Packages.callPackage ../tools/networking/vpn-slice { };
 
   vp = callPackage ../applications/misc/vp {