On 27. 06. 21 20:54, Florian Weimer wrote:
I've pushed a new glibc build to rawhide (glibc-2.33.9000-29.fc35) that
auto-generates versioned dependencies on glibc if symbols within the
under-development symbol version are used, where the ELF-derived RPM
dependencies are inaccurate. Given the change to the startup code, this
affects all programs in this release cycle, and the libdl and libpthread
changes mean that most shared objects trigger the versioned dependency
as well.
The dependencies are conservative in the sense that you might a
dependency on a more recent glibc version than that is actually
required by the symbols used.
For the technical background, here's what I put into a comment within
the dependency generator itself:
# A glibc development snapshot (say version 2.33.9000) may define
# symbols in its under-development symbol version (GLIBC_2.34). RPM
# automatically derives RPM dependencies such as
# libc.so.6(GLIBC_2.34)(64bit) from that. While the GLIBC_2.34
# version is under development, these dependencies may be inaccurate
# and could be satisfied by glibc RPM package versions that lack the
# symbols because they were created from an earlier development
# snapshot that had some other GLIBC_2.34 symbols. Therefore, if the
# latest, under-development ELF symbol version is detected, this
# dependency generator adds an explicit RPM dependencies on the glibc
# packaging version against which an RPM package is built.
I've tested this to the best of my abilities, and it seems to work as
expected, but given that this new territory for me, there could be some
issues (like the race condition in the dependency generator discussed in
that other thread).
I've noticed two potential issues, but both are unlikely to cause trouble.
The generator is installed in %{_fileattrsdir} and %{_rpmconfigdir},
directories owned by the rpm package. Technically, glibc-devel should now
either require rpm or co-own the directories. But since it is rpm we are
talking about, this is unlikely to cause any trouble as is.
The generator uses elfutils and grep. Both should be required by glibc-devel
(at least "if rpm-build"). Currently elfutils is required by rpm-build and grep
is in the default buidroot, so this will not break any time soon, but it might
break in the future.
--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure