dpkg-source(1)

Från Wiki.linux.se -Linux wikipedia på Svenska.
Hoppa till navigering Hoppa till sök

NAMN

dpkg-source – verktyg för hantering av Debians källpaket (.dsc)

SYNOPSIS

dpkg-source [flagga...] kommando

BESKRIVNING

dpkg-source packar och packar upp Debians källarkiv.

Inget av dessa kommandon tillåter att flera flaggor kombineras till en enda flagga, och de tillåter inte heller att värdet för en flagga anges som ett separat argument.

KOMMANDON

-x, --extract filnamn.dsc [utmatningskatalog]

Packa upp ett källpaket. --extract finns sedan dpkg 1.17.14.

Ett argument som inte är en flagga måste anges: namnet på Debians källkontrollfil, .dsc. Ett valfritt andra argument som inte är en flagga kan anges för att välja vilken katalog källpaketet ska packas upp i. Den katalogen får inte redan finnas.

Om ingen utmatningskatalog anges packas källpaketet upp i en katalog med namnet:

källa-version

under den aktuella arbetskatalogen.

dpkg-source läser namnen på de övriga filer som ingår i källpaketet från kontrollfilen. De antas finnas i samma katalog som .dsc-filen.

Filerna i det uppackade paketet får de rättigheter och ägarskap som skulle ha förväntats om filerna och katalogerna helt enkelt hade skapats direkt. Kataloger och körbara filer får läget 0777 och vanliga filer får läget 0666, båda modifierade av uppackarens umask. Om överordnad katalog har setgid satt kommer de uppackade katalogerna också att få det, och alla filer och kataloger ärver gruppägarskapet.

Om källpaketet använder ett icke-standardformat, vilket för närvarande betyder alla format utom ”1.0”, lagras formatets namn i debian/source/format så att efterföljande byggen av källpaketet använder samma format som standard.

-b, --build katalog [formatspecifika-parametrar]

Bygg ett källpaket. --build finns sedan dpkg 1.17.14.

Det första argumentet som inte är en flagga används som namnet på katalogen som innehåller det Debianiserade källträdet, det vill säga en katalog med en underkatalog debian och eventuellt ändringar i originalfilerna. Beroende på vilket källpaketsformat som används kan ytterligare parametrar accepteras.

dpkg-source bygger källpaketet med det första format som hittas i följande ordnade lista:

formatet angivet med kommandoradsflaggan --format
formatet angivet i debian/source/format
1.0

Reservvalet till ”1.0” är föråldrat och kommer att tas bort någon gång i framtiden. Du bör alltid dokumentera önskat källformat i debian/source/format. Se avsnittet ”KÄLLPAKETSFORMAT” för en utförlig beskrivning av de olika källpaketsformaten.

--print-format katalog

Skriv ut det källformat som skulle användas för att bygga källpaketet om följande kommando kördes under samma villkor och med samma parametrar:

dpkg-source --build katalog

Detta finns sedan dpkg 1.15.5.

--before-build katalog

Kör motsvarande krok för källpaketsformatet. Detta finns sedan dpkg 1.15.8.

Denna krok anropas före varje bygge av paketet. dpkg-buildpackage anropar den mycket tidigt, till och med före debian/rules clean.

Kommandot är idempotent och kan köras flera gånger. Alla källformat implementerar inte något i denna krok. De som gör det brukar förbereda källträdet för bygget, till exempel genom att säkerställa att Debianpatcharna är applicerade.

--after-build katalog

Kör motsvarande krok för källpaketsformatet. Detta finns sedan dpkg 1.15.8.

Denna krok anropas efter varje bygge av paketet. dpkg-buildpackage anropar den sist.

Kommandot är idempotent och kan köras flera gånger. Alla källformat implementerar inte något i denna krok. De som gör det brukar använda den för att ångra det som --before-build gjorde.

--commit [katalog] ...

Registrera ändringar i källträdet som packats upp i katalog. Detta finns sedan dpkg 1.16.1.

Kommandot kan ta extra parametrar beroende på källformat. Det ger fel för format där denna åtgärd inte betyder något.

-?, --help

Visa användningsmeddelandet och avsluta. Formatspecifika bygg- och uppackningsflaggor kan visas genom att använda flaggan --format.

--version

Visa versionen och avsluta.

FLAGGOR

Generella byggflaggor

-ckontrollfil

Anger den huvudsakliga källkontrollfilen som information ska läsas från. Standard är debian/control.

Om en relativ sökväg anges tolkas den med början i källträdets toppkatalog.

-ländringsloggfil

Anger ändringsloggfilen som information ska läsas från. Standard är debian/changelog.

Om en relativ sökväg anges tolkas den med början i källträdets toppkatalog.

-Fändringsloggformat

Anger formatet på ändringsloggen. Se dpkg-parsechangelog(1) för information om alternativa format.

--format=värde

