web-dev-qa-db-fra.com

Exemples de packages binaires multiples

J'essaie d'inclure un aperçu de la nouvelle version expérimentale Gtk + 3 d'Inkscape dans notre PPA ... Je veux compiler la source en amont en utilisant différentes options de compilation pour générer deux packages binaires différents: "inkscape-trunk" (la construction quotidienne normale) et "inkscape-trunk-gtk3" (la construction expérimentale de Gtk + 3).

Ci-dessous, j'ai montré comment je ferais cela manuellement en utilisant la source en amont mais j'ai besoin de savoir comment le faire en utilisant les outils de packaging Debian.

J'ai déjà trouvé les packages source Ubuntu mpb et vim , qui créent tous deux plusieurs binaires en utilisant différentes configurations de compilation. Cependant, les deux utilisent l'ancienne syntaxe debhelper, et les fichiers de règles finissent tous les deux par être plutôt complexes.

Ma question: Quelqu'un peut-il suggérer un exemple de package approprié, dans lequel plusieurs builds binaires sont effectués en utilisant la nouvelle syntaxe élégante de debhelper "dh"? Est-ce même possible, ou dois-je recourir à l'écriture manuelle du fichier de règles.

# Building two different configurations of the same package...

# Make subfolders for building the two different configurations
src_dir=`pwd`
build_default_dir=${src_dir}/build-default
build_gtk3_dir=${src_dir}/build-gtk3
mkdir -p $build_default_dir
mkdir -p $build_gtk3_dir

# Generate build files
./autogen.sh

# Configure and build the default version
cd $build_default_dir
../configure --prefix=/usr/
make

# Configure and build the gtk+ 3 version
cd $build_gtk3_dir
../configure --prefix=/usr/ --enable-gtk3-experimental
make
3
Alex Valavanis

Jetez un œil au package qbittorrent , il construit deux versions du package à partir de la même source en utilisant la nouvelle syntaxe dh. Voici à quoi cela pourrait ressembler dans votre cas (non testé):

#!/usr/bin/make -f
%:
    dh $@

override_dh_auto_configure:
    mkdir -p build-nox && cd build-default && ../configure --prefix=/usr
    mkdir -p build-gtk3 && cd build-gtk3 && ../configure --prefix=/usr --enable-gtk3-experimental

override_dh_auto_build:
    dh_auto_build --builddirectory build-default
    dh_auto_build --builddirectory build-gtk3

override_dh_auto_install:
    dh_auto_install --builddirectory build-default --destdir debian/inkscape-trunk
    dh_auto_install --builddirectory build-gtk3 --destdir debian/inkscape-trunk-gtk3

override_dh_auto_clean:
    dh_auto_clean --builddirectory build-default
    dh_auto_clean --builddirectory build-gtk3
4
andrewsomething