Example #1
0
 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
Example #2
0
 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
Example #3
0
 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)
Example #5
0
    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)
Example #6
0
File: pm.py Project: rprstop/rootfs
    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))
Example #7
0
    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))
Example #8
0
    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
Example #9
0
File: pm.py Project: KortanZ/linux
    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