diff options
author | Karol Lewandowski <k.lewandowsk@samsung.com> | 2024-03-13 16:44:39 +0100 |
---|---|---|
committer | Karol Lewandowski <k.lewandowsk@samsung.com> | 2024-03-14 14:06:32 +0100 |
commit | f27241ce6c9fb6f7b8b6f3426dc366dc1c051b1d (patch) | |
tree | 990356500dd834fd82fc1b683907564e655573d8 | |
parent | be0ba8d1741898ea3388c9f9008edbcbc620fe66 (diff) | |
download | rpm-f27241ce6c9fb6f7b8b6f3426dc366dc1c051b1d.tar.gz rpm-f27241ce6c9fb6f7b8b6f3426dc366dc1c051b1d.tar.bz2 rpm-f27241ce6c9fb6f7b8b6f3426dc366dc1c051b1d.zip |
tizen: Do not generate nor use ksyms Requires/Provides for kernel & modules package(s)accepted/tizen/base/20240502.113325
RPM currently do not properly generate ksyms Provides for kernel image in EFI COFF/uImage
formats. However, the Requires ksyms generation simply extracts symbols from ELF .ko,
resulting in uninstallable modules package (as it has Requires to ksyms that is not
provided by kernel image, see example at the end).
The problem appears not for regular modules package but for modules package that
are handled via baselibs.conf. Preciesely, it looks like RPM uses host-native
macro scripts in /usr/lib/rpms/fileattrs/* for regular packages, while packages
converted according to baselibs.conf use macros from GBS-ROOT chroot.
Regular packages:
$ rpm -qp --requires linux-tizen-modules-rpi4-7.5.0-0.aarch64.rpm
/bin/sh
arm64-rpi4-linux-kernel-modules
bash
coreutils
findutils
kmod-compat
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
$ rpm -qp --provides arm64-rpi4-linux-kernel-5.15.92-0.aarch64.rpm
arm64-rpi4-kernel-uname-r = 5.15.92-arm64-rpi4
arm64-rpi4-linux-kernel = 5.15.92-0
arm64-rpi4-linux-kernel(aarch-64) = 5.15.92-0
kernel-uname-r = 5.15.92-arm64-rpi4-v8
linux-kernel = 5.15.92-0
Packaged generated using baselibs.conf:
$ rpm -qp --provides arm64-rpi4-linux-kernel-aarch64-5.15.92-0.armv7l.rpm
arm64-rpi4-linux-kernel-aarch64 = 5.15.92-0
arm64-rpi4-linux-kernel-aarch64(x86-64) = 5.15.92-0
$ rpm -qpl --requires linux-tizen-modules-rpi4-aarch64-7.5.0-0.armv7l.rpm
/bin/sh
bash
coreutils
findutils
kmod-compat
ksym(v8:__arch_copy_from_user) = 12a4e128
ksym(v8:__arch_copy_to_user) = 6cbbfc54
ksym(v8:__bitmap_or) = a084749a
ksym(v8:__get_free_pages) = 6a5cb5ee
ksym(v8:__get_task_comm) = 451222
ksym(v8:__init_rwsem) = c22d4503
ksym(v8:__init_waitqueue_head) = 3bf4d690
ksym(v8:__kmalloc) = eb233a45
...
The ksyms() are generated by find-requires.ksyms, causing linux-tizen-modules-rpi4-aarch
package to be uninstallable.
This commit drops find-requires.ksyms and find-provides.ksyms making baselibs and
regular packages to have same set of dependencies generated automatically.
Change-Id: Ib4c16064a11f8693d5558baec49ed85e8c2d776b
-rw-r--r-- | packaging/rpm.spec | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/packaging/rpm.spec b/packaging/rpm.spec index a24c15196..30aa72455 100644 --- a/packaging/rpm.spec +++ b/packaging/rpm.spec @@ -216,7 +216,6 @@ rm -rf %{buildroot}%{_mandir}/{fr,ja,ko,pl,ru,sk} rm -f %{buildroot}%{_datadir}/locale/de/LC_MESSAGES/rpm.mo rm -f %{buildroot}%{rpmhome}/cpanflute %{buildroot}%{rpmhome}/cpanflute2 install -m 755 scripts/find-supplements %{buildroot}%{rpmhome} -install -m 755 scripts/find-supplements.ksyms %{buildroot}%{rpmhome} install -m 755 scripts/firmware.prov %{buildroot}%{rpmhome} install -m 755 scripts/debuginfo.prov %{buildroot}%{rpmhome} install -m 644 %{SOURCE24} %{buildroot}%{rpmhome} @@ -228,7 +227,8 @@ mkdir -p %{buildroot}%{rpmhome}/macros.d for f in rpm2cpio.sh rpm.daily rpmdiff* rpm.log rpm.xinetd freshen.sh u_pkg.sh \ magic magic.mgc magic.mime* rpmfile *.pl javadeps brp-redhat \ vpkg-provides*.sh http.req sql.req tcl.req \ - rpmdb_* brp-sparc64-linux brp-java-gcjcompile + rpmdb_* brp-sparc64-linux brp-java-gcjcompile \ + fileattrs/kmp.attr fileattrs/kernel.attr find-requires.ksyms find-provides.ksyms do rm -f %{buildroot}%{rpmhome}/$f done |