diff options
Diffstat (limited to 'pkgs/tools/networking/network-manager/vpnc')
-rw-r--r-- | pkgs/tools/networking/network-manager/vpnc/default.nix | 42 | ||||
-rw-r--r-- | pkgs/tools/networking/network-manager/vpnc/fix-paths.patch | 31 |
2 files changed, 73 insertions, 0 deletions
diff --git a/pkgs/tools/networking/network-manager/vpnc/default.nix b/pkgs/tools/networking/network-manager/vpnc/default.nix new file mode 100644 index 000000000000..d2b3a345d495 --- /dev/null +++ b/pkgs/tools/networking/network-manager/vpnc/default.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchurl, substituteAll, vpnc, intltool, pkgconfig, networkmanager, libsecret +, withGnome ? true, gnome3, kmod, file }: +let + pname = "NetworkManager-vpnc"; + version = "1.2.6"; +in stdenv.mkDerivation rec { + name = "${pname}${if withGnome then "-gnome" else ""}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"; + }; + + 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 = [ + "--with-gnome=${if withGnome then "yes" else "no"}" + ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + attrPath = "networkmanager-vpnc"; + }; + }; + + 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); |