# Handbok för skriptet &kdesvn-build;

## Inledning

&kdesvn-build; är ett Perl-skript som hjälper användare att installera &kde; från &svn;. Du kanske också vill fundera på att använda skriptet kde-build, som är inkluderat i &kde;:s kdesdk-modul.

Här dokumenterar vi syntaxen för &kdesvn-build; inställningsfiler, dess kommandoradsväljare, funktioner och en översikt över alla nödvändiga steg som krävs för att bygga &kde; från källkod, inklusive stegen du måste utföra med användning av andra verktyg, eller med andra ord, steg som inte automatiskt utförs av skriptet &kdesvn-build;.

## Komma igång

I det här kapitlet visar vi hur &kdesvn-build; används för att checka ut moduler från &kde;-arkivet och bygga dem. Vi tillhandahåller också en grundläggande förklaring av &kde;:s &svn;-struktur och stegen du måste utföra innan skriptet körs.

Alla ämnen som presenteras i det här kapitlet täcks med ännu mer detaljer i guiden Building &kde; from Source Step by Step Guide på hemsidan för &kde;:s kvalitetsgrupp. Om du kompilerar KDE för första gången, är det en god idé att läsa den, eller rådfråga den som en referenskälla. Du hittar detaljerad information om paketverktyg och krav, vanliga fallgropar vid kompilering och strategier och information om att köra den nya &kde;-installationen.

### Förbereda systemet för att bygga &kde;

Du rekommenderas att ladda ner och bygga &kde; med ett användarkonto. Om du redan har &kde;-paket installerade, är det bästa valet att skapa en annan (särskild) användare för att bygga och köra det nya &kde;. Fördelen med att bygga &kde; för en särskild användare är att du inte kan förstöra bassystemet, och du har alltid ett sätt att arbeta bekvämt när saker och ting går fel.

Senare kan du installera som systemadministratör om du vill. Det här dokumentet täcker inte en installation som systemadministratör. Om du utför en systeminstallation, vet du troligen ändå vad du gör.

Innan du använder skriptet &kdesvn-build; (eller någon annan byggstrategi) måste du installera utvecklingsverktyg och bibliotek som behövs för &kde;. Du behöver Qt-biblioteket, version 3.3.0 eller senare, Automake 1.8, Autoconf 2.5X (bättre med >= 2.57 eftersom ett fel rapporterades med tidigare versioner), subversion-klienten (svn), gcc-kompilatorn med stöd för C++, libxml2, openssl, libbz2 och många fler (för en fullständig lista, besök KDE kompileringskrav). Du kan oftast få verktygen paketerade för ditt system från din distribution eller leverantör.

Vissa av paketen är uppdelade i bibliotek, program eller verktyg och utvecklingspaket. Du behöver åtminstone programmet eller biblioteket och dess utvecklingspaket. Om du är tveksam installera alla. Biblioteken du behöver ändras beroende på modulerna du avser att bygga, eftersom varje modul har sina egna krav. Guiden Building &kde; from Source Step by Step har mer detaljinformation om specifika verktyg och tekniker som används för att installera och hitta programvaran som krävs.

Du har troligen redan en version av skriptet &kdesvn-build; installerat på ditt system. &kdesvn-build; kräver att du skapar en inställningsfil, som heter `.kdesvn-buildrc`. Filen ska installeras i hemkatalogen (~/), och innehålla all inställningsdata som krävs för att skriptet ska kunna köras, som inställningsalternativ, kompileringsväljare, plats för källkoden, målet för installationen (prefix), modulerna som ska byggas, etc. Förvald inställningsdata tillhandahålls i filen `kdesvn-buildrc-sample`. Du hittar mer information om inställningsfilens syntax i configure-data och i kdesvn-buildrc.

Ett bra sätt att hämta senaste versionen är att bläddra till sidan kdesdk/scripts på webbplatsen websvn.kde.org. Du ser en lista med filer tillgängliga i katalogen kdesdk/scripts i &kde;:s &svn;-arkiv. Klicka på länken &kdesvn-build; och ladda ner senaste versionen av skriptet. Gör samma sak med filen `kdesvn-buildrc-sample`. Gör skriptet körbart, och försäkra dig om att det finns i din sökväg.

### Ange inställningsinformation

