NOME¶
deb-src-control - formato del file principale di controllo dei pacchetti
sorgente Debian
SINTASSI¶
control
DESCRIZIONE¶
Ogni pacchetto sorgente Debian contiene il file «control»
principale che contiene almeno 2 paragrafi, separati da una riga vuota. Il
primo paragrafo elenca tutte le informazioni sul pacchetto sorgente in
generale, mentre ciascun paragrafo seguente descrive esattamente un pacchetto
binario. Ogni paragrafo consiste di almeno un campo. Un campo inizia con un
nome di campo, come
Package o
Section (le maiuscole e minuscole
non hanno importanza), seguito da due punti («:»), il corpo del
campo e un ritorno a capo. Sono permessi anche campi con più righe, ma
ogni riga aggiuntiva senza un nome di campo deve iniziare con almeno uno
spazio. Il contenuto dei campi multi riga viene generalmente riunito in
un'unica riga dagli strumenti (tranne nel caso del campo
Description,
come descritto in seguito). Per inserire righe vuote in un campo composto da
più righe, inserire un punto dopo lo spazio. Le righe che iniziano con
un
«#» sono considerate commenti.
CAMPI DEL SORGENTE¶
- Source: nome-pacchetto-sorgente (richiesto)
- Il valore di questo campo è il nome del pacchetto sorgente e deve
corrispondere al nome del pacchetto sorgente nel file debian/changelog. Un
nome di pacchetto è formato soltanto da lettere minuscole (a-z),
cifre (0-9), segni più (+) e meno (-) e punti (.). I nomi di
pacchetto devono essere lunghi almeno due caratteri e devono iniziare con
un carattere alfanumerico.
- Maintainer: nomecompleto-email (richiesto)
- Dovrebbe essere nel formato «Tizio Caio
<tcaio@foo.com>» e si riferisce alla persona che attualmente
mantiene il pacchetto, piuttosto che all'autore del software o al creatore
originale del pacchetto.
- Uploaders: nomecompleto-email
- Elenca tutti i nomi ed indirizzi di posta elettronica dei co-manutentori
del pacchetto, nello stesso formato del campo Maintainer. Più
manutentori devono essere separati da una virgola.
- Standards-Version: stringa-versione
- Questo indica la più recente versione degli standard (che
consistono nel manuale Debian Policy e dei testi a cui esso fa
riferimento, nel pacchetto debian-policy) a cui è conforme
questo pacchetto.
- Homepage: url
- L'URL della home page del progetto originale.
- Bugs: url
- L'url per questo pacchetto nel sistema di tracciamento dei bug. Il
formato attualmente utilizzato è
tipo-bts://indirizzo-bts, come in
debbugs://bugs.debian.org. Questo campo solitamente non è
necessario.
- Vcs-Arch: url
- Vcs-Bzr: url Vcs-Cvs: url Vcs-Darcs:
url Vcs-Git: url Vcs-Hg: url
Vcs-Mtn: url Vcs-Svn: url L' url del
repository del sistema di controllo di versione usato per manutenere
questo pacchetto. Attualmente sono supportati Arch, Bzr
(Bazaar), Cvs, Darcs, Git, Hg (Mercurial),
Mtn (Monotone) e Svn (Subversion). Solitamente questo campo
punta alla versione più recente del pacchetto, ad esempio al ramo
principale o al tronco.
- Vcs-Browser: url
- L'url di un'interfaccia web per navigare nel repository del sistema
di controllo di versione.
- Origin: nome
- Il nome della distribuzione da cui ha origine questo pacchetto. Questo
campo solitamente non è necessario.
- Section: sezione
- Questo è un campo generico che assegna al pacchetto una categoria
in base al software che esso installa. Alcune sezioni comuni sono:
«utils», «net», «mail»,
«text», «x11», ecc.
- Priority: priorità
- Imposta l'importanza di questo pacchetto in relazione all'intero sistema.
Priorità comuni sono: «required»,
«standard», «optional», «extra»,
ecc.
In Debian, i campi Section e Priority hanno un insieme
definito di valori accettati in base al manuale Debian Policy. È
possibile ottenere un elenco di tali valori dalla versione più
recente del pacchetto debian-policy.
- Build-Depends: elenco-pacchetti
- Un elenco di pacchetti che devono essere installati e configurati per
poter creare il pacchetto sorgente. Includere una dipendenza in questo
elenco ha lo stesso effetto di includerla in entrambi
Build-Depends-Arch e Build-Depends-Indep, con l'effetto
aggiuntivo di essere usata per la creazione di archivi solo-sorgenti.
- Build-Depends-Arch: elenco-pacchetti
- Come Build-Depends, ma sono necessari solamente quando si compilano
i pacchetti dipendenti dall'architettura. In questo caso vengono
installati anche i Build-Depends. Questo campo è supportato
a partire dalla versione 1.16.4 di dpkg; per poter compilare con versioni
più vecchie di dpkg, deve essere invece usato Build-Depends.
- Build-Depends-Indep: elenco-pacchetti
- Come Build-Depends, ma sono necessari solamente quando si compilano
i pacchetti indipendenti dall'architettura. In questo caso vengono
installati anche i Build-Depends.
- Build-Conflicts: elenco-pacchetti
- Un elenco di pacchetti che non devono essere installati quando il
pacchetto è compilato, ad esempio perché interferiscono con
il sistema di compilazione usato. Includere una dipendenza in questo
elenco ha lo stesso effetto di includerla sia in
Build-Conflicts-Arch sia in Build-Conflicts-Indep, con
l'effetto aggiuntivo di essere usata per le compilazioni solo-sorgente.
- Build-Conflicts-Arch: elenco-pacchetti
- Come Build-Conflicts, ma solo quando si compilano i pacchetti
dipendenti dall'architettura. Questo campo è supportato dalla
versione 1.16.4 di dpkg; per poter compilare con versioni più
vecchie di dpkg, deve essere invece usato Build-Conflicts.
- Build-Conflicts-Indep: elenco-pacchetti
- Come Build-Conflicts, ma solo quando si compilano i pacchetti
indipendenti dall'architettura.
La sintassi dei campi
Build-Depends,
Build-Depends-Arch e
Build-Depends-Indep è un elenco di gruppi di pacchetti
alternativi. Ogni gruppo è un elenco di pacchetti separati da una barra
verticale (o «pipe»): «|». I gruppi sono separati
da virgole. Le virgole devono essere lette come «AND» e le pipe
come «OR», con le pipe che hanno la precedenza. Ogni nome di
pacchetto è seguito opzionalmente da un numero di versione specificato
tra parentesi, un'architettura specificata tra parentesi quadre e una formula
di restrizione che consiste di uno o più elenchi di nomi di profilo
specificati tra parentesi angolari.
La sintassi dei campi
Build-Conflicts,
Build-Conflicts-Arch e
Build-Conflicts-Indep è un elenco di gruppi di pacchetti
separati da virgole, dove la virgola viene letta come un «AND».
Non è supportato specificare pacchetti alternativi usando una
«pipe». Ogni nome di pacchetto è seguito opzionalmente da
un numero di versione specificato tra parentesi, da un'architettura
specificata tra parentesi quadre e da una formula di restrizione che consiste
di uno o più elenchi di nomi di profilo specificati tra parentesi
angolari.
Un numero di versione può iniziare con «>>», nel qual
caso corrisponde ad ogni versione successiva e può specificare o meno
la revisione Debian del pacchetto (separata da un trattino). Le relazioni
accettate per le versioni sono «>>» per maggiore di,
«<<» per minore di, «>=» per maggiore o
uguale a, «<=» per minore o uguale a e «=» per
uguale a.
L'indicazione di un'architettura è formata da uno o più nomi di
architettura, separati da spazi bianchi. Ciascun nome può essere fatto
precedere da un punto esclamativo col significato di «NON».
Una formula di restrizione è costituita da uno o più elenchi di
restrizione, separati da uno spazio bianco. Ogni elenco di restrizione e
racchiuso tra parentesi angolari. Gli elementi nell'elenco di restrizione sono
nomi di profilo, separati da spazi bianchi e possono essere preceduti da un
punto esclamativo col significato di «NON». Una formula di
restrizione rappresenta una espressione in forma normale disgiuntiva.
Notare che le dipendenze dai pacchetti nell'insieme
build-essential
possono essere omesse e che dichiarare conflitti di compilazione con essi
è impossibile. Un elenco di tali pacchetti è nel pacchetto
build-essential.
CAMPI BINARI¶
Notare che i campi
Priority,
Section e
Homepage possono
anche essere in un paragrafo di un binario per sovrascrivere il valore globale
del pacchetto sorgente.
- Package: nome-pacchetto-binario (richiesto)
- Questo campo viene usato per indicare il nome del pacchetto binario.
Valgono le stesse restrizioni usate per i nomi dei pacchetti sorgenti.
- Architecture: arch|all|any (richiesto)
- L'architettura specifica su quale tipo di hardware funziona questo
pacchetto. Per i pacchetti che funzionano su tutte le architetture, usare
il valore any. Per i pacchetti che sono indipendenti
dall'architettura, come gli script Perl e di shell o la documentazione,
usare il valore all. Per limitare i pacchetti ad un determinato
insieme di architetture, specificare i nomi delle architetture, separate
da uno spazio. In tale elenco è anche possibile usare espressioni
jolly per le architetture (per maggiori informazioni vedere
dpkg-architecture(1)).
- Package-Type: deb|udeb
- Questo campo definisce il tipo di pacchetto. «udeb» è
per pacchetti di dimensioni limitate usati dall'installatore debian.
«deb» è il valore predefinito che viene usato se il
campo non è presente. Ulteriori tipi potrebbero essere aggiunti in
futuro.
- Subarchitecture: valore
- Kernel-Version: valore Installer-Menu-Item:
valore Questi campi sono usati dall'installatore Debian e non sono
solitamente necessari. Per maggiori dettagli su di essi, guardare il file
/usr/share/doc/debian-installer/devel/modules.txt nel pacchetto
debian-installer.
- Essential: yes|no
- Multi-Arch: same|foreign|allowed|no
Tag: elenco-etichette Description:
descrizione-breve (richiesto) Questi campi sono descritti nella pagina
di manuale deb-control(5), dato che sono copiati in modo letterale
nel file di controllo del pacchetto binario.
- Depends: elenco-pacchetti
- Pre-Depends: elenco-pacchetti Recommends:
elenco-pacchetti Suggests: elenco-pacchetti
Breaks: elenco-pacchetti Enhances:
elenco-pacchetti Replaces: elenco-pacchetti
Conflicts: elenco-pacchetti Provides:
elenco-pacchetti Built-Using: elenco-pacchetti Questi
campi dichiarano relazioni tra i pacchetti. Sono descritti nella pagina di
manuale deb-control(5) e nel pacchetto debian-policy.
CAMPI DEFINITI DALL'UTENTE¶
È permesso aggiungere al file control campi addizionali definiti
dall'utente che saranno ignorati dagli strumenti. Se si desidera che i campi
vengano copiati nei file di output, come ad esempio i pacchetti binari,
è necessario usare uno schema dei nomi personalizzato: i campi devono
iniziare con una lettera X, seguita da una o più tra le lettere BCS e
un trattino. Se viene usata la lettera B, il campo sarà presente nel
file di controllo del pacchetto binario, vedere
deb-control(5); se
è usata la lettera S sarà nel file di controllo del pacchetto
sorgente come creato da
dpkg-source(1); nel caso della lettera C nel
file di controllo del caricamento (.changes). Notare che i prefissi X[BCS]-
vengono rimossi quando i campi sono copiati nei file di output. Un campo
XC-Approved-By apparirà come
Approved-By nel file changes
e non sarà presente nel file di controllo del pacchetto binario o di
quello sorgente.
Tenere a mente che questi campi definiti dall'utente useranno lo spazio dei nomi
globale, che potrebbe in futuro andare in conflitto con i campi ufficialmente
riconosciuti. Per evitare una potenziale situazione di questo tipo, si possono
far iniziare questi campi con
Private-, come in
XB-Private-Nuovo-Campo.
ESEMPIO¶
# Commento
Source: dpkg
Section: admin
Priority: required
Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
# questo campo viene copiato nei pacchetti binario e sorgente
XBS-Upstream-Release-Status: stable
Homepage: https://wiki.debian.org/Teams/Dpkg
Vcs-Browser: https://anonscm.debian.org/cgit/dpkg/dpkg.git
Vcs-Git: git://anonscm.debian.org/dpkg/dpkg.git
Standards-Version: 3.7.3
Build-Depends: pkg-config, debhelper (>= 4.1.81),
libselinux1-dev (>= 1.28-4) [!linux-any]
Package: dpkg-dev
Section: utils
Priority: optional
Architecture: all
# questo è un campo personalizzato nel pacchetto binario
XB-Mentoring-Contact: Raphael Hertzog <hertzog@debian.org>
Depends: dpkg (>= 1.14.6), perl5, perl-modules, cpio (>= 2.4.2-2),
bzip2, lzma, patch (>= 2.2-1), make, binutils, libtimedate-perl
Recommends: gcc | c-compiler, build-essential
Suggests: gnupg, debian-keyring
Conflicts: dpkg-cross (<< 2.0.0), devscripts (<< 2.10.26)
Replaces: manpages-pl (<= 20051117-1)
Description: Debian package development tools
This package provides the development tools (including dpkg-source)
required to unpack, build and upload Debian source packages.
.
Most Debian source packages will require additional tools to build;
for example, most packages need make and the C compiler gcc.
VEDERE ANCHE¶
deb-control(5),
deb-version(5),
dpkg-source(1)