Proposal:
A. dpkg will be extended to support installing two packages with
the same name, but different ABIs, as previously proposed.
B. dpkg will be extended to support two packages with the same name
(as above) both owning the same file. It will only remove a file
from the filesystem when the last owning package is removed.
C. dpkg will be extended so that if both a:ABI1 is installed and
has "Multi-Arch: yes" set, and an install of a:ABI2 is
attempted:
1. if a:ABI2 has "Multi-Arch: yes" set, proceed to install
it as well. In case of file conflicts, use the
md5sums[0] in the package to create co-ownership of
identical shared files in a:AB1 and a:ABI2. If this does
not resolve all conflicts, error out.
2. if a:ABI2 has "Multi-Arch: no" set, refuse to proceed.
3. if a:ABI2 does NOT have "Multi-Arch:" set at all,
attempt to install as normal without co-ownership.
D. dpkg will assume a means a:DEFAULT_ABI, which is the default ABI
on the machine. a:* means "a of all ABIs"[1] (used in, e.g.,
conflicts). a:ABI of course means that particular ABI.
E. Either dpkg must require a:* to all be the same version, or
versions of a which change a common file must
Conflicts: a:* << VERSION
RATIONALE:
* This will handle /usr/share/doc. We won't need any of the
previously-proposed special behavior for
/usr/share/doc/copyright.
* This will allow most -dev packages to be multi-arched without
splitting. This proposal creates no new packages.
* This allows packages to be slowly migrated to Multi-Arch with
minimal work. All that is needed for the common case is to add
the header 'Multi-Arch: yes' to the package and make e.g., amd64
libs install into /usr/lib64. Some will need md5sums added too,
but that is trivial.
* Dependencies do not have to be changed for most packages.
POTENTIAL PROBLEMS:
* --purge and shared conffiles. I don't think conffiles should be
shared, ever. Most lib* packages don't have them anyway, and the
few that do are either special (libc) or can be split. This is
only a small number of new packages.
FOOTNOTES:
1. packages with Multi-Arch: yes must have an md5sums file.
2. No idea if this should include ABIs that are not possible to
install on this machine, like m68k on amd64. That must be
thought about.
Attachment:
signature.asc
Description: This is a digitally signed message part