From 9ebc8aa4807700e5a4da66c3aa111d69a514e374 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= Date: Fri, 9 Jan 2026 08:32:58 +0100 Subject: [PATCH 1/3] spec: fix nmplugindir When dist_version is defined in meson, NM installs plugins to a directory called `NetworkManager-${dist_version}`. If the dist version contains a `~`, like `1.56~rc1`, defining nmplugindir with `%{version_no_tilde}` makes it `NetworkManager-1.56-rc1`, causing rpmbuild errors due to the mismatch. Fix it by defining nmplugindir with `%{version}` instead. Fixes: d975389bcda0 ('spec: use versioning scheme with ~dev and ~rc suffixes') --- contrib/fedora/rpm/NetworkManager.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/fedora/rpm/NetworkManager.spec b/contrib/fedora/rpm/NetworkManager.spec index 1f3dff98b4..a2f0587884 100644 --- a/contrib/fedora/rpm/NetworkManager.spec +++ b/contrib/fedora/rpm/NetworkManager.spec @@ -27,7 +27,7 @@ %global obsoletes_ifcfg_rh 1:1.36.2 %global nmlibdir %{_prefix}/lib/%{name} -%global nmplugindir %{_libdir}/%{name}/%{version_no_tilde}-%{release} +%global nmplugindir %{_libdir}/%{name}/%{version}-%{release} %global _hardened_build 1 From 5445ad2287bbbfca713f4558769463184f499106 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= Date: Thu, 8 Jan 2026 16:27:08 +0100 Subject: [PATCH 2/3] spec: remove snapshot and git_sha macros Snapshot is only used from nm-copr-build.sh script, so not very useful. Git_sha is used from build.sh. Other than that, downstream is always nil. Remove them and modify build.sh to use --define "dist xxx" instead of them. This change is motivated by Packit not being able to modify the release number if it has the %{snap} suffix. --- contrib/fedora/rpm/NetworkManager.spec | 13 +------------ contrib/fedora/rpm/build.sh | 12 ++++++------ 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/contrib/fedora/rpm/NetworkManager.spec b/contrib/fedora/rpm/NetworkManager.spec index a2f0587884..0cfedb921f 100644 --- a/contrib/fedora/rpm/NetworkManager.spec +++ b/contrib/fedora/rpm/NetworkManager.spec @@ -15,8 +15,6 @@ %global epoch_version 1 %global base_version __VERSION__ %global release_version __RELEASE_VERSION__ -%global snapshot __SNAPSHOT__ -%global git_sha __COMMIT__ %global bcond_default_debug __BCOND_DEFAULT_DEBUG__ %global bcond_default_lto __BCOND_DEFAULT_LTO__ %global bcond_default_test __BCOND_DEFAULT_TEST__ @@ -31,15 +29,6 @@ %global _hardened_build 1 -%if "x%{?snapshot}" != "x" -%global snapshot_dot .%{snapshot} -%endif -%if "x%{?git_sha}" != "x" -%global git_sha_dot .%{git_sha} -%endif - -%global snap %{?snapshot_dot}%{?git_sha_dot} - %global systemd_units NetworkManager.service NetworkManager-wait-online.service NetworkManager-dispatcher.service nm-priv-helper.service %global systemd_units_cloud_setup nm-cloud-setup.service nm-cloud-setup.timer @@ -166,7 +155,7 @@ Name: NetworkManager Summary: Network connection manager and user applications Epoch: %{epoch_version} Version: %{base_version} -Release: %{release_version}%{?snap}%{?dist} +Release: %{release_version}%{?dist} Group: System Environment/Base License: GPL-2.0-or-later AND LGPL-2.1-or-later URL: https://networkmanager.dev/ diff --git a/contrib/fedora/rpm/build.sh b/contrib/fedora/rpm/build.sh index ee4be6a079..101805876c 100755 --- a/contrib/fedora/rpm/build.sh +++ b/contrib/fedora/rpm/build.sh @@ -110,7 +110,6 @@ exec 2>&1 UUID=`uuidgen` RELEASE_VERSION="${RELEASE_VERSION:-$(git rev-list HEAD | wc -l)}" -SNAPSHOT="${SNAPSHOT:-%{nil\}}" VERSION="${VERSION:-$(get_version || die "Could not read $VERSION")}" COMMIT_FULL="${COMMIT_FULL:-$(git rev-parse --verify HEAD || die "Error reading HEAD revision")}" COMMIT="${COMMIT:-$(printf '%s' "$COMMIT_FULL" | sed 's/^\(.\{10\}\).*/\1/' || die "Error reading HEAD revision")}" @@ -208,10 +207,6 @@ write_changelog sed -e "s/__VERSION__/${VERSION/-/\~}/g" \ -e "s/__RELEASE_VERSION__/$RELEASE_VERSION/g" \ - -e "s/__SNAPSHOT__/$SNAPSHOT/g" \ - -e "s/__COMMIT__/$COMMIT/g" \ - -e "s/__COMMIT_FULL__/$COMMIT_FULL/g" \ - -e "s/__SNAPSHOT__/$SNAPSHOT/g" \ -e "s/__SOURCE1__/$(basename "$SOURCE")/g" \ -e "s/__BCOND_DEFAULT_DEBUG__/$BCOND_DEFAULT_DEBUG/g" \ -e "s/__BCOND_DEFAULT_LTO__/${BCOND_DEFAULT_LTO:-"%{nil}"}/g" \ @@ -232,7 +227,12 @@ case "$BUILDTYPE" in ;; esac -rpmbuild --define "_topdir $TEMP" $RPM_BUILD_OPTION "$TEMPSPEC" $NM_RPMBUILD_ARGS || die "ERROR: rpmbuild FAILED" +DIST= +[[ "$COMMIT" != "" ]] && DIST=".${COMMIT}${DIST}" +[[ "$SNAPSHOT" != "" ]] && DIST=".${SNAPSHOT}${DIST}" +[[ "$DIST" != "" ]] && DIST=("--define" "dist ${DIST}$(rpmbuild --eval '%{dist}')") + +rpmbuild --define "_topdir $TEMP" "${DIST[@]}" $RPM_BUILD_OPTION "$TEMPSPEC" $NM_RPMBUILD_ARGS || die "ERROR: rpmbuild FAILED" LS_EXTRA=() From 6d952902b9077b53c882016060f71c7be1f9eb94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= Date: Thu, 8 Jan 2026 16:31:34 +0100 Subject: [PATCH 3/3] spec: move the main info to the top It's clearer this way, and it will allow to modify directly the "Version:" and "Release:" fields to bump the version. It is more aligned with the layout of other projects' spec files too. --- contrib/fedora/rpm/NetworkManager.spec | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/contrib/fedora/rpm/NetworkManager.spec b/contrib/fedora/rpm/NetworkManager.spec index 0cfedb921f..b5e7b0651e 100644 --- a/contrib/fedora/rpm/NetworkManager.spec +++ b/contrib/fedora/rpm/NetworkManager.spec @@ -6,15 +6,23 @@ # # Note that it contains __PLACEHOLDERS__ that will be replaced by the accompanying 'build.sh' script. +Name: NetworkManager +Summary: Network connection manager and user applications +License: GPL-2.0-or-later AND LGPL-2.1-or-later +URL: https://networkmanager.dev/ +Group: System Environment/Base + +Epoch: 1 +Version: __VERSION__ +Release: __RELEASE_VERSION__%{?dist} + +############################################################################### %global wpa_supplicant_version 1:1.1 %global ppp_version %(pkg-config --modversion pppd 2>/dev/null || sed -n 's/^#define\\s*VERSION\\s*"\\([^\\s]*\\)"$/\\1/p' %{_includedir}/pppd/patchlevel.h 2>/dev/null | grep . || echo bad) %global glib2_version %(pkg-config --modversion glib-2.0 2>/dev/null || echo bad) -%global epoch_version 1 -%global base_version __VERSION__ -%global release_version __RELEASE_VERSION__ %global bcond_default_debug __BCOND_DEFAULT_DEBUG__ %global bcond_default_lto __BCOND_DEFAULT_LTO__ %global bcond_default_test __BCOND_DEFAULT_TEST__ @@ -151,15 +159,6 @@ ############################################################################### -Name: NetworkManager -Summary: Network connection manager and user applications -Epoch: %{epoch_version} -Version: %{base_version} -Release: %{release_version}%{?dist} -Group: System Environment/Base -License: GPL-2.0-or-later AND LGPL-2.1-or-later -URL: https://networkmanager.dev/ - #Source: https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/releases/%{version_no_tilde}/downloads/%{name}-%{version_no_tilde}.tar.xz Source: __SOURCE1__ Source1: NetworkManager.conf