From Fedora Project Wiki
No edit summary
No edit summary
Line 101: Line 101:
== Dependencies ==
== Dependencies ==
The list of source packages (SRPMs) that still depend on some of the yum-related packages to be removed:
The list of source packages (SRPMs) that still depend on some of the yum-related packages to be removed:
* cobbler
<pre>
* ddiskit
appliance-tools:
* diskimage-builder
  bugzilla: null
* dlrn
  requires:
* dnf-plugins-core
  - python2-urlgrabber
* fusioninventory-agent
  rpms:
* grinder
  - appliance-tools
* kiwi
cas:
* koji
  bugzilla: null
* mach
  requires:
* mash
  - python2-urlgrabber
* nagios-plugins-check-updates
  rpms:
* perl-Fedora-Rebuild
  - cas
* plague
cobbler:
* pulp-rpm
  bugzilla: null
* pungi
  requires:
* repo_manager
  - createrepo
* repoview
  - python2-urlgrabber
* snake
  rpms:
* system-config-kickstart
  - cobbler
* yum-axelget
  - koan
* yum-rhn-plugin
ddiskit:
  bugzilla: null
  requires:
  - createrepo
  rpms:
  - ddiskit
diskimage-builder:
  bugzilla: null
  requires:
  - yum-utils
  rpms:
  - diskimage-builder
dlrn:
  bugzilla: null
  requires:
  - createrepo
  rpms:
  - python2-dlrn
  - python3-dlrn
dnf-plugins-core:
  bugzilla: null
  requires:
  - yum
  rpms:
  - python2-dnf-plugin-migrate
fusioninventory-agent:
  bugzilla: null
  requires:
  - yum
  rpms:
  - fusioninventory-agent-yum-plugin
grinder:
  bugzilla: null
  requires:
  - createrepo
  rpms:
  - grinder
imagefactory:
  bugzilla: null
  requires:
  - python2-urlgrabber
  rpms:
  - imagefactory
kiwi:
  bugzilla: null
  requires:
  - yum
  rpms:
  - kiwi-systemdeps
koji:
  bugzilla: null
  requires:
  - createrepo
  rpms:
  - koji-builder
koji-containerbuild:
  bugzilla: null
  requires:
  - python2-urlgrabber
  rpms:
  - koji-containerbuild-builder
mach:
  bugzilla: null
  requires:
  - createrepo
  - yum
  rpms:
  - mach
mash:
  bugzilla: null
  requires:
  - createrepo
  - yum
  rpms:
  - mash
nagios-plugins-check-updates:
  bugzilla: null
  requires:
  - yum
  rpms:
  - nagios-plugins-check-updates
osc:
  bugzilla: null
  requires:
  - python2-urlgrabber
  rpms:
  - osc
perl-Fedora-Rebuild:
  bugzilla: null
  requires:
  - createrepo
  rpms:
  - perl-Fedora-Rebuild
plague:
  bugzilla: null
  requires:
  - createrepo
  rpms:
  - plague
pulp-rpm:
  bugzilla: null
  requires:
  - createrepo
  - yum
  rpms:
  - pulp-rpm-plugins
  - pulp-rpm-yumplugins
repo_manager:
  bugzilla: null
  requires:
  - createrepo
  rpms:
  - repo_manager
repoview:
  bugzilla: null
  requires:
  - yum
  rpms:
  - repoview
rpm-ostree-toolbox:
  bugzilla: null
  requires:
  - python2-urlgrabber
  rpms:
  - rpm-ostree-toolbox
sigul:
  bugzilla: null
  requires:
  - python2-urlgrabber
  rpms:
  - sigul-bridge
snake:
  bugzilla: null
  requires:
  - yum
  rpms:
  - snake
system-config-kickstart:
  bugzilla: null
  requires:
  - yum
  rpms:
  - system-config-kickstart
yum-axelget:
  bugzilla: null
  requires:
  - yum
  - yum-plugin-fastestmirror
  rpms:
  - yum-axelget
yum-rhn-plugin:
  bugzilla: null
  requires:
  - yum
  rpms:
  - yum-rhn-plugin
</pre>


Updated: 2019-01-21
Updated: 2019-01-23


Generated with:
Generated with:
 
https://gist.github.com/dmnks/787b121503ba1e9d1565d58b4a4e3a62
<pre>
<pre>$ python3 deps.py createrepo yum yum-langpacks yum-utils yum-metadata-parser yum-updatesd python-urlgrabber</pre>
deps.py:
 
import os
import sys
import shlex
from subprocess import check_output
from rpmUtils.miscutils import splitFilename
 
# SRPMs to remove
remove = sys.argv[1:]
 
# Gather the list of depending SRPMs
depending = set()
output = ''
# This has to be done per package, see
# https://bugzilla.redhat.com/show_bug.cgi?id=1667898
for name in remove:
    args = shlex.split('dnf repoquery --source --whatrequires %s' % name)
    output += check_output(args, stderr=open(os.devnull, 'w'))
 
# Parse the list
for line in output.splitlines():
    if line == 'None':
        continue
    n, e, v, r, a = splitFilename(line)
    depending.add(n)
 
# Remove the passed SRPMs from the resulting list
depending -= set(remove)
# and print them
for name in sorted(depending):
    print('* %s' % name)
</pre>
<pre>$ python deps.py createrepo yum yum-langpacks yum-utils yum-metadata-parser yum-updatesd python-urlgrabber</pre>


== Contingency Plan ==
== Contingency Plan ==

Revision as of 15:38, 23 January 2019


Deprecate YUM 3

Summary

Remove yum (v3) and all related packages from Fedora.

