diff --git a/linux-tkg-patches/6.1/0013-suse-additions.patch b/linux-tkg-patches/6.1/0013-suse-additions.patch new file mode 100644 index 0000000..a768336 --- /dev/null +++ b/linux-tkg-patches/6.1/0013-suse-additions.patch @@ -0,0 +1,400 @@ +From: Michal Suchanek +Date: Wed, 7 Feb 2018 15:16:04 +0100 +Subject: Add ksym-provides tool. + +References: bsc#1077692 +Patch-mainline: no, not needed + +Signed-off-by: Michal Suchanek +--- + scripts/mod/Makefile | 6 +- + scripts/mod/ksym-provides.c | 124 ++++++++++++++++++++++++++++++++++++ + 2 files changed, 129 insertions(+), 1 deletion(-) + create mode 100644 scripts/mod/ksym-provides.c + +--- a/scripts/mod/Makefile ++++ b/scripts/mod/Makefile +@@ -2,11 +2,15 @@ + OBJECT_FILES_NON_STANDARD := y + CFLAGS_REMOVE_empty.o += $(CC_FLAGS_LTO) + +-hostprogs-always-y += modpost mk_elfconfig ++hostprogs-always-y += modpost mk_elfconfig ksym-provides + always-y += empty.o + + modpost-objs := modpost.o file2alias.o sumversion.o + ++ksym-provides-objs := ksym-provides.o ++ ++HOSTLDLIBS_ksym-provides := -lelf ++ + devicetable-offsets-file := devicetable-offsets.h + + $(obj)/$(devicetable-offsets-file): $(obj)/devicetable-offsets.s FORCE +--- /dev/null ++++ b/scripts/mod/ksym-provides.c +@@ -0,0 +1,124 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++int main(int argc, char *argv[]) ++{ ++ int fd; ++ Elf *elf; ++ Elf_Scn *scn; ++ GElf_Shdr shdr; ++ size_t strndx; ++ int ndx; ++ Elf_Data *symdata, *data; ++ GElf_Sym sym; ++ char *name; ++ const char * flavor = argv[1]; ++ const char * prefix = "__crc_"; ++ size_t prefixlen = strlen(prefix); ++ const char * symformat = "ksym(%s:%s) = %lx\n"; ++ ++ if (argc != 3) { ++ fprintf(stderr, "Usage: %s \n", argv[0]); ++ return 1; ++ } ++ ++ if (elf_version(EV_CURRENT) == EV_NONE) { ++ fprintf(stderr, "libelf initialization failed: %s\n", ++ elf_errmsg(-1)); ++ return 1; ++ } ++ ++ fd = open(argv[2], O_RDONLY); ++ if (fd < 0) { ++ perror("open failed"); ++ return 1; ++ } ++ ++ elf = elf_begin(fd, ELF_C_READ, NULL); ++ if (!elf) { ++ fprintf(stderr, "elf_begin failed: %s\n", elf_errmsg(-1)); ++ goto err_close; ++ } ++ ++ scn = NULL; ++ while ((scn = elf_nextscn(elf, scn)) != NULL) { ++ if (!gelf_getshdr(scn, &shdr)) { ++ fprintf(stderr, "gelf_getshdr failed: %s\n", ++ elf_errmsg(-1)); ++ goto err_end; ++ } ++ ++ if (shdr.sh_type == SHT_SYMTAB) ++ break; ++ } ++ if (!scn) { ++ fputs("symbol table not found\n", stderr); ++ goto err_end; ++ } ++ strndx = shdr.sh_link; ++ ++ symdata = elf_getdata(scn, NULL); ++ if (!symdata) { ++ fprintf(stderr, "elf_getdata failed: %s\n", elf_errmsg(-1)); ++ goto err_end; ++ } ++ ++ for (ndx = 0; gelf_getsym(symdata, ndx, &sym) != NULL; ++ndx) { ++ ++ name = elf_strptr(elf, strndx, sym.st_name); ++ if (!name) { ++ fprintf(stderr, "elf_strptr failed: %s\n", ++ elf_errmsg(-1)); ++ goto err_end; ++ } ++ if (strncmp(prefix, name, prefixlen)) ++ continue; ++ ++ if (sym.st_shndx >= SHN_LORESERVE) { ++ printf(symformat, flavor, name + prefixlen, ++ sym.st_value); ++ continue; ++ } ++ ++ scn = elf_getscn(elf, sym.st_shndx); ++ if (!scn) { ++ fprintf(stderr, "elf_getscn failed: %s\n", ++ elf_errmsg(-1)); ++ goto err_end; ++ } ++ if (!gelf_getshdr(scn, &shdr)) { ++ fprintf(stderr, "gelf_getshdr failed: %s\n", ++ elf_errmsg(-1)); ++ goto err_end; ++ } ++ ++ if (shdr.sh_type != SHT_PROGBITS) ++ continue; ++ ++ data = elf_getdata_rawchunk( ++ elf, shdr.sh_offset + sym.st_value - shdr.sh_addr, ++ sizeof(GElf_Word), ELF_T_WORD); ++ if (!data) { ++ fprintf(stderr, "elf_getdata_rawchunk failed: %s\n", ++ elf_errmsg(-1)); ++ goto err_end; ++ } ++ printf(symformat, flavor, name + prefixlen, ++ (unsigned long) *(GElf_Word*)data->d_buf); ++ } ++ ++ elf_end(elf); ++ close(fd); ++ return 0; ++ ++ err_end: ++ elf_end(elf); ++ err_close: ++ close(fd); ++ return 1; ++} + +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 + +From 23133fe6745d567db5b93dc9e6aecc32d31354bd Mon Sep 17 00:00:00 2001 +From: Jeff Mahoney +Date: Tue, 31 Mar 2009 09:46:30 -0400 +Subject: [PATCH] - doc/README.KSYMS: Add to repo. + +--- + doc/README.KSYMS | 6 ++++++ + 1 file changed, 6 insertions(+) + create mode 100644 doc/README.KSYMS + +diff --git a/doc/README.KSYMS b/doc/README.KSYMS +new file mode 100644 +index 00000000000..39fe7878174 +--- /dev/null ++++ b/doc/README.KSYMS +@@ -0,0 +1,6 @@ ++This file is a place holder for the kernel-syms{,-rt} package. It is used ++to group build dependencies for all kernel flavors. ++ ++The KMP build process will build KMPs against all installed kernel flavors ++automatically. If you don't need to build against other flavors than the ++ones you've already installed - it is safe to uninstall this package. + +From 5cd5e149a95d37746a89850f4beddef4f0ad2224 Mon Sep 17 00:00:00 2001 +From: tkg +Date: Sat, 9 Sep 2023 14:06:44 +0200 +Subject: Suse: Add kernel-syms package + + +diff --git a/scripts/package/mkspec b/scripts/package/mkspec +index ff8c33ead..51c94131e 100755 +--- a/scripts/package/mkspec ++++ b/scripts/package/mkspec +@@ -88,6 +88,19 @@ $S$M %description -n kernel-devel + $S$M This package provides kernel headers and makefiles sufficient to build modules + $S$M against the $__KERNELRELEASE kernel package. + $S$M ++$S$M %package syms ++$S$M Summary: Kernel Symbol Versions (modversions) for the $__KERNELRELEASE kernel ++$S$M Group: Development/Sources ++$S$M AutoReqProv: no ++$S$M Provides: kernel-syms = %{version} ++$S$M Requires: kernel-devel = %{version} ++$S$M %description -n kernel-syms ++$S$M Kernel symbols, such as functions and variables, have version ++$S$M information attached to them. This package contains the symbol versions ++$S$M for the standard kernels. ++$S$M This package is needed for compiling kernel module packages with proper ++$S$M package dependencies. ++ + $S # Opt out of a lot of Fedora hardening flags etc... + $S # See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md + $S %undefine _package_note_file +@@ -173,4 +189,8 @@ $S$M %defattr (-, root, root) + $S$M /usr/src/kernels/$KERNELRELEASE + $S$M /usr/lib/modules/$KERNELRELEASE/build + $S$M /usr/lib/modules/$KERNELRELEASE/source ++$S$M ++$S$M %files syms ++$S$M %defattr (-, root, root) ++$S$M /usr/src/kernels/$KERNELRELEASE/doc + EOF diff --git a/linux-tkg-patches/6.4/0013-suse-additions.patch b/linux-tkg-patches/6.4/0013-suse-additions.patch new file mode 100644 index 0000000..2dc6e95 --- /dev/null +++ b/linux-tkg-patches/6.4/0013-suse-additions.patch @@ -0,0 +1,409 @@ +From: Michal Suchanek +Date: Wed, 7 Feb 2018 15:16:04 +0100 +Subject: Add ksym-provides tool. + +References: bsc#1077692 +Patch-mainline: no, not needed + +Signed-off-by: Michal Suchanek +--- + scripts/mod/Makefile | 6 +- + scripts/mod/ksym-provides.c | 124 ++++++++++++++++++++++++++++++++++++ + 2 files changed, 129 insertions(+), 1 deletion(-) + create mode 100644 scripts/mod/ksym-provides.c + +--- a/scripts/mod/Makefile ++++ b/scripts/mod/Makefile +@@ -2,11 +2,15 @@ + OBJECT_FILES_NON_STANDARD := y + CFLAGS_REMOVE_empty.o += $(CC_FLAGS_LTO) + +-hostprogs-always-y += modpost mk_elfconfig ++hostprogs-always-y += modpost mk_elfconfig ksym-provides + always-y += empty.o + + modpost-objs := modpost.o file2alias.o sumversion.o + ++ksym-provides-objs := ksym-provides.o ++ ++HOSTLDLIBS_ksym-provides := -lelf ++ + devicetable-offsets-file := devicetable-offsets.h + + $(obj)/$(devicetable-offsets-file): $(obj)/devicetable-offsets.s FORCE +--- /dev/null ++++ b/scripts/mod/ksym-provides.c +@@ -0,0 +1,124 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++int main(int argc, char *argv[]) ++{ ++ int fd; ++ Elf *elf; ++ Elf_Scn *scn; ++ GElf_Shdr shdr; ++ size_t strndx; ++ int ndx; ++ Elf_Data *symdata, *data; ++ GElf_Sym sym; ++ char *name; ++ const char * flavor = argv[1]; ++ const char * prefix = "__crc_"; ++ size_t prefixlen = strlen(prefix); ++ const char * symformat = "ksym(%s:%s) = %lx\n"; ++ ++ if (argc != 3) { ++ fprintf(stderr, "Usage: %s \n", argv[0]); ++ return 1; ++ } ++ ++ if (elf_version(EV_CURRENT) == EV_NONE) { ++ fprintf(stderr, "libelf initialization failed: %s\n", ++ elf_errmsg(-1)); ++ return 1; ++ } ++ ++ fd = open(argv[2], O_RDONLY); ++ if (fd < 0) { ++ perror("open failed"); ++ return 1; ++ } ++ ++ elf = elf_begin(fd, ELF_C_READ, NULL); ++ if (!elf) { ++ fprintf(stderr, "elf_begin failed: %s\n", elf_errmsg(-1)); ++ goto err_close; ++ } ++ ++ scn = NULL; ++ while ((scn = elf_nextscn(elf, scn)) != NULL) { ++ if (!gelf_getshdr(scn, &shdr)) { ++ fprintf(stderr, "gelf_getshdr failed: %s\n", ++ elf_errmsg(-1)); ++ goto err_end; ++ } ++ ++ if (shdr.sh_type == SHT_SYMTAB) ++ break; ++ } ++ if (!scn) { ++ fputs("symbol table not found\n", stderr); ++ goto err_end; ++ } ++ strndx = shdr.sh_link; ++ ++ symdata = elf_getdata(scn, NULL); ++ if (!symdata) { ++ fprintf(stderr, "elf_getdata failed: %s\n", elf_errmsg(-1)); ++ goto err_end; ++ } ++ ++ for (ndx = 0; gelf_getsym(symdata, ndx, &sym) != NULL; ++ndx) { ++ ++ name = elf_strptr(elf, strndx, sym.st_name); ++ if (!name) { ++ fprintf(stderr, "elf_strptr failed: %s\n", ++ elf_errmsg(-1)); ++ goto err_end; ++ } ++ if (strncmp(prefix, name, prefixlen)) ++ continue; ++ ++ if (sym.st_shndx >= SHN_LORESERVE) { ++ printf(symformat, flavor, name + prefixlen, ++ sym.st_value); ++ continue; ++ } ++ ++ scn = elf_getscn(elf, sym.st_shndx); ++ if (!scn) { ++ fprintf(stderr, "elf_getscn failed: %s\n", ++ elf_errmsg(-1)); ++ goto err_end; ++ } ++ if (!gelf_getshdr(scn, &shdr)) { ++ fprintf(stderr, "gelf_getshdr failed: %s\n", ++ elf_errmsg(-1)); ++ goto err_end; ++ } ++ ++ if (shdr.sh_type != SHT_PROGBITS) ++ continue; ++ ++ data = elf_getdata_rawchunk( ++ elf, shdr.sh_offset + sym.st_value - shdr.sh_addr, ++ sizeof(GElf_Word), ELF_T_WORD); ++ if (!data) { ++ fprintf(stderr, "elf_getdata_rawchunk failed: %s\n", ++ elf_errmsg(-1)); ++ goto err_end; ++ } ++ printf(symformat, flavor, name + prefixlen, ++ (unsigned long) *(GElf_Word*)data->d_buf); ++ } ++ ++ elf_end(elf); ++ close(fd); ++ return 0; ++ ++ err_end: ++ elf_end(elf); ++ err_close: ++ close(fd); ++ return 1; ++} + +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 + +From 23133fe6745d567db5b93dc9e6aecc32d31354bd Mon Sep 17 00:00:00 2001 +From: Jeff Mahoney +Date: Tue, 31 Mar 2009 09:46:30 -0400 +Subject: [PATCH] - doc/README.KSYMS: Add to repo. + +--- + doc/README.KSYMS | 6 ++++++ + 1 file changed, 6 insertions(+) + create mode 100644 doc/README.KSYMS + +diff --git a/doc/README.KSYMS b/doc/README.KSYMS +new file mode 100644 +index 00000000000..39fe7878174 +--- /dev/null ++++ b/doc/README.KSYMS +@@ -0,0 +1,6 @@ ++This file is a place holder for the kernel-syms{,-rt} package. It is used ++to group build dependencies for all kernel flavors. ++ ++The KMP build process will build KMPs against all installed kernel flavors ++automatically. If you don't need to build against other flavors than the ++ones you've already installed - it is safe to uninstall this package. + +From 5cd5e149a95d37746a89850f4beddef4f0ad2224 Mon Sep 17 00:00:00 2001 +From: tkg +Date: Sat, 9 Sep 2023 14:06:44 +0200 +Subject: Suse: Add kernel-syms package + + +diff --git a/scripts/package/mkspec b/scripts/package/mkspec +index ff8c33ead..51c94131e 100755 +--- a/scripts/package/mkspec ++++ b/scripts/package/mkspec +@@ -52,7 +52,7 @@ $S Source1: config + $S Source2: diff.patch + Provides: kernel-$KERNELRELEASE + Provides: kernel-uname-r = %{version} +-$S BuildRequires: bc binutils bison dwarves ++$S BuildRequires: bc binutils bison dwarves coreutils + $S BuildRequires: (elfutils-libelf-devel or libelf-devel) flex + $S BuildRequires: gcc make openssl openssl-devel perl python3 rsync + +@@ -88,6 +88,19 @@ $S$M %description -n kernel-devel + $S$M This package provides kernel headers and makefiles sufficient to build modules + $S$M against the $__KERNELRELEASE kernel package. + $S$M ++$S$M %package syms ++$S$M Summary: Kernel Symbol Versions (modversions) for the $__KERNELRELEASE kernel ++$S$M Group: Development/Sources ++$S$M AutoReqProv: no ++$S$M Provides: kernel-syms = %{version} ++$S$M Requires: kernel-devel = %{version} ++$S$M %description -n kernel-syms ++$S$M Kernel symbols, such as functions and variables, have version ++$S$M information attached to them. This package contains the symbol versions ++$S$M for the standard kernels. ++$S$M This package is needed for compiling kernel module packages with proper ++$S$M package dependencies. ++ + $S # Opt out of a lot of Fedora hardening flags etc... + $S # See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md + $S %undefine _package_note_file +@@ -173,4 +189,8 @@ $S$M %defattr (-, root, root) + $S$M /usr/src/kernels/$KERNELRELEASE + $S$M /usr/lib/modules/$KERNELRELEASE/build + $S$M /usr/lib/modules/$KERNELRELEASE/source ++$S$M ++$S$M %files syms ++$S$M %defattr (-, root, root) ++$S$M /usr/src/kernels/$KERNELRELEASE/doc + EOF