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 aurel...@aurel32.net http://www.aurel32.net -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org