diff options
Diffstat (limited to 'meta-networking/recipes-connectivity/networkmanager/networkmanager_1.48.10.bb')
-rw-r--r-- | meta-networking/recipes-connectivity/networkmanager/networkmanager_1.48.10.bb | 326 |
1 files changed, 326 insertions, 0 deletions
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.48.10.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.48.10.bb new file mode 100644 index 000000000..a9b9233b7 --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.48.10.bb | |||
@@ -0,0 +1,326 @@ | |||
1 | SUMMARY = "NetworkManager is a program for providing detection and \ | ||
2 | configuration for systems to automatically connect to networks." | ||
3 | |||
4 | DESCRIPTION = "NetworkManager is a program for providing detection and \ | ||
5 | configuration for systems to automatically connect to networks. \ | ||
6 | NetworkManager's functionality can be useful for both wireless and wired \ | ||
7 | networks. For wireless networks, NetworkManager prefers known wireless \ | ||
8 | networks and has the ability to switch to the most reliable network. \ | ||
9 | NetworkManager-aware applications can switch from online and offline mode. \ | ||
10 | NetworkManager also prefers wired connections over wireless ones, has support \ | ||
11 | for modem connections and certain types of VPN." | ||
12 | |||
13 | HOMEPAGE = "https://wiki.gnome.org/Projects/NetworkManager" | ||
14 | SECTION = "net/misc" | ||
15 | |||
16 | LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" | ||
17 | LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ | ||
18 | file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c \ | ||
19 | " | ||
20 | |||
21 | DEPENDS = " \ | ||
22 | glib-2.0 \ | ||
23 | python3-pygobject-native \ | ||
24 | coreutils-native \ | ||
25 | intltool-native \ | ||
26 | libxslt-native \ | ||
27 | libnl \ | ||
28 | udev \ | ||
29 | util-linux \ | ||
30 | libndp \ | ||
31 | curl \ | ||
32 | dbus \ | ||
33 | " | ||
34 | DEPENDS:append:class-target = " bash-completion" | ||
35 | |||
36 | inherit gnomebase gettext update-rc.d systemd gobject-introspection gtk-doc update-alternatives upstream-version-is-even | ||
37 | |||
38 | SRC_URI = " \ | ||
39 | ${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \ | ||
40 | file://${BPN}.initd \ | ||
41 | file://enable-dhcpcd.conf \ | ||
42 | file://enable-iwd.conf \ | ||
43 | file://0001-libnm-systemd-core-Disable-sd_dhcp6_client_set_duid_.patch \ | ||
44 | " | ||
45 | SRC_URI:append:libc-musl = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' file://0001-linker-scripts-Do-not-export-_IO_stdin_used.patch', '', d)}" | ||
46 | |||
47 | SRC_URI[sha256sum] = "5dc188fdffcf2d23c89d34b1e6319a6b20203e12eaec24b30037b7ea8ac8c613" | ||
48 | |||
49 | S = "${WORKDIR}/NetworkManager-${PV}" | ||
50 | |||
51 | # ['auto', 'symlink', 'file', 'netconfig', 'resolvconf'] | ||
52 | NETWORKMANAGER_DNS_RC_MANAGER_DEFAULT ??= "auto" | ||
53 | |||
54 | # ['dhcpcanon', 'dhclient', 'dhcpcd', 'internal', 'nettools'] | ||
55 | NETWORKMANAGER_DHCP_DEFAULT ??= "internal" | ||
56 | |||
57 | # The default gets detected based on whether /usr/sbin/nft or /usr/sbin/iptables is installed, with nftables preferred. | ||
58 | # ['', 'iptables', 'nftables'] | ||
59 | NETWORKMANAGER_FIREWALL_DEFAULT ??= "nftables" | ||
60 | |||
61 | EXTRA_OEMESON = "\ | ||
62 | -Difcfg_rh=false \ | ||
63 | -Dtests=yes \ | ||
64 | -Dnmtui=true \ | ||
65 | -Dudev_dir=${nonarch_base_libdir}/udev \ | ||
66 | -Dlibpsl=false \ | ||
67 | -Dqt=false \ | ||
68 | -Dconfig_dns_rc_manager_default=${NETWORKMANAGER_DNS_RC_MANAGER_DEFAULT} \ | ||
69 | -Dconfig_dhcp_default=${NETWORKMANAGER_DHCP_DEFAULT} \ | ||
70 | -Ddhcpcanon=false \ | ||
71 | -Diptables=${sbindir}/iptables \ | ||
72 | -Dnft=${sbindir}/nft \ | ||
73 | " | ||
74 | |||
75 | # stolen from https://github.com/void-linux/void-packages/blob/master/srcpkgs/NetworkManager/template | ||
76 | # avoids: | ||
77 | # | ../NetworkManager-1.16.0/libnm-core/nm-json.c:106:50: error: 'RTLD_DEEPBIND' undeclared (first use in this function); did you mean 'RTLD_DEFAULT'? | ||
78 | CFLAGS:append:libc-musl = " \ | ||
79 | -DRTLD_DEEPBIND=0 \ | ||
80 | " | ||
81 | do_configure:prepend() { | ||
82 | cp -f ${STAGING_LIBDIR}/girepository-1.0/GLib*typelib ${STAGING_LIBDIR_NATIVE}/girepository-1.0/ | ||
83 | cp -f ${STAGING_LIBDIR}/girepository-1.0/GObject*typelib ${STAGING_LIBDIR_NATIVE}/girepository-1.0/ | ||
84 | cp -f ${STAGING_LIBDIR}/girepository-1.0/Gio*typelib ${STAGING_LIBDIR_NATIVE}/girepository-1.0/ | ||
85 | cp -f ${STAGING_LIBDIR}/girepository-1.0/GModule*typelib ${STAGING_LIBDIR_NATIVE}/girepository-1.0/ | ||
86 | } | ||
87 | |||
88 | PACKAGECONFIG ??= "readline nss ifupdown dnsmasq nmcli vala \ | ||
89 | ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \ | ||
90 | ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5', '', d)} \ | ||
91 | ${@bb.utils.filter('DISTRO_FEATURES', 'wifi polkit ppp', d)} \ | ||
92 | ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux audit', '', d)} \ | ||
93 | " | ||
94 | |||
95 | inherit ${@bb.utils.contains('PACKAGECONFIG', 'vala', 'vala', '', d)} | ||
96 | |||
97 | PACKAGECONFIG[systemd] = "\ | ||
98 | -Dsystemdsystemunitdir=${systemd_unitdir}/system -Dsession_tracking=systemd,\ | ||
99 | -Dsystemdsystemunitdir=no -Dsystemd_journal=false -Dsession_tracking=no\ | ||
100 | " | ||
101 | PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false,polkit" | ||
102 | PACKAGECONFIG[bluez5] = "-Dbluez5_dun=true,-Dbluez5_dun=false,bluez5" | ||
103 | # consolekit is not picked by shlibs, so add it to RDEPENDS too | ||
104 | PACKAGECONFIG[consolekit] = "-Dsession_tracking_consolekit=true,-Dsession_tracking_consolekit=false,consolekit,consolekit" | ||
105 | PACKAGECONFIG[modemmanager] = "-Dmodem_manager=true,-Dmodem_manager=false,modemmanager mobile-broadband-provider-info" | ||
106 | PACKAGECONFIG[ppp] = "-Dppp=true -Dpppd=${sbindir}/pppd,-Dppp=false,ppp" | ||
107 | PACKAGECONFIG[dnsmasq] = "-Ddnsmasq=${bindir}/dnsmasq" | ||
108 | PACKAGECONFIG[nss] = "-Dcrypto=nss,,nss" | ||
109 | PACKAGECONFIG[resolvconf] = "-Dresolvconf=${base_sbindir}/resolvconf,-Dresolvconf=no,,resolvconf" | ||
110 | PACKAGECONFIG[gnutls] = "-Dcrypto=gnutls,,gnutls" | ||
111 | PACKAGECONFIG[crypto-null] = "-Dcrypto=null" | ||
112 | PACKAGECONFIG[wifi] = "-Dwext=true -Dwifi=true,-Dwext=false -Dwifi=false" | ||
113 | PACKAGECONFIG[iwd] = "-Diwd=true,-Diwd=false" | ||
114 | PACKAGECONFIG[ifupdown] = "-Difupdown=true,-Difupdown=false" | ||
115 | PACKAGECONFIG[cloud-setup] = "-Dnm_cloud_setup=true,-Dnm_cloud_setup=false" | ||
116 | PACKAGECONFIG[nmcli] = "-Dnmcli=true,-Dnmcli=false" | ||
117 | PACKAGECONFIG[nmtui] = "-Dnmtui=true,-Dnmtui=false,libnewt" | ||
118 | PACKAGECONFIG[readline] = "-Dreadline=libreadline,,readline" | ||
119 | PACKAGECONFIG[libedit] = "-Dreadline=libedit,,libedit" | ||
120 | PACKAGECONFIG[ovs] = "-Dovs=true,-Dovs=false,jansson" | ||
121 | PACKAGECONFIG[audit] = "-Dlibaudit=yes,-Dlibaudit=no" | ||
122 | PACKAGECONFIG[selinux] = "-Dselinux=true,-Dselinux=false,libselinux" | ||
123 | PACKAGECONFIG[vala] = "-Dvapi=true,-Dvapi=false" | ||
124 | PACKAGECONFIG[dhcpcd] = "-Ddhcpcd=${base_sbindir}/dhcpcd,-Ddhcpcd=no,,dhcpcd" | ||
125 | PACKAGECONFIG[dhclient] = "-Ddhclient=yes,-Ddhclient=no,,dhcp" | ||
126 | PACKAGECONFIG[concheck] = "-Dconcheck=true,-Dconcheck=false" | ||
127 | PACKAGECONFIG[adsl] = ",," | ||
128 | PACKAGECONFIG[wwan] = ",," | ||
129 | # The following PACKAGECONFIG is used to determine whether NM is managing /etc/resolv.conf itself or not | ||
130 | PACKAGECONFIG[man-resolv-conf] = ",," | ||
131 | |||
132 | |||
133 | PACKAGES =+ " \ | ||
134 | libnm \ | ||
135 | ${PN}-adsl \ | ||
136 | ${PN}-bluetooth \ | ||
137 | ${PN}-cloud-setup \ | ||
138 | ${PN}-nmcli \ | ||
139 | ${PN}-nmcli-bash-completion \ | ||
140 | ${PN}-nmtui \ | ||
141 | ${PN}-wifi \ | ||
142 | ${PN}-wwan \ | ||
143 | ${PN}-ovs \ | ||
144 | ${PN}-ppp \ | ||
145 | ${PN}-daemon \ | ||
146 | " | ||
147 | |||
148 | SYSTEMD_PACKAGES = "${PN}-daemon ${PN}-cloud-setup" | ||
149 | INITSCRIPT_PACKAGES = "${PN}-daemon" | ||
150 | |||
151 | NETWORKMANAGER_PLUGINDIR = "${libdir}/NetworkManager/${PV}" | ||
152 | NETWORKMANAGER_DISPATCHERDIR = "${nonarch_libdir}/NetworkManager/dispatcher.d" | ||
153 | |||
154 | |||
155 | SUMMARY:libnm = "Libraries for adding NetworkManager support to applications" | ||
156 | FILES:libnm = "\ | ||
157 | ${libdir}/libnm.so.* \ | ||
158 | ${libdir}/girepository-1.0/NM-1.0.typelib \ | ||
159 | " | ||
160 | |||
161 | SUMMARY:${PN}-adsl = "ADSL device plugin for NetworkManager" | ||
162 | FILES:${PN}-adsl = "${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-adsl.so" | ||
163 | RDEPENDS:${PN}-adsl += "${PN}-daemon" | ||
164 | |||
165 | SUMMARY:${PN}-bluetooth = "Bluetooth device plugin for NetworkManager" | ||
166 | FILES:${PN}-bluetooth = "${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-bluetooth.so" | ||
167 | RDEPENDS:${PN}-bluetooth += "${PN}-daemon ${@bb.utils.contains('PACKAGECONFIG', 'bluez5', '${PN}-wwan bluez5', '', d)}" | ||
168 | |||
169 | SUMMARY:${PN}-cloud-setup = "Automatically configure NetworkManager in cloud" | ||
170 | FILES:${PN}-cloud-setup = " \ | ||
171 | ${libexecdir}/nm-cloud-setup \ | ||
172 | ${systemd_system_unitdir}/nm-cloud-setup.service \ | ||
173 | ${systemd_system_unitdir}/nm-cloud-setup.timer \ | ||
174 | ${libdir}/NetworkManager/dispatcher.d/90-nm-cloud-setup.sh \ | ||
175 | ${libdir}/NetworkManager/dispatcher.d/no-wait.d/90-nm-cloud-setup.sh \ | ||
176 | " | ||
177 | RDEPENDS:${PN}-cloud-setup += "${PN}-daemon" | ||
178 | ALLOW_EMPTY:${PN}-cloud-setup = "1" | ||
179 | SYSTEMD_SERVICE:${PN}-cloud-setup = "${@bb.utils.contains('PACKAGECONFIG', 'cloud-setup', 'nm-cloud-setup.service nm-cloud-setup.timer', '', d)}" | ||
180 | |||
181 | SUMMARY:${PN}-nmcli = "NetworkManager command line client" | ||
182 | FILES:${PN}-nmcli = " \ | ||
183 | ${bindir}/nmcli \ | ||
184 | " | ||
185 | RDEPENDS:${PN}-nmcli += "${PN}-daemon" | ||
186 | |||
187 | SUMMARY:${PN}-nmcli-bash-completion = "NetworkManager command line client bash completion" | ||
188 | FILES:${PN}-nmcli-bash-completion = "${datadir}/bash-completion/completions/nmcli" | ||
189 | RDEPENDS:${PN}-nmcli-bash-completion = "bash-completion" | ||
190 | |||
191 | SUMMARY:${PN}-nmtui = "NetworkManager curses-based UI" | ||
192 | FILES:${PN}-nmtui = " \ | ||
193 | ${bindir}/nmtui \ | ||
194 | ${bindir}/nmtui-edit \ | ||
195 | ${bindir}/nmtui-connect \ | ||
196 | ${bindir}/nmtui-hostname \ | ||
197 | " | ||
198 | RDEPENDS:${PN}-nmtui += "${PN}-daemon" | ||
199 | |||
200 | SUMMARY:${PN}-wifi = "Wifi plugin for NetworkManager" | ||
201 | FILES:${PN}-wifi = "\ | ||
202 | ${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-wifi.so \ | ||
203 | ${libdir}/NetworkManager/conf.d/enable-iwd.conf \ | ||
204 | " | ||
205 | def get_wifi_deps(d): | ||
206 | packageconfig = (d.getVar('PACKAGECONFIG') or "").split() | ||
207 | if 'wifi' in packageconfig: | ||
208 | if 'iwd' in packageconfig: | ||
209 | return 'iwd' | ||
210 | else: | ||
211 | return 'wpa-supplicant' | ||
212 | else: | ||
213 | return '' | ||
214 | RDEPENDS:${PN}-wifi += "${PN}-daemon ${@get_wifi_deps(d)}" | ||
215 | |||
216 | SUMMARY:${PN}-wwan = "Mobile broadband device plugin for NetworkManager" | ||
217 | FILES:${PN}-wwan = "\ | ||
218 | ${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-wwan.so \ | ||
219 | ${NETWORKMANAGER_PLUGINDIR}/libnm-wwan.so \ | ||
220 | " | ||
221 | RDEPENDS:${PN}-wwan += "${PN}-daemon ${@bb.utils.contains('PACKAGECONFIG','modemmanager','modemmanager','',d)}" | ||
222 | |||
223 | SUMMARY:${PN}-ovs = "Open vSwitch device plugin for NetworkManager" | ||
224 | FILES:${PN}-ovs = "\ | ||
225 | ${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-ovs.so \ | ||
226 | ${systemd_system_unitdir}/NetworkManager.service.d/NetworkManager-ovs.conf \ | ||
227 | " | ||
228 | RDEPENDS:${PN}-ovs += "${PN}-daemon" | ||
229 | |||
230 | SUMMARY:${PN}-ppp = "PPP plugin for NetworkManager" | ||
231 | FILES:${PN}-ppp = "\ | ||
232 | ${NETWORKMANAGER_PLUGINDIR}/libnm-ppp-plugin.so \ | ||
233 | ${libdir}/pppd/*/nm-pppd-plugin.so \ | ||
234 | " | ||
235 | RDEPENDS:${PN}-ppp += "${PN}-daemon ${@bb.utils.contains('PACKAGECONFIG','ppp','ppp','',d)}" | ||
236 | |||
237 | FILES:${PN}-dev += " \ | ||
238 | ${libdir}/pppd/*/*.la \ | ||
239 | ${libdir}/NetworkManager/*.la \ | ||
240 | ${NETWORKMANAGER_PLUGINDIR}/*.la \ | ||
241 | ${datadir}/dbus-1/interfaces/*.xml \ | ||
242 | " | ||
243 | |||
244 | SUMMARY:${PN}-daemon += "The NetworkManager daemon" | ||
245 | FILES:${PN}-daemon += " \ | ||
246 | ${bindir}/nm-online \ | ||
247 | ${datadir}/dbus-1 \ | ||
248 | ${datadir}/polkit-1 \ | ||
249 | ${libdir}/NetworkManager \ | ||
250 | ${libexecdir} \ | ||
251 | ${localstatedir}/lib/NetworkManager \ | ||
252 | ${NETWORKMANAGER_DISPATCHERDIR} \ | ||
253 | ${nonarch_base_libdir}/udev/* \ | ||
254 | ${nonarch_libdir}/firewalld \ | ||
255 | ${nonarch_libdir}/NetworkManager/conf.d \ | ||
256 | ${nonarch_libdir}/NetworkManager/dispatcher.d/no-wait.d \ | ||
257 | ${nonarch_libdir}/NetworkManager/dispatcher.d/pre-down.d \ | ||
258 | ${nonarch_libdir}/NetworkManager/dispatcher.d/pre-up.d \ | ||
259 | ${nonarch_libdir}/NetworkManager/system-connections \ | ||
260 | ${nonarch_libdir}/NetworkManager/VPN \ | ||
261 | ${sbindir}/NetworkManager \ | ||
262 | ${sysconfdir}/init.d/network-manager \ | ||
263 | ${sysconfdir}/NetworkManager \ | ||
264 | ${sysconfdir}/resolv-conf.NetworkManager \ | ||
265 | ${sysconfdir}/sysconfig/network-scripts \ | ||
266 | ${systemd_system_unitdir} \ | ||
267 | " | ||
268 | RDEPENDS:${PN}-daemon += "\ | ||
269 | ${@bb.utils.contains('PACKAGECONFIG', 'ifupdown', 'bash', '', d)} \ | ||
270 | " | ||
271 | RRECOMMENDS:${PN}-daemon += "\ | ||
272 | ${NETWORKMANAGER_FIREWALL_DEFAULT} \ | ||
273 | ${@bb.utils.filter('PACKAGECONFIG', 'dnsmasq', d)} \ | ||
274 | " | ||
275 | INITSCRIPT_NAME:${PN}-daemon = "network-manager" | ||
276 | SYSTEMD_SERVICE:${PN}-daemon = "\ | ||
277 | NetworkManager.service \ | ||
278 | NetworkManager-dispatcher.service \ | ||
279 | " | ||
280 | RCONFLICTS:${PN}-daemon += "connman" | ||
281 | ALTERNATIVE_PRIORITY = "100" | ||
282 | ALTERNATIVE:${PN}-daemon = "${@bb.utils.contains('PACKAGECONFIG','man-resolv-conf','resolv-conf','',d)}" | ||
283 | ALTERNATIVE_TARGET[resolv-conf] = "${@bb.utils.contains('PACKAGECONFIG','man-resolv-conf','${sysconfdir}/resolv-conf.NetworkManager','',d)}" | ||
284 | ALTERNATIVE_LINK_NAME[resolv-conf] = "${@bb.utils.contains('PACKAGECONFIG','man-resolv-conf','${sysconfdir}/resolv.conf','',d)}" | ||
285 | |||
286 | |||
287 | # The networkmanager package is an empty meta package which weakly depends on all the compiled features. | ||
288 | # Install this package to get all plugins and related dependencies installed. Alternatively just install | ||
289 | # plugins and related dependencies e.g. by installing networkmanager-wifi or networkmanager-wwan | ||
290 | # packages to the firmware. | ||
291 | ALLOW_EMPTY:${PN} = "1" | ||
292 | RRECOMMENDS:${PN} += "\ | ||
293 | ${@bb.utils.contains('PACKAGECONFIG','adsl','${PN}-adsl','',d)} \ | ||
294 | ${@bb.utils.contains('PACKAGECONFIG','bluez5','${PN}-bluetooth','',d)} \ | ||
295 | ${@bb.utils.contains('PACKAGECONFIG','cloud-setup','${PN}-cloud-setup','',d)} \ | ||
296 | ${@bb.utils.contains('PACKAGECONFIG','nmcli','${PN}-nmcli','',d)} \ | ||
297 | ${@bb.utils.contains('PACKAGECONFIG','nmtui','${PN}-nmtui','',d)} \ | ||
298 | ${@bb.utils.contains('PACKAGECONFIG','wifi','${PN}-wifi','',d)} \ | ||
299 | ${@bb.utils.contains('PACKAGECONFIG','wwan','${PN}-wwan','',d)} \ | ||
300 | ${@bb.utils.contains('PACKAGECONFIG','ovs','${PN}-ovs','',d)} \ | ||
301 | ${@bb.utils.contains('PACKAGECONFIG','ppp','${PN}-ppp','',d)} \ | ||
302 | " | ||
303 | |||
304 | do_install:append() { | ||
305 | install -Dm 0755 ${UNPACKDIR}/${BPN}.initd ${D}${sysconfdir}/init.d/network-manager | ||
306 | |||
307 | rm -rf ${D}/run ${D}${localstatedir}/run | ||
308 | |||
309 | if ${@bb.utils.contains('PACKAGECONFIG','man-resolv-conf','true','false',d)}; then | ||
310 | # For read-only filesystem, do not create links during bootup | ||
311 | ln -sf ../run/NetworkManager/resolv.conf ${D}${sysconfdir}/resolv-conf.NetworkManager | ||
312 | |||
313 | # systemd v210 and newer do not need this rule file | ||
314 | rm ${D}/${nonarch_base_libdir}/udev/rules.d/84-nm-drivers.rules | ||
315 | fi | ||
316 | |||
317 | # Enable iwd if compiled | ||
318 | if ${@bb.utils.contains('PACKAGECONFIG','iwd','true','false',d)}; then | ||
319 | install -Dm 0644 ${UNPACKDIR}/enable-iwd.conf ${D}${nonarch_libdir}/NetworkManager/conf.d/enable-iwd.conf | ||
320 | fi | ||
321 | |||
322 | # Enable dhcpd if compiled | ||
323 | if ${@bb.utils.contains('PACKAGECONFIG','dhcpcd','true','false',d)}; then | ||
324 | install -Dm 0644 ${UNPACKDIR}/enable-dhcpcd.conf ${D}${nonarch_libdir}/NetworkManager/conf.d/enable-dhcpcd.conf | ||
325 | fi | ||
326 | } | ||