J'essaie de transformer Spamdyke 4.3.1 ( lien de téléchargement ) en paquet Debian (.deb
). C'est un logiciel assez facile à construire, pas de dépendances folles, juste libssl-dev
donc:
apt-get install build-essential devscripts \
debhelper dh-make libssl-dev
et puis une fois que vous décompressez les sources:
cd spamdyke-4.3.1/spamdyke
./configure --exec_prefix=/usr
make
et d'habitude
make install
Comme je suis prêt à créer le paquet Debian avec ce logiciel, j'ai créé tous les fichiers nécessaires dans le dossier debian/
et modifié sa cible install
dans spamdyke/Makefile.in
en ajoutant ${DESTDIR}
:
install: spamdyke
cp spamdyke ${DESTDIR}/usr/local/bin/spamdyke-@PACKAGE_VERSION@
rm -f ${DESTDIR}/usr/local/bin/spamdyke
ln -s ${DESTDIR}/usr/local/bin/spamdyke-@PACKAGE_VERSION@ ${DESTDIR}/usr/local/bin/spamdyke
Mais mon problème actuel est que l’archive de distribution conserve toutes les sources dans le dossier spamdyke/
au lieu du dossier racine, ce qui n’est pas ce que les outils dh_*
s’attendent à résoudre automatiquement.
drwxr-xr-x 4 vagrant vagrant 4096 Feb 3 10:57 debian
drwxr-xr-x 3 vagrant vagrant 4096 Jan 30 19:43 documentation
drwxr-xr-x 2 vagrant vagrant 4096 Feb 5 21:00 spamdyke
drwxr-xr-x 997 vagrant vagrant 77824 Jan 30 19:43 tests
drwxr-xr-x 2 vagrant vagrant 4096 Jan 20 2012 utils
Malheureusement, je ne parviens pas à créer debian/rules
correct pour que tous les emballages fonctionnent. J'aimerais garder mon debian/rules
aussi simple que possible et, franchement, j'espérais que le pointer vers le dossier source spamdyke
avec l'option --builddirectory
serait suffisant au moins pour les étapes de configuration et de construction. Mon debian/rules
actuel se présente comme suit:
#!/usr/bin/make -f
export DH_VERBOSE = 1
%:
dh $@ --builddirectory=spamdyke
override_dh_auto_configure:
dh_auto_configure --builddirectory=spamdyke -- --exec_prefix=/usr
override_dh_auto_build:
dh_auto_make --builddirectory=spamdyke
cependant debuild -b -us -uc
produit un paquet .deb
assez vide dans le résultat, Lintian se plaignant de empty-binary-package
:
dpkg-genchanges: binary-only upload (no source code included)
dpkg-source --after-build spamdyke-4.3.1
dpkg-buildpackage: binary-only upload (no source included)
Now running lintian...
W: spamdyke: new-package-should-close-itp-bug
E: spamdyke: copyright-should-refer-to-common-license-file-for-gpl
W: spamdyke: empty-binary-package
Finished running lintian.
J'espère qu'il manque quelque chose d'évident ici, mais pour le moment, je suis incapable de trouver quoi rechercher. Toute allusion appréciée. Merci d'avance.
Vous devez définir --sourcedirectory
au lieu de _--builddirectory
_ sur _dh $@
_ appel, cela affectera tous les _dh_auto_*
_. Vous pouvez donc supprimer ces substitutions.
_BUILD SYSTEM OPTIONS
The following command line options are supported by all of the
dh_auto_* debhelper programs. These programs support a variety
of build systems, and normally
heuristically determine which to use, and how to use them. You
can use these command line options to override the default
behavior. Typically these are passed to
dh(1), which then passes them to all the dh_auto_* programs.
-Ddirectory, --sourcedirectory=directory
Assume that the original package source tree is at the
specified directory rather than the top level directory of
the Debian source package tree.
-B[directory], --builddirectory=[directory]
Enable out of source building and use the specified directory
as the build directory. If directory parameter is omitted, a
default build directory will be chosen.
_
Source: _man debhelper
_
NOTE:
Évitez d'utiliser des chemins codés en dur
Exemple _/usr/local
_, utilisez à la place la variable _$prefix
_. Les outils automatiques ont par défaut _/usr/local
_, Debhelper réinitialisé à _/usr
_ (il n'est pas nécessaire de le définir manuellement)
Corrections suggérées:
spamdyke/Makefile.in
définit prefix
et modifie la cible du lien symbolique.
_prefix := @prefix@
...
install: spamdyke
mkdir -p ${DESTDIR}$(prefix)/bin/
cp spamdyke ${DESTDIR}$(prefix)/bin/spamdyke-@PACKAGE_VERSION@
rm -f ${DESTDIR}$(prefix)/bin/spamdyke
ln -s $(prefix)/bin/spamdyke-@PACKAGE_VERSION@ ${DESTDIR}$(prefix)/bin/spamdyke
_
debian/rules
supprimer le remplacement
_#!/usr/bin/make -f
export DH_VERBOSE=1
%:
dh $@ --sourcedirectory=spamdyke
_
Référence: Normes de codage GN