Broken (glibc) dependencies in f19 update-repository metadata

Jakub Jelinek jakub at redhat.com
Sat Jul 6 15:12:46 UTC 2013


On Sat, Jul 06, 2013 at 01:31:48PM +0300, Panu Matilainen wrote:
> 
> Something is broken wrt f19 updates and updates-testing repo
> metadata, note the required glibc version between the rpm version in
> main repo vs updates-testing:
> 
> [root at mursu ~]# repoquery --releasever=19
> --enablerepo=updates-testing --requires
> rpm-build-4.11.0.1-2.fc19.x86_64|grep ^libc.so
> libc.so.6(GLIBC_2.17)(64bit)
> [root at mursu ~]# repoquery --releasever=19
> --enablerepo=updates-testing --requires
> rpm-build-4.11.1-1.fc19.x86_64|grep ^libc.so
> libc.so.6(GLIBC_2.8)(64bit)
> [root at mursu ~]#

What does look broken on that?  The thing is (almost?) every newer glibc
version adds some symbol versioned symbols, but in most releases
they are just completely new entrypoints that at least for some time
are used by quite a few packages.  In a few releases a very commonly used
symbol is either added, or more commonly changed and symbol versioned.
That is e.g. regexec@@GLIBC_2.3.4 (with older regexec at GLIBC_2.{0,2.5,etc.}
around; this has been changed when new eflags flag has been added to it,
so that code compiled against newer glibc can rely on the flag being
handled) or memcpy@@GLIBC_2.14 (that has been added on x86_64 because
there were just too many broken programs that haven't heard about the
difference between memcpy and memmove and it was decided to add a
compatibility hack for those buggy programs by aliasing memcpy at GLIBC_2.2.5
to memmove and only doing more aggressive copying that assumes
no overlap at all for newly linked programs) or I guess for
glibc 2.17 it is probably clock_gettime@@GLIBC_2.17 and friends (that
previously has been available only from libpthread, and now is also
exported from libc.so.6*).

As glibc maintainance in Fedora has been changed in the last few years,
where rawhide only gets new glibc release when it is released (previously
rawhide always had development snapshots of glibc and glibc releases
were tied up with Fedora releases, so glibcs were (usually) released shortly
before freezes), that pretty much means only very few packages in the
distro get new glibc symbols upon GA and more can have them during updates.

	Jakub


More information about the devel mailing list