Använd det angivna formatet när källpaketet byggs. Detta finns sedan dpkg 1.14.17.

Flaggan åsidosätter alla format som anges i debian/source/format.

-Vnamn=värde

Sätt en utmatningssubstitutionsvariabel. Se deb-substvars(5) för en genomgång av utmatningssubstitution.

-Tsubstvars-fil

Läs substitutionsvariabler från substvars-fil. Standard är att inte läsa någon fil.

Denna flagga kan användas flera gånger för att läsa substitutionsvariabler från flera filer. Detta finns sedan dpkg 1.15.6.

-Dfält=värde

Åsidosätt eller lägg till ett fält i utmatningskontrollfilen.

-Ufält

Ta bort ett fält från utmatningskontrollfilen.

-Zkomprimering, --compression=komprimering

Ange vilken komprimering som ska användas för skapade tararkiv och diff-filer. --compression finns sedan dpkg 1.15.5.

Observera att denna flagga inte gör att befintliga tararkiv komprimeras om. Den påverkar endast nya filer.

Stödda värden är:

gzip
bzip2
lzma
xz

Standard är xz för format 2.0 och nyare, och gzip för format 1.0. xz stöds endast sedan dpkg 1.15.5.

-znivå, --compression-level=nivå

Komprimeringsnivå som ska användas. --compression-level finns sedan dpkg 1.15.5.

Precis som med -Z påverkar detta endast nyskapade filer.

Stödda värden är:

1 till 9
best
fast

Standard är 9 för gzip och bzip2, och 6 för xz och lzma.

-i[regex], --diff-ignore[=regex]

Du kan ange ett Perl-reguljärt uttryck för att matcha filer som ska filtreras bort från listan över filer till diffen. --diff-ignore finns sedan dpkg 1.15.6.

Listan genereras av ett find-kommando. Om källpaketet byggs som ett version 3-källpaket med ett versionshanteringssystem kan detta användas för att ignorera okommitterade ändringar i specifika filer. Att använda -i.* ignorerar alla sådana ändringar.

Flaggan -i ensam aktiverar denna inställning med ett standardreguljärt uttryck. Detta bevarar eventuella ändringar av standarduttrycket som gjorts med tidigare användning av --extend-diff-ignore.

Standarduttrycket filtrerar bort kontrollfiler och kataloger för de vanligaste versionshanteringssystemen, säkerhetskopior, swapfiler och Libtool-byggutmatningskataloger.

Det kan bara finnas ett aktivt reguljärt uttryck. Om flera -i-flaggor anges är det bara den sista som gäller.

Detta är mycket användbart för att ta bort ovidkommande filer som annars hamnar i diffen, till exempel om du underhåller källkoden i ett versionshanteringssystem och vill använda en utcheckning för att bygga ett källpaket utan att inkludera extra filer och kataloger som normalt finns där, till exempel:

CVS/
.cvsignore
.svn/

Standarduttrycket är redan mycket omfattande, men om du behöver ersätta det bör du notera att det som standard kan matcha vilken del som helst av en sökväg. Om du vill matcha början av ett filnamn eller endast hela filnamn måste du själv ange nödvändiga ankare, till exempel:

(^|/)
($|/)

--extend-diff-ignore=regex

Det angivna Perl-reguljära uttrycket utökar standardvärdet som används av --diff-ignore och dess nuvarande värde, om något är satt. Detta finns sedan dpkg 1.15.6.

Det görs genom att sammanfoga:

|regex

med det befintliga värdet.

Denna flagga är praktisk att använda i debian/source/options för att utesluta vissa automatiskt genererade filer från den automatiska patchgenereringen.

-I[filmönster], --tar-ignore[=filmönster]

Om denna flagga anges skickas mönstret till tar(1)s flagga --exclude när tar anropas för att skapa en .orig.tar- eller .tar-fil. --tar-ignore finns sedan dpkg 1.15.6.

Exempel:

-ICVS

gör att tar hoppar över CVS-kataloger när en .tar.gz-fil skapas.

Flaggan kan upprepas flera gånger för att lista flera mönster som ska uteslutas.

-I ensam lägger till standardflaggor för --exclude som filtrerar bort kontrollfiler och kataloger för de vanligaste versionshanteringssystemen, säkerhetskopior, swapfiler och Libtool-byggutmatningskataloger.

Observera: Även om -i och -I har liknande syften har de mycket olika syntax och semantik.

-i kan bara anges en gång och tar ett Perl-kompatibelt reguljärt uttryck som matchas mot hela den relativa sökvägen för varje fil.

-I kan anges flera gånger och tar ett filnamnsmönster med skaljokertecken. Mönstret tillämpas på hela den relativa sökvägen men också på varje enskild del av sökvägen.

Den exakta semantiken för tars flagga --exclude är ganska komplicerad. Se GNU tar-dokumentationen om jokertecken för fullständig dokumentation:

