Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package NetworkManager for openSUSE:Factory 
checked in at 2025-11-26 17:14:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/NetworkManager (Old)
 and      /work/SRC/openSUSE:Factory/.NetworkManager.new.14147 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "NetworkManager"

Wed Nov 26 17:14:16 2025 rev:288 rq:1320039 version:1.54.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/NetworkManager/NetworkManager.changes    
2025-11-01 23:34:18.409695790 +0100
+++ /work/SRC/openSUSE:Factory/.NetworkManager.new.14147/NetworkManager.changes 
2025-11-26 17:14:22.175491459 +0100
@@ -1,0 +2,8 @@
+Tue Nov 25 09:35:12 UTC 2025 - Antonio Feijoo <[email protected]>
+
+- Add patch 2312.patch to fix upstream issue
+  https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1814,
+  already fixed upstream for the next release via
+  
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2312
+
+-------------------------------------------------------------------

New:
----
  2312.patch

----------(New B)----------
  New:
- Add patch 2312.patch to fix upstream issue
  https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1814,
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ NetworkManager.spec ++++++
--- /var/tmp/diff_new_pack.c8r6Gy/_old  2025-11-26 17:14:23.807560264 +0100
+++ /var/tmp/diff_new_pack.c8r6Gy/_new  2025-11-26 17:14:23.807560264 +0100
@@ -1,6 +1,7 @@
 #
 # spec file for package NetworkManager
 #
+# Copyright (c) 2025 SUSE LLC
 # Copyright (c) 2025 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
@@ -99,6 +100,8 @@
 Patch11:        0001-man-document-static-ip-setup-differences-to-dracut-n.patch
 # PATCH-FIX-UPSTREAM 
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2298.patch
 Patch12:        2298.patch
+# PATCH-FIX-UPSTREAM 
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2312.patch
+Patch13:        2312.patch
 
 BuildRequires:  c++_compiler
 BuildRequires:  dnsmasq
@@ -325,6 +328,7 @@
 %endif
 %patch -P 11 -p1
 %patch -P 12 -p1
+%patch -P 13 -p1
 
 # Fix server.conf's location, to end up in %%{_defaultdocdir}/%%{name},
 # rather then %%{_datadir}/doc/%%{name}/examples:
@@ -337,6 +341,7 @@
 export PYTHON=%{_bindir}/python3
 %meson \
     -Dsystemdsystemunitdir=%{_unitdir} \
+    -Dsystemdsystemgeneratordir=%{_systemdgeneratordir} \
     -Dudev_dir=%{_udevdir} \
     -Ddbus_conf_dir=%{_dbusconfdir} \
     -Ddnsmasq=%{_sbindir}/dnsmasq \
@@ -490,6 +495,8 @@
 %{_unitdir}/NetworkManager-config-initrd.service
 %{_unitdir}/NetworkManager-initrd.service
 %{_unitdir}/NetworkManager-wait-online-initrd.service
+%dir %{_systemdgeneratordir}
+%{_systemdgeneratordir}/nm-initrd-generator.sh
 
 %files devel
 %{_includedir}/libnm/

++++++ 2312.patch ++++++
>From 636fb5ef24640856515584977174fa44a986e374 Mon Sep 17 00:00:00 2001
From: Antonio Alvarez Feijoo <[email protected]>
Date: Fri, 14 Nov 2025 16:46:57 +0100
Subject: [PATCH] systemd: install initrd services using a generator

Since both `NetworkManager.service` and `NetworkManager-initrd.service` are
allocated for the same bus name (`org.freedesktop.NetworkManager`) and this is
not allowed, the best option is to use a systemd generator to install them only
in the initrd, instead of setting fixed Install sections.

Fixes #1814
---
 contrib/fedora/rpm/NetworkManager.spec        |  2 +
 contrib/fedora/rpm/configure-for-system.sh    |  1 +
 data/NetworkManager-config-initrd.service.in  |  5 +-
 data/NetworkManager-initrd.service.in         | 10 +---
 ...tworkManager-wait-online-initrd.service.in |  5 +-
 meson.build                                   |  9 ++++
 meson_options.txt                             |  1 +
 src/nm-initrd-generator/meson.build           |  7 +++
 .../nm-initrd-generator.sh                    | 50 +++++++++++++++++++
 9 files changed, 73 insertions(+), 17 deletions(-)
 create mode 100755 src/nm-initrd-generator/nm-initrd-generator.sh

