Guida per il nuovo Maintainer
Nota a pié di pagina

1

Nel documento si suppone l'utilizzo di un sistema squeeze. Se si intende seguire questo documento per un sistema lenny, bisognerebbe almeno installare delle versioni backport (n.d.t. versioni dei programmi presenti nei pacchetti di testing e unstable, compilate per poter funzionare in un sistema stable) di dpkg e debhelper.

2

Ci sono un paio di pacchetti simili, ma specializzati come dh-make-perl, dh-make-php, ecc.

3

Detto questo, ovviamente ci sarà sempre qualche nuovo programma che vale la pena pacchettizzare.

4

si può utilizzare il comando file per scoprire il formato di archiviazione

5

Osserva che il programma in questione è già stato pacchettizzato, e la versione corrente 0.15.3 ha subito sostanziali modifiche dalla versione 0.9.12 menzionata nei seguenti esempi.

6

Vedere Autotools Tutorial e /usr/share/doc/autotools-dev/README.Debian.gz.

7

La stringa della versione può essere confrontata con "dpkg --compare-versions ver1 op ver2". Vedere dpkg(1) manpage.

8

Il seguente testo assume che stiate utilizzando Bash come shell di login. Se si utilizza un'altra shell di login, come la Z shell, bisognerà usare i suoi file di configurazione al posto di ~/.bashrc.

9

Se i sorgenti originali forniscono la directory debian e il suo contenuto, si deve eseguire il comando dh_make con l'opzione --addmissing. Il nuovo formato dei sorgenti 3.0 (quilt) è abbastanza maturo da non danneggiare questi pacchetti. Potrebbe essere necessario aggiornare i contenuti forniti nei sorgenti originali per il pacchetto debian.

10

Ecco le varie opzioni: "s" che sta per "binario Singolo", "i" per "Indipendente dall'architettura", "m" per "binario Multiplo", "l" per "Libreria", "k" per "modulo del Kernel", "n" per "patch del kernel" e "b" per "cdbs". Questo documento si focalizza sull'uso del pacchetto debhelper con il comando dh. Verrà trattato l'utilizzo del nuovo programma dh per i "binari Singoli" e tratta brevemente quelli "Indipendenti dall'architettura" e i "binari Multipli". Il pacchetto cdbs offre un'infrastruttura di script alternativa al comando dh e non rientra nell'ambito di questo documento.

11

Si può disabilitare tale configurazione lanciando il comando quilt come "quilt --quiltrc /dev/null ...".

12

La directory debian/patches dovrebbe essere creata se si esegue dh_make, come descritto prima. Questo esempio crea la directory nel caso in cui si stia aggiornando un pacchetto esistente.

13

Per i pacchetti binari multipli, il comando dh_auto_install utilizza la directory temporanea debian/tmp, mentre il comando dh_install, con l'aiuto dei file debian/pacchetto-1.install e debian/pacchetto-2.install suddivide il contenuto di debian/tmp nelle directory temporanee debian/pacchetto-1 e debian/pacchetto-2 per creare pacchetti binari multipli *.deb.

14

Questo è solo un esempio che mostra come un Makefile dovrebbe apparire. Se il Makefile è creato dal comando ./configure, il modo giusto per correggere il Makefile è eseguire il comando ./configure dal comando dh_auto_configure includendo come opzione predefinita --prefix=/usr.

15

L'autore si rende conto che questo non è il miglior esempio, considerando che con il pacchetto libncurses viene fornito il link simbolico libcurses.so, ma non è riuscito a trovare di meglio. Sono molto graditi dei suggerimenti :-)

16

Questa strana situazione è ben documentata in Debian Policy Manual, Footnotes 48. Questo non è dovuto all'uso del comando dh nel file debian/rules, ma bensì al funzionamento di dpkg-buildpackage.La stessa situazione si presenta per il sistema automatico di compilazione di Ubuntu.

17

Alcune persone utilizzano dei valori di distribuzione non validi come UNRELEASED per evitare che un pacchetto venga accidentalmente caricato in una VCS condivisa.

