On 2018-01-18 20:38, Julian Andres Klode wrote: > On Thu, Jan 18, 2018 at 06:41:52PM +0100, Aurelien Jarno wrote: > > control: reassign -1 apt,dpkg > > control: affects -1 libc6 > > control: affects -1 libexpat1 > > > > On 2018-01-18 15:53, Andreas Beckmann wrote: > > > Package: libc6 > > > Version: 2.26-2 > > > Severity: serious > > > User: debian...@lists.debian.org > > > Usertags: piuparts > > > > > > Hi, > > > > > > during a test with piuparts I noticed your package fails to upgrade from > > > 'stretch'. > > > It installed fine in 'stretch', then the upgrade to 'buster' fails. > > > > > > >From the attached log (scroll to the bottom...): > > > > > > [...] > > > Preparing to unpack .../libexpat1-dev_2.2.5-3_i386.deb ... > > > Unpacking libexpat1-dev:i386 (2.2.5-3) over (2.2.0-2+deb9u1) ... > > > Preparing to unpack .../libexpat1_2.2.5-3_i386.deb ... > > > Unpacking libexpat1:i386 (2.2.5-3) over (2.2.0-2+deb9u1) ... > > > > $ apt-cache show libexpat1 > > Package: libexpat1 > > Source: expat > > Version: 2.2.5-3 > > Installed-Size: 429 > > Maintainer: Laszlo Boszormenyi (GCS) <g...@debian.org> > > Architecture: i386 > > Depends: libc6 (>= 2.25) > > > > So libexpat1 correctly depends on libc6 (>= 2.25), which is not > > even unpacked at that point. > > > > > [...] > > > Preparing to unpack .../3-libglib2.0-dev_2.54.3-1_i386.deb ... > > > /usr/bin/python3: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.25' > > > not found (required by /lib/i386-linux-gnu/libexpat.so.1) > > > dpkg: warning: subprocess old pre-removal script returned error exit > > > status 1 > > > dpkg: trying script from the new package instead ... > > > dpkg: error processing archive > > > /tmp/apt-dpkg-install-wfemKS/3-libglib2.0-dev_2.54.3-1_i386.deb > > > (--unpack): > > > there is no script in the new version of the package - giving up > > > /usr/bin/python3: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.25' > > > not found (required by /lib/i386-linux-gnu/libexpat.so.1) > > > > This failure is normal given libexpat1 requires the new libc which has > > not been unpacked yet. > > Yeah, well, it needs to Pre-Depend on it then I guess, if it's being used > in preinst actions. The thing is that Depends only after postinst ordering, > not unpack ordering.
Well it's not the preinst script, but the prerm script. The problem is unpacking libexpat1 before libc6 breaks libexpat1 and not usable anymore. From what I understand from the debian-policy, a prerm script might consider that all the dependencies have been at least unpacked when called: | "The package whose prerm is being called will be at least | “Half-Installed”. All package dependencies will at least be | “Half-Installed” and will have previously been configured and not | removed. If there was no error, all dependencies will at least be | “Unpacked”, but these actions may be called in various error | states where dependencies are only “Half-Installed” due to a | partial upgrade. -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurel...@aurel32.net http://www.aurel32.net