Your IP : 216.73.216.81


Current Path : /proc/358557/root/proc/355384/root/usr/share/doc/maint-guide-it/html/
Upload File :
Current File : //proc/358557/root/proc/355384/root/usr/share/doc/maint-guide-it/html/dreq.it.html

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Capitolo 4. File richiesti nella directory debian</title>
    <link rel="stylesheet" type="text/css" href="debian.css"/>
    <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"/>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <link rel="home" href="index.it.html" title="Guida per il nuovo Maintainer"/>
    <link rel="up" href="index.it.html" title="Guida per il nuovo Maintainer"/>
    <link rel="prev" href="modify.it.html" title="Capitolo 3. Modificare i sorgenti"/>
    <link rel="next" href="dother.it.html" title="Capitolo 5. Altri file nella directory debian"/>
  </head>
  <body>
    <div class="navheader">
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">Capitolo 4. File richiesti nella directory <code class="filename">debian</code></th>
        </tr>
        <tr>
          <td align="left"><a accesskey="p" href="modify.it.html"><img src="images/prev.png" alt="Indietro"/></a> </td>
          <th width="60%" align="center"> </th>
          <td align="right"> <a accesskey="n" href="dother.it.html"><img src="images/next.png" alt="Avanti"/></a></td>
        </tr>
      </table>
      <hr/>
    </div>
    <div class="chapter">
      <div class="titlepage">
        <div>
          <div>
            <h1 class="title"><a id="dreq"/>Capitolo 4. File richiesti nella directory <code class="filename">debian</code></h1>
          </div>
        </div>
      </div>
      <div class="toc">
        <p>
          <strong>Indice</strong>
        </p>
        <dl class="toc">
          <dt>
            <span class="section">
              <a href="dreq.it.html#control">4.1. <code class="filename">control</code></a>
            </span>
          </dt>
          <dt>
            <span class="section">
              <a href="dreq.it.html#copyright">4.2. <code class="filename">copyright</code></a>
            </span>
          </dt>
          <dt>
            <span class="section">
              <a href="dreq.it.html#changelog">4.3. <code class="filename">changelog</code></a>
            </span>
          </dt>
          <dt>
            <span class="section">
              <a href="dreq.it.html#rules">4.4. Il file <code class="filename">rules</code></a>
            </span>
          </dt>
          <dd>
            <dl>
              <dt>
                <span class="section">
                  <a href="dreq.it.html#targets">4.4.1. Target del file <code class="filename">rules</code></a>
                </span>
              </dt>
              <dt>
                <span class="section">
                  <a href="dreq.it.html#defaultrules">4.4.2. Il file <code class="filename">rules</code> predefinito</a>
                </span>
              </dt>
              <dt>
                <span class="section">
                  <a href="dreq.it.html#customrules">4.4.3. Personalizzazione del file <code class="filename">rules</code></a>
                </span>
              </dt>
            </dl>
          </dd>
        </dl>
      </div>
      <p>
È disponibile la riscrittura di questo tutorial, con contenuti aggiornati e
con esempi più pratici, denominato <a class="ulink" href="https://www.debian.org/doc/devel-manuals#debmake-doc">Guide for Debian
Maintainers</a>.  Si prega di utilizzare il nuovo tutorial come
documento primario.
</p>
      <p>
C'è una nuova sottodirectory all'interno della cartella contenente i
sorgenti del programma ed è chiamata <code class="filename">debian</code>.
All'interno di questa vi sono una serie di file che dovranno essere
modificati per personalizzare il comportamento del pacchetto.  I più
importanti fra tutti questi sono i file <code class="filename">control</code>,
<code class="filename">changelog</code>, <code class="filename">copyright</code> e
<code class="filename">rules</code>, che vengono richiesti per tutti i pacchetti.
<a href="#ftn.idm1163" class="footnote" id="idm1163"><sup class="footnote">[27]</sup></a>
</p>
      <div class="section">
        <div class="titlepage">
          <div>
            <div>
              <h2 class="title"><a id="control"/>4.1. <code class="filename">control</code></h2>
            </div>
          </div>
        </div>
        <p>
Questo file contiene diversi valori che <span class="command"><strong>dpkg</strong></span>,
<span class="command"><strong>dselect</strong></span>, <span class="command"><strong>apt-get</strong></span>,
<span class="command"><strong>apt-cache</strong></span>, <span class="command"><strong>aptitude</strong></span>, ed altri
strumenti utilizzeranno per gestire il pacchetto.  Il tutto è definito nel
<a class="ulink" href="http://www.debian.org/doc/debian-policy/ch-controlfields.html">Manuale delle policy di Debian, 5 "File di
controllo ed i loro campi"</a>.
</p>
        <p>
Questo è il file di <code class="filename">control</code> che
<span class="command"><strong>dh_make</strong></span> crea:
</p>
        <pre class="screen">
 1 Source: gentoo
 2 Section: unknown
 3 Priority: optional
 4 Maintainer: Josip Rodin &lt;joy-mg@debian.org&gt;
 5 Build-Depends: debhelper (&gt;=10)
 6 Standards-Version: 4.0.0
 7 Homepage: &lt;insert the upstream URL, if relevant&gt;
 8
 9 Package: gentoo
10 Architecture: any
11 Depends: ${shlibs:Depends}, ${misc:Depends}
12 Description: &lt;insert up to 60 chars description&gt;
13  &lt;insert long description, indented with spaces&gt;
</pre>
        <p>
(Sono stati aggiunti i numeri di riga.)
</p>
        <p>
Le righe 1–7 contengono le informazioni di controllo per il pacchetto
sorgente.  Le righe 9-13 contengono le informazioni di controllo per il
pacchetto binario.
</p>
        <p>
La riga 1 contiene il nome del pacchetto sorgente.
</p>
        <p>
La riga 2 indica la sezione della distribuzione in cui il pacchetto sorgente
dovrà andare.
</p>
        <p>
Come si sarà notato, l'archivio Debian è diviso in diverse aree:
<code class="literal">main</code> (software libero), <code class="literal">non-free</code>
(software non propriamente libero) e <code class="literal">contrib</code> (software
libero che dipende da software non libero).  All'interno di queste esistono
delle sezioni che descrivono brevemente quali pacchetti vi si possono
trovare.  Quindi si hanno le sezioni <code class="literal">admin</code> per i
programmi legati all'amministrazione di sistema, <code class="literal">base</code> per
gli strumenti di base, <code class="literal">devel</code> per gli strumenti di
sviluppo, <code class="literal">doc</code> per la documentazione,
<code class="literal">libs</code> per le librerie, <code class="literal">mail</code> per client
di posta e server associati, <code class="literal">net</code> per applicazioni e
servizi di rete, <code class="literal">x11</code> per programmi X11 che non
appartengono alle altre categorie, e tanti altri. <a href="#ftn.idm1197" class="footnote" id="idm1197"><sup class="footnote">[28]</sup></a>
</p>
        <p>
Si può cambiare il valore in x11.  (Il prefisso <code class="literal">main/</code> è
implicito e può essere omesso.)
</p>
        <p>
La riga numero 3 indica quanto sia importante per l'utente installare questo
pacchetto. <a href="#ftn.idm1205" class="footnote" id="idm1205"><sup class="footnote">[29]</sup></a>
</p>
        <div class="itemizedlist">
          <ul class="itemizedlist">
            <li class="listitem">
              <p>
La priorità <code class="literal">optional</code> solitamente viene usata per i nuovi
pacchetti che non vanno in conflitto con altri pacchetti con priorità
<code class="literal">required</code>, <code class="literal">important</code> o
<code class="literal">standard</code>.
</p>
            </li>
          </ul>
        </div>
        <p>
Le sezioni e le priorità vengono solitamente utilizzate da interfacce come
<span class="command"><strong>aptitude</strong></span> in cui i pacchetti vengono suddivisi e vengono
selezionati quelli predefiniti.  Una volta caricato il pacchetto in Debian,
il valore di ciascuno di questi due campi può essere sovrascritto dai
manutentori dell'archivio, in tal caso si verrà avvertiti via mail.
</p>
        <p>
Dal momento che il pacchetto trattato ha una priorità normale e non va in
conflitto con altri, si cambierà la priorità a <code class="literal">optional</code>.
</p>
        <p>
La riga 4 indica il nome e l'indirizzo email del manutentore.  Ci si
assicuri che questo campo includa una testata <code class="literal">To</code> valida
per un indirizzo mail, perché una volta caricato il pacchetto, il sistema di
rilevazione bug la userà per inviare le mail contenenti i bug.  Si eviti di
utilizzare virgole, 'e' commerciali o parentesi.
</p>
        <p>
La riga 5 include la lista dei pacchetti richiesti per costruire il
pacchetto, ad es.  il campo <code class="literal">Build-Depends</code>.  Si può,
inoltre, avere una riga contenente il campo
<code class="literal">Build-Depends-Indep</code>. <a href="#ftn.idm1224" class="footnote" id="idm1224"><sup class="footnote">[30]</sup></a> .  Alcuni pacchetti come <code class="systemitem">gcc</code> e <code class="systemitem">make</code> sono richiesti implicitamente, dal
pacchetto <code class="systemitem">build-essential</code>.  Se si ha
la necessità di avere altri strumenti per costruire il pacchetto, questi
devono essere aggiunti negli appositi campi.  I campi multipli sono separati
con le virgole; si legga una spiegazione sulle dipendenze binarie per
scoprirne di più sulla sintassi di queste righe.
</p>
        <div class="itemizedlist">
          <ul class="itemizedlist">
            <li class="listitem">
              <p>