Owner

  • Name: Daniel Mach
  • Email: dmach@redhat.com
  • Release notes owner:

Current status

  • Targeted release: Fedora 30
  • Last updated: 2019-01-23
  • Tracker bug: <will be assigned by the Wrangler>

Detailed Description

Remove packages from the distribution:

  • createrepo
  • yum
  • yum-langpacks
  • yum-utils
  • yum-metadata-parser
  • yum-updatesd
  • python-urlgrabber

All these packages should no longer be used and all software using them should be migrated to DNF.

Compatibility:

  • Important packages such as yum, createrepo or yum-utils will be provided/obsoleted by relevant packages from the dnf stack
  • Important executables such yum, repoquery, createrepo, etc. will be provided either as new executables or via symlinks

Benefit to Fedora

Drop an old package manager that has no active upstream development. Move existing users to DNF which that has active development. Secondary benefit is reducing number of packages in Fedora that still depend on Python 2.

Scope

  • Proposal owners: Remove packages from the distribution: createrepo, yum, yum-langpacks, yum-utils, yum-metadata-parser, python-urlgrabber
  • Other developers: Either remove packages from the distribution or switch them to DNF
  • Release engineering: #7588
  • Policies and guidelines: N/A
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

Any tool based on YUM 3 Python API will stop working. This applies on any 3rd party software which won't be changed in Fedora as part of this change. CLI compatibility will be provided by DNF.

How To Test

Repoclosure passes after dropping the packages.

User Experience

There shouldn't be any impact on YUM users because the functionality is provided by DNF already. Users of tools listed in the Dependencies section shouldn't see any difference if the migration to DNF is done properly.

Dependencies

The list of source packages (SRPMs) that still depend on some of the yum-related packages to be removed:

appliance-tools:
  bugzilla: null
  requires:
  - python2-urlgrabber
  rpms:
  - appliance-tools
cas:
  bugzilla: null
  requires:
  - python2-urlgrabber
  rpms:
  - cas
cobbler:
  bugzilla: null
  requires:
  - createrepo
  - python2-urlgrabber
  rpms:
  - cobbler
  - koan
ddiskit:
  bugzilla: null
  requires:
  - createrepo
  rpms:
  - ddiskit
diskimage-builder:
  bugzilla: null
  requires:
  - yum-utils
  rpms:
  - diskimage-builder
dlrn:
  bugzilla: null
  requires:
  - createrepo
  rpms:
  - python2-dlrn
  - python3-dlrn
dnf-plugins-core:
  bugzilla: null
  requires:
  - yum
  rpms:
  - python2-dnf-plugin-migrate
fusioninventory-agent:
  bugzilla: null
  requires:
  - yum
  rpms:
  - fusioninventory-agent-yum-plugin
grinder:
  bugzilla: null
  requires:
  - createrepo
  rpms:
  - grinder
imagefactory:
  bugzilla: null
  requires:
  - python2-urlgrabber
  rpms:
  - imagefactory
kiwi:
  bugzilla: null
  requires:
  - yum
  rpms:
  - kiwi-systemdeps
koji:
  bugzilla: null
  requires:
  - createrepo
  rpms:
  - koji-builder
koji-containerbuild:
  bugzilla: null
  requires:
  - python2-urlgrabber
  rpms:
  - koji-containerbuild-builder
mach:
  bugzilla: null
  requires:
  - createrepo
  - yum
  rpms:
  - mach
mash:
  bugzilla: null
  requires:
  - createrepo
  - yum
  rpms:
  - mash
nagios-plugins-check-updates:
  bugzilla: null
  requires:
  - yum
  rpms:
  - nagios-plugins-check-updates
osc:
  bugzilla: null
  requires:
  - python2-urlgrabber
  rpms:
  - osc
perl-Fedora-Rebuild:
  bugzilla: null
  requires:
  - createrepo
  rpms:
  - perl-Fedora-Rebuild
plague:
  bugzilla: null
  requires:
  - createrepo
  rpms:
  - plague
pulp-rpm:
  bugzilla: null
  requires:
  - createrepo
  - yum
  rpms:
  - pulp-rpm-plugins
  - pulp-rpm-yumplugins
repo_manager:
  bugzilla: null
  requires:
  - createrepo
  rpms:
  - repo_manager
repoview:
  bugzilla: null
  requires:
  - yum
  rpms:
  - repoview
rpm-ostree-toolbox:
  bugzilla: null
  requires:
  - python2-urlgrabber
  rpms:
  - rpm-ostree-toolbox
sigul:
  bugzilla: null
  requires:
  - python2-urlgrabber
  rpms:
  - sigul-bridge
snake:
  bugzilla: null
  requires:
  - yum
  rpms:
  - snake
system-config-kickstart:
  bugzilla: null
  requires:
  - yum
  rpms:
  - system-config-kickstart
yum-axelget:
  bugzilla: null
  requires:
  - yum
  - yum-plugin-fastestmirror
  rpms:
  - yum-axelget
yum-rhn-plugin:
  bugzilla: null
  requires:
  - yum
  rpms:
  - yum-rhn-plugin

Updated: 2019-01-23

Generated with: https://gist.github.com/dmnks/787b121503ba1e9d1565d58b4a4e3a62

$ python3 deps.py createrepo yum yum-langpacks yum-utils yum-metadata-parser yum-updatesd python-urlgrabber

Contingency Plan

  • Contingency mechanism: Do not remove the packages in the current release.
  • Contingency deadline: Beta Freeze
  • Blocks release? No
  • Blocks product? No

Documentation

N/A

Release Notes

Inform end-users about removing the YUM 3 stack and definitive migration to DNF.