diff options
| author | Michael Biebl <biebl@debian.org> | 2026-07-03 19:53:23 +0200 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2026-07-03 19:53:23 +0200 |
| commit | aa308069bebf2d5a3200728caa69a76137c03d8b (patch) | |
| tree | c0ba2281e801c4720a0d8a5e5ee943688234f088 /src/nm-initrd-generator | |
| parent | 0a4b2c29da4ccf259bbcea3298d15abebb94348f (diff) | |
| parent | 537bfce2bda471c92caabd388589230200891509 (diff) | |
Update upstream source from tag 'upstream/1.58_rc1'
Update to upstream version '1.58~rc1' with Debian dir 451489c9234e2b6b7c2f41ca6670287ea3ac3efd
Diffstat (limited to 'src/nm-initrd-generator')
| -rw-r--r-- | src/nm-initrd-generator/meson.build | 7 | ||||
| -rwxr-xr-x | src/nm-initrd-generator/nm-initrd-generator.sh | 50 | ||||
| -rw-r--r-- | src/nm-initrd-generator/nmi-cmdline-reader.c | 2 |
3 files changed, 58 insertions, 1 deletions
diff --git a/src/nm-initrd-generator/meson.build b/src/nm-initrd-generator/meson.build index 6b02e066..2315ebe4 100644 --- a/src/nm-initrd-generator/meson.build +++ b/src/nm-initrd-generator/meson.build @@ -46,3 +46,10 @@ executable( install: true, install_dir: nm_libexecdir, ) + +if install_systemdgeneratordir + install_data( + 'nm-initrd-generator.sh', + install_dir: systemd_systemdsystemgeneratordir, + ) +endif diff --git a/src/nm-initrd-generator/nm-initrd-generator.sh b/src/nm-initrd-generator/nm-initrd-generator.sh new file mode 100755 index 00000000..20ff78cc --- /dev/null +++ b/src/nm-initrd-generator/nm-initrd-generator.sh @@ -0,0 +1,50 @@ +#!/bin/bash +# SPDX-License-Identifier: LGPL-2.1-or-later + +# initrd-specific units +initrd_units=( + NetworkManager-config-initrd.service + NetworkManager-initrd.service + NetworkManager-wait-online-initrd.service +) + +# host-specific units +host_units=( + NetworkManager.service + NetworkManager-dispatcher.service + NetworkManager-wait-online.service +) + +# Get generator normal directory +normal_dir=$1 + +# Since NetworkManager-initrd.service and NetworkManager.service are allocated +# for the same bus name org.freedesktop.NetworkManager, we should mask one of +# them depending on if we are in the initrd or on the host. +if [ "$SYSTEMD_IN_INITRD" != 1 ]; then + # Mask initrd units in the host + for unit in "${initrd_units[@]}"; do + ln -s /dev/null "$normal_dir"/"$unit" 2> /dev/null + done + # Nothing else to do + exit 0 +fi + +# Mask host units in the initrd +for unit in "${host_units[@]}"; do + ln -s /dev/null "$normal_dir"/"$unit" 2> /dev/null +done + +# Install initrd units in the unit file hierarchy +mkdir -p "$normal_dir"/initrd.target.wants +mkdir -p "$normal_dir"/network-online.target.wants +for unit in "${initrd_units[@]}"; do + ln -s /usr/lib/systemd/system/"$unit" \ + "$normal_dir"/initrd.target.wants/"$unit" + if [ "$unit" = "NetworkManager-wait-online-initrd.service" ]; then + ln -s /usr/lib/systemd/system/"$unit" \ + "$normal_dir"/network-online.target.wants/"$unit" + fi +done + +exit 0 diff --git a/src/nm-initrd-generator/nmi-cmdline-reader.c b/src/nm-initrd-generator/nmi-cmdline-reader.c index f9b0fa16..5d91d157 100644 --- a/src/nm-initrd-generator/nmi-cmdline-reader.c +++ b/src/nm-initrd-generator/nmi-cmdline-reader.c @@ -409,7 +409,7 @@ reader_read_all_connections_from_fw(Reader *reader, const char *sysfs_dir) if (!nmi_ibft_update_connection_from_nic(connection, nic, &error)) { _LOGW(LOGD_CORE, "Unable to merge iBFT configuration: %s", error->message); - g_error_free(error); + g_clear_error(&error); continue; } |