From the Fedora devel list. This will have some impact on our spec file.
I just built Python 3.2a1 into rawhide: http://koji.fedoraproject.org/koji/buildinfo?buildID=191382 so the meaning of "python3" in rawhide just jumped from Python 3.1 to Python 3.2
A new opcode (SETUP_WITH [1]) was added, to speed up the "with" statement, and this changes the bytecode format for python 3. python3's provides changes from: python(abi) = 3.1 libpython3.1.so.1.0() to python(abi) = 3.2 libpython3.2.so.1.0()
So once that package hits the buildroot for rawhide, everything that builds a python3 package or subpackage will need to be rebuilt, to use the new bytecode format.
Thankfully this will be a much smaller-scale rebuild than the recent 2.7 rebuilds.
To liven things up a bit, the layout of how Python stores cached bytecode has changed somewhat.
The full details can be seen at: http://www.python.org/dev/peps/pep-3147/
but to summarize, where before you had: foo/init.py foo/bar.py foo/baz.py with cached bytecode: foo/init.pyc foo/init.pyo foo/bar.pyc foo/baz.pyo foo/bar.pyc foo/baz.pyo with Python 3.2 onwards you now have a pycache directory: foo/init.py foo/bar.py foo/baz.py foo/pycache/ foo/pycache/init.cpython-32.pyc foo/pycache/init.cpython-32.pyo foo/pycache/foo.cpython-32.pyc foo/pycache/foo.cpython-32.pyo foo/pycache/bar.cpython-32.pyc foo/pycache/bar.cpython-32.pyo
and the files are explicitly for "CPython 3.2" (the "32" above refers to the python version, not the architecture; this threw me initially).
The idea is to permit sharing of modules between multiple parallel-installable versions of Python.
So you'll need to update the %files for python3 subpackages, listing something like: foo/pycache to capture the directory and the bytecode files within.
Hope this makes sense Dave
[1] http://svn.python.org/view?view=rev&revision=73597
master:
Metadata Update from @rcritten: - Issue assigned to pspacek - Issue set to the milestone: FreeIPA 4.5
Log in to comment on this ticket.