DeveloperWiki:Python Todo List
Contents
Introduction
This article is part of the DeveloperWiki.
Python3 transition
The final major release for the python 2 branch (2.7) is scheduled for 2010-07-03 [1]. As the python language moratorium is currently in effect [2], there will be no new language features and the transistion from 2.6 to 2.7 should be a simple one... so, lets make it difficult again by doing a python 2-to-3 transition in Arch at the same time! Just to make matters worse, we will also enable unicode (UCS4) support in python2 at the same time, which requires all python modules to be rebuilt
The plan
- create a new python2 package (no /usr/bin/python symlink, --enable-unicode=usc4)
- update python to python-3.1.x (/usr/bin/python points at python3.1)
- rebuild all python packages, in partcular check
- packages which link to libpython2.6.so
- packages with files in the python2.6 path
- packages with python plugins
During the rebuild, care needs to be taken to make sure all rebuilt packages are really using the python2 binary. Most software does this automatically when built in a clean chroot containing only a python2 binary, but some need a sed line added to fix "/usr/bin/python" or "/usr/bin/env python" usage. All rebuilt packages will need to depend (directly or indirectly) on python2. A final scan of the repos needs to be make to ensure all cases of "/usr/bin/python" or "/usr/bin/env python" have been fixed.
Package naming
To avoid a major headache, no changes to package naming are to be mandated. If a package maintainer would like to or needs to maintain a version of a library for python-2 and python-3, then the packages should be named like:
python2-imaging (for python2) python-imaging (for python)
Rebuild List
Linking to libpython-2.6.so
adesklets adns-python alsa-lib avant-window-navigator biopython brltty bzr canorus cddb-py cinepaint claws-mail-extra-plugins clearsilver cx_freeze dia duplicity ekg ekg2 emesene farsight2 finch fontforge gammu gcompris gdal gdb gedit glom gnome-commander gnome-menus gnome-python gnome-python-desktop gnome-python-extras gnumeric go-openoffice gpsd gstreamer0.10-python guake gvim ibus-anthy imdbpy inn kaa-base kaa-imlib2 kaa-metadata kdebindings-python kdeedu-kig kdeutils-superkaramba libdesktop-agnostic libdnet libimobiledevice libimobiledevice libopensync libplist libtorrent-rasterbar libxml2 listen mediaproxy mercurial mirage miro mod_python mod_wsgi mysql-python net-snmp obexftp opencv openlh-client openlh-core openoffice-base openoffice-base-beta openoffice-base-devel picard postgresql psyco pycrypto pycups pygoocanvas pyid3lib pymad pyogg pyopenssl pyorbit pypanel pypgsql pyqt pysmbc pysol-sound-server pystatgrab python-bsddb python-certtool python-cheetah python-cjson python-daap python-egenix-mx-base python-fuse python-geoip python-gnutls python-imaging python-iwscan python-jinja python-lcms python-ldap python-lxml python-m2crypto python-matplotlib python-numarray python-numeric python-numpy python-openbabel python-psycopg2 python-pybluez python-pychm python-pycurl python-pygame python-pyspi python-pysqlite python-pyxmpp python-reportlab python-scipy python-urwid python-vorbissimple python-wpactrl python-yaml pyvorbis pyxml qtiplot quodlibet rdiff-backup rhythmbox rrdtool scribus sk1 sonata tagpy tdb telepathy-farsight thuban thuban-svn totem twisted uniconvertor vigra virtualbox-ose weechat wxpython xchat xchat-gnome xdelta3 xmms2
Packages with files in old python paths
These packages have files in /usr/lib/python${ver}/site-packages/ or in /usr/include/python-${ver}
adesklets adns-python alacarte alunn anki antlr asciidoc at-spi avahi avant-window-navigator awn-extras-applets beautiful-soup billreminder biopython bittorrent blueman boost brltty buildbot bzr bzrtools ccsm cddb-py cdemu-client cgmail cherrypy cinepaint clearsilver cnetworkmanager compizconfig-python cx_freeze dbus-python deluge denyhosts deskbar-applet diacanvas django docky docutils dot2tex duplicity ecasound epydoc eric eric-plugins everygui exo farsight2 fetchmail fontforge freevo fusion-icon gamin gammu gaupol gazpacho gdal getmail gimmie git glipper glom gnome-applets gnome-blog gnome-doc-utils gnome-games gnome-menus gnome-python gnome-python-desktop gnome-python-extras gnuconcept gogh gourmet gpodder gpsd gstreamer0.10-python gtk-recordmydesktop gtk-vnc gufw gutenpy hamster-applet hgsvn hplip httplib2 ibamtray ibus ibus-anthy imdbpy iotop ipython kaa-base kaa-imlib2 kaa-metadata kdebase-workspace kdebindings-python kiwi ktoblzcheck kungfu lastfmsubmitd libbeagle libdesktop-agnostic libdnet libgpod libgsf libgsf-gnome libieee1284 libimobiledevice libnewt libopensync libplist libproxy libpst librtfcomp libtorrent-rasterbar libvirt libxml2 libxslt mediaproxy mercurial metakit mezogis mirage miro mitter mlt-python-bindings mod_python moinmoin moiosms musicbrainz mutagen mysql-python mythtv namcap neatx net-snmp nfoview nicotine nmap obexftp obmenu ocfs2-tools offlineimap omniorb opencv openlh-client openlh-core openlh-server orca pacbuild pacupdate panflute papyon pebrot pessulus picard planner protobuf-python pssh psyco pycairo pycddb pychecker pychess pycrypto pycups pydb pyglet pygments pygobject pygoocanvas pygtk pygtksourceview2 pyid3lib pyinotify pylint pymad pympc pympd pyneighborhood pyogg pyopenssl pyorbit pypanel pyparsing pypgsql pyqt3 pyqt pyrex pyrtf pysmbc pysolfc pysol-sound-server pystatgrab python-application python-babel python-boto python-bsddb python-certtool python-chardet python-cheetah python-cjson python-clientform python-configobj python-constraint python-daap python-dateutil python-distutils-extra python-dnspython python-egenix-mx-base python-eyed3 python-feedparser python-flup python-formencode python-fpconst python-fuse python-galago python-galago-gtk python-gdata python-genshi python-geoip python-geotypes python-gnupginterface python-gnutls python-gtkglext python-html5lib python-imaging python-iwscan python-jinja python-lcms python-ldap python-logilab-astng python-logilab-common python-lxml python-m2crypto python-mako python-matplotlib python-mechanize python-memcached python-mpd python-mpdclient2 python-musicbrainz2 python-mygpoclient python-nose python-notify python-numarray python-numeric python-numpy python-openbabel python-opengl python-paramiko python-pexpect python-pip python-psycopg1 python-psycopg2 python-pybluez python-pychart python-pychm python-pycurl python-pyenchant python-pygame python-pypdf python-pyro python-pyserial python-pyspi python-pysqlite python-pysqlite-legacy python-pytz python-pyx python-pyxmpp python-qscintilla python-reportlab python-scipy python-simplejson python-soappy python-sphinx python-sqlalchemy python-sqlobject python-sympy python-telepathy python-urwid python-virtualenv python-virtualenvwrapper python-vorbissimple python-vpython python-webpy python-wpactrl python-xlib python-yaml pyvorbis pywebkitgtk pyxdg pyxml qtorrent qt-recordmydesktop quodlibet quodlibet-plugins rdiff-backup revelation rrdtool scons screenlets scribes setuptools sip sk1 sonata south striim subversion synce-kde synce-librapi synce-rra synce-sync-engine system-config-printer-common system-config-printer-gnome tagpy tango-generator tdb telepathy-butterfly telepathy-farsight terminator thuban thuban-svn trac translate-toolkit tunepimp twisted ufw uniconvertor urlgrabber vigra virtinst virtualbox-ose vte wammu webboard wicd wxpython xcb-proto xdelta3 xmms2 xmpppy zim zope-interface
Packages pointing at python binary
Packages which have "/usr/bin/python" or "/usr/bin/env python" in their files and will need to change to python2 if not already compatible with python-3.x. Note that some of these are fixed by just building against a python2 binary, while others require some sed magic...
adesklet-asimpleclock adesklet-calendar adesklets adesklet-systemmonitor adns-python ajaxterm ajaxterm-utf8-svn alunn amsn anjuta anki armagetronad asciidoc asymptote autojump avahi avant-window-navigator awn-extras-applets beagle billreminder biopython bittorrent blender blueman bluez buildbot bzr bzrtools cchost ccsm cdcover cddb-py cdemu-client centerim cherokee cherrypy cinepaint cjc clang-analyzer claws-mail cnetworkmanager comix cx_freeze cycle deluge denyhosts deskbar-applet devede dia diacanvas diff2html django docky docutils dot2tex driconf duplicity ecasound eclipse edje-svn ekg2 emacs-muse emesene epydoc eric exaile fail2ban fbnews fcitx fetchmail flumotion freevo fusion-icon gamin gaupol gazpacho gdal gdeskcal gdesklets gdl geany gedit gedit-plugins-extra getmail gfceux gif2png gimmie gimp gimp-devel gimpshop git glib2 glipper gnochm gnome-applets gnome-blog gnome-commander gnome-desktop gnome-doc-utils gnome-games gnome-menus gnome-panel gnuconcept go gobject-introspection gogh gourmet gpodder gpsd gpsdrive gquilt grass griffith gromacs gstreamer0.10-python gtk2 gtk-doc gtkpod gtk-recordmydesktop gtksourceview2 gufw gutenpy hal-cups-utils hamster-applet hatari hgsvn hplip hsoconnect ibamtray ibus-table icewm-utils imdbpy impressive inkscape iotop ipcheck ipython ipython-docs jokosher jython kaa-base kaa-metadata kdeadmin-system-config-printer-kde kdebindings-python kdeedu-kig kdenetwork-kget kdesdk-kcachegrind kdesdk-lokalize kdesdk-scripts kdesdk-umbrello kdeutils-printer-applet kiwi koffice-kword konversation kungfu lastfmsubmitd libevent libgda libglade libpurple librsvg libxml2 lilypond lyx magickthumbnail mathomatic mc mediaproxy mercurial mezogis mftrace mime-editor mirage miro mitter moinmoin moiosms munin-node muse mutagen mypaint mythplugins-mytharchive mythplugins-mythvideo mythtv ncmpc neatx nfoview nicotine nmap obmenu obtheme offlineimap omniorb openbox openlh-client openlh-core openlh-server openshot opensips pacbuild pacupdate papyon parano pathological pebrot pessulus picard pitivi pkgtools pssh pyaim pychecker pychess pygments pygobject pygtk pyicqt pyinotify pylint pympc pympd pymsnt pyneighborhood pyrex pyrss pysolfc python-babel python-boto python-bsddb python-cheetah python-constraint python-distutils-extra python-docs python-egenix-mx-base python-eyed3 python-feedparser python-flup python-foolscap python-gdata python-gtkglext python-imaging python-mako python-matplotlib python-memcached python-mpdclient2 python-musicbrainz2 python-mygpoclient python-nose python-numpy python-opengl python-paramiko python-pexpect python-pip python-pychart python-pygame python-pyro python-pyserial python-pytz python-reportlab python-scipy python-sphinx python-sqlobject python-sympy python-urwid python-virtualenv python-virtualenvwrapper python-webpy pytube pyxml qbittorrent qemulator qgis qtorrent qt-recordmydesktop quodlibet rdiff-backup recoll recorder revelation rox-lib sbackup scons screenlets scribus setuptools sgmltools-lite solarwolf solfege sonata speedometer striim subdl subdownloader subversion synce-kde synce-sync-engine system-config-printer-common system-config-printer-gnome tango-generator telepathy-butterfly tellico terminator testdisk texmacs thuban thuban-svn tint2 totem trac tracker translate-toolkit tucan tuxpaint twisted txt2tags uzbl-browser uzbl-core uzbl-tabbed videothumbnail virtinst wammu webboard wicd wmii woof wxpython xbmc yahoo yaws youtube-dl zim