On 03/04/13 at 06:29am, Allan McRae wrote:
On 04/03/13 06:26, Andrew Gregory wrote:
On 03/04/13 at 05:45am, Allan McRae wrote:
On 04/03/13 05:43, Allan McRae wrote:
On 01/03/13 04:06, Olivier Brunel wrote:
During a sysupgrade, if a package is replaced by another, and an update for the former package is found (on another repo) the replaced package would be re-installed.
Signed-off-by: Olivier Brunel <i.am.jack.mail@gmail.com> --- I'm not really familiar with inner workings of ALPM, so this is probably not the best way to do this.
<snip>
diff --git a/test/pacman/tests/sync1104.py b/test/pacman/tests/sync1104.py new file mode 100644 index 0000000..5cec98a --- /dev/null +++ b/test/pacman/tests/sync1104.py @@ -0,0 +1,18 @@ +self.description = "Don't update (reinstall) a replaced package" + +lp = pmpkg("old", "1-1") +self.addpkg2db("local", lp) + +p1 = pmpkg("new") +p1.provides = ["old"] +p1.replaces = ["old"] +self.addpkg2db("sync1", p1) + +p2 = pmpkg("old", "1-2") +self.addpkg2db("sync2", p2) + +self.args = "-Su" + +self.addrule("PACMAN_RETCODE=0") +self.addrule("!PKG_EXIST=old") +self.addrule("PKG_EXIST=new")
Forgot to add - awesome for adding a pactest here!
Is the test case correct though? Other than the fact that this one uses two sync repos, this looks identical to sync132 which has the opposite result.
Hrm... I'd say that sync132 is wrong...
If pkg1 replaces pkg2, I'd expect pkg1 to replace pkg2 whether or not pkg2 has an update.
Allan
Allan
I would actually come out the other way. Where a replacement is *unversioned* like in this test I would expect an updated package to override it. Otherwise it would try to replace the other package on every update even though it's still in a repo. Test replace102 (it would be awesome if we could get some kind of consistent naming scheme going for these tests) handles the situation where you have a versioned replace for a package still in a repo (python 2->3 upgrade). apg