https://www.gnu.org/software/tar/manual/tar.html#wildcards

Standarduttrycket och standardmönstren för båda flaggorna kan ses i utmatningen från kommandot --help.

Generella uppackningsflaggor

--no-copy

Kopiera inte originaltararkiv nära det uppackade källpaketet. Detta finns sedan dpkg 1.14.17.

--no-check

Kontrollera inte signaturer och kontrollsummor före uppackning. Detta finns sedan dpkg 1.14.17.

--no-overwrite-dir

Skriv inte över uppackningskatalogen om den redan finns. Detta finns sedan dpkg 1.18.8.

--no-vendor-certs

Använd inte leverantörsspecifika certifikatnyckelringar.

Stöds sedan dpkg 1.23.0.

--signer-certs=nyckelring

Använd denna nyckelring som innehåller signerarcertifikat vid signaturverifiering av källpaket.

Flaggan kan upprepas flera gånger för att lägga till flera nyckelringar.

Stöds sedan dpkg 1.23.0.

--require-valid-signature

Vägra packa upp källpaketet om det inte innehåller en OpenPGP-signatur som kan verifieras. Detta finns sedan dpkg 1.15.0.

Verifieringen görs antingen med de användarangivna nyckelringarna från --signer-certs eller med någon av de leverantörsspecifika nyckelringarna, inklusive eventuella överordnade leverantörsnyckelringar när detta är relevant.

--require-strong-checksums

Vägra packa upp källpaketet om det inte innehåller några starka kontrollsummor. Detta finns sedan dpkg 1.18.7.

För närvarande är den enda kända kontrollsumman som betraktas som stark:

SHA-256

--ignore-bad-version

Gör kontrollen av dålig källpaketsversion till en icke-fatal varning. Detta finns sedan dpkg 1.17.7.

Denna flagga bör bara behövas när mycket gamla källpaket med trasiga versioner packas upp, enbart för bakåtkompatibilitet.

Generella allmänna flaggor

--threads-max=trådar

Sätter det högsta antalet trådar som tillåts för komprimerare som stöder flertrådade operationer. Detta finns sedan dpkg 1.21.14.

-q

Aktiverar tyst läge för att undertrycka varningar.

KÄLLPAKETSFORMAT

Om du inte vet vilket källformat du ska använda bör du troligen välja antingen:

3.0 (quilt)
3.0 (native)

Se följande sida för information om införandet av dessa format i Debian:

https://wiki.debian.org/Projects/DebSrc3.0

Format: 1.0

Ett källpaket i detta format består antingen av ett .orig.tar.gz tillsammans med ett .diff.gz, eller av en enda .tar.gz.

I det senare fallet sägs paketet vara native, det vill säga Debian-specifikt utan separat uppströmskällkod.

Valfritt kan originaltararkivet åtföljas av en fristående uppströmssignatur:

.orig.tar.gz.asc

Uppackning av sådana signaturer stöds sedan dpkg 1.18.5.

Observera: Hos vissa leverantörer har dpkg ändrats så att native-källor med icke-native-versioner tillåts. Detta gör begreppet osammanhängande och ökar förvirringen, och tenderar dessutom att bli en fälla för oavsiktliga misstag.

Uppackning

Att packa upp ett native-paket är en enkel uppackning av det enda tararkivet i målkatalogen.

Att packa upp ett icke-native-paket görs genom att först packa upp .orig.tar.gz och därefter applicera patchen som finns i .diff.gz.

Tidsstämpeln för alla patchade filer återställs till tiden då källpaketet packades upp. Detta undviker tidsstämpelskevheter som kan orsaka problem när automatiskt genererade filer patchas.

Diffen kan skapa nya filer. Hela debian-katalogen skapas på detta sätt. Diffen kan däremot inte ta bort filer, vilket gör att tomma filer blir kvar, och den kan inte skapa eller ändra symboliska länkar.

Byggning

Att bygga ett native-paket innebär bara att skapa ett enda tararkiv med källkatalogen.

Att bygga ett icke-native-paket innebär att originaltararkivet packas upp i en separat .orig-katalog och att .diff.gz skapas på nytt genom att jämföra källpaketets katalog med .orig-katalogen.

Byggflaggor med --build

Om ett andra argument som inte är en flagga anges bör det vara namnet på originalkällkatalogen, originaltarfilen eller den tomma strängen om paketet är Debian-specifikt och därför inte har några Debianiseringsdiffar.

Om inget andra argument anges söker dpkg-source efter originalkällans tarfil:

paket_uppströmsversion.orig.tar.gz

eller efter originalkällkatalogen:

katalog.orig

beroende på argumenten -sX.

-sa, -sp, -sk, -su och -sr skriver inte över befintliga tarfiler eller kataloger. Om detta önskas ska -sA, -sP, -sK, -sU och -sR användas i stället.

-sk

Anger att originalkällan förväntas vara en tarfil, som standard:

paket_uppströmsversion.orig.tar.filändelse

Den lämnar originalkällan på plats som tarfil, eller kopierar den till den aktuella katalogen om den inte redan finns där. Tararkivet packas upp i:

katalog.orig

för att diffen ska kunna skapas.

-sp

Som -sk, men katalogen tas bort igen efteråt.

-su

Anger att originalkällan förväntas vara en katalog, som standard:

paket-uppströmsversion.orig

dpkg-source skapar ett nytt originalkällarkiv från den.

-sr

Som -su, men katalogen tas bort efter att den har använts.

-ss

Anger att originalkällan finns både som katalog och som tarfil. dpkg-source använder katalogen för att skapa diffen men tarfilen för att skapa .dsc.

Denna flagga måste användas med försiktighet. Om katalogen och tarfilen inte stämmer överens skapas ett dåligt källarkiv.

-sn

Anger att ingen originalkälla ska letas efter och att ingen diff ska genereras. Det andra argumentet, om det anges, måste vara den tomma strängen.

Detta används för Debian-specifika paket som inte har någon separat uppströmskälla och därför inte har några Debianiseringsdiffar.

-sa eller -sA

Anger att originalkällarkivet ska sökas som tarfil eller som katalog. Det andra argumentet, om något anges, kan vara endera av dessa eller den tomma strängen. Detta motsvarar att använda -sn.

Om en tarfil hittas packas den upp för att skapa diffen och tas bort efteråt. Detta motsvarar -sp.

Om en katalog hittas packas den för att skapa originalkällan och tas bort efteråt. Detta motsvarar -sr.

Om ingetdera hittas antas paketet sakna Debianiseringsdiffar och endast bestå av ett enkelt källarkiv. Detta motsvarar -sn.

Om både katalog och tarfil hittas ignorerar dpkg-source katalogen och skriver över den om -sA angavs. Detta motsvarar -sP. Om -sa angavs ges i stället ett fel.

-sa är standard.

--abort-on-upstream-changes

Processen misslyckas om den genererade diffen innehåller ändringar i filer utanför underkatalogen debian. Detta finns sedan dpkg 1.15.8.

Denna flagga är inte tillåten i debian/source/options men kan användas i debian/source/local-options.

Uppackningsflaggor med --extract

I alla fall tas eventuellt befintligt originalkällträd bort.

-sp

När uppackning sker lämnas originalkällan, om sådan finns, som tarfil. Om den inte redan finns i den aktuella katalogen, eller om en befintlig men annorlunda fil finns där, kopieras den dit.

Detta är standard.

-su

Packa upp originalkällträdet.

-sn

Säkerställ att originalkällan varken kopieras till den aktuella katalogen eller packas upp. Eventuellt originalkällträd som fanns i den aktuella katalogen tas ändå bort.

Alla -sX-flaggor är ömsesidigt uteslutande. Om fler än en anges används endast den sista.

--skip-debianization

Hoppa över applicering av Debian-diffen ovanpå uppströmskällorna. Detta finns sedan dpkg 1.15.1.

Format: 2.0

Uppackning stöds sedan dpkg 1.13.9 och byggning stöds sedan dpkg 1.14.8.

Formatet är också känt som wig&pen. Det rekommenderas inte för bred användning. Formatet 3.0 (quilt) ersätter det.

Wig&pen var den första specifikationen för en ny generation källpaketsformat.

Beteendet för detta format är detsamma som för formatet 3.0 (quilt), förutom att det inte använder en uttrycklig lista över patchar.

Alla filer i:

debian/patches/

som matchar det Perl-reguljära uttrycket:

[\w-]+

måste vara giltiga patchar. De appliceras vid uppackning.

När ett nytt källpaket byggs lagras varje ändring av uppströmskällan i en patch med namnet:

zz_debian-diff-auto

Format: 3.0 (native)

Stöds sedan dpkg 1.14.17.

Detta format är en utökning av native-paketformatet enligt definitionen i format 1.0. Det stöder alla komprimeringsmetoder och ignorerar som standard alla filer och kataloger som hör till versionshanteringssystem, samt många temporära filer. Se standardvärdet som hör till flaggan -I i utmatningen från --help.

Observera: Hos vissa leverantörer har dpkg ändrats så att native-källor med icke-native-versioner tillåts. Detta gör begreppet osammanhängande och ökar förvirringen, och tenderar dessutom att bli en fälla för oavsiktliga misstag.

Format: 3.0 (quilt)

Stöds sedan dpkg 1.14.17.

Ett källpaket i detta format innehåller minst ett originaltararkiv:

.orig.tar.ext

där ext kan vara:

gz
bz2
lzma
xz

samt ett Debiantararkiv:

.debian.tar.ext

Det kan också innehålla ytterligare originaltararkiv:

.orig-addon.tar.ext

addon får bara innehålla alfanumeriska tecken, det vill säga a-zA-Z0-9, och bindestreck, -.

