Bug#970555: ncurses: Upgrade fails: version `NCURSES6_TINFO_6.2.current' not found (required by /lib/x86_64-linux-gnu/libncurses.so.6)

2020-10-01 Thread Sven Joachim
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)

2020-09-18 Thread Sven Joachim
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)

2020-09-18 Thread Jessica Clarke
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)

2020-09-18 Thread Sven Joachim
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)

2020-09-18 Thread Sebastiaan Couwenberg
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)

2020-09-18 Thread Sven Joachim
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)

2020-09-18 Thread Bas Couwenberg
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