diff --git a/contrib/fedora/rpm/NetworkManager.spec 
b/contrib/fedora/rpm/NetworkManager.spec
index 0732fb495f2..820cfda607a 100644
--- a/contrib/fedora/rpm/NetworkManager.spec
+++ b/contrib/fedora/rpm/NetworkManager.spec
@@ -675,6 +675,7 @@ Preferably use nmcli instead.
        -Dsession_tracking=systemd \
        -Dsuspend_resume=systemd \
        -Dsystemdsystemunitdir=%{_unitdir} \
+       -Dsystemdsystemgeneratordir=%{_systemdgeneratordir} \
        -Dsystem_ca_path=/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem \
        -Ddbus_conf_dir=%{dbus_sys_dir} \
        -Dtests=yes \
@@ -747,6 +748,7 @@ rm -f %{buildroot}%{_libdir}/pppd/%{ppp_version}/*.la
 rm -f %{buildroot}%{nmplugindir}/*.la
 
 # Don't use the *-initrd.service files yet, wait dracut to support them
+rm -f %{buildroot}%{_systemdgeneratordir}/nm-initrd-generator.sh
 rm -f %{buildroot}%{_unitdir}/NetworkManager-config-initrd.service
 rm -f %{buildroot}%{_unitdir}/NetworkManager-initrd.service
 rm -f %{buildroot}%{_unitdir}/NetworkManager-wait-online-initrd.service
diff --git a/contrib/fedora/rpm/configure-for-system.sh 
b/contrib/fedora/rpm/configure-for-system.sh
index 6bdf66825ab..bcf619c645a 100755
--- a/contrib/fedora/rpm/configure-for-system.sh
+++ b/contrib/fedora/rpm/configure-for-system.sh
@@ -398,6 +398,7 @@ meson setup\
     -Dsession_tracking=systemd \
     -Dsuspend_resume=systemd \
     -Dsystemdsystemunitdir=/usr/lib/systemd/system \
+    -Dsystemdsystemgeneratordir=/usr/lib/systemd/system-generators \
     -Dsystem_ca_path=/etc/pki/tls/cert.pem \
     -Ddbus_conf_dir="$P_DBUS_SYS_DIR" \
     -Dtests=yes \
diff --git a/data/NetworkManager-config-initrd.service.in 
b/data/NetworkManager-config-initrd.service.in
index 4baf0f648ec..4f038036589 100644
--- a/data/NetworkManager-config-initrd.service.in
+++ b/data/NetworkManager-config-initrd.service.in
@@ -1,10 +1,10 @@
 [Unit]
 Description=NetworkManager Configuration (initrd)
+AssertPathExists=/etc/initrd-release
 DefaultDependencies=no
 Wants=systemd-journald.socket
 After=systemd-journald.socket
 Before=systemd-udevd.service systemd-udev-trigger.service
-ConditionPathExists=/etc/initrd-release
 
 [Service]
 Type=oneshot
@@ -22,6 +22,3 @@ ExecStartPost=/bin/sh -c ' \
     fi \
 '
 RemainAfterExit=yes
-
-[Install]
-WantedBy=initrd.target
diff --git a/data/NetworkManager-initrd.service.in 
b/data/NetworkManager-initrd.service.in
index aef73a571da..f936ffd2380 100644
--- a/data/NetworkManager-initrd.service.in
+++ b/data/NetworkManager-initrd.service.in
@@ -1,11 +1,11 @@
 [Unit]
 Description=NetworkManager (initrd)
+AssertPathExists=/etc/initrd-release
 DefaultDependencies=no
 Wants=systemd-udev-trigger.service network.target
 After=systemd-udev-trigger.service network-pre.target dbus.service 
NetworkManager-config-initrd.service
 Before=network.target
 BindsTo=dbus.service
-ConditionPathExists=/etc/initrd-release
 ConditionPathExists=/run/NetworkManager/initrd/neednet
 ConditionPathExistsGlob=|/usr/lib/NetworkManager/system-connections/*
 ConditionPathExistsGlob=|/run/NetworkManager/system-connections/*
@@ -22,11 +22,3 @@ Environment=NM_CONFIG_ENABLE_TAG=initrd
 Restart=on-failure
 ProtectSystem=true
 ProtectHome=read-only
-
-[Install]
-WantedBy=initrd.target
-# We want to enable NetworkManager-wait-online-initrd.service whenever this
-# service is enabled. NetworkManager-wait-online-initrd.service has
-# WantedBy=network-online.target, so enabling it only has an effect if
-# network-online.target itself is enabled or pulled in by some other unit.
-Also=NetworkManager-config-initrd.service 
NetworkManager-wait-online-initrd.service
diff --git a/data/NetworkManager-wait-online-initrd.service.in 
b/data/NetworkManager-wait-online-initrd.service.in
index da4a2522340..b89aa816578 100644
--- a/data/NetworkManager-wait-online-initrd.service.in
+++ b/data/NetworkManager-wait-online-initrd.service.in
@@ -1,10 +1,10 @@
 [Unit]
 Description=NetworkManager Wait Online (initrd)
+AssertPathExists=/etc/initrd-release
 DefaultDependencies=no
 Requires=NetworkManager-initrd.service
 After=NetworkManager-initrd.service
 Before=network-online.target
-ConditionPathExists=/etc/initrd-release
 ConditionPathExists=/run/NetworkManager/initrd/neednet
 
 [Service]
@@ -21,6 +21,3 @@ Type=oneshot
 ExecStart=@bindir@/nm-online -s -q
 RemainAfterExit=yes
 Environment=NM_ONLINE_TIMEOUT=3600
-
-[Install]
-WantedBy=initrd.target network-online.target
diff --git a/meson.build b/meson.build
index 2f9ab5c299a..56bbe281632 100644
--- a/meson.build
+++ b/meson.build
@@ -383,6 +383,14 @@ if install_systemdunitdir and systemd_systemdsystemunitdir 
== ''
   systemd_systemdsystemunitdir = systemd_dep.get_variable(pkgconfig: 
'systemdsystemunitdir', pkgconfig_define: ['rootprefix', nm_prefix])
 endif
 
+systemd_systemdsystemgeneratordir = get_option('systemdsystemgeneratordir')
+install_systemdgeneratordir = (systemd_systemdsystemgeneratordir != 'no')
+
+if install_systemdgeneratordir and systemd_systemdsystemgeneratordir == ''
+  assert(systemd_dep.found(), 'systemd required but not found, please provide 
a valid systemd user generator dir or disable it')
+  systemd_systemdsystemgeneratordir = systemd_dep.get_variable(pkgconfig: 
'systemdsystemgeneratordir', pkgconfig_define: ['rootprefix', nm_prefix])
+endif
+
 enable_systemd_journal = get_option('systemd_journal')
 if enable_systemd_journal
   assert(libsystemd_dep.found(), 'Missing systemd-journald support')
@@ -1059,6 +1067,7 @@ output = '\nSystem paths:\n'
 output += '  prefix: ' + nm_prefix + '\n'
 output += '  exec_prefix: ' + nm_prefix + '\n'
 output += '  systemdunitdir: ' + systemd_systemdsystemunitdir + '\n'
+output += '  systemdgeneratordir: ' + systemd_systemdsystemgeneratordir + '\n'
 output += '  udev_dir: ' + udev_udevdir + '\n'
 output += '  nmbinary: ' + nm_pkgsbindir + '\n'
 output += '  nmconfdir: ' + nm_pkgconfdir + '\n'
diff --git a/meson_options.txt b/meson_options.txt
index d28cc76fc89..8ec68a46bd3 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,5 +1,6 @@
 # system paths
 option('systemdsystemunitdir', type: 'string', value: '', description: 
'Directory for systemd service files')
+option('systemdsystemgeneratordir', type: 'string', value: '', description: 
'Directory for systemd generator files')
 option('system_ca_path', type: 'string', value: '/etc/ssl/certs', description: 
'path to system CA certificates')
 option('udev_dir', type: 'string', value: '', description: 'Absolute path of 
the udev base directory. Set to \'no\' not to install the udev rule')
 option('dbus_conf_dir', type: 'string', value: '', description: 'where D-Bus 
system.d directory is')
diff --git a/src/nm-initrd-generator/meson.build 
b/src/nm-initrd-generator/meson.build
index 6b02e0668df..2315ebe4f29 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 00000000000..20ff78cca5f
--- /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
-- 
GitLab

Reply via email to