What steps are required to get RPM dependency generators to run in Koji?
I have added a dependency generator to the glibc-devel package:
<
https://src.fedoraproject.org/rpms/glibc/c/700394c8ed3c3db06fe2c3b4667a33...
A scratch build of lua shows that this glibc version is used in the
build:
| DEBUG util.py:446: glibc-devel x86_64 2.33.9000-26.fc35
build 140 k
<
https://kojipkgs.fedoraproject.org//work/tasks/6430/70906430/root.log>
But the dependency is not picked up:
| Provides: lua = 5.4.3-1.fc35 lua(x86-64) = 5.4.3-1.fc35
| Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <=
4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
| Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.11)(64bit) libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.34)(64bit) libc.so.6(GLIBC_2.4)(64bit) liblua-5.4.so()(64bit)
libm.so.6()(64bit) libm.so.6(GLIBC_2.2.5)(64bit) libm.so.6(GLIBC_2.29)(64bit)
libreadline.so.8()(64bit) rtld(GNU_HASH)
<
https://kojipkgs.fedoraproject.org//work/tasks/6430/70906430/build.log>
A mock build against a buildroot which contains the -26 glibc build,
<
https://kojipkgs.fedoraproject.org//repos/f35-build-side-43089/3774468/x8...;,
shows this output instead:
| Provides: lua = 5.4.3-1.fc35 lua(x86-64) = 5.4.3-1.fc35
| Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <=
4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
| Requires: glibc >= 2.33.9000-26.fc35 libc.so.6()(64bit) libc.so.6(GLIBC_2.11)(64bit)
libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.34)(64bit) libc.so.6(GLIBC_2.4)(64bit)
liblua-5.4.so()(64bit) libm.so.6()(64bit) libm.so.6(GLIBC_2.2.5)(64bit)
libm.so.6(GLIBC_2.29)(64bit) libreadline.so.8()(64bit) rtld(GNU_HASH)
| Processing files: lua-devel-5.4.3-1.fc35.x86_64
| Provides: lua-devel = 5.4.3-1.fc35 lua-devel(x86-64) = 5.4.3-1.fc35 pkgconfig(lua) =
5.4.0
| Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <=
4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
| Requires: /usr/bin/pkg-config
And the built RPM does indeed carry the generated dependency.
Even more curious, I have a scratch build for xz here where the
dependency is generated on x86_64:
<
https://koji.fedoraproject.org/koji/taskinfo?taskID=70906436>
$ rpm -qp --requires
https://kojipkgs.fedoraproject.org//work/tasks/6436/70906436/xz-5.2.5-6.f... |
grep glibc
glibc >= 2.33.9000-26.fc35
And the dependency was also generated on armhfp during the original lua
scratch build:
$ rpm -qp --requires
https://kojipkgs.fedoraproject.org//work/tasks/6428/70906428/lua-5.4.3-1....
| grep glibc
glibc >= 2.33.9000-26.fc35
As far as I know, my dependency generator is determinstic, so this
really should not happen. (Note that not all builds are expected to
carry this dependency, but everything that contains an ELF main program
should.)
Any idea why this isn't working reliably in Koji?
Thanks,
Florian