Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/08/2007, à 14: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. sad

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, à 16:20)

Hors ligne

#2 Le 19/08/2007, à 00: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 wink

Hors ligne

#3 Le 20/08/2007, à 17: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. hmm

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... sad

Hors ligne

#4 Le 26/08/2007, à 17: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

++

Hors ligne