För att använda skriptet måste du ha en fil i din hemkatalog som heter `.kdesvn-buildrc`, som ställer in allmänna alternativ och anger modulerna som du vill ladda ner och bygga.

Använd filen `kdesvn-buildrc-sample` som en mall, för att ställa in allmänna alternativ och modulerna du vill bygga.

Välj servern som ska användas för att checka ut från &svn; genom att ställa in det allmänna alternativet svn-server. Det anonyma &svn;-arkivet svn://anonsvn.kde.org/ är förvalt, men ändra det om du har ett &kde; &svn;-konto, eller om det finns en spegelplats nära dig.

Var särskilt uppmärksam på de globala variablerna kdedir och qtdir, eftersom den första anger var det byggda &kde; ska installeras (normalt i `~/kde`), och den andra var (och om) Qt-biblioteket ska byggas och installeras (normalt `~/kdesvn/build/qt-copy`). Du måste känna till platserna för kdedir och qtdir senare, för att ställa in miljövariablerna som är nödvändiga för att köra den nya installationen. Kontrollera om de listade modulerna i själva verket är modulerna som du vill bygga. De förvalda alternativen i filen `kdesvn-buildrc-sample` bör vara tillräckliga för att få en någorlunda komplett installation av &kde;. Spara resultatet som `.kdesvn-buildrc` i din hemkatalog.

Om du vill finjustera `.kdesvn-buildrc`, titta då på kdesvn-buildrc för detaljerad information om alla inställningsalternativ.

### Att använda skriptet &kdesvn-build;

Nu är du klar att köra skriptet. Logga in till användaren som du använder för att kompilera &kde; i ett terminalfönster, och kör skriptet:

    %su - utvecklings-användarnamn
    %kdesvn-build

Nu ska skriptet börja ladda ner källkoden och kompilera den. Det är inte troligt att du lyckas första gången du kompilerar &kde;. Förtvivla inte! Kontrollera loggfilerna för att se om du saknar några verktyg eller utvecklingspaket (platsen för loggfilerna anges av variabeln log-dir i inställningsfilen). Ibland blir huvudutvecklingsgrenen mycket instabil och svår att bygga, särskilt när en frysning av utvecklingen är nära. Ha tålamod. Du kan hitta fler vanliga exempel på saker som kan gå fel och deras lösning, samt allmänna tips och strategier för att bygga &kde; i guiden Building &kde; from Source Step by Step.

### Ställa in miljön för att köra det färska &kde;

Med antagandet att du använder en särskild användare för att bygga &kde; och redan har en installerad version av &kde;, kan det vara något krångligt att köra det nya &kde;, eftersom det nya &kde; måste ges företräde över det gamla. Ändra miljövariabler för att försäkra dig om att det gör det.

Öppna eller skapa filen `.bash_profile` i hemkatalogen med din favoriteditor, och lägg till följande i slutet på filen:

    KDEDIR=(sökväg till kdedir)
    KDEDIRS=$KDEDIR
    PATH=$KDEDIR/bin:$QTDIR/bin:$PATH
    LD_LIBRARY_PATH=$KDEDIR/lib:$LD_LIBRARY_PATH
    export KDEDIRS PATH LD_LIBRARY_PATH

om du bygger modulen qt-copy, lägg istället till:

    QTDIR=(sökväg till qtdir)
    KDEDIR=(sökväg till kdedir)
    KDEDIRS=$KDEDIR
    PATH=$KDEDIR/bin:$QTDIR/bin:$PATH
    MANPATH=$QTDIR/doc/man:$MANPATH
    LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH
    export QTDIR KDEDIRS PATH MANPATH LD_LIBRARY_PATH

Om du inte använder en särskild användare, ställ in en annorlunda `$KDEHOME` för den nya miljön i din `.bash_profile`:

    export KDEHOME="${HOME}/.kde-svn"

    # Skapa om det behövs
    [ ! -e ~/.kde-svn ] && mkdir ~/.kde-svn

Om menyn senare är tom eller för överfull med program från din distribution, kanske du måste ställa in miljövariabeln xdg i `.bash_profile`:

    XDG_CONFIG_DIRS="/etc/xdg"
    XDG_DATA_DIRS="${KDEDIR}/share:/usr/share"
    export XDG_CONFIG_DIRS XDG_DATA_DIRS

Nu när vi är klara med det måste du försäkra dig om att rätt startkde skript kommer att användas:

Öppna textfilen `.xinitrc` (eller `.xsession`, beroende på distribution) i hemkatalogen, eller skapa den om det behövs. Lägg till raden:

    exec ${KDEDIR}/bin/startkde

Starta nu det färska &kde;: i BSD- och Linux-system med stöd för virtuella terminaler, används tangentkombinationerna Ctrl+Alt+F1..F12 för att byta mellan virtuella konsoller 1 till och med 12. Det låter dig köra mer än en skrivbordsmiljö samtidigt. De första sex är textterminaler, och de följande sex är grafiska skärmar.

Om den grafiska skärmhanteraren istället visas när du startar, kan du använda den nya KDE-miljön även om den inte listas som ett alternativ. Tryck på Ctrl+Alt+F2, så visas en textterminal. Logga in som den särskilda användaren och skriv:

    startx -- :1

Du kan köra KDE från källkod och det gamla KDE samtidigt. Logga in som din vanliga användare, och starta det stabila KDE-skrivbordet. Tryck på Ctrl+Alt+F2 (eller F1, F3, etc.), så visas en textterminal. Logga in som den särskilda användaren och skriv "startx -- :1". Du kan gå tillbaka till den vanliga användaren genom att trycka på Ctrl+Alt+F6 (eller F7, F8 etc. Prova dem. En av dem är den rätta.). För att återgå till KDE från källkod, tryck på Ctrl+Alt+F7 (eller F6, F8, etc.). Nu kan du byta mellan dina KDE-versioner, och testa den nya medan du vet att du snabbt kan återgå till säkerheten hos det stabila KDE-skrivbordet.

## Skriptets funktioner

Funktionerna i &kdesvn-build; omfattar:

- Checkar automatiskt ut eller uppdaterar moduler från &svn;, enligt vad som är lämpligt.

- Beräknar tiden för att bygga moduler.

- Försöker automatiskt bygga om moduler som använder en inkrementell byggprocess, vilken tenderar att misslyckas efter vissa typer av incheckningar.

- Kan återuppta ett tidigare skript, eller starta byggprocessen från en viss modul.

- Levereras med en inbyggt rimlig uppsättning förvalda alternativ lämpligt för att bygga en grundläggande enanvändarinstallation av &kde; från det anonyma &svn;-arkivet.

- Levereras med stöd för Unsermake.

- Expanderar dina inställningsalternativ med tilde. Du kan till exempel ange:

      qtdir ~/kdesvn/build/qt-copy

- Inställningsbara bygg-, källkods-, och loggningskataloger

- Sätter automatiskt upp ett byggsystem, med källkodskatalogen skild från byggkatalogen för att hålla källkodskatalogen orörd. Undantaget är qt-copy, som inte är konstruerad att byggas så (om du inte vill prova QT med separat byggkatalog).

- Du kan ange allmänna alternativ att använda för alla moduler som checkas ut, och du kan dessutom ange alternativ som ska användas för enskilda moduler.

- Eftersom autoverktygen ibland blir osynkroniserade med ändringar i källkodsträdet, kan du tvinga att en modul byggs om genom att skapa en fil som heter refresh-me i byggkatalogen för modulen i fråga, eller genom att köra &kdesvn-build; med väljaren `--refresh-build`.

- Du kan ange diverse miljövariabler som ska användas under byggprocessen, inklusive `KDEDIR`, `QTDIR`, `DO_NOT_COMPILE` och `CXXFLAGS`.

- Kommandologgning. Loggar dateras och numreras så att du alltid har en logg av en körning av skriptet. Dessutom skapas en symbolisk länk som heter latest, som alltid pekar på den senaste loggen i loggkatalogen.

- Om du använder en användarbyggd &kde; istället för en systembyggd (som du måste vara systemadministratör för att installera), kan du låta skriptet installera åt dig. Jag har inte granskat koden, och den använder anropet `system()` flitigt, så jag rekommenderar för närvarande att inte köra den som systemadministratör.

- Du kan använda make-install-prefix för att inleda byggkommandoraden med ett separat kommando, som är användbart för sudo.

- Du kan använda alternativet apidox för att automatiskt bygga och installera dokumentation om programmeringsgränssnittet för vissa moduler.

- Du kan checka ut bara en delmängd av en &kde; &svn;-modul. Du skulle till exempel kunna checka ut bara taglib från kdesupport, eller bara K3B från extragear/multimedia. Skriptet hämtar automatiskt in kde-common om det behövs för att få byggprocessen att fungera.

- Du kan låtsas att utföra åtgärden. Om du skickar med `--pretend` eller `-p` på kommandoraden, ger skriptet en mycket utförlig beskrivning av de kommandon som ska göras, utan att i själva verket utföra dem.

- Stöd för att checka ut specifika grenar av &svn;-moduler. Arbetet behöver fortfarande göras färdigt, men du kan redan välja grenen du vill bygga med inställningsalternativet module-base-path.

Saker som &kdesvn-build; INTE gör:

- Hitta den snabbaste spegelplatsen för &kde; &svn;. Det finns inte ens en lista medskickad med skriptet för närvarande, även om förvald server bör fungera bra.

- Borsta tänderna. Du måste komma ihåg att göra det själv.

- Tyvärr är skriptet troligen inte fritt från fel.

## Formatet för .kdesvn-buildrc

För att använda skriptet måste du ha en fil i din hemkatalog som heter `.kdesvn-buildrc`, som beskriver modulerna som du vill ladda ner och bygga.

Den börjar med allmänna alternativ, angivna enligt följande:

    global
    alternativ-namn alternativ-värde
    [...]
    end global

De följs därefter av en eller flera modulsektioner, angivna på följande sätt:

    module modul-namn
    alternativ-namn alternativ-värde
    [...]
    end module

`modul-namn` måste vara en modul i &kde;:s &svn;-arkiv (till exempel kdelibs eller kdebase). Vissa alternativ överskrider de allmänna alternativen, vissa lägger till i de allmänna alternativen och vissa allmänna alternativ kan helt enkelt inte överskridas.

Följande är en alfabetisk lista med alternativ du kan använda. Klicka på alternativet för att ta reda på mer om det. Om något inte är dokumenterat, skicka gärna e-post till upphovsmännen med adressen som du hittar ovan.

- apidox, för att bygga dokumentation över programmeringsgränssnittet

- apply-qt-patches, för att förbättra qt-copy

- binpath, för att ställa in variabeln `PATH`.

- branch, för att checka ut från en gren istället för /trunk.

- build-dir, för att ange katalog att bygga i.

- checkout-only, för att bara checka ut delar av en modul.

- colorful-output för att lägga till färg i skriptets utmatning.

- configure-flags för att ange vilka flaggor en modul ska ställas in med.

- cxxflags för att definiera variabeln `CXXFLAGS`.

- dest-dir för att ändra katalognamn för en modul.

- do-not-compile, för att markera kataloger så att de hoppas över av byggprocessen.

- inst-apps, för att bara bygga och installera vissa kataloger.

- install-after-build, för att undvika att installera efter byggprocessen.

- kdedir, för att ange katalog att installera KDE i.

- libpath, för att sätta variabeln `LD_LIBRARY_PATH`.

- make-install-prefix, för att köra ett hjälpprogram (som sudo) under installationen.

- make-options, för att skicka väljare till byggprogrammet.

- manual-build, för att undvika att modulen byggs automatiskt.

- manual-update, för att undvika att någonting görs automatiskt med modulen.

- module-base-path, för att ändra varifrån modulen laddas ner.(användbart för grenar och taggar).

- niceness, för att ändra processorprioriteten.

- no-rebuild-on-fail, för att undvika att köra byggprocessen igen om den misslyckas.

- qtdir, för att ange sökväg till Qt.

- set-env, för att sätta en miljövariabel.

- source-dir, för att ändra vart källkoden laddas ner.

- stop-on-failure, för att få .kdesvn-build att stoppa så fort ett allvarligt fel hittas.

- svn-server, för att ändra servern som källkoden automatiskt laddas ner från.

- use-qt-builddir-hack, för att ge Qt en separat byggkatalog från källkoden, som KDE.

- use-unsermake, för att använda det avancerade byggsystemet unsermake.

Här är en tabell över de olika alternativen, och några kommentarer om dem. Alla alternativ som överskrider det allmänna alternativet, överskrider också en kommandoradsväljare.

## Alternativtabell

