mirror of
https://github.com/moparisthebest/pacman
synced 2024-12-24 08:48:50 -05:00
b1808930ce
This patch cleans up and fix the _alpm_trans_update_depends function and ensure that all requiredby fields are filled in case of multiple satisfiers (previously, the handling of mutliple satisfiers in that function was inconsistent). This makes a special case handling of requiredby in commit_single_pkg() obsolete, and so allows cleaning that code as well. Also fixed upgrade056 pactest because : 1) the requiredby fields were wrong, and this wouldn't happen with the fixed _alpm_trans_update_depends(). 2) this is a very unusual case anyway (and handling all corner cases combined to a broken database seems nearly impossible to achieve). References : http://www.archlinux.org/pipermail/pacman-dev/2007-July/008919.html http://www.archlinux.org/pipermail/pacman-dev/2007-July/008920.html Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
28 lines
689 B
Python
28 lines
689 B
Python
self.description = "Upgrade a package that removes a provide but another package still provides it"
|
|
|
|
lp1 = pmpkg("pkg1")
|
|
lp1.depends = ["imaginary"]
|
|
self.addpkg2db("local", lp1)
|
|
|
|
lp2 = pmpkg("pkg2")
|
|
lp2.provides = ["imaginary"]
|
|
lp2.requiredby = [ "pkg1" ]
|
|
self.addpkg2db("local", lp2)
|
|
|
|
lp3 = pmpkg("pkg3")
|
|
lp3.provides = ["imaginary"]
|
|
lp3.requiredby = [ "pkg1" ]
|
|
self.addpkg2db("local", lp3)
|
|
|
|
p = pmpkg("pkg2", "1.0-2")
|
|
self.addpkg(p)
|
|
|
|
self.args = "-U %s" % p.filename()
|
|
|
|
self.addrule("PACMAN_RETCODE=0")
|
|
self.addrule("PKG_EXIST=pkg1")
|
|
self.addrule("PKG_VERSION=pkg2|1.0-2")
|
|
self.addrule("PKG_EXIST=pkg3")
|
|
self.addrule("!PKG_REQUIREDBY=pkg2|pkg1")
|
|
self.addrule("PKG_REQUIREDBY=pkg3|pkg1")
|