From Fedora Project Wiki

< Changes

Revision as of 00:26, 1 August 2017 by Zbyszek (talk | contribs) (first version)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Rename Python2 Subpackages


The python2 subpackages of python packages are renamed to have the "python2-" prefix. For example, python-achoo is renamed to python2-achoo, and ATpy is renamed to python2-atpy. Proper Provides and Obsoletes for the old names are generated.


Current status

  • Targeted release: Fedora 28
  • Last updated: 2017-08-01
  • Tracker bug: <will be assigned by the Wrangler>

Detailed Description

Current guidelines specify that python2 subpackages should have a name that starts with python2-. For about 850 packages this is not the case. To avoid burning maintainer time doing this trivial change, a script [1] will be used to automatically update as many spec files as possible (about 580), and a subset of the remaining 250 packages will be updated by hand.

Benefit to Fedora

By doing the update in one fell swoop we go directly to the state where it is possible to depend on the new python2- names. This makes packages in the distribution consistent with the guidelines and with one another.

%python_provide macro will be used for all updated packages. When the time comes and this macro is updated to drop python- names from python2 subpackages, this will have the desired effect.

Use can more easily search for python2- packages using dnf list and dnf install python2-<TAB>.


  • Proposal owners:
    • apply changes to the spec files, first the ones which can be done automatically, and then the rest, time permitting.
    • rebuild packages

The changes will start to be applied after F27 is branched.

The change should be fully backwards compatible, to when packages are rebuilt with the updated name, no other changes should be necessary.

  • Other developers:
    • check if their packages were updated properly (some bugs are bound to creep in).

If maintainers of some package want to opt-out of this change, it is enough if they add the %python_provide macro. This is currently required by the guidelines and taken as a sign that the package does not need updating.

  • Release engineering: n/a
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

Everything should be backwards compatible. Provides/Obsoletes for the old name are automatically generated using %python_provide, so both inter-package dependencies on the old name will continue to work, and upgrades should be unaffected too.

How To Test

Install python packages and check that no conflicts arise.

User Experience

Python2 subpackages will have consistent python2- prefixed names.


After this change is done, it'll be possible to start requiring that any dependencies on python2 packages use the new prefix, and e.g. automatically change any Requires: python-foo to Requires: python2-foo. But this is not in the scope of this Change.

Contingency Plan

If the renaming causes issues for any particular package, it should be fixed by hand. If the renaming is not finished, consistency will not be achieved, but otherwise that should be OK. Essentially, there's no contingency plan, except to abandon the change halfway.

  • Contingency deadline: N/A
  • Blocks release? No
  • Blocks product? No



Release Notes