Re: Proposal for Lenny: Please avoid duplicated changelogs for binary packages sharing the same source package
Matthias Julius <firstname.lastname@example.org> writes:
> Goswin von Brederlow <email@example.com> writes:
>> Matthias Julius <firstname.lastname@example.org> writes:
>>> Goswin von Brederlow <email@example.com> writes:
>>>> 2) multiarch has a problem with changelogs in library packages. It
>>>> must be possible to insall libc6:i386 and libc6:amd64. If both contain
>>>> /usr/share/doc/libc6/changelog then that gives a file conflict in
>>>> dpkg. Having the changelog in libc6-common beautifully solves this
>>>> problem and avoids having to special case this in dpkg.
>>> There is one more catch to add here: The same library can be installed
>>> in different versions for the different arches. IMHO this makes it
>>> impossible for them to really share the same file.
>> Not neccessarily. I wouldn't really get upset if libc6 depends on
>> libc-common (= source:version) and forces libc6:i386 and libc6:amd64
>> to be the same version at all times.
> There is nothing that guaranties that libc6 is on the same version on
> all arches (at least in unstable). If it is not your second choice
> becomes uninstallable.
> Multiarch packages would need to be blocked from upgrading in the
> archive until the new version is available on all arches that can run
> on the same platform.
Nothin prevents libfoo-common and libfoo to have different versions in
unstable making libfoo uninstallable. That is just unstable. Live with
Having multiarch systems require that libfoo is the same versions on
all installed archs is simply an extension of this problem, nothing
Note that nobody is forcing anyone to use multiarch. The design has
always been so that you can selectively add or remove archs to/from
your system. If you don't need a 32bit flash on amd64 then you purge
i386 and run amd64 uniarch. So any extra deadlocks due to version
skews in unstable are your choice. No risk no fun.
>> You can't assume the i386 /usr/share/* files will work for the amd64
>> package if you allow the versions to differ and even if versions are
>> forced to match it would be complex to handle up/down-grades
>> correctly. For /usr/share/doc we can hack around as that dir must be
>> unimportant to the workings of a package. Not so for /usr/share/* in
> Doesn't this problem already exist for packages that have a separated
> -common or -data package? What is worse in multiarch if the arches
> are force to be on the same version?
No. That is a different problem. This was about not having a -common
package but having dpkg handle file conflicts magically. Best to
forget it since it won't work reliable.
>>> How is multiarch coming along?
>> In officialy Debian it is stuck with binutils missing a few lines
>> patch from the BTS.
> Is there hope that gets resolved after etch?
There is always hope.
The last few days I've been testing a slightly modified multiarch
layout that follows the cross-compiler directory structure. So instead
of /usr/lib/x86_64-linux-gnu I use /usr/x86_64-linux-gnu/lib. This
seems to be well established in binutils already even for non-cross
binutils so no patches needed to make this work. It would also allow
to install the (multiarch) debs from any arch for use with a
cross-compiler. No more conversion or cross building of libs required.
The drawback is that it pollutes / and /usr a bit. But anyone that has
used a cross-compiler is used to that.