18

Questo obiettivo è utilizzato da "dpkg-buildpackage" come in (ri)Creazione completa, Sezione 6.1.

19

Questo obiettivo è utilizzato da "dpkg-buildpackage -B" come in "ref id="porterbuild"".

20

Questo obiettivo è utilizzato da "dpkg-buildpackage -A".

21

Questo è una nuova caratteristica di debhelper V7. La sua architettura è documentata su Not Your Grandpa's Debhelper ed è stata presentata alla Debconf9 dal programmatore di debhelper. Su sistemi Debian lenny, dh_make crea file rules molto più complicati, con molti script dh_* elencati per ogni target e li congela alla loro condizione iniziale, prima della pacchettizzazione. Questo nuova versione del programma dh è molto più semplice e ci libera da questo vincolo. Si continuerà ad avere il pieno potere di personalizzazione utilizzando i target override_dh_*. Si veda Personalizzazione del file rules, Sezione 4.4.3. Esso si basa solo sul pacchetto debhelper e non offusca il processo di compilazione come il pacchetto cdbs.

22

Si può verificare la sequenza di avvio dei programmi dh_* indicando il target come "dh --no-act target" o "debian/rules -- '--no-act target'", in questo modo si ottiene un'esecuzione un'esecuzione simulata dei programmi.

23

Si presuppone che il pacchetto python-support sia installato nel sistema.

24

Per informazioni complete su tutto quello che questi script dh_* fanno esattamente, e quali sono le loro opzioni, si prega di leggere i loro rispettivi manuali e la documentazione debhelper.

25

Questi comandi supportano anche altri ambienti di costruzione come setup.py, che possono essere elencati eseguendo "dh_auto_build --list" nella directory dei sorgenti del pacchetto.

26

Attualmente il programma esegue il primo target distclean, realclean o clean prensente nel Makefile

27

Attualmente il programma esegue il primo target test o check nel Makefile

28

Se il pacchetto installata il file /usr/share/perl5/Debian/Debhelper/Sequence/nome_personalizzato.pm, si deve attivare la funzione di personalizzazione tramite il comando "dh --with nome-personalizzato $@".

29

L'uso del comando dh_pysupport è preferito rispetto all'uso di del comando dh_pycentral. Non si deve utilizzare il comando dh_python.

30

Sotto lenny, se si vuole cambiare il comportamento di uno script dh_* basta cercare la riga relativa nel file rules e modificarla.

31

Il pacchetto gentoo utilizza il sistema di costruzione GNU, conosciuto anche come Autotools. Si veda http://en.wikipedia.org/wiki/GNU_build_system.

32

dh_auto_build senza alcun argomento eseguirà il primo obiettivo del file Makefile.

33

I file debian/changelog e debian/NEWS vengono sempre installati automaticamente. Il changelog originale viene ricercato convertendo i nomi dei file in minuscolo e cercando la corrispondenza con changelog, changes, changelog.txt, e changes.txt.

34

Questo comando rimpiazza il comando dh_movefiles(1), ormai deprecato, che veniva configurato dal file files.

35

Se al comando manca la pagina info ma esistono file di documentazione nella directory /usr/share/pacchetto, si dovrebbe manualmente modificare la pagina man generata dal comando help2man.

36

Si noti che è avvenuta una grossa riorganizzazione della struttura dei menu.

37

Anche se è stata utilizzata una corta espressione Bash per indicare questi file come "{post|pre}{inst|rm}" , si raccomanda di utilizzare una shell POSIX (non Bash) per questi script del manutentore il più possibile per massimizzare la compatibilità.

38

Si veda DebSrc3.0 per una serie di informazioni generali riguardanti il passaggio al nuovo formato 3.0 (quilt) ed ai formati sorgente 3.0 (native).

39

Al momento questo nuovo formato supporta anche molteplici archivi e più metodi di compressione. Questi però esulano dall'obiettivo di questo documento.

40

