def _spec_deps(self, spec_fn): try: spec = rpm.spec(spec_fn) except ValueError as e: msg = _("Failed to open: '%s', not a valid spec file.") % spec_fn raise dnf.exceptions.Error(msg) for dep in rpm.ds(spec.sourceHeader, 'requires'): reldep_str = self._rpm_dep2reldep_str(dep) self.base.install(reldep_str)
def _spec_deps(self, spec_fn): try: spec = rpm.spec(spec_fn) except ValueError: msg = _("Failed to open: '%s', not a valid spec file.") % spec_fn raise dnf.exceptions.Error(msg) for dep in rpm.ds(spec.sourceHeader, 'requires'): reldep_str = self._rpm_dep2reldep_str(dep) try: self.base.install(reldep_str) except dnf.exceptions.MarkingError: msg = _("No matching package to install: '%s'") % reldep_str raise dnf.exceptions.Error(msg)
def _spec_deps(self, spec_fn): try: spec = rpm.spec(spec_fn) except ValueError: msg = _("Failed to open: '%s', not a valid spec file.") % spec_fn raise dnf.exceptions.Error(msg) done = True for dep in rpm.ds(spec.sourceHeader, 'requires'): reldep_str = self._rpm_dep2reldep_str(dep) done &= self._install(reldep_str) if not done: err = _("Not all dependencies satisfied") raise dnf.exceptions.Error(err)
#!/usr/bin/python import rpm ts = rpm.ts() # Grab a header for h in ts.dbMatch('name', 'bash'): print h['name'] break print "===== rpm.ds(h)" D = rpm.ds(h) print D print "===== dsFromHeader('P')" P = h.dsFromHeader('P') print P print "===== dsOfHeader()" NEVR = h.dsOfHeader() print NEVR print "===== dsSingle('P', 'config(bash)', '3.0-16', rpm.RPMSENSE_EQUAL)" Pconfig = rpm.dsSingle('P', 'config(bash)', '3.0-16', rpm.RPMSENSE_EQUAL) Dconfig = rpm.dsSingle('D', 'config(bash)', '3.0-16', rpm.RPMSENSE_EQUAL) print Pconfig, Dconfig print "===== ds.Merge to accomplish missing ds.Sort()" P = rpm.dsSingle('P', "config(bash)", "3.0-16", rpm.RPMSENSE_EQUAL) print P.Merge(NEVR) print P
for name in specnames: # (re)load rpm config for target if set if reloadworks and opts.target: rpm.reloadConfig(opts.target) for macro in macros: rpm.addMacro(*macro) try: spec = rpm.spec(name) except ValueError: self.logger.error("Bad spec: %s" % name) continue # reset default rpm config after each parse to avoid side-effects if reloadworks: rpm.reloadConfig() buildreqs = [] for d in rpm.ds(spec.sourceHeader, 'requires'): buildreqs.append(d.DNEVR()[2:]) self.logger.info('Getting requirements for %s' % name) self.install_deps(buildreqs, opts) if __name__ == '__main__': setup_locale() util = YumBuildDep()
for srpm in toActOn: self.logger.info("Getting requirements for %s" % srpm) self.install_deps(srpm.requiresList()) for name in specnames: # (re)load rpm config for target if set if reloadworks and opts.target: rpm.reloadConfig(opts.target) try: spec = rpm.spec(name) except ValueError: self.logger.error("Bad spec: %s" % name) continue # reset default rpm config after each parse to avoid side-effects if reloadworks: rpm.reloadConfig() buildreqs = [] for d in rpm.ds(spec.sourceHeader, "requires"): buildreqs.append(d.DNEVR()[2:]) self.logger.info("Getting requirements for %s" % name) self.install_deps(buildreqs) if __name__ == "__main__": setup_locale() util = YumBuildDep()