NAZWA¶
deb-src-control - format głównego pliku kontrolnego pakietu
źródłowego Debiana
SKŁADNIA¶
control
OPIS¶
Każdy pakiet źródłowy Debiana zawiera
główny plik "control", który zawiera co
najmniej dwa akapity, oddzielone pustym wierszem. Pierwszy zawiera wszystkie
ogólne informacje o pakiecie źródłowym, natomiast
każdy następny akapit opisuje dokładnie jeden pakiet
binarny. Każdy akapit składa się z co najmniej jednego
pola. Pole zaczyna się jego nazwą, taką jak
Package lub
Section (wielkość znaków
nieistotna), po której występuje dwukropek,
zawartość pola i nowy wiersz. Dozwolone są
również pola składające się z wielu
wierszy, ale każdy uzupełniający wiersz,
nieposiadający nazwy pola, powinien zaczynać się co
najmniej jedną spacją. Zawartość pól
wielowierszowych jest zwykle łączona przez narzędzia w
jeden wiersz (z wyjątkiem pola
Description, patrz niżej).
Aby wstawić puste wiersze w pole wielowierszowe, po spacji
należy dopisać kropkę. Wiersze zaczynające
się od "
#" są traktowane jako komentarze.
POLA PAKIETU ŹRÓDŁOWEGO¶
- Source: nazwa-pakietu-źródłowego
(wymagane)
- Wartość tego pola jest nazwą pakietu
źródłowego i powinna pasować do nazwy pakietu
źródłowego w pliku debian/changelog. Nazwa pakietu
może składać się wyłącznie z
małych liter (a-z), cyfr (0-9), plusów (+), minusów
(-) oraz kropek (.). Nazwy pakietu muszą mieć
długość co najmniej dwóch znaków i
muszą zaczynać się literą lub cyfrą.
- Maintainer: pełna-nazwa e-mail (wymagane)
- Powinna być w formacie "Jan Nowak <jnowak@foo.com>"
i zazwyczaj oznacza osobę, która zajmuje się obecnie
danym pakietem, a nie autora programu ani pierwotnego paczkującego.
- Uploaders: pełna-nazwa email
- Zawiera wszystkie nazwiska i adresy poczty elektronicznej
współopiekunów pakietu, w tym samym formacie jak pole
Maintainer. Poszczególnych współopiekunów
należy rozdzielić przecinkiem.
- Standards-Version: oznaczenie-wersji
- Opisuje najnowszą wersję standardów
(składających się z dokumentu Debian Policy Manual i
tekstów, do których się on odwołuje, z pakietu
debian-policy), z którymi zgodny jest pakiet.
- Homepage: URL
- URL do strony internetowej projektu macierzystego.
- Bugs: URL
- URL systemu zgłaszania błędów dla tego
pakietu. Obecnie używanym formatem jest is
typ_bts://adres_bts, na przykład:
debbugs://bugs.debian.org. Pole to zwykle nie jest potrzebne.
- Vcs-Arch: url
- Vcs-Bzr: url Vcs-Cvs: url Vcs-Darcs:
url Vcs-Git: url Vcs-Hg: url
Vcs-Mtn: url Vcs-Svn: url URL
repozytorium systemu kontroli wersji, używanego do
zarządzania danym pakietem. Obecnie obsługiwane są:
Arch, Bzr (Bazaar), Cvs, Darcs, Git,
Hg (Mercurial), Mtn (Monotone) i Svn (Subversion).
Pole to zwykle odwołuje się do najnowszej wersji pakietu np.
głównej gałęzi lub pnia.
- Vcs-Browser: URL
- URL interfejsu WWW do przeglądania repozytorium systemu
kontroli wersji.
- Origin: nazwa
- Nazwa dystrybucji, z której pochodzi pakiet. Pole to z
reguły nie jest potrzebne.
- Section:sekcja
- Jest to ogólne pole zawierające kategorię pakietu
bazowaną na oprogramowaniu, które zawiera. Niektóre
częściej występujące sekcje to:
"utils", "net", "mail", "text",
"x11" itp.
- Priority: priorytet
- Ustawia ważność pakietu w stosunku do całego
systemu. Najczęściej używane priorytety to:
"required" (wymagany), "standard" (standardowy) ,
"optional" (opcjonalny), "extra" (dodatkowy) itp.
W Debianie pola Section i Pririty mają
ściśle zdefiniowany zbiór akceptowalnych
wartości opisany w Zasadach polityki Debiana. Listę tych
wartości można znaleźć w najnowszej wersji
pakietu debian-policy.
- Build-Depends: lista-pakietów
- Lista pakietów, które muszą być zainstalowane
i skonfigurowane aby zbudować pakiet źródłowy.
Zależność na tej liście ma taki efekt, jak
umieszczenie jest zarówno w Build-Depends-Arch jak i
Build-Depends-Indep, z tym dodatkowym działaniem, że
jest ona używana tylko do budowy źródeł.
- Build-Depends-Arch: lista-pakietów
- Same as Build-Depends, but they are only needed when building the
architecture dependent packages. The Build-Depends are also
installed in this case. This field is supported since dpkg 1.16.4; in
order to build with older dpkg versions, Build-Depends should be
used instead.
- Build-Depends-Indep: lista-pakietów
- Podobnie jak Build-Depends, lecz obejmuje tylko
zależności potrzebne przy budowaniu pakietów
niezależnych od architektury. Build-Depends są
wówczas również instalowane.
- Build-Conflicts: lista-pakietów
- Lista pakietów, które nie powinny być instalowane
podczas budowy pakietu, np. dlatego, że wpływają na
używany system budowania. Zależność z tej
listy ma taki sam efekt, jak umieszczenie jej zarówno w
Build-Conflicts-Arch jak i Build-Conflicts-Indep, z tym
dodatkowym działaniem, że jest używana tylko do
budowań źródeł.
- Build-Conflicts-Arch: lista-pakietów
- Same as Build-Conflicts, but only when building the architecture
dependent packages. This field is supported since dpkg 1.16.4; in order to
build with older dpkg versions, Build-Conflicts should be used
instead.
- Build-Conflicts-Indep: lista-pakietów
- Podobnie jak Build-Conflict, lecz ma znaczenie tylko przy budowaniu
pakietów niezależnych od architektury.
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 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.
Numer wersji może zaczynać się od ">>", co
oznacza, że każda późniejsza wersja pakietu
będzie odpowiednia; można także podawać lub
pomijać wersję zmian Debiana (po znaku myślnika).
Akceptowalne relacje są następujące: ">>"
- większy niż, "<<" - mniejszy niż,
">=" - większy lub równy, "<=" -
mniejszy lub równy oraz "=" - równy.
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.
Proszę zauważyć, że zależności wobec
pakietów z zestawu
build-essential mogą być
pominięte, nie da się również deklarować
wobec nich konfliktów. Lista tych pakietów znajduje się w
pakiecie build-essential.
POLA PAKIETÓW BINARNYCH¶
Proszę zauważyć, że w akapicie binarnym można
podać również pola
Priority,
Section i
Homepage - przesłonią one wówczas
ogólną wartość z pakietu
źródłowego.
- Package: nazwa-pakietu-binarnego (wymagane)
- To pole jest używane do podania nazwy pakietu binarnego.
Stosują się to te same zasady, co wobec nazwy pakietu
źródłowego.
- Architecture: architektura|all|any
(wymagane)
- Architektura określa typ sprzętu, na jakim działa
dany pakiet. W przypadku pakietów działających na
wszystkich architekturach, należy użyć
wartości any. Do pakietów niezależnych od
architektury, takich jak powłoka i skrypty Perla lub dokumentacja,
właściwym wyborem jest all. Aby ograniczyć
pakiet do określonego zestawu architektur, należy je
podać, oddzielając kolejne spacją. Można
również podać w tej liście maski architektur
(patrz dpkg-architecture(1), aby dowiedzieć się o
nich więcej).
- Package-Type: deb|udeb
- To pole definiuje typ pakietu. "udeb" odnosi się do
pakietów o zmniejszonych rozmiarach, używanych przez
instalator Debiana. "deb" jest wartością
domyślną i jest ona przyjmowana, gdy pole nie zostanie
użyte. W przyszłości możliwe jest dodanie
kolejnych typów.
- Subarchitecture: wartość
- Kernel-Version: wartość
Installer-Menu-Item: wartość Pola te
są używane przez debian-installer (instalator Debiana) i
zwykle nie są potrzebne. Plik
/usr/share/doc/debian-installer/devel/modules.txt z pakietu
debian-installer zawiera więcej informacji.
- Essential: yes|no
- Multi-Arch: same|foreign|allowed|no
Tag: lista-znaczników Description:
krótki-opis (wymagane) Pola te są opisane na stronie
podręcznika deb-control(5), ponieważ są one
dokładnie kopiowane do pliku kontrolnego pakietu binarnego.
- Depends: lista-pakietów
- Pre-Depends: lista-pakietów Recommends:
lista-pakietów Suggests: lista-pakietów
Breaks: lista-pakietów Enhances:
lista-pakietów Replaces: lista-pakietów
Conflicts: lista-pakietów Provides:
lista-pakietów Built-Using: lista-pakietów
(Rozszerza) Pola te deklarują zależności
pomiędzy pakietami. Są one opisane na stronie
podręcznika deb-control(5) i w pakiecie
debian-policy.
POLA DEFINIOWANE PRZEZ UŻYTKOWNIKA¶
Istnieje możliwość dodawania dodatkowych do pliku
kontrolnego. Narzędzia będą je ignorować.
Jeśli pola te mają być kopiowane do plików
wyjściowych, takich jak pakiety binarne, konieczne jest użycie
następującej składni: nazwa musi się
zaczynać od X, po którym występuje co najmniej jedna z
liter B, C, S i minus. Jeśli używana jest litera B, to pole
pojawi się w pliku kontrolnych pakietu binarnego (patrz
deb-control(5)), w przypadku litery S, w pliku kontrolnym pakietu
źródłowego, zgodnie z
dpkg-source(1), a litera C
spowoduje pojawienie się pola w pliku kontrolnym wysyłki
(.changes). Proszę zauważyć, że przedrostki
X[BCS]- są usuwane, gdy dane pola są kopiowane do plików
wyjściowych. Pole
XC-Approved-By pojawi się jako
Approved-By w pliku .changes i nie pojawi się w plikach
kontrolnych pakietu źródłowego, ani binarnego.
Take into account that these user-defined fields will be using the global
namespace, which might at some point in the future collide with officially
recognized fields. To avoid such potential situation you can prefix those
fields with
Private-, such as
XB-Private-New-Field.
PRZYKŁAD¶
# Komentarz
Source: dpkg
Section: admin
Priority: required
Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
# to pole będzie skopiowane do pakietu binarnego i źródłowego
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
# to jest pole użytkownika w pakiecie binarnym
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.
ZOBACZ TAKŻE¶
deb-control(5),
deb-version(5),
dpkg-source(1)
TŁUMACZE¶
Piotr Roszatycki <dexter@debian.org>, 1999
Bartosz Feński <fenio@debian.org>, 2004-2005
Robert Luberda <robert@debian.org>, 2006-2008
Wiktor Wandachowicz <siryes@gmail.com>, 2008
Michał Kułach <michal.kulach@gmail.com>, 2012