Commit cb208f64 authored by Albert Gräf's avatar Albert Gräf
Browse files

Add Debian packaging.

parent 0c5703e9
# The Pd-L2Ork version number used in this build. XXXFIXME: Is there a way to
# grab this from the source somewhere?
version = 0.42.6
# Make Debian packages. This builds a package from the current HEAD in a
# subdirectory named $(debdist). It also creates the source archive that goes
# along with it. All files will be created in the toplevel source directory.
# To make this work, you need to have the Debian package toolchain (debuild
# and friends) installed. Also make sure you have your DEBEMAIL and
# DEBFULLNAME environment variables set up as explained in the debchange(1)
# manual page. These are needed to create changelog entries and in order to
# sign the Debian packages created with 'make deb' and 'make debsrc'.
# The typical workflow is as follows:
# 1. Run 'make debchange' once to create a new debian/changelog entry. You
# *must* do this once so that debuild knows about the proper version number of
# the package.
# 2. Run 'make deb' to build a signed binary package. Or 'make deb-us' for an
# unsigned one.
# If you only need the binary package for local deployment then you're done.
# Otherwise proceed to step 3.
# 3. Run 'make debsrc' to create a signed Debian source package which can be
# uploaded, e.g, to Launchpad using 'dput'. Or 'make debsrc-us' for an
# unsigned package.
# 4. Run 'make debclean' to get rid of any files that were created in steps 2
# and 3.
# The Debian version gets derived from the package version $(version) as well
# as the date and serial number of the last commit.
debversion = $(version)+git$(shell git log -1 --format=%cd --date=short | sed -e 's/-//g')+$(shell git rev-list --count HEAD)
# Debian revision number of the package.
debrevision = 1
# Source tarball and folder.
debsrc = pd-l2ork_$(debversion).orig.tar.gz
debdist = pd-l2ork-$(debversion)
# Secondary sources (Gem, wiringPi).
gemdebsrc = pd-l2ork_$(debversion).orig-Gem.tar.gz
pidebsrc = pd-l2ork_$(debversion).orig-wiringPi.tar.gz
# This is used for automatically generated debian/changelog entries (cf. 'make
# debchange'). Adjust as needed.
debmsg = "Build from latest upstream source."
debprio = "low"
.PHONY: debversion debchange debclean deb debsrc deb-us debsrc-us
debversion:
@echo $(debversion)
debchange:
dch -u $(debprio) -v $(debversion)-$(debrevision) $(debmsg) && dch -r ""
debclean:
rm -rf $(debdist)
rm -f pd-l2ork_$(version)+git* pd-l2ork-*.tar.bz2
deb: $(debsrc) $(gemdebsrc) $(pidebsrc)
rm -rf $(debdist)
tar xfz $(debsrc)
cd $(debdist) && rm -Rf Gem && tar xfz ../$(gemdebsrc)
cd $(debdist) && rm -Rf wiringPi && tar xfz ../$(pidebsrc)
cd $(debdist) && cp -R ../debian . && debuild $(DEBUILD_FLAGS)
rm -rf $(debdist)
debsrc:
$(MAKE) deb DEBUILD_FLAGS=-S
deb-us:
$(MAKE) deb DEBUILD_FLAGS="-us -uc"
debsrc-us:
$(MAKE) deb DEBUILD_FLAGS="-S -us -uc"
$(debsrc):
git -C .. archive --format=tar.gz -o $(CURDIR)/$(debsrc) --prefix=$(debdist)/ HEAD
$(gemdebsrc): ../Gem/ChangeLog
# Make sure that the Gem submodule is updated.
git -C .. submodule update
git -C ../Gem archive --format=tar.gz -o $(CURDIR)/$(gemdebsrc) --prefix=Gem/ HEAD
../Gem/ChangeLog:
# Make sure that the Gem submodule is initialized.
git -C .. submodule init
$(pidebsrc): wiringPi/INSTALL
git -C wiringPi pull
git -C wiringPi archive --format=tar.gz -o $(CURDIR)/$(pidebsrc) --prefix=wiringPi/ HEAD
wiringPi/INSTALL:
git clone git://git.drogon.net/wiringPi
pd-l2ork (0.42.6+git20141115+1494-1) trusty; urgency=low
* Build from latest upstream source.
-- Albert Graef <aggraef@gmail.com> Sat, 15 Nov 2014 12:03:02 +0100
pd-l2ork (0.42.6+git20141114+1491-1) trusty; urgency=low
* Build from latest upstream source.
-- Albert Graef <aggraef@gmail.com> Fri, 14 Nov 2014 02:37:26 +0100
pd-l2ork (0.42.6+git20141114+1487-1) trusty; urgency=low
* Build from latest upstream source.
-- Albert Graef <aggraef@gmail.com> Fri, 14 Nov 2014 01:51:22 +0100
pd-l2ork (0.42.6+git20141112+1479-1) trusty; urgency=low
* Build from latest upstream source.
-- Albert Graef <aggraef@gmail.com> Wed, 12 Nov 2014 19:06:22 +0100
Source: pd-l2ork
Section: sound
Priority: extra
Maintainer: Albert Graef <aggraef@gmail.com>
Build-Depends: debhelper (>= 7.0.50~), autoconf, automake, libtool, pkg-config, bison, flex, tcl-dev, tk-dev, libgtk2.0-dev, python-dev, python-support, flite1-dev, ladspa-sdk, libasound2-dev, libjack-dev, libbluetooth-dev, libcairo2-dev, libglew-dev, libgsl0-dev, libmagick++-dev, libavifile-0.7-dev, libdc1394-22-dev, libfftw3-dev, libfluidsynth-dev, libftgl-dev, libgmerlin-dev, libgsm1-dev, libjpeg-dev, libmp3lame-dev, libmpeg3-dev, libquicktime-dev, libraw1394-dev, libsmpeg-dev, libsndobj-dev, libspeex-dev, libstk0-dev, libv4l-dev, libvorbis-dev, libxv-dev, rsync, curl
Standards-Version: 3.9.5
Homepage: http://l2ork.music.vt.edu
Package: pd-l2ork
Architecture: any
# XXXTODO: Not sure whether it's really necessary to explicitly list these,
# since most of the corresponding development packages are already in the build
# dependencies. However, some of these might be loaded dynamically rather than
# being linked at compile time, so for safety we just include them all.
Depends: ${shlibs:Depends}, ${misc:Depends}, python, tkpng, tclxapian, ttf-dejavu-core, libavifile-0.7c2, libbluetooth3, libdc1394-22, libfftw3-3, libflite1, libftgl2, libgmerlin0, libgmerlin-avdec1, libgsl0ldbl, libgsm1, libjpeg62, libmp3lame0, libmpeg3-1, libquicktime2, libraw1394-11, libsmpeg0, libspeex1, libv4l-0, libvorbis0a, libxv1
Recommends: xdg-utils, pulseaudio-utils, tap-plugins, ladspa-foo-plugins, invada-studio-plugins-ladspa, blepvco, swh-plugins, mcp-plugins, cmt, blop, omins, ubuntustudio-audio-plugins, rev-plugins, dssi-utils, vco-plugins, wah-plugins, fil-plugins, mda-lv2
Provides: pd-l2ork
Replaces: pd-l2ork
Description: Interactive multimedia programming environment
Pd-L2Ork is Linux Laptop Orchestra's (L2Ork) real-time visual
programming environment for interactive multimedia. It also offers
a unique K-12 educational module for teaching children basics
about interactive instrument design, digital signal processing,
and music.
.
Pd-L2Ork is used as the backbone of L2Ork's infrastructure. It
has been also used in a number of MAKEr workshops, including
work with like Raspberry Pi and Arduino.
.
Pd-L2Ork is a monolithic fork of Pure Data.
Format: http://dep.debian.net/deps/dep5
Upstream-Name: pd-l2ork
Source: http://l2ork.music.vt.edu/main/?page_id=56
Files: *
Copyright: 1996-2012 Miller Puckette and others
License: BSD
Files: debian/*
Copyright: 2012 Albert Graef <Dr.Graef@t-online.de>
License: GPL-2+
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>
.
On Debian systems, the complete text of the GNU General
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
scripts/bash_completion/pd-l2ork etc/bash_completion.d
l2ork_addons/K12 usr/lib/pd-l2ork/extra
packages/linux_make/default.settings usr/lib/pd-l2ork
packages/linux_make/pd-l2ork.gif usr/lib/pd-l2ork
packages/linux_make/pd-l2ork*.png usr/share/icons/hicolor/128x128/apps
packages/linux_make/text-x-puredata.png usr/share/icons/hicolor/128x128/mimetypes
packages/linux_make/pd-l2ork*.desktop usr/share/applications
?package(pd-l2ork):needs="x11" section="Applications/Sound"\
title="Pd-L2Ork" \
command="/usr/bin/pd-l2ork" \
icon="/usr/share/icons/hicolor/128x128/apps/pd-l2ork.png"
text/x-puredata; pd-l2ork '%s'; edit=pd-l2ork '%s'; test=test "$DISPLAY" != ""; priority=2
text/x-maxmsp; pd-l2ork '%s'; edit=pd-l2ork '%s'; test=test "$DISPLAY" != ""; priority=2
#!/bin/sh
# postrm script for pure
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <postrm> `remove'
# * <postrm> `purge'
# * <old-postrm> `upgrade' <new-version>
# * <new-postrm> `failed-upgrade' <old-version>
# * <new-postrm> `abort-install'
# * <new-postrm> `abort-install' <old-version>
# * <new-postrm> `abort-upgrade' <old-version>
# * <disappearer's-postrm> `disappear' <overwriter>
# <overwriter-version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
if [ remove = "$1" -o abort-install = "$1" -o disappear = "$1" ]; then
for x in cyclist pdsend pdreceive; do
dpkg-divert --package pd-l2ork --remove --rename --divert /usr/bin/$x.orig /usr/bin/$x
done
for x in pdsend pdreceive; do
dpkg-divert --package pd-l2ork --remove --rename --divert /usr/share/man/man1/$x.1.orig.gz /usr/share/man/man1/$x.1.gz
done
fi
;;
*)
echo "postrm called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0
#!/bin/sh
# preinst script for pure
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <new-preinst> `install'
# * <new-preinst> `install' <old-version>
# * <new-preinst> `upgrade' <old-version>
# * <old-preinst> `abort-upgrade' <new-version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package
# Move files out of the way which are also in the vanilla Pd package.
case "$1" in
install|upgrade)
for x in cyclist pdsend pdreceive; do
dpkg-divert --package pd-l2ork --add --rename --divert /usr/bin/$x.orig /usr/bin/$x
done
for x in pdsend pdreceive; do
dpkg-divert --package pd-l2ork --add --rename --divert /usr/share/man/man1/$x.1.orig.gz /usr/share/man/man1/$x.1.gz
done
;;
abort-upgrade)
;;
*)
echo "preinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0
#!/usr/bin/make -f
# -*- makefile -*-
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
%:
dh $@
override_dh_auto_configure:
override_dh_auto_build:
cd wiringPi/wiringPi && make static
cd l2ork_addons/raspberry_pi/disis_gpio && ln -sf $(CURDIR)/wiringPi .
cd l2ork_addons && inst_dir=/usr ./tar_em_up.sh -F -n
override_dh_auto_install:
mkdir -p debian/pd-l2ork && mv packages/linux_make/build/usr debian/pd-l2ork
# Default preferences file.
install -d debian/pd-l2ork/etc/pd-l2ork && ln -s -f /usr/lib/pd-l2ork/default.settings debian/pd-l2ork/etc/pd-l2ork/default.settings
# Get rid of the Gem development files (these are provided elsewhere) and
# other stuff that's neither needed nor wanted.
cd debian/pd-l2ork/ && rm -f Makefile README.txt
cd debian/pd-l2ork/usr && rm -rf include/Gem lib/pkgconfig lib/pd-l2ork/extra/*/*.pd_linux_o lib/pd-l2ork/extra/*/*.la
# XXXTODO: Do we want to move these over to the doc hierarchy??
# rm -f debian/pd-l2ork/usr/lib/pd-l2ork/extra/*-help.pd
# XXXTODO: This is deprecated, so we might have to migrate to dh_python2 in
# the future. See http://deb.li/dhs2p.
override_dh_pysupport:
dh_pysupport -n -Xxmlrpc-test.py
override_dh_compress:
dh_compress -X.pd -X.wav -X.aiff -X.txt -X.md
override_dh_fixperms:
dh_fixperms
chmod 0755 debian/pd-l2ork/usr/lib/pd-l2ork/bin/pd.tk
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="text/x-puredata">
<sub-class-of type="text/plain"/>
<glob pattern="*.pd"/>
<alias type="application/x-puredata"/>
<magic priority="50">
<match type="string" value="#N " offset="0"/>
</magic>
<comment>Pure Data Document</comment>
<comment xml:lang="en">Pure Data Document</comment>
<comment xml:lang="de">Pure Data Dokument</comment>
<comment xml:lang="cy">Dogfen Pure Data</comment>
<comment xml:lang="nb">Pure Data-dokument</comment>
<comment xml:lang="nn">Pure Data-dokument</comment>
<comment xml:lang="fi">Pure Data-asiakirja</comment>
<comment xml:lang="cz">Pure Data Dokument</comment>
<comment xml:lang="sl">Dokument Pure Data</comment>
<comment xml:lang="fr">Pure Data Document</comment>
<comment xml:lang="es">Documento de Pure Data</comment>
<comment xml:lang="it">Documento Pure Data</comment>
<comment xml:lang="nb">Pure Data dokument</comment>
<comment xml:lang="da">Pure Data Dokument</comment>
<comment xml:lang="tr">Pure Data Belgesi</comment>
<comment xml:lang="ru">Документ Pure Data</comment>
</mime-type>
<mime-type type="text/x-puredata-help">
<sub-class-of type="text/x-puredata"/>
<glob pattern="*-help.pd"/>
<comment>Pure Data Help</comment>
</mime-type>
<mime-type type="text/x-puredata-meta">
<sub-class-of type="text/x-puredata"/>
<glob pattern="*-meta.pd"/>
<comment>Pure Data Meta Marker for Libraries</comment>
</mime-type>
<mime-type type="application/x-puredata-external-linux">
<sub-class-of type="application/octet-stream"/>
<glob pattern="*.pd_linux"/>
<comment>Pure Data External (Linux Binary)</comment>
</mime-type>
<mime-type type="application/x-puredata-external-darwin">
<sub-class-of type="application/octet-stream"/>
<glob pattern="*.pd_darwin"/>
<comment>Pure Data External (Mac OS X Binary)</comment>
</mime-type>
<mime-type type="text/x-maxmsp">
<sub-class-of type="text/plain"/>
<glob pattern="*.mxt"/>
<comment>Max/MSP Text Document</comment>
<magic priority="50">
<match type="string" value="max v2;" offset="0"/>
</magic>
</mime-type>
<mime-type type="application/x-maxmsp">
<sub-class-of type="application/octet-stream"/>
<glob pattern="*.mxb"/>
<magic priority="50">
<match type="string" value="pmax" offset="4"/>
</magic>
<comment>Max/MSP Binary Document</comment>
</mime-type>
</mime-info>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment