tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
connman: cleanup build from the groundup
Doron Behar
5 years ago
53d8831b
50ce1e64
+121
-32
1 changed file
expand all
collapse all
unified
split
pkgs
tools
networking
connman
default.nix
+121
-32
pkgs/tools/networking/connman/default.nix
···
1
{ stdenv
2
, fetchurl
3
, pkgconfig
4
-
, openconnect
5
, file
6
-
openvpn
7
-
, vpnc
8
, glib
0
9
, dbus
10
-
, iptables
11
, gnutls
12
-
, polkit,
13
, readline
14
-
, pptp
15
-
, ppp
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
16
}:
17
0
0
0
18
stdenv.mkDerivation rec {
19
pname = "connman";
20
version = "1.38";
···
24
};
25
26
buildInputs = [
27
-
openconnect
28
-
polkit
29
-
openvpn
30
-
vpnc
31
glib
32
dbus
33
libmnl
34
-
iptables
35
gnutls
36
readline
37
-
pptp
38
-
ppp
39
];
40
41
nativeBuildInputs = [
42
pkgconfig
43
file
44
-
];
0
0
0
0
0
0
0
0
45
0
46
preConfigure = ''
47
sed -i "s/\/usr\/bin\/file/file/g" ./configure
48
'';
49
50
configureFlags = [
0
51
"--sysconfdir=${placeholder "out"}/etc"
52
"--localstatedir=/var"
53
"--with-dbusconfdir=${placeholder "out"}/share"
54
"--with-dbusdatadir=${placeholder "out"}/share"
0
0
0
0
0
55
"--disable-maintainer-mode"
56
-
"--enable-openconnect=builtin"
57
-
"--with-openconnect=${openconnect}/sbin/openconnect"
58
-
"--enable-openvpn=builtin"
59
-
"--with-openvpn=${openvpn}/sbin/openvpn"
60
-
"--enable-vpnc=builtin"
61
-
"--with-vpnc=${vpnc}/sbin/vpnc"
62
"--enable-session-policy-local=builtin"
63
-
"--enable-client"
64
-
"--enable-bluetooth"
65
-
"--enable-wifi"
66
-
"--enable-polkit"
67
"--enable-tools"
68
-
"--enable-datafiles"
69
-
"--enable-pptp"
70
-
"--with-pptp=${pptp}/sbin/pptp"
71
-
"--enable-iwd"
72
-
];
73
-
doCheck = true;
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
74
75
-
outputs = [ "out" "dev" ];
76
77
meta = with stdenv.lib; {
78
description = "A daemon for managing internet connections";
···
1
{ stdenv
2
, fetchurl
3
, pkgconfig
0
4
, file
0
0
5
, glib
6
+
# always required runtime dependencies
7
, dbus
8
+
, libmnl
9
, gnutls
0
10
, readline
11
+
# Choices one has to decide
12
+
, firewallType ? "iptables" # or "nftables"
13
+
, iptables ? null
14
+
, libnftnl ? null # for nftables
15
+
, dnsType ? "internal" # or "systemd-resolved"
16
+
# optional features which are turned *on* by default
17
+
, enableOpenconnect ? true
18
+
, openconnect ? null
19
+
, enableOpenvpn ? true
20
+
, openvpn ? null
21
+
, enableVpnc ? true
22
+
, vpnc ? true
23
+
, enablePolkit ? true
24
+
, polkit ? null
25
+
, enablePptp ? true
26
+
, pptp ? null
27
+
, ppp ? null
28
+
, enableLoopback ? true
29
+
, enableEthernet ? true
30
+
, enableWireguard ? true
31
+
, enableGadget ? true
32
+
, enableWifi ? true
33
+
, enableBluetooth ? true
34
+
, enableOfono ? true
35
+
, enableDundee ? true
36
+
, enablePacrunner ? true
37
+
, enableNeard ? true
38
+
, enableWispr ? true
39
+
, enableTools ? true
40
+
, enableStats ? true
41
+
, enableClient ? true
42
+
, enableDatafiles ? true
43
+
# optional features which are turned *off* by default
44
+
, enableNetworkManager ? false
45
+
, networkmanager ? null
46
+
, enableHh2serialGps ? false
47
+
, enableL2tp ? false
48
+
, enableIospm ? false
49
+
, enableTist ? false
50
}:
51
52
+
assert stdenv.lib.asserts.assertOneOf "firewallType" firewallType [ "iptables" "nftables" ];
53
+
assert stdenv.lib.asserts.assertOneOf "dnsType" dnsType [ "internal" "systemd-resolved" ];
54
+
55
stdenv.mkDerivation rec {
56
pname = "connman";
57
version = "1.38";
···
61
};
62
63
buildInputs = [
0
0
0
0
64
glib
65
dbus
66
libmnl
0
67
gnutls
68
readline
0
0
69
];
70
71
nativeBuildInputs = [
72
pkgconfig
73
file
74
+
]
75
+
++ stdenv.lib.optionals (enableOpenvpn) [ openvpn ]
76
+
++ stdenv.lib.optionals (enableOpenconnect) [ openconnect ]
77
+
++ stdenv.lib.optionals (enableVpnc) [ vpnc ]
78
+
++ stdenv.lib.optionals (enablePolkit) [ polkit ]
79
+
++ stdenv.lib.optionals (enablePptp) [ pptp ppp ]
80
+
++ stdenv.lib.optionals (firewallType == "iptables") [ iptables ]
81
+
++ stdenv.lib.optionals (firewallType == "nftables") [ libnftnl ]
82
+
;
83
84
+
# Fix file program not found
85
preConfigure = ''
86
sed -i "s/\/usr\/bin\/file/file/g" ./configure
87
'';
88
89
configureFlags = [
90
+
# directories flags
91
"--sysconfdir=${placeholder "out"}/etc"
92
"--localstatedir=/var"
93
"--with-dbusconfdir=${placeholder "out"}/share"
94
"--with-dbusdatadir=${placeholder "out"}/share"
95
+
"--with-tmpfilesdir=${placeholder "out"}/lib/tmpfiles.d"
96
+
"--with-systemdunitdir=${placeholder "out"}/lib/systemd/system"
97
+
"--with-dns-backend=${dnsType}"
98
+
"--with-firewall=${firewallType}"
99
+
# production build flags
100
"--disable-maintainer-mode"
0
0
0
0
0
0
101
"--enable-session-policy-local=builtin"
102
+
# This is for building and running tests (probably enabled by default),
103
+
# --enable-tests installs the tests as well
0
0
104
"--enable-tools"
105
+
]
106
+
++ stdenv.lib.optionals (!enableLoopback) [ "--disable-loopback" ]
107
+
++ stdenv.lib.optionals (!enableEthernet) [ "--disable-ethernet" ]
108
+
++ stdenv.lib.optionals (!enableWireguard) [ "--disable-wireguard" ]
109
+
++ stdenv.lib.optionals (!enableGadget) [ "--disable-gadget" ]
110
+
++ stdenv.lib.optionals (!enableWifi) [ "--disable-wifi" ]
111
+
# We (almost) always turn on IWD support as it doesn't require any new dependencies
112
+
# and it's easier for the NixOS module to use only 1 connmand package when
113
+
# IWD is requested
114
+
++ stdenv.lib.optionals (enableWifi) [ "--enable-iwd" ]
115
+
++ stdenv.lib.optionals (!enableBluetooth) [ "--disable-bluetooth" ]
116
+
++ stdenv.lib.optionals (!enableOfono) [ "--disable-ofono" ]
117
+
++ stdenv.lib.optionals (!enableDundee) [ "--disable-dundee" ]
118
+
++ stdenv.lib.optionals (!enablePacrunner) [ "--disable-pacrunner" ]
119
+
++ stdenv.lib.optionals (!enableNeard) [ "--disable-neard" ]
120
+
++ stdenv.lib.optionals (!enableWispr) [ "--disable-wispr" ]
121
+
++ stdenv.lib.optionals (!enableTools) [ "--disable-tools" ]
122
+
++ stdenv.lib.optionals (!enableStats) [ "--disable-stats" ]
123
+
++ stdenv.lib.optionals (!enableClient) [ "--disable-client" ]
124
+
++ stdenv.lib.optionals (!enableDatafiles) [ "--disable-datafiles" ]
125
+
++ stdenv.lib.optionals (enableOpenconnect) [
126
+
"--enable-openconnect=builtin"
127
+
"--with-openconnect=${openconnect}/sbin/openconnect"
128
+
]
129
+
++ stdenv.lib.optionals (enableOpenvpn) [
130
+
"--enable-openvpn=builtin"
131
+
"--with-openvpn=${openvpn}/sbin/openvpn"
132
+
]
133
+
++ stdenv.lib.optionals (enableVpnc) [
134
+
"--enable-vpnc=builtin"
135
+
"--with-vpnc=${vpnc}/sbin/vpnc"
136
+
]
137
+
++ stdenv.lib.optionals (enablePolkit) [
138
+
"--enable-polkit"
139
+
]
140
+
++ stdenv.lib.optionals (enablePptp) [
141
+
"--enable-pptp"
142
+
"--with-pptp=${pptp}/sbin/pptp"
143
+
]
144
+
++ stdenv.lib.optionals (!enableWireguard) [
145
+
"--disable-wireguard"
146
+
]
147
+
++ stdenv.lib.optionals (enableNetworkManager) [
148
+
"--enable-nmcompat"
149
+
]
150
+
++ stdenv.lib.optionals (enableHh2serialGps) [
151
+
"--enable-hh2serial-gps"
152
+
]
153
+
++ stdenv.lib.optionals (enableL2tp) [
154
+
"--enable-l2tp"
155
+
]
156
+
++ stdenv.lib.optionals (enableIospm) [
157
+
"--enable-iospm"
158
+
]
159
+
++ stdenv.lib.optionals (enableTist) [
160
+
"--enable-tist"
161
+
]
162
+
;
163
164
+
doCheck = true;
165
166
meta = with stdenv.lib; {
167
description = "A daemon for managing internet connections";