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

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: