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.
- DM-Upload-Allowed: yes|no
- Pole określa, czy pakiet może zostać
zamieszczony przez DM (ang. Debian Maintainer) znajdującego się
w polu Maintainer lub Uploaders. Domyślną wartością
jest "no".
- 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-*: 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
- 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. Pole zostało wprowadzone
w wersji 1.16.4 dpkg; aby budować przy użyciu starszych wersji
dpkg, powinno się używać Build-Depends.
- 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
- Podobnie jak Build-Conflicts, lecz obejmuje tylko
zależności potrzebne przy budowaniu pakietów zależnych
od architektury. Pole zostało wprowadzone w wersji 1.16.4 dpkg; aby
budować przy użyciu starszych wersji dpkg, powinno się
używać Build-Conflicts.
- Build-Conflicts-Indep:
lista-pakietów
- Podobnie jak Build-Conflict, lecz ma znaczenie tylko
przy budowaniu pakietów niezależnych od architektury.
Wartością pól
Build-Depends,
Build-Depends-Arch i
Build-Depends-Indep jest lista grup alternatywnych pakietów.
Każda grupa jest listą pakietów oddzielonych symbolami pionowej
kreski ("|"). Grupy oddzielone są od siebie przecinkami.
Przecinki mają znaczenie "I" (koniunkcja), a kreski -
"LUB" (alternatywa), przy czym priorytet koniunkcji jest
wyższy. Po każdej nawie pakietu może opcjonalnie
występować numer wersji - podany w nawiasach i architektura - w
nawiasach kwadratowych.
Wartościami pól
Build-Conflicts,
Build-Conflicts-Arch i
Build-Conflicts-Indep jest lista nazw pakietów, rozdzielonych
przecinkami, gdzie przecinek oznacza operator "I". Podawanie
pakietów alternatywnych za pomocą znaku potoku "|" nie
jest obsługiwane. Po każdej nazwie pakietu, opcjonalnie, może
zostać podana wersja - w nawiasach i architektura - w nawiasach
kwadratowych.
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.
Określenie architektury może składać się z jednej lub
więcej nazw architektur, oddzielonych białym znakiem. Przed
każdą nazwą można dodać wykrzyknik, oznaczający
"NIE".
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
- 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.
Proszę wziąć pod uwagę, że pola zdefiniowane przez
użytkownika będą używały globalnej przestrzeni nazw,
co może w przyszłości kolidować z oficjalnie
rozpoznawanymi polami. Aby zapobiec takiej potencjalnej sytuacji, można
poprzedzić takie pola przedrostkiem
Private-, np.
XB-Private-New-Field, co dodatkowo spowoduje, że
dpkg-deb
nie będzie ostrzegał przed nierozpoznanymi polami.
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: http://wiki.debian.org/Teams/Dpkg
Vcs-Browser: http://git.debian.org/?p=dpkg/dpkg.git
Vcs-Git: git://git.debian.org/git/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