6.5.y: Suse TW fixups
- Import Suse depmod/kmod patches - https://github.com/SUSE/kernel-source/tree/master/patches.rpmify
- Tweak mkspec to respect Suse /usr usage
- Run grub2-mkconfig post-install
- Get rid of the undesired test tweak in 0013-fedora-rpm.patch added with e0c74e5e15
We may have some additional work to do as my limited testing with Arch's defconfig + _kernel_on_diet="true" didn't boot. It might actually work with the full defconfig or using Suse's using _configfile="running-kernel". I'll run more tests as needed on my main machine as it was a PITA working on this with a dualcore broadwell laptop 🐸
This commit is contained in:
@@ -282,6 +282,11 @@ if [ "$1" = "install" ]; then
|
||||
sudo zypper install --allow-unsigned-rpm $_kernel_rpm $_kernel_devel_rpm
|
||||
fi
|
||||
|
||||
if [ "$_distro" = "Suse" ]; then
|
||||
msg2 "Updating GRUB"
|
||||
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
|
||||
fi
|
||||
|
||||
msg2 "Install successful"
|
||||
fi
|
||||
|
||||
|
@@ -704,6 +704,11 @@ _tkg_srcprep() {
|
||||
tkgpatch="$srcdir/0013-fedora-rpm.patch"
|
||||
_msg="RPM: fixing spec generator" && _tkg_patcher
|
||||
|
||||
if [ "$_distro" = "Suse" ]; then
|
||||
tkgpatch="$srcdir/0013-suse-additions.patch"
|
||||
_msg="Import Suse-specific patches" && _tkg_patcher
|
||||
fi
|
||||
|
||||
if [ -z $_misc_adds ]; then
|
||||
plain "Enable misc additions ? They may contain temporary fixes pending upstream, or some other changes that can break on non-Arch distros."
|
||||
read -rp "`echo $' > [Y]/n : '`" _interactive_misc_adds;
|
||||
|
@@ -37,17 +37,3 @@ index 8049f0e2c..de170760d 100755
|
||||
+$S %define _build_id_links none
|
||||
+$S
|
||||
$S %prep
|
||||
|
||||
diff --git a/scripts/depmod.sh b/scripts/depmod.sh
|
||||
--- a/scripts/depmod.sh
|
||||
+++ b/scripts/depmod.sh
|
||||
@@ -27,7 +27,8 @@ fi
|
||||
# numbers, so we cheat with a symlink here
|
||||
depmod_hack_needed=true
|
||||
tmp_dir=$(mktemp -d ${TMPDIR:-/tmp}/depmod.XXXXXX)
|
||||
-mkdir -p "$tmp_dir/lib/modules/$KERNELRELEASE"
|
||||
+mkdir -p "$tmp_dir/usr/lib/modules/$KERNELRELEASE"
|
||||
+ln -s usr/lib "$tmp_dir/lib"
|
||||
if "$DEPMOD" -b "$tmp_dir" $KERNELRELEASE 2>/dev/null; then
|
||||
if test -e "$tmp_dir/lib/modules/$KERNELRELEASE/modules.dep" -o \
|
||||
-e "$tmp_dir/lib/modules/$KERNELRELEASE/modules.dep.bin"; then
|
||||
|
177
linux-tkg-patches/6.5/0013-suse-additions.patch
Normal file
177
linux-tkg-patches/6.5/0013-suse-additions.patch
Normal file
@@ -0,0 +1,177 @@
|
||||
From bb1a83cf109eee56c8dee26f7910c772f8c246fc Mon Sep 17 00:00:00 2001
|
||||
From: Michal Suchanek <msuchanek@suse.de>
|
||||
Date: Thu, 29 Jun 2023 17:47:16 +0200
|
||||
Subject: [PATCH] depmod: Handle installing modules under a prefix
|
||||
|
||||
References: bsc#1212835
|
||||
Patch-mainline: Never, upstream rejected
|
||||
|
||||
Some distributions aim at shipping all files in /usr.
|
||||
|
||||
The path under which kernel modules are installed is hardcoded to /lib
|
||||
which conflicts with this goal.
|
||||
|
||||
When kmod provides the config command, use it to determine the correct
|
||||
module installation path.
|
||||
|
||||
With kmod that does not provide the config command /lib/modules is used
|
||||
as before.
|
||||
|
||||
Note: users can use
|
||||
|
||||
make MODLIB='$(INSTALL_MOD_PATH)/usr/lib/modules/$(KERNELRELEASE)'
|
||||
|
||||
to install modules from mainline kernel on usrmerged system.
|
||||
Not great for KMPs, though
|
||||
|
||||
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
|
||||
Nacked-by: Masahiro Yamada <masahiroy@kernel.org>
|
||||
---
|
||||
v2: Avoid error on systems with kmod that does not support config
|
||||
command
|
||||
v3: More verbose commit message
|
||||
v4:
|
||||
- Document jq requirement
|
||||
- fix bashism
|
||||
- Update to getting full module path, not just additional prefix
|
||||
v5: switch to pkgconfig
|
||||
---
|
||||
Makefile | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 658ec2b8aa74..5a1889fc43c7 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1165,7 +1165,9 @@ export INSTALL_DTBS_PATH ?= $(INSTALL_PATH)/dtbs/$(KERNELRELEASE)
|
||||
# makefile but the argument can be passed to make if needed.
|
||||
#
|
||||
|
||||
-MODLIB = $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
|
||||
+export KERNEL_MODULE_DIRECTORY := $(shell pkg-config --print-variables kmod 2>/dev/null | grep '^module_directory$$' >/dev/null && pkg-config --variable=module_directory kmod || echo /lib/modules)
|
||||
+
|
||||
+MODLIB = $(INSTALL_MOD_PATH)$(KERNEL_MODULE_DIRECTORY)/$(KERNELRELEASE)
|
||||
export MODLIB
|
||||
|
||||
PHONY += prepare0
|
||||
--
|
||||
2.41.0
|
||||
|
||||
From 4d15c9fa058e6dee09324cfc93f48858d4296019 Mon Sep 17 00:00:00 2001
|
||||
From: Michal Suchanek <msuchanek@suse.de>
|
||||
Date: Tue, 18 Jul 2023 18:58:43 +0200
|
||||
Subject: [PATCH] Revert "kbuild: Hack for depmod not handling X.Y versions"
|
||||
|
||||
References: bsc#1212835
|
||||
Patch-mainline: v6.6-rc1
|
||||
Git-commit: 4d15c9fa058e6dee09324cfc93f48858d4296019
|
||||
|
||||
Remove hack for ancient version of module-init-tools that was added in
|
||||
Linux 3.0.
|
||||
|
||||
Since then module-init-tools was replaced with kmod.
|
||||
|
||||
This hack adds an additional indirection, and causes confusing errors
|
||||
to be printed when depmod fails.
|
||||
|
||||
Reverts commit 8fc62e594253 ("kbuild: Do not write to builddir in modules_install")
|
||||
Reverts commit bfe5424a8b31 ("kbuild: Hack for depmod not handling X.Y versions")
|
||||
|
||||
Link: https://lore.kernel.org/linux-modules/CAK7LNAQMs3QBYfWcLkmOQdbbq7cj=7wWbK=AWhdTC2rAsKHXzQ@mail.gmail.com/
|
||||
|
||||
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
|
||||
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
|
||||
---
|
||||
scripts/depmod.sh | 27 +--------------------------
|
||||
1 file changed, 1 insertion(+), 26 deletions(-)
|
||||
|
||||
diff --git a/scripts/depmod.sh b/scripts/depmod.sh
|
||||
index 3643b4f896ed..fca689ba4f21 100755
|
||||
--- a/scripts/depmod.sh
|
||||
+++ b/scripts/depmod.sh
|
||||
@@ -23,33 +23,8 @@ if [ -z $(command -v $DEPMOD) ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
-# older versions of depmod require the version string to start with three
|
||||
-# numbers, so we cheat with a symlink here
|
||||
-depmod_hack_needed=true
|
||||
-tmp_dir=$(mktemp -d ${TMPDIR:-/tmp}/depmod.XXXXXX)
|
||||
-mkdir -p "$tmp_dir/lib/modules/$KERNELRELEASE"
|
||||
-if "$DEPMOD" -b "$tmp_dir" $KERNELRELEASE 2>/dev/null; then
|
||||
- if test -e "$tmp_dir/lib/modules/$KERNELRELEASE/modules.dep" -o \
|
||||
- -e "$tmp_dir/lib/modules/$KERNELRELEASE/modules.dep.bin"; then
|
||||
- depmod_hack_needed=false
|
||||
- fi
|
||||
-fi
|
||||
-rm -rf "$tmp_dir"
|
||||
-if $depmod_hack_needed; then
|
||||
- symlink="$INSTALL_MOD_PATH/lib/modules/99.98.$KERNELRELEASE"
|
||||
- ln -s "$KERNELRELEASE" "$symlink"
|
||||
- KERNELRELEASE=99.98.$KERNELRELEASE
|
||||
-fi
|
||||
-
|
||||
set -- -ae -F System.map
|
||||
if test -n "$INSTALL_MOD_PATH"; then
|
||||
set -- "$@" -b "$INSTALL_MOD_PATH"
|
||||
fi
|
||||
-"$DEPMOD" "$@" "$KERNELRELEASE"
|
||||
-ret=$?
|
||||
-
|
||||
-if $depmod_hack_needed; then
|
||||
- rm -f "$symlink"
|
||||
-fi
|
||||
-
|
||||
-exit $ret
|
||||
+exec "$DEPMOD" "$@" "$KERNELRELEASE"
|
||||
--
|
||||
2.41.0
|
||||
|
||||
From 0ec8a11bd6287ada08e6c13023ce47be5cdc4270 Mon Sep 17 00:00:00 2001
|
||||
From: tkg <tkg@froggi.es>
|
||||
Date: Sat, 9 Sep 2023 00:48:37 +0200
|
||||
Subject: mkspec: Suse is using /usr/lib instead of the standard /lib symlink. Adapt.
|
||||
|
||||
|
||||
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
||||
index de170760d..2b5ee7b35 100755
|
||||
--- a/scripts/package/mkspec
|
||||
+++ b/scripts/package/mkspec
|
||||
@@ -121,11 +121,11 @@ $S
|
||||
$MAKE %{?_smp_mflags} INSTALL_HDR_PATH=%{buildroot}/usr headers_install
|
||||
cp System.map %{buildroot}/boot/System.map-$KERNELRELEASE
|
||||
cp .config %{buildroot}/boot/config-$KERNELRELEASE
|
||||
-$S$M rm -f %{buildroot}/lib/modules/$KERNELRELEASE/build
|
||||
-$S$M rm -f %{buildroot}/lib/modules/$KERNELRELEASE/source
|
||||
+$S$M rm -f %{buildroot}/usr/lib/modules/$KERNELRELEASE/build
|
||||
+$S$M rm -f %{buildroot}/usr/lib/modules/$KERNELRELEASE/source
|
||||
$S$M mkdir -p %{buildroot}/usr/src/kernels/$KERNELRELEASE
|
||||
$S$M tar cf - $EXCLUDES . | tar xf - -C %{buildroot}/usr/src/kernels/$KERNELRELEASE
|
||||
-$S$M cd %{buildroot}/lib/modules/$KERNELRELEASE
|
||||
+$S$M cd %{buildroot}/usr/lib/modules/$KERNELRELEASE
|
||||
$S$M ln -sf /usr/src/kernels/$KERNELRELEASE build
|
||||
$S$M ln -sf /usr/src/kernels/$KERNELRELEASE source
|
||||
|
||||
@@ -159,9 +159,9 @@ $S$M ln -sf /usr/src/kernels/$KERNELRELEASE source
|
||||
|
||||
%files
|
||||
%defattr (-, root, root)
|
||||
-$M /lib/modules/$KERNELRELEASE
|
||||
-$M %exclude /lib/modules/$KERNELRELEASE/build
|
||||
-$M %exclude /lib/modules/$KERNELRELEASE/source
|
||||
+$M /usr/lib/modules/$KERNELRELEASE
|
||||
+$M %exclude /usr/lib/modules/$KERNELRELEASE/build
|
||||
+$M %exclude /usr/lib/modules/$KERNELRELEASE/source
|
||||
/boot/*
|
||||
|
||||
%files headers
|
||||
@@ -171,6 +171,6 @@ $S$M
|
||||
$S$M %files devel
|
||||
$S$M %defattr (-, root, root)
|
||||
$S$M /usr/src/kernels/$KERNELRELEASE
|
||||
-$S$M /lib/modules/$KERNELRELEASE/build
|
||||
-$S$M /lib/modules/$KERNELRELEASE/source
|
||||
+$S$M /usr/lib/modules/$KERNELRELEASE/build
|
||||
+$S$M /usr/lib/modules/$KERNELRELEASE/source
|
||||
EOF
|
||||
|
Reference in New Issue
Block a user