nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 stdenv,
3 lib,
4 fetchurl,
5 replaceVars,
6 openfortivpn,
7 autoreconfHook,
8 gettext,
9 pkg-config,
10 file,
11 glib,
12 gtk3,
13 gtk4,
14 networkmanager,
15 ppp,
16 libsecret,
17 withGnome ? true,
18 gnome,
19 libnma,
20 libnma-gtk4,
21}:
22
23stdenv.mkDerivation rec {
24 pname = "NetworkManager-fortisslvpn";
25 version = "1.4.0";
26 name = "${pname}${lib.optionalString withGnome "-gnome"}-${version}";
27
28 src = fetchurl {
29 url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
30 sha256 = "sFXiY0m1FrI1hXmKs+9XtDawFIAOkqiscyz8jnbF2vo=";
31 };
32
33 patches = [
34 (replaceVars ./fix-paths.patch {
35 inherit openfortivpn;
36 })
37 ./support-ppp-2.5.0.patch
38 ];
39
40 strictDeps = true;
41
42 nativeBuildInputs = [
43 autoreconfHook
44 gettext
45 pkg-config
46 file
47 glib
48 ];
49
50 buildInputs = [
51 openfortivpn
52 networkmanager
53 ppp
54 glib
55 ]
56 ++ lib.optionals withGnome [
57 gtk3
58 gtk4
59 libsecret
60 libnma
61 libnma-gtk4
62 ];
63
64 configureFlags = [
65 "--with-gnome=${if withGnome then "yes" else "no"}"
66 "--with-gtk4=${if withGnome then "yes" else "no"}"
67 "--localstatedir=/var"
68 "--enable-absolute-paths"
69 ];
70
71 installFlags = [
72 # the installer only creates an empty directory in localstatedir, so
73 # we can drop it
74 "localstatedir=."
75 ];
76
77 passthru = {
78 updateScript = gnome.updateScript {
79 packageName = pname;
80 attrPath = "networkmanager-fortisslvpn";
81 versionPolicy = "odd-unstable";
82 };
83 networkManagerPlugin = "VPN/nm-fortisslvpn-service.name";
84 networkManagerTmpfilesRules = [
85 "d /var/lib/NetworkManager-fortisslvpn 0700 root root -"
86 ];
87 };
88
89 meta = with lib; {
90 description = "NetworkManager’s FortiSSL plugin";
91 inherit (networkmanager.meta) maintainers teams platforms;
92 license = licenses.gpl2Plus;
93 };
94}