deb-src-control(5)

NOME
deb-src-control - formato del file principale di controllo dei pacchetti sorgente Debian

SINTASSI
control

DESCRIZIONE
Each Debian source package contains the master «control» file, which contains at least 2 paragraphs, separated by a blank line. The first paragraph lists all information about the source package in general, while each following paragraph describes exactly one binary package. Each paragraph consists of at least one field. A field starts with a fieldname, such as Package or Section (case insensitive), followed by a colon, the body of the field and a newline. Multi-line fields are also allowed, but each supplementary line, without a fieldname, should start with at least one space. The content of the multi-line fields is generally joined to a single line by the tools (except in the case of the Description field, see below). To insert empty lines into a multi-line field, insert a dot after the space. Lines starting with a ‘#’ are treated as comments.

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)
    Should be in the format «Joe Bloggs <jbloggs@foo.com>», and references the person who currently maintains the package, as opposed to the author of the software or the original packager.

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
    The url of the bug tracking system for this package. The current used format is bts-type://bts-address, like debbugs://bugs.debian.org. This field is usually not needed.

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
    This is a general field that gives the package a category based on the software that it installs. Some common sections are utils, net, mail, text, x11, etc.

Priority: priorità
    Sets the importance of this package in relation to the system as a whole. Common priorities are required, standard, optional, extra, etc. 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
    A list of packages that need to be installed and configured to be able to build from source package. These dependencies need to be satisfied when building binary architecture dependent or independent packages and source packages. Including a dependency in this field does not have the exact same effect as including it in both Build-Depends-Arch and Build-Depends-Indep, because the dependency also needs to be satisfied when building the source package.

Build-Depends-Arch: package-list
    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: package-list
    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: package-list
    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.

The syntax of the Build-Depends, Build-Depends-Arch and Build-Depends-Indep fields is a list of groups of alternative packages. Each group is a list of packages separated by vertical bar (or “pipe”) symbols, ‘|’. The groups are separated by commas. Commas are to be read as “AND”, and pipes as “OR”, with pipes binding more tightly. Each package name is optionally followed by an architecture qualifier appended after a colon ‘:’, optionally followed by a version number specification in parentheses, an architecture specification in square brackets, and a restriction formula consisting of one or more lists of profile names in angle brackets. The syntax of the Build-Conflicts, Build-Conflicts-Arch and Build-Conflicts-Indep fields is a list of comma-separated package names, where the comma is read as an “AND”. Specifying alternative packages using a “pipe” is not supported. Each package name is optionally followed by a version number specification in parentheses, an architecture specification in square brackets, and a restriction formula consisting of one or more lists of profile names in angle brackets. An architecture qualifier name can be a real Debian architecture name (since dpkg 1.16.5), any (since dpkg 1.16.2) or native (since dpkg 1.16.5). If omitted, the default for Build-Depends fields is the current host architecture, the default for Build-Conflicts fields is any. A real Debian architecture name will match exactly that architecture for that package name, any will match any architecture for that package name if the package is marked with Multi-Arch: allowed, and native will match the current build architecture if the package is not marked with Multi-Arch: foreign. A version number may start with a ‘>>’, in which case any later version will match, and may specify or omit the Debian packaging revision (separated by a hyphen). Accepted version relationships are ‘>>’ for greater than, ‘<<’ for less than, ‘>=’ for greater than or equal to, ‘<=’ for less than or equal to, and ‘=’ for equal to. An architecture specification consists of one or more architecture names, separated by whitespace. Exclamation marks may be prepended to each of the names, meaning “NOT”. A restriction formula consists of one or more restriction lists, separated by whitespace. Each restriction list is enclosed in angle brackets. Items in the restriction list are build profile names, separated by whitespace and can be prefixed with an exclamation mark, meaning “NOT”. A restriction formula represents a disjunctive normal form expression. 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
    This field defines the type of the package. udeb is for size-constrained packages used by the debian installer. deb is the default value, it is assumed if the field is absent. More types might be added in the future.

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
Build-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)