Alternativnamn | Modul -> Allmänt beteende | Anmärkningar
apidox | Överskrider allmän | Sätt alternativet till true för att få &kdesvn-build; att automatiskt bygga och installera dokumentation om programmeringsgränssnittet för modulen efter den normala byggprocessen. Det fungerar bara för moduler där make apidox gör någonting, inklusive , bland annat kdelibs, kdebase och koffice.
apply-qt-patches | Överskrider allmän | Det här alternativet är bara användbart för qt-copy. Om det är inställt till ett värde skilt från noll, körs skriptet apply-patches i qt-copy innan byggprocessen, för att utföra inofficiella programfixar i qt-copy. Eftersom dessa programfixar normalt är orsaken till att använda qt-copy istället för en standardversion av Qt, ska det inte vara skadligt att aktivera det. Förvalt värde är att aktivera programfixarna.
binpath | Kan inte överskridas | Sätt alternativet för att använda miljövariabeln PATH under byggprocessen. Du kan inte överskrida alternativet i ett modulalternativ. Förvalt värde är `/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin`. Miljövariabeln ska innehålla sökvägar till utvecklingsverktygen åtskilda med kolon. Sökvägarna `$KDEDIR/bin` och `$QTDIR/bin` läggs automatiskt till. Du kan använda tilde (~) för eventuella sökvägar du lägger till med det här alternativet.
branch | Överskrider allmän | Ange alternativet för att checka ut från en gren av KDE istället för det förvalda "trunk", där KDE-utveckling sker. För att till exempel checka ut grenen KDE 3.4, skulle du ange alternativet "3.4". Observera att vissa moduler använder ett annorlunda grennamn. I synnerhet följer inte modulen arts som krävs KDE:s versionsnummer. Modulen arts som hörde ihop med KDE 3.4 var version 1.4. Om kdesvn-build misslyckas med att ladda ner en gren med alternativet, kan du behöva ange webbadressen att ladda ner från för hand med alternativet override-url.
build-dir | Överskrider allmän | Använd det här alternativet för att byta katalog som innehåller källkoden att bygga. Det finns tre olika sätt att använda det: Relativt till &kde;:&svn;-källkodskatalog (se alternativet source-dir). Det är förvalt, och sättet som skriptet fungerade fram till version 0.61. Läget väljes om du skriver in ett katalognamn som inte börjar med tilde (~) eller snedstreck (/). Förvalt värde är `build` Absolut sökväg. Om du anger en sökväg som börjar med /, används sökvägen direkt. Till exempel `/tmp/kde-obj-dir/` Relativt till din hemkatalog. Om du anger en sökväg som börjar med ~, används sökvägen relativt till din hemkatalog, på motsvarande sätt som skalets expansion av tilde. Till exempel skulle `~/builddir` ställa in byggkatalogen till `/home/användarnamn/builddir` Alternativet kan, kanske något oväntat, ändras per modul.
checkout-only | Överskrider allmän | Sätt det här alternativet för att checka ut källkod från &svn; del för del. Värdet av alternativet ska vara en lista med kataloger åtskilda med mellanslag att checka ut. Om du inte inkluderar katalogen admin, inkluderas den automatiskt (om det behövs). När du checkar ut del för del hämtas katalogen admin in från kde-common, vilket är platsen den finns på &svn;-servern. Även om alternativet överskrider det allmänna alternativet, var medveten om att ange alternativet som ett allmänt alternativ inte är vettigt.
configure-flags | Lägger till i allmänna alternativ (utom för qt-copy) | Använd det här alternativet för att ange vilka flaggor som ska skickas till ./configure när byggsystemet för modulen skapas. När det används som ett allmänt alternativ, används det för alla moduler som skriptet bygger. qt-copy använder en mycket annorlunda uppsättning inställningsalternativ än resten av &kde;, så det här alternativet överskrider de globala inställningarna när det används för qt-copy.
colorful-output | Kan inte överskridas | Ställ in det här alternativet till false för att inaktivera färglagd utmatning från &kdesvn-build;. Alternativet är normalt true. Observera att &kdesvn-build; inte matar ut färgkoderna till någonting annat än en terminal (som xterm, &konsole; eller den vanliga Linux-konsollen).
cxxflags | Lägger till i allmänna alternativ | Använd det här alternativet för att ange vilka flaggor som ska skickas till `./configure` som `CXXFLAGS` när byggsystemet för modulen skapas. Alternativet anges här istället för med configure-flags eftersom alternativet också sätter miljövariabeln `CXXFLAGS` under byggprocessen.
dest-dir | Överskrider allmän | Använd det här alternativet för att ändra namnet en modul ges på disk. Om modulen till exempel var extragear/network, skulle du kunna byta namn på den till extragear-network med alternativet.
do-not-compile | Överskrider allmän | Använd det här alternativet för att sätta miljövariabeln `DO_NOT_COMPILE` innan skriptet configure körs. Enligt &kde;:s vanliga frågor för utvecklare, ska det göra att alla toppnivåkataloger du skickar med inte byggs. Katalogerna ska skiljas åt med mellanslag. Observera att källkoden till programmen fortfarande laddas ner. Du kan använda direktivet checkout-only för att välja kataloger som du vill checka ut.
inst-apps | Överskrider allmän | Det här är motsatsen till alternativet do-not-compile. Alternativet gör att bara angivna toppnivåkataloger byggs. Katalogerna ska åtskiljas med mellanslag. Eventuella ändringar får ingen effekt förrän nästa gång `make `-f` Makefile.cvs` körs, antingen automatiskt av skriptet, eller manuellt med alternativen `--refresh-build` eller `--recreate-configure`. Observera att källkoden till programmen fortfarande laddas ner. Du kan använda direktivet checkout-only för att välja kataloger som du vill checka ut.
install-after-build | Överskrider allmän | Det här alternativet används för att installera paketet efter det har byggts med lyckat resultat. Alternativet är normalt aktiverat. Om du vill inaktivera det, måste du sätta alternativet till 0 i inställningsfilen. Du kan också använda kommandoradsväljaren `--no-install`.
kdedir | Kan inte överskridas | Det här alternativet anger katalogen som &kde; installeras i efter det har byggts. Förvalt värde är `~/kde`. Om du ändrar det till en katalog som kräver åtkomst som systemadministratör, bör du också läsa om alternativet make-install-prefix.
libpath | Kan inte överskridas | Ange det här alternativet för att sätta miljövariabeln LD_LIBRARY_PATH under byggprocessen. Du kan inte överskrida inställningen med ett modulalternativ. Förvalt värde är tomt, men sökvägarna `$KDEDIR/lib` och `$QTDIR/lib` läggs automatiskt till. Du kan använda tilde (~) i alla sökvägar du lägger till med alternativet.
log-dir | Överskrider allmän | Använd det här alternativet för att ändra katalogen som används för att lagra loggfiler som skapas av skriptet. Inställningen kan ändras per modul från och med version 0.64 eller senare.
make-install-prefix | Överskrider allmän | Sätt den här variabeln till en lista åtskilda med mellanslag, som tolkas som ett kommando och dess väljare för att föregå kommandot make install som används för att installera moduler. Det är användbart för att till exempel installera paket med sudo, men var försiktig när du hanterar systemadministratörsrättigheter.
make-options | Överskrider allmän | Ange den här variabeln för att skicka kommandoradsväljare till kommandot make. Det är användbart för program som distcc. Programmet distcc låter dig dela upp ditt kompileringsarbete på mer än en dator. För att använda det, måste du använda väljaren `-j` till make. Nu kan du det. Enligt dokumentationen rekommenderas 2 * antal_processorer_i_nätverket. Jag har totalt en processor, så det skulle vara `-j2` i mitt fall.
manual-build | Överskrider allmän | Sätt alternativvärdet till true för att förhindra att byggprocessen försöker bygga modulen. Den hålls fortfarande uppdaterad vid uppdatering från &svn;. Alternativet motsvarar exakt kommandoradsväljaren `--no-build`.
manual-update | Överskrider allmän | Sätt alternativvärdet till true för att förhindra att byggprocessen försöker uppdatera (och som en följd, bygga eller installera) modulen. Om du anger alternativet för en modul, är det i stort sett samma som att kommentera bort den.
module-base-path | Överskrider allmän | Sätt det här alternativet för att överskrida &kdesvn-build;s förvalda katalogväg till modulen i fråga. Det kan till exempel användas för att hämta specifika grenar eller taggade versioner av bibliotek. &kde;:s källkodsvisning är ovärderlig som hjälp för att välja rätt sökväg. Observera att &kdesvn-build; konstruerar den slutliga sökvägen enligt följande mall: `$svn-server`/home/kde/`$module-base-path`/`$module-name`. Förvalt värde är antingen trunk eller trunk/KDE, beroende på modulnamn.
niceness | Kan inte överskridas | Ställ in alternativet till ett tal mellan 20 och 0. Ju högre nummer, desto lägre prioritet ställer &kdesvn-build; in åt sig själv. Förvalt värde är 10.
no-rebuild-on-fail | Överskrider allmän | Ställ in det här alternativvärdet till true för att alltid förhindra att &kdesvn-build; försöker bygga om modulen om en inkrementell byggprocess skulle misslyckas. Normalt försöker &kdesvn-build; bygga om modulen från början för att motverka effekten att en enstaka &svn;-uppdatering orsakar problem med byggsystemet.
override-url | Överskrider allmän | Om du anger alternativet, använder kdesvn-build dess värde som webbadress att skicka till Subversion helt oförändrad. Du bör i allmänhet använda det om du vill ladda ner en specifik utgåva, men kdesvn-build kan inte räkan ut vad du menar genom att använda branch.
qtdir | Kan inte överskridas | Sätt alternativet för att använda miljövariabeln QTDIR under byggprocessen. Du kan inte överskrida alternativet i ett modulalternativ. Förvalt värde är ``$(source-dir)`/build/qt-copy`, som använder modulen qt-copy som ingår i &kde;:s källkodsarkiv. Du kan använda tilde (~) för att representera din hemkatalog.
set-env | Överskrider allmän | Det här alternativet accepterar en uppsättning värden åtskilda av mellanslag, där det första värdet är miljövariabeln att sätta, och följande värden är vad du vill sätta variabeln till. För att till exempel sätta variabeln RONALD till McDonald, skulle du skriva följande kommando under lämplig sektion:
    set-env RONALD McDonald