Per tutti i pacchetti creati utilizzando il comando <span class="command"><strong>dh</strong></span>
nel file <code class="filename">debian/rules</code>, è necessario avere
<code class="literal">debhelper (&gt;=9)</code> nel campo
<code class="literal">Build-Depends</code>, per aderire alle policy di Debian che
richiedono per l'obiettivo <code class="literal">clean</code>.
</p>
            </li>
            <li class="listitem">
              <p>
I sorgenti dei pacchetti che hanno i pacchetti binari con il campo
<code class="literal">Architecture: any</code>, vengono ricompilati con
autobuilder. Poichè questa procedura installa i soli pacchetti elencati nel
campo <code class="literal">Build-Depends</code>, prima di eseguire
<code class="literal">debian/rules build</code> (vedere <a class="xref" href="build.it.html#autobuilder" title="6.2. Auto-costruzione">Sezione 6.2, «Auto-costruzione»</a>), il campo <code class="literal">Build-Depends</code> ha
bisogno di tutti i pacchetti necessari, ed il campo
<code class="literal">Build-Depends-Indep</code> è raramente utilizzato.
</p>
            </li>
            <li class="listitem">
              <p>
Per i sorgenti dei pacchetti che hanno i pacchetti binari con campo
<code class="literal">Architecture: all</code>, il campo
<code class="literal">Build-Depends-Indep</code> elenca tutti i pacchetti necessari,
se non sono già elencati nel campo <code class="literal">Build-Depends</code>, per
essere conforme alle linee guida di Debian riguardanti il target
<code class="literal">clean</code>.
</p>
            </li>
          </ul>
        </div>
        <p>
Se non si è sicuri sul campo da utilizzare, si può scegliere il campo
<code class="literal">Build-Depends</code>.<a href="#ftn.idm1254" class="footnote" id="idm1254"><sup class="footnote">[31]</sup></a>
</p>
        <p>
Per scoprire di quali pacchetti si ha bisogno per la compilazione si può
eseguire il comando:
</p>
        <pre class="screen">
$ dpkg-depcheck -d ./configure
</pre>
        <p>
Per scoprire manualmente le esatte dipendenze per
<span class="command"><strong><em class="replaceable"><code>/usr/bin/foo</code></em></strong></span>, basta eseguire
</p>
        <pre class="screen">
$ objdump -p <em class="replaceable"><code>/usr/bin/foo</code></em> | grep NEEDED
</pre>
        <p>
e per ogni libreria elencata (ad esempio, <span class="command"><strong>libfoo.so.6</strong></span>),
si esegue
</p>
        <pre class="screen">
$ dpkg -S libfoo.so.6
</pre>
        <p>
A questo punto si indica la versione <code class="literal">-dev</code> di ogni
pacchetto come voce <code class="literal">Build-Depends</code>.  Se si usa
<span class="command"><strong>ldd</strong></span> per questo scopo, verranno considerate anche le
dipendenze indirette, il che potrà portare ad avere un numero eccessivo di
dipendenze.
</p>
        <p>
Il pacchetto <code class="systemitem">gentoo</code> richiede anche
<code class="systemitem">xlibs-dev</code>, <code class="systemitem">libgtk1.2-dev</code> e <code class="systemitem">libglib1.2-dev</code> per poter essere costruito,
quindi tali dipendenze si aggiungeranno subito dopo <code class="systemitem">debhelper</code>.
</p>
        <p>
La riga 6 indica la versione delle delle <a class="ulink" href="http://www.debian.org/doc/devel-manuals#policy">linee
guida Debian</a> che il pacchetto deve rispettare, che corrisponde a
quello che si legge quando lo si crea.
</p>
        <p>
Nella riga 7 si può inserire l'URL della pagina del programma originale.
</p>
        <p>
La riga 9 indica il nome del pacchetto binario.  Questo è normalmente lo
stesso nome del pacchetto sorgente, ma non deve essere necessariamente così.
</p>
        <p>
La riga 10 specifica le architetture per cui è possibile compilare il
pacchetto. Questo valore è di solito uno dei seguenti, a seconda del tipo di
pacchetto binario:  <a href="#ftn.idm1286" class="footnote" id="idm1286"><sup class="footnote">[32]</sup></a>
</p>
        <div class="itemizedlist">
          <ul class="itemizedlist">
            <li class="listitem">
              <p>
                <code class="literal">Architecture: any</code>
              </p>
              <div class="itemizedlist">
                <ul class="itemizedlist">
                  <li class="listitem">
                    <p>Il pacchetto binario generato è compatibile con una sola architettura,
solitamente è utilizzato in programmi creati con un linguaggio compilato.</p>
                  </li>
                </ul>
              </div>
            </li>
            <li class="listitem">
              <p>
                <code class="literal">Architecture: all</code>
              </p>
              <div class="itemizedlist">
                <ul class="itemizedlist">
                  <li class="listitem">
                    <p>Il pacchetto binario generato è indipendente dall'architettura, di solito si
tratta di testo, immagini o script in un linguaggio interpretato.</p>
                  </li>
                </ul>
              </div>
            </li>
          </ul>
        </div>
        <p>
Si lasci la riga 10 così com'è visto che il programma è scritto in
C.<span class="citerefentry"><span class="refentrytitle">dpkg-gencontrol</span>(1)</span>
riempirà il campo dell'architettura con un valore adeguato per ciascuna
macchina in cui il pacchetto viene compilato.
</p>
        <p>
Se il pacchetto è indipendente dall'architettura (per esempio, uno script
shell o Perl, o un documento), si cambi questo valore in
<code class="literal">all</code>, e si legga in seguito in <a class="xref" href="dreq.it.html#rules" title="4.4. Il file rules">Sezione 4.4, «Il file <code class="filename">rules</code>»</a>
riguardo l'utilizzo della regola <code class="literal">binary-indep</code> al posto di
<code class="literal">binary-arch</code> per costruire il pacchetto.
</p>
        <p>
La riga 11 mostra una delle caratteristiche più potenti del sistema di
pacchettizzazione Debian. I pacchetti possono relazionarsi tra di loro in
vari modi. A parte <code class="literal">Depends</code>, altri campi di relazione sono
<code class="literal">Recommends</code>, <code class="literal">Suggests</code>,
<code class="literal">Pre-Depends</code>, <code class="literal">Breaks</code>,
<code class="literal">Conflicts</code>, <code class="literal">Provides</code> e
<code class="literal">Replaces</code>.
</p>
        <p>
Gli strumenti di gestione dei pacchetti solitamente si comportano allo
stesso modo quando si occupano di tali relazioni; in caso contrario, il
comportamento verrà spiegato.  (si legga <span class="citerefentry"><span class="refentrytitle">dpkg</span>(8)</span>, <span class="citerefentry"><span class="refentrytitle">dselect</span>(8)</span>, <span class="citerefentry"><span class="refentrytitle">apt</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">aptitude</span>(1)</span> ecc.)
</p>
        <p>
Ecco una descrizione semplificata delle relazioni tra i pacchetti:
<a href="#ftn.idm1334" class="footnote" id="idm1334"><sup class="footnote">[33]</sup></a>
</p>
        <div class="itemizedlist">
          <ul class="itemizedlist">
            <li class="listitem">
              <p>
<code class="literal">Depends</code>
</p>
              <p>
Il pacchetto non verrà installato a meno che tutti i pacchetti da cui
dipende vengono installati.  Si usi questa relazione se il programma non
funzionerà assolutamente (o sarà praticamente inutilizzabile) a meno della
presenza di particolari pacchetti.
</p>
            </li>
            <li class="listitem">
              <p>
<code class="literal">Recommends</code>
</p>
              <p>
Si usi questa relazione per i pacchetti che non sono strettamente necessari
ma sono solitamente utilizzati dal programma.  Quando un utente installa il
programma, tutte le interfacce di APT probabilmente chiederanno
l'installazione dei pacchetti raccomandati.  <span class="command"><strong>aptitude</strong></span> e
<span class="command"><strong>apt-get</strong></span> installano, in modo predefinito, i pacchetti
raccomandati insieme al pacchetto principale (ma l'utente può disabilitare
questo comportamento predefinito).  <span class="command"><strong>dpkg</strong></span> ignorerà questo
campo.
</p>
            </li>
            <li class="listitem">
              <p>
<code class="literal">Suggests</code>
</p>
              <p>
Si usi questa relazione per pacchetti che funzionano bene con il programma
ma non sono per niente necessari.  Quando un utente installa il programma,
probabilmente non verrà chiesta l'installazione dei pacchetti consigliati.
<span class="command"><strong>aptitude</strong></span> può essere configurato per installare i
pacchetti consigliati insieme al pacchetto principale ma questo non è il
comportamento predefinito.  <span class="command"><strong>dpkg</strong></span> ed
<span class="command"><strong>apt-get</strong></span> ignoreranno questo campo.
</p>
            </li>
            <li class="listitem">
              <p>
<code class="literal">Pre-Depends</code>
</p>
              <p>
Questa relazione è più forte di <code class="literal">Depends</code>.  Il pacchetto
non verrà installato a meno che i pacchetti da cui pre-dipende sono stati
installati e <span class="emphasis"><em>correttamente configurati</em></span>.  Si usi questa
relazione con <span class="emphasis"><em>molta</em></span> parsimonia e solo dopo averne
discusso sulla mailing list <a class="ulink" href="http://lists.debian.org/debian-devel/">debian-devel@lists.debian.org</a>.  Leggasi:
non utilizzarla affatto.  :-)
</p>
            </li>
            <li class="listitem">
              <p>
<code class="literal">Conflicts</code>
</p>
              <p>
Il pacchetto non verrà installato a meno che tutti i pacchetti con i quali
va in conflitto siano rimossi.  Si usi questa relazione se il programma non
funzionerà o causerà gravi problemi se un certo pacchetto è presente.
</p>
            </li>
            <li class="listitem">
              <p>
<code class="literal">Breaks</code>
</p>
              <p>
Una volta installato il pacchetto verranno marcati come "guasti" tutti i
pacchetti elencati.  Normalmente la voce <code class="literal">Breaks</code> specifica
che si applica a version precedenti di un certo valore.  Per risolvere il
problema, generalmente, basta aggiornare la lista dei pacchetti utilizzando
uno strumento di gestione di alto livello, del sistema di pacchettizzazione.
</p>
            </li>
            <li class="listitem">
              <p>
<code class="literal">Provides</code>
</p>
              <p>
Per alcuni tipi di pacchetto di cui vi sono molteplici alternative, sono
stati definiti dei nomi virtuali.  Si può trovare la lista completa nel file
<a class="ulink" href="http://www.debian.org/doc/packaging-manuals/virtual-package-names-list.txt">virtual-package-names-list.txt.gz</a>.
Si consulti questo file se il programma da pacchettizzare fornisce la
funzione di un pacchetto virtuale esistente.
</p>
            </li>
            <li class="listitem">
              <p>
<code class="literal">Replaces</code>
</p>
              <p>
Si usi questa relazione quando il programma rimpiazza i file di un altro
pacchetto, o lo rimpiazza completamente (utilizzato in congiunzione con
<code class="literal">Conflicts</code>).  I file dei pacchetti indicati saranno
sovrascritti con i file del nuovo pacchetto.
</p>
            </li>
          </ul>
        </div>
        <p>
Tutti i campi qui descritti hanno una sintassi uniforme.  Sono costituiti da
una lista contenente i nomi dei pacchetti separati da virgole.  Questi
possono essere anche costituiti da liste di nomi di pacchetto alternativi,
separati da barre verticali <code class="literal">|</code> (simboli pipe).
</p>
        <p>
I campi possono limitare la loro applicabilità a particolari versioni di
ogni pacchetto indicato.  Le restrizioni di ogni singolo sono elencate tra
parentesi dopo il nome de pacchetto, e dovrebbero contenere una relazione
presa dalla lista qui sotto, seguita dal numero di versione.  Le relazioni
permesse sono: <code class="literal">&lt;&lt;</code>, <code class="literal">&lt;=</code>,
<code class="literal">=</code>, <code class="literal">&gt;=</code> e <code class="literal">&gt;&gt;</code>
per strettamente inferiore, inferiore o uguale, esattamente uguale,
superiore o uguale e strettamente superiore, rispettivamente.  Per esempio,
</p>
        <pre class="screen">
Depends: foo (&gt;= 1.2), libbar1 (= 1.3.4)
Conflicts: baz
Recommends: libbaz4 (&gt;&gt; 4.0.7)
Suggests: quux
Replaces: quux (&lt;&lt; 5), quux-foo (&lt;= 7.6)
</pre>
        <p>
L'ultima caratteristica utile da conoscere è
<code class="literal">${shlibs:Depends}</code>, <code class="literal">${perl:Depends}</code>,
<code class="literal">${misc:Depends}</code>, ecc.
</p>
        <p>
<span class="citerefentry"><span class="refentrytitle">dh_shlibdeps</span>(1)</span> calcola le dipendenze delle
librerie condivise per i pacchetti binari. Questo genera un'elenco di
eseguibili <a class="ulink" href="http://en.wikipedia.org/wiki/Executable_and_Linkable_Format">ELF</a> e di librerie condivise che sono
stati trovati in ogni pacchetto binario.  Questa lista è utilizzata per
<code class="literal">${shlibs:Depends}</code>.
</p>
        <p>
<span class="citerefentry"><span class="refentrytitle">dh_perl</span>(1)</span> calcola le dipendenze perl. Questo
genera un elenco di dipendenze <code class="literal">perl</code> o
<code class="literal">perlapi</code> per ogni pacchetto binario. Questa lista è
utilizzata per <code class="literal">${perl:Depends}</code>.
</p>
        <p>
Alcuni comandi <code class="systemitem">debhelper</code> possono far
si che il pacchetto generato abbia bisogno di dipendere da altri pacchetti.
Questa lista di pacchetti richiesti è utilizzata per
<code class="literal">${misc:Depends}</code>.
</p>
        <p>
<span class="citerefentry"><span class="refentrytitle">dh_gencontrol</span>(1)</span> genera il file
<code class="filename">DEBIAN/control</code> per ogni pacchetto binario che utilizza
<code class="literal">${shlibs:Depends}</code>, <code class="literal">${perl:Depends}</code>,
<code class="literal">${misc:Depends}</code>, ecc.
</p>
        <p>
Detto ciò, si può lasciare la riga <code class="literal">Depends</code> esattamente
come è ora, e si può inserire un'altra riga dopo questa che dica
<code class="literal">Suggests: file</code>, perché <code class="systemitem">gentoo</code> può utilizzare alcune caratteristiche
fornite dal pacchetto <code class="systemitem">file</code>.
</p>
        <p> La riga 9 è l'URL dell'homepage. Supponiamo che questa sia <a class="ulink" href="http://www.obsession.se/gentoo/">http://www.obsession.se/gentoo/</a> .
</p>
        <p>
La riga 12 contiene una breve descrizione del pacchetto.  Usualmente la
larghezza dei terminali è di 80 colonne quindi il contenuto non dovrebbe
superare i 60 caratteri.  Si cambia questo valore in <code class="literal">fully
GUI-configurable, two-pane X file manager</code>.
</p>
        <p>
Nella riga 13 va messa la descrizione lunga.  Questa dovrebbe consistere in
un paragrafo che fornisce più dettagli sul pacchetto.  La prima colonna di
ogni riga dovrebbe essere vuota.  Non ci dovrebbero essere linee vuote, ma
si può mettere un singolo <code class="literal">.</code> (punto) in una colonna per
simularle.  Inoltre non ci dovrebbe essere più di una linea vuota dopo
questa descrizione. <a href="#ftn.idm1431" class="footnote" id="idm1431"><sup class="footnote">[34]</sup></a>
</p>
        <p>
Si possono inseriscono i campi <code class="literal">Vcs-*</code> per documentare  il
Version Control System (VCS) tra la linea 6 e 7.  <a href="#ftn.idm1436" class="footnote" id="idm1436"><sup class="footnote">[35]</sup></a>  Si supponga che il pacchetto <code class="systemitem">gentoo</code> abbia il suo VCS nel servizio Git Debian
Alioth su
<code class="literal">git://git.debian.org/git/collab-maint/gentoo.git</code>.
</p>
        <p>
E per concludere, questo è il file <code class="filename">control</code> aggiornato:
</p>
        <pre class="screen">
 1 Source: gentoo
 2 Section: x11
 3 Priority: optional
 4 Maintainer: Josip Rodin &lt;joy-mg@debian.org&gt;
 5 Build-Depends: debhelper (&gt;=10), xlibs-dev, libgtk1.2-dev, libglib1.2-dev
 6 Standards-Version: 4.0.0
 7 Vcs-Git: https://anonscm.debian.org/git/collab-maint/gentoo.git
 8 Vcs-browser: https://anonscm.debian.org/git/collab-maint/gentoo.git
 9 Homepage: http://www.obsession.se/gentoo/
10
11 Package: gentoo
12 Architecture: any
13 Depends: ${shlibs:Depends}, ${misc:Depends}
14 Suggests: file
15 Description: fully GUI-configurable, two-pane X file manager
16  gentoo is a two-pane file manager for the X Window System. gentoo lets the
17  user do (almost) all of the configuration and customizing from within the
18  program itself. If you still prefer to hand-edit configuration files,
19  they're fairly easy to work with since they are written in an XML format.
20  .
21  gentoo features a fairly complex and powerful file identification system,
22  coupled to an object-oriented style system, which together give you a lot
23  of control over how files of different types are displayed and acted upon.
24  Additionally, over a hundred pixmap images are available for use in file
25  type descriptions.
26  .
29  gentoo was written from scratch in ANSI C, and it utilizes the GTK+ toolkit
30  for its interface.
</pre>
        <p>
(Sono stati aggiunti i numeri di riga.)
</p>
      </div>
      <div class="section">
        <div class="titlepage">
          <div>
            <div>
              <h2 class="title"><a id="copyright"/>4.2. <code class="filename">copyright</code></h2>
            </div>
          </div>
        </div>
        <p>
Questo file contiene le informazioni sul copyright e la licenza del
programma originale. Il suo contenuto è descritto nel <a class="ulink" href="http://www.debian.org/doc/debian-policy/ch-docs.html#s-copyrightfile">Manuale delle policy di Debian, 12.5 'Informazioni
di copyright'</a>, e il documento <a class="ulink" href="http://dep.debian.net/deps/dep5/">DEP-5:
Machine-parseable debian/copyright</a> fornisce le linee guida del suo
formato.
</p>
        <p>
<span class="command"><strong>dh_make</strong></span> può fornire un modello di file del
<code class="filename">copyright</code>, basta utilizzare l'opzione
<code class="literal">--copyright</code> per selezionare quello giusto, se si desidera
rilasciare il pacchetto <code class="systemitem">gentoo</code> sotto
licenza GPL-2.
</p>
        <p>
