Re: Getting rid of circular dependencies
Hello
On Fri, Jun 24, 2005 at 05:21:51PM +0200, Bill Allombert wrote:
> Dear Debian developers,
>
> Following a post to Debian-Devel-Announce, I would like to
> discuss getting rid of circular dependencies.
>
> Why ?
> -----
> 1) The semantic of Depends specified by Debian policy 7.2. does not allow
> packages with circular dependencies to be installed at all:
>
> `Depends'
> This declares an absolute dependency. A package will not be
> configured unless all of the packages listed in its `Depends'
> field have been correctly configured.
This phrasing is obviously wrong as you can install packages with
circular dependencies. This phrasing say exactly what Pre-Depends is.
Depends should be described as follows:
`Depends'
This declares an absolute dependency. A package will not be
configured unless all of the packages listed in its `Depends'
field have been correctly unpacked.
But I actually think you may have made a mistake by saying that
configured refer to the configure phase in dpkg install. It could be
clarified though.
> This mean that dpkg have to go out of its way to install them, and doing
> that break the expectation of packages expecting Depended package to be
> configured before them.
>
> 2) There have been lots of evidence that circular dependencies create
> problems during upgrade. See bugs #310490 in particular
> <20050528194731.GF1055@seventeen>.
This may be the case, but I think that this may be a problem in aptitude
more than in the existance of circular dependencies. Well I'm not the
one to determine this.
Removing unneeded circular dependencies is a good thing though. Especially
for big chunks of packages.
> 3) Circular dependencies make the job of the testing scripts harder.
Yes that is true.
> 4) Circular dependencies make bootstrapping a new plateform harder.
True also.
> 5) There is an urban legend that circular dependencies between packages
> build from the same source are harmless. This is false of course. Being
> part of the same source package has no effect of the Packages.gz file
> whatsoever.
It is true for case 3 and 4 above (at least 4 as I not fully sure about case 3).
> Which ?
> -------
>
> Preferably all of them.
>
> Robert Lemmen was kind enough to set up a summary of current circular
> dependencies: <http://debian.semistable.com/debgraph.out>
> See the list for yourself.
>
> The circular dependencies involving the largest number of packages are:
>
> * libxtst6 libxtrap6 libxrandr2 libxp6 libxt6 libxmu6 libxi6 libxrender1
> libxft1 libsm6 xlibs
>
> * libgnorba27 libgnomeui32 libgnomesupport0 gnome-bin gnome-libs-data libgnome32
>
> * xemacs21-gnome-nomule xemacs21-gnome-mule-canna-wnn xemacs21-gnome-mule
> xemacs21-nomule xemacs21-mule-canna-wnn xemacs21-bin xemacs21-support
> xemacs21-mule xemacs21
>
> * gnome-panel-data gnome-panel nautilus gnome-control-center capplets
> gnome-session
>
> * phpgroupware-preferences phpgroupware-admin phpgroupware-setup
> phpgroupware-phpgwapi phpgroupware
>
> * wesnoth-tdh wesnoth-ei wesnoth-sotbe wesnoth-trow wesnoth-httt
> wesnoth-data wesnoth
>
> How ?
> -----
>
> I see two easy case:
>
> 1) foo and foo-data. There is usualy no reason for foo-data to depend on
> foo. foo-data does not provide user-visible interface, only data, so it
> does not need to depend on foo.
>
> 2) libfoo and foo-bin, where foo-bin include binaries linked with
> libfoo. Usually libfoo only need to Depends on configuration data
> in foo-bin and not on any binaries linked with libfoo (to avoid infinite
> recursion). In that case it should be possible to split foo-bin in
> foo-bin and foo-common, and change libfoo to depend on foo-common
> instead.
Regards,
// Ola
> Other options ?
>
> Cheers,
> --
> Bill. <ballombe@debian.org>
>
> Imagine a large red swirl here.
>
>
> --
> To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
>
>
--
--------------------- Ola Lundqvist ---------------------------
/ opal@debian.org Annebergsslingan 37 \
| opal@lysator.liu.se 654 65 KARLSTAD |
| +46 (0)54-10 14 30 +46 (0)70-332 1551 |
| http://www.opal.dhs.org UIN/icq: 4912500 |
\ gpg/f.p.: 7090 A92B 18FE 7994 0C36 4FE4 18A1 B1CF 0FE5 3DD9 /
---------------------------------------------------------------
Reply to: