Hi!
I think adding a special UPGRADERM type for this pseudo remove transaction is better than the previous fix which just added this check for eliminating duplicated required by : if(!alpm_list_find_str(rqdby, pkgname)) { And don't forget that pacman can still corrupt the database, because now it simply wants to add the requiredby entry instead of removing it. To show this I provide a testfile: ====requiredby004.py==== self.description = "Upgrade a package that no longer need a depend"
lp1 = pmpkg("pkg1", "1.1-1") lp1.depends = ["pkg2"] self.addpkg2db("local", lp1) lp2 = pmpkg("pkg2") lp2.requiredby = ["pkg1"] self.addpkg2db("local", lp2) p = pmpkg("pkg1", "1.2-1") self.addpkg(p) self.args = "-U %s" % p.filename() self.addrule("PACMAN_RETCODE=0") self.addrule("PKG_EXIST=pkg1") self.addrule("PKG_VERSION=pkg1|1.2-1") self.addrule("PKG_EXIST=pkg2") self.addrule("!PKG_REQUIREDBY=pkg2|pkg1")