Re: Proposal for Lenny: Please avoid duplicated changelogs for binary packages sharing the same source package
"Tshepang Lekhonkhobe" <firstname.lastname@example.org> writes:
> On 1/2/07, Tshepang Lekhonkhobe <email@example.com> wrote:
>> On 1/2/07, Pierre Habouzit <firstname.lastname@example.org> wrote:
>> > On Tue, Jan 02, 2007 at 04:28:59PM +0200, Tshepang Lekhonkhobe wrote:
>> > > On 1/2/07, Pierre Habouzit <email@example.com> wrote:
>> > > Why not have an extra /usr/share/doc/$source-name directory in case a
>> > > binary package of the same name doesn't exist or is not found to be
>> > > installed. This would be a problem when dependencies change, but on
>> > > package removal, /usr/share/doc/$source-name would be left alone if
>> > > there remains binary packages built from that source package.
>> > That's what $package-common packages are for. But just to hold the
>> > copyright and changelog that's an overkill because those packages would
>> > need some kind of garbage collection somehow and that i'm quite sure
>> > that it would use more mirror resources than the repeated changelogs.
>> > Well all in one it's not worth the effort, and has many drawbacks
>> > IMHO. I'd say that's a thing you may consider when you already need a
>> > $package-common for your packaging, but it's not necessarily a good
>> > idea.
>> > just to know what we are talking about, on my system:
>> > du /usr/share/doc/*/changelog.Debian.gz: 16M
>> > du /usr/share/doc/*/copyright: 15M
>> > du /usr/lib/iceweasel/firefox-bin: 15M
>> > so well, if it's not nothing, it's still quite small, and I can't
>> > imagine a system where 30M is an issue nowadays (well except PDA's or
>> > so, but here the whole /usr/share/doc is an issue at once anyway, like
>> > Don already explained it - on my system /usr/share/doc is 234M big).
>> Pretty well-justified that this would be a useless effort. Along with
>> Don's mention that binary packages don't have to be the same version
>> it just shows that my proposal sucks.
> By the way, this proposal was made because I browsed through
> /usr/share/doc/$package/changelog.Debian.gz to find that they were the
> same for different binary packages and expecting otherwise. I guess
> it's too much trouble doing separate changelogs for binary packages.
Two things to mention:
1) binary packages from the same source can be installed in different
versions. Those would have different changelogs. With seperate dirs
they do, with a $source-name dir they won't.
Having a -common file containing the changelog is probably only a good
idea when there is a strict versioned depends on it so the foo and
foo-common package always match.
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.
Actually for multiarch I'm thinking of postfixing the doc dir with the
architecture (e.g. /usr/share/doc/libc_amd64) and have a link from
libc6 to the newest version of libc6_*. Or to the one last
installed. Alternatively the conflicting files could be postfixed with
the arch (e.g. changelog.gz_amd64) when there is a conflict.
The main problem is always cleanup on removal. Say libc6:i386 holds
/usr/share/doc/libc6/changelog.gz, libc6:amd64 holds
/usr/share/doc/libc6/changelog.gz_amd64. When libc6:i386 is removed
dpkg should cleanup properly and rename
Better solutions are welcome.