def fetch(self, fetcher, progress): getTS() # Make sure the db exists. path = os.path.join(sysconf.get("rpm-root", "/"), "var/lib/rpm/Packages") digest = os.path.getmtime(path) if digest == self._digest: return True self.removeLoaders() loader = RPMDBLoader() loader.setChannel(self) self._loaders.append(loader) self._digest = digest return True
def fetch(self, fetcher, progress): getTS() # Make sure the db exists. dbdir = rpm_join_dbpath(sysconf.get("rpm-root", "/"), sysconf.get("rpm-dbpath", "var/lib/rpm")) path = os.path.join(dbdir, "Packages") digest = os.path.getmtime(path) if digest == self._digest: return True self.removeLoaders() loader = RPMDBLoader() loader.setChannel(self) self._loaders.append(loader) self._digest = digest return True
def fetch(self, fetcher, progress): getTS() # Make sure the db exists. dbdir = rpm_join_dbpath(sysconf.get("rpm-root", "/"), sysconf.get("rpm-dbpath", "var/lib/rpm")) path = os.path.join(dbdir, "Packages") digest = getFileDigest(path) if digest == self._digest: return True self.removeLoaders() loader = RPMDBLoader() loader.setChannel(self) self._loaders.append(loader) self._digest = digest return True
def test_wb_rpm_root_path_must_be_absolute(self): """ Somewhat of a weak test. I haven't managed to make the code break when rpm root isn't absolute, so I decided to do a whitebox test and verify that at least the fix which is mentioned in #307386 is in place. """ current_path = os.getcwd() # Using realpath here because if it happens to be a link, the # assertion below will fail. (and /tmp is a symlink on Darwin) test_path = os.path.realpath(self.makeDir()) def cleanup(): os.chdir(current_path) sysconf.remove("rpm-root") self.addCleanup(cleanup) os.chdir(test_path) sysconf.set("rpm-root", "relative-rpm-root") ts = getTS() self.assertEquals(getTS.root, "%s/relative-rpm-root" % test_path)
def commit(self, changeset, pkgpaths): prog = iface.getProgress(self, True) prog.start() prog.setTopic(_("Committing transaction...")) prog.set(0, len(changeset)) prog.show() # Compute upgrading/upgraded packages upgrading = {} upgraded = {} for pkg in changeset.keys(): if changeset.get(pkg) is INSTALL: upgpkgs = [ upgpkg for prv in pkg.provides for upg in prv.upgradedby for upgpkg in upg.packages if upgpkg.installed ] upgpkgs.extend([ prvpkg for upg in pkg.upgrades for prv in upg.providedby for prvpkg in prv.packages if prvpkg.installed ]) if upgpkgs: for upgpkg in upgpkgs: # If any upgraded package will stay in the system, # this is not really an upgrade for rpm. if changeset.get(upgpkg) is not REMOVE: break else: upgrading[pkg] = True for upgpkg in upgpkgs: upgraded[upgpkg] = True if upgpkg in changeset: del changeset[upgpkg] ts = getTS(True) flags = ts.setFlags(0) if sysconf.get("rpm-allfiles", False): flags |= rpm.RPMTRANS_FLAG_ALLFILES if sysconf.get("rpm-justdb", False): flags |= rpm.RPMTRANS_FLAG_JUSTDB if sysconf.get("rpm-noconfigs", False): flags |= rpm.RPMTRANS_FLAG_NOCONFIGS if (sysconf.get("rpm-nodocs", False) or sysconf.get("rpm-excludedocs", False)): flags |= rpm.RPMTRANS_FLAG_NODOCS if sysconf.get("rpm-nomd5", False): flags |= rpm.RPMTRANS_FLAG_NOMD5 if sysconf.get("rpm-noscripts", False): flags |= rpm.RPMTRANS_FLAG_NOSCRIPTS if sysconf.get("rpm-notriggers", False): flags |= rpm.RPMTRANS_FLAG_NOTRIGGERS if sysconf.get("rpm-repackage", False): flags |= rpm.RPMTRANS_FLAG_REPACKAGE if sysconf.get("rpm-test", False): flags |= rpm.RPMTRANS_FLAG_TEST ts.setFlags(flags) dflags = ts.setDFlags(0) if sysconf.get("rpm-noupgrade", False): dflags |= rpm.RPMDEPS_FLAG_NOUPGRADE if sysconf.get("rpm-norequires", False): dflags |= rpm.RPMDEPS_FLAG_NOREQUIRES if sysconf.get("rpm-noconflicts", False): dflags |= rpm.RPMDEPS_FLAG_NOCONFLICTS if sysconf.get("rpm-noobsoletes", False): dflags |= rpm.RPMDEPS_FLAG_NOOBSOLETES if sysconf.get("rpm-noparentdirs", False): dflags |= rpm.RPMDEPS_FLAG_NOPARENTDIRS if sysconf.get("rpm-nolinktos", False): dflags |= rpm.RPMDEPS_FLAG_NOLINKTOS if sysconf.get("rpm-nosuggest", False): dflags |= rpm.RPMDEPS_FLAG_NOSUGGEST ts.setDFlags(dflags) # Set rpm verbosity level. levelname = sysconf.get('rpm-log-level') level = { 'emerg': rpm.RPMLOG_EMERG, 'alert': rpm.RPMLOG_ALERT, 'crit': rpm.RPMLOG_CRIT, 'err': rpm.RPMLOG_ERR, 'warning': rpm.RPMLOG_WARNING, 'notice': rpm.RPMLOG_NOTICE, 'info': rpm.RPMLOG_INFO, 'debug': rpm.RPMLOG_DEBUG }.get(levelname) if level is not None: rpm.setVerbosity(level) # Set rpm output log file rpmlogfile = sysconf.get('rpm-log-file') if rpmlogfile is not None: try: rpmlog = open(rpmlogfile, 'w') rpm.setLogFile(rpmlog) except (IOError, OSError), e: raise Error, "%s: %s" % (rpmlogfile, unicode(e))
def commit(self, changeset, pkgpaths): prog = iface.getProgress(self, True) prog.start() prog.setTopic(_("Committing transaction...")) prog.set(0, len(changeset)) prog.show() # Compute upgrading/upgraded packages upgrading = {} upgraded = {} for pkg in changeset.keys(): if changeset.get(pkg) is INSTALL: upgpkgs = [upgpkg for prv in pkg.provides for upg in prv.upgradedby for upgpkg in upg.packages if upgpkg.installed] upgpkgs.extend([prvpkg for upg in pkg.upgrades for prv in upg.providedby for prvpkg in prv.packages if prvpkg.installed]) if upgpkgs: for upgpkg in upgpkgs: # If any upgraded package will stay in the system, # this is not really an upgrade for rpm. if changeset.get(upgpkg) is not REMOVE: break else: upgrading[pkg] = True for upgpkg in upgpkgs: upgraded[upgpkg] = True if upgpkg in changeset: del changeset[upgpkg] ts = getTS(True) flags = ts.setFlags(0) if sysconf.get("rpm-allfiles", False): flags |= rpm.RPMTRANS_FLAG_ALLFILES if sysconf.get("rpm-justdb", False): flags |= rpm.RPMTRANS_FLAG_JUSTDB if sysconf.get("rpm-noconfigs", False): flags |= rpm.RPMTRANS_FLAG_NOCONFIGS if (sysconf.get("rpm-nodocs", False) or sysconf.get("rpm-excludedocs", False)): flags |= rpm.RPMTRANS_FLAG_NODOCS if sysconf.get("rpm-nomd5", False): flags |= rpm.RPMTRANS_FLAG_NOMD5 if sysconf.get("rpm-noscripts", False): flags |= rpm.RPMTRANS_FLAG_NOSCRIPTS if sysconf.get("rpm-notriggers", False): flags |= rpm.RPMTRANS_FLAG_NOTRIGGERS if sysconf.get("rpm-repackage", False): flags |= rpm.RPMTRANS_FLAG_REPACKAGE if sysconf.get("rpm-test", False): flags |= rpm.RPMTRANS_FLAG_TEST ts.setFlags(flags) if hasattr(ts, 'setDFlags'): dflags = ts.setDFlags(0) if sysconf.get("rpm-noupgrade", False): dflags |= rpm.RPMDEPS_FLAG_NOUPGRADE if sysconf.get("rpm-norequires", False): dflags |= rpm.RPMDEPS_FLAG_NOREQUIRES if sysconf.get("rpm-noconflicts", False): dflags |= rpm.RPMDEPS_FLAG_NOCONFLICTS if sysconf.get("rpm-noobsoletes", False): dflags |= rpm.RPMDEPS_FLAG_NOOBSOLETES if sysconf.get("rpm-noparentdirs", False): dflags |= rpm.RPMDEPS_FLAG_NOPARENTDIRS if sysconf.get("rpm-nolinktos", False): dflags |= rpm.RPMDEPS_FLAG_NOLINKTOS if sysconf.get("rpm-nosuggest", False): dflags |= rpm.RPMDEPS_FLAG_NOSUGGEST ts.setDFlags(dflags) # Set rpm verbosity level. levelname = sysconf.get('rpm-log-level') level = { 'emerg': rpm.RPMLOG_EMERG, 'alert': rpm.RPMLOG_ALERT, 'crit': rpm.RPMLOG_CRIT, 'err': rpm.RPMLOG_ERR, 'warning': rpm.RPMLOG_WARNING, 'notice': rpm.RPMLOG_NOTICE, 'info': rpm.RPMLOG_INFO, 'debug': rpm.RPMLOG_DEBUG }.get(levelname) if level is not None: rpm.setVerbosity(level) # Set rpm output log file rpmlogfile = sysconf.get('rpm-log-file') if rpmlogfile is not None: try: rpmlog = open(rpmlogfile, 'w') rpm.setLogFile(rpmlog) except (IOError, OSError), e: raise Error, "%s: %s" % (rpmlogfile, unicode(e))
def commit(self, changeset, pkgpaths): prog = iface.getProgress(self, True) prog.start() prog.setTopic(_("Committing transaction...")) prog.set(0, len(changeset)) prog.show() # Compute upgrading/upgraded packages upgrading = {} upgraded = {} for pkg in changeset.keys(): if changeset.get(pkg) is INSTALL: upgpkgs = [ upgpkg for prv in pkg.provides for upg in prv.upgradedby for upgpkg in upg.packages if upgpkg.installed ] upgpkgs.extend([ prvpkg for upg in pkg.upgrades for prv in upg.providedby for prvpkg in prv.packages if prvpkg.installed ]) if upgpkgs: for upgpkg in upgpkgs: # If any upgraded package will stay in the system, # this is not really an upgrade for rpm. if changeset.get(upgpkg) is not REMOVE: break else: upgrading[pkg] = True for upgpkg in upgpkgs: upgraded[upgpkg] = True if upgpkg in changeset: del changeset[upgpkg] ts = getTS(True) flags = ts.setFlags(0) if sysconf.get("rpm-allfiles", False): flags |= rpm.RPMTRANS_FLAG_ALLFILES if sysconf.get("rpm-justdb", False): flags |= rpm.RPMTRANS_FLAG_JUSTDB if sysconf.get("rpm-noconfigs", False): flags |= rpm.RPMTRANS_FLAG_NOCONFIGS if (sysconf.get("rpm-nodocs", False) or sysconf.get("rpm-excludedocs", False)): flags |= rpm.RPMTRANS_FLAG_NODOCS if sysconf.get("rpm-nomd5", False): flags |= rpm.RPMTRANS_FLAG_NOMD5 if sysconf.get("rpm-noscripts", False): flags |= rpm.RPMTRANS_FLAG_NOSCRIPTS if sysconf.get("rpm-notriggers", False): flags |= rpm.RPMTRANS_FLAG_NOTRIGGERS if sysconf.get("rpm-repackage", False): flags |= rpm.RPMTRANS_FLAG_REPACKAGE if sysconf.get("rpm-test", False): flags |= rpm.RPMTRANS_FLAG_TEST ts.setFlags(flags) try: dflags = ts.setDFlags(0) if sysconf.get("rpm-noupgrade", False): dflags |= rpm.RPMDEPS_FLAG_NOUPGRADE if sysconf.get("rpm-norequires", False): dflags |= rpm.RPMDEPS_FLAG_NOREQUIRES if sysconf.get("rpm-noconflicts", False): dflags |= rpm.RPMDEPS_FLAG_NOCONFLICTS if sysconf.get("rpm-noobsoletes", False): dflags |= rpm.RPMDEPS_FLAG_NOOBSOLETES if sysconf.get("rpm-noparentdirs", False): dflags |= rpm.RPMDEPS_FLAG_NOPARENTDIRS if sysconf.get("rpm-nolinktos", False): dflags |= rpm.RPMDEPS_FLAG_NOLINKTOS if sysconf.get("rpm-nosuggest", False): dflags |= rpm.RPMDEPS_FLAG_NOSUGGEST ts.setDFlags(dflags) except AttributeError, ae: pass
def commit(self, changeset, pkgpaths): prog = iface.getProgress(self, True) prog.start() prog.setTopic(_("Committing transaction...")) prog.set(0, len(changeset)) prog.show() # Compute upgrading/upgraded packages upgrading = {} upgraded = {} for pkg in changeset.keys(): if changeset.get(pkg) is INSTALL: upgpkgs = [upgpkg for prv in pkg.provides for upg in prv.upgradedby for upgpkg in upg.packages if upgpkg.installed] upgpkgs.extend([prvpkg for upg in pkg.upgrades for prv in upg.providedby for prvpkg in prv.packages if prvpkg.installed]) if upgpkgs: for upgpkg in upgpkgs: # If any upgraded package will stay in the system, # this is not really an upgrade for rpm. if changeset.get(upgpkg) is not REMOVE: break else: upgrading[pkg] = True for upgpkg in upgpkgs: upgraded[upgpkg] = True if upgpkg in changeset: del changeset[upgpkg] ts = getTS(True) flags = ts.setFlags(0) if sysconf.get("rpm-allfiles", False): flags |= rpm.RPMTRANS_FLAG_ALLFILES if sysconf.get("rpm-justdb", False): flags |= rpm.RPMTRANS_FLAG_JUSTDB if sysconf.get("rpm-noconfigs", False): flags |= rpm.RPMTRANS_FLAG_NOCONFIGS if (sysconf.get("rpm-nodocs", False) or sysconf.get("rpm-excludedocs", False)): flags |= rpm.RPMTRANS_FLAG_NODOCS if sysconf.get("rpm-nomd5", False): flags |= rpm.RPMTRANS_FLAG_NOMD5 if sysconf.get("rpm-noscripts", False): flags |= rpm.RPMTRANS_FLAG_NOSCRIPTS if sysconf.get("rpm-notriggers", False): flags |= rpm.RPMTRANS_FLAG_NOTRIGGERS if sysconf.get("rpm-repackage", False): flags |= rpm.RPMTRANS_FLAG_REPACKAGE if sysconf.get("rpm-test", False): flags |= rpm.RPMTRANS_FLAG_TEST ts.setFlags(flags) try: dflags = ts.setDFlags(0) if sysconf.get("rpm-noupgrade", False): dflags |= rpm.RPMDEPS_FLAG_NOUPGRADE if sysconf.get("rpm-norequires", False): dflags |= rpm.RPMDEPS_FLAG_NOREQUIRES if sysconf.get("rpm-noconflicts", False): dflags |= rpm.RPMDEPS_FLAG_NOCONFLICTS if sysconf.get("rpm-noobsoletes", False): dflags |= rpm.RPMDEPS_FLAG_NOOBSOLETES if sysconf.get("rpm-noparentdirs", False): dflags |= rpm.RPMDEPS_FLAG_NOPARENTDIRS if sysconf.get("rpm-nolinktos", False): dflags |= rpm.RPMDEPS_FLAG_NOLINKTOS if sysconf.get("rpm-nosuggest", False): dflags |= rpm.RPMDEPS_FLAG_NOSUGGEST ts.setDFlags(dflags) except AttributeError, ae: pass