[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#946285: marked as done (libgcc-s1: probably needs Breaks: libgcc1 (<< 1:10))



Your message dated Thu, 30 Apr 2020 13:05:11 +0200
with message-id <[🔎] 71fd1101-f752-3ec0-7063-2705b895389b@debian.org>
and subject line Re: Bug#946285: libgcc-s1: probably needs Breaks: libgcc1 (<< 1:10)
has caused the Debian Bug report #946285,
regarding libgcc-s1: probably needs Breaks: libgcc1 (<< 1:10)
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
946285: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=946285
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: libgcc-s1
Version: 10-20191205-1
Severity: important

I notice gcc-10 has switched from packaging libgcc_s.so.1 as
"libgcc1" to the Policy-recommended name libgcc-s1. Because libgcc-s1
contains /usr/lib/MULTIARCH/libgcc_s.so.1 and libgcc1 contains
/lib/MULTIARCH/libgcc_s.so.1, the new libgcc-s1 and the old libgcc1 do
appear to be co-installable. However, if both are installed, programs
that were compiled against the newer version will load the older version
(because /lib/MULTIARCH is more preferred by the dynamic linker than
/usr/lib/MULTIARCH), and that isn't necessarily going to work. I would
recommend adding a versioned Breaks to force libgcc1 to be upgraded to
the empty transitional version from gcc-10, unless there is some reason
I'm not seeing right now that makes this unnecessary.

Because libgcc is so important, you might want to give the transitional
libgcc1 a Pre-Depends on libgcc-s1 instead of its current Depends?
Otherwise, I think there can be a time during installation in which the
old libgcc has been deleted by installing and the new one has not yet been
unpacked. Like all Pre-Depends, this should be discussed on -devel first.

I should also warn you that even after adding the necessary Breaks,
you might also encounter bugs similar to https://bugs.debian.org/894763
and https://bugs.debian.org/896019, which appeared when GLib moved from
/lib/MULTIARCH to /usr/lib/MULTIARCH - somehow an obsolete copy of GLib
continued to exist in /lib/MULTIARCH, breaking programs. We still don't
understand how or why that happened. I asked the technical committee
for advice in https://bugs.debian.org/911225 and they suggested adding
diagnostic/cleanup code to GLib's maintainer scripts, but I haven't been
able to implement that yet.

If similar bugs happen with libgcc, they would be more serious than they
are for GLib, since some of the programs and libraries that you'd want
to use to recover from that situation, notably apt, depend on libgcc.

Thanks,
    smcv

--- End Message ---
--- Begin Message ---
On 12/17/19 12:48 PM, Matthias Klose wrote:
> On 06.12.19 20:32, Simon McVittie wrote:
>> On Fri, 06 Dec 2019 at 17:49:09 +0100, Matthias Klose wrote:
>>> On 06.12.19 17:36, Simon McVittie wrote:
>>>> I notice gcc-10 has switched from packaging libgcc_s.so.1 as
>>>> "libgcc1" to the Policy-recommended name libgcc-s1.
>>>
>>> it's not an old version, it's the same version. Is this still an issue?
>>
>> Oh! I hadn't realised libgcc1 (>= 1:10) still had content - I assumed it
>> had become an empty dependency package.
>>
>> In that case, it looks as though libgcc1 (>= 1:10) and libgcc-s1
>> (>= 1:10) are not going to be co-installable on systems with merged /usr
>> (such as default buster installations), because they contain a path that
>> differs only in whether it starts with /lib or /usr/lib.
>>
>> libgcc1 (<< 1:10) and libgcc-s1 (>= 1:10) would have the same problem,
>> in fact, so I should have suggested Breaks/Replaces.
> 
> 10-20191209 now has the libgcc1 package as a non-multiarch package, and shipping
> the library in /lib to avoid the conflict. libgcc-s1 is M-A: same, providing the
> libgcc1 package.
> 
>>> well, currently the very same library is shipped, so I don't see what could
>>> break. The current packaging doesn't need any breaks.
>>
>> It won't break *full* upgrades on non-merged-/usr systems right now,
>> but it could break partial upgrades where you have for example
>>
>>     libgcc1 (= 1:9.2.1-21) from gcc-9
>>     libgcc-s1 (= 10-20191205-1) from gcc-10
>>
>> if there is no dependency relationship that forces that situation not
>> to happen.
>>
>> Is there a reason why this rename and file move particularly needs to
>> happen, or is it just for neatness? The changelog doesn't mention it,
>> but I can see that it might have implications for the interaction with
>> ${multiarch:breaks}.
>>
>> If it's just for neatness, to be honest I'd be inclined to leave it
>> as-is and consider it to be a historical accident, the same as the way
>> libglib2.0-0 isn't called libglib-2.0-0 as it should be.
> 
> The libgcc1 binary has a different version number than any other binary built
> from gcc-10. Dropping that allows some simplification in the packaging. Yes, you
> could argue that an epoch bump would work as well, but I'd like to avoid that.
> 

closing now, the upgrades went fine, afaics.

--- End Message ---

Reply to: