Bug#970555: ncurses: Upgrade fails: version `NCURSES6_TINFO_6.2.current' not found (required by /lib/x86_64-linux-gnu/libncurses.so.6)
On 2020-09-18 21:01 +0100, Jessica Clarke wrote: > On 18 Sep 2020, at 20:51, Sven Joachim wrote: >> >> It seems that cowdancer should not link with ncurses in the first place, >> as it only uses the tinfo library. In fact, rebuilding cowbuilder with >> a current toolchain that defaults to the "--as-needed" linker flag >> causes cowbuilder and cowdancer to depend on libtinfo6 only. > > Hm, that only defers the problem until libtinfo6 is similarly broken > mid-upgrade, no? It is certainly possible that one day libtinfo6 needs a new symbol from libc6 and is unpacked before the new libc6 package that provides it, albeit far less likely than the current situation. > It seems to me like dpkg has done a very dodgy > sequence of events that have resulted in the system being broken for a > short period and, whilst most don't notice, cowdancer does. Why is this > not a dpkg (or apt) bug? It should be possible to do that sequence in a > way that preserves the system as working, no? Well, dpkg ensures atomic upgrades, but only on the package level. Unpacking all packages to be installed simultaneously is currently not supported (and might not be feasible due to Conflicts+Replaces). > But yes, there is the separate _minor_ issue that cowdancer is linking > against more than it needs to. That would normally a minor issue, but putting it into LD_PRELOAD makes it a major one, as seen in this bug report. > I don't know why I made it pull in all > of ncurses, maybe an earlier version of the patch needed it and it no > longer does, but it's been too long to have any hope of remembering > what past me was thinking. Pretty much every terminal supports colors these days, so maybe it would be best to use them by default if stdout is a tty. AFAIK this is what everybody else does. Cheers, Sven
Bug#970555: ncurses: Upgrade fails: version `NCURSES6_TINFO_6.2.current' not found (required by /lib/x86_64-linux-gnu/libncurses.so.6)
On 2020-09-18 21:51 +0200, Sven Joachim wrote: > It seems that cowdancer should not link with ncurses in the first place, > as it only uses the tinfo library. In fact, rebuilding cowbuilder with > a current toolchain that defaults to the "--as-needed" linker flag > causes cowbuilder and cowdancer to depend on libtinfo6 only. Since cowdancer does not actually use any curses functions and makes do with the terminfo library, it seems logical to link with it. I have created a merge request on Salsa: https://salsa.debian.org/pbuilder-team/cowdancer/-/merge_requests/4 Cheers, Sven
Bug#970555: ncurses: Upgrade fails: version `NCURSES6_TINFO_6.2.current' not found (required by /lib/x86_64-linux-gnu/libncurses.so.6)
On 18 Sep 2020, at 20:51, Sven Joachim wrote: > > Control: reassign -1 cowdancer 0.88 > Control: retitle -1 cowdancer: needlessly links with ncurses > Control: severity -1 important > > On 2020-09-18 18:22 +0200, Sebastiaan Couwenberg wrote: > >> Control: tags -1 - moreinfo >> >> On 9/18/20 6:13 PM, Sven Joachim wrote: >>> On 2020-09-18 16:55 +0200, Bas Couwenberg wrote: Upgrading sid & experimental pbuilder chroots fails due to the new ncurses: Preparing to unpack .../libncursesw6_6.2+20200912-1_amd64.deb ... Unpacking libncursesw6:amd64 (6.2+20200912-1) over (6.2-1) ... Preparing to unpack .../libncurses6_6.2+20200912-1_amd64.deb ... Unpacking libncurses6:amd64 (6.2+20200912-1) over (6.2-1) ... rm: /lib/x86_64-linux-gnu/libtinfo.so.6: version `NCURSES6_TINFO_6.2.current' not found (required by /lib/x86_64-linux-gnu/libncurses.so.6) dpkg: error while cleaning up: rm command for cleanup subprocess returned error exit status 1 dpkg-split: /lib/x86_64-linux-gnu/libtinfo.so.6: version `NCURSES6_TINFO_6.2.current' not found (required by /lib/x86_64-linux-gnu/libncurses.so.6) rm: /lib/x86_64-linux-gnu/libtinfo.so.6: version `NCURSES6_TINFO_6.2.current' not found (required by /lib/x86_64-linux-gnu/libncurses.so.6) dpkg: error processing archive /var/cache/apt/archives/libtinfo6_6.2+20200912-1_amd64.deb (--unpack): rm command for cleanup subprocess returned error exit status 1 Errors were encountered while processing: /var/cache/apt/archives/libtinfo6_6.2+20200912-1_amd64.deb E: Sub-process /usr/bin/dpkg returned an error code (1) >>> >>> I cannot reproduce this, but my pbuilder chroots do not have libncurses6 >>> installed at all. >> >> What about cowbuilder chroots? > > Thanks for the hint, I do not use cowbuilder but had a look at the > manpage where I found this option: > > , > | --no-cowdancer-update > | Do not use cowdancer on cowbuilder update. Please use this > | option when cowdancer is interfering with upgrade process, > | or cowdancer itself is being upgraded within chroot. > ` > > Apparently this is what you need to use, for cowdancer seems to bring > libncurses.so.6 into the address space of every binary on the system, > which is "interfering with upgrade process". > >>> What is this rm binary in your chroot, apparently it >>> is linked to libncurses.so.6? >> >> # which rm >> /bin/rm >> # dpkg -S /bin/rm >> coreutils: /bin/rm >> # ldd /bin/rm >> linux-vdso.so.1 (0x7ffea75fb000) >> /usr/lib/cowdancer/libcowdancer.so (0x7f2e6a6db000) >> libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x7f2e6a512000) >> libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x7f2e6a50c000) >> libncurses.so.6 => /lib/x86_64-linux-gnu/libncurses.so.6 >> (0x7f2e6a4e3000) >> libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 >> (0x7f2e6a4b4000) >> /lib64/ld-linux-x86-64.so.2 (0x7f2e6a6f9000) >> # aptitude why libncurses6 >> i cowdancer Depends libncurses6 (>= 6) > > It seems that cowdancer should not link with ncurses in the first place, > as it only uses the tinfo library. In fact, rebuilding cowbuilder with > a current toolchain that defaults to the "--as-needed" linker flag > causes cowbuilder and cowdancer to depend on libtinfo6 only. Hm, that only defers the problem until libtinfo6 is similarly broken mid-upgrade, no? It seems to me like dpkg has done a very dodgy sequence of events that have resulted in the system being broken for a short period and, whilst most don't notice, cowdancer does. Why is this not a dpkg (or apt) bug? It should be possible to do that sequence in a way that preserves the system as working, no? But yes, there is the separate _minor_ issue that cowdancer is linking against more than it needs to. I don't know why I made it pull in all of ncurses, maybe an earlier version of the patch needed it and it no longer does, but it's been too long to have any hope of remembering what past me was thinking. Jess
Bug#970555: ncurses: Upgrade fails: version `NCURSES6_TINFO_6.2.current' not found (required by /lib/x86_64-linux-gnu/libncurses.so.6)
Control: reassign -1 cowdancer 0.88 Control: retitle -1 cowdancer: needlessly links with ncurses Control: severity -1 important On 2020-09-18 18:22 +0200, Sebastiaan Couwenberg wrote: > Control: tags -1 - moreinfo > > On 9/18/20 6:13 PM, Sven Joachim wrote: >> On 2020-09-18 16:55 +0200, Bas Couwenberg wrote: >>> Upgrading sid & experimental pbuilder chroots fails due to the new ncurses: >>> >>> Preparing to unpack .../libncursesw6_6.2+20200912-1_amd64.deb ... >>> Unpacking libncursesw6:amd64 (6.2+20200912-1) over (6.2-1) ... >>> Preparing to unpack .../libncurses6_6.2+20200912-1_amd64.deb ... >>> Unpacking libncurses6:amd64 (6.2+20200912-1) over (6.2-1) ... >>> rm: /lib/x86_64-linux-gnu/libtinfo.so.6: version >>> `NCURSES6_TINFO_6.2.current' not found (required by >>> /lib/x86_64-linux-gnu/libncurses.so.6) >>> dpkg: error while cleaning up: >>> rm command for cleanup subprocess returned error exit status 1 >>> dpkg-split: /lib/x86_64-linux-gnu/libtinfo.so.6: version >>> `NCURSES6_TINFO_6.2.current' not found (required by >>> /lib/x86_64-linux-gnu/libncurses.so.6) >>> rm: /lib/x86_64-linux-gnu/libtinfo.so.6: version >>> `NCURSES6_TINFO_6.2.current' not found (required by >>> /lib/x86_64-linux-gnu/libncurses.so.6) >>> dpkg: error processing archive >>> /var/cache/apt/archives/libtinfo6_6.2+20200912-1_amd64.deb (--unpack): >>> rm command for cleanup subprocess returned error exit status 1 >>> Errors were encountered while processing: >>> /var/cache/apt/archives/libtinfo6_6.2+20200912-1_amd64.deb >>> E: Sub-process /usr/bin/dpkg returned an error code (1) >> >> I cannot reproduce this, but my pbuilder chroots do not have libncurses6 >> installed at all. > > What about cowbuilder chroots? Thanks for the hint, I do not use cowbuilder but had a look at the manpage where I found this option: , | --no-cowdancer-update | Do not use cowdancer on cowbuilder update. Please use this | option when cowdancer is interfering with upgrade process, | or cowdancer itself is being upgraded within chroot. ` Apparently this is what you need to use, for cowdancer seems to bring libncurses.so.6 into the address space of every binary on the system, which is "interfering with upgrade process". >> What is this rm binary in your chroot, apparently it >> is linked to libncurses.so.6? > > # which rm > /bin/rm > # dpkg -S /bin/rm > coreutils: /bin/rm > # ldd /bin/rm > linux-vdso.so.1 (0x7ffea75fb000) > /usr/lib/cowdancer/libcowdancer.so (0x7f2e6a6db000) > libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x7f2e6a512000) > libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x7f2e6a50c000) > libncurses.so.6 => /lib/x86_64-linux-gnu/libncurses.so.6 > (0x7f2e6a4e3000) > libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 > (0x7f2e6a4b4000) > /lib64/ld-linux-x86-64.so.2 (0x7f2e6a6f9000) > # aptitude why libncurses6 > i cowdancer Depends libncurses6 (>= 6) It seems that cowdancer should not link with ncurses in the first place, as it only uses the tinfo library. In fact, rebuilding cowbuilder with a current toolchain that defaults to the "--as-needed" linker flag causes cowbuilder and cowdancer to depend on libtinfo6 only. Cheers, Sven
Bug#970555: ncurses: Upgrade fails: version `NCURSES6_TINFO_6.2.current' not found (required by /lib/x86_64-linux-gnu/libncurses.so.6)
Control: tags -1 - moreinfo On 9/18/20 6:13 PM, Sven Joachim wrote: > On 2020-09-18 16:55 +0200, Bas Couwenberg wrote: >> Upgrading sid & experimental pbuilder chroots fails due to the new ncurses: >> >> Preparing to unpack .../libncursesw6_6.2+20200912-1_amd64.deb ... >> Unpacking libncursesw6:amd64 (6.2+20200912-1) over (6.2-1) ... >> Preparing to unpack .../libncurses6_6.2+20200912-1_amd64.deb ... >> Unpacking libncurses6:amd64 (6.2+20200912-1) over (6.2-1) ... >> rm: /lib/x86_64-linux-gnu/libtinfo.so.6: version >> `NCURSES6_TINFO_6.2.current' not found (required by >> /lib/x86_64-linux-gnu/libncurses.so.6) >> dpkg: error while cleaning up: >> rm command for cleanup subprocess returned error exit status 1 >> dpkg-split: /lib/x86_64-linux-gnu/libtinfo.so.6: version >> `NCURSES6_TINFO_6.2.current' not found (required by >> /lib/x86_64-linux-gnu/libncurses.so.6) >> rm: /lib/x86_64-linux-gnu/libtinfo.so.6: version >> `NCURSES6_TINFO_6.2.current' not found (required by >> /lib/x86_64-linux-gnu/libncurses.so.6) >> dpkg: error processing archive >> /var/cache/apt/archives/libtinfo6_6.2+20200912-1_amd64.deb (--unpack): >> rm command for cleanup subprocess returned error exit status 1 >> Errors were encountered while processing: >> /var/cache/apt/archives/libtinfo6_6.2+20200912-1_amd64.deb >> E: Sub-process /usr/bin/dpkg returned an error code (1) > > I cannot reproduce this, but my pbuilder chroots do not have libncurses6 > installed at all. What about cowbuilder chroots? > What is this rm binary in your chroot, apparently it > is linked to libncurses.so.6? # which rm /bin/rm # dpkg -S /bin/rm coreutils: /bin/rm # ldd /bin/rm linux-vdso.so.1 (0x7ffea75fb000) /usr/lib/cowdancer/libcowdancer.so (0x7f2e6a6db000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x7f2e6a512000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x7f2e6a50c000) libncurses.so.6 => /lib/x86_64-linux-gnu/libncurses.so.6 (0x7f2e6a4e3000) libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x7f2e6a4b4000) /lib64/ld-linux-x86-64.so.2 (0x7f2e6a6f9000) # aptitude why libncurses6 i cowdancer Depends libncurses6 (>= 6) Kind Regards, Bas -- GPG Key ID: 4096R/6750F10AE88D4AF1 Fingerprint: 8182 DE41 7056 408D 6146 50D1 6750 F10A E88D 4AF1
Bug#970555: ncurses: Upgrade fails: version `NCURSES6_TINFO_6.2.current' not found (required by /lib/x86_64-linux-gnu/libncurses.so.6)
Control: tags -1 moreinfo On 2020-09-18 16:55 +0200, Bas Couwenberg wrote: > Source: ncurses > Version: 6.2+20200912-1 > Severity: serious > Justification: makes the package in question unusable or mostly so > > Dear Maintainer, > > Upgrading sid & experimental pbuilder chroots fails due to the new ncurses: > > Preparing to unpack .../libncursesw6_6.2+20200912-1_amd64.deb ... > Unpacking libncursesw6:amd64 (6.2+20200912-1) over (6.2-1) ... > Preparing to unpack .../libncurses6_6.2+20200912-1_amd64.deb ... > Unpacking libncurses6:amd64 (6.2+20200912-1) over (6.2-1) ... > rm: /lib/x86_64-linux-gnu/libtinfo.so.6: version > `NCURSES6_TINFO_6.2.current' not found (required by > /lib/x86_64-linux-gnu/libncurses.so.6) > dpkg: error while cleaning up: > rm command for cleanup subprocess returned error exit status 1 > dpkg-split: /lib/x86_64-linux-gnu/libtinfo.so.6: version > `NCURSES6_TINFO_6.2.current' not found (required by > /lib/x86_64-linux-gnu/libncurses.so.6) > rm: /lib/x86_64-linux-gnu/libtinfo.so.6: version > `NCURSES6_TINFO_6.2.current' not found (required by > /lib/x86_64-linux-gnu/libncurses.so.6) > dpkg: error processing archive > /var/cache/apt/archives/libtinfo6_6.2+20200912-1_amd64.deb (--unpack): > rm command for cleanup subprocess returned error exit status 1 > Errors were encountered while processing: > /var/cache/apt/archives/libtinfo6_6.2+20200912-1_amd64.deb > E: Sub-process /usr/bin/dpkg returned an error code (1) I cannot reproduce this, but my pbuilder chroots do not have libncurses6 installed at all. What is this rm binary in your chroot, apparently it is linked to libncurses.so.6? Cheers, Sven
Bug#970555: ncurses: Upgrade fails: version `NCURSES6_TINFO_6.2.current' not found (required by /lib/x86_64-linux-gnu/libncurses.so.6)
Source: ncurses Version: 6.2+20200912-1 Severity: serious Justification: makes the package in question unusable or mostly so Dear Maintainer, Upgrading sid & experimental pbuilder chroots fails due to the new ncurses: Preparing to unpack .../libncursesw6_6.2+20200912-1_amd64.deb ... Unpacking libncursesw6:amd64 (6.2+20200912-1) over (6.2-1) ... Preparing to unpack .../libncurses6_6.2+20200912-1_amd64.deb ... Unpacking libncurses6:amd64 (6.2+20200912-1) over (6.2-1) ... rm: /lib/x86_64-linux-gnu/libtinfo.so.6: version `NCURSES6_TINFO_6.2.current' not found (required by /lib/x86_64-linux-gnu/libncurses.so.6) dpkg: error while cleaning up: rm command for cleanup subprocess returned error exit status 1 dpkg-split: /lib/x86_64-linux-gnu/libtinfo.so.6: version `NCURSES6_TINFO_6.2.current' not found (required by /lib/x86_64-linux-gnu/libncurses.so.6) rm: /lib/x86_64-linux-gnu/libtinfo.so.6: version `NCURSES6_TINFO_6.2.current' not found (required by /lib/x86_64-linux-gnu/libncurses.so.6) dpkg: error processing archive /var/cache/apt/archives/libtinfo6_6.2+20200912-1_amd64.deb (--unpack): rm command for cleanup subprocess returned error exit status 1 Errors were encountered while processing: /var/cache/apt/archives/libtinfo6_6.2+20200912-1_amd64.deb E: Sub-process /usr/bin/dpkg returned an error code (1) Kind Regards, Bas