You must fill in missing information to complete this file, such as the
place you got the package from, the actual copyright notice, and the
license.  For certain common free software licenses (GNU GPL-1, GNU GPL-2,
GNU GPL-3, LGPL-2, LGPL-2.1, LGPL-3, GNU FDL-1.2, GNU FDL-1.3, Apache-2.0,
3-Clause BSD, CC0-1.0, MPL-1.1, MPL-2.0 or the Artistic license), you can
just refer to the appropriate file in the
<code class="filename">/usr/share/common-licenses/</code> directory that exists on
every Debian system.  Otherwise, you must include the complete license.
</p>
        <p>
Brevemente, ecco come il file di <code class="filename">copyright</code> del
pacchetto <code class="systemitem">gentoo</code> dovrebbe apparire:
</p>
        <pre class="screen">
 1 Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 2 Upstream-Name: gentoo
 3 Upstream-Contact: Emil Brink &lt;emil@obsession.se&gt;
 4 Source: http://sourceforge.net/projects/gentoo/files/
 5
 6 Files: *
 7 Copyright: 1998-2010 Emil Brink &lt;emil@obsession.se&gt;
 8 License: GPL-2+
 9
10 Files: icons/*
11 Copyright: 1998 Johan Hanson &lt;johan@tiq.com&gt;
12 License: GPL-2+
13
14 Files: debian/*
15 Copyright: 1998-2010 Josip Rodin &lt;joy-mg@debian.org&gt;
16 License: GPL-2+
17
18 License: GPL-2+
19  This program is free software; you can redistribute it and/or modify
20  it under the terms of the GNU General Public License as published by
21  the Free Software Foundation; either version 2 of the License, or
22  (at your option) any later version. 
23  .
24  This program is distributed in the hope that it will be useful,
25  but WITHOUT ANY WARRANTY; without even the implied warranty of
26  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27  GNU General Public License for more details.
28  .
29  You should have received a copy of the GNU General Public License along
30  with this program; if not, write to the Free Software Foundation, Inc.,
31  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
32  .
33  On Debian systems, the full text of the GNU General Public
34  License version 2 can be found in the file
35  '/usr/share/common-licenses/GPL-2'.
</pre>
        <p>
(Sono stati aggiunti i numeri di riga.)
</p>
        <p>
Si prega di seguire l'HOWTO fornito da ftpmasters ed inviato a
debian-devel-announce: <a class="ulink" href="http://lists.debian.org/debian-devel-announce/2006/03/msg00023.html">http://lists.debian.org/debian-devel-announce/2006/03/msg00023.html</a>.
</p>
      </div>
      <div class="section">
        <div class="titlepage">
          <div>
            <div>
              <h2 class="title"><a id="changelog"/>4.3. <code class="filename">changelog</code></h2>
            </div>
          </div>
        </div>
        <p>
Questo è un file obbligatorio, che ha un formato speciale descritto nel
<a class="ulink" href="http://www.debian.org/doc/debian-policy/ch-source.html#s-dpkgchangelog">Manuale delle policy di Debian, 4.4
"debian/changelog"</a>.  Questo formato è utilizzato da
<span class="command"><strong>dpkg</strong></span> ed altri programmi per ottenere il numero di
versione, revisione, distribuzione ed urgenza del pacchetto.
</p>
        <p>
Tale file è anche utile allo scopo di aver documentato tutti i cambiamenti
che sono stati fatti.  Sarà inoltre d'aiuto agli utenti che scaricano il
pacchetto per vedere se ci sono problemi di cui dovrebbero essere al
corrente.  Il file verrà salvato come
<code class="filename">/usr/share/doc/gentoo/changelog.Debian.gz</code> nel pacchetto
binario.
</p>
        <p>
<span class="command"><strong>dh_make</strong></span> ne crea uno predefinito, ecco come appare:
</p>
        <pre class="screen">
1  gentoo (0.9.12-1) unstable; urgency=medium
2
3   * Initial release. (Closes: #<em class="replaceable"><code>nnnn</code></em>)  &lt;<em class="replaceable"><code>nnnn</code></em> is the bug number of your ITP&gt;
4
5  -- Josip Rodin &lt;joy-mg@debian.org&gt;  Mon, 22 Mar 2010 00:37:31 +0100
6
</pre>
        <p>
(Sono stati aggiunti i numeri di riga.)
</p>
        <p>
La riga 1 indica il nome del pacchetto, la versione, la distribuzione e
l'urgenza.  Il nome deve corrispondere al nome del pacchetto sorgente,
mentre la distribuzione dovrebbe essere <code class="literal">unstable</code>, e
l'urgenza dovrebbe essere impostata come media, a meno chè non ci sia un
motivo valido per impostarlo diversamente.
</p>
        <p>
Le righe 3-5 sono una voce del registro, in cui vengono documentati i
cambiamenti fatti nella revisione del pacchetto (non dei cambiamenti del
pacchetto originario — c'è un file apposta per questo scopo, creato
dagli autori originali, che verrà installato successivamente
<code class="filename">/usr/share/doc/gentoo/changelog.gz</code>).  Supponiamo che il
numero di servizio del ticket ITP fosse <code class="literal">12345</code>.  Nuove
righe devono essere aggiunte appena prima della riga più in alto che
comincia con <code class="literal">*</code> (asterisco).  Ciò si può fare con
<span class="citerefentry"><span class="refentrytitle">dch</span>(1)</span>, o manualmente con un editor testuale.
</p>
        <p>
Per evitare che un pacchetto venga accidentalmente caricato prima che il
quest'ultimo sia pronto, è buona prassi cambiare il valore del campo
distribuzione, con il valore fittizio <code class="literal">UNRELEASED</code>.
</p>
        <p>
Alla fine si avrà qualcosa del genere:
</p>
        <pre class="screen">
1  gentoo (0.9.12-1) UNRELEASED; urgency=low
2
3   * Initial Release. Closes: #12345
4   * This is my first Debian package.
5   * Adjusted the Makefile to fix $(DESTDIR) problems.
6
7  -- Josip Rodin &lt;joy-mg@debian.org&gt;  Mon, 22 Mar 2010 00:37:31 +0100
8
</pre>
        <p>
(Sono stati aggiunti i numeri di riga.)
</p>
        <p>
Quando si è soddisfatti di tutte le modifiche e quest'ultime sono state
documentate nel file <code class="filename">changelog</code>, si può modificare il
valore del campo distribuzione da <code class="literal">UNRELEASED</code> a
<code class="literal">unstable</code> (o anche <code class="literal">experimental</code>).
<a href="#ftn.idm1498" class="footnote" id="idm1498"><sup class="footnote">[36]</sup></a>
</p>
        <p>
Si possono avere più informazioni su come aggiornare il file
<code class="filename">changelog</code> nel capitolo <a class="xref" href="update.it.html" title="Capitolo 8. Aggiornamento del pacchetto">Capitolo 8, <em>Aggiornamento del pacchetto</em></a>.
</p>
      </div>
      <div class="section">
        <div class="titlepage">
          <div>
            <div>
              <h2 class="title"><a id="rules"/>4.4. Il file <code class="filename">rules</code></h2>
            </div>
          </div>
        </div>
        <p>
Ora si darà uno sguardo alle regole esatte che <span class="citerefentry"><span class="refentrytitle">dpkg-buildpackage</span>(1)</span> userà per creare il pacchetto.  In realtà questo file non è
che un altro <code class="filename">Makefile</code>, ma diverso da quelli della
sorgente originale.  Differentemente dagli altri file sotto
<code class="filename">debian</code>, questo è marcato come eseguibile.
</p>
        <div class="section">
          <div class="titlepage">
            <div>
              <div>
                <h3 class="title"><a id="targets"/>4.4.1. Target del file <code class="filename">rules</code></h3>
              </div>
            </div>
          </div>
          <p>
Ogni file <code class="filename">rules</code>, come ogni altro
<code class="filename">Makefile</code>, si compone di diverse regole, ciascuno dei
quali definisce un target e descrive come eseguirlo.  <a href="#ftn.idm1520" class="footnote" id="idm1520"><sup class="footnote">[37]</sup></a> Una nuova regola inizia con la dichiarazione del
target, nella prima colonna. Le righe seguenti che iniziano con il TAB
(codice ASCII 9) specificano il come effettuare il target. Le righe vuote e
quelle che iniziano con <code class="literal">#</code> (cancelletto) vengono trattate
come commenti e ignorate.  <a href="#ftn.idm1528" class="footnote" id="idm1528"><sup class="footnote">[38]</sup></a>
</p>
          <p>
Quando si vuole eseguire una regola basta eseguire il comando passandogli
come argomento il nome del target.  Ad esempio, <code class="literal">debian/rules
<em class="replaceable"><code>build</code></em></code> e <code class="literal">fakeroot make -f
debian/rules <em class="replaceable"><code>binary</code></em></code> esegue le regole
per i target <code class="literal"><em class="replaceable"><code>build</code></em></code> e
<code class="literal"><em class="replaceable"><code>binary</code></em></code>.
</p>
          <p>
Ecco una spiegazione semplificata dei target:
</p>
          <div class="itemizedlist">
            <ul class="itemizedlist">
              <li class="listitem">
                <p>
target <code class="literal">clean</code>: ripulisce tutti i file compilati, generati
ed inutili nella struttura delle directory del pacchetto.  (richiesto)
</p>
              </li>
              <li class="listitem">
                <p>
target <code class="literal">build</code>: costruisce tutti i sorgenti per ottenere
programmi compilati e documenti formattati nella struttura delle directory
del pacchetto.  (richiesto)
</p>
              </li>
              <li class="listitem">
                <p>
target <code class="literal">build-arch</code>: costruisce i sorgenti per ottenere
programmi compilati, dipendenti dall'architettura, nella radice dei
sorgenti.  (richiesto)
</p>
              </li>
              <li class="listitem">
                <p>
target <code class="literal">build-indep</code>: costruisce i sorgenti per ottenere
documenti formattati indipendenti dall'architettura nella radice dei
sorgenti.  (richiesto)
</p>
              </li>
              <li class="listitem">
                <p>
target <code class="literal">install</code>: installa i file in una struttura ad
albero per ogni pacchetto binario nella directory
<code class="filename">debian</code>.  Se definito, tutti i target
<code class="literal">binary*</code> dipenderanno effettivamente da quest'ultimo.
(opzionale)
</p>
              </li>
              <li class="listitem">
                <p>
target <code class="literal">binary</code>: crea tutta una serie di pacchetti binari
(combinando i target <code class="literal">binary-arch</code> e
<code class="literal">binary-indep</code>).  (richiesto)<a href="#ftn.idm1564" class="footnote" id="idm1564"><sup class="footnote">[39]</sup></a>
</p>
              </li>
              <li class="listitem">
                <p>
target <code class="literal">binary-arch</code>: crea una serie di pacchetti binari
dipendenti dall'architettura (<code class="literal">Architecture: any</code>) nella
directory padre.  (richiesto)<a href="#ftn.idm1572" class="footnote" id="idm1572"><sup class="footnote">[40]</sup></a>
</p>
              </li>
              <li class="listitem">
                <p>
target <code class="literal">binary-indep</code>: crea una serie di pacchetti binari
indipendenti dall'architettura (<code class="literal">Architecture: all</code>) nella
directory padre.  (richiesto)<a href="#ftn.idm1580" class="footnote" id="idm1580"><sup class="footnote">[41]</sup></a>
</p>
              </li>
              <li class="listitem">
                <p>
target <code class="literal">get-orig-source</code>: ottiene la versione più recente
del pacchetto sorgente originale dal relativo archivio originale.
(optional)
</p>
              </li>
            </ul>
          </div>
          <p>
È probabile che adesso ci sia un po' di confusione, ma sarà tutto più chiaro
una volta esaminato il file <code class="filename">rules</code> che
<span class="command"><strong>dh_make</strong></span> fornisce in modo predefinito.
</p>
        </div>
        <div class="section">
          <div class="titlepage">
            <div>
              <div>
                <h3 class="title"><a id="defaultrules"/>4.4.2. Il file <code class="filename">rules</code> predefinito</h3>
              </div>
            </div>
          </div>
          <p>
Le nuove versioni di <span class="command"><strong>dh_make</strong></span> generano un file
<code class="filename">rules</code> molto semplice ma potente utilizzando il comando
<span class="command"><strong>dh</strong></span>:
</p>
          <pre class="screen">
 1 #!/usr/bin/make -f
 2 # See debhelper(7) (uncomment to enable)
 3 # output every command that modifies files on the build system.
 4 #DH_VERBOSE = 1
 5 
 6 # see FEATURE AREAS in dpkg-buildflags(1)
 7 #export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 8
 9 # see ENVIRONMENT in dpkg-buildflags(1)
10 # package maintainers to append CFLAGS
11 #export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
12 # package maintainers to append LDFLAGS
13 #export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
14 
15
16 %:
17         dh $@ 
</pre>
          <p>
(Sono stati aggiunti i numeri di riga ed eliminati alcuni commenti. Nel vero
file <code class="filename">rules</code>, gli spazi vengono sostituiti da TAB.)
</p>
          <p>
Probabilmente si sarà già familiari con le righe tipo la prima che ricordano
gli script shell e Perl.  In pratica indica al sistema operativo che il file
andrà elaborato con <code class="filename">/usr/bin/make</code>.
</p>
          <p>
La riga 4 può essere decommentata per impostare la variabile
<code class="literal">DH_VERBOSE</code> a 1, in modo da mostrare gli output del
comando <span class="command"><strong>dh</strong></span> che generano i programmi
<span class="command"><strong>dh_*</strong></span> in esecuzione.  È anche possibile aggiungere la riga
<code class="literal">export DH_OPTIONS=-v</code>, in modo che ogni comando
<span class="command"><strong>dh_*</strong></span> stampi quale comando sta eseguendo.  Questo aiuta a
comprendere esattamente cosa c'è dietro al singolo file
<code class="filename">rules</code> file ed a diagnosticare i problemi.  Il nuovo
<span class="command"><strong>dh</strong></span> è progettato per formare una parte fondamentale degli
strumenti <code class="systemitem">debhelper</code> e per essere
trasparente, ovvero non nascondere nulla all'utente.
</p>
          <p>
Tutto il lavoro è svolto nelle righe 20 e 21, grazie ad una regola implicita
dichiarata nel modello.  Il simbolo della percentuale significa che "ogni
target" esegue una chiamata ad un singolo programma, <span class="command"><strong>dh</strong></span>
con il nome del target stesso.  <a href="#ftn.idm1612" class="footnote" id="idm1612"><sup class="footnote">[42]</sup></a> Il
comando <span class="command"><strong>dh</strong></span> è uno script wrapper, che esegue una sequenza
appropriata di programmi <span class="command"><strong>dh_*</strong></span> in base all'argomento
passato.  <a href="#ftn.idm1628" class="footnote" id="idm1628"><sup class="footnote">[43]</sup></a>
</p>
          <div class="itemizedlist">
            <ul class="itemizedlist">
              <li class="listitem">
                <p>
<code class="literal">debian/rules clean</code> esegue <code class="literal">dh clean</code>;
che a sua volta esegue i seguenti:
</p>
                <pre class="screen">
dh_testdir
dh_auto_clean
dh_clean
</pre>
              </li>
              <li class="listitem">
                <p>
<code class="literal">debian/rules build</code> esegue <code class="literal">dh build</code>,
che a sua volta esegue i seguenti:
</p>
                <pre class="screen">
dh_testdir
dh_auto_configure
dh_auto_build
dh_auto_test
</pre>
              </li>
              <li class="listitem">
                <p>
<code class="literal">fakeroot debian/rules binary</code> esegue <code class="literal">fakeroot dh
binary</code>, che a sua volta esegue i seguenti<a href="#ftn.idm1652" class="footnote" id="idm1652"><sup class="footnote">[44]</sup></a>:
</p>
                <pre class="screen">
dh_testroot
dh_prep
dh_installdirs
dh_auto_install
dh_install
dh_installdocs
dh_installchangelogs
dh_installexamples
dh_installman
dh_installcatalogs
dh_installcron
dh_installdebconf
dh_installemacsen
dh_installifupdown
dh_installinfo
dh_installinit
dh_installmenu
dh_installmime
dh_installmodules
dh_installlogcheck
dh_installlogrotate
dh_installpam
dh_installppp
dh_installudev
dh_installwm
dh_installxfonts
dh_bugfiles
dh_lintian
dh_gconf
dh_icons
dh_perl
dh_usrlocal
dh_link
dh_compress
dh_fixperms
dh_strip
dh_makeshlibs
dh_shlibdeps
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
</pre>
              </li>
              <li class="listitem">
                <p>
<code class="literal">fakeroot debian/rules binary-arch</code> esegue
<code class="literal">fakeroot dh binary-arch</code>, che a sua volta esegue la stessa
sequenza di <code class="literal">fakeroot dh binary</code> ma con l'opzione
<code class="literal">-a</code> aggiunta ad ogni comando.
</p>
              </li>
              <li class="listitem">
                <p>
<code class="literal">fakeroot debian/rules binary-indep</code> esegue
<code class="literal">fakeroot dh binary-indep</code>, che a sua volta esegue la
stessa sequenza di <code class="literal">fakeroot dh binary</code> ma escludendo
<span class="command"><strong>dh_strip</strong></span>, <span class="command"><strong>dh_makeshlibs</strong></span>, e
<span class="command"><strong>dh_shlibdeps</strong></span> con l'opzione <code class="literal">-i</code> aggiunta
ad ogni comando rimanente.
</p>
              </li>
            </ul>
          </div>
          <p>
Le funzioni dei comandi <span class="command"><strong>dh_*</strong></span> sono, in gran parte,
auto-esplicativi.  <a href="#ftn.idm1673" class="footnote" id="idm1673"><sup class="footnote">[45]</sup></a> Ce ne sono alcune
però, per cui vale la pena dare più spiegazioni, tenendo conto che si stia
lavorando su un ambiente di sviluppo basato sul
<code class="filename">Makefile</code>:  <a href="#ftn.idm1678" class="footnote" id="idm1678"><sup class="footnote">[46]</sup></a>
</p>
          <div class="itemizedlist">
            <ul class="itemizedlist">
              <li class="listitem">
                <p>
<span class="command"><strong>dh_auto_clean</strong></span> normalmente esegue i seguenti comandi se
nel <code class="filename">Makefile</code> è presente il target
<code class="literal">distclean</code>.<a href="#ftn.idm1688" class="footnote" id="idm1688"><sup class="footnote">[47]</sup></a>
</p>
                <pre class="screen">
make distclean
</pre>
              </li>
              <li class="listitem">
                <p>
<span class="command"><strong>dh_auto_configure</strong></span> normalmente esegue i seguenti comandi
se esiste il file <code class="filename">./configure</code> (argomenti abbreviati for
una maggiore leggibilità).
</p>
                <pre class="screen">
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var ...
</pre>
              </li>
              <li class="listitem">
                <p>
<span class="command"><strong>dh_auto_build</strong></span> normalmente lancia il seguente comando per
eseguire, se esiste, il primo target del <code class="filename">Makefile</code>.
</p>
                <pre class="screen">
make
</pre>
              </li>
              <li class="listitem">
                <p>
<span class="command"><strong>dh_auto_clean</strong></span> normalmente esegue i seguenti comandi, se
nel <code class="filename">Makefile</code> esiste il target
<code class="literal">test</code>.<a href="#ftn.idm1710" class="footnote" id="idm1710"><sup class="footnote">[48]</sup></a>
</p>
                <pre class="screen">
make test
</pre>
              </li>
              <li class="listitem">
                <p>
<span class="command"><strong>dh_auto_install</strong></span> normalmente esegue il seguente comando se
nel <code class="filename">Makefile</code> esiste il target
<code class="literal">install</code> (riga spezzata per aumentare la leggibilità).
</p>
                <pre class="screen">
make install \
  DESTDIR=<em class="replaceable"><code>/path/to</code></em>/<em class="replaceable"><code>package</code></em>_<em class="replaceable"><code>version</code></em>-<em class="replaceable"><code>revision</code></em>/debian/<em class="replaceable"><code>package</code></em>
</pre>
              </li>
            </ul>
          </div>
          <p>
Tutti i target che richiedono il comando <span class="command"><strong>fakeroot</strong></span>
dovrebbero contenere <span class="command"><strong>dh_testroot</strong></span>, che restituisce un
errore se non si utilizza questo comando per fingere di essere root.
</p>
          <p>
La cosa importante da sapere riguardo al file <code class="filename">rules</code>
creato da <span class="command"><strong>dh_make</strong></span>, è che il suo contenuto contiene dei
semplici consigli.  Funzionerà per la maggior parte dei pacchetti ma per i
più complicati non si esiti a personalizzarlo secondo le proprie esigenze.
</p>
          <p>
Anche se il target <code class="literal">install</code> non è richiesto, è comunque
supportato.  <code class="literal">fakeroot dh install</code> si comporta come
<code class="literal">fakeroot dh binary</code> ma si ferma dopo
<span class="command"><strong>dh_fixperms</strong></span>.
</p>
        </div>
        <div class="section">
          <div class="titlepage">
            <div>
              <div>
                <h3 class="title"><a id="customrules"/>4.4.3. Personalizzazione del file <code class="filename">rules</code></h3>
              </div>
            </div>
          </div>
          <p>
Verrà qui spiegata la personalizzazione del file <code class="filename">rules</code>,
creato con il nuovo comando <span class="command"><strong>dh</strong></span>.
</p>
          <p>
Il comando <code class="literal">dh $@</code> può essere personalizzato come segue:
<a href="#ftn.idm1746" class="footnote" id="idm1746"><sup class="footnote">[49]</sup></a>
</p>
          <div class="itemizedlist">
            <ul class="itemizedlist">
              <li class="listitem">
                <p>
Aggiunge il supporto per il comando <span class="command"><strong>dh_python2</strong></span>.  (La
scelta migliore per Python) <a href="#ftn.idm1756" class="footnote" id="idm1756"><sup class="footnote">[50]</sup></a>
</p>
                <div class="itemizedlist">
                  <ul class="itemizedlist">
                    <li class="listitem">
                      <p>
Include il pacchetto <code class="systemitem">python</code> in
<code class="literal">Build-Depends</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Utilizza <code class="literal">dh $@ --with python2</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Gestisce i moduli Python utilizzando il framework <code class="systemitem">python</code>.
</p>
                    </li>
                  </ul>
                </div>
              </li>
              <li class="listitem">
                <p>
Aggiunge il supporto per il comando
<span class="command"><strong>dh_pysupport</strong></span>. (deprecato)
</p>
                <div class="itemizedlist">
                  <ul class="itemizedlist">
                    <li class="listitem">
                      <p>
Include il pacchetto <code class="systemitem">python-support</code>
in <code class="literal">Build-Depends</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Utilizza <code class="literal">dh $@ --with pysupport</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Gestisce i moduli Python utilizzando l'infrastruttura <code class="systemitem">python-support</code>.
</p>
                    </li>
                  </ul>
                </div>
              </li>
              <li class="listitem">
                <p>
Aggiunge il supporto al comando <span class="command"><strong>dh_pycentral</strong></span>. (deprecato)
</p>
                <div class="itemizedlist">
                  <ul class="itemizedlist">
                    <li class="listitem">
                      <p>
Include il pacchetto <code class="systemitem">python-central</code>
in <code class="literal">Build-Depends</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Utilizza in alternativa <code class="literal">dh $@ --with python-central</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Disattiva anche il comando <span class="command"><strong>dh_pysupport</strong></span>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Gestisce i moduli Python utilizzando l'infrastruttura <code class="systemitem">python-central</code>.
</p>
                    </li>
                  </ul>
                </div>
              </li>
              <li class="listitem">
                <p>
Aggiunge il supporto per il comando <span class="command"><strong>dh_installtex</strong></span>.
</p>
                <div class="itemizedlist">
                  <ul class="itemizedlist">
                    <li class="listitem">
                      <p>
Include il pacchetto <code class="systemitem">tex-common</code> in
<code class="literal">Build-Depends</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Utilizza in alternativa <code class="literal">dh $@ --with tex</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Registra i caratteri Type 1, le regole di sillabazione, ed i formati con
TeX.
</p>
                    </li>
                  </ul>
                </div>
              </li>
              <li class="listitem">
                <p>
Aggiunge il supporto per i comandi <span class="command"><strong>dh_quilt_patch</strong></span> e
<span class="command"><strong>dh_quilt_unpatch</strong></span>.
</p>
                <div class="itemizedlist">
                  <ul class="itemizedlist">
                    <li class="listitem">
                      <p>
Include il pacchetto <code class="systemitem">quilt</code> in
<code class="literal">Build-Depends</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Utilizza in alternativa <code class="literal">dh $@ --with quilt</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Applica e rimuove le patch al sorgente originale dai file nella directory
<code class="filename">debian/patches</code> per i sorgenti dei pacchetti con formato
<code class="literal">1.0</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Non è necessario se si utilizza il nuovo formato del sorgente del pacchetto
<code class="literal">3.0 (quilt)</code>.
</p>
                    </li>
                  </ul>
                </div>
              </li>
              <li class="listitem">
                <p>
Aggiunge il supporto per il comando <span class="command"><strong>dh_dkms</strong></span>.
</p>
                <div class="itemizedlist">
                  <ul class="itemizedlist">
                    <li class="listitem">
                      <p>
Include il pacchetto <code class="systemitem">dkms</code> in
<code class="literal">Build-Depends</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Utilizza in alternativa <code class="literal">dh $@ --with dkms</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Gestisce in maniera corretta DKMS, usato dal pacchetto del modulo del
kernel.
</p>
                    </li>
                  </ul>
                </div>
              </li>
              <li class="listitem">
                <p>
Aggiunge il supporto per i comandi
<span class="command"><strong>dh_autotools-dev_updateconfig</strong></span> e
<span class="command"><strong>dh_autotools-dev_restoreconfig</strong></span>.
</p>
                <div class="itemizedlist">
                  <ul class="itemizedlist">
                    <li class="listitem">
                      <p>
Include il pacchetto <code class="systemitem">autotools-dev</code>
in <code class="literal">Build-Depends</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Include in alternativa <code class="literal">dh $@ --with autotools-dev</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Aggiorna e ripristina i file <code class="filename">config.sub</code> and
<code class="filename">config.guess</code>.
</p>
                    </li>
                  </ul>
                </div>
              </li>
              <li class="listitem">
                <p>
Aggiunge il supporto per i comandi <span class="command"><strong>dh_autoreconf</strong></span> e
<span class="command"><strong>dh_autoreconf_clean</strong></span>.
</p>
                <div class="itemizedlist">
                  <ul class="itemizedlist">
                    <li class="listitem">
                      <p>
Include il pacchetto <code class="systemitem">dh-autoreconf</code>
in <code class="literal">Build-Depends</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Utilizza in alternativa <code class="literal">dh $@ --with autoreconf</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Aggiorna i file del sistema di compilazione GNU e ripristina i file dopo la
sua compilazione.
</p>
                    </li>
                  </ul>
                </div>
              </li>
              <li class="listitem">
                <p>
Aggiunge il supporto per il comando <span class="command"><strong>dh_girepository</strong></span>.
</p>
                <div class="itemizedlist">
                  <ul class="itemizedlist">
                    <li class="listitem">
                      <p>
Include il pacchetto <code class="systemitem">gobject-introspection</code> in
<code class="literal">Build-Depends</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Utilizza in alternativa <code class="literal">dh $@ --with gir</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Questa operazione calcola le dipendenze per i pacchetti che spediscono dei
dati d'auto-analisi di GObject e genera la variabile di sostituzione
<code class="literal">${gir:Depends}</code> per la dipendenza del pacchetto.
</p>
                    </li>
                  </ul>
                </div>
              </li>
              <li class="listitem">
                <p>
Aggiunge il supporto alla funzionalità di completamento di
<span class="command"><strong>bash</strong></span>.
</p>
                <div class="itemizedlist">
                  <ul class="itemizedlist">
                    <li class="listitem">
                      <p>
Include il pacchetto <code class="systemitem">bash-completion</code>
in <code class="literal">Build-Depends</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Utilizza in alternativa <code class="literal">dh $@ --with bash-completion</code>.
</p>
                    </li>
                    <li class="listitem">
                      <p>
Installa il completamento per <span class="command"><strong>bash</strong></span> utilizzando il file di
configurazione
<code class="filename">debian/<em class="replaceable"><code>package</code></em>.bash-completion</code>.
</p>
                    </li>
                  </ul>
                </div>
              </li>
            </ul>
          </div>
          <p>
Molti comandi del tipo <span class="command"><strong>dh_*</strong></span>, invocati da
<span class="command"><strong>dh</strong></span>, possono essere personalizzati modificando i
rispettivi file di configurazione nella directory
<code class="filename">debian</code>.  Si veda <a class="xref" href="dother.it.html" title="Capitolo 5. Altri file nella directory debian">Capitolo 5, <em>Altri file nella directory <code class="filename">debian</code></em></a> per la
personalizzazione di tali caratteristiche.
</p>
          <p>
Alcuni comandi del tipo <span class="command"><strong>dh_*</strong></span>, invocati da
<span class="command"><strong>dh</strong></span>, possono richiedere la propria esecuzione con alcuni
parametri o in aggiunta ad altri comandi da eseguire contestualmente o al
posto dei comandi originali.  In tali casi viene creato nel file
<code class="filename">rules</code> il target
<code class="literal">override_dh_<em class="replaceable"><code>foo</code></em></code> aggiungendo
una regola solo per il comando
<span class="command"><strong>dh_<em class="replaceable"><code>foo</code></em></strong></span> che si intende
modificare.  Fondamentalmente tale regola dice <span class="emphasis"><em>esegui me al posto
di</em></span>.  <a href="#ftn.idm1923" class="footnote" id="idm1923"><sup class="footnote">[51]</sup></a>
</p>
          <p>
Si noti che il comando <span class="command"><strong>dh_auto_*</strong></span> tende a fare più di ciò
che è stato discusso in questa spiegazione (ultra)semplificata. È una
cattiva idea utilizzare i target <code class="literal">override_dh_*</code> per
sostituire i comandi equivalenti (ad eccezione del target
<code class="literal">override_dh_auto_clean</code>) in quanto può bypassare delle
caratteristiche "intelligenti" di <code class="systemitem">debhelper</code>.
</p>
          <p>
Se si vogliono registrare i dati di configurazione di sistema nella
directory <code class="filename">/etc/gentoo</code> invece che nella solita directory
<code class="filename">/etc</code>, per il pacchetto <code class="systemitem">gentoo</code>, che utilizza gli Autotools, si può
sovrascrivere il parametro predefinito <code class="literal">--sysconfig=/etc</code>
dato dal comando <span class="command"><strong>dh_auto_configure</strong></span> al comando
<span class="command"><strong>./configure</strong></span> nel modo seguente:
</p>
          <pre class="screen">
override_dh_auto_configure:
        dh_auto_configure -- --sysconfig=/etc/gentoo
</pre>
          <p>
I parametri immessi dopo <code class="literal">--</code> vengono aggiunti dopo i
parametri predefiniti dei programmi eseguiti per sovrascriverli.  Utilizzare
il comando <span class="command"><strong>dh_auto_configure</strong></span> è preferibile rispetto al
comando <span class="command"><strong>./configure</strong></span> dal momento che sovrascriverà
esclusivamente il parametro <code class="literal">--sysconfig</code> e manterrà gli
altri parametri del comando <span class="command"><strong>./configure</strong></span>.
</p>
          <p>
Se il <code class="filename">Makefile</code> del sorgente per il pacchetto
<code class="systemitem">gentoo</code> necessita che venga
specificato il target per costruirlo <a href="#ftn.idm1950" class="footnote" id="idm1950"><sup class="footnote">[52]</sup></a>,
basterà creare il target <code class="literal">override_dh_auto_build</code> per
abilitarlo.
</p>
          <pre class="screen">
override_dh_auto_build:
        dh_auto_build -- build
</pre>
          <p>
Questo assicura che <code class="literal">$(MAKE)</code> verrà eseguito con tutti i
parametri predefiniti del comando <span class="command"><strong>dh_auto_build</strong></span> ed il
parametro <code class="literal">build</code>.
</p>
          <p>
Se il <code class="filename">Makefile</code> del sorgente per il pacchetto
<code class="systemitem">gentoo</code> necessita che venga
specificato il target <code class="literal">packageclean</code> per pulirlo per il
pacchetto Debian, al posto dell'utilizzo dei target
<code class="literal">distclean</code> o <code class="literal">clean</code>, si può creare il
target <code class="literal">override_dh_auto_build</code> pe abilitarlo.
</p>
          <pre class="screen">
override_dh_auto_clean:
        $(MAKE) packageclean
</pre>
          <p>
Se il <code class="filename">Makefile</code> di un sorgente per il pacchetto
<code class="systemitem">gentoo</code> contiene il target
<code class="literal">test</code> che non vuole essere eseguito nel processo di
costruzione del pacchetto Debian, si può utilizzare l'obiettivo
<code class="literal">override_dh_auto_test</code> per saltarlo.
</p>
          <pre class="screen">
override_dh_auto_test:
</pre>
          <p>
Se il programma originale <code class="systemitem">gentoo</code>
contiene un inusuale file di changelog chiamato <code class="filename">FIXES</code>,
<span class="command"><strong>dh_installchangelogs</strong></span> non installerà questo file in modo
predefinito.  Il comando <span class="command"><strong>dh_installchangelogs</strong></span> richiede
che venga fornito il parametro <code class="filename">FIXES</code> per
installarlo.<a href="#ftn.idm1980" class="footnote" id="idm1980"><sup class="footnote">[53]</sup></a>
</p>
          <pre class="screen">
override_dh_installchangelogs:
        dh_installchangelogs FIXES
</pre>
          <p>
Quando si usa il nuovo comando <span class="command"><strong>dh</strong></span>, l'utilizzo di target
espliciti come quelli elencanti in <a class="xref" href="dreq.it.html#targets" title="4.4.1. Target del file rules">Sezione 4.4.1, «Target del file <code class="filename">rules</code>»</a>, possono
rendere difficile capire i loro effetti.  Si prega di limitare i target
espliciti in favore dei target <code class="literal">override_dh_*</code> e, se
possibile, quelli completamente indipendenti.
</p>
        </div>
      </div>
      <div class="footnotes">
        <br/>
        <hr/>
        <div id="ftn.idm1163" class="footnote">
          <p><a href="#idm1163" class="para"><sup class="para">[27] </sup></a>
In questo capitolo, per semplicità, i file nella directory
<code class="filename">debian</code> sono indicati senza la directory radice
<code class="filename">debian/</code>, ogni volta che il loro significato è scontato.
</p>
        </div>
        <div id="ftn.idm1197" class="footnote">
          <p><a href="#idm1197" class="para"><sup class="para">[28] </sup></a>Vedere <a class="ulink" href="http://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections">Manuale delle policy di Debian, 2.4
"Sezioni"</a> e <a class="ulink" href="http://packages.debian.org/unstable/">Elenco delle sezioni in
<code class="literal">sid</code></a>.</p>
        </div>
        <div id="ftn.idm1205" class="footnote">
          <p><a href="#idm1205" class="para"><sup class="para">[29] </sup></a>Vedere <a class="ulink" href="http://www.debian.org/doc/debian-policy/ch-archive.html#s-priorities">Manuale delle policy di Debian, 2.5
"Priorità"</a>.
</p>
        </div>
        <div id="ftn.idm1224" class="footnote">
          <p><a href="#idm1224" class="para"><sup class="para">[30] </sup></a>Vedere <a class="ulink" href="http://www.debian.org/doc/debian-policy/ch-relationships.html#s-sourcebinarydeps">Manuale delle
policy di Debian, 7.7 "Relazioni tra pacchetti sorgenti e i pacchetti
binari - Build-Depends, Build-Depends-Indep, Build-Conflicts,
Build-Conflicts-Indep"</a>.</p>
        </div>
        <div id="ftn.idm1254" class="footnote">
          <p><a href="#idm1254" class="para"><sup class="para">[31] </sup></a> Questa strana situazione è ben documentata in <a class="ulink" href="http://www.debian.org/doc/debian-policy/footnotes.html#f55">Debian Policy Manual, Footnotes
55</a>.  Questo non è dovuto all'uso del comando <span class="command"><strong>dh</strong></span>
nel file <code class="filename">debian/rules</code>, ma bensì al funzionamento di
<span class="command"><strong>dpkg-buildpackage</strong></span>.La stessa situazione si presenta per il
<a class="ulink" href="https://bugs.launchpad.net/launchpad-buildd/+bug/238141">sistema
automatico di compilazione di Ubuntu</a>.  </p>
        </div>
        <div id="ftn.idm1286" class="footnote">
          <p><a href="#idm1286" class="para"><sup class="para">[32] </sup></a>Vedere <a class="ulink" href="http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Architecture">Manuale delle policy di Debian,
5.6.8 "Architettura"</a> per maggiori informazioni.
</p>
        </div>
        <div id="ftn.idm1334" class="footnote">
          <p><a href="#idm1334" class="para"><sup class="para">[33] </sup></a>Vedere <a class="ulink" href="http://www.debian.org/doc/debian-policy/ch-relationships.html">Manuale delle policy di Debian, 7
"Dichiarare le relazioni tra i pacchetti"</a>.
</p>
        </div>
        <div id="ftn.idm1431" class="footnote">
          <p><a href="#idm1431" class="para"><sup class="para">[34] </sup></a>Queste descrizioni sono in inglese.  Le traduzioni di queste descrizioni
sono fornite da <a class="ulink" href="http://www.debian.org/intl/l10n/ddtp">The Debian Description Translation
Project - DDTP</a>.</p>
        </div>
        <div id="ftn.idm1436" class="footnote">
          <p><a href="#idm1436" class="para"><sup class="para">[35] </sup></a>Vedere <a class="ulink" href="http://www.debian.org/doc/manuals/developers-reference/best-pkging-practices.html#bpp-vcs">Guida di riferimento per lo
sviluppatore Debian, 6.2.5. "Version Control System location"</a>.
</p>
        </div>
        <div id="ftn.idm1498" class="footnote">
          <p><a href="#idm1498" class="para"><sup class="para">[36] </sup></a>Se si utilizza il comando <code class="literal">dch -r</code> per effettuare
quest'ultima modifica, ci si assicuri che l'editor salvi il file con il nome
<code class="filename">changelog</code>.</p>
        </div>
        <div id="ftn.idm1520" class="footnote">
          <p><a href="#idm1520" class="para"><sup class="para">[37] </sup></a>Si può imparare come scrivere il <code class="filename">Makefile</code> dalla <a class="ulink" href="http://www.debian.org/doc/manuals/debian-reference/ch12#_make">Guida di riferimento Debian, 12.2. "Make"</a>.  La
documentazione completa è disponibile su <a class="ulink" href="http://www.gnu.org/software/make/manual/html_node/index.html">http://www.gnu.org/software/make/manual/html_node/index.html</a> o
come pacchetto <code class="systemitem">make-doc</code> nella
sezione <code class="literal">non-free</code> del repository.
</p>
        </div>
        <div id="ftn.idm1528" class="footnote">
          <p><a href="#idm1528" class="para"><sup class="para">[38] </sup></a>Il <a class="ulink" href="http://www.debian.org/doc/debian-policy/ch-source.html#s-debianrules">manuale delle policy Debian, 4.9 "Main
building script: debian/rules"</a> descrive i dettagli.</p>
        </div>
        <div id="ftn.idm1564" class="footnote">
          <p><a href="#idm1564" class="para"><sup class="para">[39] </sup></a> Questo obiettivo è utilizzato da <code class="literal">dpkg-buildpackage</code> come
in <a class="xref" href="build.it.html#completebuild" title="6.1. (ri)Creazione completa">Sezione 6.1, «(ri)Creazione completa»</a>.  </p>
        </div>
        <div id="ftn.idm1572" class="footnote">
          <p><a href="#idm1572" class="para"><sup class="para">[40] </sup></a> Questo target è usato da <code class="literal">dpkg-buildpackage -B</code> come
descritto in <a class="xref" href="build.it.html#autobuilder" title="6.2. Auto-costruzione">Sezione 6.2, «Auto-costruzione»</a>.  </p>
        </div>
        <div id="ftn.idm1580" class="footnote">
          <p><a href="#idm1580" class="para"><sup class="para">[41] </sup></a> Questo target è utilizzato da <code class="literal">dpkg-buildpackage -A</code>.  </p>
        </div>
        <div id="ftn.idm1612" class="footnote">
          <p><a href="#idm1612" class="para"><sup class="para">[42] </sup></a> Questo è una nuova caratteristica di <code class="systemitem">debhelper</code> v7+.  La sua architettura è
documentata su <a class="ulink" href="http://joey.kitenet.net/talks/debhelper/debhelper-slides.pdf">Not Your Grandpa's
Debhelper</a> ed è stata presentata alla Debconf9 dall'autore di
<code class="systemitem">debhelper</code>.  Su sistemi Debian
<code class="literal">lenny</code>, <span class="command"><strong>dh_make</strong></span> crea file
<code class="filename">rules</code> molto più complicati, con molti script
<span class="command"><strong>dh_*</strong></span> elencati per ogni target, la maggior parte dei quali
sono ormai inutili (e rispecchiano l'anzianità del pacchetto).  La nuova
versione del programma <span class="command"><strong>dh</strong></span> è molto più semplice e ci
libera da questo vincolo.  Si continuerà ad avere il pieno potere di
personalizzazione utilizzando i target <code class="literal">override_dh_*</code>.  Si
veda <a class="xref" href="dreq.it.html#customrules" title="4.4.3. Personalizzazione del file rules">Sezione 4.4.3, «Personalizzazione del file <code class="filename">rules</code>»</a>.  Esso si basa solo sul pacchetto
<code class="systemitem">debhelper</code> e non offusca il processo
di compilazione come il pacchetto <code class="systemitem">cdbs</code>.  </p>
        </div>
        <div id="ftn.idm1628" class="footnote">
          <p><a href="#idm1628" class="para"><sup class="para">[43] </sup></a> You can verify the actual sequences of <span class="command"><strong>dh_*</strong></span> programs
invoked for a given <code class="literal"><em class="replaceable"><code>target</code></em></code>
without really running them by invoking <code class="literal">dh
<em class="replaceable"><code>target</code></em> --no-act</code> or
<code class="literal">debian/rules -- '<em class="replaceable"><code>target</code></em>
--no-act'</code>.  </p>
        </div>
        <div id="ftn.idm1652" class="footnote">
          <p><a href="#idm1652" class="para"><sup class="para">[44] </sup></a>Il seguente esempio assume che il file <code class="filename">debian/compat</code>
abbia un valore uguale o superiore a 9, per evitare l'esecuzione automatica
di qualsiasi comando python di supporto.
</p>
        </div>
        <div id="ftn.idm1673" class="footnote">
          <p><a href="#idm1673" class="para"><sup class="para">[45] </sup></a> Per informazioni dettagliate sul funzionamento di tutti questi script
<span class="command"><strong>dh_ *</strong></span>, e sulle loro opzioni, leggere le rispettive pagine
del manuale e <code class="systemitem">debhelper</code>
documentazione.  </p>
        </div>
        <div id="ftn.idm1678" class="footnote">
          <p><a href="#idm1678" class="para"><sup class="para">[46] </sup></a> Questi comandi supportano altri ambienti di sviluppo, come
<code class="filename">setup.py</code> che può essere elencato eseguendo
<code class="literal">dh_auto_build --list</code> nella directory del sorgente del
pacchetto.  </p>
        </div>
        <div id="ftn.idm1688" class="footnote">
          <p><a href="#idm1688" class="para"><sup class="para">[47] </sup></a> Attualmente il programma esegue il primo target presente nel
<code class="filename">Makefile</code>, tra <code class="literal">distclean</code>,
<code class="literal">realclean</code> o <code class="literal">clean</code>.
</p>
        </div>
        <div id="ftn.idm1710" class="footnote">
          <p><a href="#idm1710" class="para"><sup class="para">[48] </sup></a> Attualmente il programma esegue il primo target <code class="literal">test</code> o
<code class="literal">check</code> disponibile nel <code class="filename">Makefile</code>.</p>
        </div>
        <div id="ftn.idm1746" class="footnote">
          <p><a href="#idm1746" class="para"><sup class="para">[49] </sup></a> Se il pacchetto installa il file
<code class="filename">/usr/share/perl5/Debian/Debhelper/Sequence/<em class="replaceable"><code>nome_personalizzato</code></em>.pm</code>,
si deve attivare la funzione di personalizzazione tramite il comando
<code class="literal">dh $@ --with
<em class="replaceable"><code>nome-personalizzato</code></em></code>.  </p>
        </div>
        <div id="ftn.idm1756" class="footnote">
          <p><a href="#idm1756" class="para"><sup class="para">[50] </sup></a> L'uso del comando <span class="command"><strong>dh_python2</strong></span> è preferito rispetto all'uso
di dei comandi <span class="command"><strong>dh_pysupport</strong></span> o
<span class="command"><strong>dh_pycentral</strong></span>.  Non si deve utilizzare il comando
<span class="command"><strong>dh_python</strong></span>.  </p>
        </div>
        <div id="ftn.idm1923" class="footnote">
          <p><a href="#idm1923" class="para"><sup class="para">[51] </sup></a> Sotto <code class="literal">lenny</code>, se si vuole cambiare il comportamento di uno
script <span class="command"><strong>dh_*</strong></span> basta cercare la riga relativa nel file
<code class="filename">rules</code> e modificarla.  </p>
        </div>
        <div id="ftn.idm1950" class="footnote">
          <p><a href="#idm1950" class="para"><sup class="para">[52] </sup></a>
<span class="command"><strong>dh_auto_build</strong></span> senza alcun argomento eseguirà il primo
target del file <code class="filename">Makefile</code>.  </p>
        </div>
        <div id="ftn.idm1980" class="footnote">
          <p><a href="#idm1980" class="para"><sup class="para">[53] </sup></a> I file <code class="filename">debian/changelog</code> e
<code class="filename">debian/NEWS</code> vengono sempre installati automaticamente.
Il changelog originale viene trovato convertendo i nomi dei file in
minuscolo e cercando la corrispondenza con <code class="filename">changelog</code>,
<code class="filename">changes</code>, <code class="filename">changelog.txt</code>, e
<code class="filename">changes.txt</code>.
</p>
        </div>
      </div>
    </div>
    <div class="navfooter">
      <hr/>
      <table width="100%" summary="Navigation footer">
        <tr>
          <td align="left"><a accesskey="p" href="modify.it.html"><img src="images/prev.png" alt="Indietro"/></a> </td>
          <td align="center"> </td>
          <td align="right"> <a accesskey="n" href="dother.it.html"><img src="images/next.png" alt="Avanti"/></a></td>
        </tr>
        <tr>
          <td align="left" valign="top">Capitolo 3. Modificare i sorgenti </td>
          <td align="center">
            <a accesskey="h" href="index.it.html">
              <img src="images/home.png" alt="Partenza"/>
            </a>
          </td>
          <td align="right" valign="top"> Capitolo 5. Altri file nella directory <code class="filename">debian</code></td>
        </tr>
      </table>
    </div>
  </body>
</html>