summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2018-08-09 16:25:30 +0200
committerJan Tojnar <jtojnar@gmail.com>2018-08-09 18:17:26 +0200
commit7f175f2ad770f66d9ca91781fb121b917a7b4a0d (patch)
tree813f37cb30210e1cdad45762c9af7bee7f8cc6c6 /pkgs/tools
parentbababf31c04c3c8709fae429e069a8deeb23bc08 (diff)
downloadnixlib-7f175f2ad770f66d9ca91781fb121b917a7b4a0d.tar
nixlib-7f175f2ad770f66d9ca91781fb121b917a7b4a0d.tar.gz
nixlib-7f175f2ad770f66d9ca91781fb121b917a7b4a0d.tar.bz2
nixlib-7f175f2ad770f66d9ca91781fb121b917a7b4a0d.tar.lz
nixlib-7f175f2ad770f66d9ca91781fb121b917a7b4a0d.tar.xz
nixlib-7f175f2ad770f66d9ca91781fb121b917a7b4a0d.tar.zst
nixlib-7f175f2ad770f66d9ca91781fb121b917a7b4a0d.zip
networkmanager-vpnc: clean up
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/networking/network-manager/vpnc/default.nix37
-rw-r--r--pkgs/tools/networking/network-manager/vpnc/fix-paths.patch31
2 files changed, 48 insertions, 20 deletions
diff --git a/pkgs/tools/networking/network-manager/vpnc/default.nix b/pkgs/tools/networking/network-manager/vpnc/default.nix
index 577e04f6648d..d2b3a345d495 100644
--- a/pkgs/tools/networking/network-manager/vpnc/default.nix
+++ b/pkgs/tools/networking/network-manager/vpnc/default.nix
@@ -1,35 +1,32 @@
-{ stdenv, fetchurl, vpnc, intltool, pkgconfig, networkmanager, libsecret
-, withGnome ? true, gnome3, procps, kmod, file }:
+{ stdenv, fetchurl, substituteAll, vpnc, intltool, pkgconfig, networkmanager, libsecret
+, withGnome ? true, gnome3, kmod, file }:
 let
-  pname   = "NetworkManager-vpnc";
+  pname = "NetworkManager-vpnc";
   version = "1.2.6";
 in stdenv.mkDerivation rec {
-  name    = "${pname}${if withGnome then "-gnome" else ""}-${version}";
+  name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
 
   src = fetchurl {
-    url    = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy";
   };
 
-  buildInputs = [ vpnc networkmanager libsecret ]
-    ++ stdenv.lib.optionals withGnome [ gnome3.gtk gnome3.libgnome-keyring
-                                        gnome3.networkmanagerapplet ];
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit vpnc kmod;
+    })
+  ];
+
+  buildInputs = [ vpnc networkmanager ]
+    ++ stdenv.lib.optionals withGnome [ gnome3.gtk libsecret gnome3.networkmanagerapplet ];
 
   nativeBuildInputs = [ intltool pkgconfig file ];
 
   configureFlags = [
-    "${if withGnome then "--with-gnome --with-gtkver=3" else "--without-gnome"}"
-    "--disable-static"
+    "--with-gnome=${if withGnome then "yes" else "no"}"
   ];
 
-  preConfigure = ''
-     substituteInPlace "configure" \
-       --replace "/sbin/sysctl" "${procps}/bin/sysctl"
-     substituteInPlace "src/nm-vpnc-service.c" \
-       --replace "/sbin/vpnc" "${vpnc}/bin/vpnc" \
-       --replace "/sbin/modprobe" "${kmod}/bin/modprobe"
-  '';
-
   passthru = {
     updateScript = gnome3.updateScript {
       packageName = pname;
@@ -37,9 +34,9 @@ in stdenv.mkDerivation rec {
     };
   };
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "NetworkManager's VPNC plugin";
     inherit (networkmanager.meta) maintainers platforms;
+    license = licenses.gpl2Plus;
   };
 }
-
diff --git a/pkgs/tools/networking/network-manager/vpnc/fix-paths.patch b/pkgs/tools/networking/network-manager/vpnc/fix-paths.patch
new file mode 100644
index 000000000000..98238ac01f76
--- /dev/null
+++ b/pkgs/tools/networking/network-manager/vpnc/fix-paths.patch
@@ -0,0 +1,31 @@
+--- a/properties/nm-vpnc-editor-plugin.c
++++ b/properties/nm-vpnc-editor-plugin.c
+@@ -161,7 +161,7 @@
+ 	GError *error = NULL;
+ 
+ 	const char *decrypt_possible_paths[] = {
+-		"/usr/lib/vpnc/cisco-decrypt",
++		"@vpnc@/bin/cisco-decrypt",
+ 		"/usr/bin/cisco-decrypt",
+ 		NULL
+ 	};
+--- a/src/nm-vpnc-service.c
++++ b/src/nm-vpnc-service.c
+@@ -610,7 +610,7 @@
+ find_vpnc (void)
+ {
+ 	static const char *vpnc_paths[] = {
+-		"/usr/sbin/vpnc",
++		"@vpnc@/bin/vpnc",
+ 		"/sbin/vpnc",
+ 		"/usr/local/sbin/vpnc",
+ 		NULL
+@@ -1308,7 +1308,7 @@
+ 	_LOGD ("   vpnc interactive mode is %s", interactive_available ? "enabled" : "disabled");
+ 	_LOGD ("   uses%s --bus-name \"%s\"", bus_name_free ? "" : " default", bus_name);
+ 
+-	if (system ("/sbin/modprobe tun") == -1)
++	if (system ("@kmod@/bin/modprobe tun") == -1)
+ 		exit (EXIT_FAILURE);
+ 
+ 	plugin = nm_vpnc_plugin_new (bus_name);