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/