diff --git a/install.sh b/install.sh index 5d150f9..4e7a52a 100755 --- a/install.sh +++ b/install.sh @@ -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 diff --git a/linux-tkg-config/prepare b/linux-tkg-config/prepare index 4721f16..6ce69e1 100644 --- a/linux-tkg-config/prepare +++ b/linux-tkg-config/prepare @@ -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; diff --git a/linux-tkg-patches/6.5/0013-fedora-rpm.patch b/linux-tkg-patches/6.5/0013-fedora-rpm.patch index 671dd03..fe38371 100644 --- a/linux-tkg-patches/6.5/0013-fedora-rpm.patch +++ b/linux-tkg-patches/6.5/0013-fedora-rpm.patch @@ -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 diff --git a/linux-tkg-patches/6.5/0013-suse-additions.patch b/linux-tkg-patches/6.5/0013-suse-additions.patch new file mode 100644 index 0000000..cd2b6b5 --- /dev/null +++ b/linux-tkg-patches/6.5/0013-suse-additions.patch @@ -0,0 +1,177 @@ +From bb1a83cf109eee56c8dee26f7910c772f8c246fc Mon Sep 17 00:00:00 2001 +From: Michal Suchanek +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 +Nacked-by: Masahiro Yamada +--- +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 +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 +Signed-off-by: Masahiro Yamada +--- + 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 +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 +