Vanliga misstag
Föregående
Nästa

Vanliga misstag

Exempelfiler från dh_make

När du använder dh_make för att utföra den ursprungliga "debianisationen" skapas exempelfiler för olika uppgifter i katalogen debian/. De här mallarna har filändelsen .ex. Om du vill använda en av dem, byt namn på den genom att ta bort filändelsen. Om du inte behöver den, ta bort den för att hålla katalogen debian/ ren.

Ändra i den ursprungliga tarbollen

Det finns två typer av källpaket: native och icke-native. Ett paket som är native är specifikt för Ubuntu/Debian. I katalogen debian/ finns det information om alla ändringar som har gjorts i källkoden som finns med i tarbollen (vanligtvis <paketnamn>_<version>.tar.gz). Icke-native-paket är vanligare. Ett icke-native-paket delar upp källpaketet i en <paketnamn>_<version>.orig.tar.gz-tarboll som är identisk (forhoppningsvis även md5summan) med tarbollen som laddades ner från projektets hemsida och en .diff.gz-fil som innehåller skillnaderna (katalogen debian/ och patchar) från original-tarbollen.

Här är en lista över potentiella problem som kan uppstå om du ändrar på den ursprungliga tarbollen:

  1. Reproducerbarhet

    Om du bara tar filerna .diff.gz och .dsc kan inte du eller någon annan reproducera ändringarna i den ursprungliga tarbollen.

  2. Uppgraderbarhet

    Det är mycket enklare att uppgradera till en ny uppströmsversion (ny version från skaparen) om .orig.tar.gz-filen sparas och det finns en tydlig avgränsning mellan uppströms-källkod och ändringarna som gjordes för att skapa källpaketet för Ubuntu.

  3. Synkronisering från Debian till Ubuntu

    Om originaltarbollarna ändras blir det svårt att automatiskt synkronisera från Debian till Ubuntu. Normalt ändras bara filerna .diff.gz och .dsc för samma uppströmsversion, eftersom .orig.tar.gz-filen ddelas melan alla Debian- och Ubuntu-revisioner. Det är mycket svårare att synkronisera om md5summorna för orig.tar.gz-filerna inte stämmer överens.

  4. Användning av versionshantering för Debianpaket

    Om du använder svn (svn-buildpackage) för att hantera ditt Debianpaket sparar du vanligtvis inte original-tarbollen inuti. Om någon annan gör en checkout måste han/hon skaffa sig originaltarbollen separat. Andra versionshanteringssystem kan användas för att bara spåra paketeringsfilerna (debian/ m fl) och inte hela källkoden. Om inte .orig.tar.gz är samma fil kan det självklart uppstå problem.

  5. Säkerhetsspårning

    Tänk dig en situation där någon vill lägga till en bakdörr, ett rootkit eller andra elakheter. Om original-tarbollen är oförändrad går det enkelt att söka igenom .diff.gz-filen i jakt på elakheter från personen som modifierade paketet. Om tarbollen ändrades måste man däremot dessutom leta efter skillnader mellan den modifierade tarbollen och originalet.

    Notera

    Du måste fortfarande tro att de som skrev programmet inte försökte göra något elakt, men det måste du oavsett om tarbollen ändras eller inte.

  6. .diff.gz-filen

    Du kan redan använda en .diff.gz-fil för att visa ändringarna om originaltarbollen redan finns, så det är enkelt att göra ändringar utan att röra originaltarbollen.

Det är acceptabelt att ändra på originaltarbollen om en eller flera av följande punkter stämmer:

  • Den inne håller icke-fria delar som inte kan distribueras vidare. Ta bort dessa saker och skriv ner det i paketet. Ofta innehåller sådana paket "dfsg" (som står för Debian Free Software Guidelines) i paketnamnet och/eller versionsnummret för att visa att de icke-fria delarna har tagits bort.

  • Upphovsmännen tillhandahar bara en bzip2-paketerad källa.

    • Bara bunzip2:a .tar.bz2-filen och kör gzip -9 på den resulterande tar-filen.

    • md5summorna på den .tar du tillhandahåller måste matcha de från original-tar-filen!

    • Lägga så småningom till en get-orig-source-regel i debian/rules som gör den här förvandlingen automatiskt.

  • Direktimporterat från SVN

    • Lägg till get-orig-source i debian/rules

Följande är inte skäl till att ändra den ursprungliga tarbollen:

  • Felaktig kataloglayout

    Notera

    dpkg-source är ganska flexibelt och klarar av att skapa korrekt kataloglayout även om:

    • Katalogen inuti tarbollen inte heter <uppström>-<version>.

    • Det finns ingen underkatalog i tarbollen.

  • Filer behöver tas bort för att .diff.gz-filen ska bli mindre (t ex filer som skapades av autotools). Allt som behöver tas bort ska tas bort i clean . rule. Eftersom .diff.gz-filen skapas med diff -u kommer du inte se några borttagna filer i .diff.gz-filen.

  • Filer behöver ändras. Filer som behöver ändras ska vara i .diff.gz. Det är därför den finns!

  • Fel rättigheter på filer. Du kan använda debian/rules för att göra det.

Tips

Vad gör jag med en .orig.tar.gz som redan innehåller en debian/-katalog?

Packa inte om den. Du kan be upphovsmannen/-männen att ta bort katalogen debian/ och skicka en .diff.gz istället. Det här gör det enklare att granska deras jobb.

Notera

Det är alltid en bra idé att kontakta upphovsmannen/-männnen till programmet och fråga om du får fixa autoconf-problem, katalogstruktur, en utdaterad adress till Free Software Foundation i COPYRIGHT-filer, eller andra saker som inte är specifika till paketeringen men skulle underlätta för dig så att du inte behöver "patcha" källkoden i .diff.gz.

Copyrightinformation

Filen debian/copyright ska innehålla:

  • Licensinformationen för alla filer i källkoden. Ibland lägger upphovsmännen en licens i COPYING men har annan licensinformation i vissa av filerna i källkoden.

  • Upphovsrättshavaren/-havarna och år.

  • Hela licensen om den inte är en av de som finns i /usr/share/common-licenses. Om den finns där behöver du bara inkludera förordet (preamble).

Föregående
Nästa
Hem