[pacman-dev] Some comments on Bryan patches (bugs)
Nagy Gabor
ngaba at bibl.u-szeged.hu
Fri Mar 6 11:56:39 EST 2009
Hi!
I know that I speak too late, but I haven't time/motivation to review
this patch nowadays.
1. See alpm/sync.c/sync_prepare(). When user decides to remove
unresolvable targets from the list, our code doesn't remove any targets
from target->packages, just adds the pulled dependencies. The actual
removal is done in the sortbydeps part (sortbydeps is called with list
param!). This works, but it is hard to understand (imho), and it is a
memleak: some pmsyncpkg_t structs magically disappeared.
2. Behaviour change (this pactest now fails)
--- sync993.py ---
self.description = "Choose a dependency satisfier (target-list vs. database)"
sp1 = pmpkg("pkg1")
sp1.depends = ["dep"]
sp2 = pmpkg("pkg2")
sp2.provides = ["dep"]
sp3 = pmpkg("pkg3")
sp3.provides = ["dep"]
for p in sp1, sp2, sp3:
self.addpkg2db("sync", p)
self.args = "-S pkg1 pkg3"
self.addrule("PACMAN_RETCODE=0")
self.addrule("PKG_EXIST=pkg1")
self.addrule("!PKG_EXIST=pkg2")
self.addrule("PKG_EXIST=pkg3")
------------------
If you define conflict between pkg2 and pkg3, pacman will refuse to
commit the transation. Before this patch, pacman always chose from
target list.
Bye
More information about the pacman-dev
mailing list