about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/networking/network-manager/fortisslvpn/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/networking/network-manager/fortisslvpn/default.nix')
-rw-r--r--nixpkgs/pkgs/tools/networking/network-manager/fortisslvpn/default.nix83
1 files changed, 83 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/networking/network-manager/fortisslvpn/default.nix b/nixpkgs/pkgs/tools/networking/network-manager/fortisslvpn/default.nix
new file mode 100644
index 000000000000..3cc4133b41cf
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/network-manager/fortisslvpn/default.nix
@@ -0,0 +1,83 @@
+{ stdenv
+, fetchurl
+, substituteAll
+, openfortivpn
+, gettext
+, pkg-config
+, file
+, glib
+, gtk3
+, networkmanager
+, ppp
+, libsecret
+, withGnome ? true
+, gnome3
+, fetchpatch
+, libnma
+}:
+
+stdenv.mkDerivation rec {
+  pname = "NetworkManager-fortisslvpn";
+  version = "1.2.10";
+  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 = "1sw66cxgs4in4cjp1cm95c5ijsk8xbbmq4ykg2jwqwgz6cf2lr3s";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit openfortivpn;
+    })
+
+    # Don't use etc/dbus-1/system.d
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/NetworkManager-fortisslvpn/merge_requests/11.patch";
+      sha256 = "0l7l2r1njh62lh2pf497ibf99sgkvjsj58xr76qx3jxgq9zfw6n9";
+    })
+  ];
+
+  nativeBuildInputs = [
+    gettext
+    pkg-config
+    file
+  ];
+
+  buildInputs = [
+    openfortivpn
+    networkmanager
+    ppp
+    glib
+  ] ++ stdenv.lib.optionals withGnome [
+    gtk3
+    libsecret
+    libnma
+  ];
+
+  configureFlags = [
+    "--with-gnome=${if withGnome then "yes" else "no"}"
+    "--localstatedir=/var"
+    "--enable-absolute-paths"
+  ];
+
+  installFlags = [
+    # the installer only creates an empty directory in localstatedir, so
+    # we can drop it
+    "localstatedir=."
+  ];
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "networkmanager-fortisslvpn";
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "NetworkManager’s FortiSSL plugin";
+    inherit (networkmanager.meta) maintainers platforms;
+    license = licenses.gpl2;
+  };
+}