dpkg-source(1): Skillnad mellan sidversioner
Admin (diskussion | bidrag) (Skapade sidan med '= 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/ <BR><BR>Tack till [https://dataservice.pcbutiken.se/ Datorservice] som har sponsrat [https://www.linux.se Linux.se] med webbhotell. Kategori:Linuxmanual grupp 1 Kategori:Li...') |
Admin (diskussion | bidrag) Ingen redigeringssammanfattning |
||
| Rad 1: | Rad 1: | ||
== NAMN == | |||
'''dpkg-source''' – verktyg för hantering av Debians källpaket (.dsc) | |||
== SYNOPSIS == | |||
<pre> | |||
dpkg-source [flagga...] kommando | |||
</pre> | |||
== 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: | |||
<pre> | |||
källa-version | |||
</pre> | |||
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: | |||
<pre> | |||
formatet angivet med kommandoradsflaggan --format | |||
formatet angivet i debian/source/format | |||
1.0 | |||
</pre> | |||
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: | |||
<pre> | |||
dpkg-source --build katalog | |||
</pre> | |||
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 === | |||
'''-c'''kontrollfil | |||
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'''. | |||
'''-V'''namn'''='''värde | |||
Sätt en utmatningssubstitutionsvariabel. Se [[deb-substvars(5)]] för en genomgång av utmatningssubstitution. | |||
'''-T'''substvars-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. | |||
'''-D'''fält'''='''värde | |||
Åsidosätt eller lägg till ett fält i utmatningskontrollfilen. | |||
'''-U'''fält | |||
Ta bort ett fält från utmatningskontrollfilen. | |||
'''-Z'''komprimering, '''--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: | |||
<pre> | |||
gzip | |||
bzip2 | |||
lzma | |||
xz | |||
</pre> | |||
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. | |||
'''-z'''nivå, '''--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: | |||
<pre> | |||
1 till 9 | |||
best | |||
fast | |||
</pre> | |||
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: | |||
<pre> | |||
CVS/ | |||
.cvsignore | |||
.svn/ | |||
</pre> | |||
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: | |||
<pre> | |||
(^|/) | |||
($|/) | |||
</pre> | |||
'''--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: | |||
<pre> | |||
|regex | |||
</pre> | |||
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: | |||
<pre> | |||
-ICVS | |||
</pre> | |||
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: | |||
<pre> | |||
https://www.gnu.org/software/tar/manual/tar.html#wildcards | |||
</pre> | |||
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: | |||
<pre> | |||
SHA-256 | |||
</pre> | |||
'''--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: | |||
<pre> | |||
3.0 (quilt) | |||
3.0 (native) | |||
</pre> | |||
Se följande sida för information om införandet av dessa format i Debian: | |||
<pre> | |||
https://wiki.debian.org/Projects/DebSrc3.0 | |||
</pre> | |||
=== 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: | |||
<pre> | |||
.orig.tar.gz.asc | |||
</pre> | |||
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: | |||
<pre> | |||
paket_uppströmsversion.orig.tar.gz | |||
</pre> | |||
eller efter originalkällkatalogen: | |||
<pre> | |||
katalog.orig | |||
</pre> | |||
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: | |||
<pre> | |||
paket_uppströmsversion.orig.tar.filändelse | |||
</pre> | |||
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: | |||
<pre> | |||
katalog.orig | |||
</pre> | |||
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: | |||
<pre> | |||
paket-uppströmsversion.orig | |||
</pre> | |||
'''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: | |||
<pre> | |||
debian/patches/ | |||
</pre> | |||
som matchar det Perl-reguljära uttrycket: | |||
<pre> | |||
[\w-]+ | |||
</pre> | |||
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: | |||
<pre> | |||
zz_debian-diff-auto | |||
</pre> | |||
=== 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: | |||
<pre> | |||
.orig.tar.ext | |||
</pre> | |||
där '''ext''' kan vara: | |||
<pre> | |||
gz | |||
bz2 | |||
lzma | |||
xz | |||
</pre> | |||
samt ett Debiantararkiv: | |||
<pre> | |||
.debian.tar.ext | |||
</pre> | |||
Det kan också innehålla ytterligare originaltararkiv: | |||
<pre> | |||
.orig-addon.tar.ext | |||
</pre> | |||
'''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: | |||
<pre> | |||
.orig.tar.ext.asc | |||
.orig-addon.tar.ext.asc | |||
</pre> | |||
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: | |||
<pre> | |||
debian/patches/vendor.series | |||
</pre> | |||
eller: | |||
<pre> | |||
debian/patches/series | |||
</pre> | |||
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)]]: | |||
<pre> | |||
--profile dpkg | |||
</pre> | |||
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 '''quilt'''s 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 '''quilt'''s standardbeteende kan patcharna också ta bort filer. | |||
Filen: | |||
<pre> | |||
.pc/applied-patches | |||
</pre> | |||
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: | |||
<pre> | |||
debian-changes-version | |||
</pre> | |||
eller: | |||
<pre> | |||
debian-changes | |||
</pre> | |||
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 '''quilt'''s 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: | |||
<pre> | |||
debian/source/include-binaries | |||
</pre> | |||
Bygget misslyckas också om binära filer hittas i underkatalogen '''debian''', om de inte har tillåtits via: | |||
<pre> | |||
debian/source/include-binaries | |||
</pre> | |||
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: | |||
<pre> | |||
.pc | |||
</pre> | |||
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: | |||
<pre> | |||
sensible-editor | |||
$VISUAL | |||
$EDITOR | |||
vi | |||
</pre> | |||
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: | |||
<pre> | |||
debian/source/include-binaries | |||
</pre> | |||
så att de hamnar i Debiantararkivet, precis som om följande kommando hade använts: | |||
<pre> | |||
dpkg-source --include-binaries --build | |||
</pre> | |||
==== 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: | |||
<pre> | |||
.pc/.version | |||
</pre> | |||
'''--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: | |||
<pre> | |||
debian/source/include-binaries | |||
</pre> | |||
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: | |||
<pre> | |||
debian/patches/debian-changes | |||
</pre> | |||
i stället för: | |||
<pre> | |||
debian/patches/debian-changes-version | |||
</pre> | |||
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: | |||
<pre> | |||
debian/source/local-options | |||
</pre> | |||
och åtföljas av en fil: | |||
<pre> | |||
debian/source/local-patch-header | |||
</pre> | |||
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: | |||
<pre> | |||
debian/source/local-options | |||
</pre> | |||
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: | |||
<pre> | |||
debian/source/options | |||
</pre> | |||
men kan användas i: | |||
<pre> | |||
debian/source/local-options | |||
</pre> | |||
'''--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: | |||
<pre> | |||
.git/shallow | |||
</pre> | |||
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: | |||
<pre> | |||
remotes/origin/ | |||
</pre> | |||
==== 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: | |||
<pre> | |||
--git-ref=main | |||
</pre> | |||
För att inkludera alla taggar och grenar utom den privata grenen: | |||
<pre> | |||
--git-ref=--all --git-ref=^private | |||
</pre> | |||
'''--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: | |||
<pre> | |||
debian/source/format | |||
</pre> | |||
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: | |||
<pre> | |||
3.0 (quilt) | |||
3.0 (native) | |||
</pre> | |||
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''': | |||
<pre> | |||
1.0 | |||
</pre> | |||
'''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: | |||
<pre> | |||
auto | |||
always | |||
never | |||
</pre> | |||
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: | |||
<pre> | |||
0 | |||
1 | |||
</pre> | |||
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: | |||
<pre> | |||
dpkg-source --build | |||
dpkg-source --print-format | |||
</pre> | |||
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: | |||
<pre> | |||
# 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)$" | |||
</pre> | |||
'''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: | |||
<pre> | |||
debian/patches/ | |||
</pre> | |||
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å: | |||
<pre> | |||
https://wiki.debian.org/Teams/Dpkg/ | |||
</pre> | |||
Felrapporter för denna manualsida kan lämnas via: | |||
<pre> | |||
http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=dpkg | |||
</pre> | |||
Denna sida hämtades från projektets uppströms Git-arkiv: | |||
<pre> | |||
git clone https://git.dpkg.org/git/dpkg/dpkg.git | |||
</pre> | |||
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: | |||
<pre> | |||
man-pages@man7.org | |||
</pre> | |||
<pre> | |||
1.23.3-2-gade55 2025-12-20 dpkg-source(1) | |||
</pre> | |||
== Sidor som hänvisar till denna sida == | |||
* [[dpkg-buildpackage(1)]] | |||
* [[deb-src-control(5)]] | |||
* [[deb-substvars(5)]] | |||
* [[dsc(5)]] | |||
= Sidslut = | = Sidslut = | ||
Nuvarande version från 13 maj 2026 kl. 16.44
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.