Valfritt kan varje originaltararkiv åtföljas av en fristående uppströmssignatur:

.orig.tar.ext.asc
.orig-addon.tar.ext.asc

Uppackning av sådana signaturer stöds sedan dpkg 1.17.20 och byggning sedan dpkg 1.18.5.

Uppackning

Det huvudsakliga originaltararkivet packas upp först. Därefter packas alla ytterligare originaltararkiv upp i underkataloger med namn efter addon-delen av deras filnamn. Eventuell befintlig katalog ersätts.

Debiantararkivet packas sedan upp ovanpå källkatalogen efter att eventuell befintlig debian-katalog först har tagits bort.

Observera att Debiantararkivet måste innehålla en underkatalog debian, men det kan också innehålla binära filer utanför denna katalog. Se flaggan --include-binaries.

Alla patchar som listas i:

debian/patches/vendor.series

eller:

debian/patches/series

appliceras sedan. Här är vendor namnet på aktuell leverantör med små bokstäver, eller debian om ingen leverantör är definierad.

Om den förstnämnda filen används och den senare inte finns, eller är en symbolisk länk, ersätts den senare med en symbolisk länk till den förstnämnda. Detta är avsett att förenkla användningen av quilt för att hantera patchuppsättningen.

Leverantörsspecifika series-filer är avsedda att göra det möjligt att serialisera flera utvecklingsgrenar baserat på leverantör, på ett deklarativt sätt, i stället för att hårdkoda denna hantering i debian/rules.

Detta är särskilt användbart när källan behöver patchas villkorligt eftersom de berörda filerna inte har inbyggt stöd för villkorlig uteslutning.

Observera dock att dpkg-source visserligen tolkar series-filer korrekt när de innehåller uttryckliga flaggor för patchapplicering, lagrade på varje rad efter patchfilnamnet och ett eller flera mellanslag, men ignorerar dessa flaggor och förväntar sig alltid patchar som kan appliceras med flaggan -p1 till patch.

Därför skrivs en varning ut när sådana flaggor påträffas, och bygget kommer sannolikt att misslyckas.

Observera att lintian(1) kommer att skriva ovillkorliga varningar när leverantörsserier används på grund av ett kontroversiellt Debian-specifikt beslut. Detta bör inte påverka extern användning. För att tysta dessa varningar kan dpkg:s lintian-profil användas genom att skicka följande till lintian(1):

--profile dpkg

Tidsstämpeln för alla patchade filer återställs till tiden då källpaketet packades upp. Detta undviker tidsstämpelskevheter som kan orsaka problem när automatiskt genererade filer patchas.

Till skillnad från quilts standardbeteende förväntas patchar appliceras utan någon fuzz. Om så inte är fallet bör sådana patchar uppdateras med quilt, annars ger dpkg-source fel när den försöker applicera dem.

På samma sätt som quilts standardbeteende kan patcharna också ta bort filer.

Filen:

.pc/applied-patches

skapas om några patchar har applicerats vid uppackningen.

Byggning

Alla originaltararkiv som hittas i den aktuella katalogen packas upp i en temporär katalog enligt samma logik som vid uppackning. Katalogen debian kopieras över till den temporära katalogen, och alla patchar utom den automatiska patchen appliceras.

Den automatiska patchen heter antingen:

debian-changes-version

eller:

debian-changes

beroende på --single-debian-patch.

Den temporära katalogen jämförs med källpaketets katalog. Om diffen inte är tom misslyckas bygget om inte --single-debian-patch eller --auto-commit har använts. I så fall lagras diffen i den automatiska patchen.

Om den automatiska patchen skapas eller tas bort läggs den till i, eller tas bort från, series-filen och från quilts metadata.

Alla ändringar i binära filer kan inte representeras i en diff och leder därför till fel, om inte paketunderhållaren medvetet har valt att inkludera den ändrade binära filen i Debiantararkivet genom att lista den i:

debian/source/include-binaries

Bygget misslyckas också om binära filer hittas i underkatalogen debian, om de inte har tillåtits via:

debian/source/include-binaries

Den uppdaterade debian-katalogen och listan över ändrade binärfiler används sedan för att skapa Debiantararkivet.

Den automatiskt genererade diffen inkluderar inte ändringar i filer som hör till versionshanteringssystem och inte heller många temporära filer. Se standardvärdet som hör till flaggan -i i utmatningen från --help.

Särskilt ignoreras katalogen:

.pc

som används av quilt när den automatiska patchen genereras.

Observera: dpkg-source --before-build och --build ser till att alla patchar som listas i series-filen är applicerade, så att ett paketbygge alltid har alla patchar applicerade.

Detta görs genom att leta efter oapplicerade patchar, det vill säga patchar som listas i series men inte i .pc/applied-patches. Om den första patchen i denna uppsättning kan appliceras utan fel appliceras alla.

Flaggan --no-preparation kan användas för att inaktivera detta beteende.

Registrera ändringar

--commit [katalog] [patchnamn] [patchfil]

Genererar en patch som motsvarar de lokala ändringar som inte hanteras av quilt-patchsystemet och integrerar den i patchsystemet under namnet patchnamn.

Om namnet saknas efterfrågas det interaktivt.

Om patchfil anges används den som patchen för de lokala ändringar som ska integreras. När patchen har integrerats startas en editor så att du kan redigera metainformationen i patchhuvudet.

Den första editor som hittas används, i denna ordning:

sensible-editor
$VISUAL
$EDITOR
vi

Att skicka patchfil är främst användbart efter ett byggfel som förgenererade denna fil. Av den anledningen tas den angivna filen bort efter integration.

Observera också att ändringarna i patchfilen redan måste vara applicerade på trädet och att filerna som ändras av patchen inte får ha ytterligare oregistrerade ändringar.

Om patchgenereringen upptäcker ändrade binära filer läggs de automatiskt till i:

debian/source/include-binaries

så att de hamnar i Debiantararkivet, precis som om följande kommando hade använts:

dpkg-source --include-binaries --build

Byggflaggor

--allow-version-of-quilt-db=version

Tillåt dpkg-source att bygga källpaketet om versionen av quilt-metadata är den angivna versionen, även om dpkg-source inte känner till den. Detta finns sedan dpkg 1.15.5.4.

I praktiken innebär detta att den angivna versionen av quilt-metadata anses 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, utan inkludera dem i den automatiskt genererade patchen.

--include-timestamp

Inkludera tidsstämpel i den automatiskt genererade patchen.

--include-binaries

Lägg till alla ändrade binärfiler i Debiantararkivet.

Lägg också till dem i:

debian/source/include-binaries

De kommer då att läggas till som standard i efterföljande byggen, och denna flagga behövs därför inte längre.

--no-preparation

Försök inte förbereda byggträdet genom att applicera patchar som verkar vara oapplicerade. Detta finns sedan dpkg 1.14.18.

--single-debian-patch

Använd:

debian/patches/debian-changes

i stället för:

debian/patches/debian-changes-version

som namn på den automatiska patch som genereras under bygget. Detta finns sedan dpkg 1.15.5.4.

Denna flagga är särskilt användbar när paketet underhålls i ett versionshanteringssystem och en patchuppsättning inte kan genereras pålitligt. I stället bör den aktuella diffen mot uppströms lagras i en enda patch.

Flaggan bör placeras i:

debian/source/local-options

och åtföljas av en fil:

debian/source/local-patch-header

som förklarar hur Debianändringarna bäst kan granskas, exempelvis i det versionshanteringssystem som används.

--create-empty-orig

Skapa automatiskt det huvudsakliga originaltararkivet som tomt om det saknas och om det finns kompletterande originaltararkiv. Detta finns sedan dpkg 1.15.6.

Denna flagga är avsedd att användas när källpaketet bara är ett paket av flera uppströmsprogram och det inte finns någon ”huvudprogramvara”.

--no-unapply-patches, --unapply-patches

Som standard kommer dpkg-source automatiskt att avapplicera patcharna i kroken --after-build om den applicerade dem under --before-build.

--unapply-patches finns sedan dpkg 1.15.8 och --no-unapply-patches sedan dpkg 1.16.5.

Dessa flaggor låter dig tvinga av eller på processen för att avapplicera patchar.

Flaggorna är bara tillåtna i:

debian/source/local-options

så att alla genererade källpaket har samma beteende som standard.

--abort-on-upstream-changes

Processen misslyckas om en automatisk patch har genererats. Detta finns sedan dpkg 1.15.8.

Denna flagga kan användas för att säkerställa att alla ändringar har registrerats korrekt i separata quilt-patchar innan källpaketet byggs.

Denna flagga är inte tillåten i:

debian/source/options

men kan användas i:

debian/source/local-options

--auto-commit

Processen misslyckas inte om en automatisk patch har genererats. I stället registreras den omedelbart i quilt-serien.

Uppackningsflaggor

--skip-debianization

Hoppa över uppackning av Debiantararkivet ovanpå uppströmskällorna. Detta finns sedan dpkg 1.15.1.

--skip-patches

Applicera inte patchar i slutet av uppackningen. Detta finns sedan dpkg 1.14.18.

Format: 3.0 (custom)

Stöds sedan dpkg 1.14.17.

Detta format är speciellt. Det representerar inte ett verkligt källpaketsformat men kan användas för att skapa källpaket med godtyckliga filer.

Byggflaggor

Alla argument som inte är flaggor betraktas som filer som ska integreras i det genererade källpaketet. De måste finnas och bör helst ligga i den aktuella katalogen.

Minst en fil måste anges.

--target-format=värde

Obligatoriskt.

