From 0a072213355956846b580a5b23fc659137a528aa Mon Sep 17 00:00:00 2001 From: Achilleas Koutsou Date: Wed, 19 Feb 2025 13:57:29 +0100 Subject: [PATCH] distro,manifest: replace ifcfg with net-lib for EL10 and F42 installers In RHEL 10 and Fedora 42, the ifcfg module was replaced by net-lib. Anaconda changes: - https://github.com/rhinstaller/anaconda/pull/6125 - https://github.com/rhinstaller/anaconda/pull/6155 Remove ifcfg from common anaconda dracut stage modules and add either ifcfg or net-lib to each installer based on distro version. --- pkg/distro/fedora/distro.go | 19 +++++++++++++++++++ pkg/distro/rhel/rhel10/bare_metal.go | 1 + pkg/distro/rhel/rhel8/bare_metal.go | 1 + pkg/distro/rhel/rhel8/edge.go | 1 + pkg/distro/rhel/rhel9/bare_metal.go | 1 + pkg/distro/rhel/rhel9/edge.go | 1 + pkg/manifest/anaconda_installer.go | 1 - 7 files changed, 24 insertions(+), 1 deletion(-) diff --git a/pkg/distro/fedora/distro.go b/pkg/distro/fedora/distro.go index 44db9ebf9a..127a6d341c 100644 --- a/pkg/distro/fedora/distro.go +++ b/pkg/distro/fedora/distro.go @@ -475,6 +475,18 @@ var defaultDistroImageConfig = &distro.ImageConfig{ DefaultOSCAPDatastream: common.ToPtr(oscap.DefaultFedoraDatastream()), } +func defaultDistroInstallerConfig(d *distribution) *distro.InstallerConfig { + config := distro.InstallerConfig{} + // In Fedora 42 the ifcfg module was replaced by net-lib. + if common.VersionLessThan(d.osVersion, "42") { + config.AdditionalDracutModules = append(config.AdditionalDracutModules, "ifcfg") + } else { + config.AdditionalDracutModules = append(config.AdditionalDracutModules, "net-lib") + } + + return &config +} + func getISOLabelFunc(variant string) isoLabelFunc { const ISO_LABEL = "%s-%s-%s-%s" @@ -751,6 +763,12 @@ func newDistro(version int) distro.Distro { containerImgType, wslImgType, ) + + // add distro installer configuration to all installer types + distroInstallerConfig := defaultDistroInstallerConfig(&rd) + liveInstallerImgType.defaultInstallerConfig = distroInstallerConfig + imageInstallerImgType.defaultInstallerConfig = distroInstallerConfig + iotInstallerImgType.defaultInstallerConfig = distroInstallerConfig x86_64.addImageTypes( &platform.X86{ BasePlatform: platform.BasePlatform{ @@ -912,6 +930,7 @@ func newDistro(version int) distro.Distro { minimalrawImgType, ) + iotSimplifiedInstallerImgType.defaultInstallerConfig = distroInstallerConfig x86_64.addImageTypes( &platform.X86{ BasePlatform: platform.BasePlatform{ diff --git a/pkg/distro/rhel/rhel10/bare_metal.go b/pkg/distro/rhel/rhel10/bare_metal.go index 711992f5ff..7fe1c53b77 100644 --- a/pkg/distro/rhel/rhel10/bare_metal.go +++ b/pkg/distro/rhel/rhel10/bare_metal.go @@ -53,6 +53,7 @@ func mkImageInstallerImgType() *rhel.ImageType { "nvdimm", // non-volatile DIMM firmware (provides nfit, cuse, and nd_e820) "prefixdevname", "prefixdevname-tools", + "net-lib", }, AdditionalDrivers: []string{ "ipmi_devintf", diff --git a/pkg/distro/rhel/rhel8/bare_metal.go b/pkg/distro/rhel/rhel8/bare_metal.go index 0d5fbe066c..e1703e871b 100644 --- a/pkg/distro/rhel/rhel8/bare_metal.go +++ b/pkg/distro/rhel/rhel8/bare_metal.go @@ -32,6 +32,7 @@ func mkImageInstaller() *rhel.ImageType { AdditionalDracutModules: []string{ "prefixdevname", "prefixdevname-tools", + "ifcfg", }, } diff --git a/pkg/distro/rhel/rhel8/edge.go b/pkg/distro/rhel/rhel8/edge.go index c0ab527705..a7806957ff 100644 --- a/pkg/distro/rhel/rhel8/edge.go +++ b/pkg/distro/rhel/rhel8/edge.go @@ -130,6 +130,7 @@ func mkEdgeInstallerImgType(rd *rhel.Distribution) *rhel.ImageType { AdditionalDracutModules: []string{ "prefixdevname", "prefixdevname-tools", + "ifcfg", }, } it.RPMOSTree = true diff --git a/pkg/distro/rhel/rhel9/bare_metal.go b/pkg/distro/rhel/rhel9/bare_metal.go index 3702cf377e..7911413809 100644 --- a/pkg/distro/rhel/rhel9/bare_metal.go +++ b/pkg/distro/rhel/rhel9/bare_metal.go @@ -54,6 +54,7 @@ func mkImageInstallerImgType() *rhel.ImageType { "nvdimm", // non-volatile DIMM firmware (provides nfit, cuse, and nd_e820) "prefixdevname", "prefixdevname-tools", + "ifcfg", }, AdditionalDrivers: []string{ "cuse", diff --git a/pkg/distro/rhel/rhel9/edge.go b/pkg/distro/rhel/rhel9/edge.go index 740bd91cd6..f76c928b06 100644 --- a/pkg/distro/rhel/rhel9/edge.go +++ b/pkg/distro/rhel/rhel9/edge.go @@ -148,6 +148,7 @@ func mkEdgeInstallerImgType() *rhel.ImageType { "nvdimm", // non-volatile DIMM firmware (provides nfit, cuse, and nd_e820) "prefixdevname", "prefixdevname-tools", + "ifcfg", }, AdditionalDrivers: []string{ "cuse", diff --git a/pkg/manifest/anaconda_installer.go b/pkg/manifest/anaconda_installer.go index 764f04a721..e180df4f63 100644 --- a/pkg/manifest/anaconda_installer.go +++ b/pkg/manifest/anaconda_installer.go @@ -422,7 +422,6 @@ func dracutStageOptions(kernelVer string, biosdevname bool, additionalModules [] "convertfs", "network-manager", "network", - "ifcfg", "url-lib", "drm", "plymouth",