mirror of
https://github.com/moparisthebest/pacman
synced 2025-02-28 09:21:53 -05:00
Add sync1003 pactest.
The sync package pkg3 depends on the sync package pkg2, but pkg1 replaces pkg2. So pkg2 is added to the remove list. When checkdeps checks if pkg2 can be removed, it looks at the packages that require pkg2 (with the RequiredBy field of pkg2), but this doesn't contain pkg3 at this point. RequiredBy fields are only updated after the packages are installed. Proposed solution : checkdeps should know both the remove and upgrade list to decide properly. Reference: http://www.archlinux.org/pipermail/pacman-dev/2007-July/008972.html Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
This commit is contained in:
parent
b1808930ce
commit
13525255dc
26
pactest/tests/sync1003.py
Normal file
26
pactest/tests/sync1003.py
Normal file
@ -0,0 +1,26 @@
|
||||
self.description = "Induced removal would break dependency"
|
||||
|
||||
sp1 = pmpkg("pkg1", "1.0-2")
|
||||
sp1.replaces = [ "pkg2" ]
|
||||
self.addpkg2db("sync", sp1)
|
||||
|
||||
sp2 = pmpkg("pkg2", "1.0-2")
|
||||
self.addpkg2db("sync", sp2)
|
||||
|
||||
sp3 = pmpkg("pkg3", "1.0-2")
|
||||
sp3.depends = ["pkg2=1.0-2"]
|
||||
self.addpkg2db("sync", sp3)
|
||||
|
||||
lp1 = pmpkg("pkg1", "1.0-1")
|
||||
self.addpkg2db("local", lp1)
|
||||
|
||||
lp2 = pmpkg("pkg2", "1.0-2")
|
||||
self.addpkg2db("local", lp2)
|
||||
|
||||
lp3 = pmpkg("pkg3", "1.0-1")
|
||||
self.addpkg2db("local", lp3)
|
||||
|
||||
self.args = "-Su"
|
||||
|
||||
self.addrule("PACMAN_RETCODE=1")
|
||||
self.addrule("PKG_EXIST=pkg2")
|
Loading…
x
Reference in New Issue
Block a user