I showed that `aptitude show libasyncns0` (with or without ':arch' or
'=ver' qualifiers) shows 'Breaks:' and 'Replaces:' lines for the 'other'
arch.

But -- `apt show` does not show those lines; `dpkg -I` on the *.deb doesn't
show; and extracting the packages' 'control' files also doesn't show them!

Yet, trying to actually test-install (with `apt-get -s install` or `apt -s
install`) *does* report all the conflict consequences as implied by the
`aptitude` output.

Ahhh, I think I understand: it is a consequence of the 'Multi-Arch: same'
header.  And there doesn't seem to be a value for that header which means
'multiple arch versions can be installed at once, and it is OK if they
aren't the same version'.  I suspect this can be 'simulated' by the use of
explicit 'Breaks' and 'Replaces' headers giving wider leeway; but that
sounds like an extra bad maintenance nightmare...

No, the answer really seems to be: do not issue updates to just one arch at
once, of a Multi-Arch package.  It just doesn't work.

In fact it is likely enough to cause trouble, that I would kind of expect
the maintainer tools (upload scripts etc) to try to call it out and prevent
it...

(It seems that `aptitude` is basically displaying 'imputed' 'Breaks' and
'Replaces' headers -- what the package *could* have explicitly included in
its control file to get approximately the same effect as the 'Multi-Arch:
same' header.  This `aptitude` behavior was both confusing and, in the end,
helpful and enlightening...)

Reply via email to