[pacman-dev] Outdated comments in sync.c code ?
Xavier
shiningxc at gmail.com
Fri Jul 27 11:08:09 EDT 2007
First this one:
515 /* hmmm, depend.name isn't installed, so it must be conflicting
516 * with another package in our final list. For example:
517 *
518 * pacman -S blackbox xfree86
519 *
520 * If no x-servers are installed and blackbox pulls in xorg, then
521 * xorg and xfree86 will conflict with each other. In this case,
522 * we should follow the user's preference and rip xorg out of final,
523 * opting for xfree86 instead.
524 */
525
526 /* figure out which one was requested in targets. If they both
527 * were, then it's still an unresolvable conflict. */
I don't get it. Since xfree86 is already in the target, why would blackbox pull xorg ?
That's not what the code does, but maybe it did before (I only tried git and cvs) ?
If the following pactest is correct, then this comment doesn't apply anymore :
self.description = "Choose provider in the targets first"
sp1 = pmpkg("blackbox")
sp1.depends = ["x-server"]
self.addpkg2db("sync", sp1)
sp2 = pmpkg("xfree86")
sp2.provides = ["x-server"]
self.addpkg2db("sync", sp2)
sp3 = pmpkg("xorg")
sp3.provides = ["x-server"]
sp3.conflicts = ["xfree86"]
self.addpkg2db("sync", sp3)
self.args = "-S blackbox xfree86"
self.addrule("PACMAN_RETCODE=0")
self.addrule("PKG_EXIST=blackbox")
self.addrule("PKG_EXIST=xfree86")
self.addrule("!PKG_EXIST=xorg")
This one is even worse, I don't understand it at all :
638 /* XXX: this fails for cases where a requested package wants
639 * a dependency that conflicts with an older version of
640 * the package. It will be removed from final, and the user
641 * has to re-request it to get it installed properly.
642 *
643 * Not gonna happen very often, but should be dealt with...
644 */
I still tried to do a pactest following the instructions, and this works fine
as well (git and cvs) :
self.description = "A dep conflicts with older version of package"
sp1 = pmpkg("pkg1", "1.0-2")
sp1.depends = ["pkg2=1.0-2"]
self.addpkg2db("sync", sp1)
sp2 = pmpkg("pkg2", "1.0-2")
sp2.conflicts = [ "pkg1=1.0-1" ]
self.addpkg2db("sync", sp2)
lp1 = pmpkg("pkg1", "1.0-1")
lp1.depends = ["pkg2=1.0-1"]
self.addpkg2db("local", lp1)
lp2 = pmpkg("pkg2", "1.0-1")
lp2.requiredby = [ "pkg1" ]
self.addpkg2db("local", lp2)
self.args = "-S pkg1"
self.addrule("PACMAN_RETCODE=0")
self.addrule("PKG_EXIST=pkg1")
self.addrule("PKG_VERSION=pkg1|1.0-2")
self.addrule("PKG_EXIST=pkg2")
self.addrule("PKG_VERSION=pkg2|1.0-2")
More information about the pacman-dev
mailing list