[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Proposal for Lenny: Please avoid duplicated changelogs for binary packages sharing the same source package



"Tshepang Lekhonkhobe" <tshepang@gmail.com> writes:

> On 1/2/07, Tshepang Lekhonkhobe <tshepang@gmail.com> wrote:
>> On 1/2/07, Pierre Habouzit <madcoder@debian.org> wrote:
>> > On Tue, Jan 02, 2007 at 04:28:59PM +0200, Tshepang Lekhonkhobe wrote:
>> > > On 1/2/07, Pierre Habouzit <madcoder@debian.org> 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.
>>
>> thanks
>
> 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
/usr/share/doc/libc6/changelog.gz_amd64 to
/usr/share/doc/libc6/changelog.gz.

Better solutions are welcome.

MfG
        Goswin




Reply to: