On 2018-02-16 at 11:42, Theodore Ts'o wrote:

> On Fri, Feb 16, 2018 at 07:05:41AM -0500, The Wanderer wrote:
> 
>> Package: libcomerr2 Version: 1.43.8-2 Severity: normal
>> 
>> Dear Maintainer,
>> 
>> libcom-err2, which is currently at version 1.43.9-1, currently
>> Breaks: any libcomerr2 package of a lower version. This is normal
>> and reasonable.
>> 
>> There is a libcomerr2 package of matching version, which is labeled
>> as a transitional package. This is normal, and working fine.
>> 
>> However, there does not appear to be any libcomerr2:i386 
>> transitional-package version. The most recent version of
>> libcomerr2:i386 available in current testing is 1:43.8-2. (The
>> packages.debian.org pages for libcomerr2 that I know to check show
>> nothing to indicate that this version is expected to be absent, and
>> I have been unable to find any indication of its having been
>> rejected for testing migration for whatever reason, but it is
>> nevertheless not available.)
> 
> There is a libcomerr2:all package which is in in testing:
> 
> https://packages.debian.org/buster/libcomerr2

Yes, I saw that page.

>> As a result, when I attempt to dist-upgrade, apt-get proposes to
>> remove libcomerr2:i386, and everything that (directly or
>> indirectly) depends on it; that includes at least one package which
>> I actively want to retain. (pcsx2, for what it's worth.)
> 
> What I believe *should* have happened is that apt-get should have
> replaced libcomerr2:i386 with the new version of libcomerr2 of type
> any.

If I understand you correctly, I think that's what *is* happening - but
the new libcomerr2 package apparently doesn't satisfy the i386
dependency. In fact, I think it's correct in not doing so, because it
can't possibly know which non-native architectures of its dependency to
pull in.

The arch:all libcomerr2 depends on libcom-err2. Since that dependency
does not explicitly specify any architecture, it resolves to the package
version from the installed native architecture; in this case, that's
libcom-err2:amd64. However, what is needed by the :i386 package
declaring the dependency is libcom-err2:i386, which the arch:all
libcomerr2 does not depend on.

In the long run, the right solution is clearly for the depending
packages (in this case, parts of krb5) to update their dependencies to
libcom-err2. That doesn't affect the question of getting things to work
cleanly during the transitional period, though.

> If I had created separate transition packages for each architecture
> separately (e.g., libcommerr2:i386, libcomerr2:amd_64, etc. I belive
> I would have gotten Lintian errors and complaints that I was wasting
> ftp space on all of our mirrors).

I'm not sure what the right way to handle this is, but having a
single-architecture or non-architecture-specific transitional package
attempt to substitute for all the cross-architecture dependencies
clearly isn't working.

I'd be glad to help with figuring out what to do on this, but if having
a "separate" transitional package for each architecture isn't an option,
I'm really not sure what might be...

-- 
   The Wanderer

The reasonable man adapts himself to the world; the unreasonable one
persists in trying to adapt the world to himself. Therefore all
progress depends on the unreasonable man.         -- George Bernard Shaw

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to