FS#6058 - pacman3 -Rd corrupts dependency tree

Attached to Project: Pacman
Opened by Roman Kyrylych (Romashka) - Friday, 22 December 2006, 19:59 GMT
Last edited by Aaron Griffin (phrakture) - Wednesday, 03 January 2007, 06:13 GMT
Task Type Bug Report
Category
Status Closed
Assigned To Aaron Griffin (phrakture)
Architecture not specified
Severity Critical
Priority Normal
Reported Version 0.7.2 Gimmick
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

pacman3 -Rd corrupts dependency tree when removing packages.
It removes dependency info from all packages that are required by removed package (but not from their required packages).
This task depends upon

Closed by  Roman Kyrylych (Romashka)
Wednesday, 03 January 2007, 21:01 GMT
Reason for closing:  Fixed
Comment by Roman Kyrylych (Romashka) - Friday, 22 December 2006, 20:00 GMT
[rk@home ~]$ sudo pacman3 -S taglib-rcc
resolving dependencies... done.
looking for inter-conflicts... done.

Targets: enca-1.9-2 librcd-0.1.8-3 librcc-0.2.3-4 taglib-rcc-1.4-3

Total Package Size: 0,6 MB

Proceed with installation? [Y/n]
checking package integrity... done.
checking for file conflicts (4/4) [#######################] 100%
(1/4) installing enca [#######################] 100%
(2/4) installing librcd [#######################] 100%
(3/4) installing librcc [#######################] 100%
-- Don't forget to install gtk or/and gtk2 packages to enable librcc
gui features
-- Also you may change /usr/bin/rcc-config symlink to switch between
gtk and gtk2 (rcc-gtk-config and rcc-gtk2-config)
(4/4) installing taglib-rcc [#######################] 100%
[rk@home ~]$
[rk@home ~]$
[rk@home ~]$
[rk@home ~]$ pacman3 -Qi librcc
Name : librcc
Version : 0.2.3-4
Groups : None
Packager : Arch Linux (http://www.archlinux.org)
URL : http://rusxmms.sourceforge.net/
License : None
Architecture : i686
Size : 569893
Build Date : Sun Dec 10 23:31:29 2006 UTC
Build Type : Unknown
Install Date : Fri Dec 22 19:57:58 2006 UTC
Install Script : Yes
Reason : Installed as a dependency for another package
Provides : None
Depends On : aspell enca libxml2 db librcd
Removes : None
Required By : taglib-rcc
Conflicts With : None
Description : Charset Conversion Library

[rk@home ~]$
[rk@home ~]$
[rk@home ~]$
[rk@home ~]$ sudo pacman3 -Rd taglib-rcc
(1/1) removing taglib-rcc [#######################] 100%
[rk@home ~]$
[rk@home ~]$
[rk@home ~]$
[rk@home ~]$ pacman3 -Qi librcc
Name : librcc
Version : 0.2.3-4
Groups : None
Packager : Arch Linux (http://www.archlinux.org)
URL : http://rusxmms.sourceforge.net/
License : None
Architecture : i686
Size : 569893
Build Date : Sun Dec 10 23:31:29 2006 UTC
Build Type : Unknown
Install Date : Fri Dec 22 19:57:58 2006 UTC
Install Script : Yes
Reason : Installed as a dependency for another package
Provides : None
Depends On : None
Removes : None
Required By : None
Conflicts With : None
Description : Charset Conversion Library

[rk@home ~]$
Comment by Roman Kyrylych (Romashka) - Friday, 22 December 2006, 20:01 GMT
Even worse:


[rk@home ~]$ sudo pacman3 -Rs librcc
checking dependencies... done.

Targets: librcc

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

(1/1) removing librcc [#######################] 100%
[rk@home ~]$
[rk@home ~]$
[rk@home ~]$ sudo pacman3 -Rs librcd
checking dependencies...
error: failed to prepare transaction (could not satisfy dependencies)
:: librcd is required by librcc
Comment by Georg Grabler (STiAT) - Monday, 25 December 2006, 22:45 GMT
There seem troubles with dependency calculation in pacman3.
Also already came up in the mailing lists as well, in combination with logging.

Seems as if somebody has to look over this once again.

// STi
Comment by Aaron Griffin (phrakture) - Wednesday, 03 January 2007, 06:13 GMT
Fixed in testing - new rc image soon
Comment by Roman Kyrylych (Romashka) - Wednesday, 03 January 2007, 11:09 GMT
This is fixed only partially. :(
See below:

[rk@home ~]$ sudo pacman3 -S taglib-rcc
resolving dependencies... done.
looking for inter-conflicts... :: taglib-rcc conflicts with taglib. Remove taglib? [Y/n]
done.

Remove: taglib

Targets: librcc-0.2.3-4 taglib-rcc-1.4-3
Total Package Size: 0,4 MB

Proceed with installation? [Y/n]
checking package integrity... done.
checking for file conflicts (2/2) [#######################] 100%
(1/2) installing librcc [#######################] 100%
-- Don't forget to install gtk or/and gtk2 packages to enable librcc
gui features
-- Also you may change /usr/bin/rcc-config symlink to switch between
gtk and gtk2 (rcc-gtk-config and rcc-gtk2-config)
(2/2) installing taglib-rcc [#######################] 100%
[rk@home ~]$
[rk@home ~]$
[rk@home ~]$
[rk@home ~]$ pacman3 -Qi librcc
Name : librcc
Version : 0.2.3-4
Groups : None
Packager : Arch Linux (http://www.archlinux.org)
URL : http://rusxmms.sourceforge.net/
License : None
Architecture : i686
Size : 569893
Build Date : Sun Dec 10 23:31:29 2006 UTC
Build Type : Unknown
Install Date : Wed Jan 3 10:59:35 2007 UTC
Install Script : Yes
Reason : Installed as a dependency for another package
Provides : None
Depends On : aspell enca libxml2 db librcd
Removes : None
Required By : taglib-rcc
Conflicts With : None
Description : Charset Conversion Library

[rk@home ~]$ sudo pacman3 -Rd taglib-rcc
(1/1) removing taglib-rcc [#######################] 100%
[rk@home ~]$ pacman3 -Qi librcc
Name : librcc
Version : 0.2.3-4
Groups : None
Packager : Arch Linux (http://www.archlinux.org)
URL : http://rusxmms.sourceforge.net/
License : None
Architecture : i686
Size : 569893
Build Date : Sun Dec 10 23:31:29 2006 UTC
Build Type : Unknown
Install Date : Wed Jan 3 10:59:35 2007 UTC
Install Script : Yes
Reason : Installed as a dependency for another package
Provides : None
Depends On : aspell enca libxml2 db librcd
Removes : None
Required By : None
Conflicts With : None
Description : Charset Conversion Library


Oh, nice, this is fixed!
But now:


[rk@home ~]$ sudo pacman3 -Rd librcc
(1/1) removing librcc [#######################] 100%
[rk@home ~]$ pacman3 -Qi enca
Name : enca
Version : 1.9-2
Groups : None
Packager : Arch Linux (http://www.archlinux.org)
URL : http://trific.ath.cx/software/enca
License : GPL
Architecture : i686
Size : 448980
Build Date : Tue Jun 6 04:58:26 2006 UTC
Build Type : Unknown
Install Date : Fri Dec 22 19:57:58 2006 UTC
Install Script : No
Reason : Installed as a dependency for another package
Provides : None
Depends On : None
Removes : None
Required By : librcc
Conflicts With : None
Description : Charset analyser and converter


This is not fixed.
When fixing this please make sure that it will work with deeper dependency tree too.
Comment by Aaron Griffin (phrakture) - Wednesday, 03 January 2007, 15:16 GMT
Actually, it is fixed. The problem is that your tree (like mine) is corrupt, and has no dep information for alot of that stuff.
Comment by Roman Kyrylych (Romashka) - Wednesday, 03 January 2007, 15:20 GMT
I don't understand this.
How it can be corrupted, when before installing taglib-rcc there were no information about taglib-rcc, librcc, enca & librcd in /var/lib/pacman/local ? :-/
Comment by Aaron Griffin (phrakture) - Wednesday, 03 January 2007, 15:28 GMT
When you first installed and removed taglib-rcc, it removed all dep entries from all of its dependencies. So your taglib-rcc, librcc, enca, libxml2, db, and librcd all have no dep entries. The only way this info is going to get put back in full is by reinstalling those packages, or manually fixing it.

In the last case, you are using -Rd, which skips dep checks, so nothing is modified with librcc's dependencies.

It all seems to be working as expected in your case. I'm not sure I see where the problem remains.
Comment by Roman Kyrylych (Romashka) - Wednesday, 03 January 2007, 15:57 GMT
I didn't have librcc, enca and librcd installed. I removed them after old tests.
So there were no /var/lib/pacman/local/{librcc,enca,librcd}*/* entries.
I will do another test this night, to be sure.

Loading...