#1 Le 14/08/2007, à 13:01
- Kaze
Besoin d'aide pour faire un paquet Ubuntu de KompoZer !
Bonjour,
je développe KompoZer, une version "bugfix" de Nvu. Jusqu'ici je me suis toujours contenté de proposer des archives binaires *.tgz, là je voudrais faire un *.deb pour Ubuntu. Ancien Debianiste, j'utilise Dapper depuis sa sortie mais je n'ai jamais eu à faire de paquet DEB jusqu'ici.
J'ai pu bricoler un premier paquet DEB binaire en bidouillant à coups de « ar » et en désossant le paquet Dapper de Nvu, il fonctionne pas mal (sur toutes les versions d'Ubuntu depuis Dapper jusqu'à Gutsy), maintenant je voudrais faire un vrai paquet qu'on puisse compiler avec buildpackage. Initialement c'est un certain Tony Yarusso qui devait s'en occuper (et surtout le maintenir par la suite), mais il s'avère qu'il sèche sur la question.
J'ai bien potassé les docs Debian et Ubuntu existantes, notamment ce tutoriel « blaireau proof » que je trouve bien fichu : http://ubuntuforums.org/showthread.php?t=51003
debian/control :
Source: kompozer
Section: web
Priority: optional
Maintainer: Tony Yarusso <tonyyarusso@comcast.net>
Build-Depends: debhelper (>= 4.0.0)
Standards-Version: 3.6.2
Package: kompozer
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Complete Web Authoring System
.
KompoZer is a complete Web Authoring System that
combines web file management and easy-to-use WYSIWYG
(What You See Is What You Get) web page editing.
.
KompoZer is designed to be extremely easy to use,
making it ideal for non-technical computer users
who want to create an attractive, professional-looking
web site without needing to know HTML or web coding.
.
For more details look at http://kompozer.sourceforge.net
debian/rules :
#!/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
ndir=$(CURDIR)/debian/install
build: build-stamp
build-stamp:
dh_testdir
# Add here commands to compile the package.
@echo "bunzipping the source :)"
if [ ! -d mozilla ]; then tar xjf ../kompozer*bz2; fi
#patch -p0 < debian/patches/amd64.patch
cp debian/mozconfig.debian mozilla/.mozconfig
cd mozilla && $(MAKE) -f client.mk build_all
touch build-stamp
clean:
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
if [ -d mozilla ]; then rm -rf mozilla; fi
rm -rf debian/install
dh_clean
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
# Add here commands to install the package into debian/kompozer.
mkdir -p $(CURDIR)/debian/install
cd mozilla && $(MAKE) install DESTDIR=$(CURDIR)/debian/install
#binary
mkdir -p $(CURDIR)/debian/kompozer/usr/{lib,bin}
cp -r $(ndir)/usr/bin $(CURDIR)/debian/kompozer/usr/
mkdir -p $(CURDIR)/debian/kompozer/usr/share/pixmaps/
cp debian/kompozer.png $(CURDIR)/debian/kompozer/usr/share/pixmaps/
mkdir -p $(CURDIR)/debian/kompozer/usr/share/applications/
cp debian/*.desktop $(CURDIR)/debian/kompozer/usr/share/applications/
#include
mkdir -p $(CURDIR)/debian/kompozer-dev/usr/{lib,share}
cp -r $(ndir)/usr/include $(CURDIR)/debian/kompozer-dev/usr/
cp -r $(ndir)/usr/lib/pkgconfig $(CURDIR)/debian/kompozer-dev/usr/lib
cp -r $(ndir)/usr/share/aclocal $(CURDIR)/debian/kompozer-dev/usr/share/
#lib
cp -r $(ndir)/usr/lib/kompozer-0.7.10 $(CURDIR)/debian/kompozer/usr/lib
#idl
mkdir -p $(CURDIR)/debian/kompozer-dev/usr/share
cp -r $(ndir)/usr/share/idl $(CURDIR)/debian/kompozer-dev/usr/share
# remove internal myspell directory (and myspell dicts) and
# symlink it to /usr/share/myspell where all myspell-* dicts
# place their stuff
rm -rf $(CURDIR)/debian/kompozer/usr/lib/kompozer-0.7.10/components/myspell
ln -s /usr/share/myspell/dicts \
$(CURDIR)/debian/kompozer/usr/lib/kompozer-0.7.10/components/myspell
#remove exec bit from .js files to prevent lintian warnings
chmod -x $(CURDIR)/debian/kompozer/usr/lib/kompozer-0.7.10/components/*.js
binary-indep: build install
dh_testdir -i
dh_testroot -i
dh_installchangelogs -i
dh_installdocs -i
# dh_installdebconf
dh_compress -i
dh_fixperms -i
dh_installdeb -i
dh_shlibdeps -i
dh_gencontrol -i
dh_md5sums -i
dh_builddeb -i
#We have nothing to do by default.
# Build architecture-dependent files here.
binary-arch: build install
dh_testdir -a
dh_testroot -a
dh_installchangelogs -a
dh_installdocs -a
dh_installexamples -a
dh_installmenu -a
# dh_installdebconf
dh_installman -a
dh_link -a
dh_strip -a
dh_compress -a
dh_fixperms -a
dh_installdeb -a
dh_shlibdeps -a
dh_gencontrol -a
dh_md5sums -a
dh_builddeb -a
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure
Le tarball que j'utilise pour ce paquet est disponible ici : http://downloads.sourceforge.net/kompozer/kompozer-0.7.10rc5.20070814-src.tar.bz2 (~30 MO)
Le dossier 'debian' créé par dh_make et édité manuellement est disponible ici : http://kompozer.net/zip/debian.tgz
Pour les plus courageux, le code source et le dossier 'debian' sont accessibles en Subversion depuis SourceForge.net :
svn co https://kompozer.svn.sourceforge.net/svnroot/kompozer kompozer
Je lance un « dpkg-buildpackage -rfakeroot », tout se passe bien jusqu'à ce qu'il atteigne le bloc « binary-indep: build install » ; là, j'obtiens le message d'erreur suivant :
dh_testdir -i
dh_testdir: I have no package to build
make: *** [binary-indep] Erreur 1
et tout s'arrête.
J'ai passé une demi-journée sur la question, sans succès. Pourquoi dh_testdir me dit-il qu'il n'y a pas de paquet à assembler ? Qu'est-ce que j'ai fait de travers ?
Merci d'avance pour votre aide !
EDIT: changement de titre, le précédent ne traduisait pas assez mon désarroi...
Dernière modification par Kaze (Le 14/08/2007, à 15:20)
Fabien Cazenave, KompoZer lead dev
Hors ligne
#2 Le 18/08/2007, à 23:14
- mr_pouit
Re : Besoin d'aide pour faire un paquet Ubuntu de KompoZer !
Bonsoir,
L'option '-i' de debhelper ne prend que les paquets arch-indep (qui sont indépendants de l'architecture utilisée). Ces paquets sont déclarés de la façon suivante dans le debian/control: Architecture: all. Tu n'as qu'un paquet en Architecture: any, d'où le message d'erreur. Si tu n'as qu'un paquet binaire dépendant de l'architecture, tu peux supprimer de ton debian/rules ce qui se rapporte à *-indep.
Et pour avoir ton logiciel empaqueté, tu peux essayer de t'adresser à la Ubuntu Mozilla Team : https://wiki.ubuntu.com/MozillaTeam
Hors ligne
#3 Le 20/08/2007, à 16:39
- Kaze
Re : Besoin d'aide pour faire un paquet Ubuntu de KompoZer !
Merci de ton aide, je suis arrivé à la même conclusion la veille.
Maintenant ça marchouille mais sans plus : le 'make install' produit une application légèrement différente du 'make', à savoir l'icone (qui redevient celle de Nvu, qui est sous trademark, donc inutilisable), les fichiers *.rdf (ex: l'astuce du jour), et probablement pas mal d'autres détails... Résultat je ne sais pas comment je vais m'en sortir ! Faudrait que j'arrive à copier tous les fichiers dans l'arborescence Ubuntu, j'ai commencé à le faire, mais c'est un travail fastidieux et parfaitement idiot.
Le pire c'est que je sais faire un deb binaire en 3 minutes. Au pire, tant pis, KompoZer restera une application téléchargeable à part. C'est vrai que j'aurais aimé voir mon projet dans les dépôts officiels de Gutsy...
Et pour avoir ton logiciel empaqueté, tu peux essayer de t'adresser à la Ubuntu Mozilla Team : https://wiki.ubuntu.com/MozillaTeam
Oui, je suis allé sur leur canal IRC mais je me suis fait rembarrer comme un malpropre parce que KompoZer est encore basé sur Gecko 1.7.x...
Fabien Cazenave, KompoZer lead dev
Hors ligne
#4 Le 26/08/2007, à 16:56
- Kaze
Re : Besoin d'aide pour faire un paquet Ubuntu de KompoZer !
Déterrage de topic, histoire de vous tenir au jus... et des fois que ça puisse servir à quelqu'un d'autre.
mr_pouit > je viens tout juste de comprendre que l'option «-i» servait uniquement au paquet kompozer-dev (dans mon cas). Entre-temps, j'ai compris également l'intérêt des dh_install et dh_links, qui permettent d'avoir un fichier debian/rules nettement plus propre, et de déplacer les fichiers non binaires dans /usr/share.
Résultat, j'ai pu créer des paquets 'kompozer' et 'kompozer-dev' avec pbuilder. Tout arrive !
Pour ceux qui voudraient m'aider à améliorer le paquet source, en vue d'une candidature pour Gutsy (il reste à peine 4 jours !) :
kompozer_0.7.10-0ubuntu1.dsc
kompozer_0.7.10-0ubuntu1.diff.gz
Pour ceux qui voudraient tester les paquets produits :
kompozer_0.7.10-0ubuntu1_i386.deb
kompozer-dev_0.7.10-0ubuntu1_all.deb
++
Fabien Cazenave, KompoZer lead dev
Hors ligne