Old:Creare pacchetti per Kde: differenze tra le versioni
(→File di controllo: shlibs: possiibli problemi) |
|||
Riga 1: | Riga 1: | ||
=Introduzione= | =Introduzione= | ||
La pacchettizzazione Debian di applicazioni per Kde | La pacchettizzazione Debian di applicazioni per Kde è, per certi versi, un po' oscura, e la documentazione a riguardo è nascosta. | ||
Questo documento si prefigge l'obbiettivo di raccoglierla, per renderla | Questo documento si prefigge l'obbiettivo di raccoglierla, per renderla più facilmente consultabile ed ampliabile. | ||
=File di controllo= | =File di controllo= | ||
==control: le dipendenze== | ==control: le dipendenze== | ||
Un utile modo per avere sempre le dipendenze giuste (in un buon 90% dei casi) | Un utile modo per avere sempre le dipendenze giuste (in un buon 90% dei casi) è quello di inserire tra queste il pacchetto '''kdelibs4-dev''', che comporta, nel momento della risoluzione delle dipendenze, l'installazione di buona parte delle librerie normalmente richieste. | ||
Oltre a questo va aggiunto il pacchetto '''autobuild1.8''' usato nel processo di compilazione. | Oltre a questo va aggiunto il pacchetto '''autobuild1.8''' usato nel processo di compilazione. | ||
Riga 12: | Riga 12: | ||
Esiste un modo semplice per passare le opzioni corrette al ''configure'' di un pacchetto Debian: '''$(configkde)''' | Esiste un modo semplice per passare le opzioni corrette al ''configure'' di un pacchetto Debian: '''$(configkde)''' | ||
è necessario, quindi, inserire le seguenti righe: | |||
<pre> | <pre> | ||
-include debian/debiandirs | -include debian/debiandirs | ||
Riga 26: | Riga 26: | ||
CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info $(configkde) | CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info $(configkde) | ||
</pre> | </pre> | ||
Come | Come è possibile osservare, inoltre, è stato aggiunta la variabile ''$(configkde)'' che conterrà, al momento del lancio del ''./configure'' i parametri con i relativi valori corretti. | ||
===Evitare la compressio delle pagine del manuale di Kde=== | ===Evitare la compressio delle pagine del manuale di Kde=== | ||
Secondo la [http://www.debian.org/doc/debian-policy/ debian policy] tutta la [http://www.debian.org/doc/debian-policy/ch-docs.html#s12.3 documentazione addizionale] deve essere compressa con ''gzip -9''. | Secondo la [http://www.debian.org/doc/debian-policy/ debian policy] tutta la [http://www.debian.org/doc/debian-policy/ch-docs.html#s12.3 documentazione addizionale] deve essere compressa con ''gzip -9''. | ||
Questo procedimento, | Questo procedimento, però, porta a un problema molto grave: ''khelpcenter'' non supporta la documentazione in formato compresso, quindi se i file rappresentanti la documentazione per ''khelpcenter'' vengono compressi, questi non saranno consultabili. | ||
Per ovviare a questo inconveniente, | Per ovviare a questo inconveniente, è necessario modificare, all'interno di '''debian/rules''' la chiamata a dh_compress, esplicitando quali file dovranno essere esclusi: | ||
<pre> | <pre> | ||
dh_compress -X.docbook -X.css -X-license -X.dcl -X.bz2 -X.kmdr | dh_compress -X.docbook -X.css -X-license -X.dcl -X.bz2 -X.kmdr | ||
</pre> | </pre> | ||
===shlibs: possibili problemi=== | |||
Spesso, dopo la compilazione di un pacchetto, è possibile ricevere dei warning, da parte di lintian, sul fatto che il pacchetto contiene delle librerie in /usr/lib. Il tutto è normalissimo, in quando in /usr/lib devono essere presenti solo le librerie contenute in pacchetti di tipo libreria ''lib*''. | |||
Le librerie delle applicazioni per kde che sono utili solo all'applicazioni, normalmente, possono essere incluse direttamente nel pacchetto. | |||
Se il programma è ben fatto, comunque, le librerie di questo tipo dovrebbero essere già collocate in /usr/lib/kde3; se così non fosse, è sufficiente un '''--libdir=/usr/lib/kde3'''. | |||
=La compilazione= | =La compilazione= | ||
Riga 54: | Riga 59: | ||
==Documentazione Ufficiale== | ==Documentazione Ufficiale== | ||
* [http://www.debian.org/doc/devel-manuals#policy Debian Policy]<br/> Questo manuale descrive le linee guida (policy) per la distribuzione Debian GNU/Linux. Esse descrivono la struttura ed i contenuti di un archivio Debian, alcune problematiche dipendenti dal sistema operativo ed i requisiti tecnici che ogni pacchetto deve soddisfare per essere incluso nella distribuzione. | * [http://www.debian.org/doc/devel-manuals#policy Debian Policy]<br/> Questo manuale descrive le linee guida (policy) per la distribuzione Debian GNU/Linux. Esse descrivono la struttura ed i contenuti di un archivio Debian, alcune problematiche dipendenti dal sistema operativo ed i requisiti tecnici che ogni pacchetto deve soddisfare per essere incluso nella distribuzione. | ||
* [http://www.debian.org/doc/manuals/developers-reference/index.en.html Debian Developer's Reference]<br/>Questo manuale descrive le procedure e le risorse per i manutentori Debian. Spiega come diventare un nuovo sviluppatore, le procedure di invio, come utilizzare il nostro "bug tracking system", le mailing list, i server Internet, ecc.<br/>Questo manuale | * [http://www.debian.org/doc/manuals/developers-reference/index.en.html Debian Developer's Reference]<br/>Questo manuale descrive le procedure e le risorse per i manutentori Debian. Spiega come diventare un nuovo sviluppatore, le procedure di invio, come utilizzare il nostro "bug tracking system", le mailing list, i server Internet, ecc.<br/>Questo manuale è pensato come una guida di riferimento per tutti gli sviluppatori Debian (sia nuovi che vecchi). | ||
* [http://www.debian.org/doc/manuals/maint-guide/index.en.html Debian New Maintainers' Guide]<br/> Questo documento prova a descrivere la costruzione di un pacchetto Debian GNU/Linux al comune utente Debian (ed agli aspiranti sviluppatori) con un linguaggio semplice e fornendo degli esempi pratici. | * [http://www.debian.org/doc/manuals/maint-guide/index.en.html Debian New Maintainers' Guide]<br/> Questo documento prova a descrivere la costruzione di un pacchetto Debian GNU/Linux al comune utente Debian (ed agli aspiranti sviluppatori) con un linguaggio semplice e fornendo degli esempi pratici. | ||
Versione delle 15:32, 18 mag 2005
Introduzione
La pacchettizzazione Debian di applicazioni per Kde è, per certi versi, un po' oscura, e la documentazione a riguardo è nascosta. Questo documento si prefigge l'obbiettivo di raccoglierla, per renderla più facilmente consultabile ed ampliabile.
File di controllo
control: le dipendenze
Un utile modo per avere sempre le dipendenze giuste (in un buon 90% dei casi) è quello di inserire tra queste il pacchetto kdelibs4-dev, che comporta, nel momento della risoluzione delle dipendenze, l'installazione di buona parte delle librerie normalmente richieste. Oltre a questo va aggiunto il pacchetto autobuild1.8 usato nel processo di compilazione.
rules
Modificare il ./configure
Esiste un modo semplice per passare le opzioni corrette al configure di un pacchetto Debian: $(configkde)
è necessario, quindi, inserire le seguenti righe:
-include debian/debiandirs debian/debiandirs: admin/debianrules perl -w admin/debianrules echodirs > debian/debiandirs
prima della sezione qui sotto riportata.
config.status: configure dh_testdir # Add here commands to configure the package. CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info $(configkde)
Come è possibile osservare, inoltre, è stato aggiunta la variabile $(configkde) che conterrà, al momento del lancio del ./configure i parametri con i relativi valori corretti.
Evitare la compressio delle pagine del manuale di Kde
Secondo la debian policy tutta la documentazione addizionale deve essere compressa con gzip -9.
Questo procedimento, però, porta a un problema molto grave: khelpcenter non supporta la documentazione in formato compresso, quindi se i file rappresentanti la documentazione per khelpcenter vengono compressi, questi non saranno consultabili.
Per ovviare a questo inconveniente, è necessario modificare, all'interno di debian/rules la chiamata a dh_compress, esplicitando quali file dovranno essere esclusi:
dh_compress -X.docbook -X.css -X-license -X.dcl -X.bz2 -X.kmdr
shlibs: possibili problemi
Spesso, dopo la compilazione di un pacchetto, è possibile ricevere dei warning, da parte di lintian, sul fatto che il pacchetto contiene delle librerie in /usr/lib. Il tutto è normalissimo, in quando in /usr/lib devono essere presenti solo le librerie contenute in pacchetti di tipo libreria lib*. Le librerie delle applicazioni per kde che sono utili solo all'applicazioni, normalmente, possono essere incluse direttamente nel pacchetto. Se il programma è ben fatto, comunque, le librerie di questo tipo dovrebbero essere già collocate in /usr/lib/kde3; se così non fosse, è sufficiente un --libdir=/usr/lib/kde3.
La compilazione
Problemi con Buildd
TODO: descrizione --enable-libsuffix=
Yes,
--enable-libsuffix=
has no parameter! This option is needed to prevent configure from looking at 64 bit libraries.
Bookmark
Documentazione Ufficiale
- Debian Policy
Questo manuale descrive le linee guida (policy) per la distribuzione Debian GNU/Linux. Esse descrivono la struttura ed i contenuti di un archivio Debian, alcune problematiche dipendenti dal sistema operativo ed i requisiti tecnici che ogni pacchetto deve soddisfare per essere incluso nella distribuzione. - Debian Developer's Reference
Questo manuale descrive le procedure e le risorse per i manutentori Debian. Spiega come diventare un nuovo sviluppatore, le procedure di invio, come utilizzare il nostro "bug tracking system", le mailing list, i server Internet, ecc.
Questo manuale è pensato come una guida di riferimento per tutti gli sviluppatori Debian (sia nuovi che vecchi). - Debian New Maintainers' Guide
Questo documento prova a descrivere la costruzione di un pacchetto Debian GNU/Linux al comune utente Debian (ed agli aspiranti sviluppatori) con un linguaggio semplice e fornendo degli esempi pratici.
File
- /usr/share/doc/kdelibs4-dev/Packaging.txt.gz