Re: Getting rid of circular dependencies
Le mardi 28 juin 2005 à 16:05 +0200, Josselin Mouette a écrit :
> > 2) document that packages using some extra feature (e.g. SVG loader)
> > needs to depend on an extra package (librsvg2-common)
> Guess why we moved from doing things this way to make librsvg2-2 depend
> on librsvg2-common...
To make things clearer: there is no way to tell whether a program
actually needs librsvg2-common. Even testing it with and without
librsvg2-common installed wouldn't be enough, as it could e.g. make use
of themes that include SVG files.
> > 4) split the library in two libraries so that the -common package depend
> > only on the first and is used only by the second.
> This one would be good. In fact, maybe linking to the library isn't
> necessary in these packages, I'll have a closer look. In this case using
> --as-needed would solve the problem.
A closer look at the involved symbols shows that this wouldn't be an
easy task, as the symbols needed by the daemon are also needed by the
applications. Moving a part of the symbols to another library would mean
adding another package, making applications also depend on this package
through the shlibs mechanism. In the end, such a split wouldn't mean
anything, as the three packages (library, daemon, "light" library) would
end up being installed together in all cases.
In the case of gconf2 and gnome-vfs2, I see no point in removing the
circular dependencies. Gconf2 needs its library to work, and the library
needs the daemon to work. It's not like data packages, where the data
doesn't really need the program. The only solution without circular
dependencies is to put the daemon and the library in a single package.
However this is forbidden by policy.
.''`. Josselin Mouette /\./\
: :' : email@example.com
`. `' firstname.lastname@example.org
`- Debian GNU/Linux -- The power of freedom