dpkg-source - Verktyg för att manipulera Debiankällkodspaket
(.dsc)
dpkg-source [
flagga...]
åtgärd
dpkg-source packar och packar upp Debiankällkodsarkiv.
Inga av dessa kommandon tillåter att flera flaggor kombineras till ett,
och de tillåter inte att värdet på en flagga anges som
ett separat argument.
-
-x, --extract filename.dsc
[utdatakatalog]
- Extrahera ett källkodspaket (--extract sedan
dpkg 1.17.14). Ett argument som inte är en flagga måste
anges, namnet på debiankällkodsstyrfilen ( .dsc). Ett
valfritt andra argument som inte är en flagga kan anges för
att bestämma vilken katalog källkoden ska packas upp i, det
får inte existera. Om du inte anger någon utdatakatalog
extraheras källkodspaketet till en katalog som heter
källkod- version i den aktuella arbetskatalogen.
dpkg-source läser namnen på de övriga filer som
ingår i källkodspaketet från styrfilen; de antas vara
i samma katalog som .dsc-filen.
Filerna i det extraherade paketet kommer att ha behörighet och
ägare satta till det som kunde förväntas om filerna
och katalogerna bara hade skapats - kataloger och körbara filer
kommer ha 0777 och enkla filer 0666, båda modifierade av
uppackarens umask; om föräldrakatalogen är setgid
kommer de extraherade katalogerna också att vara det, och samtliga
filer och kataloger kommer ärva dess gruppägarskap.
Om källkodspaketet använder ett annat format än
standardformatet (gäller för närvarande alla format
förutom ”1.0”), kommer dess namn att lagras som
debian/source/format så att det används som standard
när källkodspaketet byggs på nytt.
-
-b, --build directory
[formatspecifika-flaggor]
- Bygg ett källkodpaket (--build sedan dpkg
1.17.14). Det första argumentet som inte är en flagga tas
som namn på katalogen som innehåller det debianiserade
källkodsträdet (dvs. med underkatalogen
”debian” och kanske ändringar på
originalfilerna). Beroende på vilket källkodspaketformat som
används för att bygga formatet kan ytterligare parametrar
kanske godtas.
dpkg-source kommer bygga källkodspaketet med det
första format som fungerar från denna lista i denna ordning:
formatet som anges med kommandoradsflaggan --format, formatet som
anges i debian/source/format, ”1.0”.
Standardvärdet ”1.0” rekommenderas ej och kommer att
tas bort en gång i framtiden, du bör alltid dokumentera det
önskade källkodsformatet i debian/source/format. Se
avsnittet FORMAT PÅ KÄLLKODSPAKET för en
utförlig beskrivning av de olika källkodspaketformaten.
-
--print-format katalog
- Visa formatet som skulle användas för att
bygga källkodspaketet om dpkg-source --build katalog
skulle köras (under samma förhållanden och med samma
parametrar; sedan dpkg 1.15.5).
-
--before-build katalog
- Kör motsvarande krok för
källkodspaketformatet (sedan dpkg 1.15.8). Kroken anropas innan
något från paketet byggs ( dpkg-buildpakcage anropar
det väldigt tidigt, till och med före debian/rules
clean). Kommandot är idempotent och kan anropas flera
gånger. Det är inte alla källkodsformat som
implementerar något i den här kroken, och de som gör
det förbereder oftast källkodsträdet för att
byggas, till exempel genom att se till att Debianpatchar har
applicerats.
-
--after-build katalog
- Kör motsvarande krok för
källkodspaketformatet (sedan dpkg 1.15.8). Kroken anropas efter att
allt från paketet byggts ( dpkg-buildpakcage anropar det
sist). Kommandot är idempotent och kan anropas flera gånger.
Det är inte alla källkodsformat som implementerar
något i den här kroken, och de som gör det
använder den normalt för att återställa det
som --before-build har gjort.
-
--commit [katalog] ...
- Spara ändringar i källkodsträdet som
har packats upp i katalog (sedan dpkg 1.16.1). Kommandot kan ta
ytterligare parametrar beroende på källkodsformatet. Ett fel
kommer rapporteras för format där operationen inte har
någon betydelse.
-
-?, --help
- Visar hjälpskärm och avslutar. De
formatspecifika bygg- och extraheringsflaggorna kan visas genom att
använda flaggan --format.
- --version
- Visar version och avslutar.
-
-ccontrol-fil
- Anger huvudkällkodsstyrfil som information ska
läsas från. Standardvärde är
debian/control. Om ett relativt sökvägsnamn anges
tolkas det från källkodsträdets
toppnivåkatalog.
-
-ländringsloggfil
- Anger ändringsloggsfil som information ska
läsas från. Standardvärde är
debian/changelog. Om ett relativt sökvägsnamn anges
tolkas det från källkodsträdets
toppnivåkatalog.
-
-Fändringsloggformat
- Anger format på ändringsloggen. Se
dpkg-parsechangelog(1) för information om alternativa
format.
-
--format=värde
- Använd det givna formatet för att bygga
källkodspaketet (sedan dpkg 1.14.17). Det överstyr ett
eventuellt format som anges i debian/source/format.
-
-Vnamn=värde
- Ställer in en utdatasubstitueringsvariabel. Se
deb-substvars(5) för en beskrivning av
utdatasubstituering.
-
-Tsubstvars-fil
- Läs substitueringsvariabler från
substvarfil; standardvärde är att inte läsa
någon fil. Flaggan kan användas flera gånger
för att läsa substitueringsvariabler från flera filer
(sedan dpkg 1.15.6).
-
-Dfält=värde
- Ersätt eller lägg till ett fält i den
genererade control-filen.
-
-Ufält
- Ta bort ett fält ur den genererade
control-filen.
-
-Zkomprimering,
--compression=komprimering
- Anger vilken komprimering som ska användas
för de skapade tar-bollarna och diff-filerna ( --compression
sedan dpkg 1.15.5). Observera att flaggan inte gör att befintliga
tar-bollar packas om, utan enbart påverkar nya filer. Värden
som stöds är: gzip, bzip2, lzma samt
xz. Förvalet är xz för format 2.0 och
senare, och gzip för format 1.0. Stöd för
xz finns bara från och med dpkg 1.15.5.
-
-znivå,
--compression-level=nivå
- Komprimeringsnivå att använda
(--compression-level sedan dpkg 1.15.5). Som med -Z
påverkas bara filer som nyskapas. Värden som stöds
är: 1 till 9, best (bäst) och
fast (snabb). 9 är förval för gzip och
bzip2, 6 för xz och lzma.
-
-i[reg.uttr],
--diff-ignore[=reg.uttr]
- Du kan ange ett reguljärt uttryck i perlformat
för att matcha filer som du vill ska filtreras ut ur listan
över filer för diffen ( --diff-ignore sedan dpkg
1.15.6). (Listan skapas av ett find-kommando.) (Om källkodspaketet
byggs som ett version 3-paket med ett VCS kan detta användas
för att ignorera ändringar som inte har checkats in
på de angivna filerna. -i.* kommer att ignorera samtliga.)
-i ensamt aktiverar inställningen, med ett
standardvärde (bibehåller modifieringar till
standarduttrycket som gjorts med tidigare användning av
--extend-diff-ignore) som filtrerar ut styrfiler och kataloger
från de flesta vanliga versionshanteringssystem,
säkerhetskopior, växlingsfiler och
Libtool-byggutdatakataloger. Endast ett reguljärt kan vara aktivt,
om du anger flera -i-flaggor är det den sista som
gäller.
Flaggan är mycket användbar för att utesluta extrafiler
som kommer med i diffen, till exempel om du underhåller din
källkod i ett versionshanteringssystem och vill använda en
utcheckning för att bygga ett källkodspaket utan att ta med
de ytterligare filer och det normalt innehåller (t.ex CVS/,
.cvsignore, .svn/). Det förvalda reguljära uttrycket
täcker redan in många av dessa, men om du ändrar det,
kom ihåg att det som standard kan träffa alla delar av
filnamnet. Så, om du träffa bara början av ett
filnamn eller hela filnamn måste du själv lägga till
de förankringar som är nödvändiga (t.ex
”(^|/)”, ”($|/)”).
-
--extend-diff-ignore=reg.uttr
- Det reguljära uttrycket i perlformat som angavs
utökar standardvärdet som används av
--diff-ignore och dess nuvarande värde, om satt (sedan dpkg
1.15.6). Det gör så genom att lägga till ”
| reg.uttr” efter standarduttrycket. Flaggan
är nyttig för debian/source/options för att
exkludera en del automatiskt genererade filer från skapandet av
automatiska patchar.
-
-I[filmönster],
--tar-ignore[=filmönster]
- Om flaggan anges kommer filnamnet att sändas vidare
till tar(1):s --exclude-flagga när det anropas
för att skapa en .orig.tar.gz eller .tar.gz-fil (
--tar-ignore sedan dpkg 1.15.6). Till exempel kommer -ICVS
att hoppa över CVS-kataloger när tar.gz-filen skapas.
Flaggan kan upprepas flera gånger för att lista flera
filnamn som ska uteslutas.
-I ensamt lägger till satandard --exclude-flaggor som
filtrerar ut styrfiler och kataloger från de flesta vanliga
versionshanteringssystem, säkerhetskopior, växlingsfiler och
Libtool-byggutdatakataloger.
Observera: Även om de används till liknande
ändamål, så har
-i och
-I väldigt
olika syntax och semantik.
-i kan endast anges en gång och tar
ett perl-kompatibelt reguljärt uttryck, vilket matchas mot den
kompletta relativa sökvägen för varje fil.
-I kan
anges flera gånger och tar ett filnamnssökmänster med
skaljokertecken. Mönstret matchas mot den kompletta relativa
sökvägen, men även individuellt mot varje komponent i
sökvägen. Den exakta semantiken för tar:s
--exclude-flagga är något komplicerad, se
<
https://www.gnu.org/software/tar/manual/tar.html#wildcards> för
fullständig dokumentation.
Förvalt reguljärt uttryck och sökmönster för
de bägge flaggorna kan ses i utdata för
--help-kommandot.
- --no-copy
- Kopiera inte original-tarbollar i närheten av det
uppackade källkodspaketet (sedan dpkg 1.14.17).
- --no-check
- Kontrollera inte signaturer och kontrollsummor före
uppackning (sedan dpkg 1.14.17).
- --no-overwrite-dir
- Skriv inte över uppackningskatalogen om den redan
finns (sedan dpkg 1.18.8).
- --require-valid-signature
- Vägra packa upp källkodspaketet om det inte
innehåller en OpenPGP-signatur som kan verifieras (sedan dpkg
1.15.0) antingen med användarens trustedkeys.gpg-nyckelring,
en av de säljarspecifka nyckelringarna, eller en av de officiella
Debiannyckelringarna ( /usr/share/keyrings/debian-keyring.gpg,
/usr/share/keyrings/debian-nonupload.gpg och
/usr/share/keyrings/debian-maintainers.gpg).
- --require-strong-checksums
- Vägra packa upp källkodspaketet om det inte
innehåller några starka kontrollsummor (sedan dpkg 1.18.7).
Den enda kända kontrollsumma som anses stark är för
närvarande SHA-256.
- --ignore-bad-version
- Ändrar testet för felaktig
källkodspaketversion till en icke-ödesdiger varning (sedan
dpkg 1.17.7). Flaggan är endast nödvändig vid
uppackning av väldigt gamla källkodspaket med trasiga
versioner, bara för bakåtkompatibilitet.
-
--threads-max=trådar
- Anger det maximala antalet trådar som tillåts
för komprimerare som stöder flertrådad körning
(sedan dpkg 1.21.14).
- -q
- Väljer tyst läge för att dölja
varningar.
Om du inte vet vilket källkodspaketformat du ska använda,
bör du antagligen välja antingen ”3.0 (quilt)”
eller ”3.0 (native)”.
"/wiki.debian.org/Projects/DebSrc3.0" in Se https: för
information om hur dessa format sätts i produktion i Debian.
Ett källkodspaket i detta format består antingen av en
.orig.tar.gz, förbunden med en
.diff.gz, eller en ensam
.tar.gz (i så fall anses paketet vara
eget,
”
native”). Original-tarbollen kan också valfritt
åtföljas av en friliggande uppströmssignatur
.orig.tar.gz.asc, uppackning stöds sedan dpkg 1.18.5.
Uppackning
Att packa upp ett Debianeget paket innebär att packa upp den ensamma
tarbollen i målkatalogen. Att packa upp ett icke-eget paket
innebär att först packa upp
.orig.tar.gz-filen och sedan
genom att tillämpa patchen som finns i
.diff.gz-filen.
Tidsstämplarna för alla patchade filer nollställs till
den tidpunkt då källkodspaketet extraherades (vilket undviker
tidsstämpelförskjutningar som kunde leda till problem när
autogenererade filer patchas). Diffen kan skapa nya filer (hela
debian-katalogen skapas på det sättet), men kan inte ta bort
filer (tomma filer kommer lämnas kvar) och kan inte skapa eller
ändra symboliska länkar.
Bygga
Att bygga ett Debianeget paket innebär bara att skapa en ensam tarboll
med källkodskatalogen. Att bygga ett icke-eget paket innefattar att
extrahera original-tarbollen i en separat ”.orig”-katalog och
skapa
.diff.gz-filen på nytt genom att jämföra
källkodspaketets
katalog med .orig-katalogen.
Byggflaggor (med --build):
Om ett andra argument som inte är en flagga anges ska det vara namnet
på originalkällkodskatalogen eller -tarfilen eller den tomma
strängen om paketet är Debianspecifikt och därför
inte har några debianiserings-diffar. Om inget andra argument anges
kommer
dpkg-source att leta efter originalkällkodstarfilen
paket _uppströmsversion.orig.tar.gz eller
originalkällkodskatalogen
paket.orig beroende på
-sX-flaggorna.
-sa,
-sp,
-sk,
-su och
-sr skriver inte
över befintliga tar-filer och kataloger. Om det önskas
bör
-sA,
-sP,
-sK,
-sU och
-sR anges
i stället.
- -sk
- Anger att den ursprungliga källkoden är en
tar-fil, som standard
paket_uppströmsversion.orig.tar.filändelse.
Den kommer låta originalkällkodsfilen ligga kvar som en
tarfil, eller kopiera den till den aktuella katalogen om den inte redan
är där. Tarbollen kommer att packas upp i
katalog.orig för att generera diffen.
- -sp
- Som -sk, men tar bort katalogen igen
efteråt.
- -su
- Anger att originalkällkoden är en katalog,
som standard
paket-uppströmsversion.orig och att
dpkg-source ska skapa ett nytt originalkällkodsarkiv
från den.
- -sr
- Som -su, men tar bort katalogen när den har
använts.
- -ss
- Anger att originalkällkoden finns både som en
katalog och en tar-fil. Katalogen kommer att användas av
dpkg-source för att skapa diffen, men tarfilen för
att skapa .dsc-filen. Flaggan måste användas med
tillförsikt - om katalogen och tarfilen inte stämmer
överens kommer ett trasigt källkodsarkiv att skapas.
- -sn
- Anger att dpkg-source inte ska leta efter något
källkodsarkiv och att ingen diff ska skapas. Det andra argumentet,
om det anges, måste vara den tomma strängen. Flaggan
används för Debianspecifika paket som inte har en separat
uppströmskällkod och därför inte har
någon debianiseringsdiff.
-
-sa eller -sA
- Anger att originalkällkoden finns som en katalog
eller en tarfil - det andra argumentet, om det anges, kan vara det ena
eller det andra, eller den tomma strängen (motsvarar att
använda -sn). Om en tarfil hittas kommer programmet att
packa upp den för att skapa en diff och ta bort den efteråt
(motsvarar -sp). Om en katalog hittas kommer den att packas
för att skapa originalkällkoden och ta bort den
efteråt (motsvarar -sn). Om båda hittas kommer
dpkg-source att ignorera katalogen, och skriva över den om
-sA angavs (detta motsvarar -sP) eller ge ett felmeddelande
om -sa angavs. -sa är standard.
- --abort-on-upstream-changes
- Processen misslyckas om den genererade diffen
innehåller ändringar av filer utanför underkatalogen
debian (sedan dpkg 1.15.8). Den här flaggan tillåts inte i
debian/source/options, men kan användas i
debian/source/local-options.
Extraheringsflaggor (med --extract):
Oavsett kommer ett befintligt källkodsträd att tas bort.
- -sp
- Används när originalkällkoden som
extraheras (om sådan finns) ska lämnas kvar som en tarfil.
Om den inte redan finns i den aktuella katalogen, eller om en befintlig
men annan fil finns där, kommer den att kopieras dit. ( Detta
är standard.)
- -su
- Packar upp originalkällkodsträdet.
- -sn
- Försäkrar att originalkällkoden varken
kopieras till en aktuella katalogen eller packas upp. Eventuella
originalkällkodsträd som finns i den aktuella katalogen tas
fortfarande bort.
Alla
-sX-flaggor är ömsesidigt uteslutande. Om du
anger mer än en kommer endast den sista att användas.
- --skip-debianization
- Hoppas över att tillämpa debian-diffen
ovanpå uppströmskällkoden (sedan dpkg 1.15.1).
Uppackning stöds sedan dpkg 1.13.9, byggning stöds sedan dpkg
1.14.8. Även känt som wig&pen. Detta format rekommenderas
inte för allmän användning, formatet ”3.0
(quilt)” ersätter det. Wig&pen var den första
specifikationen av en ny generation av källkodspaketformat.
Beteendet för detta format är detsamma som för ”3.0
(quilt)”-formatet, förutom att det inte använder en
explicit förteckning patchar. Alla filer i
debian/patches/ som
motsvarar det Perl-reguljära uttrycket
[\w-]+ måste vara
giltiga patchar: de appliceras när paketet packas upp.
När du bygger ett nytt källkodspaket kommer eventuella
ändringar på uppströmskällkoden att lagras i en
patch som kallas
zz_debian-diff-auto.
Stöds sedan dpkg 1.14.17. Detta format är en utökning av
det egna paketformatet som anges av 1.0-formatet. Det stöder alla
komprimeringsmetoder och kommer att som standard ignorera alla VCS-specifika
filer och kataloger, samt många temporärfiler (se
standardvärdet som är knutet till flaggan
-i i texten
för
--help).
Stöds sedan dpkg 1.14.17. Ett källkodspaket i detta format
innehåller åtminstone en original-tarboll (
.orig.tar.ext, där
ext kan vara
gz,
bz2,
lzma eller
xz) och en Debiantarboll
(
.debian.tar. ext). Den kan även innehålla
ytterligare original-tarbollar (
.orig-komponent.tar.ext).
komponent kan
endast innehålla alfanumeriska (”a-zA-Z0-9”) tecken och
bindestreck (”-”). Varje original-tarboll kan också
valfritt åtföljas av en friliggande uppströmssignatur (
.orig.tar.ext.asc och
.orig-komponent.tar. ext.asc), uppackning
stöds sedan dpkg 1.17.20, byggning stöds sedan dpkg 1.18.5.
Uppackning
Huvud-originaltarbollen packas upp först, därefter packas alla
ytterligare originaltarbollar upp i underkataloger med namn efter
komponent-delen i sitt filnamn (eventuella redan befintliga kataloger
ersätts). Debian-tarbollen packas sedan upp ovanpå
källkodskatalogen efter att en redan befintlig
debian-katalog
har tagits bort först. Observera att debian-tarbollen måste
bestå av en
debian-underkatalog, men att den även kan
innehålla binärfiler utanför den katalogen (se flaggan
--include-binaries).
Alla patchar listade i
debian/patches/återförsäljare
.series eller
debian/patches/series tillämpas sedan,
där
återförsäljare är namnet
på den aktuella återförsäljaren skrivet med
små bokstäver, eller
debian om ingen har angivits. Om den
förstnämnda filen används och den sistnämnda inte
existerar (eller är en symbolisk länk), kommer den senare att
ersättas av en symbolisk länk till den första. Tanken
är att göra det enklare att använda
quilt till att
hantera patchuppsättningen. Återförsäljarspecifika
series-filer är tänkta att göra det möjligt att
serialisera flera utvecklingsgrenar baserade på
återförsäljaren, på ett deklarativt sätt,
istället för att öppet koda den här hanteringen i
debian/rules. Detta är speciellt användbart när
källkoden behöver patchas olika eftersom de rörda filerna
inte stöder inbyggd villkorlig tillämpning. Observera att,
även om
dpkg-source korrekt tolkar series-filer som
använder explicita flaggor till patch-programmet (lagrade på
kommandoraden efter patch-filnamnet och ett eller flera blanksteg), så
ignoreras dessa flaggor och det förväntar sig att patchar kan
tillämpas med flaggan
-p1 till
patch. Det kommer
därför visa en varning sådana flaggor upptäcks,
och bygget kommer troligen att misslyckas.
Oberbera att
lintian(1) kommer skapa ovillkorliga varningar när
återförsäljarserier används på grund av en
kontroversiell Debian-specifik dom, vilket inte bör påverka
extern användning; för att tysta dessa kan dpkg:s lintianprofil
användas genom att ge parametern ”
--profile dpkg”
till
lintian(1).
Tidsstämplarna för alla patchade filer nollställs till den
tidpunkt då källkodspaketet extraherades (vilket undviker
tidsstämpelförskjutningar som kunde leda till problem när
autogenererade filer patchas).
Till skillnad mot
quilt:s originalbeteende förväntas det
att patchar kan appliceras utan någon ”fuzz”. När
så inte är fallet bör du uppdatera patcharna med
hjälp av
quilt, om inte kommer
dpkg-source rapportera ett
felmeddelande när det försöker tillämpa dem.
Patchar kan även ta bort filer, på samma sätt som
quilt normalt fungerar.
Filen
.pc/applied-patchers skapas om patchar tillämpades vid
uppackningen.
Bygga
Alla original-tarbollar som finns i den aktuella katalogen packas upp i en
temporär katalog med samma logik som i uppackningen, debian-katalogen
kopieras över i den temporära katalogen och alla patchar,
förutom den automatiska patchen (
debian-changesversion
eller
debian-changes, beroende på
--single-debian-patch)
tillämpas. Temporärkatalogen jämförs
därefter mot källkodskatalogen. Om diffen inte är tom
misslyckas bygget, såvida inte
--single-debian-patch eller
--auto-commit använts, i vilket fall diffen lagras i den
automatiska patchen. Om den automatiska patchen skapas/tas bort, läggs
den till/tas bort från series-filen och från
quilt-metadata.
Eventuella ändringar på binärfiler kan inte representeras i
en diff och kommer därmed att leda till ett felmeddelande,
såvida inte paketansvariga medvetet väljer att inkludera den
modifierade binärfilen i debian-tarbollen (genom att lista den i
debian/source/include-binaries). Byggningen kommer även att
misslyckas om binärfiler upptäcks i debian-underkatalogen,
såvida de inte har tillåtits i
debian/source/include-binaries.
Den uppdaterade debiankatalogen, och listan över modifierade
binärer, används sedan för att skapa debian-tarbollen.
Den automatiskt genererade diff-filen innehåller inte ändringar
för VCS-specifika filer eller för många temporära
filer (se standardvärdet som är knutet till flaggan
-i i
texten för
--help). Detta gäller speciellt katalogen
.pc som används av
quilt, katalogen kommer att ignoreras
när den automatiska patchen skapas.
Observera: dpkg-source --before-build (och
--build)
ser till att alla patchar som anges i seriefilen tillämpas så
att paketbygget alltid har alla patchar tillämpade. Detta görs
genom att hitta alla icke-tillämpade patchar (som anges i filen
series men inte i
.pc/applied-patches), och om den första
patchen i listan kan tillämpas utan fel kommer samtliga att
tillämpas. Flaggan
--no-preparation kan användas
för att slå av detta beteende.
Lagra ändringar
-
--commit [katalog] [patchnamn]
[patch-fil]
- Skapar en patch som motsvarar de lokala ändringar
som inte hanteras av quilt-patch-systemet och integrerar dem i
patch-systemet under namnet patchnamn. Om namnet saknas kommer
programmet be om ett interaktivt. Om patch-fil anges används
den som patch som motsvarar de lokala ändringar som ska integreras.
När patchen är integrerad startas ett redigeringsprogram
så att du kan ange metainformationen i patchhuvudet.
Det är oftast nyttigt att sända med patchfil efter att
ett bygge där filen skapats i förväg misslyckas, och
att patchfilen därför ska tas bort efter integrering.
Observera även att ändringarna som finns i patchfilen redan
måste ha applicerats på trädet och att filerna som
modifieras av patchen inte får innehålla ytterligare ej
beskrivna ändringar.
Om genereringen av patchar upptäcker ändringar i
binärfiler kommer de automatiskt att läggas in i
debian/source/include-binaries så att de dyker upp i
debian-tarbollen (precis som dpkg-source --include-binaries --build
skulle gjort).
Byggflaggor
-
--allow-version-of-quilt-db=version
- Tillåt dpkg-source att bygga
källkodspaketet om versionen av quilt-metadata är den
som angavs, även om dpkg-source inte känner till den
(sedan dpkg 1.15.5.4). Det betyder att den givna versionen av
quilt-metadata är kompatibel med version 2 som
dpkg-source för närvarande stöder. Versionen
av quilt-metadata lagras i .pc/.version.
- --include-removal
- Ignorera inte borttagna filer och ta med dem i den
automatiskt genererade patchen.
- --include-timestamp
- Ta med tidsstämpel i den automatiskt genererade
patchen.
- --include-binaries
- Lägg till alla modifierade binärer i
debian-tarbollen. Lägg även till dem i
debian/source/include-binaries: de kommer att läggas till
som standard i följande byggen och du behöver inte
längre ange den här flaggan.
- --no-preparation
- Försök inte att förbereda
byggträdet genom att tillämpa patchar som inte verkar ha
tillämpas för närvarande (sedan dpkg 1.14.18).
- --single-debian-patch
- Använd debian/patches/debian-changes
istället för
debian/patches/debian-changes-version som namn på den
automatiska patch som genereras vid bygget (sedan dpkg 1.15.5.4). Denna
flagga är speciellt nyttig när paketet hanteras i ett
versionshanteringssystem och en patch inte kan skapas på ett
pålitligt sätt. Den aktuella diffen mot uppströms
lagras istället i en ensam patch. Flaggan bör anges i
debian/source/local-options och följs av filen
debian/source/local-patch-header som beskricer hur
Debianändringarna bäst kan ses, till exempel i det
versionshanteringssystem som används.
- --create-empty-orig
- Skapa huvud-originaltarbollen som tom automatiskt om den
saknas och om det finns tilläggs-originaltarbollar (sedan dpkg
1.15.6). Flaggan är tänkt att användas när
källkodspaketet bara är en samling av flera
uppströmsprogram och där det inte finns något
”huvud”-program.
- --no-unapply-patches, --unapply-patches
- Som standard kommer dpkg-source att automatiskt ta
bort patchar i kroken --after-build om de applicerades under
--before-build ( --unapply-patches sedan dpkg 1.15.8,
--no-unapply-patches sedan dpkg 1.16.5). De här flaggorna
låter dig överstyra om du vill inaktivera eller aktivera
proceduren för borttagning av patchar. Flaggorna tillåts
endast i debian/source/local-options så att alla genererade
källkodspaket som standard har samma beteende.
- --abort-on-upstream-changes
- Processen misslyckas om en automatisk patch har genererats
(sedan dpkg 1.15.8). Flaggan kan användas för att se till
att alla ändringar har lagrats undan korrekt i separata
quilt-patchar innan källkodspaketet byggts. Flaggan
tillåts inte i debian/source/options, men kan
användas i debian/source/local-options.
- --auto-commit
- Processen misslyckas inte om en automatisk patch har
skapats, den läggs istället direkt in i
quilt-serien.
Extraheringsflaggor
- --skip-debianization
- Hoppar över att packa upp debian-tarbollen
ovanpå uppströmskällkoden (sedan dpkg 1.15.1).
- --skip-patches
- Applicera inte patchar i slutet av uppackningen (sedan dpkg
1.14.18).
Stöds sedan dpkg 1.14.17. Detta formatet är speciellt. Det anger
inte ett riktigt källkodspaketformat, utan kan användas
för att skapa källkodspaket med godtyckliga filer.
Byggflaggor
Alla argument som inte är flaggor tas som filer som ska integreras i det
skapade källkodspaketet. De måste finnas, och helst i aktuell
katalog. Åtminstone en fil måste anges.
-
--target-format=värde
-
Krävs. Anger det riktiga formatet på
det genererade källkodspaketet. Den skapade .dsc-filen kommer
innehålla detta värde i sitt Format-fält och
inte ”3.0 (custom)”.
Stöds sedan dpkg 1.14.17. Formatet är experimentellt.
Ett källkodspaket i detta format består av en ensam bunt
(”bundle”) från ett git-arkiv
.git, vilket
innehåller paketets källkod. Filen
.gitshallow, som
innehåller revisioner för grunda git-kloner, kan även
förekomma.
Uppackning
Bunten klonas som ett git-arkiv till målkatalogen. Om filen gitshallow
finns installeras den som
.git/shallow i det klonade git-arkivet.
Observera att det nya arkivet som standard kommer att ha samma gren utcheckad
som den som var utcheckad i det ursprungliga källkodsträdet.
(Typiskt ”main”, men kan vara vad som helst.) Eventuella andra
grenar kommer också att vara tillgängliga, under
remotes/origin/.
Bygga
Innan uppackningen fortsätter kommer en del tester att utföras
för att se till att vi inte har några ej ignorerade ej
incheckade ändringar.
git-bundle(1) används för att generera en bunt från
git-arkivet. Som standard tas alla grenar och taggar i arkivet med i bunten.
Byggflaggor
-
--git-ref=ref
- Gör det möjligt att ange en git-referens som
ska tas med i bunten. Om den anges överstyr den standardbeteendet
som är att ta med alla grenar och taggar. Kan anges flera
gånger. ref kan vara namnet på en gren eller tagg som
ska tas med. Den kan även vara vilken som helst annan parameter som
kan sändas med till git-rev-list(1). För att, till
exempel, endast ta med grenen ”main”, använd
--git-ref=main. För att ta med alla taggar och grenar,
förutom grenen ”private”, använd
--git-ref=--all --git-ref=^private
-
--git-depth=antal
- Skapar en grund klon med en historik som är avhuggen
vid det angivna antalet revisioner.
Stöds sedan dpkg 1.14.17. Detta format är experimentellt. Det
genererar en ensam tarboll som innehåller bzr-arkivet.
Uppackning
Tarbollen packas upp och bzr används sedan för att hämta ut
den aktuella grenen.
Bygga
Innan uppackningen fortsätter kommer en del tester att utföras
för att se till att vi inte har några ej ignorerade ej
incheckade ändringar.
De VCS-specifika delarna av källkodskatalogen kommer därefter att
kopieras över till en temporär katalog. Innan den
temporära katalogen packas i en tarboll utförs viss
städning för att spara plats.
Filen
debian/source/format bör alltid finnas och ange det
önskade källkodsformatet. För bakåtkompatibilitet
antar formatet ”1.0” om filen inte finns, men du bör inte
förlita dig på detta: vid någon punkt i framtiden kommer
dpkg-source att justeras så att det misslyckas om filen inte
finns.
Resonemanget bakom detta är att formatet ”1.0” inte
längre är det rekommenderade formatet, du bör normalt
välja ett av de nyare formaten (”3.0 (quilt)”,
”3.0 (native)”), men
dpkg-source gör inte detta
automatiskt åt dig. Om du vill fortsätta använda det
gamla formatet bör du ange det explicit genom att skriva
”1.0” i
debian/source/format.
När du använder källkodsformatet ”1.0”
är det oftast inte någon bra idé att modifiera
uppströmsfiler direkt eftersom ändringarna döljs och i
huvudsak är odokumenterade i diff.gz-filen. Du bör
istället spara dina ändringar som patchar i debian-katalogen och
applicera dem när paketet ska byggas. För att undvika den
här komplexiteten kan du även använda formatet
”3.0 (quilt)” som låter dig göra det här
automatiskt.
Ändringar på uppströmsfiler sparas normalt som patchfiler,
men inte alla ändringar kan representeras med patchar: de kan endast
ändra innehållet i vanliga textfiler. Om du
försöker ersätta en fil med något som har en annan
typ (till exempel ersätta en vanlig fil med en symbolisk länk
eller en katalog) får du det här felmeddelandet.
Tomma filer kan inte skapas med patchfiler. Ändringen kommer
därmed inte att sparas i källkodspaketet och du får en
varning om det.
Patchfiler beskriver inte läget på filer och
exekveringsbehörigheter sparas därmed inte i
källkodspaketet. Den här varningen påminner dig om detta.
Patchfiler beskriver inte läget på filer och ändrade
lägen sparas inte i källkodspaketet. Den här varningen
påminner dig om detta.
- DPKG_COLORS
- Väljer färgläge (sedan dpkg 1.18.5).
För närvarande godtas följande värden:
auto (förval), always och never.
- DPKG_NLS
- Om satt, används för att bestämma om
lokalt språkstöd ska aktiveras, även känt som
internationaliseringsstöd (eller i18n) (sedan dpkg 1.19.0).
Tillåtna värden är: 0 och 1
(förval).
- SOURCE_DATE_EPOCH
- Om satt kommer det användas som tidsstämpel
(som sekunder sedan epoken) för att tvinga mtime i
tar(5)-filposterna.
- VISUAL
- EDITOR
- Används av källkodsformatmodulerna
”2.0” och ”3.0 (quilt)”.
- GIT_DIR
- GIT_INDEX_FILE
- GIT_OBJECT_DIRECTORY
- GIT_ALTERNATE_OBJECT_DIRECTORIES
- GIT_WORK_TREE
- Används av källkodsformatmodulen ”3.0
(git)”.
Filen innehåller på en ensam rad det format som ska
användas för att bygga källkodspaketet (möjliga
format beskrivs ovan). Varken ledande eller avslutande blanksteg
tillåts.
Filen innehåller en förteckning med sökvägsnamn
för binärfiler (en per rad) relativt till
källkods-rotkatalogen som ska tas med i debian-tarbollen. Inledande och
avslutande blanksteg tas bort. Rader som börjar med ”
#” är kommentarer och hoppas över. Tomma rader
ignoreras.
Filen innehåller en lista över långa flaggor som
automatiskt sätts in före kommandoradsflaggorna som anges i ett
anrop til
dpkg-source --build eller
dpkg-source --print-format.
Flaggor som
--compression och
--compression-level är
passande att lägga in i den här filen.
Ange varje flagga på en egen rad. Tomma rader och rader som börjar
med ”
#” ignoreras. Inledande ”
--”
ska tas bort och korta flaggor är inte tillåtna. Blanksteg
tillåts runt ”
=”-tecknet och citattecken
tillåts runt värdet. Här är ett exempel på
en sådan fil:
# låt dpkg-source skapa en debian.tar.bz2 med maximal komprimering
compression = "bzip2"
compression-level = 9
# använd debian/patches/debian-changes som en automatisk patch
single-debian-patch
# ignorera ändringar i config.{sub,guess}
extend-diff-ignore = "(^|/)(config.sub|config.guess)$"
B<Observera:> B<format>-flaggor tillåts inte i den här filen, du bör använda filen B<debian/source/format> istället.
Precis som
debian/source/options förutom att filen inte inkluderas
i det genererade källkodspaketet. Det kan vara användbart
för att spara ett val som gäller för paketansvariga eller
VCS-systemet källkodspaketet hanteras i.
Friformstext som läggs in på toppen av den automatiskt genererade
patchen i formaten ”2.0” eller ”3.0 (quilt)”.
local-patch-header tas inte med i det genererade källkodspaketet
medan
patch-header tas med.
Listar alla patchar som måste tillämpas (i den givna ordningen)
ovanpå uppströmskällkodspaketet. Inledande och avslutande
blanksteg tas bort.
återförsäljare är
namnet på aktuell återförsäljare skrivet med
små bokstäver. Om den
återförsäljarspecifika series-filen inte existerar,
kommer den återförsäljarlösa series-filen att
användas istället. Rader som börjar med ”
#” är kommentarer och ignoreras. Tomma rader ignoreras.
De rader som är kvar inleds med filnamnet på en patchfil
(relativt till
debian/patches/-katalogen) upp till det första
blankstegstecknet eller slutet på raden. Valfria flaggor till
quilt kan följa fram till slutet av raden eller det
första ”
#” som följer på ett eller
flera blanksteg (vilket anger början på en kommentar fram till
slutet av raden).
Tidpunkten på fältöverstyrning inträffar
jämfört med inställning av vissa
standardutdatafält är ganska förvirrad.
deb-src-control(5),
deb-changelog(5),
deb-substvars(5),
dsc(5).
Peter Krefting och Daniel Nylander.