Re: Getting rid of circular dependencies, stage 3

2006-01-16 Thread Benjamin Seidenberg

Joey Hess wrote:


Bill Allombert wrote:
 


Although sarge's aptitude did..
 


I don't know, there were no ways to upgrade to sarge's aptitude.
   



The bug log contains a log of astronut doing the upgrade with sarge's
aptitude..

 

I think the bigger problem is not whether it's possible to do this 
(which it somewhat was) but that it's not intuitive and that it would 
require research for someone to figure out how to do. Perhaps there 
should be some kind of upgrade pseudo-package created to ease the 
transition, that depends on the tools needed? Ie, aptitude install 
etch-upgrade would install the later version of aptitude, etc. needed 
for the upgrade.


Benjamin (astronut)


signature.asc
Description: OpenPGP digital signature


Re: Getting rid of circular dependencies, stage 3

2006-01-13 Thread Josselin Mouette
Le jeudi 12 janvier 2006 à 21:12 +0400, Stepan Golosunov a écrit :
  Looking at them, I fail to see why debconf-i18n has to depend on
  debconf.
 
 Because /usr/share/doc/debconf-i18n is a symlink?

Then this is something that can easily be fixed. Not as easily as with
the classical foo - foo-data dependency, as debconf-english has the
same symlink, but it's possible to keep these directories in the
package. Gaining a few kilobytes on the hard disk to have the changelog
in another package, at the cost of a circular dependency, is too
expensive IMHO.

Regards,
-- 
 .''`.   Josselin Mouette/\./\
: :' :   [EMAIL PROTECTED]
`. `'[EMAIL PROTECTED]
   `-  Debian GNU/Linux -- The power of freedom



Re: Getting rid of circular dependencies, stage 3

2006-01-13 Thread Dominique Dumont
Adrian von Bidder [EMAIL PROTECTED] writes:

 From a graph algorithm point of view, if I'm not very mistaken,
 dependencies being guaranteed to be a directed graph instead of a
 generic graph should allow some simplifications/efficiency
 improvements in apt and other tools, too.

For the record, dependencies are a directed graph by nature. 

Preventing circular dependencies will get you a directed acyclic graph
(DAG) which is, IMHO, easier to handle.

HTH
-- 
Dominique Dumont 
Delivering successful solutions requires giving people what they
need, not what they want. Kurt Bittner


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Getting rid of circular dependencies, stage 3

2006-01-13 Thread Adrian von Bidder
On Friday 13 January 2006 16:53, you wrote:
 Adrian von Bidder [EMAIL PROTECTED] writes:
  From a graph algorithm point of view, if I'm not very mistaken,
  dependencies being guaranteed to be a directed graph instead of a
  generic graph should allow some simplifications/efficiency
  improvements in apt and other tools, too.

 For the record, dependencies are a directed graph by nature.

 Preventing circular dependencies will get you a directed acyclic graph
 (DAG) which is, IMHO, easier to handle.

Arrgh.  Of course, just a confusion of terms.

cheers
-- vbi

-- 
F: Was ist ein Pensch?
A: Das mittlere Stück von einem Lam-pensch-irm


pgp7OK8BFipey.pgp
Description: PGP signature


Re: Getting rid of circular dependencies, stage 3

2006-01-13 Thread Joey Hess
Bill Allombert wrote:
  Although sarge's aptitude did..
 
 I don't know, there were no ways to upgrade to sarge's aptitude.

The bug log contains a log of astronut doing the upgrade with sarge's
aptitude..

-- 
see shy jo


signature.asc
Description: Digital signature


Re: Getting rid of circular dependencies, stage 3

2006-01-13 Thread Joey Hess
Henning Glawe wrote:
 To illustrate the scenario:
 - Package A depends on package B, which in turn depends on A
   0) User calls 'apt-get install long-list-of-packages1 A B
  long-list-of-packages2':
   1) apt splits the whole list into smaller parts after sorting by dependency
  where, in case this bug occurs:
part1=long-list-of-packages3 A
part2=B long-list-of-packages4
   2) apt calls 'dpkg --unpack' for each element of part1 and part2
  == so far no problem ==
   3) apt calls 'dpkg --configure part1' and 'dpkg --configure part2'
  where the first step already fails, because B is not in
  part1, but A depends on B
  == complete failure, user has to recover manually: 

debconf will not break in this situation

(BTW, it's not formally essential, but it needs to have the same
qualities as essential packages, and does.)

-- 
see shy jo


signature.asc
Description: Digital signature


Re: Getting rid of circular dependencies, stage 3

2006-01-13 Thread Bill Allombert
On Fri, Jan 13, 2006 at 03:57:57PM -0500, Joey Hess wrote:
 Bill Allombert wrote:
   Although sarge's aptitude did..
  
  I don't know, there were no ways to upgrade to sarge's aptitude.
 
 The bug log contains a log of astronut doing the upgrade with sarge's
 aptitude..

Yes, but only after having run 'aptitude install aptitude perl'
with woody aptitude which did:
56 packages upgraded, 64 newly installed, 5 to remove and 547 not upgraded.
which was a non trivial upgrade.

So sarge aptitude was actually running on a smaller set of packages
where the perl modules cicular-dep was no more present.

Cheers,
-- 
Bill. [EMAIL PROTECTED]

Imagine a large red swirl here.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Getting rid of circular dependencies, stage 3

2006-01-12 Thread Tollef Fog Heen
* Joe Smith 

| Joey Hess [EMAIL PROTECTED] wrote in message
| news:[EMAIL PROTECTED]
|
|  Joey Hess [EMAIL PROTECTED]
|   debconf
|   debconf-english
|   debconf-i18n
| 
| These are all necessary, and debconf is an essential package which is
| not subject to the circular dependency postinst ordering problems afaik.
|
| Well, I'm not sure if that is an excuse for violating policy.

Essential: yes packages must work while unconfigured, so they won't be
bitten by the bug in question here.

-- 
Tollef Fog Heen,''`.
UNIX is user friendly, it's just picky about who its friends are  : :' :
  `. `' 
`-  


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Getting rid of circular dependencies, stage 3

2006-01-12 Thread Josselin Mouette
Le jeudi 12 janvier 2006 à 01:49 +0100, Jeroen van Wolffelaar a écrit :
  At the very least, I think they should be treated like pre-depends, with
  a request on this list being mandatory before adding a circular
  dependency. Until now, all circular dependencies cases I have met were
  fixable. At first, some of them looked necessary and they required quite
  some work, but they were fixable.
 
 You know when you're adding a pre-depends. You're typing the word
 Pre-Depends in a debian/control file.
 
 You don't know when you're introducing a circular depends that easily,
 and it could be either of the packages in the circle that shouldn't have
 such a depends, not necessarily the last one that closed the circle
 should change.

Sure, and I agree Bill's checks should go on. However, looking at the
list, a vast majority of circular dependencies come from the same source
package. This could be checked e.g. by lintian.
-- 
 .''`.   Josselin Mouette/\./\
: :' :   [EMAIL PROTECTED]
`. `'[EMAIL PROTECTED]
   `-  Debian GNU/Linux -- The power of freedom



Re: Getting rid of circular dependencies, stage 3

2006-01-12 Thread Josselin Mouette
Le lundi 09 janvier 2006 à 22:15 -0500, Joey Hess a écrit :
 Bill Allombert wrote:
  Here the lists of packages involved in circular dependencies listed by
  maintainers.
 
  Joey Hess [EMAIL PROTECTED]
  debconf
  debconf-english
  debconf-i18n
 
 These are all necessary, and debconf is an essential package which is
 not subject to the circular dependency postinst ordering problems afaik.

Looking at them, I fail to see why debconf-i18n has to depend on
debconf. Wouldn't it possible to just remove this dependency?

Regards,
-- 
 .''`.   Josselin Mouette/\./\
: :' :   [EMAIL PROTECTED]
`. `'[EMAIL PROTECTED]
   `-  Debian GNU/Linux -- The power of freedom



Re: Getting rid of circular dependencies, stage 3

2006-01-12 Thread Henning Glawe
On Thu, Jan 12, 2006 at 09:01:58AM +0100, Tollef Fog Heen wrote:
 | These are all necessary, and debconf is an essential package which is
 | not subject to the circular dependency postinst ordering problems afaik.
 |
 | Well, I'm not sure if that is an excuse for violating policy.
 
 Essential: yes packages must work while unconfigured, so they won't be
 bitten by the bug in question here.

They could be bitten by this bug. Or speaking more accurately: they can make 
apt be bitten by this bug. The problem is not that they are not working; the
problem is that apt breaks lists of to-be-configured packages at arbitrary
points, which depend only on the list length; while dpkg can only handle
circular dependencies if all elements of the circular dependency are passed
to it at the same time.

To illustrate the scenario:
- Package A depends on package B, which in turn depends on A
  0) User calls 'apt-get install long-list-of-packages1 A B
 long-list-of-packages2':
  1) apt splits the whole list into smaller parts after sorting by dependency
 where, in case this bug occurs:
   part1=long-list-of-packages3 A
   part2=B long-list-of-packages4
  2) apt calls 'dpkg --unpack' for each element of part1 and part2
 == so far no problem ==
  3) apt calls 'dpkg --configure part1' and 'dpkg --configure part2'
 where the first step already fails, because B is not in
 part1, but A depends on B
 == complete failure, user has to recover manually: 
a) dpkg --configure -a
b) goto 0

-- 
c u
henning


signature.asc
Description: Digital signature


Re: Getting rid of circular dependencies, stage 3

2006-01-12 Thread Bill Allombert
On Thu, Jan 12, 2006 at 09:26:26AM +0100, Josselin Mouette wrote:
 Le jeudi 12 janvier 2006 ? 01:49 +0100, Jeroen van Wolffelaar a ?crit :
   At the very least, I think they should be treated like pre-depends, with
   a request on this list being mandatory before adding a circular
   dependency. Until now, all circular dependencies cases I have met were
   fixable. At first, some of them looked necessary and they required quite
   some work, but they were fixable.
  
  You know when you're adding a pre-depends. You're typing the word
  Pre-Depends in a debian/control file.
  
  You don't know when you're introducing a circular depends that easily,
  and it could be either of the packages in the circle that shouldn't have
  such a depends, not necessarily the last one that closed the circle
  should change.
 
 Sure, and I agree Bill's checks should go on. However, looking at the
 list, a vast majority of circular dependencies come from the same source
 package. This could be checked e.g. by lintian.

This is lintian wishlist item #316283.

Cheers,
-- 
Bill. [EMAIL PROTECTED]

Imagine a large red swirl here.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Getting rid of circular dependencies, stage 3

2006-01-12 Thread Stepan Golosunov
On Thu, Jan 12, 2006 at 09:30:56AM +0100, Josselin Mouette wrote:
 Le lundi 09 janvier 2006 à 22:15 -0500, Joey Hess a écrit :
  Bill Allombert wrote:
   Here the lists of packages involved in circular dependencies listed by
   maintainers.
  
   Joey Hess [EMAIL PROTECTED]
 debconf
 debconf-english
 debconf-i18n
  
  These are all necessary, and debconf is an essential package which is
  not subject to the circular dependency postinst ordering problems afaik.
 
 Looking at them, I fail to see why debconf-i18n has to depend on
 debconf.

Because /usr/share/doc/debconf-i18n is a symlink?


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Getting rid of circular dependencies, stage 3

2006-01-12 Thread Robert Lemmen
On Thu, Jan 12, 2006 at 09:12:27PM +0400, Stepan Golosunov wrote:
  Looking at them, I fail to see why debconf-i18n has to depend on
  debconf.
 
 Because /usr/share/doc/debconf-i18n is a symlink?

perhaps the link should be the other way round. for example the most
common package split would be something like:
foo --depends-- foo-common
if you want one doc dir for it, then of course the real directory has to
be in foo-common, and the link in foo.

cu  robert

-- 
Robert Lemmen   http://www.semistable.com 


signature.asc
Description: Digital signature


Re: Getting rid of circular dependencies, stage 3

2006-01-12 Thread Bill Allombert
On Wed, Jan 11, 2006 at 09:34:27PM -0500, Joey Hess wrote:
  I cannot point you exactly why _this_ circular dependency is going to 
  be a problem, no.
  However I can point you to bug #310490 which show a woody system that
  could not be upgraded to sarge without removing most of KDE.
 
 I've read that bug before and I appreciate the time you've spent in
 chasing down these upgrade issues but I think you're generalising too
 far from that bug to a conclusion that any given trivial dependency loop
 will cause similar problems.
 
  and that apt was not able to deal with that optimally.  In the end we 
  were not able to fix the problem, because we could not fix woody and
  sarge apt did not fare better anyway.
 
 Although sarge's aptitude did..

I don't know, there were no ways to upgrade to sarge's aptitude.

  The situation is too complex to
  expect the software to make the optimal solution of what should be
  removed to allow upgrade.
 
 I'm not so sure, have you seen the work that's been done recently on
 aptitude's problem resolver?

After sarge released ? no. However the upgrade path of aptitude itself
is problematic. We should probably provide a statically linked 
(at least the C++ libs) to ease upgrade.

In my current sarge to etch upgrade test, I installed the first 1000
packages by alphabetic order (minus conflicts, plus dependencies)
and tried to upgrade. aptitude dist-upgrade give:
The following packages will be REMOVED:
  abiword-doc acl2 acl2-books acl2-emacs acl2-infix akregator-i18n 
  akregator-konq-plugin akregator-kontact-plugin alex alsa-headers amarok 
  amarok-arts amarok-engines amarok-gstreamer amarok-xine aqsis aqsis-libs 
  aqsis-libs-dev ardour-gtk aspell-bin aspell-br aspell-cy aspell-da 
  aspell-de aspell-de-alt aspell-el aspell-en aspell-es aspell-fi aspell-fo 
  aspell-fr aspell-ga aspell-gl-minimos aspell-is aspell-it aspell-lt 
  aspell-nl aspell-no aspell-pl aspell-pt aspell-pt-br aspell-sk aspell-sl 
  aspell-sv aspell-tl aspell-ukr axiom axiom-graphics axiom-hypertex 
  axiom-test basket beecrypt2 beecrypt2-dev bibletime bibletime-i18n 
  bitscope brahms capplets castle-combat-data caudium-pixsl cduce g77-3.3 
  gdk-imlib1-dev ghc5 jackd kdelibs4 lam4 libafterstep0 libaiksaurus-data 
  libaiksaurus0c102 libaiksaurusgtk0c102 libardour0 libarkrpg libarts1 
  libclalsadrv libconfigwin-ocaml-dev libcurl3-dev libenchant1 libfam0c102 
  libfltk1.1c102 libgengameng4 libglibmm-2.4-1 libgmp3 
  libgpattern-ocaml-dev libgtkmm-2.4-1 libgtkmm1.2-0 libgtkmmext0 
  libgtop2-2 libid3-3.8.3 libjack0.80.0-dev libkcal2a libkdenetwork2 
  libkdepim1 liblablgtk-ocaml liblablgtk-ocaml-dev libmagick++6 
  libmlchat-ocaml-dev libmodplug0 libmpich1.0 libmyspell3 
  libocamlcvs-ocaml-dev libokey-ocaml-dev libopenexr2 liboptions-ocaml-dev 
  libopts9 libopts9-dev libosp4 libostyle1 libplot2 libpstoedit0 
  libqt3c102-mt libreport-ocaml-dev libsigc++-2.0-0 libsoundtouch1 libsp1 
  libtag1 libtiffxx0 libwpd-stream8 libwpd8 mlchat ocaml-ioxml ocaml-omom 
  ocaml-zoggy odbcinst1 
After unpacking 150MB will be freed.
This look like a bit much.
(actually aptitude while try to remove 11 packages more than apt-get).
Simply upgrading aptitude cause adduser-ng to be removed.

  So maybe it is not a bug in the uqm package specifically, but it is still 
  a problem for Debian in the big picture. 
 
 Filing scattershot but reports with no useful justifications might
 result in enough people going ahead and making changes to make it seem
 worth your time to do so, on the presumption that one of the changes
 will avoid some real problem, but please realize that you run the risk
 of annoying people when you do it.

For that reason I only reported one single bug by maintainers, unless when
maintainers asked me to do otherwise. My experience is that reporting
bugs always annoy people and that the price to pay to do quality
assurance. 

However, that is a fair remark. I decided to go ahead because circular
deps have others drawback so I am not completly wasting everybody time

Do you have other ideas how we can provide smooth sarge to etch upgrade ?

I am not happy with the woody to sarge upgrade path. I did test months
before the freeze but there was simply too much flux in testing to be
conclusive. When sarge finally freeze, upgrade tests got much smoother
(and reproducible) but there was not enough time to really fix the 
issues.

Now, I am experimenting with new kind of tests but transforming the raw
results to useful advices to improve the upgrade path is not obvious.

Cheers,
-- 
Bill. [EMAIL PROTECTED]

Imagine a large red swirl here.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Getting rid of circular dependencies, stage 3

2006-01-12 Thread Steve Langasek
On Thu, Jan 12, 2006 at 11:49:14AM -0600, Bill Allombert wrote:
 On Wed, Jan 11, 2006 at 09:34:27PM -0500, Joey Hess wrote:
   I cannot point you exactly why _this_ circular dependency is going to 
   be a problem, no.
   However I can point you to bug #310490 which show a woody system that
   could not be upgraded to sarge without removing most of KDE.

  I've read that bug before and I appreciate the time you've spent in
  chasing down these upgrade issues but I think you're generalising too
  far from that bug to a conclusion that any given trivial dependency loop
  will cause similar problems.

   and that apt was not able to deal with that optimally.  In the end we 
   were not able to fix the problem, because we could not fix woody and
   sarge apt did not fare better anyway.

  Although sarge's aptitude did..

 I don't know, there were no ways to upgrade to sarge's aptitude.

   The situation is too complex to
   expect the software to make the optimal solution of what should be
   removed to allow upgrade.

  I'm not so sure, have you seen the work that's been done recently on
  aptitude's problem resolver?

 After sarge released ? no. However the upgrade path of aptitude itself
 is problematic. We should probably provide a statically linked 
 (at least the C++ libs) to ease upgrade.

 In my current sarge to etch upgrade test, I installed the first 1000
 packages by alphabetic order (minus conflicts, plus dependencies)
 and tried to upgrade. aptitude dist-upgrade give:
 The following packages will be REMOVED:
   abiword-doc acl2 acl2-books acl2-emacs acl2-infix akregator-i18n 
   akregator-konq-plugin akregator-kontact-plugin alex alsa-headers amarok 
   amarok-arts amarok-engines amarok-gstreamer amarok-xine aqsis aqsis-libs 
   aqsis-libs-dev ardour-gtk aspell-bin aspell-br aspell-cy aspell-da 
   aspell-de aspell-de-alt aspell-el aspell-en aspell-es aspell-fi aspell-fo 
   aspell-fr aspell-ga aspell-gl-minimos aspell-is aspell-it aspell-lt 
   aspell-nl aspell-no aspell-pl aspell-pt aspell-pt-br aspell-sk aspell-sl 
   aspell-sv aspell-tl aspell-ukr axiom axiom-graphics axiom-hypertex 
   axiom-test basket beecrypt2 beecrypt2-dev bibletime bibletime-i18n 
   bitscope brahms capplets castle-combat-data caudium-pixsl cduce g77-3.3 
   gdk-imlib1-dev ghc5 jackd kdelibs4 lam4 libafterstep0 libaiksaurus-data 
   libaiksaurus0c102 libaiksaurusgtk0c102 libardour0 libarkrpg libarts1 
   libclalsadrv libconfigwin-ocaml-dev libcurl3-dev libenchant1 libfam0c102 
   libfltk1.1c102 libgengameng4 libglibmm-2.4-1 libgmp3 
   libgpattern-ocaml-dev libgtkmm-2.4-1 libgtkmm1.2-0 libgtkmmext0 
   libgtop2-2 libid3-3.8.3 libjack0.80.0-dev libkcal2a libkdenetwork2 
   libkdepim1 liblablgtk-ocaml liblablgtk-ocaml-dev libmagick++6 
   libmlchat-ocaml-dev libmodplug0 libmpich1.0 libmyspell3 
   libocamlcvs-ocaml-dev libokey-ocaml-dev libopenexr2 liboptions-ocaml-dev 
   libopts9 libopts9-dev libosp4 libostyle1 libplot2 libpstoedit0 
   libqt3c102-mt libreport-ocaml-dev libsigc++-2.0-0 libsoundtouch1 libsp1 
   libtag1 libtiffxx0 libwpd-stream8 libwpd8 mlchat ocaml-ioxml ocaml-omom 
   ocaml-zoggy odbcinst1 
 After unpacking 150MB will be freed.
 This look like a bit much.
 (actually aptitude while try to remove 11 packages more than apt-get).
 Simply upgrading aptitude cause adduser-ng to be removed.

What does aptitude give as the breakdown between unused packages being
automatically removed, and packages being removed that you actually
requested installed?

In spite of the large number of packages removed, almost all of these are
packages that are not in etch...  From a-c, only these packages are in your
removal list and also in testing at present:  ardour-gtk aspell-br aspell-cy
aspell-da aspell-de aspell-de-alt aspell-el aspell-en aspell-es aspell-fi
aspell-fr aspell-ga aspell-gl-minimos aspell-is aspell-it aspell-lt
aspell-nl aspell-no aspell-pl aspell-pt aspell-pt-br aspell-sk aspell-sl
aspell-sv aspell-ukr bitscope caudium-pixsl

So, counting the aspell issue as one, that looks like a total of 4 upgrade
problems.  Which is four too many, but not as bad as it looks based on the
output alone. :)

-- 
Steve Langasek   Give me a lever long enough and a Free OS
Debian Developer   to set it on, and I can move the world.
[EMAIL PROTECTED]   http://www.debian.org/


signature.asc
Description: Digital signature


Re: Getting rid of circular dependencies, stage 3

2006-01-12 Thread Bill Allombert
 What does aptitude give as the breakdown between unused packages being
 automatically removed, and packages being removed that you actually
 requested installed?

Well I did not install any packages through aptitude.

The numbers of packages below the lines
The following packages will be automatically REMOVED:
and
The following packages will be REMOVED:
are the same.

 In spite of the large number of packages removed, almost all of these are
 packages that are not in etch...  From a-c, only these packages are in your
 removal list and also in testing at present:  ardour-gtk aspell-br aspell-cy
 aspell-da aspell-de aspell-de-alt aspell-el aspell-en aspell-es aspell-fi
 aspell-fr aspell-ga aspell-gl-minimos aspell-is aspell-it aspell-lt
 aspell-nl aspell-no aspell-pl aspell-pt aspell-pt-br aspell-sk aspell-sl
 aspell-sv aspell-ukr bitscope caudium-pixsl
 
 So, counting the aspell issue as one, that looks like a total of 4 upgrade
 problems.  Which is four too many, but not as bad as it looks based on the
 output alone. :)

Well, that, and why I still cannot deal with aptitude.
Thanks for you review!

Cheers,
Bill.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Getting rid of circular dependencies, stage 3

2006-01-11 Thread Henning Glawe
On Mon, Jan 09, 2006 at 10:15:58PM -0500, Joey Hess wrote:
 These are all necessary, and debconf is an essential package which is
 not subject to the circular dependency postinst ordering problems afaik.
 [...]
 The bug report for these does not give any concrete reasons why a
 circular dependency is a problem in this particular case.

every circular dependency is a problem: the apt-dpkg-combo blows up as soon
as apt splits the to-be-configured list for dpkg between the elements of a
circular dependency.
this happens, if apt is processing many packages at the same time, e.g. when
run from an automatic installer like FAI (whose install_packages script has
been equipped with a only-feed-N-packages-at-the-same-time-into-apt
workarouns) or when doing a dist-upgrade between two debian releases on a
machine with 'many' packages installed.

conclusion: we have two possibilities
a) explicitely forbid circular dependencies in policy
b) explicitely allow them and enhance APT. a long time ago, O(2years), I
   wrote a hack to let apt and dpkg communicate via a pipe using 
   dpkg's command-fd option; it was rejected at that time because the apt
   maintainers wanted to switch to a kind of libdpkg.
   Any news on this solution?

-- 
c u
henning


signature.asc
Description: Digital signature


Re: Getting rid of circular dependencies, stage 3

2006-01-11 Thread Josselin Mouette
Le mercredi 11 janvier 2006 à 10:10 +0100, Henning Glawe a écrit :
 a) explicitely forbid circular dependencies in policy

At the very least, I think they should be treated like pre-depends, with
a request on this list being mandatory before adding a circular
dependency. Until now, all circular dependencies cases I have met were
fixable. At first, some of them looked necessary and they required quite
some work, but they were fixable.

Regards,
-- 
 .''`.   Josselin Mouette/\./\
: :' :   [EMAIL PROTECTED]
`. `'[EMAIL PROTECTED]
   `-  Debian GNU/Linux -- The power of freedom



Re: Getting rid of circular dependencies, stage 3

2006-01-11 Thread Henning Glawe
On Wed, Jan 11, 2006 at 11:15:35AM +0100, Josselin Mouette wrote:
 Le mercredi 11 janvier 2006 à 10:10 +0100, Henning Glawe a écrit :
  a) explicitely forbid circular dependencies in policy
 
 At the very least, I think they should be treated like pre-depends, with
 a request on this list being mandatory before adding a circular
 dependency. Until now, all circular dependencies cases I have met were

we should _only_ allow circular deps when apt handles them. otherwise they
should be forbidden.
the problems caused by this breakage are of cause fixable if you are running
apt interactively and you know how to work around this problems (i.e. running
apt with manually splitted package lists). but this causes a lot of trouble
and is unusable in the non-interactive case.

a simple fix for apt would be to run 'dpkg --configure --pending' to catch
all the unpacked-but-not-configured packages instead of
'dpkg --configure some-part-of-a-list' explicitely.

-- 
c u
henning


signature.asc
Description: Digital signature


Re: Getting rid of circular dependencies, stage 3

2006-01-11 Thread Adrian von Bidder
On Monday 09 January 2006 19:20, Bill Allombert wrote:
 Here the lists of packages involved in circular dependencies listed by
 maintainers.

Just wondering why this wasn't mentioned yet:  aren't circular dependencies 
causing more work for RM's, too, because the testing migration script can't 
handle dependencies loops autmatically in some/most/all cases?

From a graph algorithm point of view, if I'm not very mistaken, dependencies 
being guaranteed to be a directed graph instead of a generic graph should 
allow some simplifications/efficiency improvements in apt and other tools, 
too.

cheers
-- vbi

-- 
Computers can never replace human stupidity.


pgpSlYEBvlopx.pgp
Description: PGP signature


Re: Getting rid of circular dependencies, stage 3

2006-01-11 Thread Bill Allombert
On Mon, Jan 09, 2006 at 10:15:58PM -0500, Joey Hess wrote:
 Bill Allombert wrote:
  Here the lists of packages involved in circular dependencies listed by
  maintainers.
 
  Joey Hess [EMAIL PROTECTED]
  debconf
  debconf-english
  debconf-i18n
 
 These are all necessary, and debconf is an essential package which is
 not subject to the circular dependency postinst ordering problems afaik.
 
 (You also never filed any bugs on these.)

Is it a request I report one ? I will if you want.

  uqm
  uqm-content
 
 The bug report for these does not give any concrete reasons why a
 circular dependency is a problem in this particular case.

I cannot point you exactly why _this_ circular dependency is going to 
be a problem, no.
However I can point you to bug #310490 which show a woody system that
could not be upgraded to sarge without removing most of KDE.
This could be reproduced by install the following package on clean
woody chroot:
konqueror aptitude libqt3 libhtml-tree-perl libapt-pkg-perl libft-perl

The analysis show that the problem was that in _woody_:
1) libqt3 has a circular dependency with libqt3-mt.
2) libhtml-tree-perl has a circular dependency with libwww-perl.

and that apt was not able to deal with that optimally.  In the end we 
were not able to fix the problem, because we could not fix woody and
sarge apt did not fare better anyway. The situation is too complex to
expect the software to make the optimal solution of what should be
removed to allow upgrade.

As the woody-to-sarge has shown we do not have enough time to fix the
upgrade problem during the freeze and testing is too much in a flux to 
track them outside a freeze. The solution I propose is to do upgrade 
tests regularly and simplify the dependencies. Some of the most severe
issues in the woody-to-sarge upgrade were due to circular dependencies
in _woody_. The fact we cannot fix problems in stable imply we have to
be careful to not introduce potential issues that will come back to
hit us.

So maybe it is not a bug in the uqm package specifically, but it is still 
a problem for Debian in the big picture. 

If you have better suggestions how we can provide smooth upgrade between 
stable releases without a six month freeze, I will be happy to work on
them. I am running a large scale upgrade test just now.

Cheers,
-- 
Bill. [EMAIL PROTECTED]

Imagine a large red swirl here.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Getting rid of circular dependencies, stage 3

2006-01-11 Thread Jeroen van Wolffelaar
On Wed, Jan 11, 2006 at 11:15:35AM +0100, Josselin Mouette wrote:
 Le mercredi 11 janvier 2006 à 10:10 +0100, Henning Glawe a écrit :
  a) explicitely forbid circular dependencies in policy
 
 At the very least, I think they should be treated like pre-depends, with
 a request on this list being mandatory before adding a circular
 dependency. Until now, all circular dependencies cases I have met were
 fixable. At first, some of them looked necessary and they required quite
 some work, but they were fixable.

You know when you're adding a pre-depends. You're typing the word
Pre-Depends in a debian/control file.

You don't know when you're introducing a circular depends that easily,
and it could be either of the packages in the circle that shouldn't have
such a depends, not necessarily the last one that closed the circle
should change.

Now, I agree they should be avoided where possible. But I'm afraid that
needs to happen by having skilled people having dealt with similar
issues before detecting them by running repository-wide dependency
analysis on a regular basis, and then advising how to fix it. This
happens to be what's happing now, actually. It'd be nice if QA's
debcheck could be extended to detect circular dependencies and list
them. Let's start by filing a wishlist bug on qa.debian.org for that :).

#347676

--Jeroen

-- 
Jeroen van Wolffelaar
[EMAIL PROTECTED] (also for Jabber  MSN; ICQ: 33944357)
http://Jeroen.A-Eskwadraat.nl


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Getting rid of circular dependencies, stage 3

2006-01-11 Thread Joey Hess
Bill Allombert wrote:
 Is it a request I report one ? I will if you want.

Shrug, I can ignore useless bug reports and/or orphan packages when
things get too annoying with the best of them.

(Hmm, didn't I already do that?)

 I cannot point you exactly why _this_ circular dependency is going to 
 be a problem, no.
 However I can point you to bug #310490 which show a woody system that
 could not be upgraded to sarge without removing most of KDE.

I've read that bug before and I appreciate the time you've spent in
chasing down these upgrade issues but I think you're generalising too
far from that bug to a conclusion that any given trivial dependency loop
will cause similar problems.

 and that apt was not able to deal with that optimally.  In the end we 
 were not able to fix the problem, because we could not fix woody and
 sarge apt did not fare better anyway.

Although sarge's aptitude did..

 The situation is too complex to
 expect the software to make the optimal solution of what should be
 removed to allow upgrade.

I'm not so sure, have you seen the work that's been done recently on
aptitude's problem resolver?

 So maybe it is not a bug in the uqm package specifically, but it is still 
 a problem for Debian in the big picture. 

Filing scattershot but reports with no useful justifications might
result in enough people going ahead and making changes to make it seem
worth your time to do so, on the presumption that one of the changes
will avoid some real problem, but please realize that you run the risk
of annoying people when you do it.

-- 
see shy jo


signature.asc
Description: Digital signature


Re: Getting rid of circular dependencies, stage 3

2006-01-10 Thread Joe Smith


Joey Hess [EMAIL PROTECTED] wrote in message 
news:[EMAIL PROTECTED]



Joey Hess [EMAIL PROTECTED]
 debconf
 debconf-english
 debconf-i18n


These are all necessary, and debconf is an essential package which is
not subject to the circular dependency postinst ordering problems afaik.


Well, I'm not sure if that is an excuse for violating policy.
(Actually apt is the one violating policy, but if apt did work as policy 
states it should these packages [like all other packages with circular 
dependencies]
would be uninstallable, which as debconf is essential, would probably be a 
critical priority bug.)





--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Getting rid of circular dependencies, stage 3

2006-01-09 Thread Andreas Tille

On Mon, 9 Jan 2006, Bill Allombert wrote:


Andreas Tille [EMAIL PROTECTED]
wordnet
wordnet-base


A new version of WordNet was uploaded just yesterday to experimental.
It also solves this issue but there is something wrong with the
dict-wn:

http://lists.debian.org/debian-devel/2006/01/msg00417.html

Once this is solved the circular dependency issue will be solved in
Etch.

Kind regards

  Andreas.

--
http://fam-tille.de


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Getting rid of circular dependencies, stage 3

2006-01-09 Thread Simon Huggins
On Mon, Jan 09, 2006 at 07:20:46PM +0100, Bill Allombert wrote:
 Debian Xfce Maintainers [EMAIL PROTECTED]
   xfce4-mixer
   xfce4-mixer-alsa
   xfce4-mixer-oss

Can you remind me why circular dependencies are so terrible?

These packages install fine and upgraded fine.  What did we miss?

-- 
Simon Huggins  \ If at first you don't succeed, you'll get lots of advice.
\
http://www.earth.li/~huggie/htag.pl 0.0.22


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Getting rid of circular dependencies, stage 3

2006-01-09 Thread Lars Wirzenius
ma, 2006-01-09 kello 21:15 +, Simon Huggins kirjoitti:
 On Mon, Jan 09, 2006 at 07:20:46PM +0100, Bill Allombert wrote:
  Debian Xfce Maintainers [EMAIL PROTECTED]
  xfce4-mixer
  xfce4-mixer-alsa
  xfce4-mixer-oss
 
 Can you remind me why circular dependencies are so terrible?
 
 These packages install fine and upgraded fine.  What did we miss?

One things, if I've understood things correctly, is that it is not
possible to reliably know how they're going to be removed -- dpkg will
break the circle in a random place and this may or may not result in
problems at the removal stage, depending on what the package does when
being removed in various scenarios. Without circular dependencies,
things are simpler and easier, since things happen in more deterministic
ways.

I don't know if that is sufficient reason to get rid of circular
dependencies.

-- 
On IRC, we sometimes like to watch silence.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Getting rid of circular dependencies, stage 3

2006-01-09 Thread Henning Glawe
On Tue, Jan 10, 2006 at 01:17:38AM +0200, Lars Wirzenius wrote:
 One things, if I've understood things correctly, is that it is not
 possible to reliably know how they're going to be removed -- dpkg will
 break the circle in a random place and this may or may not result in

the problems occur when apt processes long lists of packages, and more
specifically in the 'configure' stage.
dpkg has only partly to do with this; the problem is in APT and the way it
controls dpkg: due to a limited command line length, apt can only call dpkg
with a certain number of packages on the same time.
dpkg can handle circular dependencies fine as long as both 'ends' are fed in
at the same time.
but, at least the last time I checked the apt source, apt doesn't check 
for this condition when splitting the to-be-configured list and passing these
chunks to dpkg.
the last hack made by the apt people was to increase the length of these
chunks (which decreases the probability of the bugs invokation).

well, now people may say: who ever feeds so many packages into apt at the same
time? - answer: try an 'apt-get dist-upgrade' from woody to sarge...

 I don't know if that is sufficient reason to get rid of circular
 dependencies.
well, everything that makes package management tasks _interactive_ is a major
showstopper for use in bigger installations (hpc clusters, enterprise 
desktops).


ok. 'nuff ranted. 

-- 
c u
henning


signature.asc
Description: Digital signature


Re: Getting rid of circular dependencies, stage 3

2006-01-09 Thread Hamish Moffatt
On Tue, Jan 10, 2006 at 12:43:19AM +0100, Henning Glawe wrote:
 On Tue, Jan 10, 2006 at 01:17:38AM +0200, Lars Wirzenius wrote:
  One things, if I've understood things correctly, is that it is not
  possible to reliably know how they're going to be removed -- dpkg will
  break the circle in a random place and this may or may not result in
 
 the problems occur when apt processes long lists of packages, and more
 specifically in the 'configure' stage.
 dpkg has only partly to do with this; the problem is in APT and the way it
 controls dpkg: due to a limited command line length, apt can only call dpkg
 with a certain number of packages on the same time.
 dpkg can handle circular dependencies fine as long as both 'ends' are fed in
 at the same time.
 but, at least the last time I checked the apt source, apt doesn't check 
 for this condition when splitting the to-be-configured list and passing these
 chunks to dpkg.

Shouldn't apt be fixed rather than changing other packages, then?


Hamish
-- 
Hamish Moffatt VK3SB [EMAIL PROTECTED] [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Getting rid of circular dependencies, stage 3

2006-01-09 Thread Joey Hess
Bill Allombert wrote:
 Here the lists of packages involved in circular dependencies listed by
 maintainers.

 Joey Hess [EMAIL PROTECTED]
   debconf
   debconf-english
   debconf-i18n

These are all necessary, and debconf is an essential package which is
not subject to the circular dependency postinst ordering problems afaik.

(You also never filed any bugs on these.)

   uqm
   uqm-content

The bug report for these does not give any concrete reasons why a
circular dependency is a problem in this particular case.

-- 
see shy jo, if it's not broken ..


signature.asc
Description: Digital signature


Re: Getting rid of circular dependencies, stage 3

2006-01-09 Thread Steve Langasek
On Tue, Jan 10, 2006 at 11:42:49AM +1100, Hamish Moffatt wrote:
 On Tue, Jan 10, 2006 at 12:43:19AM +0100, Henning Glawe wrote:
  On Tue, Jan 10, 2006 at 01:17:38AM +0200, Lars Wirzenius wrote:
   One things, if I've understood things correctly, is that it is not
   possible to reliably know how they're going to be removed -- dpkg will
   break the circle in a random place and this may or may not result in

  the problems occur when apt processes long lists of packages, and more
  specifically in the 'configure' stage.
  dpkg has only partly to do with this; the problem is in APT and the way it
  controls dpkg: due to a limited command line length, apt can only call dpkg
  with a certain number of packages on the same time.
  dpkg can handle circular dependencies fine as long as both 'ends' are fed in
  at the same time.
  but, at least the last time I checked the apt source, apt doesn't check 
  for this condition when splitting the to-be-configured list and passing 
  these
  chunks to dpkg.

 Shouldn't apt be fixed rather than changing other packages, then?

What does fixed mean here?  The behavior of circular dependencies is
undefined in policy, and must be so, because two packages cannot (in this
universe) each be configured before the other.  If you can solve this
problem, then it makes sense to talk about fixing apt instead of fixing
the packages, but not before then.

-- 
Steve Langasek   Give me a lever long enough and a Free OS
Debian Developer   to set it on, and I can move the world.
[EMAIL PROTECTED]   http://www.debian.org/


signature.asc
Description: Digital signature