DeveloperWiki:Python Todo List

From ArchWiki
Revision as of 18:53, 21 September 2011 by Thestinger (Talk | contribs) (categorizing uncategorized page)

Jump to: navigation, search

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