3 581
contributi
(primo inserimento) |
|||
(20 versioni intermedie di 8 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{ | {{Old}} | ||
==Introduzione== | |||
{{Warningbox|I pacchetti descritti in questa guida non sono più disponibili. Tale pagina non viene cancellata in quanto raccoglie informazioni utili per la pacchettizzazione di software in Debian}} | |||
Il pacchetto bootsplash per Debian, presente nei repository: | Il pacchetto bootsplash per Debian, presente nei repository: | ||
<pre> | <pre> | ||
deb | deb http://debian.bootsplash.de unstable main | ||
deb-src | deb-src http://debian.bootsplash.de unstable main | ||
</pre> | </pre> | ||
è molto comodo per la gestione dei temi, ma ha un ''difetto'': utilizza debconf per la gestione dei temi. Questo porta ad un effetto collaterale: i temi installati manualmente non saranno riconosciuti e per poterli usare si dovranno eseguire operazioni scomode (rispetto ad un semplice <code>dpkg-reconfigure bootsplash</code> :-) ). | |||
Vedremo, ora, come creare un pacchetto Debian contenente un tema, e come gestire il template di debconf per aggiornare la lista dei temi. | Vedremo, ora, come creare un pacchetto Debian contenente un tema, e come gestire il template di debconf per aggiornare la lista dei temi. | ||
=Requisiti= | {{Box|Nota Bene:|gli script qui descritti non sono opera mia, ma di [mailto:oliver_at_dediziert_dot_org Oliver Sorge], che mantiene i temi presenti nel repository sopra riportato}} | ||
==Requisiti== | |||
Per poter creare un pacchetto Debian dobbiamo installare i seguenti pacchetti: | |||
* build-essential | |||
* dpkg-dev | |||
* dh-make | |||
* debhelper | |||
=Creazione del pacchetto= | ==Creazione del pacchetto== | ||
Estraiamo il pacchetto contenente il tema, e rinominiamo la directory contenente il tema in un formato del tipo | Estraiamo il pacchetto contenente il tema, e rinominiamo la directory contenente il tema in un formato del tipo <code>bootsplash-theme-<nometema>-<versione></code>. | ||
La directory deve contenere le directory images, ... | La directory deve contenere le directory images, ... | ||
Una volta completato, lanciamo il comando | Una volta completato, lanciamo il comando: | ||
<pre> | <pre> | ||
$ dh_make --copyright GPL | $ dh_make --copyright GPL | ||
</pre> | </pre> | ||
ovviamente dopo aver verificato la licenza del tema | ovviamente dopo aver verificato la licenza del tema. | ||
Alla domanda | Alla domanda: | ||
<pre> | <pre> | ||
Type of package: single binary, multiple binary, library, or kernel module? | Type of package: single binary, multiple binary, library, or kernel module? | ||
[s/m/l/k]</pre> rispondiamo con una ''s''. | [s/m/l/k]</pre> rispondiamo con una ''s''. | ||
Controlliamo i dati riportati (per il nome e l'email possiamo usare le variabili d'ambiente $DEBEMAIL e $DEBFULLNAME); se tutto | Controlliamo i dati riportati (per il nome e l'email possiamo usare le variabili d'ambiente <code>$DEBEMAIL</code> e <code>$DEBFULLNAME</code>); se tutto è corretto è possibile andare avanti. | ||
Verrà così creata la directory <code>debian/</code>, contenente tutto il necessario per il nostro pacchetto. | |||
==La directory debian/*== | ===La directory <code>debian/*</code>=== | ||
===Rimozione dei file non necessari=== | ====Rimozione dei file non necessari==== | ||
La directory debian/ contiene molti file non necessari, che possiamo tranquillamente rimuovere: | La directory <code>debian/</code> contiene molti file non necessari, che possiamo tranquillamente rimuovere: | ||
<pre> | <pre> | ||
$ cd debian | $ cd debian | ||
Riga 41: | Riga 50: | ||
</pre> | </pre> | ||
===.templates=== | ====<code>.templates</code>==== | ||
Dobbiamo creare il template utilizzato da debconf. Creiamo, quindi, un file del tipo | Dobbiamo creare il template utilizzato da debconf. Creiamo, quindi, un file del tipo <code>bootsplash-theme-<nometema>.template</code> con il seguente contenuto: | ||
<pre> | <pre> | ||
Template: shared/bootsplash-theme | Template: shared/bootsplash-theme | ||
Riga 59: | Riga 68: | ||
remember to include the proper (vga=???) line in your lilo.conf. | remember to include the proper (vga=???) line in your lilo.conf. | ||
</pre> | </pre> | ||
Ricordandoci di sostituire a | Ricordandoci di sostituire a <code><nometema></code> il nome del nostro tema ed eventualmente sistemare i valori delle risoluzioni. | ||
===rules=== | ====<code>rules</code>==== | ||
Il file | Il file <code>debian/rules</code> necessita di molte modifiche. Conviene, quindi, sostituire il contenuto con questo: | ||
<pre> | <pre> | ||
#!/usr/bin/make -f | #!/usr/bin/make -f | ||
Riga 74: | Riga 83: | ||
# Edit these lines!!! | # Edit these lines!!! | ||
THEME_DIRS = images config animations bootloader | THEME_DIRS = images config animations bootloader | ||
THEME_SUFFIX = <nometema | THEME_SUFFIX = <nometema> | ||
configure: configure-stamp | configure: configure-stamp | ||
Riga 98: | Riga 107: | ||
dh_clean -k | dh_clean -k | ||
dh_installdirs | dh_installdirs | ||
-cp -a $(THEME_DIRS) "$(CURDIR)/debian/bootsplash-theme-$(THEME_SUFFIX)/etc/bootsplash/themes/$(THEME_SUFFIX)/" | -cp -a $(THEME_DIRS) \ | ||
"$(CURDIR)/debian/bootsplash-theme-$(THEME_SUFFIX)/etc/bootsplash/themes/$(THEME_SUFFIX)/" | |||
binary-indep: build install | binary-indep: build install | ||
Riga 124: | Riga 134: | ||
</pre> | </pre> | ||
ricordando le | ricordando le seguenti cose: | ||
* fare attenzione ad usare la tabulazioni (tasto <tab>) al posto degli spazi per le indentazioni (obbligatorie)! | * fare attenzione ad usare la tabulazioni (tasto <code><tab></code>) al posto degli spazi per le indentazioni (obbligatorie)! | ||
* modificare la variabile THEME_DIRS riportando solo le directory presenti all'interno della directory | * modificare la variabile <code>THEME_DIRS</code> riportando solo le directory presenti all'interno della directory <code><nometema>-<versione></code> ad eccezione di <code>debian</code>. | ||
* modificare la variabile THEME_SUFFIX con il nome del tema. | * modificare la variabile <code>THEME_SUFFIX</code> con il nome del tema. | ||
====<code>control</code>==== | |||
Il file <code>debian/control</code> necessita di alcune modifiche: | |||
* <code>Section</code> dovrebbe essere modificata in <code>graphics</code> | |||
* <code>Architecture</code> può essere modificato in <code>all</code>, visto che il pacchetto non sarà dipendente dall'architettura | |||
* <code>Depends</code> può essere modificato in <code>bootsplash (>= 3.0.0), debconf (>= 0.5) | debconf-2.0</code> | |||
* deve essere aggiunta la riga <code>Provides: bootsplash-theme</code> | |||
* la descrizione deve essere modificata nel seguente modo (in linea coi pacchetti di http://www.bootsplash.de ): | |||
<pre>Description: The bootsplash theme <nometema> | |||
This is another bootsplash theme packaged for the Debian GNU/Linux | |||
Operating System. | |||
. | |||
Resolutions: 1280x1024</pre> | |||
====dirs==== | |||
Dovrà contenere: | |||
<pre> | |||
etc/bootsplash/themes/<nometema> | |||
</pre> | |||
====docs==== | |||
Dovrà contenere: | |||
<pre> | |||
docs/* | |||
</pre> | |||
se la directory è presente nei sorgenti del tema (altrimenti si può omettere questo file). | |||
====postinst==== | |||
Usiamo direttamente quelli creati per i pacchetti dei temi presenti su http://www.bootsplash.org: | |||
<pre> | |||
#! /bin/sh | |||
# postinst script for test | |||
# | |||
# see: dh_installdeb(1) | |||
set -e | |||
. /usr/share/debconf/confmodule | |||
THEME_SUFFIX=<nometema> | |||
# summary of how this script can be called: | |||
# * <postinst> `configure' <most-recently-configured-version> | |||
# * <old-postinst> `abort-upgrade' <new version> | |||
# * <conflictor's-postinst> `abort-remove' `in-favour' <package> | |||
# <new-version> | |||
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour' | |||
# <failed-install-package> <version> `removing' | |||
# <conflicting-package> <version> | |||
# for details, see http://www.debian.org/doc/debian-policy/ or | |||
# the debian-policy package | |||
# | |||
case "$1" in | |||
configure) | |||
db_register shared/bootsplash-theme bootsplash-theme-$THEME_SUFFIX | |||
;; | |||
abort-upgrade|abort-remove|abort-deconfigure) | |||
;; | |||
*) | |||
gettext -s "postinst called with unknown argument \`$1'" >&2 | |||
exit 1 | |||
;; | |||
esac | |||
# dh_installdeb will replace this with shell code automatically | |||
# generated by other debhelper scripts. | |||
#DEBHELPER# | |||
exit 0 | |||
</pre> | |||
====postrm==== | |||
<pre> | |||
#! /bin/sh | |||
# postrm script for bootsplash-theme-newtux | |||
# | |||
# see: dh_installdeb(1) | |||
set -e | |||
# summary of how this script can be called: | |||
# * <postrm> `remove' | |||
# * <postrm> `purge' | |||
# * <old-postrm> `upgrade' <new-version> | |||
# * <new-postrm> `failed-upgrade' <old-version> | |||
# * <new-postrm> `abort-install' | |||
# * <new-postrm> `abort-install' <old-version> | |||
# * <new-postrm> `abort-upgrade' <old-version> | |||
# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version> | |||
# for details, see http://www.debian.org/doc/debian-policy/ or | |||
# the debian-policy package | |||
# Theme variables | |||
THEME_SUFFIX=<nometema> | |||
case "$1" in | |||
remove) | |||
# This only applies to the remove process. | |||
# By default the directory of the theme under | |||
# /etc/bootsplash/themes will not be removed. | |||
# However, this postrm script will do this if | |||
# a directory exists. | |||
if [ -d /etc/bootsplash/themes/$THEME_SUFFIX ] | |||
then | |||
gettext -s "Deleting orphaned files under /etc/bootsplash/themes/$THEME_SUFFIX ... " | |||
rm -rf /etc/bootsplash/themes/$THEME_SUFFIX || gettext -s "ERROR: Couldn't delete directory /etc/bootsplash/themes/$THEME_SUFFIX." | |||
fi | |||
;; | |||
purge|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) | |||
;; | |||
*) | |||
gettext -s "postrm called with unknown argument \`$1'" >&2 | |||
exit 1 | |||
esac | |||
# dh_installdeb will replace this with shell code automatically | |||
# generated by other debhelper scripts. | |||
# Automatically added by dh_installdebconf | |||
if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then | |||
. /usr/share/debconf/confmodule | |||
db_purge | |||
fi | |||
# End automatically added section | |||
exit 0 | |||
</pre> | |||
====prerm==== | |||
<pre> | |||
#! /bin/sh | |||
# prerm script for bootsplash-theme-debblue | |||
# | |||
# see: dh_installdeb(1) | |||
set -e | |||
. /usr/share/debconf/confmodule | |||
# summary of how this script can be called: | |||
# * <prerm> `remove' | |||
# * <old-prerm> `upgrade' <new-version> | |||
# * <new-prerm> `failed-upgrade' <old-version> | |||
# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version> | |||
# * <deconfigured's-prerm> `deconfigure' `in-favour' | |||
# <package-being-installed> <version> `removing' | |||
# <conflicting-package> <version> | |||
# for details, see http://www.debian.org/doc/debian-policy/ or | |||
# the debian-policy package | |||
case "$1" in | |||
remove|upgrade|deconfigure) | |||
# I no longer claim this question. | |||
db_unregister shared/bootsplash-theme | |||
# See if the shared question still exists. | |||
if db_get shared/bootsplash-theme; then | |||
db_metaget shared/bootsplash-theme owners | |||
db_subst shared/bootsplash-theme choices $RET | |||
db_metaget shared/bootsplash-theme value | |||
if [ "<package>" = "$RET" ] ; then | |||
db_fset shared/bootsplash-theme seen false | |||
db_input high shared/bootsplash-theme || true | |||
db_go || true | |||
fi | |||
fi | |||
;; | |||
failed-upgrade) | |||
;; | |||
*) | |||
gettext -s "prerm called with unknown argument \`$1'" >&2 | |||
exit 1 | |||
;; | |||
esac | |||
exit 0 | |||
</pre> | |||
==Compilazione== | |||
La compilazione di un pacchetto è semplicissima: nella directory contenente i sorgenti diamo il seguente comando: | |||
<pre> | |||
$ dpkg-buildpackage | |||
</pre> | |||
se tutto va a buon fine, verrà creato un pacchetto Debian nella directory superiore. | |||
==Test del pacchetto== | |||
L'unico modo per testare il pacchetto è installarlo (<code>dpkg -i pacchetto.deb</code>) e riconfigurare il pacchetto bootsplash (<code>dpkg-reconfigure bootsplash</code>): se tutto è stato fatto correttamente, nella lista apparirà il nuovo tema. | |||
== | ==Conclusioni== | ||
La guida qui riportata è frutto dell'analisi dei pacchetti <code>bootsplash-theme-*</code> presenti nel repository di http://www.bootsplash.de ;) | |||
{{Autori | |||
|Autore = [[Utente:MaXeR|MaXeR]] | |||
}} |
contributi