Bug 1202351

Summary: dracut: remove mkinitrd wrapper
Product: [openSUSE] openSUSE Tumbleweed Reporter: Antonio Feijoo <antonio.feijoo>
Component: BasesystemAssignee: dracut maintainers <dracut-maintainers>
Status: NEW --- QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: jbohac
Version: Current   
Target Milestone: ---   
Hardware: Other   
OS: Other   
See Also: https://bugzilla.suse.com/show_bug.cgi?id=1203025
https://bugzilla.suse.com/show_bug.cgi?id=1203052
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Bug Depends on: 1203019, 1202352, 1202353, 1202443    
Bug Blocks:    

Description Antonio Feijoo 2022-08-12 06:46:13 UTC
Upstream support removed in March 2021 (https://github.com/dracutdevs/dracut/commit/43df4ee2) and deprecation announcement on factory mailing list in May 2021 (https://lists.opensuse.org/archives/list/factory@lists.opensuse.org/thread/GDAZ7TVXS2BAXENVBAMHVXVHLSR7D7NQ/).

ALP will not ship the mkinitrd wrapper, so it's better to get rid of it in Tumbleweed first.

Affected packages that need to be updated before (at least):

# zypper se --requires mkinitrd 
Loading repository data...
Reading installed packages...

S  | Name                | Summary                                            | Type
---+---------------------+----------------------------------------------------+--------
   | kernel-debug        | A Debug Version of the Kernel                      | package
i+ | kernel-default      | The Standard Kernel                                | package
   | kernel-default-base | The Standard Kernel - base modules                 | package
   | kernel-kvmsmall     | The Small Developer Kernel for KVM                 | package
   | kernel-pae          | Kernel with PAE Support                            | package
   | kernel-vanilla      | The Standard Kernel - without any SUSE patches     | package
i  | mdadm               | Utility for configuring "MD" software RAID devices | package
Comment 1 Antonio Feijoo 2022-08-12 08:21:12 UTC
I also found references to mkinitrd in mkdumprd and the USE_MKINITRD config option, although it is not required by the kdump package. Does kdump need some tweaking too?
Comment 2 Jiri Bohac 2022-08-16 11:10:29 UTC
(In reply to Antonio Feijoo from comment #1)
> I also found references to mkinitrd in mkdumprd and the USE_MKINITRD config
> option, although it is not required by the kdump package. Does kdump need
> some tweaking too?

yes, the mkdumprd script needs tweaking

kdumptool, on the other hand does not - the string "mkinitrd" and USE_MKINITRD just define which kdump options are applicable for which part kdumptool's job; "initrd" refers to the phase where the kdump initramfs is being build, regardless of which program is used to do so.
Comment 3 Antonio Feijoo 2022-08-16 13:04:58 UTC
(In reply to Jiri Bohac from comment #2)
> (In reply to Antonio Feijoo from comment #1)
> > I also found references to mkinitrd in mkdumprd and the USE_MKINITRD config
> > option, although it is not required by the kdump package. Does kdump need
> > some tweaking too?
> 
> yes, the mkdumprd script needs tweaking

Ok, thanks for your feedback. Created bug #1202443 for that.
Comment 4 Antonio Feijoo 2022-09-01 10:23:25 UTC
More packages that need to be fixed, although their spec file does not include a explicit dependency:

- aaa_base

/usr/sbin/refresh_initrd:41:exec -a mkinitrd /sbin/mkinitrd ${1+"$@"}

# rpm -qf /usr/sbin/refresh_initrd
aaa_base-84.87+git20220727.43b9e53-1.1.x86_64


- x11-tools

/usr/lib/nvidia/pre-install:8:  mkinitrd

# rpm -qf /usr/lib/nvidia/pre-install
x11-tools-0.1-212.7.noarch


- yast2

/usr/share/YaST2/modules/Initrd.rb:72:      # parametr for mkinitrd because of splash screen
/usr/share/YaST2/modules/Initrd.rb:75:      # Additional parameters for mkinitrd
/usr/share/YaST2/modules/Initrd.rb:391:                "/lib/mkinitrd/scripts/setup-splash.sh"
/usr/share/YaST2/modules/Initrd.rb:400:          "/sbin/mkinitrd %1 %2 >> %3 2>&1",
/usr/share/YaST2/modules/Initrd.rb:405:          File.join(Directory.logdir, "y2logmkinitrd").shellescape
/usr/share/YaST2/modules/Initrd.rb:411:            Ops.add(Directory.logdir, "/y2logmkinitrd")
/usr/share/YaST2/modules/Initrd.rb:434:    # Set the -s parameter of mkinitrd
/usr/share/YaST2/modules/Initrd.rb:463:    # Get additional parameters for mkinitrd
/usr/share/YaST2/modules/Initrd.rb:464:    # @return [String] additional mkinitrd parameters
/usr/share/YaST2/modules/Initrd.rb:469:    # Set additional parameters for mkinitrd
/usr/share/YaST2/modules/Initrd.rb:470:    # @param [String] params string additional mkinitrd parameters

# rpm -qf /usr/share/YaST2/modules/Initrd.rb
yast2-4.5.10-1.1.x86_64


- yast2-country

/usr/share/YaST2/modules/Timezone.rb:85:      # if mkinitrd should be called at the end
/usr/share/YaST2/modules/Timezone.rb:86:      @call_mkinitrd = false
/usr/share/YaST2/modules/Timezone.rb:467:      Builtins.y2milestone("calling mkinitrd...")
/usr/share/YaST2/modules/Timezone.rb:470:        "/sbin/mkinitrd >> /var/log/YaST2/y2logmkinitrd 2>> /var/log/YaST2/y2logmkinitrd"
/usr/share/YaST2/modules/Timezone.rb:860:      CallMkinitrd() if @call_mkinitrd && !Stage.initial
/usr/share/YaST2/modules/Timezone.rb:1081:    publish :variable => :call_mkinitrd, :type => "boolean"

# rpm -qf /usr/share/YaST2/modules/Timezone.rb
yast2-country-4.5.1-1.1.x86_64


- yast2-kdump

/usr/share/YaST2/modules/Kdump.rb:419:      update_command = (using_fadump? ? "/usr/sbin/mkdumprd -f" : "/sbin/mkinitrd")
/usr/share/YaST2/modules/Kdump.rb:426:      update_logfile = File.join(Directory.logdir, "y2logmkinitrd")

# rpm -qf /usr/share/YaST2/modules/Kdump.rb
yast2-kdump-4.5.3-1.1.x86_64
Comment 5 Jiri Bohac 2022-11-24 15:37:11 UTC
(In reply to Antonio Feijoo from comment #4)
> - yast2-kdump
> 
> /usr/share/YaST2/modules/Kdump.rb:419:      update_command = (using_fadump?
> ? "/usr/sbin/mkdumprd -f" : "/sbin/mkinitrd")

this pece of yast2-kdump code does not make sense to me; it should just call mkdumprd and it will decide whether fadump or non-fadump initrd is to be generated