Re: NetworkManager keyfile instead of ifcfg-rh - Fedora 33 System-Wide Change proposal

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 29 June 2020 18:40:23 CEST, Ben Cotton <bcotton@xxxxxxxxxx> wrote:
>https://fedoraproject.org/wiki/Changes/NetworkManager_keyfile_instead_of_ifcfg_rh
>
>== Summary ==
>Change the default settings plugin of NetworkManager so that new
>profiles will be created in keyfile format instead of ifcfg-rh format.
>
>== Owner ==
>* Name: [[User:Thaller| Thomas Haller]]
>* Email: <thaller@xxxxxxxxxx>
>
>== Detailed Description ==
>NetworkManager supports settings plugins to persist connection
>profiles to disk. There is the native ''keyfile'' format and the
>Fedora/RHEL specific ''ifcfg-rh'' format originally from initscripts.
>The keyfile plugin is always enabled in NetworkManager and can handle
>any supported type of profile. It stores profiles under
>`/{etc,usr/lib,run}/NetworkManager/system-connections` and is
>documented in [https://developer.gnome.org/NetworkManager/stable/nm-settings-keyfile.html
>nm-settings-keyfile manual]. The ifcfg-rh format is in part compatible
>with the network-scripts package from initscripts, however both
>network-scripts and NetworkManager define their own extensions
>([https://developer.gnome.org/NetworkManager/stable/nm-settings-ifcfg-rh.html
>[1]]). Since network-scripts and NetworkManager are fundamentally
>different, the same ifcfg file is not treated exactly the same by both
>systems. In the past, having the ifcfg-rh format made it easier for
>users familiar with initscripts to migrate to/from NetworkManager.
>
>The settings plugins are configurable in
>[https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html
>NetworkManager.conf] via the `"main.plugins"` option. Multiple plugins
>can be configured and on Fedora 32 and older, the compile time default
>for the option is `"ifcfg-rh,keyfile"`. This means, that when
>NetworkManager stores a new profile to disk, it will first try to
>persist it in ifcfg-rh format before falling back to keyfile format,
>if the ifcfg-rh plugin doesn't support the profile type. When reading
>profiles from disk, NetworkManager will read and expose profiles from
>both settings plugins and when modifying an existing profile, it will
>update the existing file and preserve the settings plugin.
>
>This Change is about to change the default for `"main.plugins"` from
>`"ifcfg-rh,keyfile"` to `"keyfile,ifcfg-rh"`.
>
>== Feedback ==
>This was brought up on the NetworkManager mailing list
>([https://mail.gnome.org/archives/networkmanager-list/2020-May/msg00002.html
>[1]]]).
>
>Fedora CoreOS doesn't use ifcfg-rh files at all, only keyfile. Also,
>RHEL CoreOS uses the `"main.plugins=ifcfg-rh,keyfile"` configuration
>too. For CoreOS this of course is simpler, because they don't deal
>with existing user configurations and tools that would break during
>upgrade.
>
>== Benefit to Fedora ==
>The long term goal of NetworkManager is to move away from ifcfg-rh
>files. That will be difficult as it affects existing installations and
>will require migration of existing configurations. This change is only
>a first step and affects how NetworkManager by default persists new
>profiles to disk.
>
>The ifcfg-rh format arguably has an uglier syntax and, contrary to
>keyfile, does not support all profile types. Also, keyfile plugin is
>available on every NetworkManager installation because that is the
>only plugin that supports all profiles. Having multiple plugins and
>file formats is confusing. By now, initscripts' `network-script`
>package is deprecated in Fedora and upstream wants to move away from
>that format in the long term. Also maintaining multiple settings
>plugins is a maintainance burden, and in the past there were subtle
>bugs where ifcfg-rh did not implement all settings (e.g.
>[https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2020-10754
>CVE-2020-10754]). On other Linux distributions NetworkManager uses the
>keyfile format by default. It is a general goal that NetworkManager
>works similar on all distributions.
>
>== Scope ==
>
>* Proposal owners: The default settings for `"main.plugins"` can
>already be selected at compile time. This only requires building the
>package with a different default
>([https://src.fedoraproject.org/rpms/NetworkManager/blob/a06b38bcbe8f9a38badab4f37e8c6fae240428b7/f/NetworkManager.spec#_759
>[3]]).
>* Other developers: N/A (not needed for this Change)
>* Policies and guidelines: N/A (not needed for this Change)
>* Trademark approval: N/A (not needed for this Change)
>
>== Upgrade/compatibility impact ==
>This affects most users, unless they explicitly set the option in
>NetworkManager.conf configuration. The biggest effect of this change
>is that new profiles will now preferably be persisted in keyfile
>format. This changes behavior for users who expect NetworkManager to
>write ifcfg-rh files, or who have scripts or tools that expect that.
>What will still work is that existing ifcfg files are loaded after
>upgrade. Users who only use the D-Bus API (via one of the client
>applications like nmcli or the GUI), shouldn't notice the difference.
>
>As before, users still can explicitly configure the settings plugins
>in NetworkManager.conf. This only affects the default, but it affects
>existing installations if the user didn't explicitly configure
>NetworkManager's `"main.plugins"` option.
>
>The Change will be implemented by changing the compile time default,
>instead of dropping a configuration snippet. The reason is that it is
>preferably that the installation of NetworkManager avoids extra
>configuration. The default behavior should be achived without any
>configuration. During package update there would be the possibility to
>drop a file `/etc/NetworkManager/02-update-plugins-ifcfg-rh.conf` that
>preserves the previous behavior. However, I don't think that is
>necessary. After upgrading NetworkManager, it will still read ifcfg-rh
>file so for the user it is less necessary to preserve the previous
>behavior. Also, dropping configuration snippets during package upgrade
>has its own downsides because new installations behave different than
>upgraded systems.
>
>
>== How To Test ==
>You can already test the effect by explicitly configuring the setting
>which will become the default. For example, add a file
>`/etc/NetworkManager/conf.d/99-main-plugins.conf` with content
>
>  [main]
>  plugins=keyfile,ifcfg-rh
>
>== User Experience ==
>NetworkManager now preferably uses the keyfile format (INI files).
>This format is probably easier to understand to users and also has a
>closer resemblance to how the profile is presented in nmcli.
>
>If the user is using NetworkManager tools that use the D-Bus API (like
>nmcli or the GUI), then the used storage plugin and format is usually
>of no concern for the user.
>
>== Dependencies ==
>None
>
>
>== Contingency Plan ==
>The `"main.plugins"` option exists for a long time in NetworkManager.
>All that changes here is the default of this option.
>
>* Contingency mechanism: revert the change
>* Contingency deadline: beta freeze
>* Blocks release? No
>
>== Documentation ==
>I am not aware of documentation that gets affected by this.
>
>
>== Release Notes ==
>NetworkManager now prefers the keyfile settings plugin over ifcfg-rh
>plugin when writing new connection profiles to disk. Existing ifcfg-rh
>files are still handled as before.
>
>
This seems like a reasonable change. ifcfg-rh is a redhatism, keyfile isn't. So it a move to a more distro agnostic formar. Also non-breaking since old configs will continue to work. 
+1
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux