On Fri, 2017-09-01 at 19:01 +0200, Igor Gnatenko wrote:
> So I think F28/F29 would be best time for retiring YUM. Right now DNF
> should be already stable and provide same capabilities (or documented
> that something will not be supported).
> 
> Hopefully infrastructure / rel-eng folks will finally add support for
> rich dependencies[0] which would mean that yum will not work in Fedora
> anyway, so..
> 
> Do you still have some critical missing functionality in DNF? And let
> us know reasons why would you like to keep YUM available (hopefully
> there are no)!
> 
> P.S. I didn't wrote any Change Proposal yet, want to get feedback first

Pungi still uses yum:

[adamw@adam pungi (master)]$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

nothing to commit, working tree clean
[adamw@adam pungi (master)]$ grep -R yum pungi/
pungi/arch.py:def tree_arch_to_yum_arch(tree_arch):
pungi/arch.py:    yum_arch = TREE_ARCH_YUM_ARCH_MAP.get(tree_arch, tree_arch)
pungi/arch.py:    return yum_arch
pungi/arch.py:def get_multilib_arch(yum_arch):
pungi/arch.py:    arch_info = rpmUtils.arch.getMultiArchInfo(yum_arch)
pungi/arch.py:    yum_arch = tree_arch_to_yum_arch(tree_arch)
pungi/arch.py:    multilib_arch = get_multilib_arch(yum_arch)
pungi/arch.py:    yum_arch = tree_arch_to_yum_arch(tree_arch)
pungi/arch.py:    for arch in rpmUtils.arch.getArchList(yum_arch):
pungi/multilib.py:def do_multilib(yum_arch, methods, repos, tmpdir, logfile):
pungi/multilib.py:    import yum
pungi/multilib.py:    archlist = yum.rpmUtils.arch.getArchList(yum_arch)
pungi/multilib.py:    yumbase = yum.YumBase()
pungi/multilib.py:    yumbase.preconf.init_plugins = False
pungi/multilib.py:    yumbase.preconf.root = tmpdir
pungi/multilib.py:    # must run doConfigSetup() before touching yumbase.conf
pungi/multilib.py:    yumbase.doConfigSetup(fn="/dev/null")
pungi/multilib.py:    yumbase.conf.cache = False
pungi/multilib.py:    yumbase.conf.cachedir = tmpdir
pungi/multilib.py:    yumbase.conf.exactarch = True
pungi/multilib.py:    yumbase.conf.gpgcheck = False
pungi/multilib.py:    yumbase.conf.logfile = logfile
pungi/multilib.py:    yumbase.conf.plugins = False
pungi/multilib.py:    yumbase.conf.reposdir = []
pungi/multilib.py:    yumbase.verbose_logger.setLevel(logging.ERROR)
pungi/multilib.py:    yumbase.doRepoSetup()
pungi/multilib.py:    yumbase.doTsSetup()
pungi/multilib.py:    yumbase.doRpmDBSetup()
pungi/multilib.py:    
yumbase.ts.pushVSFlags((rpm._RPMVSF_NOSIGNATURES|rpm._RPMVSF_NODIGESTS))
pungi/multilib.py:    for repo in yumbase.repos.findRepos("*"):
pungi/multilib.py:        yumbase.add_enable_repo(repo_id, baseurls=[baseurl])
pungi/multilib.py:    yumbase.doSackSetup(archlist=archlist)
pungi/multilib.py:    yumbase.doSackFilelistPopulate()
pungi/multilib.py:    for po in sorted(yumbase.pkgSack):
pungi/multilib.py:        help="path or url to yum repo; can be specified 
multiple times",
pungi/phases/pkgset/sources/source_repos.py:    # populate pkgset from yum repos
pungi/phases/osbs.py:        config['yum_repourls'] = [self._get_repo(compose, 
variant)]
pungi/phases/gather/methods/method_deps.py:from pungi.arch import 
tree_arch_to_yum_arch
pungi/phases/gather/methods/method_deps.py:    yum_arch = 
tree_arch_to_yum_arch(arch)
pungi/phases/gather/methods/method_deps.py:    cmd = 
pungi_wrapper.get_pungi_cmd(pungi_conf, destdir=tmp_dir, name=variant.uid, 
selfhosting=selfhosting, fulltree=fulltree, arch=yum_arch, full_archlist=True, 
greedy=greedy_method, cache_dir=cache_dir, lookaside_repos=lookaside_repos, 
multilib_methods=multilib_methods)
pungi/wrappers/comps.py:import yum.comps
pungi/wrappers/comps.py:        self.comps = yum.comps.Comps()
pungi/wrappers/kojiwrapper.py:        # HACK: remove rpmdb and yum cache
pungi/wrappers/kojiwrapper.py:        command = "rm -f /var/lib/rpm/__db*; rm 
-rf /var/cache/yum/*; set -x; " + command
pungi/checks.py:    ("yum-utils", "/usr/bin/createrepo", None),
pungi/checks.py:    ("yum-utils", "/usr/bin/mergerepo", None),
pungi/checks.py:    ("yum-utils", "/usr/bin/repoquery", None),
pungi/config.py:import yum
pungi/config.py:        self.set('pungi', 'arch', 
yum.rpmUtils.arch.getBaseArch())
pungi/gather.py:import yum
pungi/gather.py:def yumlocked(method):
pungi/gather.py:        with self.yumlock:
pungi/gather.py:        self.yum_arch = 
arch_module.tree_arch_to_yum_arch(self.tree_arch)
pungi/gather.py:    """A call back function used with yum."""
pungi/gather.py:class PungiYum(yum.YumBase):
pungi/gather.py:        yum.YumBase.__init__(self)
pungi/gather.py:        yum.logging.basicConfig(level=yum.logging.DEBUG, 
filename=logfile)
pungi/gather.py:        # This function overrides a yum function, allowing 
pungi to control
pungi/gather.py:        result = yum.YumBase._compare_providers(self, *args, 
**kwargs)
pungi/gather.py:        filename = self.config.get('pungi', 'cachedir') + 
"/yumlock"
pungi/gather.py:        self.yumlock = ReentrantYumLock(lock, self.logger)
pungi/gather.py:    def _add_yum_repo(self, name, url, mirrorlist=False, 
groups=True,
pungi/gather.py:        """This function adds a repo to the yum object.
pungi/gather.py:        thisrepo = yum.yumRepo.YumRepository(name)
pungi/gather.py:            thisrepo.mirrorlist = yum.parser.varReplace(url,
pungi/gather.py:                                                        
self.ayum.conf.yumvar)
pungi/gather.py:            thisrepo.baseurl = yum.parser.varReplace(url,
pungi/gather.py:                                                     
self.ayum.conf.yumvar)
pungi/gather.py:        thisrepo.basecachedir = self.ayum.conf.cachedir
pungi/gather.py:        # This is until yum uses this failover by default
pungi/gather.py:        self.ayum.repos.add(thisrepo)
pungi/gather.py:        self.ayum.repos.enableRepo(thisrepo.id)
pungi/gather.py:        self.ayum._getRepos(thisrepo=thisrepo.id, doSetup=True)
pungi/gather.py:        self.ayum.repos.setProgressBar(CallBack())
pungi/gather.py:        self.ayum.repos.callback = CallBack()
pungi/gather.py:    @yumlocked
pungi/gather.py:    def _inityum(self):
pungi/gather.py:        """Initialize the yum object.  Only needed for certain 
actions."""
pungi/gather.py:        # Create a yum object to use
pungi/gather.py:        self.ayum = PungiYum(self.config)
pungi/gather.py:        self.ayum.doLoggingSetup(6, 6)
pungi/gather.py:        yumconf = yum.config.YumConf()
pungi/gather.py:        yumconf.debuglevel = 6
pungi/gather.py:        yumconf.errorlevel = 6
pungi/gather.py:        yumconf.cachedir = self.config.get('pungi', 'cachedir')
pungi/gather.py:        yumconf.persistdir = "/var/lib/yum" # keep at default, 
gets appended to installroot
pungi/gather.py:        yumconf.installroot = os.path.join(self.workdir, 
'yumroot')
pungi/gather.py:        yumconf.uid = os.geteuid()
pungi/gather.py:        yumconf.cache = 0
pungi/gather.py:        yumconf.failovermethod = 'priority'
pungi/gather.py:        yumconf.deltarpm = 0
pungi/gather.py:        yumvars = yum.config._getEnvVar()
pungi/gather.py:        yumvars['releasever'] = self.config.get('pungi', 
'version')
pungi/gather.py:        yumvars['basearch'] = 
yum.rpmUtils.arch.getBaseArch(myarch=self.tree_arch)
pungi/gather.py:        yumconf.yumvar = yumvars
pungi/gather.py:        self.ayum._conf = yumconf
pungi/gather.py:        del self.ayum.prerepoconf
pungi/gather.py:        self.ayum.repos.setCacheDir(self.ayum.conf.cachedir)
pungi/gather.py:        self.ayum.arch.setup_arch(self.yum_arch)
pungi/gather.py:                # whether to ignore groups, but yum is a yes/no 
on whether to
pungi/gather.py:                self._add_yum_repo(repo.name, repo.mirrorlist,
pungi/gather.py:                self._add_yum_repo(repo.name, repo.baseurl,
pungi/gather.py:        self.ayum._getSacks(archlist=self.valid_arches)
pungi/gather.py:        self.ayum.install(po)
pungi/gather.py:    def verifyCachePkg(self, po, path): # Stolen from yum
pungi/gather.py:            filesum = yum.misc.checksum(csum_type, path)
pungi/gather.py:        except yum.Errors.MiscError:
pungi/gather.py:                deps = self.ayum.whatProvides(r, f, 
v).returnPackages()
pungi/gather.py:                    deps = 
yum.packageSack.ListPackageSack(deps).returnNewestByNameArch()
pungi/gather.py:                        deps = 
[self.ayum._bestPackageFromList(all_deps)]
pungi/gather.py:            except (yum.Errors.InstallError, 
yum.Errors.YumBaseError), ex:
pungi/gather.py:                exactmatched, matched, unmatched = 
yum.packages.parsePackages(self.all_pkgs, [pattern], casematch=1, 
pkgdict=self.pkg_refs.copy())
pungi/gather.py:                    match = 
self.ayum._bestPackageFromList(pkg_sack)
pungi/gather.py:            matches = 
self.ayum.pkgSack.searchNevra(name=po.name, ver=po.version, rel=po.release)
pungi/gather.py:            match = self.ayum._bestPackageFromList(matches)
pungi/gather.py:        if not self.ayum.comps.has_group(group.name):
pungi/gather.py:        groupobj = self.ayum.comps.return_group(group.name)
pungi/gather.py:            matches = 
self.ayum.pkgSack.searchNevra(name=condreq)
pungi/gather.py:                    matches = 
[self.ayum._bestPackageFromList(matches)]
pungi/gather.py:                self.ayum.tsInfo.conditionals.setdefault(cond, 
[]).extend(matches)
pungi/gather.py:            filter(lambda x: x.default, self.ayum.comps.groups))
pungi/gather.py:            self.langpacks = list(self.ayum.comps.langpacks)
pungi/gather.py:            # old yum
pungi/gather.py:            self.logger.warning("Could not get langpacks via 
yum.comps. You may need to update yum.")
pungi/gather.py:        except yum.Errors.GroupsError:
pungi/gather.py:        self.all_pkgs = 
list(set(self.ayum.pkgSack.returnPackages()))
pungi/gather.py:        self.pkg_refs = 
yum.packages.buildPkgRefDict(self.all_pkgs, casematch=True)
pungi/gather.py:        self.ayum.excludePackages()
pungi/gather.py:        if "core" in [ i.groupid for i in 
self.ayum.comps.groups ]:
pungi/gather.py:        if "base" in [ i.groupid for i in 
self.ayum.comps.groups ]:
pungi/gather.py:        searchlist = yum.misc.unique(searchlist)
pungi/gather.py:                matches = self.ayum.whatProvides(name, None, 
None).returnPackages()
pungi/gather.py:                exactmatched, matched, unmatched = 
yum.packages.parsePackages(self.all_pkgs, [name], casematch=1, 
pkgdict=self.pkg_refs.copy())
pungi/gather.py:                    packages = 
yum.packageSack.ListPackageSack(packages).returnNewestByNameArch()
pungi/gather.py:                    packages = 
[self.ayum._bestPackageFromList(packages)]
pungi/gather.py:                for txmbr in self.ayum.tsInfo:
pungi/gather.py:        srpm_po_list = self.ayum.pkgSack.searchNevra(name=name, 
ver=ver, rel=rel, arch="src")
pungi/gather.py:           Requires yum still configured."""
pungi/gather.py:        #(dummy1, everything, dummy2) = 
yum.packages.parsePackages(self.all_pkgs, ['*'], pkgdict=self.pkg_refs.copy())
pungi/gather.py:           find the sourcerpm for them.  Requires yum still
pungi/gather.py:           Requires yum still configured and a list of package
pungi/gather.py:           debuginfo rpms for them.  Requires yum still
pungi/gather.py:        probs = self.ayum.downloadPkgs(polist)
pungi/gather.py:                errors = yum.misc.unique(probs[key])
pungi/gather.py:                self.logger.error("Unable to link %s from the 
yum cache." % po.name)
pungi/gather.py:    @yumlocked
pungi/gather.py:            g = self.ayum.comps.return_group(item.name)
pungi/gather.py:        allgroups = [g.groupid for g in 
self.ayum.comps.get_groups()]
pungi/gather.py:            if group not in ourgroups and not 
self.ayum.comps.return_group(group).langonly:
pungi/gather.py:                del self.ayum.comps._groups[group]
pungi/gather.py:        groups = [g.groupid for g in 
self.ayum.comps.get_groups()]
pungi/gather.py:        envs = self.ayum.comps.get_environments()
pungi/gather.py:                    del 
self.ayum.comps._environments[env.environmentid]
pungi/gather.py:        ourcomps.write(self.ayum.comps.xml())
pungi/gather.py:    @yumlocked
pungi/gather.py:    @yumlocked
pungi/gather.py:                # whether to ignore groups, but yum is a yes/no 
on whether to
pungi/gather.py:        # Add the repo in the destdir to our yum object

Some of those are false positives (just names for things that are
actually moved to dnf), but a lot of them are actual usage of the yum
module.
-- 
Adam Williamson
Fedora QA Community Monkey
IRC: adamw | Twitter: AdamW_Fedora | XMPP: adamw AT happyassassin . net
http://www.happyassassin.net
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org

Reply via email to