Definierar det verkliga formatet för det genererade källpaketet. Den genererade .dsc-filen innehåller detta värde i fältet Format och inte ”3.0 (custom)”.

Format: 3.0 (git)

Stöds sedan dpkg 1.14.17. Detta format är experimentellt.

Ett källpaket i detta format består av en enda bunt av ett git-arkiv, .git, som innehåller paketets källkod.

Det kan också finnas en .gitshallow-fil som listar revisioner för en grund git-klon.

Uppackning

Bunten klonas som ett git-arkiv till målkatalogen. Om det finns en gitshallow-fil installeras den som:

.git/shallow

inne i det klonade git-arkivet.

Observera att det nya arkivet som standard har samma gren utcheckad som var utcheckad i den ursprungliga källan. Det är vanligtvis main, men kan vara vad som helst.

Alla andra grenar finns tillgängliga under:

remotes/origin/

Byggning

Innan något mer görs kontrolleras att det inte finns några icke-ignorerade okommitterade ändringar.

git-bundle(1) används för att skapa en bunt av git-arkivet. Som standard inkluderas alla grenar och taggar i arkivet i bunten.

Byggflaggor

--git-ref=ref

Gör det möjligt att ange en git-referens som ska inkluderas i git-bunten.

Att använda denna flagga inaktiverar standardbeteendet att inkludera alla grenar och taggar. Flaggan kan anges flera gånger.

ref kan vara namnet på en gren eller tagg som ska inkluderas. Det kan också vara vilken parameter som helst som kan skickas till git-rev-list(1).

Exempel: för att endast inkludera huvudgrenen:

--git-ref=main

För att inkludera alla taggar och grenar utom den privata grenen:

--git-ref=--all --git-ref=^private

--git-depth=antal

Skapar en grund klon med historiken kapad till angivet antal revisioner.

Format: 3.0 (bzr)

Stöds sedan dpkg 1.14.17. Detta format är experimentellt.

Det genererar ett enda tararkiv som innehåller bzr-arkivet.

Uppackning

Tararkivet packas upp och därefter används bzr för att checka ut den aktuella grenen.

Byggning

Innan något mer görs kontrolleras att det inte finns några icke-ignorerade okommitterade ändringar.

Därefter kopieras den VCS-specifika delen av källkatalogen till en temporär katalog. Innan denna temporära katalog packas till ett tararkiv utförs olika upprensningar för att spara utrymme.

DIAGNOSTIK

no source format specified in debian/source/format

Filen:

debian/source/format

bör alltid finnas och ange önskat källformat.

Av bakåtkompatibilitetsskäl antas formatet ”1.0” när filen inte finns, men du bör inte förlita dig på detta. Någon gång i framtiden kommer dpkg-source att ändras så att det misslyckas när denna fil saknas.

Skälet är att formatet ”1.0” inte längre är det rekommenderade formatet. Du bör vanligtvis välja något 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 uttryckligen ange det genom att lägga följande i debian/source/format:

1.0

the diff modifies the following upstream files

När källformatet ”1.0” används är det vanligtvis en dålig idé att ändra uppströmsfiler direkt, eftersom ändringarna hamnar dolt och till största delen odokumenterat i .diff.gz-filen.

I stället bör du lagra ändringarna som patchar i debian-katalogen och applicera dem vid byggtid.

För att undvika denna komplexitet kan du också använda formatet 3.0 (quilt), som erbjuder detta inbyggt.

cannot represent change to fil

Ändringar i uppströmskällor lagras vanligtvis med patchfiler, men alla ändringar kan inte representeras med patchar. Patchar kan bara ändra innehållet i vanliga textfiler.

Om du försöker ersätta en fil med något av en annan typ, till exempel ersätta en vanlig fil med en symbolisk länk eller en katalog, får du detta felmeddelande.

newly created empty file fil will not be represented in diff

Tomma filer kan inte skapas med patchfiler. Därför registreras inte denna ändring i källpaketet, och du varnas om det.

executable mode rättigheter of fil will not be represented in diff

Patchfiler registrerar inte filrättigheter. Därför lagras inte körbara rättigheter i källpaketet. Denna varning påminner dig om detta.

special mode rättigheter of fil will not be represented in diff

Patchfiler registrerar inte filrättigheter. Därför lagras inte ändrade rättigheter i källpaketet. Denna varning påminner dig om detta.

MILJÖ

DPKG_COLORS

Sätter färgläget. Detta finns sedan dpkg 1.18.5.

De för närvarande accepterade värdena är:

auto
always
never

Standard är auto.

DPKG_NLS

Om denna är satt används den för att avgöra om Native Language Support, även kallat internationaliseringsstöd eller i18n-stöd, ska aktiveras. Detta finns sedan dpkg 1.19.0.

Accepterade värden är:

0
1

Standard är 1.

SOURCE_DATE_EPOCH

Om denna är satt används den som tidsstämpel, i sekunder sedan epoken, för att begränsa mtime i tar(5)-filposter.

