Bug#779294: /usr/bin/python: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.15' not found (required by /usr/bin/python)
reassign 779294 python2.7
thanks
On 2015-02-26 18:33, Matthias Klose wrote:
> On 02/26/2015 06:01 PM, Andreas Beckmann wrote:
> > during a test with piuparts I noticed a failure to upgrade from 'wheezy'.
> >
> > I'm not exactly sure which package to blame.
> > This happened on i386, I cannot reproduce it on amd64.
> > The package being tested was lsb-desktop, but it can probably show up
> > elsewhere as well.
> >
> >>From the attached log (scroll to the bottom...):
> >
> > (Reading database ... 18847 files and directories currently installed.)
> > Preparing to replace libpython2.7 2.7.3-6+deb7u2 (using .../libpython2.7_2.7.8-11_i386.deb) ...
> > Unpacking replacement libpython2.7:i386 ...
> > Preparing to replace python2.7 2.7.3-6+deb7u2 (using .../python2.7_2.7.8-11_i386.deb) ...
> > Unpacking replacement python2.7 ...
> > Preparing to replace python2.7-minimal 2.7.3-6+deb7u2 (using .../python2.7-minimal_2.7.8-11_i386.deb) ...
> > Unpacking replacement python2.7-minimal ...
> > dpkg: warning: unable to delete old directory '/etc/python2.7': Directory not empty
> > Selecting previously unselected package libpython2.7-minimal:i386.
> > Unpacking libpython2.7-minimal:i386 (from .../libpython2.7-minimal_2.7.8-11_i386.deb) ...
> > Preparing to replace debconf 1.5.49 (using .../debconf_1.5.55_all.deb) ...
> > /usr/bin/python: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.15' not found (required by /usr/bin/python)
> > dpkg: warning: subprocess old pre-removal script returned error exit status 1
> > dpkg: trying script from the new package instead ...
> > /usr/bin/python: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.15' not found (required by /usr/bin/python)
> > dpkg: error processing /var/cache/apt/archives/debconf_1.5.55_all.deb (--unpack):
> > subprocess new pre-removal script returned error exit status 1
> > /usr/bin/python: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.15' not found (required by /usr/bin/python)
> > dpkg: error while cleaning up:
> > subprocess installed post-installation script returned error exit status 1
> > Processing triggers for man-db ...
> > Errors were encountered while processing:
> > /var/cache/apt/archives/debconf_1.5.55_all.deb
> >
> > This looks a bit like python was unpacked before the new glibc.
>
> debconf calls pycompile (and python). It looks like this kind of thing can
> happen with any binary which needs the new glibc, and in this case it hits python.
The real problem is that python2.7-minimal uses symbols from glibc 2.15,
while it doesn't declare a dependency on them. This is due to a bug in
the Depends/Pre-Depends mangling in debian/rules.
dh_shlibdeps create the following debian/python2.7-minimal.substvars:
| misc:Depends=
| shlibs:Depends=libc6 (>= 2.15), libc6 (>= 2.3.6-6~), zlib1g (>= 1:1.2.0)
Note that libc6 is listed twice. This is not a problem given that
dpkg-gencontrol later merge them. However the order is sometimes
changing, so one might get the following file instead:
| misc:Depends=
| shlibs:Depends=libc6 (>= 2.3.6-6~), libc6 (>= 2.15), zlib1g (>= 1:1.2.0)
This file is later mangled by the following code from debian/rules:
| dep=`sed -n '/^shlibs:Depends/s/.*\(libc6[^,]*\).*/\1/p' debian/python2.7-minimal.substvars`; \
| echo "shlibs:Pre-Depends=$dep" >> debian/python2.7-minimal.substvars
| sed -i '/^shlibs:Depends/s/libc6[^,]*[, ]*//' debian/python2.7-minimal.substvars
Depending on the above order, dep might equal "libc6 (>= 2.15)" or
"libc6 (>= 2.3.6-6~)". In the latter case, the dependency is incorrect,
leading to the reported bug.
--
Aurelien Jarno GPG: 4096R/1DDD8C9B
aurelien@aurel32.net http://www.aurel32.net
Reply to: