FS#7229 - pacman installs packages in wrong order

Attached to Project: Pacman
Opened by héctor (hacosta) - Monday, 21 May 2007, 20:06 GMT
Last edited by Dan McGee (toofishes) - Friday, 09 November 2007, 13:09 GMT
Task Type Bug Report
Category General
Status Closed
Assigned To Aaron Griffin (phrakture)
Dan McGee (toofishes)
Architecture All
Severity High
Priority Normal
Reported Version 3.0.4
Due in Version 3.1.0
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

democracy player won't start
i get this
File "/usr/bin/democracyplayer", line 21, in <module>
import gtcache
File "/usr/lib/python2.5/site-packages/democracy/gtcache.py", line 5, in <module>
import config
File "/usr/lib/python2.5/site-packages/democracy/config.py", line 8, in <module>
import eventloop
File "/usr/lib/python2.5/site-packages/democracy/eventloop.py", line 17, in <module>
import database
File "database.pyx", line 13, in database
ImportError: libboost_python.so.1.33.1: cannot open shared object file: No such file or directory

and there's another issue.. if gconf is not installed befor democracyplayer, pacman spits out errors..

----without gconf installed----

( 4/17) installing libgnome [-----------------------------------------------] 100%
/var/lib/pacman/local/libgnome-2.18.0-2/install: line 4: usr/bin/gconftool-2: No such file or directory
/var/lib/pacman/local/libgnome-2.18.0-2/install: line 4: usr/bin/gconftool-2: No such file or directory
( 5/17) installing libbonoboui [-----------------------------------------------] 100%


---whith gconf installed ---
well no need to paste anything, there's no error
This task depends upon

This task blocks these from closing
 FS#8109 - Pacman 3.1 Release Roadmap 
Closed by  Dan McGee (toofishes)
Friday, 09 November 2007, 13:09 GMT
Reason for closing:  Fixed
Additional comments about closing:  Fixed in GIT, new sorting methods improve this stuff.
Comment by Jan de Groot (JGC) - Monday, 21 May 2007, 21:42 GMT
The first part of your bug is because the package needs a rebuild for boost. The 2nd one is something I need more output from:
what was installed in 1-3 of your install step for pacman? I guess it's gconf, gnome-vfs and libbonobo, but I'm not sure. I wonder why the postinstall from libgnome can't find gconftool-2 then, as it is installed before that.
Comment by héctor (hacosta) - Tuesday, 22 May 2007, 05:56 GMT
ok, here's the complete output.. you need anything else let me know
-------------------------------------------------------------------------------------------------------------------
[root@alcachofa hacosta]# pacman -S democracy
resolving dependencies... done.
looking for inter-conflicts... done.

Targets: boost-1.34.0-1 orbit2-2.14.7-2 pyorbit-2.14.2-1 libgnome-2.18.0-2 libbonoboui-2.18.0-2
gnome-keyring-0.8.1-2 libgnomeui-2.18.1-2 gnome-python-2.18.2-1 gnome-python-extras-2.14.3-1
dbus-python-0.80.2-1 pyrex-0.9.4.1-2 xulrunner-1.8.1.3-1 democracy-0.9.5.3-5
gconf-2.18.0.1-3 gnome-mime-data-2.18.0-3 gnome-vfs-2.18.1-1 libbonobo-2.18.0-2

Total Package Size: 34.41 MB

Proceed with installation? [Y/n]
checking package integrity... done.
cleaning up... done.
(17/17) checking for file conflicts [-----------------------------------------------] 100%
( 1/17) installing boost [-----------------------------------------------] 100%
( 2/17) installing orbit2 [-----------------------------------------------] 100%
( 3/17) installing pyorbit [-----------------------------------------------] 100%
( 4/17) installing libgnome [-----------------------------------------------] 100%
/var/lib/pacman/local/libgnome-2.18.0-2/install: line 4: usr/bin/gconftool-2: No such file or directory
/var/lib/pacman/local/libgnome-2.18.0-2/install: line 4: usr/bin/gconftool-2: No such file or directory
( 5/17) installing libbonoboui [-----------------------------------------------] 100%
( 6/17) installing gnome-keyring [-----------------------------------------------] 100%
( 7/17) installing libgnomeui [-----------------------------------------------] 100%
( 8/17) installing gnome-python [-----------------------------------------------] 100%
( 9/17) installing gnome-python-extras [-----------------------------------------------] 100%
(10/17) installing dbus-python [-----------------------------------------------] 100%
(11/17) installing pyrex [-----------------------------------------------] 100%
(12/17) installing xulrunner [-----------------------------------------------] 100%
(13/17) installing democracy [-----------------------------------------------] 100%
(14/17) installing gconf [-----------------------------------------------] 100%
(15/17) installing gnome-mime-data [-----------------------------------------------] 100%
(16/17) installing gnome-vfs [-----------------------------------------------] 100%
(17/17) installing libbonobo [-----------------------------------------------] 100%
[root@alcachofa hacosta]# pacman -Rscn democracy
checking dependencies... done.

Targets: gnome-mime-data gconf libbonobo gnome-vfs democracy xulrunner pyrex dbus-python
gnome-python-extras gnome-python libgnomeui gnome-keyring libbonoboui libgnome pyorbit
orbit2 boost

Do you want to remove these packages? [Y/n]

( 1/17) removing gnome-mime-data [-----------------------------------------------] 100%
( 2/17) removing gconf [-----------------------------------------------] 100%
( 3/17) removing libbonobo [-----------------------------------------------] 100%
/var/lib/pacman/local/gnome-vfs-2.18.1-1/install: line 25: usr/bin/gconftool-2: No such file or directory
/var/lib/pacman/local/gnome-vfs-2.18.1-1/install: line 25: usr/bin/gconftool-2: No such file or directory
( 4/17) removing gnome-vfs [-----------------------------------------------] 100%
( 5/17) removing democracy [-----------------------------------------------] 100%
( 6/17) removing xulrunner [-----------------------------------------------] 100%
( 7/17) removing pyrex [-----------------------------------------------] 100%
( 8/17) removing dbus-python [-----------------------------------------------] 100%
( 9/17) removing gnome-python-extras [-----------------------------------------------] 100%
(10/17) removing gnome-python [-----------------------------------------------] 100%
(11/17) removing libgnomeui [-----------------------------------------------] 100%
(12/17) removing gnome-keyring [-----------------------------------------------] 100%
(13/17) removing libbonoboui [-----------------------------------------------] 100%
/var/lib/pacman/local/libgnome-2.18.0-2/install: line 25: usr/bin/gconftool-2: No such file or directory
/var/lib/pacman/local/libgnome-2.18.0-2/install: line 25: usr/bin/gconftool-2: No such file or directory
(14/17) removing libgnome [-----------------------------------------------] 100%
(15/17) removing pyorbit [-----------------------------------------------] 100%
(16/17) removing orbit2 [-----------------------------------------------] 100%
(17/17) removing boost [-----------------------------------------------] 100%
[root@alcachofa hacosta]# pacman -S gconf
resolving dependencies... done.
looking for inter-conflicts... done.

Targets: orbit2-2.14.7-2 gconf-2.18.0.1-3

Total Package Size: 1.85 MB

Proceed with installation? [Y/n]
checking package integrity... done.
cleaning up... done.
(2/2) checking for file conflicts [-----------------------------------------------] 100%
(1/2) installing orbit2 [-----------------------------------------------] 100%
(2/2) installing gconf [-----------------------------------------------] 100%
[root@alcachofa hacosta]# pacman -S democracy
resolving dependencies... done.
looking for inter-conflicts... done.

Targets: boost-1.34.0-1 pyorbit-2.14.2-1 libbonoboui-2.18.0-2 gnome-keyring-0.8.1-2
libgnomeui-2.18.1-2 gnome-python-2.18.2-1 gnome-python-extras-2.14.3-1 dbus-python-0.80.2-1
pyrex-0.9.4.1-2 xulrunner-1.8.1.3-1 democracy-0.9.5.3-5 gnome-mime-data-2.18.0-3
gnome-vfs-2.18.1-1 libbonobo-2.18.0-2 libgnome-2.18.0-2

