Pacman

Historical bug tracker for the Pacman package manager.

The pacman bug tracker has moved to gitlab:
https://gitlab.archlinux.org/pacman/pacman/-/issues

This tracker remains open for interaction with historical bugs during the transition period. Any new bugs reports will be closed without further action.
Tasklist

FS#25206 - Handling of dependencies on metapackages in not optimal

Attached to Project: Pacman
Opened by Sergey Malkin (Axon) - Thursday, 21 July 2011, 20:44 GMT
Last edited by Allan McRae (Allan) - Sunday, 22 April 2012, 10:42 GMT
Task Type Bug Report
Category General
Status Closed
Assigned To No-one
Architecture All
Severity Medium
Priority Normal
Reported Version 3.5.3
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Summary and Info:
When pacman removes package and it's dependencies recursively, it checks whether or not packages installed as dependencies of this package are needed by any other package, and if they are, pacman doesn't remove them.

But there may be situations when there are several packages providing one metapackage, but installed as dependencies of different packages in the system. If in this case you try to remove one of the least and it's dependencies recursively, pacman will not remove it's dependency that providies metapackage needed by other package even if this dependency is already fulfilled by other package.

Steps to Reproduce:
1. Install package "foo1" wich depeds on metapackage "bar" and package "bar1" providing this metapackage as dependency of package "foo1".
2. Install package "foo2" wich depends on package "bar2" and package "bar2" that also provides metapackage "bar" as dependency of package "foo2"
3. Remove package foo2 and it's dependencies recursively. You expect that this will remove packages "foo2" and "bar2", but "bar2" will remain because it provides metapackage "bar" needed by package "foo1".

If after removing package "foo2" you manually remove package "bar2", this is done without conflict because the dependency of package "foo1" is fulfilled by package "bar1".
So, if pacman will check whether or not the metapackage provided by package that is to be removed is already provided by any other package not only on manual remove, but when recursively removing is as a dependency, the behaviour will be more correct.
This task depends upon

Closed by  Allan McRae (Allan)
Sunday, 22 April 2012, 10:42 GMT
Reason for closing:  No response
Additional comments about closing:  Need concrete example to decide if there is a possible correct decision here.
Comment by Dan McGee (toofishes) - Thursday, 21 July 2011, 20:54 GMT
Mind stating the actual packages you saw this on just to clear up some confusion in the steps to reproduce?

Here is what I took out of it:
Installed:
foo1 (depends on bar)
foo2 (depends on bar)
bar1 (provides bar)
bar2 (provides bar)

Operation:
pacman -Rss foo2

Expected:
foo1, bar1 are installed; foo2, bar2 are not installed

Actual:
foo1, bar1, bar2 are installed; foo2 is not installed

I'm not at all convinced removing either bar1 or bar2 is the right move here. Note that *either* of these could be removed; there is no priority given to either, and your suggestion didn't cover that scenario.
Comment by Dan McGee (toofishes) - Tuesday, 09 August 2011, 15:16 GMT
Ping?

Loading...