Packaging Python Stuff

While packaging Tuna I ran into an issue for which I couldn’t easily find a workaround on the ubiquitous search engine. Tuna depends on some unavailable Python applications so those had to be packaged too. After having successfully tested the packages locally with pbuilder I uploaded them to Launchpad and noticed that they failed to build. Apparently the Python installer setup.py wants to install in /usr/lib/python2.7/site-packages and while that worked fine locally with pbuilder, Launchpad had an issue with that:

Found files in /usr/lib/python2.7/site-packages (must be in dist-packages for python2.7).
debian/python-schedutils/usr/lib/python2.7/site-packages
debian/python-schedutils/usr/lib/python2.7/site-packages/schedutils.so
debian/python-schedutils/usr/lib/python2.7/site-packages/schedutils-0.4-py2.7.egg-info
dh_builddeb.pkgbinarymangler: dpkg-deb --build debian/python-schedutils .. returned exit code 1
make: *** [binary-arch] Error 1
dpkg-buildpackage: error: /usr/bin/fakeroot debian/rules binary-arch gave error exit status 2

Apparently the files had to be installed in /usr/lib/python2.7/dist-packages but how to instruct the installer to do so without having to resort to ugly hacks? As I couldn’t find any useful answers on the web I asked falkTX on #kxstudio. He said the setup.py installer has a flag to install to dist-packages instead of site-packages, --install-layout deb. So I added that to the debian/rules file and gave it another spin:

#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

%:
        dh $@

override_dh_auto_build:
        python setup.py build

override_dh_auto_install:
        python setup.py install --skip-build --prefix /usr --root $(CURDIR) --install-layout deb

Now both pbuilder and Launchpad built the package without any issues.

Packaging Python Stuff

amSynth DSSI plug-in

De ontwikkelversie van amSynth heeft twee extra Makefiles in de broncode zitten waarmee je amSynth ook als DSSI en als (Linux) VST plug-in kan compileren. Vooral de DSSI plug-in leek me interessant dus ben aan het testen gegaan. Na het maken van Ubuntu pakketjes, waarvoor ik wel de DSSI Makefile moest aanpassen, en het installeren van het amsynth-dssi pakketje kon ik zonder problemen de plug-in openen en gebruiken in mijn favoriete host, Qtractor.

Een belangrijke functionaliteit miste wel: het selecteren van bestaande amSynth presets. De meeste DSSI plug-ins kunnen wel presets inladen, dit is ook een belangrijk voordeel van het DSSI plug-in framework, dus heb een feature request gedaan op de amSynth Google code site. En wie schetst mijn verbazing, dit verzoek werd gelijk opgepikt door de ontwikkelaar van amSynth en inmiddels is het mogelijk om met de laatste SVN versie bestaande amSynth presets te selecteren in het Track Properties venster van Qtractor!

text-align: center;

Qtractor Track Properties venster met amSynth DSSI plug-in

Inmiddels zijn mijn DSSI Makefile patch en een patch voor de DSSI plug-in zelf toegevoegd aan de source tree dus de DSSI plug-in in SVN versie laat zich nu heel makkelijk packagen voor Ubuntu, resultaat is terug te vinden in mijn PPA.

amSynth DSSI plug-in