[pacman-dev] IgnorePkg, Holdpkg in libalpm/remove.c

Nagy Gabor ngaba at bibl.u-szeged.hu
Mon Nov 26 06:00:54 EST 2007


Hi!

Here is a pactest file derived from remove042.py [not to commit]:
---remove049.py---
self.description = "Cascade remove a package required by a HoldPkg package"

lp1 = pmpkg("pkg1")
lp1.depends = ["imaginary"]
self.addpkg2db("local", lp1)

lp2 = pmpkg("pkg2")
lp2.provides = ["imaginary"]
self.addpkg2db("local", lp2)

self.option["holdpkg"] = ["pkg1"]

self.args = "-Rc %s" % lp2.name

self.addrule("PACMAN_RETCODE=0")
self.addrule("!PKG_EXIST=pkg1")
self.addrule("!PKG_EXIST=pkg2")
-------------------
[Note: lp2.requiredby is not needed now.]

As you see, -Rc simply elects a holdpkg for removal without any warning [but at
least it prints a package summary before commit].
The same for -Rs <- this is "harder" to fix [elegantly], because
alpm_recursedeps is a general-purpose deps.c function.

You probably noticed IgnorePkg in the subject: -Rs and -Rc show, that this can
be useful with -R too [we may differentiate between RemoveIgnorePkg,
UpgradeIgnorePkg, and (transaction) IgnorePkg].

Bye


----------------------------------------------------
SZTE Egyetemi Könyvtár - http://www.bibl.u-szeged.hu
This mail sent through IMP: http://horde.org/imp/





More information about the pacman-dev mailing list