Forwarding, per Takashi's suggestion. Let's keep the discussion here.

-------- Forwarded Message --------
Subject: Re: Heads up: sunsetting mkinitrd
Date: Tue, 18 May 2021 17:46:03 +0200
From: Takashi Iwai <tiwai@suse.de>
To: Daniel Molkentin <dmolkentin@suse.de>
CC: factory@lists.opensuse.org, packaging@lists.opensuse.org


On Tue, 18 May 2021 17:21:20 +0200,
Daniel Molkentin wrote:

Hi,

with the pending submission of Dracut 054, which removes mkinitrd from
the upstream sources, it's time to finally remove mkinitrd in Factory, too:

Changes starting with 054
-------------------------

- mkinitrd will temporarily live in its own dracut-mkinitrd-deprecated
package. It will still be installed when requiring "mkinitrd" and
requires dracut, so nothing changes here.
- If you only required dracut, but meant to require mkinitrd, you need
to change this temporarily or change your scripts to directly call dracut.

Rationale
---------

mkinitrd has always been a rather mediocre wrapper that claimed to keep
compatibility with the SLES 11 implementation. However:

- it has a lot of bugs, quite some documented (!) flags have never
worked, others are marked unimplemented or will say so only if invoked.
I see little point in doing that given
- it adds little value over just using plain Dracut

Differences in calling dracut over calling mkinitrd:
----------------------------------------------------

- Dracut only updates the initrd for the currently running kernel,
unless either a kernel version or --regenerate-all is called
- mkinitrd updates the bootloader by default. Dracut has no such option.
Then again, those are two different concerns that are only merged into a
single command for convenience. Usually this should be invoked from the
kernel install script.
- mkinitrd parses the no longer existing /etc/sysconfig/kernel file.
- mkinitrd handles xen-specific modules. I have not enough understanding
of the state of Xen in Factory to judge whether this is still required.
If so, it should be handled in a dracut module. However, judging by the
fact that the default is sourced from the defunc'ed kernel sysconfig
file, this is probably also dead.
- mkinitrd has slightly different semantics on how to specify a boot
device for NFS & Co.


Point of Contact
----------------

If you have concerns how this affects your package, please let us (me,
Thomas Blume or Neil) know. For the Kernel and other packages that are
definitely impacted once mkinitrd would go away (e.g. YaST), we will
reach out separately and / or file bugzilla issues.

I believe that the more suitable place to post would have been
kernel@opensuse...

In anyway, two biggest breakages would be the kernel packages
themselves and suse-module-tools package. There can be a few KMP
packages that have dependency on mkinitrd, but they could be fixed
since the dependency should be superfluous.

For the kernel packages, at least two things, AFAIK:
* kernel-* binary packages have dependency on mkinitrd
* kernel-obs-build explicitly creates the initrd with mkinitrd.
Both are relatively easy to fix, I suppose.

However, the major pains would be rather for the scripts in
suse-module-tools package. Better to ask Martin Wilck about that.


thanks,

Takashi