nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 stdenv,
3 lib,
4 replaceVars,
5 fetchFromGitHub,
6 autoreconfHook,
7 pkg-config,
8 gtk3,
9 gtk4,
10 networkmanager,
11 ppp,
12 xl2tpd,
13 strongswan,
14 libsecret,
15 withGnome ? true,
16 libnma,
17 libnma-gtk4,
18 glib,
19 openssl,
20 nss,
21}:
22
23stdenv.mkDerivation rec {
24 name = "${pname}${lib.optionalString withGnome "-gnome"}-${version}";
25 pname = "NetworkManager-l2tp";
26 version = "1.20.20";
27
28 src = fetchFromGitHub {
29 owner = "nm-l2tp";
30 repo = "network-manager-l2tp";
31 rev = version;
32 hash = "sha256-AmbDWBCUG9fvqA6iJopYtbitdRwv2faWvIeKN90p234=";
33 };
34
35 patches = [
36 (replaceVars ./fix-paths.patch {
37 inherit strongswan xl2tpd;
38 })
39 ];
40
41 nativeBuildInputs = [
42 autoreconfHook
43 glib # for gdbus-codegen
44 pkg-config
45 ]
46 ++ lib.optionals withGnome [
47 gtk4 # for gtk4-builder-tool
48 ];
49
50 buildInputs = [
51 networkmanager
52 ppp
53 openssl
54 nss
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 enableParallelBuilding = true;
72 strictDeps = true;
73
74 passthru = {
75 networkManagerPlugin = "VPN/nm-l2tp-service.name";
76 };
77
78 meta = with lib; {
79 description = "L2TP plugin for NetworkManager";
80 inherit (networkmanager.meta) platforms;
81 homepage = "https://github.com/nm-l2tp/network-manager-l2tp";
82 license = licenses.gpl2Plus;
83 maintainers = with maintainers; [
84 abbradar
85 obadz
86 ];
87 };
88}