Det här alternativet är speciellt på så sätt att det kan upprepas utan att överskrida tidigare inställningar med set-env i samma sektion av inställningsfilen. På så sätt kan du ange mer än en miljövariabel per modul (eller globalt).
source-dir | Kan inte överskridas | Det här alternativet används för att ange katalogen på datorn där &kde;:s &svn;-källkod ska lagras. Om du inte anger värdet, är förvalt värde `~/kdesvn`. Om du anger värdet, använd en absolut sökväg.
svn-server | Kan inte överskridas | Det här alternativet används för att ange servern som används vid utcheckning från &svn;. Förval är det anonyma &svn;-arkivet, svn://anonsvn.kde.org/.
stop-on-failure | Överskrider allmän | Ställ in det här alternativvärdet till true för att göra att skriptet slutar köra efter ett fel uppstår i bygg- eller installationsprocessen. Alternativet är normalt av.
tag | Överskrider allmän | Använd väljaren för att ladda ner en specifik utgåva av en modul. Observera: Det är höga odds att du INTE VILL andvända alternativet. KDE-utgåvor är tillgängliga på arkivform från KDE:s FTP-plats eller en av dess spegelplatser. Om du använder kdesvn-build eftersom du har svårighet att få en KDE-utgåva att bygga på din distribution, fundera på att använda byggverktyget Konstruct istället, som fungerar med utgåvornas arkiv.
use-qt-builddir-hack | Överskrider allmän | Även om alternativet överskrider det allmänna alternativet, är det bara vettigt för qt-copy. Sätt alternativet till true för att aktivera skriptets experimentella läge med källkatalog skild från byggkatalog. När det är aktiverat, kopierar &kdesvn-build; qt-copy källkodsmodulen till byggkatalogen, och utför byggprocessen därifrån. Det betyder att miljövariabeln QTDIR istället ska vara inställd till `$(qt-copy-build-dir)/qt-copy/lib`. Du måste också ändra alternativet qtdir på motsvarande sätt. Att bygga inkrementellt ska fortfarande fungera med detta läge, eftersom tidsstämplar bevaras efter kopieringen. Om du använder alternativet apply-qt-patches, utföra programfixarna i byggkatalogen, inte källkodskatalogen. Alternativets förvalda värde är true.
use-unsermake | Överskrider allmän | Set this option to a non-zero value in order to use the experimental unsermake program instead of automake when running the configure script. This can lead to some serious decreases in build time, especially for distributed building systems. This option defaults to true (for most modules).

