Features/Python 2.7

From FedoraProject

< Features(Difference between revisions)
Jump to: navigation, search
(planner is done)
(orca is done)
Line 68: Line 68:
 
** pyclutter
 
** pyclutter
 
* lazygal fails with [http://koji.fedoraproject.org/koji/getfile?taskID=2344725&name=build.log  AttributeError: 'module'  object has no attribute 'sysconfig' (distutils module)]
 
* lazygal fails with [http://koji.fedoraproject.org/koji/getfile?taskID=2344725&name=build.log  AttributeError: 'module'  object has no attribute 'sysconfig' (distutils module)]
* [http://koji.fedoraproject.org/koji/taskinfo?taskID=2344797 orca] needs:
 
** gnome-python2-bonobo
 
** gnome-python2-gconf
 
** gnome-python2-libwnck
 
 
* [http://koji.fedoraproject.org/koji/getfile?taskID=2345165&name=root.log python-LightBox] needs
 
* [http://koji.fedoraproject.org/koji/getfile?taskID=2345165&name=root.log python-LightBox] needs
 
** TurboGears (and various other packages)
 
** TurboGears (and various other packages)

Revision as of 04:01, 28 July 2010


Contents

Python 2.7

Summary

Update the system Python 2 stack in Fedora from 2.6 to 2.7

Owner

  • Email: <dmalcolm@redhat.com>

Current status

  • Targeted release: Fedora 14
  • Last updated: 2010-07-27
  • Percentage of completion: 90%

Packages now being built into rawhide as normal

We moved 931 builds from dist-f14-py27-rebuild to dist-f14 on 2010-07-27; a further 26 builds in dist-f14-py27-rebuild had newer builds in rawhide, so we'll need to rebuild these.

Rebuilding packages against python 2.7 (and also gcc4.5, swig2.0, gtk changes): currently 108 failing rebuilds

Packages waiting on other packages

Packages with build errors

Common bugs

FIXED: gobject-introspection

gobject-introspection's /usr/bin/g-ir-scanner was incompatible with python 2.7, this led to anything building a .gir file failing.

This was blocking:

FIXED: SWIG

Various swig users fail to find the python libraries during "configure":

checking for Python library path... find: `/usr/lib/python/config/': No such file or directory
find: `/usr/lib/python/': No such file or directory
/usr/lib
checking python extra libraries... 

Relevant part of "configure" seems to be

        python_path=`echo $PYTHON | sed "s,/bin.*$,,"`
        for i in "$python_path/lib/python$PYTHON_VERSION/config/" "$python_path/lib/python$PYTHON_VERSION/" "$python_path/lib/python/config/" "$python_path/\
lib/python/" "$python_path/" ; do

This sets $python_path to "/usr", and then looks for config within /usr/lib, which fails on 64-bit: the relevant files are in /usr/lib64 (why did this work before? is this a python change?)

Before this we see errors like this:

checking for SWIG version... 2.0.0
configure: WARNING: SWIG version >= 1.3.17 is required.  You have 2.0.0.  You should look at http://www.swig.org

The test in the configure seems to look for an exact match on major and minor, and >= on the patch level, and thus "2" -ne "1" seems to leave SWIG_LIB unset, and could be the actual problem here.

A workaround is to add this:

# For now (workaround for SWIG major-version bump)
BuildRequires:  autoconf

%prep
(snip)
# Fixup expected version of SWIG:
sed -i -e "s|AC_PROG_SWIG(1.3.17)|AC_PROG_SWIG(2.0.0)|" configure.in
# and rebuild the configure script:
autoconf

This was blocking:

Detailed Description

  • Python 2.7 was released on 2010-07-03

This will require a rebuild of everything with Requires: python(abi) = 2.6. See Mass_Rebuild_SOP for how we do a full rebuild of everything - hopefully we can adapt the scripts there to accomplish the rebuild needed for Python 2.7. See Features/Python_2.7/MassRebuild for notes on this specific rebuild.

Porting

Hopefully, little to no porting will be required.

Some notes on changes that may require porting are given on the upstream wiki here: http://docs.python.org/dev/whatsnew/2.7.html#porting-to-python-2-7

Benefit to Fedora

Fedora aims to showcase the latest in free and open source software - we should have the most recent release of Python.

Scope

Python is pervasive in Fedora. Everything from yum to system-config-* to anaconda to pungi is written in Python.

How To Test

Interested testers do not need special hardware. If you have a favorite Python script, module, or application, please test it with Python 2.7 and verify that it still works as you expect.

My own test plan:

  • Smoketest of the interpreter
  • Run the upstream regression test suite
  • Ensure that yum still works
  • Ensure that anaconda still works

User Experience

Users should not notice any difference, other than the availability of the 2.7 interpreter


Dependencies

The list is too large to include here.

repoquery --whatrequires --alldeps -s "python(abi) = 2.6" | sort -u

indicates approximately 1200 rpms

Contingency Plan

  • There is none. This is do-or-die.

Documentation

What’s New in Python 2.7

Release Notes

The system Python 2 stack has been upgraded to 2.7. For a list of changes see http://docs.python.org/dev/whatsnew/2.7.html

Comments and Discussion