Detta finns sedan dpkg 1.18.11.

VISUAL

EDITOR

Används av källformatmodulerna ”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ällformatmodulerna ”3.0 (git)”.

FILER

debian/source/format

Denna fil innehåller på en enda rad det format som ska användas för att bygga källpaketet. Möjliga format beskrivs ovan.

Inledande eller avslutande blanksteg är inte tillåtna.

debian/source/include-binaries

Denna fil innehåller en lista med sökvägsnamn för binära filer, en per rad, relativt källrotkatalogen, som ska inkluderas i Debiantararkivet.

Inledande och avslutande blanksteg tas bort. Rader som börjar med # är kommentarer och hoppas över. Tomma rader ignoreras.

debian/source/options

Denna fil innehåller en lista med långa flaggor som automatiskt ska läggas till före uppsättningen kommandoradsflaggor vid anrop av:

dpkg-source --build
dpkg-source --print-format

Flaggor som --compression och --compression-level passar bra i denna fil.

Varje flagga ska placeras på en separat rad. Tomma rader och rader som börjar med # ignoreras.

De inledande -- ska tas bort, och korta flaggor är inte tillåtna. Valfria blanksteg tillåts runt tecknet =, och valfria citattecken tillåts runt värdet.

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 automatisk patch
single-debian-patch
# ignorera ändringar i config.{sub,guess}
extend-diff-ignore = "(^|/)(config.sub|config.guess)$"

Observera: format-flaggor accepteras inte i denna fil. Du bör använda debian/source/format i stället.

debian/source/local-options

Exakt som debian/source/options, förutom att filen inte inkluderas i det genererade källpaketet.

Den kan vara användbar för att lagra en inställning som hör till paketunderhållaren eller till det versionshanteringsarkiv där källpaketet underhålls.

debian/source/local-patch-header

debian/source/patch-header

Fri text som placeras överst i den automatiska patch som genereras i formaten ”2.0” eller ”3.0 (quilt)”.

local-patch-header inkluderas inte i det genererade källpaketet, medan patch-header inkluderas.

debian/patches/vendor.series

debian/patches/series

Denna fil listar alla patchar som måste appliceras, i angiven ordning, ovanpå uppströmskällpaketet.

Inledande och avslutande blanksteg tas bort. vendor är namnet på aktuell leverantör med små bokstäver, eller debian om ingen leverantör är definierad.

Om den leverantörsspecifika series-filen inte finns används filen utan leverantörsnamn.

Rader som börjar med # är kommentarer och hoppas över. Tomma rader ignoreras.

Återstående rader börjar med ett patchfilnamn, relativt katalogen:

debian/patches/

fram till det första blanktecknet eller radslutet.

Valfria quilt-flaggor kan följa fram till radslutet eller fram till det första # som föregås av ett eller flera blanksteg, vilket markerar början på en kommentar till radens slut.

SÄKERHET

Att granska opålitliga källpaket eller packa upp dem i mellanlagringskataloger bör betraktas som en säkerhetsgräns. Varje brott mot denna gräns som härrör från dessa operationer bör betraktas som en säkerhetssårbarhet.

Att hantera opålitliga källpaket bör dock inte göras lättvindigt. Angreppsytan omfattar alla stödda komprimeringskommandon, kommandon för att hantera specifika dataformat, såsom tar(1) eller patch(1), samt själva källpaketsformaten och kontrollfilerna.

Det avråds starkt från att utföra dessa operationer på opålitliga data som root.

Byggning av källpaket bör endast utföras på betrodda data.

FEL

Tidpunkten då fält åsidosätts i förhållande till vissa standardinställningar för utmatningsfält är ganska förvirrande.

SE ÄVEN

deb-src-control(5), deb-changelog(5), deb-substvars(5), dsc(5)

COLOPHON

Denna sida är en del av projektet dpkg – Debians pakethanterare.

Information om projektet finns på:

https://wiki.debian.org/Teams/Dpkg/

Felrapporter för denna manualsida kan lämnas via:

http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=dpkg

Denna sida hämtades från projektets uppströms Git-arkiv:

git clone https://git.dpkg.org/git/dpkg/dpkg.git

Den hämtades den 16 januari 2026. Vid den tidpunkten var datumet för den senaste commit som hittades i arkivet den 20 december 2025.

Om du upptäcker renderingsproblem i denna HTML-version av sidan, om du anser att det finns en bättre eller mer uppdaterad källa för sidan, eller om du har korrigeringar eller förbättringar av informationen i denna COLOPHON, som inte är en del av den ursprungliga manualsidan, kan du skicka e-post till:

man-pages@man7.org
1.23.3-2-gade55                 2025-12-20                 dpkg-source(1)

Sidor som hänvisar till denna sida


Sidslut

Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/dpkg-source.1.html Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorservice som har sponsrat Linux.se med webbhotell.