http://bugzilla.opensuse.org/show_bug.cgi?id=1184804
Bug ID: 1184804 Summary: move kernel out of /boot Classification: openSUSE Product: openSUSE Tumbleweed Version: Current Hardware: Other OS: Other Status: NEW Severity: Normal Priority: P5 - None Component: Kernel Assignee: kernel-bugs@opensuse.org Reporter: lnussel@suse.com QA Contact: qa-bugs@suse.de Found By: --- Blocker: ---
One of the motivations for UsrMerge is to have all read-only parts of the operating system in /usr. The kernel packages install files in /boot though which isn't in line with that idea. Having the kernel installed via rpm in /boot also causes issues with eg snapshots if /boot is on a separate partition. So it make sense to store the rpm provided parts of the kernel packages where the rest of the OS is and manage /boot separately.
Looking at Fedora they install files like vmlinuz that used to be named /boot/$name-$kver as (/usr)/lib/modules/$kver/$name instead. They include /boot/$name-$kver as %ghost.
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804
Ludwig Nussel lnussel@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Priority|P5 - None |P3 - Medium CC| |kernel-bugs@opensuse.org Assignee|kernel-bugs@opensuse.org |lnussel@suse.com
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c1
--- Comment #1 from Ludwig Nussel lnussel@suse.com --- As first step I'll move the files to /lib/modules/$kver/$name. The %post script will install the symlinks in /boot for now, just like it always did for eg /boot/vmlinuz.
Before we can manage /boot outside of the kernel's %post suse-module-tools needs to be adjusted to search in /lib instead. Also, pesign-obs-integration needs adoptions.
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c2
--- Comment #2 from Ludwig Nussel lnussel@suse.com --- Created attachment 848502 --> http://bugzilla.opensuse.org/attachment.cgi?id=848502&action=edit patch
Move kernel related read-only files from /boot to /lib/modules/%kernelrelease-%build_flavor
The file names in /boot are included as %ghost links. The %post script creates symlinks for the kernel sysctl.conf System.map in %boot for now. Some tools require adjustments before we can drop those links.
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c3
Ludwig Nussel lnussel@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |tiwai@suse.com Flags| |needinfo?(tiwai@suse.com)
--- Comment #3 from Ludwig Nussel lnussel@suse.com --- What's the process to submit/discuss the patch?
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c4
Takashi Iwai tiwai@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags|needinfo?(tiwai@suse.com) |
--- Comment #4 from Takashi Iwai tiwai@suse.com --- Let's get the consensus at first on opensuse-kernel ML. As far as I read the thread, it wasn't convincing enough.
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c5
Ludwig Nussel lnussel@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags| |needinfo?
--- Comment #5 from Ludwig Nussel lnussel@suse.com --- Who needs to be convinced? The discussion seems to have been derailed by the usual subjects. Any relevant concerns I should pay attention to?
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c6
Takashi Iwai tiwai@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags|needinfo? |
--- Comment #6 from Takashi Iwai tiwai@suse.com --- Are you sure that majority of people agreed with this movement? Just ask there. There are lots of technical details and they must have been clarified before moving on.
Basically Bugzilla is the place for reporting a bug. We may report some enhancements, but the basic design issue should have been discussed somewhere else beforehand.
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804
Ludwig Nussel lnussel@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1029961
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c7
Ludwig Nussel lnussel@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |https://lists.opensuse.org/ | |archives/list/kernel@lists. | |opensuse.org/thread/QWAZJHK | |GFI3Y6KQQCJ23IWQHL5YZRQ5P/
--- Comment #7 from Ludwig Nussel lnussel@suse.com --- For reference:
Fedora change: https://src.fedoraproject.org/rpms/kernel/c/958df3c
openSUSE kernel Mailinglist discussion: https://lists.opensuse.org/archives/list/kernel@lists.opensuse.org/thread/QW...
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804
Takashi Iwai tiwai@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |msuchanek@suse.com
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c8
--- Comment #8 from Michal Suchanek msuchanek@suse.com --- FTR the kernel packaging is shared between TW, Leap, SLE 15, and SLE 12 so that packaging fixes can be propagated across kernel versions.
Consequently this move should be optional - either by rpm/config.conf as are many other options or by distribution version.
Switching between the two is not difficult so long as a single rpm macro is defined at the start that controls the option throughout the spec file.
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c9
--- Comment #9 from Ludwig Nussel lnussel@suse.com --- https://build.opensuse.org/request/show/901652 is in so the last revision of my patch should be ready to be merged: http://kerncvs.suse.de/gitweb/?p=kernel-source.git%3Ba=commit%3Bh=4f91341ea3...
It leaves the files where they are in older releases.
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c10
--- Comment #10 from Michal Suchanek msuchanek@suse.com --- I think the changes to kernel-subpackage-spec are superfluous because the changes to kernel-subpackage-build already detect usrmerge. I did not get to building a TW kernel with this change reverted, though.
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c11
--- Comment #11 from Ludwig Nussel lnussel@suse.com --- Depmod is called and it looks into /lib/modules. That's fine but requires the /lib -> usr/lib link as installed in the kernel-subpackage-spec
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c12
--- Comment #12 from Ludwig Nussel lnussel@suse.com --- --- a/rpm/kernel-subpackage-build Alternative to the snippet in kernel-subpackage-spec would be something like
+++ b/rpm/kernel-subpackage-build @@ -36,7 +36,7 @@ echo $USR/lib/modules/$KREL/modules.* | tr ' ' '\n' >> modules.flist
tar -C / -cf- -T modules.flist | tar -C $RPM_BUILD_ROOT -xvf-
-moderr="$(/usr/sbin/depmod -b $RPM_BUILD_ROOT -e -F /boot/System.map-$KREL $KREL 2>&1 > /dev/null)" +moderr="$(/usr/sbin/depmod -b $RPM_BUILD_ROOT/usr -e -F /boot/System.map-$KREL $KREL 2>&1 > /dev/null)"
Do you prefer that?
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c13
--- Comment #13 from Michal Suchanek msuchanek@suse.com --- Created attachment 850594 --> http://bugzilla.opensuse.org/attachment.cgi?id=850594&action=edit additional fixup
I tried with this additional patch.
Simply
moderr="$(/usr/sbin/depmod -b ${RPM_BUILD_ROOT}${USR} -e -F /boot/System.map-$KREL $KREL 2>&1 > /dev/null)"
instead of creating the symlink should also work
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c15
--- Comment #15 from Ludwig Nussel lnussel@suse.com --- Looks like Bugzilla doesn't like emoji :-) Do you want me to update my patch or do you want to apply your fix on top?
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c16
--- Comment #16 from Michal Suchanek msuchanek@suse.com --- it's better if you update it
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c17
--- Comment #17 from Michal Suchanek msuchanek@suse.com --- I get an error on i586 TW now:
[ 95s] + /usr/lib/rpm/kernel/modflist kernel.flist modules modules.flist /lib/modules/5.13.0-rc7-3.g7895a48-default/modules.builtin [ 95s] Module usb-common built-in [ 95s] Module sd_mod built-in [ 95s] Module scsi_mod built-in [ 95s] Module virtio built-in [ 95s] Module xenblk missing [ 95s] Module xennet missing [ 95s] Module xen-.* missing [ 95s] Module autofs4 built-in [ 95s] Module ext4 built-in [ 95s] Module jbd2 built-in [ 95s] Module mbcache built-in [ 95s] Module asymmetric_keys built-in [ 95s] Module blake2b-256 missing [ 95s] Module sha256 missing [ 95s] Module xxhash64 missing [ 95s] Module crc32c missing [ 95s] + grep -v '^/usr/lib/modules' [ 95s] error: Bad exit status from /var/tmp/rpm-tmp.VDFIPe (%install)
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c18
--- Comment #18 from Ludwig Nussel lnussel@suse.com --- wasn't the only issue :-( working on update
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c19
Ludwig Nussel lnussel@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #848502|0 |1 is obsolete| | Attachment #850594|0 |1 is obsolete| |
--- Comment #19 from Ludwig Nussel lnussel@suse.com --- Created attachment 850632 --> http://bugzilla.opensuse.org/attachment.cgi?id=850632&action=edit patch with fixed kernel-default-base
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c20
--- Comment #20 from Michal Suchanek msuchanek@suse.com --- Thanks for the updated patch. With the new subpackaging script the module directory becomes disowned:
--- kernel-old/kernel-default-base.x86_64/list 2021-06-30 18:25:46.281263400 +0200 +++ kernel-new/kernel-default-base.x86_64/list 2021-06-30 18:29:59.880841095 +0200 @@ -13,7 +13,6 @@ /etc/uefi /etc/uefi/certs /etc/uefi/certs/3559CCE2.crt -/lib/modules/@UNAME_R@-default /lib/modules/@UNAME_R@-default/kernel /lib/modules/@UNAME_R@-default/kernel/arch /lib/modules/@UNAME_R@-default/kernel/arch/x86
I think this is frowned upon.
However, previously /lib/modules was not owned by the kernel either. Is there something else that owns the directory, should the kernel own it, or is this already handled in a better way?
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c21
--- Comment #21 from Michal Suchanek msuchanek@suse.com --- Nevermind, filesystem owns /lib/modules, and the kernel needs to own /lib/modules/$(uname -r)
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c22
Ludwig Nussel lnussel@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #850632|0 |1 is obsolete| |
--- Comment #22 from Ludwig Nussel lnussel@suse.com --- Created attachment 850705 --> http://bugzilla.opensuse.org/attachment.cgi?id=850705&action=edit kernel-default-base owning modules dir
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c44
--- Comment #44 from OBSbugzilla Bot bwiedemann+obsbugzillabot@suse.com --- This is an autogenerated message for OBS integration: This bug (1184804) was mentioned in https://build.opensuse.org/request/show/907471 15.2 / kernel-source
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c59
--- Comment #59 from OBSbugzilla Bot bwiedemann+obsbugzillabot@suse.com --- This is an autogenerated message for OBS integration: This bug (1184804) was mentioned in https://build.opensuse.org/request/show/909804 Factory / pesign-obs-integration
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c104
--- Comment #104 from OBSbugzilla Bot bwiedemann+obsbugzillabot@suse.com --- This is an autogenerated message for OBS integration: This bug (1184804) was mentioned in https://build.opensuse.org/request/show/913055 Factory / suse-module-tools
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804
Felix Miata mrmazda@earthlink.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mrmazda@earthlink.net
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804 http://bugzilla.opensuse.org/show_bug.cgi?id=1184804#c113
--- Comment #113 from OBSbugzilla Bot bwiedemann+obsbugzillabot@suse.com --- This is an autogenerated message for OBS integration: This bug (1184804) was mentioned in https://build.opensuse.org/request/show/923361 15.2 / kernel-source
http://bugzilla.opensuse.org/show_bug.cgi?id=1184804
Ludwig Nussel lnussel@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Depends on| |1199873