On Sat, Sep 15, 2007 at 05:30:19PM +0200, Nagy Gabor wrote:
Let me explain (now I can't create pactest, sorry). PM_SYNC_TYPE_REPLACE indicates that install of "replacer" package will induce the removal of packages listed in data field. This is a nice trick: if you later decide that you won't install "replacer", removing of this syncpkg from target list will automatically revert the induced removal. Conflict resolution also uses this trick. If pkgA conflicts with pkgB, and pkgA is in the target list, then pkgA becomes a replacer (and syncpkg type of pkgA will be _changed_ to PM_SYNC_TYPE_REPLACE, here you will loose information!), and the to-be-removed conflicting local pkgB package will be listed in its data field. See sync.c:567-569, that part (without any further discussion) is wrong.
I see. I'm attaching a pactest that should reproduce this.