Alcuni metodi per la manutenzione delle patch dei pacchetti sono stati proposti e vengono utilizzati nei pacchetti Debian. Il sistema quilt è quello preferito. Altri sistemi sono dpatch, dbs, cdbs, ecc. Molti di questi mantengono tali patch nei file debian/patches/*.

41

Se si sta chiedendo ad uno sponsor di caricare il proprio pacchetto, questo tipo di chiara separazione e documentazione dei cambiamenti è molto importante per per accelerare la revisione del pacchetto da parte dello sponsor.

42

È possibile evitare di applicare la patch con quilt, nel formato sorgente 3.0 (quilt), aggiungendo il parametro --skip-patches al comando di estrazione. In alternativa, è possibile eseguire "quilt pop -a" dopo le normali operazioni.

43

L'attuale sistema di auto-costruzione è molto più complicato di come è qui documentato. Tali dettagli esulano dallo scopo del documento.

44

Diversamente dal pacchetto pbuilder, l'ambiente chroot sotto il pacchetto sbuild, usato dal sistema di auto-costruzione, non forza la creazione di un sistema minimale, e potrebbe lasciare installati molti pacchetti.

45

pbuilder è ancora in evoluzione, si dovrebbe controllare l'attuale configurazione consultando la documentazione ufficiale più recente.

46

Ciò presuppone il settaggio HOOKDIR="/var/cache/pbuilder/hooks". È possibile trovare numerosi esempi di script di hook, nella directory /usr/share/doc/pbuilder/examples.

47

Ci sono alcune restrizioni per tali aggiornamenti del pacchetto stable.

48

Ecco alcune risorse web, per gli utenti esperti.

49

Le variabili d'ambiente, che sono normalmente impostate con dei valori corretti, non sono utilizzati in questa modalità. Mai creare dei pacchetti, che poi andranno caricati, utilizzando il metodo veloce.

50

Non c'è bisogno di fornire l'opzione lintian "-i -I --show-overrides" se si è personalizzato il file /etc/devscripts.conf o il file ~/.devscripts come descritto in Il comando debuild, Sezione 6.4.

51

Il pacchetto dput sembra avere più funzionalità e sta divenendo più famoso del pacchetto dupload. Questo utilizza il file /etc/dput per la configurazione globale ed il file ~/.dput.cf per quella dei singoli utenti. Inoltre supporta nativamente anche i servizi relativi ad Ubuntu.

52

Si veda ftp://ftp.upload.debian.org/pub/UploadQueue/README. Alternativamente, si può utilizzare il comando dcut del pacchetto dput.

53

Per impostare la data nel formato corretto, si usi "LANG=C date -R".

54

Se un pacchetto foo è stato pacchettizzato nel vecchio formato 1.0, si deve invece eseguire "zcat /path/to/foo_oldversion.diff.gz|patch -p1" nella nuova directory sorgente scompattata.

55

Se il comando uscan scarica il sorgente aggiornato ma non esegue il comando uupdate, si può modificare il file debian/watch inserendo "debian uupdate" alla fine dell'URL.

56

Se il proprio sponsor o altri manutentori non ritengono sia necessario aggiornare lo stile del pacchetto, allora non vale la pena impegnarcisi. Ci sono cose più importanti da fare.

57

Nel pacchetto cdbs (0.4.74), ci sono alcune note errate riguardo al file rules creato dal comando dh_make per le scelte che non utilizzano cdbs. Non ce se ne deve preoccupare. Queste ultime si riferivano solo alla distribuzione lenny che creava esplicitamente delle regole come una lunga lista di comandi dh_*.

58

E' possibile dividere il file big.diff in tanti piccole patch incrementali utilizzando il comando splitdiff.


Guida per il nuovo Maintainer

version 1.2.25, 2010-12-21 14:06:56 UTC

Josip Rodin joy-mg@debian.org
Traduzione: Calogero Lo Leggio kalos@nerdrug.org
Traduzione: Jacopo Reggiani jacopo.reggiani@gmail.com
Traduzione: Francesco P. Lovergine