## Kommandoradsväljare och miljövariabler

Skriptet använder inte miljövariabler. Om du behöver sätta miljövariabler för bygg- eller installationsprocessen, se alternativet set.-env.

Skriptet accepterar följande kommandoradsväljare:

`--help`

- visa bara enkel hjälp om skriptet.

`--version`

- visa programmets version.

`--author`

- visa upphovsmannens kontaktinformation.

`--color`

- aktivera färglagd utmatning.

`--no-color`

- inaktivera färglagd utmatning.

`--pretend` (eller `-p`)

- utför INTE någonting, men beter sig som om det vore så.

`--svn-only`

- utför bara uppdatering av källkoden.

`--build-only`

- utför bara byggprocessen.

`--ignore-modules`

- don't including the modules passed on the rest of the command line in the update/build process.

`--no-svn`

- hoppa över att kontakta &svn;-servern.

`--no-build`

- hoppa över byggprocessen.

`--no-install`

- installera inte automatiskt paket efter de har byggts.

`--debug`

- aktiverar felsökningsläge för skriptet. För närvarande betyder det att all utmatning skickas till standardutmatningen förutom att loggas i loggkatalogen som vanligt. Dessutom är många funktioner mycket utförligare om vad de gör i felsökningsläge.

`--no-rebuild-on-fail`

