Python 3.4.0 final has been released

Bohuslav Kabrda bkabrda at redhat.com
Mon Mar 17 09:23:02 UTC 2014


----- Original Message -----
> On 03/17/2014 05:53 PM, Nick Coghlan wrote:
> > Direct link to the What's New guide:
> > http://docs.python.org/3/whatsnew/3.4.html

Thanks, Nick!

> Rereading that, I remembered there's more to it for Fedora than just
> "hey, here's a shiny new version of Python 3 to be packaged", and I
> don't mean the stuff Slavek is working on to let ensurepip use the
> system pip installation as a base.
> 
> Specifically, there may need to be a security-related change to the
> Python packaging guidelines, covering the appropriate use of isolated
> mode: http://docs.python.org/3/whatsnew/3.4.html#whatsnew-isolated-mode

What do you have in mind regarding packaging guidelines?

> There's also a simpler workaround for the issues with the standard
> streams when running things in the POSIX locale: setting
> "PYTHONIOENCODING=:surrogateescape" will deal with it for user mode scripts.
> 
> Cheers,
> Nick.

Just BTW me and Matej Stuchlik are working on builds of Python 3.4 in Copr [1]. Everything got a bit more complex due to ensurepip:
- python3 should have "Requires: python3-setuptools python3-pip" (this has already been discussed previously on this list, just mentioning)
- I've created the rewheel library [2] that has a simple purpose of being able to repack a wheel from system-installed wheels
- this means that we need system setuptools and pip packaged as wheels (packaging as wheels has not been standardized yet, so I'm just approaching it from the best angle I could come up with, see patches [3] and [4])
- to package system setuptools and pip as wheels, we first need to package them as normal packages, because we need these packages to be able to create wheels :)
- which creates a nice dependency/boostraping cycle:

1) build python3 (no requires on setuptools or pip)
2) build python3-setuptools and python3-pip as normal python packages (not wheels)
3) build python3-wheel (we don't need this to be wheel-in-RPM ATM)
4) build python3-setuptools and python-pip (as wheel-in-RPM)
5) build python3 (add Requires: python3-setuptools, python3-pip)

I've got example patches of building setuptools and pip as wheel-in-RPM at [3] and [4] (note that the pip patch also contains some downstream only patches that I've created to achieve what we need; upstream won't probably accept them in this precise format, but the functionality should get upstream in some form).

Right now, we're working on integrating rewheel into ensurepip (a patch for that is at [5] - it's for beta4 IIRC).

We'll keep this list posted on the progress. When we manage to make this whole process work satisfiably, we'll:
1) formally document the whole process described above
2) start discussing options of accepting rewheel in Python upstream
3) start rebuilding more python3-* packages in the Copr repo to make sure that nothing (or nearly nothing) breaks and we can actually go on with the proposed Fedora Change

And then we'd like to concentrate on the Python3-as-a-default switch for a while.

Hope this all makes sense, all comments/suggestions are appreciated.

Slavek.

[1] http://copr.fedoraproject.org/coprs/bkabrda/python-3.4/builds/
[2] https://github.com/bkabrda/rewheel
[3] https://github.com/bkabrda/rewheel/blob/master/python-setuptools-spec.patch
[4] https://github.com/bkabrda/rewheel/blob/master/python-pip-spec.patch
[5] https://github.com/bkabrda/rewheel/blob/master/ensurepip-rewheel.patch


More information about the python-devel mailing list