From 0415d904cb66da57650348205ac670c6c858f72b Mon Sep 17 00:00:00 2001 From: Ana Cabral Date: Thu, 26 May 2022 15:23:47 -0300 Subject: [PATCH 1/2] rpm: move ifcfg scripts directory to the NetworkManager package NetworkManager does not support by default legacy ifcfg configuration files anymore, this support is now provided in a separate package (https://fedoramagazine.org/converting-networkmanager-from-ifcfg-to-keyfiles/). ifcfg directory (/etc/sysconfig/network-scripts/) should always be present, regardless of NetworkManager support for network scripts. This change makes the directory always present, not only when the recently splitted ifcfg subpackage is installed, and also make it persistent after the package removal. Fixes: 50a6627fd728 ('rpm: split ifcfg-rh settings plugin into a separate package') --- contrib/fedora/rpm/NetworkManager.spec | 3 --- 1 file changed, 3 deletions(-) diff --git a/contrib/fedora/rpm/NetworkManager.spec b/contrib/fedora/rpm/NetworkManager.spec index 779b71ba2a..363c7d728a 100644 --- a/contrib/fedora/rpm/NetworkManager.spec +++ b/contrib/fedora/rpm/NetworkManager.spec @@ -1075,9 +1075,7 @@ fi %{_mandir}/man8/NetworkManager-dispatcher.8.gz %{_mandir}/man8/NetworkManager-wait-online.service.8.gz %dir %{_localstatedir}/lib/NetworkManager -%if 0%{?split_ifcfg_rh} == 0 %dir %{_sysconfdir}/sysconfig/network-scripts -%endif %{_datadir}/dbus-1/system-services/org.freedesktop.nm_dispatcher.service %{_datadir}/dbus-1/system-services/org.freedesktop.nm_priv_helper.service %{_datadir}/polkit-1/actions/*.policy @@ -1207,7 +1205,6 @@ fi %if 0%{?split_ifcfg_rh} %files initscripts-ifcfg-rh -%dir %{_sysconfdir}/sysconfig/network-scripts %{nmplugindir}/libnm-settings-plugin-ifcfg-rh.so %{dbus_sys_dir}/nm-ifcfg-rh.conf %endif From 96d736261300ad9e9401c8e2affd518a86df8b64 Mon Sep 17 00:00:00 2001 From: Ana Cabral Date: Thu, 26 May 2022 15:52:57 -0300 Subject: [PATCH 2/2] rpm: include a warning message for network configuration on /etc/sysconfig/network-scripts directory NetworkManager now does not support network configuration through ifcfg files by default anymore, it is provided in a separated package: https://fedoramagazine.org/converting-networkmanager-from-ifcfg-to-keyfiles/ This commits include a file in rpm packages located in ifcfg scripts directory, /etc/sysconfig/network-scripts/, to inform the user of the new location of network configuration files. https://bugzilla.redhat.com/show_bug.cgi?id=2074020 --- contrib/fedora/rpm/NetworkManager.spec | 10 +++++++++ contrib/fedora/rpm/build.sh | 4 ++++ contrib/fedora/rpm/readme-ifcfg-rh.txt | 31 ++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 contrib/fedora/rpm/readme-ifcfg-rh.txt diff --git a/contrib/fedora/rpm/NetworkManager.spec b/contrib/fedora/rpm/NetworkManager.spec index 363c7d728a..52ab13192b 100644 --- a/contrib/fedora/rpm/NetworkManager.spec +++ b/contrib/fedora/rpm/NetworkManager.spec @@ -161,8 +161,10 @@ %if 0%{?rhel} > 9 || 0%{?fedora} > 35 %global split_ifcfg_rh 1 +%global ifcfg_warning 1 %else %global split_ifcfg_rh 0 +%global ifcfg_warning 0 %endif %if 0%{?fedora} @@ -199,6 +201,7 @@ Source2: 00-server.conf Source4: 20-connectivity-fedora.conf Source5: 20-connectivity-redhat.conf Source6: 70-nm-connectivity.conf +Source7: readme-ifcfg-rh.txt #Patch1: 0001-some.patch @@ -900,6 +903,10 @@ mkdir -p %{buildroot}%{_sysctldir} cp %{SOURCE6} %{buildroot}%{_sysctldir} %endif +%if 0%{?ifcfg_warning} +cp %{SOURCE7} %{buildroot}%{_sysconfdir}/sysconfig/network-scripts +%endif + cp examples/dispatcher/10-ifcfg-rh-routes.sh %{buildroot}%{nmlibdir}/dispatcher.d/ ln -s ../no-wait.d/10-ifcfg-rh-routes.sh %{buildroot}%{nmlibdir}/dispatcher.d/pre-up.d/ ln -s ../10-ifcfg-rh-routes.sh %{buildroot}%{nmlibdir}/dispatcher.d/no-wait.d/ @@ -1090,6 +1097,9 @@ fi %{_unitdir}/nm-priv-helper.service %dir %{_datadir}/doc/NetworkManager/examples %{_datadir}/doc/NetworkManager/examples/server.conf +%if 0%{?ifcfg_warning} +%{_sysconfdir}/sysconfig/network-scripts/readme-ifcfg-rh.txt +%endif %doc NEWS AUTHORS README.md CONTRIBUTING.md %license COPYING %license COPYING.LGPL diff --git a/contrib/fedora/rpm/build.sh b/contrib/fedora/rpm/build.sh index abfa42e210..6157df44ba 100755 --- a/contrib/fedora/rpm/build.sh +++ b/contrib/fedora/rpm/build.sh @@ -21,6 +21,7 @@ # SOURCE_CONFIG_CONNECTIVITY_FEDORA= # SOURCE_CONFIG_CONNECTIVITY_REDHAT= # SOURCE_SYSCTL_RP_FILTER_REDHAT= +# SOURCE_README_IFCFG_FILES= # SIGN_SOURCE= # DO_RELEASE= # BCOND_DEFAULT_DEBUG= @@ -140,6 +141,7 @@ SOURCE_CONFIG_SERVER="$(abs_path "$SOURCE_CONFIG_SERVER" "$SCRIPTDIR/00-server.c SOURCE_CONFIG_CONNECTIVITY_FEDORA="$(abs_path "$SOURCE_CONFIG_CONNECTIVITY_FEDORA" "$SCRIPTDIR/20-connectivity-fedora.conf")" || die "invalid \$SOURCE_CONFIG_CONNECTIVITY_FEDORA argument" SOURCE_CONFIG_CONNECTIVITY_REDHAT="$(abs_path "$SOURCE_CONFIG_CONNECTIVITY_REDHAT" "$SCRIPTDIR/20-connectivity-redhat.conf")" || die "invalid \$SOURCE_CONFIG_CONNECTIVITY_REDHAT argument" SOURCE_SYSCTL_RP_FILTER_REDHAT="$(abs_path "$SOURCE_SYSCTL_RP_FILTER_REDHAT" "$SCRIPTDIR/70-nm-connectivity.conf")" || die "invalid \$SOURCE_SYSCTL_RP_FILTER_REDHAT argument" +SOURCE_README_IFCFG_FILES="$(abs_path "$SOURCE_README_IFCFG_FILES" "$SCRIPTDIR/readme-ifcfg-rh.txt")" || die "invalid \$SOURCE_README_IFCFG_FILES argument" TEMP="$(mktemp -d "$SCRIPTDIR/NetworkManager.$DATE.XXXXXX")" TEMPBASE="$(basename "$TEMP")" @@ -166,6 +168,7 @@ LOG "SOURCE_CONFIG_SERVER=$SOURCE_CONFIG_SERVER" LOG "SOURCE_CONFIG_CONNECTIVITY_FEDORA=$SOURCE_CONFIG_CONNECTIVITY_FEDORA" LOG "SOURCE_CONFIG_CONNECTIVITY_REDHAT=$SOURCE_CONFIG_CONNECTIVITY_REDHAT" LOG "SOURCE_SYSCTL_RP_FILTER_REDHAT=$SOURCE_SYSCTL_RP_FILTER_REDHAT" +LOG "SOURCE_README_IFCFG_FILES=$SOURCE_README_IFCFG_FILES" LOG "BUILDTYPE=$BUILDTYPE" LOG "NM_RPMBUILD_ARGS=$NM_RPMBUILD_ARGS" LOG "BCOND_DEFAULT_DEBUG=$BCOND_DEFAULT_DEBUG" @@ -192,6 +195,7 @@ cp "$SOURCE_CONFIG_SERVER" "$TEMP/SOURCES/00-server.conf" || die "Could not copy cp "$SOURCE_CONFIG_CONNECTIVITY_FEDORA" "$TEMP/SOURCES/20-connectivity-fedora.conf" || die "Could not copy source $SOURCE_CONFIG_CONNECTIVITY_FEDORA to $TEMP/SOURCES" cp "$SOURCE_CONFIG_CONNECTIVITY_REDHAT" "$TEMP/SOURCES/20-connectivity-redhat.conf" || die "Could not copy source $SOURCE_CONFIG_CONNECTIVITY_REDHAT to $TEMP/SOURCES" cp "$SOURCE_SYSCTL_RP_FILTER_REDHAT" "$TEMP/SOURCES/70-nm-connectivity.conf" || die "Could not copy source $SOURCE_SYSCTL_RP_FILTER_REDHAT to $TEMP/SOURCES" +cp "$SOURCE_README_IFCFG_FILES" "$TEMP/SOURCES/readme-ifcfg-rh.txt" || die "Could not copy source $SOURCE_README_IFCFG_FILES to $TEMP/SOURCES" write_changelog diff --git a/contrib/fedora/rpm/readme-ifcfg-rh.txt b/contrib/fedora/rpm/readme-ifcfg-rh.txt new file mode 100644 index 0000000000..b69a681791 --- /dev/null +++ b/contrib/fedora/rpm/readme-ifcfg-rh.txt @@ -0,0 +1,31 @@ +NetworkManager stores new network profiles in keyfile format in the +/etc/NetworkManager/system-connections/ directory. + +Previously, NetworkManager stored network profiles in ifcfg format +in this directory (/etc/sysconfig/network-scripts/). However, the ifcfg +format is deprecated. By default, NetworkManager no longer creates +new profiles in this format. + +Connection profiles in keyfile format have many benefits. For example, +this format is INI file-based and can easily be parsed and generated. + +Each section in NetworkManager keyfiles corresponds to a NetworkManager +setting name as described in the nm-settings(5) and nm-settings-keyfile(5) +man pages. Each key-value-pair in a section is one of the properties +listed in the settings specification of the man page. + +If you still use network profiles in ifcfg format, consider migrating +them to keyfile format. To migrate all profiles at once, enter: + +# nmcli connection migrate + +This command migrates all profiles from ifcfg format to keyfile +format and stores them in /etc/NetworkManager/system-connections/. + +Alternatively, to migrate only a specific profile, enter: + +# nmcli connection migrate + +For further details, see: +* nm-settings-keyfile(5) +* nmcli(1)