summaryrefslogtreecommitdiffstats
path: root/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.56.0.bb
diff options
context:
space:
mode:
authorAndrej Kozemcak <andrej.kozemcak@siemens.com>2026-03-12 15:04:59 +0100
committerKhem Raj <raj.khem@gmail.com>2026-03-17 22:02:52 -0700
commitfc1549090f980c620259cd8e81c9b0a0b258c7e2 (patch)
treeb10db8f9c68f29b18c29094000ead9277ae1f583 /meta-networking/recipes-connectivity/networkmanager/networkmanager_1.56.0.bb
parent1e52242e561d260f2d32546b551c729a26aa7f18 (diff)
downloadmeta-openembedded-fc1549090f980c620259cd8e81c9b0a0b258c7e2.tar.gz
networkmanager: upgrade 1.52.2 -> 1.56.0
Create path to fix `meson` build errors Add missing dependencies. Disables man page generation. The build was using xsltproc to try downloading http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl from the network, which fails in embedded build environments. Changelog: v1.56.0 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/1.56.0/NEWS?ref_type=tags Changed: - Unify the versioning to use everywhere the scheme with the -rcX or -dev suffixes when appropriate. This affects, for example, the URL and filename of the release tarball and the version reported by nmcli and the daemon. As an exception, the C API will continue to use the 90+ scheme for RC versions. - nmcli now supports viewing and managing WireGuard peers. - Support reapplying the "sriov.vfs" property as long as "sriov.total-vfs" is not changed. - Support reapplying "bond-port.vlans". - Accept hostnames longer than 64 characters from DNS lookup. - Make that global-dns configuration overwrites DNS searches and options from connections, instead of merging all together. - Add support for a new rd.net.dhcp.client-id option in nm-initrd-generator. - Add gsm device-uid setting to restrict the devices the connection applies to. - Support configuring the HSR protocol version via the "hsr.protocol-version" property. - Fix a bug that makes broadband connections auto-connect getting blocked if the connection tries to reconnect when modem status is "disconnecting" / "disconnected". - Treat modem connection not having an operator code available as a recoverable error. - Add support for configuring systemd-resolved's DNSSEC option per-connection via the "connection.dnssec" connection property. - Support configuring the HSR interlink port via the "hsr.interlink" property. - Fix some connection properties not being applied to vpn connections (connection.mdns, connection.llmnr, connection.dns-over-tls, connection.mptcp-flags, ipv6.ip6-privacy) - Update n-acd to always compile with eBPF enabled, as support for eBPF is now detected at run time. - Add new MPTCP 'laminar' endpoint type, and set it by default alongside the 'subflow' one. - For private connections (the ones that specify a user in the "connection.permissions" property), verify that the user can access the 802.1X certificates and keys set in the connection. - Introduce a libnm function that can be used by VPN plugins to check user permissions on certificate and keys. v1.54.0 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/1.54.0/NEWS?ref_type=tags Changed: - Add support for configuring per-device IPv4 forwarding via the "ipv4.forwarding" connection property. - Add a new "prefix-delegation" setting containing a "subnet-id" property that specifies the subnet to choose on the downstream interface when using IPv6 prefix delegation. - Support OCI baremetal in nm-cloud-setup - When activating a WireGuard connection to an IPv6 endpoint, now NetworkManager creates firewall rules to ensure that the incoming packets are not dropped by kernel reverse path filtering. - Add support for configuring the loopback interface in nmtui. - Most of the properties of ovs-bridge and ovs-port connections can now be reapplied at runtime without bringing the connection down. - Add a new "sriov.preserve-on-down" property that controls whether NetworkManager preserves the SR-IOV parameters set on the device when the connection is deactivated, or whether it resets them to their default value. - Introduce a new "ovs-dpdk.lsc-interrupt" property to configure the Link State Change (LSC) detection mode for OVS DPDK interfaces. - The initrd-generator now can parse the NVMe Boot Firmware Table (NBFT) to configure networking during early boot. - Add systemd services to provide networking in the initrd. Signed-off-by: Andrej Kozemcak <andrej.kozemcak@siemens.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-networking/recipes-connectivity/networkmanager/networkmanager_1.56.0.bb')
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager_1.56.0.bb328
1 files changed, 328 insertions, 0 deletions
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.56.0.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.56.0.bb
new file mode 100644
index 0000000000..de163fe00e
--- /dev/null
+++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.56.0.bb
@@ -0,0 +1,328 @@
1SUMMARY = "NetworkManager is a program for providing detection and \
2configuration for systems to automatically connect to networks."
3
4DESCRIPTION = "NetworkManager is a program for providing detection and \
5configuration for systems to automatically connect to networks. \
6NetworkManager's functionality can be useful for both wireless and wired \
7networks. For wireless networks, NetworkManager prefers known wireless \
8networks and has the ability to switch to the most reliable network. \
9NetworkManager-aware applications can switch from online and offline mode. \
10NetworkManager also prefers wired connections over wireless ones, has support \
11for modem connections and certain types of VPN."
12
13HOMEPAGE = "https://wiki.gnome.org/Projects/NetworkManager"
14SECTION = "net/misc"
15
16LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
17LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
18 file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c \
19"
20
21DEPENDS = " \
22 glib-2.0 \
23 python3-pygobject-native \
24 coreutils-native \
25 intltool-native \
26 libxslt-native \
27 libnl \
28 libnvme \
29 udev \
30 util-linux \
31 util-linux-libuuid \
32 libndp \
33 curl \
34 dbus \
35"
36DEPENDS:append:class-target = " bash-completion"
37
38inherit meson gettext update-rc.d systemd gobject-introspection update-alternatives upstream-version-is-even pkgconfig
39
40SRC_URI = " \
41 git://github.com/NetworkManager/NetworkManager.git;protocol=https;branch=nm-1-56;tag=${PV} \
42 file://${BPN}.initd \
43 file://enable-dhcpcd.conf \
44 file://enable-iwd.conf \
45 file://0002-meson-fix-cross-compilation-issues.patch \
46"
47SRC_URI:append:libc-musl = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' file://0001-linker-scripts-Do-not-export-_IO_stdin_used.patch', '', d)}"
48
49SRCREV = "56b51b98fbb8627c4c09a483702e18fd8aee7ce1"
50
51
52# ['auto', 'symlink', 'file', 'netconfig', 'resolvconf']
53NETWORKMANAGER_DNS_RC_MANAGER_DEFAULT ??= "auto"
54
55# ['dhclient', 'dhcpcd', 'internal', 'nettools']
56NETWORKMANAGER_DHCP_DEFAULT ??= "internal"
57
58# The default gets detected based on whether /usr/sbin/nft or /usr/sbin/iptables is installed, with nftables preferred.
59# ['', 'iptables', 'nftables']
60NETWORKMANAGER_FIREWALL_DEFAULT ??= "nftables"
61
62EXTRA_OEMESON = "\
63 -Difcfg_rh=false \
64 -Dtests=yes \
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 -Diptables=${sbindir}/iptables \
71 -Dnft=${sbindir}/nft \
72 -Dman=false \
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'?
78CFLAGS:append:libc-musl = " \
79 -DRTLD_DEEPBIND=0 \
80"
81
82# networkmanager-1.52.0/src/nmcli/agent.c:88:29: error: incompatible function pointer types assigning to 'rl_hook_func_t *' (aka 'int (*)(void)') from 'int (const char *, int)' [-Wincompatible-function-pointer-types]
83# 88 | rl_startup_hook = set_deftext;
84# | ^ ~~~~~~~~~~~
85
86CFLAGS:append:toolchain-clang = " -Wno-error=incompatible-function-pointer-types"
87
88PACKAGECONFIG ??= "readline nss ifupdown dnsmasq nmcli \
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 ${@bb.utils.contains('DISTRO_FEATURES_BACKFILL_CONSIDERED', 'gobject-introspection-data', '', 'vala', d)} \
94"
95
96inherit ${@bb.utils.contains('PACKAGECONFIG', 'vala', 'vala', '', d)}
97
98PACKAGECONFIG[systemd] = "\
99 -Dsystemdsystemunitdir=${systemd_unitdir}/system -Dsession_tracking=systemd,\
100 -Dsystemdsystemunitdir=no -Dsystemd_journal=false -Dsession_tracking=no\
101"
102PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false,polkit"
103PACKAGECONFIG[bluez5] = "-Dbluez5_dun=true,-Dbluez5_dun=false,bluez5"
104# consolekit is not picked by shlibs, so add it to RDEPENDS too
105PACKAGECONFIG[consolekit] = "-Dsession_tracking_consolekit=true,-Dsession_tracking_consolekit=false,consolekit,consolekit"
106PACKAGECONFIG[modemmanager] = "-Dmodem_manager=true,-Dmodem_manager=false,modemmanager mobile-broadband-provider-info"
107PACKAGECONFIG[ppp] = "-Dppp=true -Dpppd=${sbindir}/pppd,-Dppp=false,ppp"
108PACKAGECONFIG[dnsmasq] = "-Ddnsmasq=${bindir}/dnsmasq"
109PACKAGECONFIG[nss] = "-Dcrypto=nss,,nss"
110PACKAGECONFIG[resolvconf] = "-Dresolvconf=${base_sbindir}/resolvconf,-Dresolvconf=no,,resolvconf"
111PACKAGECONFIG[gnutls] = "-Dcrypto=gnutls,,gnutls"
112PACKAGECONFIG[crypto-null] = "-Dcrypto=null"
113PACKAGECONFIG[wifi] = "-Dwext=true -Dwifi=true,-Dwext=false -Dwifi=false"
114PACKAGECONFIG[iwd] = "-Diwd=true,-Diwd=false"
115PACKAGECONFIG[ifupdown] = "-Difupdown=true,-Difupdown=false"
116PACKAGECONFIG[cloud-setup] = "-Dnm_cloud_setup=true,-Dnm_cloud_setup=false,jansson"
117PACKAGECONFIG[nmcli] = "-Dnmcli=true,-Dnmcli=false"
118PACKAGECONFIG[nmtui] = "-Dnmtui=true,-Dnmtui=false,libnewt"
119PACKAGECONFIG[readline] = "-Dreadline=libreadline,,readline"
120PACKAGECONFIG[libedit] = "-Dreadline=libedit,,libedit"
121PACKAGECONFIG[ovs] = "-Dovs=true,-Dovs=false,jansson"
122PACKAGECONFIG[audit] = "-Dlibaudit=yes,-Dlibaudit=no,audit"
123PACKAGECONFIG[selinux] = "-Dselinux=true,-Dselinux=false,libselinux"
124PACKAGECONFIG[vala] = "-Dvapi=true,-Dvapi=false"
125PACKAGECONFIG[dhcpcd] = "-Ddhcpcd=${base_sbindir}/dhcpcd,-Ddhcpcd=no,,dhcpcd"
126PACKAGECONFIG[dhclient] = "-Ddhclient=yes,-Ddhclient=no,,dhcp"
127PACKAGECONFIG[concheck] = "-Dconcheck=true,-Dconcheck=false"
128PACKAGECONFIG[adsl] = ",,"
129PACKAGECONFIG[wwan] = ",,"
130# The following PACKAGECONFIG is used to determine whether NM is managing /etc/resolv.conf itself or not
131PACKAGECONFIG[man-resolv-conf] = ",,"
132PACKAGECONFIG[nbft] = "-Dnbft=true,-Dnbft=false"
133
134
135PACKAGES =+ " \
136 libnm \
137 ${PN}-adsl \
138 ${PN}-bluetooth \
139 ${PN}-cloud-setup \
140 ${PN}-nmcli \
141 ${PN}-nmcli-bash-completion \
142 ${PN}-nmtui \
143 ${PN}-wifi \
144 ${PN}-wwan \
145 ${PN}-ovs \
146 ${PN}-ppp \
147 ${PN}-daemon \
148"
149
150SYSTEMD_PACKAGES = "${PN}-daemon ${PN}-cloud-setup"
151INITSCRIPT_PACKAGES = "${PN}-daemon"
152
153NETWORKMANAGER_PLUGINDIR = "${libdir}/NetworkManager/${PV}"
154NETWORKMANAGER_DISPATCHERDIR = "${nonarch_libdir}/NetworkManager/dispatcher.d"
155
156
157SUMMARY:libnm = "Libraries for adding NetworkManager support to applications"
158FILES:libnm = "\
159 ${libdir}/libnm.so.* \
160 ${libdir}/girepository-1.0/NM-1.0.typelib \
161"
162
163SUMMARY:${PN}-adsl = "ADSL device plugin for NetworkManager"
164FILES:${PN}-adsl = "${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-adsl.so"
165RDEPENDS:${PN}-adsl += "${PN}-daemon"
166
167SUMMARY:${PN}-bluetooth = "Bluetooth device plugin for NetworkManager"
168FILES:${PN}-bluetooth = "${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-bluetooth.so"
169RDEPENDS:${PN}-bluetooth += "${PN}-daemon ${@bb.utils.contains('PACKAGECONFIG', 'bluez5', '${PN}-wwan bluez5', '', d)}"
170
171SUMMARY:${PN}-cloud-setup = "Automatically configure NetworkManager in cloud"
172FILES:${PN}-cloud-setup = " \
173 ${libexecdir}/nm-cloud-setup \
174 ${systemd_system_unitdir}/nm-cloud-setup.service \
175 ${systemd_system_unitdir}/nm-cloud-setup.timer \
176 ${libdir}/NetworkManager/dispatcher.d/90-nm-cloud-setup.sh \
177 ${libdir}/NetworkManager/dispatcher.d/no-wait.d/90-nm-cloud-setup.sh \
178"
179RDEPENDS:${PN}-cloud-setup += "${PN}-daemon"
180ALLOW_EMPTY:${PN}-cloud-setup = "1"
181SYSTEMD_SERVICE:${PN}-cloud-setup = "${@bb.utils.contains('PACKAGECONFIG', 'cloud-setup', 'nm-cloud-setup.service nm-cloud-setup.timer', '', d)}"
182
183SUMMARY:${PN}-nmcli = "NetworkManager command line client"
184FILES:${PN}-nmcli = " \
185 ${bindir}/nmcli \
186"
187RDEPENDS:${PN}-nmcli += "${PN}-daemon"
188
189SUMMARY:${PN}-nmcli-bash-completion = "NetworkManager command line client bash completion"
190FILES:${PN}-nmcli-bash-completion = "${datadir}/bash-completion/completions/nmcli"
191RDEPENDS:${PN}-nmcli-bash-completion = "bash-completion"
192
193SUMMARY:${PN}-nmtui = "NetworkManager curses-based UI"
194FILES:${PN}-nmtui = " \
195 ${bindir}/nmtui \
196 ${bindir}/nmtui-edit \
197 ${bindir}/nmtui-connect \
198 ${bindir}/nmtui-hostname \
199"
200RDEPENDS:${PN}-nmtui += "${PN}-daemon"
201
202SUMMARY:${PN}-wifi = "Wifi plugin for NetworkManager"
203FILES:${PN}-wifi = "\
204 ${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-wifi.so \
205 ${libdir}/NetworkManager/conf.d/enable-iwd.conf \
206"
207def get_wifi_deps(d):
208 packageconfig = (d.getVar('PACKAGECONFIG') or "").split()
209 if 'wifi' in packageconfig:
210 if 'iwd' in packageconfig:
211 return 'iwd'
212 else:
213 return 'wpa-supplicant'
214 else:
215 return ''
216RDEPENDS:${PN}-wifi += "${PN}-daemon ${@get_wifi_deps(d)}"
217
218SUMMARY:${PN}-wwan = "Mobile broadband device plugin for NetworkManager"
219FILES:${PN}-wwan = "\
220 ${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-wwan.so \
221 ${NETWORKMANAGER_PLUGINDIR}/libnm-wwan.so \
222"
223RDEPENDS:${PN}-wwan += "${PN}-daemon ${@bb.utils.contains('PACKAGECONFIG','modemmanager','modemmanager','',d)}"
224
225SUMMARY:${PN}-ovs = "Open vSwitch device plugin for NetworkManager"
226FILES:${PN}-ovs = "\
227 ${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-ovs.so \
228 ${systemd_system_unitdir}/NetworkManager.service.d/NetworkManager-ovs.conf \
229"
230RDEPENDS:${PN}-ovs += "${PN}-daemon"
231
232SUMMARY:${PN}-ppp = "PPP plugin for NetworkManager"
233FILES:${PN}-ppp = "\
234 ${NETWORKMANAGER_PLUGINDIR}/libnm-ppp-plugin.so \
235 ${libdir}/pppd/*/nm-pppd-plugin.so \
236"
237RDEPENDS:${PN}-ppp += "${PN}-daemon ${@bb.utils.contains('PACKAGECONFIG','ppp','ppp','',d)}"
238
239FILES:${PN}-dev += " \
240 ${libdir}/pppd/*/*.la \
241 ${libdir}/NetworkManager/*.la \
242 ${NETWORKMANAGER_PLUGINDIR}/*.la \
243 ${datadir}/dbus-1/interfaces/*.xml \
244"
245
246SUMMARY:${PN}-daemon += "The NetworkManager daemon"
247FILES:${PN}-daemon += " \
248 ${bindir}/nm-online \
249 ${datadir}/dbus-1 \
250 ${datadir}/polkit-1 \
251 ${libdir}/NetworkManager \
252 ${libexecdir} \
253 ${localstatedir}/lib/NetworkManager \
254 ${NETWORKMANAGER_DISPATCHERDIR} \
255 ${nonarch_base_libdir}/udev/* \
256 ${nonarch_libdir}/firewalld \
257 ${nonarch_libdir}/NetworkManager/conf.d \
258 ${nonarch_libdir}/NetworkManager/dispatcher.d/no-wait.d \
259 ${nonarch_libdir}/NetworkManager/dispatcher.d/pre-down.d \
260 ${nonarch_libdir}/NetworkManager/dispatcher.d/pre-up.d \
261 ${nonarch_libdir}/NetworkManager/system-connections \
262 ${nonarch_libdir}/NetworkManager/VPN \
263 ${sbindir}/NetworkManager \
264 ${sysconfdir}/init.d/network-manager \
265 ${sysconfdir}/NetworkManager \
266 ${sysconfdir}/resolv-conf.NetworkManager \
267 ${sysconfdir}/sysconfig/network-scripts \
268 ${systemd_system_unitdir} \
269"
270RDEPENDS:${PN}-daemon += "\
271 ${@bb.utils.contains('PACKAGECONFIG', 'ifupdown', 'bash', '', d)} \
272"
273RRECOMMENDS:${PN}-daemon += "\
274 ${NETWORKMANAGER_FIREWALL_DEFAULT} \
275 ${@bb.utils.filter('PACKAGECONFIG', 'dnsmasq', d)} \
276"
277INITSCRIPT_NAME:${PN}-daemon = "network-manager"
278SYSTEMD_SERVICE:${PN}-daemon = "\
279 NetworkManager.service \
280 NetworkManager-dispatcher.service \
281"
282RCONFLICTS:${PN}-daemon += "connman"
283ALTERNATIVE_PRIORITY = "100"
284ALTERNATIVE:${PN}-daemon = "${@bb.utils.contains('PACKAGECONFIG','man-resolv-conf','resolv-conf','',d)}"
285ALTERNATIVE_TARGET[resolv-conf] = "${@bb.utils.contains('PACKAGECONFIG','man-resolv-conf','${sysconfdir}/resolv-conf.NetworkManager','',d)}"
286ALTERNATIVE_LINK_NAME[resolv-conf] = "${@bb.utils.contains('PACKAGECONFIG','man-resolv-conf','${sysconfdir}/resolv.conf','',d)}"
287
288
289# The networkmanager package is an empty meta package which weakly depends on all the compiled features.
290# Install this package to get all plugins and related dependencies installed. Alternatively just install
291# plugins and related dependencies e.g. by installing networkmanager-wifi or networkmanager-wwan
292# packages to the firmware.
293ALLOW_EMPTY:${PN} = "1"
294RRECOMMENDS:${PN} += "\
295 ${@bb.utils.contains('PACKAGECONFIG','adsl','${PN}-adsl','',d)} \
296 ${@bb.utils.contains('PACKAGECONFIG','bluez5','${PN}-bluetooth','',d)} \
297 ${@bb.utils.contains('PACKAGECONFIG','cloud-setup','${PN}-cloud-setup','',d)} \
298 ${@bb.utils.contains('PACKAGECONFIG','nmcli','${PN}-nmcli','',d)} \
299 ${@bb.utils.contains('PACKAGECONFIG','nmtui','${PN}-nmtui','',d)} \
300 ${@bb.utils.contains('PACKAGECONFIG','wifi','${PN}-wifi','',d)} \
301 ${@bb.utils.contains('PACKAGECONFIG','wwan','${PN}-wwan','',d)} \
302 ${@bb.utils.contains('PACKAGECONFIG','ovs','${PN}-ovs','',d)} \
303 ${@bb.utils.contains('PACKAGECONFIG','ppp','${PN}-ppp','',d)} \
304"
305
306do_install:append() {
307 install -Dm 0755 ${UNPACKDIR}/${BPN}.initd ${D}${sysconfdir}/init.d/network-manager
308
309 rm -rf ${D}/run ${D}${localstatedir}/run
310
311 if ${@bb.utils.contains('PACKAGECONFIG','man-resolv-conf','true','false',d)}; then
312 # For read-only filesystem, do not create links during bootup
313 ln -sf ../run/NetworkManager/resolv.conf ${D}${sysconfdir}/resolv-conf.NetworkManager
314
315 # systemd v210 and newer do not need this rule file
316 rm ${D}/${nonarch_base_libdir}/udev/rules.d/84-nm-drivers.rules
317 fi
318
319 # Enable iwd if compiled
320 if ${@bb.utils.contains('PACKAGECONFIG','iwd','true','false',d)}; then
321 install -Dm 0644 ${UNPACKDIR}/enable-iwd.conf ${D}${nonarch_libdir}/NetworkManager/conf.d/enable-iwd.conf
322 fi
323
324 # Enable dhcpd if compiled
325 if ${@bb.utils.contains('PACKAGECONFIG','dhcpcd','true','false',d)}; then
326 install -Dm 0644 ${UNPACKDIR}/enable-dhcpcd.conf ${D}${nonarch_libdir}/NetworkManager/conf.d/enable-dhcpcd.conf
327 fi
328}