This hack temporary adds executable permission for the *.ko files
during post-install stage so they are picked up by find-debuginfo.sh.
Since the intention is to avoid changing of behaviour in non-kmod
workloads, it's done by adding two additional brp-* scripts to the
__spec_install_post macro when kernel_module_package is instantiated.
* brp-kmod-restore-perms: New file.
* brp-kmod-set-exec-bit: Likewise.
* macros.kmp (%__brp_kmod_set_exec_bit, %__brp_kmod_restore_perms,
%__kmod_brps_added): New macros.
(%kernel_module_package): Rewrite __spec_install_post macro.
* redhat-rpm-config.spec (Source701, Source702): Add
brp-kmod-restore-perms and brp-kmod-set-exec-bit.
(Requires): Add find requirement for brp-kmod-set-exec-bit.
(%files): Explicitly list brp-* scripts for redhat-rpm-config and
kernel-rpm-macros packages.
Resolves: #2002887
Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
If no kernel-devel packages are installed (this is possible, for example,
during SRPM generation in an isolated environment), no output would be
generated for latest_kernel macro, which would lead to an error (since
an RPM macro can't have an empty definition). Append %nil to the input
of the "head" command to avoid this situation.
* macros.kmp (kernel_module_package): Feed additional line with %nil
to the input of head command in the latest_kernel macro definition.
Resolves: #1971748Resolves: #2002887
Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
Providing "kernel-modules" with "${verrel}${dotvariant}" looks strange,
as it differs from the package and version that are actualy used for
flavored kernels.
* kmodtool (get_rpmtemplate): Add "kernel${dashvariant}-modules >= ${verrel}"
Provides to the generated spec.
Resolves: #2002887
Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
A patch[1] to the kernel spec file changed the separator that is used
for kernel flavor designation from "." to "+", which broke kmodtool and
%kernel_module_package in multiple places. Try to accomodate it by
accepting both "+" and "." during parsing, and guessing which one should
be used for kernel osurce path generation.
PS. It looks like the analogous breakage was before, when it was changed
from "-" to ".". May be we should start support it back again as well.
[1] https://lists.fedoraproject.org/pipermail/kernel/2013-June/004262.html
* kmodtool (get_verrel, get_variant): Accept both "." and "+" as separators.
(get_variant_char, print_variant_char, print_kernel_source): New functions.
(get_filelist): Convert "+%1" in file list to $dotvariant, in addition
to ".%1" and "-%1".
(get_rpmtemplate): Determine a char that is used as a variant separator.
Use it in $dotvariant.
(usage): Mention "veriant_char" and "kernel_source" commands.
* macros.kmp (%kernel_module_package): Use "kernel_source" command in
"%kernel_source" definition when non-default variant is used; fall back
to ls-based heuristics when it is not available (for example, when a
version of kmodtool that doesn't support this command is used).
Resolves: #2002887
Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
* kmodtool: Put $@ instances into quotes as otherwise arguments
will undergo word splitting.
Resolves: #2002887
Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
The following packages are added:
- kernel-abi-stablelists is used by find-requires.ksym in order to
provide information regarding kABI symbol usage. It's purely
informational and optional, however.
- redhat-rpm-config and kernel-rpm-macros are added since the generted
spec files use macros from these packages.
- elfutils-libelf-devel is used during kmod build for ORC metadata
generation (used by kernel for stack unwinding).
- kmod programs are used by find-requires.ksyms and find-proivides.ksyms
for parsing *.ko files during dependency generation.
* kmodtool (get_rpm_template): Update the list of generated
BuildRequires.
* macros.kmp (%kernel_module_package_buildreqs): Update the list of
default BuildRequires.
Resolves: #2002887
Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
In RHEL 9, there's a s390x-specific "zfcpdump" kernel variant (which
replaces previous "kdump¨ variant). Add it to the list of the known
kernel variants.
* kmodtool (knownvariants): Add "zfcpdump".
Resolves: #2002887
Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
Apply contents of redhat-rpm-config-9.1.0-fix-depmod-path.patch from
RHEL 7 branch.
Commit message from the original commit:
commit 98a159714814bfa24cb912eb3eb4c50186006ca4
Author: Weiping Pan <wpan@redhat.com>
Date: Sun Sep 22 10:53:10 2013 +0800
fix depmod path
Since after kmod 5.1, depmod is in /usr/sbin/ instead of /sbin/,
we have to follow it.
kmod dis-git commit d398533b871d(version 5).
Resolves: #1002618
Signed-off-by: Weiping Pan <wpan@redhat.com>
Resolves: #2002887
Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
Apply redhat-rpm-config-9.1.0-kmod-kabi.patch from RHEL 7 branch.
Applied only changes to kmodtool and macros (now macros.kmp), as all
others are applied already. macros.kmp also had a merge conflict due to
commits f41a8a73aa6f ("Fix kernel_source macro to match the directory
that kernel sources are installed in") and d95e9bc7b618 ("Fix directory
name mismatch in kernel_source macro (#648996)") being applied already.
Commit message from the original commit:
commit 29b4b765391b8f11ae64708e86ac3f7475c62661
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Tue Jul 9 09:57:29 2013 +0300
- Re-add various kABI-related bits (Jon Masters)
- Allow kmod building against z-stream kernels (Jiri Benc)
Resolves: #1971748Resolves: #2002887Resolves: #2015909
Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
- Add support for compressed kernel modules to find-provides.ksyms,
find-requires.ksyms, firmware.prov (#1622019)
* find-provides.ksyms: Try to process files whose names end with
something else than "*.ko" by guessing a decompressor and uncompressing
it in a temporary file and parsing it instead.
* find-requires.ksyms (all_provides): Likewise.
Add "(\.gz|\.bz2|\.xz)?" to the end of the module path matching regular
expression.
* firmware.prov: Add "(\.gz|\.bz2|\.xz)?" to the end of the module path
matching regular expression.
Resolves: #1942537
Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
Generate colon-separated pairs of symbol_name:version and then run joins
over them instead over just symbol names.
Resolves: #2002887
Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
The only difference from RHEL 7 is that we're looking for symvers file
in /lib/modules now, per #1609695[1].
[1] https://bugzilla.redhat.com/show_bug.cgi?id=1609695
- Add dependency generator for kABI provides
Resolves: #1942563Resolves: #2008554
Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
This file is currently shipped via the binary redhat-rpm-config package
itself, so we need an explicit Conflicts to avoid broken upgrades, as
well as actually remove the file from the next redhat-rpm-config build,
which we'll also do.