SKŁADNIA
controlOPIS
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 <[email protected]>" 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 <[email protected]> # 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 <[email protected]> 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.
TŁUMACZE
Piotr Roszatycki <[email protected]>, 1999Bartosz Feński <[email protected]>, 2004-2005
Robert Luberda <[email protected]>, 2006-2008
Wiktor Wandachowicz <[email protected]>, 2008
Michał Kułach <[email protected]>, 2012