From Mageia wiki
Jump to: navigation, search

Summary

Distinguish all Python 2 and Python 3 packages with a new convention:

  • Python 2 packages rename to "python2-PKGNAME" Keep Python 2 packages as they are (so use the standard prefix "python-" or without additional string eg. "waf"). Consider renaming for {MgaX, X>3}
  • Python 3 packages rename to "python3-PKGNAME" or "PKGNAME-python3"

Import missing libraries for Python 3.

Owner

  • Name: Kamil Rytarowski (mga: kamil)
  • Email: kamil at mageia dot org

Resources

Our upstream for Python packages shall be Fedora.

Current status

  • Targeted release: Mageia 3
  • Last updated: 2012/07/03
  • Percentage of completion: unknown (more then 0% is already done, but without order)
  • What is already done:
    • Python3 and its subpackages
    • python3-pyparsing
    • waf-python3
    • python3-cairo
    • python3-sip
    • python3-setuptools and subpackages
    • python3-httplib
    • python3-libforensic
  • TODO

Random list from Fedora [1]

    • boost-python3-1.48.0-16.fc18.i686.rpm - Run-Time component of boost python library for Python 3
    • dpm-python3-1.8.3.1-2.fc18.i686.rpm - Disk Pool Manager (DPM) python bindings
    • dreampie-python3-1.1.1-1.fc17.noarch.rpm - Support for running the python3 interpreter from dreampie
    • gcc-python3-debug-plugin-0.9-2.fc18.i686.rpm - GCC plugin embedding Python 3 debug build
    • gcc-python3-plugin-0.9-2.fc18.i686.rpm - GCC plugin embedding Python 3
    • lfc-python3-1.8.3.1-2.fc18.i686.rpm - LCG File Catalog (LFC) python bindings
    • libselinux-python3-2.1.10-5.fc18.i686.rpm - SELinux python 3 bindings for libselinux
    • libsemanage-python3-2.1.7-1.fc18.i686.rpm - semanage python 3 bindings for libsemanage
    • mysql-connector-python3-0.3.2-3.fc17.noarch.rpm - MySQL Connector for Python 3
    • nordugrid-arc-python3-1.1.1-1.fc18.i686.rpm - ARC Python wrapper
    • python3-3.2.3-10.fc18.i686.rpm - Version 3 of the Python programming language aka Python 3000
    • python3-amqplib-1.0.2-3.fc17.noarch.rpm - Client library for AMQP
    • python3-ansi2html-0.9.0-4.fc18.noarch.rpm - Python 3 module that converts text with ANSI color to HTML
    • python3-anyjson-0.3.1-3.fc17.noarch.rpm - Wraps the best available JSON implementation available
    • python3-asciitable-0.8.0-2.fc17.noarch.rpm - Extensible ASCII table reader and writer
    • python3-ATpy-0.9.6-1.fc18.noarch.rpm - Astronomical Tables in Python
    • python3-auth.credential-0.6-1.fc18.noarch.rpm - Python abstraction of a credential
    • python3-babel-0.9.6-2.fc17.noarch.rpm - Library for internationalizing Python applications
    • python3-beaker-1.5.4-3.fc18.noarch.rpm - WSGI middleware layer to provide sessions
    • python3-BeautifulSoup-3.2.1-1.fc18.noarch.rpm - Monitor filesystem events with Python under Linux
    • python3-bpython-0.11-1.fc18.noarch.rpm - Fancy curses interface to the Python 3 interactive interpreter
    • python3-cairo-1.10.0-2.fc17.i686.rpm - Python 3 bindings for the cairo library
    • python3-cairo-devel-1.10.0-2.fc17.i686.rpm - Libraries and headers for python3-cairo
    • python3-chardet-2.0.1-6.fc17.noarch.rpm - Character encoding auto-detection in Python
    • python3-cherrypy-3.2.0-0.rc1.r2567.1.fc17.4.noarch.rpm - Pythonic, object-oriented web development framework
    • python3-coverage-3.5.2-0.1.b1.fc18.i686.rpm - Code coverage testing module for Python 3
    • python3-crypto-2.6-1.fc18.i686.rpm - Cryptography library for Python 3
    • python3-cvxopt-1.1.5-2.fc18.i686.rpm - A Python3 Package for Convex Optimization
    • python3-decorator-3.3.3-1.fc18.noarch.rpm - Module to simplify usage of decorators in python3
    • python3-deltarpm-3.6-0.8.20110223git.fc18.i686.rpm - Python bindings for deltarpm
    • python3-devel-3.2.3-10.fc18.i686.rpm - Libraries and header files needed for Python 3 development
    • python3-dirq-1.2.2-1.fc18.noarch.rpm - Directory based queue for python3
    • python3-docutils-0.8.1-2.fc17.noarch.rpm - System for processing plaintext documentation for python3
    • python3-easygui-0.96-1.fc17.noarch.rpm - Very simple, very easy GUI programming in Python3
    • python3-enchant-1.6.5-4.fc17.noarch.rpm - Python 3 bindings for Enchant spellchecking library
    • python3-execnet-1.1-1.fc18.noarch.rpm - Elastic Python Deployment
    • python3-feedparser-5.1.2-2.fc18.noarch.rpm - Parse RSS and Atom feeds in Python
    • python3-flexmock-0.9.4-1.fc18.noarch.rpm - Testing library that makes it easy to create mocks, stubs and fakes
    • python3-gobject-3.3.3.1-2.fc18.i686.rpm - Python 3 bindings for GObject Introspection
    • python3-html5lib-0.95-1.fc18.noarch.rpm - A python based HTML parser/tokenizer
    • python3-httplib2-0.7.4-4.fc18.noarch.rpm - A comprehensive HTTP client library
    • python3-inotify-0.9.3-1.fc17.noarch.rpm - Monitor filesystem events with Python under Linux
    • python3-jinja2-2.6-2.fc17.noarch.rpm - General purpose template engine
    • python3-libs-3.2.3-10.fc18.i686.rpm - Python 3 runtime libraries
    • python3-lxml-2.3.3-1.fc17.i686.rpm - ElementTree-like Python 3 bindings for libxml2 and libxslt
    • python3-mako-0.5.0-2.fc17.noarch.rpm - Mako template library for Python 3
    • python3-manuel-1.6.0-1.fc18.noarch.rpm - Build tested documentation
    • python3-markdown-2.1.1-1.fc18.noarch.rpm - Markdown implementation in Python
    • python3-markdown2-2.0.0-1.fc18.noarch.rpm - A fast and complete Python implementation of Markdown
    • python3-markupsafe-0.11-4.fc17.i686.rpm - Implements a XML/HTML/XHTML Markup safe string for Python
    • python3-messaging-0.10-1.fc18.noarch.rpm - Python abstraction of a "message"
    • python3-mglob-0.4-5.fc17.noarch.rpm - Enhanced file name globbing module
    • python3-minimock-1.2.7-2.fc17.noarch.rpm - The simplest possible mock library
    • python3-mpi4py-mpich2-1.3-2.fc17.i686.rpm - Python bindings of MPI, MPICH2 version
    • python3-mpi4py-openmpi-1.3-2.fc17.i686.rpm - Python bindings of MPI, Open MPI version
    • python3-networkx-1.6-2.fc17.noarch.rpm - Creates and Manipulates Graphs and Networks
    • python3-nose1.1-1.1.2-5.fc17.noarch.rpm - Discovery-based unittest extension for Python3
    • python3-nose-1.1.2-2.fc17.noarch.rpm - Discovery-based unittest extension for Python3
    • python3-numpy-1.6.2-1.fc18.i686.rpm - A fast multidimensional array facility for Python
    • python3-numpy-f2py-1.6.2-1.fc18.i686.rpm - f2py for numpy
    • python3-pbs-4.3.3-1.fc18.i686.rpm - PBS/Torque python module
    • python3-pip-1.1-1.fc18.noarch.rpm - Pip installs packages. Python3 packages. An easy_install replacement
    • python3-ply-3.4-1.fc18.noarch.rpm - Python Lex-Yacc
    • python3-postgresql-1.0.2-2.fc17.i686.rpm - Connect to PostgreSQL with Python 3
    • python3-profilehooks-1.6-1.fc18.noarch.rpm - Decorators for profiling/timing/tracing individual functions
    • python3-psutil-0.5.1-1.fc18.i686.rpm - A process utilities module for Python 3
    • python3-psycopg2-2.4.5-1.fc18.i686.rpm - A PostgreSQL database adapter for Python 3
    • python3-py-1.4.9-2.fc18.noarch.rpm - Library with cross-python path, ini-parsing, io, code, log facilities
    • python3-pycmd-1.0-5.fc17.noarch.rpm - Tools for managing/searching Python related files
    • python3-pyfits-3.0.8-1.fc18.i686.rpm - Python interface to FITS
    • python3-pygments-1.4-4.fc17.noarch.rpm - Syntax highlighting engine written in Python 3
    • python3-pygpgme-0.3-1.fc18.i686.rpm - Python3 module for working with OpenPGP messages
    • python3-pyke-1.1.1-7.fc17.noarch.rpm - Knowledge-based inference engine
    • python3-pyp2rpm-0.5.1-1.fc18.noarch.rpm - Convert Python packages to RPM SPECFILES
    • python3-pyparsing-1.5.6-3.fc17.noarch.rpm - An object-oriented approach to text processing (Python 3 version)
    • python3-PyQt4-4.9.4-1.fc18.i686.rpm - Python 3 bindings for Qt4
    • python3-PyQt4-devel-4.9.4-1.fc18.i686.rpm - Python 3 bindings for Qt4
    • python3-pyro-4.9-2.fc17.noarch.rpm - Python Remote Objects
    • python3-pyshp-1.1.4-2.fc18.noarch.rpm - Pure Python 3 read/write support for ESRI Shapefile format
    • python3-pytest-2.2.4-1.fc18.noarch.rpm - Simple powerful testing with Python
    • python3-PyYAML-3.10-3.fc18.i686.rpm - YAML parser and emitter for Python
    • python3-requests-0.13.1-1.fc18.noarch.rpm - HTTP library, written in Python, for human beings
    • python3-restauth-0.5.1-4.fc17.noarch.rpm - Reference implementation of RestAuth specification in Python
    • python3-restauth-common-0.5.1-4.fc17.noarch.rpm - Python module containing classes used by both RestAuth server/client
    • python3-scipy-0.10.1-1.fc18.i686.rpm - Scipy: Scientific Tools for Python
    • python3-setproctitle-1.1.3-2.fc18.i686.rpm - Python module to customize a process title
    • python3-setuptools-0.6.27-2.fc18.noarch.rpm - Easily build and distribute Python 3 packages
    • python3-simplegeneric-0.8-3.fc17.noarch.rpm - Simple generic functions (similar to Python's own len(), pickle.dump(), etc.)
    • python3-sip-4.13.3-1.fc18.i686.rpm - SIP - Python 3/C++ Bindings Generator
    • python3-sip-devel-4.13.3-1.fc18.i686.rpm - Files needed to generate Python 3 bindings for any C++ class library
    • python3-six-1.1.0-2.fc18.noarch.rpm - Python 2 and 3 compatibility utilities
    • python3-sleekxmpp-1.0-0.9.beta2.fc17.noarch.rpm - Flexible XMPP client/component/server library for Python
    • python3-smbc-1.0.13-1.fc18.i686.rpm - Python3 bindings for libsmbclient API from Samba
    • python3-smbpasswd-1.0.1-18.fc17.i686.rpm - Python SMB Password Hst Generator Module for Python 3
    • python3-sphinx-1.1.3-1.fc18.noarch.rpm - Python documentation generator
    • python3-sqlalchemy-0.7.8-1.fc18.i686.rpm - Modular and flexible ORM library for python
    • python3-stomppy-3.0.5-1.fc18.noarch.rpm - Python stomp client for messaging for python3
    • python3-straight-plugin-1.1.1-0.8.20111110.git57ef11c.fc17.noarch.rpm - Python plugin loader
    • python3-tempita-0.5.1-1.fc18.noarch.rpm - A very small text templating language
    • python3-test-3.2.3-10.fc18.i686.rpm - The test modules from the main python 3 package
    • python3-tkinter-3.2.3-10.fc18.i686.rpm - A GUI toolkit for Python 3
    • python3-tools-3.2.3-10.fc18.i686.rpm - A collection of tools included with Python 3
    • python3-tornado-2.2.1-1.fc18.noarch.rpm - Scalable, non-blocking web server and tools
    • python3-tornado-doc-2.2.1-1.fc18.noarch.rpm - Examples for python-tornado
    • python3-urwid-1.0.0-3.fc17.i686.rpm - Urwid console user interface library for Python 3
    • python3-zmq-2.2.0-1.fc18.i686.rpm - Software library for fast, message-based applications
    • python3-zmq-tests-2.2.0-1.fc18.i686.rpm - Software library for fast, message-based applications
    • python3-zope-event-3.5.1-2.fc17.noarch.rpm - Zope Event Publication (Python 3)
    • python3-zope-fixers-1.0-2.fc18.noarch.rpm - 2to3 fixers for Zope
    • uwsgi-plugin-python3-1.0.4-1.fc17.i686.rpm - uWSGI - Plugin for Python 3.2 support
    • waf-python3-1.7.0-0.2.pre5.fc18.noarch.rpm - Python3 support for waf

Detailed Description

Base our specs with Python packages on Fedora, and make them produce Python 2 and Python 3 packages. Distinguish Py2 and Py3 environment, make order with virtual packages (provides) and dependencies (against simply python). Promote Py2 for Mga3, make the global switch in Mga to Py3 simpler. External References: Fedora

All corresponding packages for Python 2 and Python 3 will be packaged in a single .spec.

Why it would be good for Mageia to include it

Py3 support in Mageia is very limited (there is short library base), there are dependency potential and hidden problems with providing Py packages without distinguishing Py2 <=> Py3.

Test case

Software / Packages Dependencies

Python 3 packages will be mostly outside the rest of the software, so there shouldn't be any problems with the core system.

What could disrupt development of this new feature

Just human resource time and work that has to be done.

Planning

  1. Prepare python3-* packages.
  2. Prepare .macros - all Python3 software is going to have "python3-" or "python3_" prefix.
  3. Double check dependencies, provides, requirements and link everything against Python 2.
  4. Answer reports in Bugzilla.

Contingency

Continue works in Mga4.

Release Notes

Documentation

Python modules in our repositories that can be also ported to Python 3

  • python-beautifulsoup4
  • python-cssutils
  • python-d2to1
  • python-django
  • python-flask
  • python-flexmock
  • python-greenlet
  • python-html2text
  • python-icu
  • python-irc
  • python-itsdangerous
  • python-journalctl
  • python-jsonschema
  • python-kombu
  • python-lockfile
  • python-minimock
  • python-mpmath
  • python-netaddr
  • python-networkx
  • python-opencl
  • python-pandas
  • python-parsing
  • python-passlib
  • python-pastedeploy
  • python-pecan
  • python-pep8
  • python-ply
  • python-prettytable
  • python-pycuda
  • python-pyftpdlib
  • python-pymongo
  • python-pypdf (see https://pypi.python.org/pypi/PyPDF2)
  • python-pyquery
  • python-pyro and it is the same as python-pyro4
  • python-pysendfile
  • python-qt5
  • python-redis
  • python-requests
  • python-setproctitle
  • python-setuptools-git
  • python-simplegeneric
  • python-stevedore
  • python-sunpy
  • python-waitress
  • python-webtest
  • python-werkzeug
  • python-wsme
  • pyudev