Total Package Size: 32.56 MB

Proceed with installation? [Y/n]
checking package integrity... done.
cleaning up... done.
(15/15) checking for file conflicts [-----------------------------------------------] 100%
( 1/15) installing boost [-----------------------------------------------] 100%
( 2/15) installing pyorbit [-----------------------------------------------] 100%
( 3/15) installing libbonoboui [-----------------------------------------------] 100%
( 4/15) installing gnome-keyring [-----------------------------------------------] 100%
( 5/15) installing libgnomeui [-----------------------------------------------] 100%
( 6/15) installing gnome-python [-----------------------------------------------] 100%
( 7/15) installing gnome-python-extras [-----------------------------------------------] 100%
( 8/15) installing dbus-python [-----------------------------------------------] 100%
( 9/15) installing pyrex [-----------------------------------------------] 100%
(10/15) installing xulrunner [-----------------------------------------------] 100%
(11/15) installing democracy [-----------------------------------------------] 100%
(12/15) installing gnome-mime-data [-----------------------------------------------] 100%
(13/15) installing gnome-vfs [-----------------------------------------------] 100%
(14/15) installing libbonobo [-----------------------------------------------] 100%
(15/15) installing libgnome [-----------------------------------------------] 100%
Comment by Jan de Groot (JGC) - Tuesday, 22 May 2007, 06:02 GMT
What pacman version are we talking about now? It's clear that pacman installs packages in the wrong order here.
Comment by héctor (hacosta) - Tuesday, 22 May 2007, 06:24 GMT
3.0.4-2
Comment by Aaron Griffin (phrakture) - Tuesday, 22 May 2007, 17:44 GMT
Interesting - before I take a look at why the dep sorting is failing, JGC can you tell me what order you would expect this to install in?
Comment by Roman Kyrylych (Romashka) - Tuesday, 22 May 2007, 19:07 GMT
here is the dependency tree of some dependencies I've tracked:
democracy <- gnome-python-extras <- gnome-python <- libgnomeui <- libbonoboui <- libgnome <- libbonobo & gnome-vfs

Pacman installs gnome-vfs, libbonobo and libgnome after libbonoboui, libgnomeui and gnome-python-extras which is clear wrong behaviour.
Comment by Xavier (shining) - Sunday, 10 June 2007, 10:04 GMT
This was brought up in this thread :
http://www.archlinux.org/pipermail/pacman-dev/2007-April/008057.html

It was said that sqrt(n) steps was "good enough" in the sort algorithm, but according to this bug report, it isn't.
Using n steps give correct result, same order than Romashka indicated above.

Maybe the series of patch from Nagy here :
http://www.archlinux.org/pipermail/pacman-dev/2007-April/008135.html
would produce correct result with better performance (than current sort with n steps) ?
(I wasn't able to look at them / review them yet).
Comment by Xavier (shining) - Sunday, 10 June 2007, 10:35 GMT
I think that for now, it should at least be reverted to n steps.
In most cases, all steps aren't even needed, the sort will finish before.
For example, in this case, 8 steps were needed (on 16 targets).
So more than sqrt(n), but less than n.

n steps will be needed in the worst case though, as mentioned there :
http://www.archlinux.org/pipermail/pacman-dev/2007-April/008164.html

But I think it's always important to worry about producing correct results first,
and then worry about performance (while keeping result correct).
Comment by Dan McGee (toofishes) - Monday, 11 June 2007, 03:32 GMT
This should be fixed in GIT now that Nagy's toposort algorithm is implemented. Marking as requires testing.
Comment by Dan McGee (toofishes) - Friday, 09 November 2007, 04:21 GMT
Good to go here?
Comment by Xavier (shining) - Friday, 09 November 2007, 08:04 GMT
Yes, it's alright, I also checked it back then, and just checked it again using last comment from Romashka : running pacman -S democracy, and checking it's the same order than the one computed manually by Romashka.

Loading...