From Fedora Project Wiki
mNo edit summary
mNo edit summary
Line 60: Line 60:
** Drop Fleet Command's Python 2 desktop profile package  
** 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.
** 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: [https://pagure.io/releng/issue/7760 #7760] There is no releng work needed for this change.
* Release engineering: [https://pagure.io/releng/issue/7760 #7760] There is no releng work needed for this change.

Revision as of 08:34, 5 September 2018

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

  • Targeted release: Fedora 30
  • Last updated: 2018-09-05
  • Tracker bug: <will be assigned by the Wrangler>

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 change proposal.

Scope

  • Proposal owners:
    • Release FreeIPA 4.8.0 until mid January 2019
    • Build and deliver FreeIPA 4.8.0 packages before 2019-01-29
  • 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.