From Fedora Project Wiki

FreeIPA Python 2 Removal

Summary

FreeIPA 4.8 will require Python 3.6+ and therefore no longer provide Python 2 packages on Fedora 30.

Owner

Current status

Detailed Description

On Fedora 27 to 29, FreeIPA client and server packages use Python 3 default. Additionally FreeIPA provides Python 2 packages. The Python 2 packages are not used by FreeIPA, but are merely provided for backwards compatibility, e.g. Python 2 applications that utilize python2-ipaclient to communicate with a FreeIPA server.

The FreeIPA upstream project is going to drop support for Python 2.7 in the upcoming FreeIPA release 4.8.0. Python 2 support is not only causing development and testing overhead. It's also blocking improvements like using new python-based 389-DS installer, use of new Python features, and more. The removal of Python 2 support was announced on the FreeIPA development on 2018-09-03.

Removed packages

  • python2-ipalib
  • python2-ipaclient
  • python2-ipaserver
  • python2-ipatests
  • python2-ipa-desktop-profile-client (dependency)

Benefit to Fedora

The removal of Python 2 support is in alignment with Mass Python 2 Package Removal proposal. FreeIPA depends has a large list of dependencies. The change makes it possible to drop more Python 2 packages.

Scope

  • Proposal owners:
    • Release FreeIPA 4.8.0 until mid January 2019
    • Build and deliver FreeIPA 4.8.0 packages before 2019-01-29
    • Add removed packages to fedora-obsolete-packages.
  • Other developers:
    • Port Fleet Commander's fc-admin to Python 3 and no longer depend on FreeIPA's Python 2 packages.
    • Drop Fleet Command's Python 2 desktop profile package
    • Port Ipsilion Project to Python 3 and no longer depend on FreeIPA's Python 2 packages.

FreeIPA team is willing to help to aforementioned projects with their port to use Python 3 FreeIPA libraries.

  • Release engineering: #7760 There is no releng work needed for this change.
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

The removal of Python 2 support will not affect FreeIPA server or client systems. However 3rd party applications and scripts may be affected. These applications and scripts must be ported to Python 3.

On upgrade from Fedora 29, previously installed python2-ipa* packages cannot be retained. All python[23]-ipa* packages have a hard version dependency on common files with a requires line like Requires: freeipa-common = %{version}-%{release}. This requires cannot be satisfied for existing python2-ipa*. Therefore python2-ipa* packages have to added to fedora-obsolete-packages package. This will ensure that the Python 2 packages are uninstalled on system upgrade.

How To Test

  • A fresh Fedora 30 installation will no longer have python2-ipa* packages available.
  • On upgrade from Fedora 29, all python2-ipa* packages are uninstalled.

User Experience

N/A

Dependencies

  • fedora-obsolete-packages
  • ipsilon-tools-ipa
  • python2-ipa-desktop-profile-client
  • fleet-commander-admin

Contingency Plan

  • Contingency mechanism: Keep shipping FreeIPA 4.7
  • Contingency deadline: 2019-01-31
  • Blocks release? No
  • Blocks product? N/A

Documentation

This page is the main documentation.

Also see https://pythonclock.org/ and Mass Python 2 Package Removal.

Release Notes

FreeIPA no longer supports Python 2. All python2-ipa* packages and python-ipa* aliases are discontinued.