dpkg-source(1) narzędzia do zarządzania źródłowymi pakietami Debiana (.dsc)

SKŁADNIA

dpkg-source [opcja...] polecenie

OPIS

dpkg-source tworzy i rozpakowuje źródłowe archiwa (pakiety) Debiana.

Żadne z tych poleceń nie pozwala na łączenie wielu opcji w jedną, nie pozwalają również na podawanie wartości opcji jako oddzielnego parametru.

POLECENIA

-x nazwa-pliku.dsc [katalog-wyjściowy]
Rozpakowanie pakietu źródłowego. Wymagane jest podanie jednego argumentu nie będącego opcją, nazwy pliku kontrolny pakietu źródłowego (.dsc). Ponadto może być podany drugi opcjonalny argument niebędący opcją, określający katalog, do którego pakiet źródłowy ma zostać rozpakowany (katalog ten nie może istnieć). Jeśli nie podano katalogu wyjściowego, pakiet źródłowy jest rozpakowywany do katalogu o nazwie źródło-wersja w ramach bieżącego katalogu roboczego.

dpkg-source odczyta nazwy innych plików tworzących pakiet źródłowy z pliku kontrolnego; zakładane jest, że są one w tym samym katalogu co .dsc.

Pliki w rozpakowanym pakiecie będą mieć uprawnienia i właściciela zgodnie z typowymi, oczekiwanymi wartościami jak przy zwykłym tworzeniu plików i katalogów - katalogi i pliki wykonywalne będą mieć prawa 0777, zaś zwykłe pliki będą mieć prawa 0666 (w obu przypadkach modyfikowane przez umask rozpakowującego). Ponadto jeśli katalog nadrzędny ma ustawiony bit setgid, rozpakowane katalogi także będą go mieć, zaś wszystkie pliki i katalogi przejmą ustawienia grupy katalogu nadrzędnego.

Jeśli pakiet źródłowy używa niestandardowego formatu (aktualnie oznacza to wszystkie formaty poza "1.0"), jego nazwa będzie umieszczona w pliku debian/source/format. Dzięki temu przy następnych budowach pakietu źródłowego będzie domyślnie używany ten sam format.

-b, katalog [parametry-zależne-od-formatu]
Budowanie pakietu źródłowego. Pierwszy argument nie będący opcją przyjmowany jest jako nazwa katalogu zdebianizowanego drzewa ze źródłami (czyli zawierającego podkatalog "debian" i być może zmiany w stosunku do oryginalnych plików). Zależnie od formatu pakietu źródłowego używanego przy budowaniu pakietu, mogą być również akceptowane dodatkowe parametry.

dpkg-source będzie budować pakiet źródłowy z użyciem pierwszego znalezionego formatu z następującej listy, w kolejności: format(y) określony(e) za pomocą opcji --format, format określony w pliku debian/source/format, "1.0". Powrót do "1.0" jest uważany za przestarzały i kiedyś zostanie usunięty, dlatego należy zawsze dokumentować żądany format źródła w pliku debian/source/format. W sekcji FORMATY PAKIETÓW ŹRÓDŁOWYCH można znaleźć wyczerpujący opis różnych formatów pakietów źródłowych.

--print-format katalog
Wyświetla format źródłowy, który będzie użyty do zbudowania pakietu źródłowego, jeśli zostanie wywołane dpkg-source -b katalog (z tymi samymi warunkami i parametrami).

--before-build katalog
Uruchamia odpowiedni zaczep formatu pakietu źródłowego. Zaczep jest wywoływany przed pierwszym zbudowaniem pakietu (dpkg-buildpackage wywołuje go bardzo wcześnie, nawet przed debian/rules clean). Polecenie to jest idempotentne i może być wywołane wielokrotnie. Nie wszystkie formaty źródłowe zaimplementowały coś w tym zaczepie, a te które to zrobiły, wykorzystują je z reguły do przygotowania drzewa źródeł do budowania upewniając się na przykład, że zaaplikowano łatki Debiana.

--after-build katalog
Uruchamia odpowiedni zaczep formatu pakietu źródłowego. Zaczep jest wywoływany po ostatnim zbudowaniu pakietu (dpkg-buildpackage wywołuje go jako ostatni). Polecenie to jest idempotentne i może być wywołane wielokrotnie. Nie wszystkie formaty źródłowe zaimplementowały coś w tym zaczepie, a te które to zrobiły, wykorzystują je z reguły do cofnięcia tego, co zostało wykonane podczas --before-build.

--commit [katalog] ...
Zapisuje zmiany w drzewie źródłowym rozpakowanym w katalogu. Polecenie to może przyjąć argumenty uzupełniające, w zależności od formatu źródeł. Zwróci błąd, w przypadku formatów, w których ta operacja nic nie znaczy.

-?, --help
Wyświetla informację o użytkowaniu i kończy działanie.
--version
Wyświetla informację o wersji i pomyślnie kończy działanie.

OGÓLNE OPCJE BUDOWANIA

-cplik-kontrolny
Określa główny plik kontrolny źródeł, z którego będą czytane informacje. Domyślnie jest to debian/control. Jeśli podano względną ścieżkę, to jest ona interpretowana od najwyższego poziomu katalogu drzewa ze źródłami.
-lplik-dziennika-zmian
Określa dziennik zmian, z którego będą czytane informacje. Domyślnie jest to debian/changelog. Jeśli podano względną ścieżkę, to jest ona interpretowana od najwyższego poziomu katalogu drzewa ze źródłami.
-Fformat-dziennika-zmian
Określa format dziennika zmian. Więcej informacji o alternatywnych formatach można znaleźć w dpkg-parsechangelog(1).
--format=wartość
Do budowy pakietu źródłowego używany jest podany format. Nadpisuje to każdy format podany w pliku debian/source/format.
-Vnazwa=wartość
Ustawia zmienną podstawienia wyjścia. Szczegółowy opis podstawiania zmiennych wyjściowych znajduje się w deb-substvars(5).
-Tplik-zmiennych-podst
Odczytuje zmienne podstawiania z pliku-zmiennych-podst; domyślnie nie czyta żadnego pliku. Opcja może być użyta wielokrotnie, aby odczytać podstawiania z wielu plików.
-Dpole=wartość
Nadpisuje lub dodaje wyjściowe pole pliku kontrolnego.
-Upole
Usuwa wyjściowe pole pliku kontrolnego.
-Zkompresja, --compression=kompresja
Określa rodzaj kompresji używanej podczas tworzenia plików (archiwów tar oraz plików różnic). Uwaga: opcja ta nie spowoduje, że istniejące archiwa tar będą ponownie kompresowane, lecz ma zastosowanie tylko do plików nowo tworzonych. Obsługiwane wartości: gzip, bzip2, lzma i xz. gzip jest wartością domyślną. xz jest obsługiwany od dpkg-dev 1.15.5.
-zpoziom, --compression-level=poziom
Używany poziom kompresowania. Podobnie jak w wypadku -Z, dotyczy tylko nowo tworzonych plików. Obsługiwane wartości: 1 do 9, best oraz fast. 9 jest wartością domyślną w przypadku gzip i bzip2, 6 w przypadku xz i lzma.
-i[wyr-reg], --diff-ignore[=wyr-reg]
Można podać wyrażenie regularne Perla pasujące do listy plików, które mają nie być uwzględniane podczas tworzenia pliku różnic (lista ta jest tworzona poleceniem find). (Jeśli zaś pakiet źródłowy jest budowany w formacie 3.0 z użyciem systemu kontroli wersji, jest ono używane to ignorowania niezatwierdzonych plików. Użycie -i.* pozwala zignorować wszystkie takie plik.) -i podane bez żadnych argumentów włącza tę opcję, domyślnie odfiltrowując pliki kontrolne i katalogi najpopularniejszych systemów kontroli wersji, kopie zapasowe, pliki wymiany oraz katalogi wyjściowe narzędzia libtool. Tylko jedno wyrażenie regularne może być aktywne, jeśli opcję -i podano kilkakrotnie, to tylko ostatnia z nich będzie wzięta pod uwagę.

Jest to bardzo przydatne do wykluczania nieistotnych plików, które zostałyby włączone do pliku różnic (diff). Przykładem może być sytuacja, gdzie kod źródłowy jest zarządzany przez system kontroli wersji i kod pobrany z repozytorium ma być użyty do zbudowania pakietu źródłowego, bez włączania w to dodatkowych plików i katalogów związanych z obsługą repozytorium (np. CVS/, .cvsignore, .svn/). Domyślne wyrażenie regularne jest już całkiem obszerne, ale jeśli istnieje potrzeba zastąpienia go, należy zauważyć że domyślnie może ono pasować do dowolnej części ścieżki - dlatego w celu dopasowania do początku nazwy pliku lub jedynie pełnych nazw plików, konieczne jest samodzielne użycie odpowiednich wyrażeń (np. "(^|/)", czy "($|/)").

--extend-diff-ignore=wyr-reg
Określone wyrażenie regularne perla
-I[wzorzec-pliku], --tar-ignore[=wzorzec-pliku]
Po podaniu tej opcji, wzorzec będzie przekazany jako parametr dla --exclude polecenia tar(1), używanego do stworzenia archiwum .orig.tar lub .tar. Na przykład, -ICVS powoduje, że tar będzie pomijał katalogi CVS przy tworzeniu pliku .tar.gz. Ta opcja może być podana wielokrotnie w celu określenia wielu wzorców wykluczeń.

Samo -I podane bez żadnych argumentów ustawia opcje --exclude, domyślnie odfiltrowując pliki kontrolne i katalogi najpopularniejszych systemów kontroli wersji, kopie zapasowe, pliki wymiany oraz katalogi wyjściowe libtoola.

Uwaga: Mimo, że mają podobne przeznaczenie, opcje -i oraz -I mają całkiem odmienną składnię i semantykę. -i może być podana tylko raz i przyjmuje wyrażenie regularne Perla, które jest dopasowywane do pełnej ścieżki względnej każdego pliku. -I może być podana wielokrotnie i przyjmuje wzorzec nazw plików wraz ze znakami specjalnymi powłoki (wildcards). Wzorzec jest dopasowywany do pełnej ścieżki względnej, ale również indywidualnie do każdej części ścieżki. Pełna semantyka opcji --exclude programu tar jest nieco skomplikowana, proszę sprawdzić http://www.gnu.org/software/tar/manual/tar.html#wildcards w celu uzyskania dokładnych informacji.

Domyślne wyrażenia regularne i wzorce dla obu opcji można znaleźć w wyjściu polecenia --help.

OGÓLNE OPCJE ROZPAKOWYWANIA

--no-copy
Nie kopiuje oryginalnych archiwów obok rozpakowanego pakietu źródłowego.
--no-check
Bez weryfikacji podpisów i sprawdzania sum kontrolnych przed rozpakowaniem.
--require-valid-signature
Powoduje odmowę rozpakowania pakietu źródłowego, jeśli nie zawiera on podpisu OpenPGP, który mógłby być zweryfikowany przez klucze użytkownika z pliku trustedkeys.gpg, jeden z kluczy twórców pakietu, lub jeden z oficjalnych kluczy Debiana (/usr/share/keyrings/debian-keyring.gpg oraz /usr/share/keyrings/debian-maintainers.gpg).

FORMATY PAKIETÓW ŹRÓDŁOWYCH

Jeśli nie wiadomo którego formatu źródeł użyć, powinno się wybrać prawdopodobnie "3.0 (quilt)" lub "3.0" (native)". Więcej informacji o wdrażaniu tych formatów w Debianie można znaleźć na stronie http://wiki.debian.org/Projects/DebSrc3.0.

Format: 1.0

Pakiet źródłowy w tym formacie składa się z pliku .orig.tar.gz powiązanego z plikiem różnic .diff.gz, lub z pojedynczego pliku .tar.gz (w takim przypadku mówi się, że pakiet jest natywny).

Rozpakowywanie

Rozpakowanie pakietu natywnego to proste rozpakowanie pojedynczego pliku archiwum w katalogu docelowym. Rozpakowanie pakietu w stylu Debiana (non-native) odbywa się poprzez najpierw rozpakowanie pliku .orig.tar.gz a następnie nałożenia łatek zawartych w pliku .diff.gz. Czasy modyfikacji wszystkich łatanych plików są ustawiane na wartość odpowiadającą czasowi rozpakowania pakietu źródłowego (zapobiega to przesunięciom czasów, które prowadzą do problemów przy łataniu plików generowanych automatycznie). Plik różnic (diff) może tworzyć nowe pliki (cały katalog "debian" jest tak tworzony), ale nie może usuwać plików (pozostawiane są puste pliki o zerowej długości).

Budowanie

Budowanie pakietu natywnego to proste stworzenie pojedynczego pliku archiwum z katalogu źródeł. Budowanie pakietu w stylu Debiana (non-native) obejmuje rozpakowanie oryginalnego archiwum do oddzielnego katalogu z przyrostkiem ".orig" i regenerację pliku .diff.gz poprzez porównanie katalogu pakietu źródłowego z katalogiem ".orig".

Opcje budowania (z -b):

Buduje pakiet źródłowy. Należy podać jeden lub dwa argumenty, nie będące opcjami. Pierwszym z nich jest nazwa katalogu zawierającego rozpakowane źródła. Jeżeli podano drugi argument, to powinien on być nazwą oryginalnego katalogu ze źródłami lub archiwum tar albo pustym łańcuchem znaków, jeśli pakiet jest specyficzny dla Debiana i nie ma pliku różnic. Jeżeli nie podano drugiego argumentu, to dpkg-source - w zależności od argumentów -sX - będzie szukał albo archiwum tar z oryginalnymi źródłami pakiet_wersja_upstream.orig.tar.rozszerzenie (gdzie rozszerzenie jest jednym z gz,bz2 lub lzma), albo katalogu z oryginalnymi źródłami katalog.orig.

-sa, -sp, -sk, -su oraz -sr nie nadpiszą istniejących archiwów tar lub katalogów. Jeśli jest to wymagane, należy użyć -sA, -sP, -sK, -sU i -sR.

-sk
Określa, że należy spodziewać się oryginalnych źródeł w postaci archiwum tar, domyślnie pakiet_wersja-autora-pakietu.orig.tar.rozszerzenie. Pozostawia oryginalne źródła w tym samym miejscu jako plik tar lub kopiuje je do bieżącego katalogu jeśli jeszcze ich tam nie ma. Archiwum będzie rozpakowane do katalogu.orig w celu utworzenia pliku różnic (diff).
-sp
Jak -sk, ale ponownie usunie katalog po zakończeniu.
-su
Określa, że należy spodziewać się oryginalnych źródeł w postaci katalogu, domyślnie pakiet-wersja-autora-pakietu.orig, na podstawie którego dpkg-source utworzy nowe archiwum oryginalnych źródeł.
-sr
Jak -su, jednakże usunie katalog po jego użyciu.
-ss
Określa, że oryginalne źródła są dostępne zarówno jako katalog oraz jako archiwum tar. dpkg-source będzie utworzy plik różnic na podstawie katalogu, ale użyje pliku tar do utworzenia pliku .dsc. Należy używać tej opcji z rozwagą - jeśli katalog oraz plik tar sobie nie odpowiadają, zostanie wygenerowane niepoprawne archiwum źródłowe.
-sn
Określa aby nie szukać żadnych oryginalnych źródeł, ani nie generować pliku różnic. Jeśli jest podany drugi argument, musi on być pustym ciągiem znaków. Jest to używane dla pakietów specyficznych dla Debiana, które nie mają oddzielnych źródeł i w związku z tym nie mają debianizujących plików różnic (diff).
-sa lub -sA
Określa, że należy szukać oryginalnych źródeł w postaci archiwum tar lub katalogu. Jeśli podano drugi argument może wskazywać on plik lub katalog, albo być pustym ciągiem znaków (co jest równoważne użyciu -sn). Jeśli znaleziony zostanie plik tar, będzie on rozpakowany w celu utworzenia pliku różnic, po czym zostanie on usunięty (co jest równoważne -sp). Jeśli zostanie znaleziony katalog, będzie on spakowany w celu utworzenia archiwum źródłowego, po czym zostanie on usunięty (co jest równoważne -sr).
--abort-on-upstream-changes
Proces zwróci błąd, jeśli wygenerowany plik różnic zawiera zmiany w plikach spoza podkatalogu debian. Opcja ta nie może być użyta w debian/source/options, lecz może być użyta w debian/source/local-options.

Opcje rozpakowywania (z -x):

We wszystkich przypadkach, istniejące oryginalne drzewo ze źródłami będzie usunięte.

-sp
Jeśli zostanie użyta przy wypakowywaniu, wtedy oryginalne źródła (jeśli są) pozostaną w formie archiwum tar. Jeśli archiwum nie ma jeszcze w bieżącym katalogu, lub gdy istnieje ale jest to inny plik, zostanie tam skopiowane. (Jest to zachowanie domyślne).
-su
Rozpakowuje oryginalne drzewo źródeł programu.
-sn
Zapewnia, że oryginalne źródła nie będą kopiowane do bieżącego katalogu ani rozpakowywane. We wszystkich przypadkach, istniejący katalog ze źródłami będzie usunięty z bieżącego katalogu.

Wszystkie spośród opcji -s-X się wzajemnie wykluczają. Jeśli zostanie podana więcej niż jedna, to zostanie użyta ostatnia z nich.

--skip-debianization
Pomija wykorzystanie różnic Debiana (debian diff) do nałożenia łatek na oryginalne źródła.

Format: 2.0

Znany również jako wig&pen. Ten format nie jest zalecany do szerokiego stosowania, zastępuje go format "3.0 (quilt)". Wig&pen był pierwszą specyfikacją nowej generacji formatu pakietów źródłowych.

Zachowanie dla tego formatu jest takie samo jak dla "3.0 (quilt)" z tą różnicą, że nie używa jawnej listy łatek. Wszystkie pliki w katalogu debian/patches/ pasujące do wyrażenia regularnego Perla [\w-]+ muszą być prawidłowymi łatkami: są one nakładane podczas rozpakowywania.

Podczas budowania nowego pakietu źródłowego, wszystkie zmiany w stosunku do kodu źródłowego pochodzącego od autorów programu są zapisywane w łatce o nazwie zz_debian-diff-auto.

Format: 3.0 (native)

Ten format jest rozszerzeniem natywnego formatu pakietów zdefiniowanego w formacie w wersji 1.0. Obsługuje wszystkie metody kompresji i domyślnie ignoruje pliki i katalogi specyficzne dla systemów kontroli wersji, jak również wiele typów plików tymczasowych (proszę sprawdzić opis domyślnej wartości opcji -I w informacjach uzyskiwanych poleceniem --help).

Format: 3.0 (quilt)

Pakiet źródłowy w tym formacie zawiera co najmniej oryginalne archiwum tar (.orig.tar.rozszerzenie, gdzie rozszerzeniem może być gz, bz2, lzma i xz) oraz archiwum debian (.debian.tar.rozszerzenie). Może również zawierać dodatkowe oryginalne archiwa (.orig-komponent.tar.rozszerzenie). komponent może zawierać jedynie znaki alfanumeryczne oraz znaki myślnika ("-").

Rozpakowywanie

Najpierw rozpakowywane jest główne oryginalne archiwum tar, następnie rozpakowywane są dodatkowe oryginalne archiwa tar do podkatalogów nazwanych od części komponent z ich nazwy pliku (istniejące katalogi o takich nazwach są zamieniane). Na końcu rozpakowywane jest archiwum debian, po uprzednim usunięciu katalogu debian (jeśli taki istniał). Należy zauważyć, że archiwum debian musi zawierać podkatalog debian, ale może również zawierać pliki binarne poza tym katalogiem (proszę sprawdzić opcję --include-binaries).

Następnie nakładane są wszystkie łatki wymienione w debian/patches/debian.series lub debian/patches/series. Jeśli jest użyty pierwszy z tych plików a drugi z nich nie istnieje (lub jest łączem symbolicznym), wtedy ten drugi plik jest zastępowany łączem symbolicznym do pierwszego pliku. Ma to uprościć używanie quilt do zarządzania zbiorem łatek. Należy zauważyć, że o ile dpkg-source poprawnie przetwarza pliki series z podanymi jawnie opcjami programu patch (zapisanymi w każdej z linii po nazwie pliku z łatką i jednej lub więcej spacji), to jednak ignoruje te opcje i zawsze oczekuje łatek, które można nałożyć używając opcji -p1 programu patch. Po napotkaniu takich opcji wysyłane jest ostrzeżenie, zaś proces budowania prawdopodobnie się nie powiedzie.

W przeciwieństwie do domyślnego zachowania quilta, oczekuje się, że łatki będą aplikowane bez żadnego przesunięcia. Gdy tak nie jest, należy je odświeżyć za pomocą quilta, bowiem w przeciwnym wypadku dpkg-source zwróci błąd przy próbie aplikowania ich.

Podobnie do domyślnego zachowania quilt, łatki mogą także usuwać pliki.

Jeśli podczas rozpakowywania zostały nałożone jakieś łatki, tworzony jest plik .pc/applied-patches.

Budowanie

Wszystkie oryginalne archiwa znalezione w bieżącym katalogu są rozpakowywane do katalogu tymczasowego w taki sam sposób jak dla unpack, następnie katalog debian jest kopiowany do katalogu tymczasowego i nakładane są wszystkie łatki, z wyłączeniem jedynie łatki automatycznej (debian-changes-wersja lub debian-changes, w zależności od --single-debian-patch). Katalog tymczasowy jest porównywany z katalogiem pakietu źródłowego. Jeśli plik różnic jest niepusty, to budowanie nie powiedzie się, chyba że użyto --single-debian-patch lub --auto-commit, wówczas plik różnic jest przechowywany w automatycznej łatce. Jeśli automatyczna łatka jest tworzona/usuwana, jest ona dodawana/usuwana z pliku series i z metadanych quilta.

Żadne zmiany w jakimkolwiek pliku binarnym nie mogą być odwzorowane w pliku zmian, co doprowadzi do niepowodzenia - chyba, że opiekun pakietu rozmyślnie zdecydował o włączeniu tak zmodyfikowanego pliku binarnego do archiwum debian (wskazując go w debian/source/include-binaries). Proces budowania nie powiedzie się także jeśli zostaną znalezione pliki binarne w podkatalogu debian, chyba że zostały one uprzednio wymienione w debian/source/include-binaries.

Zaktualizowany katalog debian oraz lista zmodyfikowanych plików binarnych są następnie używane do powtórnego wygenerowania archiwum debian.

Automatycznie wygenerowany plik różnic nie zawiera zmian w plikach specyficznych dla systemów kontroli wersji, jak również w wielu typach plików tymczasowych (proszę sprawdzić opis domyślnej wartości opcji -i w informacjach uzyskiwanych poleceniem --help). W szczególności, katalog .pc używany przez quilt jest ignorowany podczas automatycznego generowania łatki.

Uwaga: dpkg-source --before-build (i -b) upewni się, że drzewo ze źródłami będzie mieć nałożone wszystkie łatki określone w pliku series podczas generowania pakietu źródłowego. Czyni to odnajdując niezaaplikowane łatki (są one wypisane w pliku series, lecz nie są w .pc/applied-patches), a jeśli pierwsza łatka z tego zestawu może być zaaplikowana bez błędów, zostaną zaaplikowane wszystkie. Opcja --no-preparation może być użyta, aby wyłączyć to zachowanie.

Zapisywanie zmian

--commit [katalog] [nazwa-łatki] [plik-łatki]
Tworzy łatkę odnoszącą się do zmian lokalnych, które nie są zarządzane przez system łatki quilt i integruje ją w systemie łatek pod nazwą nazwa-łatki. Jeśli nie poda się nazwy, pytanie o nią zostanie zadane interaktywnie. Jeśli poda się plik-łatki, jest on używany jako łatka odnosząca się do lokalnych zmian do zintegrowania. Po zintegrowaniu uruchamiany jest edytor, dzięki czemu może zedytować metainformacje w nagłówku łatki.

Podanie pliku-łatki jest przydatne głównie po nieudanym budowaniu, które pre-wygenerowało ten plik i na tej podstawie podany plik jest usuwany po integracji. Proszę zauważyć, że zmiany zawarte w pliku łatki muszą być już zaaplikowane w drzewie i że pliki zmodyfikowane przez łatkę nie mogą zawierać uzupełniających, niezapisanych zmian.

Jeśli przy generowaniu łatki wykryte zostaną zmodyfikowane pliki binarne, zostaną one automatycznie dodane do debian/source/include-binaries, przez co znajdą się one w archiwum debian (dokładnie jak zrobiłoby dpkg-source --include-binaries -b).

Opcje budowania

--allow-version-of-quilt-db=wersja
Pozwala dpkg-source na zbudowanie pakietu źródłowego, jeśli wersja metadanych quilt jest tą podaną, nawet jeśli dpkg-source nic o niej nie wie. Efektywnie oznacza to, że podana wersja metadanych quilt jest kompatybilna z wersją 2., obsługiwaną obecnie przez dpkg-source. Wersja metadanych quilt jest przechowywana w .pc/.version.
--include-removal
Usunięte pliki nie będą ignorowane, ale będą włączone do automatycznie generowanej łatki.
--include-timestamp
Włączenie czasu modyfikacji w automatycznie generowanej łatce.
--include-binaries
Dodanie wszystkich zmodyfikowanych plików binarnych do archiwum debian. Są one również dodawane do debian/source/include-binaries: dzięki temu będą domyślnie dodawane przy następnych budowach pakietu, zaś ta opcja nie będzie już więcej potrzebna.
--no-preparation
Nie próbuje przygotowywać drzewa budowania poprzez nakładanie łatek, które wyraźnie nie są nałożone.
--single-debian-patch
Używa debian/patches/debian-changes zamiast debian/patches/debian-changes-wersja dla nazwy automatycznej łatki generowanej przy budowaniu. Opcja ta jest szczególnie użyteczna, jeśli pakiet jest zarządzany w VCS, a zestaw łatek nie może być wygenerowana w sposób pewny. Bieżącego plik różnic z wersją projektu macierzystego powinien być w zamian przechowywany w pojedynczej łatce. Opcja powinna być prawdopodobnie umieszczona w debian/source/local-options razem z plikiem debian/source/local-patch-header, wyjaśniającym w jaki sposób najlepiej przejrzeć zmiany Debiana, np. w używanym VCS.
--create-empty-orig
Automatycznie tworzy główne oryginalne archiwum jako puste, jeśli go nie ma, a są dodatkowe archiwa uzupełniające. Opcja ta jest przeznaczona do pakietów źródłowych, będących po prostu zbiorem oprogramowania różnego pochodzenia bez programu "głównego".
--no-unapply-patches, --unapply-patches
Domyślnie, dpkg-source automatycznie cofa łatki z zaczepu --after-build, jeśli zostały one zaaplikowane przy --before-build. Wspomniane opcje pozwalają na wymuszone wyłączenie lub włączenie procesu cofnięć łatek. Opcje są dozwolone jedynie w debian/source/local-options, dzięki czemu wszystkie wygenerowane pakiety źródłowe będą charakteryzować się identycznym zachowaniem.
--abort-on-upstream-changes
Proces zwraca błąd, jeśli wygenerowano automatyczną łatkę. Opcja może być użyta do upewnienia się, że wszystkie zmiany zostały prawidłowo zapisane w osobnych łatkach quilt przed zbudowaniem pakietu źródłowego. Opcji nie można użyć w debian/source/options, można za to w debian/source/local-options.
--auto-commit
Proces nie zwraca błędu, jeśli wygenerowano automatyczną łatkę, w zamian jest ona zapisywana natychmiast jako seria quilt.

Opcje rozpakowywania

--skip-debianization
Pomija rozpakowanie archiwum debian z włączeniem jego zawartości na oryginalne źródła.
--skip-patches
Nie nakłada łatek po skończeniu rozpakowywania.

Format: 3.0 (custom)

Ten format jest szczególny. Nie jest prawdziwym formatem pakietu źródłowego, ale może być użyty do utworzenia pakietu źródłowego zawierającego dowolne pliki.

Opcje budowania

Wszystkie argumenty nie będące opcjami są uważane za pliki, które mają być zintegrowane z generowanym pakietem źródłowym. Pliki te muszą istnieć i najlepiej powinny być w bieżącym katalogu. Musi być podany przynajmniej jeden plik.

--target-format=wartość
Wymagane. Określa prawdziwy format generowanego pakietu źródłowego. Generowany plik .dsc będzie zawierać tą wartość w swoim polu Format zamiast "3.0 (custom)".

Format: 3.0 (git)

Jest to format eksperymentalny.

Pakiet źródłowy w tym formacie składa się z pojedynczej kopii repozytorium git .git, przechowującego źródła pakietu. Może zawierać również plik .gitshallow, wypisujący wersje do płytkiej kopii gita.

Rozpakowywanie

Kopia jest tworzona jako repozytorium git do katalogu docelowego. Jeśli istnieje plik gitshallow, to jest instalowany jako ".git/shallow" wewnątrz sklonowanego repozytorium git.

Proszę zauważyć, że domyślnie nowe repozytorium będzie przełączone na tę samą gałąź co oryginalne źródło (zwykle jest to "master", ale może być również coś innego). Wszystkie inne gałęzie będą dostępne jako "remotes/origin/".

Budowanie

Nie zagłębiając się dalej, wykonywane są pewne testy aby upewnić się, czy nie ma żadnych niezatwierdzonych zmian, które nie są ignorowane.

git-bundle(1) jest używany do utworzenia kopii repozytorium git. Domyślnie dołączane są wszystkie gałęzie i tagi.

Opcje budowania

--git-ref=odniesienie
Pozwala na podanie odniesienia gita do włączenia w kopię gita. Użycie tej opcji, wyłącza domyślne zachowanie dołączenia wszystkich gałęzi i tagów. Można ją podać wielokrotnie. Odniesienie może być nazwą gałęzi lub tagu, który ma być dołączony. Może być ro również dowolny parametr, który można podać do git-rev-list(1) np. aby dołączyć tylko gałąź master, proszę użyć --git-ref=master. Aby dołączyć wszystkie tagi i gałęzie, z wyjątkiem gałęzi private, można skorzystać z -git-ref=--all --git-ref=^private
--git-depth=liczba
Tworzy płytką kopię (ang. shallow clone) z historią ograniczoną do podanej liczby wersji.

Format: 3.0 (bzr)

Ten format jest eksperymentalny. Generuje pojedyncze archiwum zawierające repozytorium bzr.

Rozpakowywanie

Archiwum tar jest rozpakowywane i używany jest bzr aby pobrać aktualną gałąź kodu.

Budowanie

Nie zagłębiając się dalej, wykonywane są pewne testy aby upewnić się, czy nie ma żadnych niezatwierdzonych zmian, które nie są ignorowane.

Następnie część katalogu źródeł specyficzna dla systemu kontroli wersji jest kopiowana do katalogu tymczasowego. Przed tym katalog tymczasowy jest pakowany do archiwum tar i wykonywane są różne czynności porządkowe, aby zaoszczędzić miejsce.

OSTRZEŻENIA I BŁĘDY

w debian/source/format nie podano formatu źródeł,

Plik debian/source/format powinien zawsze istnieć wskazując na żądany format źródeł. Z powodu kompatybilności wstecznej, gdy plik ten nie istnieje, przyjmowany jest format "1.0", lecz nie należy polegać na tym zachowaniu: w przyszłości dpkg-source zostanie zmodyfikowany aby brak pliku kończył się błędem.

Powodem jest to, że format "1.0" nie jest już formatem rekomendowanym; należy z reguły wybrać któregoś z nowszych formatów ("3.0 (quilt)", "3.0 (native)"), lecz dpkg-source nie zrobi tego automatycznie za opiekuna. Aby wciąż używać starego formatu, należy wyrażnie tego zażądać umieszczając "1.0" w debian/source/format.

łatka modyfikuje następujące pliki macierzyste

Jeżeli używa się formatu "1.0" źródeł, to zwykle złym pomysłem jest bezpośrednie modyfikowanie plików macierzystych, jako że na końcu zmiany będą ukryte i w większości nieudokumentowane w pliku .diff.gz. Zamiast tego należy przechowywać swe zmiany jako łatki w katalogu debian i aplikować je w trakcie budowania. Aby zapobiec temu złożonemu procesowi, można również użyć formatu "3.0 (quilt), który oferuje to natywnie.

niereprezentowalna zmiana w pliku

Zmiany w źródłach macierzystych są zwykle przechowywane w postaci łatek, lecz nie wszystkie zmiany mogą być tak reprezentowane: łatki mogą zmieniać zawartość jedynie plików tekstowym. Jeśli próbuje się zastąpić plik czymś innego typu (np. zastąpić czysty plik dowiązaniem symbolicznym lub katalogiem), otrzyma się ten komunikat o błędzie.

nowo utworzony pusty plik plik nie będzie dołączony do pliku łatki

Puste pliki nie mogą być tworzone za pomocą plików łatek. W związku z tym, ta zmiana nie jest przechowywana w pakiecie źródłowym, a to ostrzeżenie o tym przypomina.

prawa dostępu prawo pliku plik nie będą dołączone do pliku łatki

specjalne prawa dostępu prawa pliku plik nie będą dołączone do pliku łatki

Pliki łatek nie przechowują informacji o uprawnieniach plików i w związku z tym, zmodyfikowane uprawnienia nie są przechowywane w pakiecie źródłowym. To ostrzeżenie przypomina o tym fakcie.

FORMATY PLIKÓW

debian/source/format

Plik ten zawiera w pojedynczej linii określenie formatu, który powinien zostać użyty do zbudowania pakietu źródłowego (dostępne formaty opisane są wyżej). Niedozwolone są początkowe i końcowe znaki spacji.

debian/source/include-binaries

Plik ten zawiera listę plików binarnych (po jednym w każdej linii), które powinny być zawarte w archiwum debian. Początkowe i końcowe znaki spacji są usuwane. Linie rozpoczynające się od "#" są traktowane jak komentarze i są pomijane, puste linie są ignorowane.

debian/source/options

Plik zawiera listę długich opcji, które powinny być automatycznie dodawane na początku zestawu opcji wiersza polecenia wywołania dpkg-source -b lub dpkg-source --print-format. Do tego pliku świetnie nadają się opcje takie jak --compression i --compression-level.

Każda opcja powinna być umieszczona w osobnym wierszu. Puste wiersze i wiersze zaczynające się od znaku "#" są ignorowane. Początkowe "--" powinno być usunięte, niedozwolone są opcje któtkie. Wokół symbolu "=" dozwolone są opcjonalne spacje, a wokół wartości dozwolone są opcjonalne cudzysłowy. Oto przykład takiego pliku:


  # let dpkg-source create a debian.tar.bz2 with maximal compression
  compression = "bzip2"
  compression-level = 9
  # use debian/patches/debian-changes as automatic patch
  single-debian-patch
  # ignore changes on config.{sub,guess}
  extend-diff-ignore = "(^|/)(config.sub|config.guess)$"

Uwaga: opcje format nie są akceptowane w tym pliku, należy w zamian używać debian/source/format.

debian/source/local-options

Dokładnie jak debian/source/options z tym wyjątkiem, że plik nie jest dołączany do wygenerowanego pakietu źródłowego. Może być przydatny aby przechować preferencje opiekuna lub repozytorium VCS, gdzie pakiet źródłowy jest zarządzany.

debian/source/local-patch-header

debian/source/patch-header

Tekst w dowolnej postaci, który zostanie umieszczony na górze łatki wygenerowanej automatycznie, w formacie "2.0" lub "3.0 (quilt). local-patch-header nie jest dołączone w generowanym pakiecie źródłowym, natomiast patch-header jest.

debian/patches/series

Plik ten zawiera listę wszystkich łatek, jakie powinny być nałożone (w określonej kolejności) na kod oryginalnego pakietu źródłowego. Początkowe i końcowe znaki spacji są usuwane. Linie rozpoczynające się od "#" są traktowane jak komentarze i są pomijane, puste linie są ignorowane. Pozostałe linie zawierają nazwy plików łatek (względem katalogu debian/patches/), aż do pierwszego napotkanego znaku spacji lub końca linii. Opcjonalne opcje programu quilt następują do końca linii lub pierwszego znaku "#", poprzedzonego co najmniej jedną spacją (co rozpoczyna komentarz ciągnący się aż do końca linii).

BŁĘDY

Punkt, w którym następuje nadpisywanie pól w porównaniu do pewnych standardowych ustawień pól wyjściowych jest dość zagmatwany.

TŁUMACZE

Piotr Roszatycki <[email protected]>, 1999
Bartosz Feński <[email protected]>, 2004-2005
Robert Luberda <[email protected]>, 2006-2008
Wiktor Wandachowicz <[email protected]>, 2008
Michał Kułach <[email protected]>, 2012