- försök inte att bygga om moduler som har misslyckats att byggas från början. &kdesvn-build; försöker aldrig göra detta med en modul där ett försök att bygga från början redan har gjorts.

`--refresh-build`

- skapa om byggsystemet och bygg från grunden.

`--reconfigure`

- kör skriptet configure igen utan att rensa byggkatalogen.

`--recreate-configure`

- kör `make `-f` Makefile.cvs` igen för att skapa skriptet configure, och fortsätt bygga som vanligt. Alternativet inbegriper `--reconfigure`.

`--resume`

- som försöker att fortsätta bygga från stället där skriptet slutade förra gången. Skriptet börjar bygga modulen efter den senaste modulen som kompilerades sist när skriptet kördes, vare sig det lyckades eller inte. Alternativet inbegriper `--no-svn`. Du bör inte ange andra modulnamn på kommandoraden.

`--resume-from`

- som är som `--resume`, utom att du anger modulen där byggprocessen ska börja som nästa parameter på kommandoraden. Alternativet inbegriper `--no-svn`. Du bör inte ange andra modulnamn på kommandoraden.

`--rc-file`

- som tolkar nästa kommandoradsväljare som filen att läsa konfigurationsinställningarna från. Förvalt värde för väljaren är ~/.kdesvn-buildrc.

`--prefix=</sökväg/till/kde>`

- som låter dig ändra katalogen som &kde; installeras i från kommandoraden. Alternativet inbegriper `--reconfigure`.

`--build-system-only`

- stoppa efter att ha kört `make `-f` Makefile.cvs`. Skriptet configure behöver fortfarande köras, vilket &kdesvn-build; gör nästa gång. Detta låter dig förbereda alla konfigureringsskript på en gång så att du kan titta på `./configure `--help`` för varje modul, och redigera dina flaggor till configure i enlighet med det.

`--install`

- om detta är den enda kommandoradsväljaren, försöker skriptet installera alla moduler som har byggts med lyckat resultat, förutom qt-copy som inte behöver installeras. Om kommandoradsväljare anges efter `--install`, antas de alla vara moduler att installera.

`--<option-name>=`

- Du kan använda väljaren för att överskrida ett alternativ i din inställningsfil för varje modul. För att till exempel överskrida alternativet log-dir, skulle du ange `--log-dir=/sökväg/till/katalog`.

`--<modulnamn>,<alternativnamn>=`

- Du kan använda väljaren för att överskrida ett alternativ i inställningsfilen för en viss modul. För att till exempel överskrida alternativet use-unsermake för kdemultimedia, skulle du ange `--kdemultimedia,use-unsermake=false`.

Alla övriga kommandoradsväljare antas vara moduler att uppdatera och bygga. Blanda helst inte ihop bygga och installera.

## Tack till och licenser

&underFDL;