On 04/03/13 06:42, Andrew Gregory wrote: > 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 <[email protected]> >>>>>> --- >>>>>> 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).
Huh? Once a package is replaced, it is gone - no need to replace it again... At the moment, with pkg1 replacing pkg2 (installed) and an update to pkg2. pacman -Su (update pkg2) pacman -Su (replace pkg2) I think it should be pacman -Su (replace pkg2) done... Allan
