PythonDebugPackages
Size: 10522
Comment:
|
Size: 18687
Comment: mark some packages as done
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
We are rebuilding python modules with a python-dbg variant. Example packaging changes for `python-pam`: {{{ diff -Nru /tmp/sH45lBGtVd/python-pam-0.4.2/debian/changelog /tmp/Bc2MXcIIa9/python-pam-0.4.2/debian/changelog --- /tmp/sH45lBGtVd/python-pam-0.4.2/debian/changelog 2007-02-12 14:46:04.000000000 +0100 +++ /tmp/Bc2MXcIIa9/python-pam-0.4.2/debian/changelog 2007-02-13 16:54:40.000000000 +0100 @@ -1,3 +1,14 @@ +python-pam (0.4.2-10.4ubuntu1) feisty; urgency=low + + * Build the extension for the debug interpreter. + - Build-depend on python-all-dbg (>= 2.5-0ubuntu5) + - debian/control: New package python-pam-dbg. + - debian/control: python-pam: Suggest python-pam-dbg. + - debian/rules: Build the extension with the python debug interpreter. + - debian/rules: python-pam-dbg: symlink to python-pam's docdir. + + -- Matthias Klose <doko@ubuntu.com> Tue, 13 Feb 2007 11:56:23 +0100 + python-pam (0.4.2-10.4build1) feisty; urgency=low * Rebuild. Ubuntu #69967. diff -Nru /tmp/sH45lBGtVd/python-pam-0.4.2/debian/control /tmp/Bc2MXcIIa9/python-pam-0.4.2/debian/control --- /tmp/sH45lBGtVd/python-pam-0.4.2/debian/control 2006-06-29 08:06:01.000000000 +0200 +++ /tmp/Bc2MXcIIa9/python-pam-0.4.2/debian/control 2007-02-13 16:52:55.000000000 +0100 @@ -1,9 +1,10 @@ Source: python-pam Section: python Priority: optional -Build-Depends: debhelper (>= 5.0.37.2), python-all-dev (>= 2.3.5-11), libpam0g-dev +Build-Depends: debhelper (>= 5.0.37.2), python-all-dev (>= 2.3.5-11), python-all-dbg (>= 2.5-0ubuntu5), libpam0g-dev Maintainer: Dima Barsky <dima@debian.org> -Standards-Version: 3.6.0 +Standards-Version: 3.7.2 +XS-Python-Version: all Package: python-pam Architecture: any @@ -11,8 +12,20 @@ Conflicts: python2.3-pam, python2.4-pam Replaces: python2.3-pam, python2.4-pam Provides: ${python:Provides} +Suggests: python-pam-dbg XB-Python-Version: ${python:Versions} Description: A Python interface to the PAM library This module makes the PAM (Pluggable Authentication Modules) functions available in Python. With this module you can write Python applications that implement authentication services using PAM. + +Package: python-pam-dbg +Architecture: any +Depends: python-pam (= ${Source-Version}) +XB-Python-Version: ${python:Versions} +Description: A Python interface to the PAM library (debug extension) + This module makes the PAM (Pluggable Authentication Modules) functions + available in Python. With this module you can write Python applications + that implement authentication services using PAM. + . + This package contains the extension built for the python debug interpreter. diff -Nru /tmp/sH45lBGtVd/python-pam-0.4.2/debian/rules /tmp/Bc2MXcIIa9/python-pam-0.4.2/debian/rules --- /tmp/sH45lBGtVd/python-pam-0.4.2/debian/rules 2006-06-25 17:34:03.000000000 +0200 +++ /tmp/Bc2MXcIIa9/python-pam-0.4.2/debian/rules 2007-02-13 13:53:10.000000000 +0100 @@ -10,15 +10,19 @@ build: build-stamp build-stamp: dh_testdir - for python in $(PYVERS); \ - do $$python setup.py build; \ + set -e; \ + for python in $(PYVERS); do \ + $$python setup.py build; \ + $$python-dbg setup.py build; \ done touch build-stamp clean: dh_testdir - for python in $(PYVERS); \ - do $$python setup.py clean; \ + set -e; \ + for python in $(PYVERS); do \ + $$python setup.py clean; \ + $$python-dbg setup.py clean; \ done rm -rf build-stamp build dh_clean @@ -29,9 +33,12 @@ dh_clean -k dh_installdirs - for python in $(PYVERS); \ - do $$python setup.py install --root=debian/python-pam; \ + set -e; \ + for python in $(PYVERS); do \ + $$python setup.py install --root=debian/python-pam; \ + $$python-dbg setup.py install --root=debian/python-pam-dbg; \ done + find debian/python-pam-dbg ! -type d ! -name '*_d.so' | xargs rm -f # Build architecture-independent files here. binary-indep: build install @@ -40,15 +47,16 @@ binary-arch: build install dh_testdir dh_testroot - dh_installdocs -a -A AUTHORS README - dh_installexamples -a -A examples/* + dh_installdocs -a AUTHORS README + dh_installexamples -a examples/* dh_installchangelogs -a ChangeLog - dh_strip -a + rm -rf debian/python-pam-dbg/usr/share/doc/python-pam-dbg + ln -sf python-pam debian/python-pam-dbg/usr/share/doc/python-pam-dbg + dh_strip -a -Npython-pam-dbg --dbg-package=python-pam-dbg dh_compress -a dh_fixperms -a - #dh_pycentral is not needed as we don't have .py files (only a .so) - #dh_pycentral -a - dh_python -a + #dh_pycentral is needed to set the dependency on python + dh_pycentral -ppython-pam dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a }}} The list was generated by running: {{{ for i in `grep -E "\.so\ " Contents-i386 | grep python | cut -d' ' -f2-100 | sort -u`; do basename $i; done | xargs apt-cache showsrc | grep Package | sed 's/Package\:\ //g' | sort -u | xargs apt-cache showsrc | grep ^Dir | sort -u > ~/pydbg.list}}} || '''Package:''' || '''Who''' || || Directory: pool/main/b/beagle || || || Directory: pool/main/d/dbus-python || || || Directory: pool/main/d/deskbar-applet || || || Directory: pool/main/e/egenix-mx-base || || || Directory: pool/main/e/eunuchs || || || Directory: pool/main/g/gimp || || || Directory: pool/main/g/gnome-python || || || Directory: pool/main/g/gnome-python-desktop || || || Directory: pool/main/g/gnome-python-extras || || || Directory: pool/main/g/gnumeric || || || Directory: pool/main/g/gst0.10-python || || || Directory: pool/main/h/hplip || || || Directory: pool/main/k/kde-guidance || || || Directory: pool/main/libi/libieee1284 || || || Directory: pool/main/libs/libselinux || || || Directory: pool/main/libx/libxml2 || || || Directory: pool/main/libx/libxslt || || || Directory: pool/main/l/launchpad-integration || || || Directory: pool/main/o/ocfs2-tools || || || Directory: pool/main/p/pilot-link || || || Directory: pool/main/p/pygobject || `dholbach` || || Directory: pool/main/p/pygtk || || || Directory: pool/main/p/pyogg || || || Directory: pool/main/p/pyopenssl || || || Directory: pool/main/p/python2.4 || || || Directory: pool/main/p/python2.5 || || || Directory: pool/main/p/python-crypto || || || Directory: pool/main/p/python-numarray || || || Directory: pool/main/p/python-pylibacl || || || Directory: pool/main/p/python-pyxattr || || || Directory: pool/main/p/python-xml || || || Directory: pool/main/p/pyvorbis || || || Directory: pool/main/r/rdiff-backup || || || Directory: pool/main/s/sabayon || || || Directory: pool/main/s/subversion || || || Directory: pool/main/t/twisted || || || Directory: pool/main/t/twisted-runner || || || Directory: pool/main/v/vte || || || Directory: pool/main/z/zope3 || || || Directory: pool/universe/c/cheetah || || || Directory: pool/universe/c/codespeak-lib || || || Directory: pool/universe/c/comedilib || || || Directory: pool/universe/c/cx-bsdiff || || || Directory: pool/universe/d/democracyplayer || || || Directory: pool/universe/d/diacanvas2 || || || Directory: pool/universe/e/eclipse-pydev || || || Directory: pool/universe/f/fonttools || || || Directory: pool/universe/g/galago-python || || || Directory: pool/universe/g/gimmie || || || Directory: pool/universe/g/gnuradio || || || Directory: pool/universe/h/hk-classes || || || Directory: pool/universe/i/imdbpy || || || Directory: pool/universe/j/jack || || || Directory: pool/universe/libm/libmetakit2.4.9.3 || || || Directory: pool/universe/libp/libphidgets || || || Directory: pool/universe/libs/libsemanage || || || Directory: pool/universe/libu/libuser || || || Directory: pool/universe/l/linkchecker || || || Directory: pool/universe/m/m2crypto || || || Directory: pool/universe/m/matplotlib || || || Directory: pool/universe/m/memaid-pyqt || || || Directory: pool/universe/m/mercurial || || || Directory: pool/universe/m/mmpython || || || Directory: pool/universe/m/museek+ || || || Directory: pool/universe/n/necpp || || || Directory: pool/universe/n/nicotine || || || Directory: pool/universe/n/notify-python || || || Directory: pool/universe/o/ontv || || || Directory: pool/universe/o/opencv || || || Directory: pool/universe/o/opensync || || || Directory: pool/universe/p/pyalsaaudio || || || Directory: pool/universe/p/pychm || || || Directory: pool/universe/p/pyepl || || || Directory: pool/universe/p/pygdchart2 || || || Directory: pool/universe/p/pyinotify || || || Directory: pool/universe/p/pykaraoke || || || Directory: pool/universe/p/pymol || || || Directory: pool/universe/p/pyopenal || || || Directory: pool/universe/p/pyopengl || || || Directory: pool/universe/p/pyprotocols || || || Directory: pool/universe/p/pyrite-publisher || || || Directory: pool/universe/p/pyslide || || || Directory: pool/universe/p/pystatgrab || || || Directory: pool/universe/p/pytables || || || Directory: pool/universe/p/python-4suite || || || Directory: pool/universe/p/python-biggles || || || Directory: pool/universe/p/python-biopython || || || Directory: pool/universe/p/python-clamav || || || Directory: pool/universe/p/python-gnome || || || Directory: pool/universe/p/python-japanese-codecs || || || Directory: pool/universe/p/python-kinterbasdb || || || Directory: pool/universe/p/python-numpy || || || Directory: pool/universe/p/python-pgsql || || || Directory: pool/universe/p/python-scientific || || || Directory: pool/universe/p/python-scipy || || || Directory: pool/universe/p/python-scipy-core || || || Directory: pool/universe/p/python-smbpasswd || || || Directory: pool/universe/p/python-tclink || || || Directory: pool/universe/p/python-xattr || || || Directory: pool/universe/p/pyx || || || Directory: pool/universe/p/pyxmpp || || || Directory: pool/universe/q/quixote || || || Directory: pool/universe/q/quixote1 || || || Directory: pool/universe/r/ruledispatch || || || Directory: pool/universe/s/scgi || || || Directory: pool/universe/s/smart || || || Directory: pool/universe/s/soya || || || Directory: pool/universe/s/synopsis || || || Directory: pool/universe/t/tickcount || || || Directory: pool/universe/v/vtk || || || Directory: pool/universe/w/wxwidgets2.6 || || || Directory: pool/universe/w/wxwindows2.4 || || || Directory: pool/universe/x/xulrunner || || || Directory: pool/universe/z/zeroc-ice-python || || || Directory: pool/universe/z/zodb || || || Directory: pool/universe/z/zope2.9 || || |
== python-dbg builds == The python setup allows to build the python interpreter in debug mode; the default configuration for this debug mode builds extension modules, which are incompatible with the normal build (making python objects larger). It's not possible to mix extension modules built for a normal build with extension modules of a debug build. Using the debug build to debug an application with dozens of extension modules requires first building of these extensions. To ease this task, we want to provide often used extension modules for the debug build as well. The `python2.4` and `python2.5` packages in feisty are modified to look for extension modules under a different name (normal build: `foo.so`, debug build: `foo_d.so`), allowing installation of the extension modules into the same path (The naming is directly taken from the Windows builds which already uses this naming scheme). == Using the python-dbg builds == * Call the python-dbg or the pythonX.Y-dbg binaries instead of the python or pythonX.Y binaries. * Properties of the debug build are described in [http://people.ubuntu.com/~doko/python-dbg/SpecialBuilds.txt SpecialBuilds.txt], also included in the python2.5-dbg package. The debug interpreter is built with `Py_DEBUG` defined. * From [http://people.ubuntu.com/~doko/python-dbg/SpecialBuilds.txt SpecialBuilds.txt]: This is what is generally meant by "a debug build" of Python. Py_DEBUG implies LLTRACE, Py_REF_DEBUG, Py_TRACE_REFS, and PYMALLOC_DEBUG (if WITH_PYMALLOC is enabled). In addition, C assert()s are enabled (via the C way: by not defining NDEBUG), and some routines do additional sanity checks inside "#ifdef Py_DEBUG" blocks. == How to add a -dbg package == Building a -dbg package requires modification for the packaging; please don't create -dbg packages for extensions that you don't need. Track down the dependencies of a package you want to debug, then create -dbg packages for these needed extensions. * `debian/control`: * Add a build dependency on `python-all-dbg (>= 2.5-0ubuntu5)` (building for more than one python version), or `python-dbg (>= 2.5-0ubuntu5)` (building for the current python version). * `python-foo`: Add a suggests to `python-foo-dbg`. * `python-foo-dbg`: New binary package * Priority `extra` * Section `python` * Depends: * `python-foo (= ${Source-Version}), python-dbg, ${shlibs:Depends}` * If `python-foo` depends on other packages with extensions (`python-bar`), then `python-foo-dbg` must depend on the corresponding -dbg packages (`python-bar-dbg`). * Description: add `(debug extension)`, maybe shorten the description and add `This package contains the extensions built for the python debug interpreter.` * `debian/rules`: Modifications depend on the packaging style, in general: * The interpreter `python-dbg` must be used (or `pythonX.Y-dbg`) for build and install. Automatically done by distutils. * The include path must be `/usr/include/pythonX.Y`'''_d'''. Automatically selected by distutils. To get the include headers, you can use `pythonX.Y-config --includes 2>/dev/null`. * An extension for the debug build is named `foo`'''_d'''`.so` and is installed into the same path as the normal extension. The name is automatically selected by distutils, for other builds the extension must be renamed manually. * The package must hold only the extension modules and header files installed in `/usr/include/pythonX.Y`'''_d'''` (when installed in `/usr/include/pythonX.Y` in the corresponding `python-foo` package). * The debug extension should be built without optimization (-O0), automatically done by distutils. * The `python-foo-dbg` docdir should be symlinked to the `python-foo` docdir. * The `python-foo-dbg` can optionally contain debug symbols of the `python-foo` package (generated by `dh_strip -ppython-foo --dbg-package=python-foo-dbg`, `debian/compat`=5) Testing: * Install both the `python-foo-dbg` and `python-dbg` packages. * Try to import the extension both with the normal and the debug interpreter: * `python -c 'import foo'` (no output) * `python-dbg -c 'import foo'` (one line output on stderr) Packaging examples: * cdbs based (cdbs will be extended to ease this); currently you have to use some hooks: * `python-apt`: [http://people.ubuntu.com/~doko/python-dbg/python-apt.debdiff debdiff] * `python-crypto`: [http://people.ubuntu.com/~doko/python-dbg/python-crypto.debdiff debdiff] * distutils based, using debhelper to build for all supported python versions: * `python-numarray`: [http://people.ubuntu.com/~doko/python-dbg/python-numarray.debdiff debdiff] * not using distutils, but autoconf/automake: * `python-dbus`: [http://people.ubuntu.com/~doko/python-dbg/dbus-python.debdiff debdiff] * packages which should not be used as examples: `libselinux`, `openoffice.org`. Repository: * The packages will enter the archive after the Herd4 release. Until then, you can use the following repositories for you build dependencies: * `deb http://people.ubuntu.com/~doko/python-dbg/ ./` == Source packages building extensions == Our goal for feisty is to be able to use the python debug build for desktop applications in main. Having the debug builds be availabe for wxwidgets based applications might help as well. The table lists all packages which build extension modules; it does '''not''' mean that -dbg packages for all these packages must be provided; don't provide the -dbg packages on guessing, just on demand. || '''Pocket''' || '''Source:''' || '''Binaries''' || '''Who''' || '''Status''' || || main || dbus-python || python-dbus || doko || DONE || || main || deskbar-applet || deskbar-applet || || || || main || egenix-mx-base || python-egenix-* || doko || DONE || || main || eunuchs || python-eunuchs || || || || main || exo || python-exo || || || || main || gamin || python-gamin || || || || main || gnome-menus || python-gmenu || || || || main || gnome-orca || gnome-orca || || || || main || gnome-python || python-gconf python-gnome2 python-gnomecanvas || || || || main || gnome-python-desktop || python-gnome2-desktop || || || || main || gnome-python-extras || python-gnome2-extras python-gtkhtml2 || || || || main || gst0.10-python || python-gst0.10 || doko || DONE || || main || hplip || hplip hplip-dbg || || || || main || kde-guidance || kde-guidance || || || || main || launchpad-integration || python-launchpad-integration || doko || DONE || || main || libapache2-mod-python || libapache2-mod-python || || || || main || libgpod || python-gpod || || || || main || libxml2 || python-libxml2 || doko || DONE || || main || libxslt || python-libxslt1 || doko || DONE || || main || newt || python-newt || doko || DONE || || main || ocfs2-tools || ocfs2console || || || || main || openoffice.org || python-uno || doko || || || main || pilot-link || python-pisock || doko || DONE || || main || planner || planner || || || || main || psycopg || python-psycopg || doko || DONE || || main || pyao || python-pyao || doko || DONE || || main || pycairo || python-cairo || doko || DONE || || main || pycurl || python-pycurl || doko || DONE || || main || pygobject || python-gobject || dholbach || DONE || || main || pygresql || python-pygresql || doko || DONE || || main || pygtk || python-glade2 python-gtk2 || doko || DONE || || main || pyogg || python-pyogg || doko || DONE || || main || pyopenssl || python-pyopenssl || doko || DONE || || main || pyorbit || python-pyorbit || doko || DONE || || main || pyspi || python-at-spi || doko || DONE || || main || python-adns || python-adns || || || || main || python-apt || python-apt || doko || DONE || || main || python-cddb || python-cddb || || || || main || python-crypto || python-crypto || doko || DONE || || main || python-cups || python-cups || || || || main || python-gd || python-gd || doko || DONE || || main || python-geoip || python-geoip || doko || DONE || || main || python-imaging || python-imaging python-imaging-sane || doko || DONE || || main || python-kde3 || python-kde3 || || || || main || python-ldap || python-ldap || doko || DONE || || main || python-mysqldb || python-mysqldb || doko || DONE || || main || python-numarray || python-numarray || doko || DONE || || main || python-numeric || python-numeric || doko || DONE || || main || python-pam || python-pam || doko || DONE || || main || python-pqueue || python-pqueue || || || || main || python-pylibacl || python-pylibacl || doko || DONE || || main || python-pysqlite2 || python-pysqlite2 || doko || DONE || || main || python-pyxattr || python-pyxattr || doko || DONE || || main || python-qt3 || python-qt3 python-qtext || || || || main || python-qt4 || python-qt4 || || || || main || python-sqlite || python-sqlite || doko || DONE || || main || python-xml || python-xml || doko || DONE || || main || pyvorbis || python-pyvorbis || doko || DONE || || main || rdiff-backup || rdiff-backup || || || || main || redland-bindings || python-librdf || || || || main || sabayon || sabayon || || || || main || samba || python-samba || || || || main || sip4-qt3 || python-sip4 || doko || DONE || || main || subversion || python-subversion || doko || DONE || || main || twisted || python-twisted-bin || doko || DONE || || main || twisted-runner || python-twisted-runner || doko || DONE || || main || update-manager || update-manager-core || || || || main || virtkey || python-virtkey || || || || main || vte || python-vte || || || || main || zope3 || python-zopeinterface || doko || DONE || || main || zope3 || zope3 || doko || || || '''Pocket''' || '''Source:''' || '''Binaries''' || '''Who''' || '''Status''' || || multiverse || gnuradio || python-gnuradio python-usrp || || || || multiverse || python-cdb || python-cdb || || || || '''Pocket''' || '''Source:''' || '''Binaries''' || '''Who''' || '''Status''' || || universe || adesklets || adesklets || || || || universe || aubio || python-aubio || || || || universe || beagle || python-beagle || || || || universe || celementtree || python-celementtree || doko || DONE || || universe || cheetah || python-cheetah || || || || universe || clearsilver || python-clearsilver || || || || universe || codespeak-lib || python-codespeak-lib || || || || universe || comedilib || python-comedilib || || || || universe || cx-bsdiff || python-bsdiff || || || || universe || decompyle || decompyle || || || || universe || democracyplayer || democracyplayer || || || || universe || diacanvas2 || python-diacanvas2 || || || || universe || duplicity || duplicity || || || || universe || eikazo || eikazo || || || || universe || elementtidy || python-elementtidy || || || || universe || file || python-magic || doko || DONE || || universe || fonttools || fonttools || || || || universe || gadfly || python-kjbuckets || doko || || || universe || galago-gtk-python || galago-gtk-python || || || || universe || galago-python || galago-python || || || || universe || gdal || python-gdal || || || || universe || gimmie || gimmie || || || || universe || glom || glom || || || || universe || gpib || python-gpib || || || || universe || hamlib || python-libhamlib2 || || || || universe || hk-classes || python-hk-classes || || || || universe || hocr || libhocr-python || || || || universe || imdbpy || python-imdbpy || || || || universe || imgseek || imgseek || || || || universe || isomd5sum || python-pyisomd5sum || || || || universe || jack || jack || || || || universe || kdebindings || python-dcop || || || || universe || lasso || python-lasso || || || || universe || libavg || python-libavg || || || || universe || libhdate || libhdate-python || || || || universe || libhid || python-hid || || || || universe || libieee1284 || python-ieee1284 || || || || universe || libmetakit2.4.9.3 || python-metakit || || || || universe || libphidgets || python-phidgets || || || || universe || libselinux || python-selinux || doko || DONE || || universe || libsemanage || python-semanage || || || || universe || libuser || python-libuser || || || || universe || libvirt || python-libvirt || || || || universe || linkchecker || linkchecker || || || || universe || lxml || python-lxml || doko || DONE || || universe || m2crypto || python-m2crypto || || || || universe || mapserver || python-mapscript || || || || universe || matplotlib || python-matplotlib || || || || universe || memaid-pyqt || memaid-pyqt || || || || universe || mercurial || mercurial || || || || universe || ming || python-ming || || || || universe || mirage || mirage || || || || universe || mmpython || python-mmpython || || || || universe || museek+ || python-museek || || || || universe || necpp || python-necpp || || || || universe || nicotine || nicotine || || || || universe || notify-python || python-notify || || || || universe || omniorb4 || omniidl4 || || || || universe || ontv || ontv || || || || universe || opencv || python-opencv || || || || universe || opensync || libopensync0-dbg python-opensync || || || || universe || pcapy || python-pcapy || || || || universe || plplot || python-plplot || || || || universe || poker-network || python-poker2d || || || || universe || psyco || python-psyco || || || || universe || psycopg2 || python-psycopg2 || || || || universe || pyalsaaudio || python-alsaaudio || || || || universe || pyannodex || python-annodex || || || || universe || pybluez || python-bluez || || || || universe || pychm || python-chm || || || || universe || pycxx || python-cxx || doko || DONE || || universe || pyenchant || python-enchant || || || || universe || pyepl || python-pyepl || || || || universe || pyfribidi || python-pyfribidi || || || || universe || pygame || python-pygame || || || || universe || pygdchart2 || python-gdchart2 || || || || universe || pyinotify || python-pyinotify || || || || universe || pykaraoke || python-pykaraoke || || || || universe || pymad || python-pymad || || || || universe || pyme || python-pyme || || || || universe || pymol || pymol || || || || universe || pynjb || python-pynjb || || || || universe || pyode || python-pyode || || || || universe || pyopenal || python-openal || || || || universe || pyopengl || python-opengl || || || || universe || pypanel || pypanel || || || || universe || pypoker-eval || python-pypoker-eval || || || || universe || pyprotocols || python-protocols || || || || universe || pyqonsole || pyqonsole || || || || universe || pyqwt || python-qwt4 || || || || universe || pyrite-publisher || pyrite-publisher || || || || universe || pyslide || pyslide || || || || universe || pyspeex || python-speex || || || || universe || pystatgrab || python-statgrab || || || || universe || pysvn || python-svn || doko || DONE || || universe || pytables || python-tables || || || || universe || python-4suite || python-4suite-rdf python-4suite-server python-4suite-xml || || || || universe || python-apsw || python-apsw || || || || universe || python-bibtex || python-bibtex || || || || universe || python-biggles || python-biggles || || || || universe || python-biopython || python-biopython || || || || universe || python-clamav || python-clamav || || || || universe || python-crack || python-crack || || || || universe || python-extclass || python-extclass || doko || || || universe || python-fam || python-fam || || || || universe || python-fuse || python-fuse || || || || universe || python-gammu || python-gammu || || || || universe || python-gdchart || python-gdchart || || || || universe || python-imaging || python-imaging-tk || || || || universe || python-japanese-codecs || python-japanese-codecs || || REMOVE || || universe || python-kinterbasdb || python-kinterbasdb || || || || universe || python-korean-codecs || python-korean-codecs || || REMOVE || || universe || python-numpy || python-numpy || doko || DONE || || universe || python-omniorb2 || python-omniorb2 || || || || universe || python-osd || python-osd || || || || universe || python-oss || python-oss || || || || universe || python-pgsql || python-pgsql || || || || universe || python-pysqlite1.1 || python-pysqlite1.1 || || || || universe || python-qt3 || python-qt3-gl || || || || universe || python-qt4 || python-qt4-gl python-qt4-sql || || || || universe || python-scientific || python-netcdf || || || || universe || python-scipy || python-scipy || || || || universe || python-scipy-core || python-scipy-core || || || || universe || python-smbpasswd || python-smbpasswd || || || || universe || python-tclink || python-tclink || || || || universe || python-tcpwrap || python-tcpwrap || || || || universe || python-visual || python-visual || || || || universe || python-xattr || python-xattr || || || || universe || pyx || python-pyx || || || || universe || pyxfce || python-xfce || || || || universe || pyxine || python-pyxine || || || || universe || pyxmms || python-xmms || || || || universe || pyxmpp || python-pyxmpp || || || || universe || qm || python-sigmask || doko || || || universe || quixote || python-quixote || || || || universe || quixote1 || python-quixote1 || || || || universe || reportlab-accel || python-reportlab-accel || doko || DONE || || universe || revelation || revelation || || || || universe || rpm || python-rpm || || || || universe || rpy || python-rpy || || || || universe || rrdtool || python-rrd || doko || || || universe || ruledispatch || python-dispatch || || || || universe || scgi || python-scgi || || || || universe || sexy-python || sexy-python || || || || universe || smart || smartpm-core || || || || universe || sonata || sonata || || || || universe || soya || python-soya || || || || universe || subterfugue || subterfugue || || || || universe || syck || python-syck || || || || universe || synopsis || synopsis || || || || universe || tau || python-tau || || || || universe || telepathy-blue || telepathy-blue || || || || universe || tickcount || python-tickcount || || || || universe || vtk || python-vtk || || || || universe || wxwidgets2.6 || python-wxgtk2.6 || || || || universe || xapian-bindings || python-xapian || || || || universe || xen-3.0 || python-xen3.0 || || || || universe || xmldiff || xmldiff || || || || universe || xulrunner || python-xpcom || || || || universe || yapgvb || python-yapgvb || || || || universe || zeroc-ice-python || python-zeroc-ice || || || || universe || zodb || python-zodb || || || || universe || zope-textindexng2 || zope-textindexng2-lib || || || || universe || zope2.9 || zope2.9 || || || |
python-dbg builds
The python setup allows to build the python interpreter in debug mode; the default configuration for this debug mode builds extension modules, which are incompatible with the normal build (making python objects larger). It's not possible to mix extension modules built for a normal build with extension modules of a debug build. Using the debug build to debug an application with dozens of extension modules requires first building of these extensions. To ease this task, we want to provide often used extension modules for the debug build as well.
The python2.4 and python2.5 packages in feisty are modified to look for extension modules under a different name (normal build: foo.so, debug build: foo_d.so), allowing installation of the extension modules into the same path (The naming is directly taken from the Windows builds which already uses this naming scheme).
Using the python-dbg builds
- Call the python-dbg or the pythonX.Y-dbg binaries instead of the python or pythonX.Y binaries.
Properties of the debug build are described in [http://people.ubuntu.com/~doko/python-dbg/SpecialBuilds.txt SpecialBuilds.txt], also included in the python2.5-dbg package. The debug interpreter is built with Py_DEBUG defined.
From [http://people.ubuntu.com/~doko/python-dbg/SpecialBuilds.txt SpecialBuilds.txt]: This is what is generally meant by "a debug build" of Python. Py_DEBUG implies LLTRACE, Py_REF_DEBUG, Py_TRACE_REFS, and PYMALLOC_DEBUG (if WITH_PYMALLOC is enabled). In addition, C assert()s are enabled (via the C way: by not defining NDEBUG), and some routines do additional sanity checks inside "#ifdef Py_DEBUG" blocks.
How to add a -dbg package
Building a -dbg package requires modification for the packaging; please don't create -dbg packages for extensions that you don't need. Track down the dependencies of a package you want to debug, then create -dbg packages for these needed extensions.
debian/control:
Add a build dependency on python-all-dbg (>= 2.5-0ubuntu5) (building for more than one python version), or python-dbg (>= 2.5-0ubuntu5) (building for the current python version).
python-foo: Add a suggests to python-foo-dbg.
python-foo-dbg: New binary package
Priority extra
Section python
- Depends:
python-foo (= ${Source-Version}), python-dbg, ${shlibs:Depends}
If python-foo depends on other packages with extensions (python-bar), then python-foo-dbg must depend on the corresponding -dbg packages (python-bar-dbg).
Description: add (debug extension), maybe shorten the description and add This package contains the extensions built for the python debug interpreter.
debian/rules: Modifications depend on the packaging style, in general:
The interpreter python-dbg must be used (or pythonX.Y-dbg) for build and install. Automatically done by distutils.
The include path must be /usr/include/pythonX.Y_d. Automatically selected by distutils. To get the include headers, you can use pythonX.Y-config --includes 2>/dev/null.
An extension for the debug build is named foo_d.so and is installed into the same path as the normal extension. The name is automatically selected by distutils, for other builds the extension must be renamed manually.
The package must hold only the extension modules and header files installed in /usr/include/pythonX.Y_d (when installed in /usr/include/pythonX.Y in the corresponding python-foo` package).
- The debug extension should be built without optimization (-O0), automatically done by distutils.
The python-foo-dbg docdir should be symlinked to the python-foo docdir.
The python-foo-dbg can optionally contain debug symbols of the python-foo package (generated by dh_strip -ppython-foo --dbg-package=python-foo-dbg, debian/compat=5)
Testing:
Install both the python-foo-dbg and python-dbg packages.
- Try to import the extension both with the normal and the debug interpreter:
python -c 'import foo' (no output)
python-dbg -c 'import foo' (one line output on stderr)
Packaging examples:
- cdbs based (cdbs will be extended to ease this); currently you have to use some hooks:
python-apt: [http://people.ubuntu.com/~doko/python-dbg/python-apt.debdiff debdiff]
python-crypto: [http://people.ubuntu.com/~doko/python-dbg/python-crypto.debdiff debdiff]
- distutils based, using debhelper to build for all supported python versions:
python-numarray: [http://people.ubuntu.com/~doko/python-dbg/python-numarray.debdiff debdiff]
- not using distutils, but autoconf/automake:
python-dbus: [http://people.ubuntu.com/~doko/python-dbg/dbus-python.debdiff debdiff]
packages which should not be used as examples: libselinux, openoffice.org.
Repository:
- The packages will enter the archive after the Herd4 release. Until then, you can use the following repositories for you build dependencies:
deb http://people.ubuntu.com/~doko/python-dbg/ ./
Source packages building extensions
Our goal for feisty is to be able to use the python debug build for desktop applications in main. Having the debug builds be availabe for wxwidgets based applications might help as well.
The table lists all packages which build extension modules; it does not mean that -dbg packages for all these packages must be provided; don't provide the -dbg packages on guessing, just on demand.
Source: |
Binaries |
Who |
Status |
|
main |
dbus-python |
python-dbus |
doko |
DONE |
main |
deskbar-applet |
deskbar-applet |
|
|
main |
egenix-mx-base |
python-egenix-* |
doko |
DONE |
main |
eunuchs |
python-eunuchs |
|
|
main |
exo |
python-exo |
|
|
main |
gamin |
python-gamin |
|
|
main |
gnome-menus |
python-gmenu |
|
|
main |
gnome-orca |
gnome-orca |
|
|
main |
gnome-python |
python-gconf python-gnome2 python-gnomecanvas |
|
|
main |
gnome-python-desktop |
python-gnome2-desktop |
|
|
main |
gnome-python-extras |
python-gnome2-extras python-gtkhtml2 |
|
|
main |
gst0.10-python |
python-gst0.10 |
doko |
DONE |
main |
hplip |
hplip hplip-dbg |
|
|
main |
kde-guidance |
kde-guidance |
|
|
main |
launchpad-integration |
python-launchpad-integration |
doko |
DONE |
main |
libapache2-mod-python |
libapache2-mod-python |
|
|
main |
libgpod |
python-gpod |
|
|
main |
libxml2 |
python-libxml2 |
doko |
DONE |
main |
libxslt |
python-libxslt1 |
doko |
DONE |
main |
newt |
python-newt |
doko |
DONE |
main |
ocfs2-tools |
ocfs2console |
|
|
main |
openoffice.org |
python-uno |
doko |
|
main |
pilot-link |
python-pisock |
doko |
DONE |
main |
planner |
planner |
|
|
main |
psycopg |
python-psycopg |
doko |
DONE |
main |
pyao |
python-pyao |
doko |
DONE |
main |
pycairo |
python-cairo |
doko |
DONE |
main |
pycurl |
python-pycurl |
doko |
DONE |
main |
pygobject |
python-gobject |
dholbach |
DONE |
main |
pygresql |
python-pygresql |
doko |
DONE |
main |
pygtk |
python-glade2 python-gtk2 |
doko |
DONE |
main |
pyogg |
python-pyogg |
doko |
DONE |
main |
pyopenssl |
python-pyopenssl |
doko |
DONE |
main |
pyorbit |
python-pyorbit |
doko |
DONE |
main |
pyspi |
python-at-spi |
doko |
DONE |
main |
python-adns |
python-adns |
|
|
main |
python-apt |
python-apt |
doko |
DONE |
main |
python-cddb |
python-cddb |
|
|
main |
python-crypto |
python-crypto |
doko |
DONE |
main |
python-cups |
python-cups |
|
|
main |
python-gd |
python-gd |
doko |
DONE |
main |
python-geoip |
python-geoip |
doko |
DONE |
main |
python-imaging |
python-imaging python-imaging-sane |
doko |
DONE |
main |
python-kde3 |
python-kde3 |
|
|
main |
python-ldap |
python-ldap |
doko |
DONE |
main |
python-mysqldb |
python-mysqldb |
doko |
DONE |
main |
python-numarray |
python-numarray |
doko |
DONE |
main |
python-numeric |
python-numeric |
doko |
DONE |
main |
python-pam |
python-pam |
doko |
DONE |
main |
python-pqueue |
python-pqueue |
|
|
main |
python-pylibacl |
python-pylibacl |
doko |
DONE |
main |
python-pysqlite2 |
python-pysqlite2 |
doko |
DONE |
main |
python-pyxattr |
python-pyxattr |
doko |
DONE |
main |
python-qt3 |
python-qt3 python-qtext |
|
|
main |
python-qt4 |
python-qt4 |
|
|
main |
python-sqlite |
python-sqlite |
doko |
DONE |
main |
python-xml |
python-xml |
doko |
DONE |
main |
pyvorbis |
python-pyvorbis |
doko |
DONE |
main |
rdiff-backup |
rdiff-backup |
|
|
main |
redland-bindings |
python-librdf |
|
|
main |
sabayon |
sabayon |
|
|
main |
samba |
python-samba |
|
|
main |
sip4-qt3 |
python-sip4 |
doko |
DONE |
main |
subversion |
python-subversion |
doko |
DONE |
main |
twisted |
python-twisted-bin |
doko |
DONE |
main |
twisted-runner |
python-twisted-runner |
doko |
DONE |
main |
update-manager |
update-manager-core |
|
|
main |
virtkey |
python-virtkey |
|
|
main |
vte |
python-vte |
|
|
main |
zope3 |
python-zopeinterface |
doko |
DONE |
main |
zope3 |
zope3 |
doko |
|
Source: |
Binaries |
Who |
Status |
|
multiverse |
gnuradio |
python-gnuradio python-usrp |
|
|
multiverse |
python-cdb |
python-cdb |
|
|
Source: |
Binaries |
Who |
Status |
|
universe |
adesklets |
adesklets |
|
|
universe |
aubio |
python-aubio |
|
|
universe |
beagle |
python-beagle |
|
|
universe |
celementtree |
python-celementtree |
doko |
DONE |
universe |
cheetah |
python-cheetah |
|
|
universe |
clearsilver |
python-clearsilver |
|
|
universe |
codespeak-lib |
python-codespeak-lib |
|
|
universe |
comedilib |
python-comedilib |
|
|
universe |
cx-bsdiff |
python-bsdiff |
|
|
universe |
decompyle |
decompyle |
|
|
universe |
democracyplayer |
democracyplayer |
|
|
universe |
diacanvas2 |
python-diacanvas2 |
|
|
universe |
duplicity |
duplicity |
|
|
universe |
eikazo |
eikazo |
|
|
universe |
elementtidy |
python-elementtidy |
|
|
universe |
file |
python-magic |
doko |
DONE |
universe |
fonttools |
fonttools |
|
|
universe |
gadfly |
python-kjbuckets |
doko |
|
universe |
galago-gtk-python |
galago-gtk-python |
|
|
universe |
galago-python |
galago-python |
|
|
universe |
gdal |
python-gdal |
|
|
universe |
gimmie |
gimmie |
|
|
universe |
glom |
glom |
|
|
universe |
gpib |
python-gpib |
|
|
universe |
hamlib |
python-libhamlib2 |
|
|
universe |
hk-classes |
python-hk-classes |
|
|
universe |
hocr |
libhocr-python |
|
|
universe |
imdbpy |
python-imdbpy |
|
|
universe |
imgseek |
imgseek |
|
|
universe |
isomd5sum |
python-pyisomd5sum |
|
|
universe |
jack |
jack |
|
|
universe |
kdebindings |
python-dcop |
|
|
universe |
lasso |
python-lasso |
|
|
universe |
libavg |
python-libavg |
|
|
universe |
libhdate |
libhdate-python |
|
|
universe |
libhid |
python-hid |
|
|
universe |
libieee1284 |
python-ieee1284 |
|
|
universe |
libmetakit2.4.9.3 |
python-metakit |
|
|
universe |
libphidgets |
python-phidgets |
|
|
universe |
libselinux |
python-selinux |
doko |
DONE |
universe |
libsemanage |
python-semanage |
|
|
universe |
libuser |
python-libuser |
|
|
universe |
libvirt |
python-libvirt |
|
|
universe |
linkchecker |
linkchecker |
|
|
universe |
lxml |
python-lxml |
doko |
DONE |
universe |
m2crypto |
python-m2crypto |
|
|
universe |
mapserver |
python-mapscript |
|
|
universe |
matplotlib |
python-matplotlib |
|
|
universe |
memaid-pyqt |
memaid-pyqt |
|
|
universe |
mercurial |
mercurial |
|
|
universe |
ming |
python-ming |
|
|
universe |
mirage |
mirage |
|
|
universe |
mmpython |
python-mmpython |
|
|
universe |
museek+ |
python-museek |
|
|
universe |
necpp |
python-necpp |
|
|
universe |
nicotine |
nicotine |
|
|
universe |
notify-python |
python-notify |
|
|
universe |
omniorb4 |
omniidl4 |
|
|
universe |
ontv |
ontv |
|
|
universe |
opencv |
python-opencv |
|
|
universe |
opensync |
libopensync0-dbg python-opensync |
|
|
universe |
pcapy |
python-pcapy |
|
|
universe |
plplot |
python-plplot |
|
|
universe |
poker-network |
python-poker2d |
|
|
universe |
psyco |
python-psyco |
|
|
universe |
psycopg2 |
python-psycopg2 |
|
|
universe |
pyalsaaudio |
python-alsaaudio |
|
|
universe |
pyannodex |
python-annodex |
|
|
universe |
pybluez |
python-bluez |
|
|
universe |
pychm |
python-chm |
|
|
universe |
pycxx |
python-cxx |
doko |
DONE |
universe |
pyenchant |
python-enchant |
|
|
universe |
pyepl |
python-pyepl |
|
|
universe |
pyfribidi |
python-pyfribidi |
|
|
universe |
pygame |
python-pygame |
|
|
universe |
pygdchart2 |
python-gdchart2 |
|
|
universe |
pyinotify |
python-pyinotify |
|
|
universe |
pykaraoke |
python-pykaraoke |
|
|
universe |
pymad |
python-pymad |
|
|
universe |
pyme |
python-pyme |
|
|
universe |
pymol |
pymol |
|
|
universe |
pynjb |
python-pynjb |
|
|
universe |
pyode |
python-pyode |
|
|
universe |
pyopenal |
python-openal |
|
|
universe |
pyopengl |
python-opengl |
|
|
universe |
pypanel |
pypanel |
|
|
universe |
pypoker-eval |
python-pypoker-eval |
|
|
universe |
pyprotocols |
python-protocols |
|
|
universe |
pyqonsole |
pyqonsole |
|
|
universe |
pyqwt |
python-qwt4 |
|
|
universe |
pyrite-publisher |
pyrite-publisher |
|
|
universe |
pyslide |
pyslide |
|
|
universe |
pyspeex |
python-speex |
|
|
universe |
pystatgrab |
python-statgrab |
|
|
universe |
pysvn |
python-svn |
doko |
DONE |
universe |
pytables |
python-tables |
|
|
universe |
python-4suite |
python-4suite-rdf python-4suite-server python-4suite-xml |
|
|
universe |
python-apsw |
python-apsw |
|
|
universe |
python-bibtex |
python-bibtex |
|
|
universe |
python-biggles |
python-biggles |
|
|
universe |
python-biopython |
python-biopython |
|
|
universe |
python-clamav |
python-clamav |
|
|
universe |
python-crack |
python-crack |
|
|
universe |
python-extclass |
python-extclass |
doko |
|
universe |
python-fam |
python-fam |
|
|
universe |
python-fuse |
python-fuse |
|
|
universe |
python-gammu |
python-gammu |
|
|
universe |
python-gdchart |
python-gdchart |
|
|
universe |
python-imaging |
python-imaging-tk |
|
|
universe |
python-japanese-codecs |
python-japanese-codecs |
|
REMOVE |
universe |
python-kinterbasdb |
python-kinterbasdb |
|
|
universe |
python-korean-codecs |
python-korean-codecs |
|
REMOVE |
universe |
python-numpy |
python-numpy |
doko |
DONE |
universe |
python-omniorb2 |
python-omniorb2 |
|
|
universe |
python-osd |
python-osd |
|
|
universe |
python-oss |
python-oss |
|
|
universe |
python-pgsql |
python-pgsql |
|
|
universe |
python-pysqlite1.1 |
python-pysqlite1.1 |
|
|
universe |
python-qt3 |
python-qt3-gl |
|
|
universe |
python-qt4 |
python-qt4-gl python-qt4-sql |
|
|
universe |
python-scientific |
python-netcdf |
|
|
universe |
python-scipy |
python-scipy |
|
|
universe |
python-scipy-core |
python-scipy-core |
|
|
universe |
python-smbpasswd |
python-smbpasswd |
|
|
universe |
python-tclink |
python-tclink |
|
|
universe |
python-tcpwrap |
python-tcpwrap |
|
|
universe |
python-visual |
python-visual |
|
|
universe |
python-xattr |
python-xattr |
|
|
universe |
pyx |
python-pyx |
|
|
universe |
pyxfce |
python-xfce |
|
|
universe |
pyxine |
python-pyxine |
|
|
universe |
pyxmms |
python-xmms |
|
|
universe |
pyxmpp |
python-pyxmpp |
|
|
universe |
qm |
python-sigmask |
doko |
|
universe |
quixote |
python-quixote |
|
|
universe |
quixote1 |
python-quixote1 |
|
|
universe |
reportlab-accel |
python-reportlab-accel |
doko |
DONE |
universe |
revelation |
revelation |
|
|
universe |
rpm |
python-rpm |
|
|
universe |
rpy |
python-rpy |
|
|
universe |
rrdtool |
python-rrd |
doko |
|
universe |
ruledispatch |
python-dispatch |
|
|
universe |
scgi |
python-scgi |
|
|
universe |
sexy-python |
sexy-python |
|
|
universe |
smart |
smartpm-core |
|
|
universe |
sonata |
sonata |
|
|
universe |
soya |
python-soya |
|
|
universe |
subterfugue |
subterfugue |
|
|
universe |
syck |
python-syck |
|
|
universe |
synopsis |
synopsis |
|
|
universe |
tau |
python-tau |
|
|
universe |
telepathy-blue |
telepathy-blue |
|
|
universe |
tickcount |
python-tickcount |
|
|
universe |
vtk |
python-vtk |
|
|
universe |
wxwidgets2.6 |
python-wxgtk2.6 |
|
|
universe |
xapian-bindings |
python-xapian |
|
|
universe |
xen-3.0 |
python-xen3.0 |
|
|
universe |
xmldiff |
xmldiff |
|
|
universe |
xulrunner |
python-xpcom |
|
|
universe |
yapgvb |
python-yapgvb |
|
|
universe |
zeroc-ice-python |
python-zeroc-ice |
|
|
universe |
zodb |
python-zodb |
|
|
universe |
zope-textindexng2 |
zope-textindexng2-lib |
|
|
universe |
zope2.9 |
zope2.9 |
|
|