# Skripti &kdesvn-build; käsiraamat

## Sissejuhatus

&kdesvn-build; on Perli skript, mis aitab kasutajatel paigaldada &kde; otse &svn;i hoidlast. Sellega sarnaneb skript kde-build, mille leiab &kde; moodulist kdesdk.

Alljärgnevalt tuleb juttu &kdesvn-build;'i konfiguratsioonifaili süntaksist ja võtmetest, käsureavõtmetest, omadustest ja sammudest, mida on vaja ette võtta &kde; ehitamiseks lähtekoodist, kaasa arvatud sammudest, mida tuleb sooritada muude tööriistadega, see tähendab, sammudest, mida skript &kdesvn-build; ei tee ise automaatselt.

## Alustamine

Käesolevas peatükis selgitame, kuidas kasutada &kdesvn-build;'i moodulite väljavõtmiseks &kde; hoidlast ja nende ehitamiseks. Me selgitame ka &kde; &svn;i põhimõttelist struktuuri ning samme, mida on vaja ette võtta enne skripti käivitamist.

Kõiki peatükis vaadeldavaid teemasid käsitleb veelgi põhjalikumalt dokument Building &kde; from Source Step by Step Guide, mille leiab &kde; kvaliteedimeeskonna veebileheküljelt. Kui kompileerid KDE-d esimest korda, tasuks seda lugeda kas või põgusalt. Sealt leiab põhjaliku info pakendamistööriistade ja nõuete kohta, levinud kompileerimisprobleemide ja -strateegiate kirjelduse ning juhiseid oma uue &kde; paigalduse kasutamiseks.

### Süsteemi ettevalmistamine &kde; ehitamiseks

Soovitatav on &kde; alla laadida ja ehitada kasutajakontot tarvitades. Kui sul on juba &kde; tarkvarapaketid paigaldatud, on kõige mõistlikum luua uus spetsiaalne kasutaja oma uue &kde; ehitamiseks ja kasutamiseks. &kde; kasutamine spetsiaalse kasutajakontoga tagab selle, et sa ei riku oma põhisüsteemi ja saad alati kuhugi tagasi pöörduda, kui midagi peaks viltu minema.

Hiljem võid muidugi soovi korral paigaldada ka administraatori õigustes. Käesolevas käsiraamatus me seda siiski ei puuduta. Kui paigaldad süsteemselt, siis arvatavasti tead juba nagunii, mida ja kuidas teha.

Enne skripti &kdesvn-build; (või muude ehitamisstrateegiate) kasutamist tuleb paigaldada arendustööriistad ja teegid, mida &kde; vajab. Vajalikud on Qt teek versiooniga 3.3.0 või uuem, Automake 1.8, Autoconf 2.5X (parem oleks >=2.57, sest väiksemate versioonidega on teada mõned vead), Subversioni (svn) klient, C++ toetusega gcc kompilaator, libxml2, openssl, libbz2 ja veel terve rida asju (täieliku nimekirja toob ära sait KDE Compilation Requirements). Üldiselt peaks neid juba eelnevalt kompileerituna tarkvarapakettidena jagama sinu distributsiooni looja.

Osa neist tarkvarapakettidest on jagatud teekide, programmide või utiliitide ja arenduspakettideks. Sul läheb vaja vähemalt programmi- või teegi- ja arenduspaketti. Kahtluse korral paigalda kõik. Vajalikud teegid sõltuvad moodulitest, mida kavatsed ehitada, sest igal moodulil on oma nõuded. Täpsemalt kõneleb paigaldamiseks vajalikest tööriistadest ja võtetest ning nõutud tarkvarast dokument Building &kde; from Source Step by Step Guide.

Tõenäoliselt on skript &kdesvn-build; juba sinu süsteemi paigaldatud, kui sa käesolevat käsiraamatut loed. &kdesvn-build; nõuab, et looksid konfiguratsioonifaili nimega `.kdesvn-buildrc`. See peab asuma kodukataloogis (~/) ja sisaldama kõiki konfiguratsiooniandmeid, mida skript tööks vajab, näiteks konfiguratsioonivõtmeid, kompileerimisvõtmeid, lähtetekstide asukohti, paigalduse sihtkohta (prefiksit), ehitatavate moodulite nimekirja &etc; Vaikimisi konfiguratsiooniandmeid pakub fail `kdesvn-buildrc-sample`. Rohkem infot konfiguratsioonifaili süntaksi kohta annavad configure-data ja kdesvn-buildrc.

Värskeima versiooni hankimiseks uuri veebisaidil websvn.kde.org kataloogi kdesdk/scripts. Seal näed kõiki faile, mida pakub &kde; &svn;i hoidla alljaotus kdesdk/scripts. Klõpsa &kdesvn-build;'i lingil ja tõmba skripti värskeim versioon. Võta samasugune operatsioon ette failiga `kdesvn-buildrc-sample`. Muuda skript käivitatavaks ja kontrolli, et see asuks sinu otsinguteel (PATH).

### Konfiguratsiooniandmete määramine

Skripti kasutamiseks peab sinu kodukataloogis asuma fail nimega `.kdesvn-buildrc`, mis määrab üldised võtmed ning moodulid, mida soovid alla laadida ja ehitada.

Kasuta globaalsete võtmete ja ehitatavate moodulite määramisel eeskujuna faili `kdesvn-buildrc-sample`.

Vali globaalset võtit svn-server määrates server, kust soovid &svn;i väljavõtte teha. Vaikimisi on see anonüümne &svn;i hoidla svn://anonsvn.kde.org/, kuid seda võib mõistagi muuta, kui sul on &kde; &svn;i konto või kui on mõni sulle lähedasem peegelsait.

Pööra tähelepanu globaalsetele muutujatele kdedir ja qtdir, kuna esimene neist määrab, kuhu sinu ehitatav &kde; paigaldatakse (vaikimisi `~/kde`), ning teine, kus (kui üldse) ehitatakse ja kuhu paigaldatakse sinu Qt teek (vaikimisi `~/kdesvn/build/qt-copy`). Muutujaid kdedir ja qtdir pead teadma ka hiljem, et määrata keskkonnamuutujad, mida läheb tarvis uue paigalduse tööks. Kontrolli, kas kirjasolevad moodulid on ikka need, mida soovid ehitada. Faili `kdesvn-buildrc-sample` vaikevõtmed peaksid sobima üsna hästi korraliku &kde; paigalduse tekitamisesks. Salvesta lõplik `.kdesvn-buildrc` oma kodukataloogi.

Kui soovid faili `.kdesvn-buildrc` väga täpselt oma vajadustele kohandada, räägib konfiguratsioonivõtmetest lähemalt kdesvn-buildrc.

### Skripti &kdesvn-build; kasutamine

Nüüd oled valmis skripti käivitama. Logi terminaliaknas sisse selle kasutaja õigustega, kelle lõid &kde; kompileerimiseks, ning käivita skript:

    %su - kasutajanimi
    %kdesvn-build

Nüüd peaks skript hakkama lähteteksti alla laadima ja seda kompileerima. Pole väga usutav, et sul õnnestub kohe esimese korraga &kde; igati edukalt kompileerida. Kuid ära heida meelt! Kontrolli logifaile, kust peaks selguma, kas sul puudusid mingid tööriistad või arenduspaketid (logifailide asukoha määrab konfiguratsioonifailis võti log-dir). Mõnikord on arendusharu üsna ebastabiilne ega taha lasta kuidagi ennast ehitada, eriti siis, kui arenduse külmutamispunkt peaks lähedal olema. Nii et ole kannatlik. Rohkem näiteid asjade kohta, mis saavad valesti minna, ja võimaluste kohta neid probleeme lahendada, samuti üldisi &kde; ehitamise nippe ja strateegiaid pakub dokument Building &kde; from Source Step by Step Guide.

### Värske &kde; töökeskkonna määramine

Eeldusel, et lõid &kde; ehitamiseks spetsiaalse kasutaja ja sul on juba paigaldatud &kde; versioon, on oma uue &kde; töölepanek mõnevõrra keerulisem, sest vana asemel peab ju käivituma uus &kde;. Selleks tuleb muuta keskkonnamuutujaid.

Ava kodukataloogis lemmikredaktoriga fail `.bash_profile` ja lisa selle lõppu:

    KDEDIR=(kdedir'i asukoht)
    KDEDIRS=$KDEDIR
    PATH=$KDEDIR/bin:$QTDIR/bin:$PATH
    LD_LIBRARY_PATH=$KDEDIR/lib:$LD_LIBRARY_PATH
    export KDEDIRS PATH LD_LIBRARY_PATH

Kui aga ehitad qt-copy moodulit, lisa:

    QTDIR=(qtdir'i asukoht)
    KDEDIR=(kdedir'i asukoht)
    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

Kui sa ei tarvita spetsiaalset kasutajat, määra oma failis `.bash_profile` uuele keskkonnale teistsugune `$KDEHOME`:

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

    # Vajaduse korral loo
    [ ! -e ~/.kde-svn ] && mkdir ~/.kde-svn

Kui hiljem peaks menüü tühi olema või hoopis liiga täis, võib olla vajalik failis `.bash_profile` kindlaks määrata ka xdg keskkonnamuutuja:

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

Nüüd, kus see on tehtud, kontrolli, et kasutataks ikka õiget skripti startkde:

Ava kodukataloogis tekstifail `.xinitrc` (sõltuvalt distributsioonist võib see olla ka `.xsession`) või loo see vajaduse korral. Lisa rida:

    exec ${KDEDIR}/bin/startkde

Nüüd käivita oma uus &kde;: virtuaalsete terminalide toetusega BSD ja Linuxi süsteemides kasutatakse klahvikombinatsioone Ctrl+Alt+F1...F12 lülitumiseks vastavalt virtuaalsele konsoolile 1 kuni 12. See võimaldab korraga panna tööle enam kui ühe töökeskkonna. Esimesed kuus on tekstiterminalid, viimased kuus graafilised kuvad.

Kui sinu ette ilmub pärast arvuti käivitamist graafiline kuvahaldur, võid uue KDE töökeskkonna käivitada ka siis, kui seda valikute seas ei leidu. Selleks vajuta lihtsalt Crtl + Alt + F2 ning sinu ette ilmub tekstiterminal. Logi sisse spetsiaalse kasutajana ja anna käsk:

    startx -- :1

Lähtekoodist paigaldatud ja vana KDE võivad isegi korraga töötada! Logi sisse tavalise kasutajana ja käivita stabiilne KDE töölaud. Vajuta Crtl + Alt + F2 (või F1, F3 jne.) ning sinu ette ilmub tekstiterminal. Logi sisse spetsiaalse kasutajana ja anna käsk "startx -- :1". Tavalise kasutaja töölauale saad tagasi liikuda klahvikombinatsiooniga Crtl + Alt + F6 (või F7, F8 jne. - proovi, milline on see õige!). Lähtekoodist paigaldatud KDE juurde pääsed uuesti klahvikombinatsiooniga Crtl + Alt + F7 (või F6, F8 jne.). Nüüd võid lülituda erinevate KDE seansside vahel ja testida uut keskkonda teadmises, et saad alati turvaliselt naasta stabiilsele KDE töölauale.

## Skripti omadused

&kdesvn-build;'i peamised omadused on järgmised:

- Moodulite automaatne väljavõtmine või uuendamine &svn;ist (kui vaja).

- Mõõdab moodulite ehitamise aega.

- Püüab automaatselt ümber ehitada mooduelid, mis kasutavad kasvavat make'i (tõsi, see ei pruugi alati õnnestuda).

- Võib jätkata kohast, kus eelmine skript pooleli jäi, või alustada ehitamist konkreetsest moodulist.

- Pakub omalt poolt välja mõistliku valiku vaikevõtmeid &kde; elementaarse ühekasutajapaigalduse tekitamiseks anonüümse &svn;i hoidla lähtekoodi põhjal.

- Toetab Unsermake'i kasutamist.

- Võimaldab tildega konfiguratsioonivõtmeid laiendada. Nii võib näiteks määrata:

      qtdir ~/kdesvn/build/qt-copy

- Seadistatavad ehitamis-, lähtekoodi- ja logikataloogid

- Automaatne ehitussüsteemi loomine, milles lähtekoodikataloog erineb ehitamiskataloogist, et tagada lähtekoodikataloogi rikkumatus. Erandiks on qt-copy, mille ehitamine ei olegi nii mõeldud (kui sa ei soovi just testida qt'd eraldi ehituskataloogi võttega).

- Saab määrata globaalsed võtmed kõigile väljavõetavale moodulile, samuti võtmed igale moodulile eraldi.

- Kuna auto-tööriistad ei suuda mõnikord käia kaasas lähtekoodipuu muudatustega, saab mooduli ümberehitamise peale sundida, luues vajaliku mooduli ehituskataloogis faili .refresh-me või käivitates &kdesvn-build;'i võtmega `--refresh-build`.

- Saab määrata mitmesuguseid ehitamise ajal kasutatavaid keskkonnamuutujaid, sealhulgas `KDEDIR`, `QTDIR`, `DO_NOT_COMPILE` ja `CXXFLAGS`.

- Käskude logimine. Logid dateeritakse ja nummerdatakse, nii et iga skripti käivitamise kohta on alati omaette logi. Samuti osutab spetsiaalne link nimega latest alati logikataloogi kõige uuemale logile.

- Kui ehitad &kde; kasutajale, mitte süsteemsena (viimaseks peab olema administraator), saab lasta skriptil enda eest paigaldamine ära teha. See kood ei ole küll saanud vajalikku tähelepanu ning kasutab ohtralt funktsiooni `system()` väljakutseid, mistõttu hetkel ei ole ilmselt soovitatav seda administraatorina tarvitada.

- make-install-prefix võimaldab anda käsule make install prefiksi omaette käsuna, mis on kasulik näiteks sudo pruukimisel.

- Võtmega apidox saab lastada automaatselt ehitada ja paigaldada mõne mooduli API dokumentatsiooni.

- Välja võib võtta ainult osa &kde; &svn;i moodulist. Näiteks võib välja võtta ainult taglib moodulist kdesupport või ainult K3B moodulist extragear/multimedia. Skript võtab automaatselt välja kde-common, kui seda on ehitamiseks vaja

- Võimalik on teeselda millegi tegemist. Käsureal võtit `--pretend` või `-p` andes pakub skript väga põhjaliku käivitatavate käskude kirjelduse ilma neid tegelikult käivitatamata.

- Välja võib võtta &svn;i moodulite konkreetseid harusid. See võimalus ei ole veel küll veatu, kuid igatahes saab valida ehitamiseks vajaliku haru, kasutades konfiguratsioonivõtit module-base-path.

Mida &kdesvn-build; EI TEE:

- Kiireima &kde; &svn;i peegli leidmine. Skriptiga pole praegu kaasas isegi nende nimekirja, ehkki vaikimisi server peaks ka edukalt töötama.

- Hammaste pesemine. Seda pead igal hommikul ja õhtul ikka ise tegema.

- Skriptis võib esineda mõningaid vigu. Vabandame juba ette.

## Faili .kdesvn-buildrc vorming

Skripti kasutamiseks peab sul kodukataloogis olema fail `.kdesvn-buildrc`, mis kirjeldab mooduleid, mida soovid alla laadida ja ehitada.

See algab globaalsete võtmetega umbes nii:

    global
    võtme-nimi võtme-väärtus
    [...]
    end global

Sellele järgneb üks või enam moodulisektsiooni, mis näeb välja umbes nii:

    module mooduli-nimi
    võtme-nimi võtme-väärtus
    [...]
    end module

`mooduli-nimi` peab olema &kde; &svn;i hoidlas leiduva mooduli nimi (näiteks kdelibs või kdebase). Mõned võtmed tühistavad globaalsed võtmed, mõned täiendavad globaalseid võtmeid, mõningaid globaalseid võtmeid aga ei saagi millegagi tühistada.

Järgnevalt toome tähestiku järjekorras ära kasutatavate võtmete nimekirja. Klõpsuga võtme nimele näeb selle kohta rohkem infot. Kui mõni võti pole dokumenteeritud, saada palun autoritele e-kiri, kasutades aadressi, mille leiad eestpoolt.

- apidox ehitab API dokumentatsiooni.

- apply-qt-patches võimaldab kasutada qt-copy parandusi.

- binpath määrab muutuja `PATH`.

- branch teeb väljavõtte harust, mitte aga tüvest (trunk).

- build-dir määrab ehitamiskataloogi.

- checkout-only teeb väljavõtte ainult osast moodulist.

- colorful-output muudab skripti väljundi värviliseks.

- configure-flags määrab, milliste lippudega moodulit konfigureerida.

- cxxflags määrab muutuja `CXXFLAGS`.

- dest-dir muudab mooduli kataloogi nime.

- disable-agent-check takistab kdesvn-build'il kontrollimast ssh-agent'i olekut.

- do-not-compile määrab ehitamisest väljajäetavad kataloogid.

- inst-apps määrab täpselt, millised kataloogid ehitada ja paigaldada.

- install-after-build väldib paigaldamist pärast ehitamist.

- kdedir määrab kataloogi, kuhu KDE paigaldada.

- libpath määrab muutuja `LD_LIBRARY_PATH`.

- make-install-prefix paneb paigaldamise ajal tööle abiprogrammi (näiteks sudo).

- make-options edastab võtmed programmile make.

- manual-build takistab mooduli automaatset ehitamist.

- manual-update takistab mooduli juures igasugust automaatset tegevust.

- module-base-path muudab asukohta, kuhu moodul alla laadida (kasulik harude ja siltide puhul).

- niceness muudab protsessori prioriteeti.

- no-rebuild-on-fail takistab programmi make taaskäivitamist, kui see ebaõnnestub.

- qtdir määrab Qt asukoha.

- set-env määrab keskkonnamuutuja.

- source-dir muudab asukohta, kuhu laaditakse alla lähtekood.

- stop-on-failure sunnib kdesvn-build'i peatuma kohe vea tekkimisel.

- svn-server muudab serverit, kust lähtekood alla laaditakse.

- use-qt-builddir-hack võimaldab Qt korral kasutada lähtekoodikataloogist erinevat ehitamiskataloogi (nagu KDE puhul).

- use-unsermake võimaldab kasutada täiustatud unsermake'i ehitamissüsteemi.

Toome siin ära erinevate võtmete tabeli, kus neid on ka kommenteeritud. Kõik võtmed, mis tühistavad globaalse võtme, tühistavad ka käsureamääratluse.

## Võtmete tabel

Võtme nimi | Mooduli ja globaalse võtme suhe | Märkused
apidox | Tühistab globaalse väärtuse | Anna võtmele väärtuseks true, et &kdesvn-build; ehitaks ja paigaldaks mooduli API dokumentatsiooni automaatselt pärast tavalist ehitamist/paigaldamist. See toimib ainult moodulite korral, kus käsk `make apidox` tõesti midagi teeb, näiteks kdelibs, kdebase ja koffice.
apply-qt-patches | Tühistab globaalse väärtuse | See võti käib ainult qt-copy kohta. Kui väärtuseks on midagi muud kui null, siis käivitatakse enne ehitamist qt-copy kataloogis skript apply-patches, millega qt-copy'le lisatakse mitteametlikud paigad. Kuna need paigad ongi enamasti põhjuseks, miks kasutada qt-copy't, mitte aga tavalist Qt'd, siis ei tohiks üldiselt mingit kahju sündida. Vaikimisi on paikade kasutamine sisse lülitatud.
binpath | Ei ole tühistatav | Selle võtmega saab ehitamiseks määrata keskkonnamuutuja PATH. Seda ei saa moodulivõtmega tühistada. Vaikimisi on väärtuseks `/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin`. Keskkonnamuutuja peab koolonitega eraldatult sisaldama sinu arendustööriistade asukohti. Asukohad `$KDEDIR/bin` ja `$QTDIR/bin` lisatakse automaatselt. Selle võtme juures võib iga asukoha määramisel tarvitada ka tildet (~).
branch | Tühistab globaalse väärtuse | Selle võtmega saab määrata KDE haru väljavõtmise, mitte aga vaikimisi väljavõetava tüve ("trunk"), kus üldiselt käib põhiline arendustegevus. Näiteks KDE 3.4 haru väljavõtmiseks määra võtme väärtuseks "3.4". Pane tähele, et mõned moodulid kasutavad teistsugust harunime. Eriti paistab selles mõttes silma nõutav moodul arts. KDE 3.4 korral on õigeks versiooniks 1.4. Kui kdesvn-build ei suuda antud võtmega haru korralikult alla laadida, võib olla vajalik käsitsi määrata allalaadimiskoha URL võtmega override-url.
build-dir | Tühistab globaalse väärtuse | Selle võtmega saab muuta ehitamiseks kasutatava lähtekoodikataloogi asukohta. Seda saab määrata kolmel viisil: Suhteline &kde; &svn;i lähtekoodikataloogi suhtes (vaata the source-dir option). See on vaikevalik, mida skript kasutas versiooni 0.61. See valitakse juhul, kui annad kataloogi nime, mille alguses ei seisa tilde (~) või kaldkriips (/). Vaikeväärtus on `build`. Absoluutne asukoht. Kui määrad asukoha, mille alguses seisab kaldkriips (/), kasutatakse täpselt määratud asukohta. Näide: `/tmp/kde-obj-dir/`. Suhteline kodukataloogi suhtes. Kui määrad asukoha, mille alguses seisab tilde (~), arvestatakse seda asukohta sinu kodukataloogist lähtudes. Näide: `~/builddir` määrab ehitamiskataloogiks `/home/user-name/builddir`. Mõnevõrra üllatuslikult saab seda võtit muuta ka igas moodulis eraldi.
checkout-only | Tühistab globaalse väärtuse | Selle võtmega saab määrata &svn;i lähtekoodi väljavõtmise jupphaaval. Võtme väärtus kujutab endast tühikutega eraldatud väljavõetavate kataloogide nimekirja. Kui kataloog admin andmata jätta, lisatakse see automaatselt (vajaduse korral muidugi). Jupphaaval välja võttes hangitakse kataloog admin moodulist kde-common, kus see &svn;i serveris vaikimisi paiknebki. Ehkki see võti tühistab globaalse võtme, pane tähele, et selle määramine globaalse võtmena pole just eriti mõttekas.
configure-flags | Täiendab globaalset võtit (v.a. qt-copy korral) | Selle võtmega saab määrata, millised lipud edastada käsule ./configure mooduli ehitamissüsteemi loomisel. Kasutamisel globaalse võtmena rakendatakse seda kõigile moodulitele, mida skriptiga ehitatakse. qt-copy kasutab märksa teistsugust konfiguratsioonivõtmete valikut kui ülejäänud &kde;. mis tähendab, et see võti tühistab globaalsed seadistused, kui seda rakendatakse ka qt-copy jaoks.
colorful-output | Ei ole tühistatav | Määra väärtuseks 'false', kui soovid keelata &kdesvn-build;'i värvilise väljundi. Vaikimisi on väärtuseks true. Pane tähele, et &kdesvn-build; saadab värvikoodid ainult terminali (näiteks xterm, &konsole; või tavaline Linuxi konsool).
cxxflags | Täiendab globaalset võtit | Selle võtmega saab määrata, millised lipud edastada käsule `./configure` kui `CXXFLAGS` mooduli ehitamissüsteemi loomisel. See võti on siin võtme configure-flags asemel, sest see määrab ka ehitamise ajal keskkonnamuutuja `CXXFLAGS`.
dest-dir | Tühistab globaalse väärtuse | Selle vätmega saab määrata moodulile kettal antava nime. Kui näiteks moodul on extragear/network, saab selle võtmega anda sellele nimeks extragear-network.
disable-agent-check | Ei ole tühistatav | Kui kasutad Subversion-lähtekoodi allalaadimiseks SSH-d (näiteks protokolli svn+ssh puhul), siis kdesvn-build püüab tavaliselt kontrollida, et ssh-agent haldaks tõepoolest mingeid SSH-identiteete. Nii saab vältida seda, et SSH päriks iga mooduli korral paroolifraasi. Soovi korral võib selle kontrolli välja lülitada, andes võtmele väärtuseks 'true'.
do-not-compile | Tühistab globaalse väärtuse | Selle võtmega saab määrata enne konfigureerimisskripti käivitamist keskkonnamuutuja `DO_NOT_COMPILE`. Vastavalt dokumendile &kde; Developer FAQ ei ehitata selle korral ühtegi määratud tipptaseme kataloogi. Kataloogid tuleb eraldada tühikuga. Pane tähele, et programmide lähtekood laaditakse sellele vaatamata alla. Määramaks, milliseid katalooge alla laaditakse, kasuta võtit checkout-only.
email-address | Ei ole tühistatav | Selle võtmega saab määrata e-posti aadressi, mida kdesvn-build kasutab, kui tal peaks tekkima vajadus e-kirja saata. Selle üle ei peaks muret tundma, kui sa ei kasuta mõnda e-posti võimalusega omadust (vaikimisi on need välja lülitatud). Praegu vajab seda võtit ainult võti email-on-compile-error.
email-on-compile-error | Ei ole tühistatav | Selle võtmega võib määrata e-posti aadressi, kuhu saata kiri, kui mooduli ehitamine ebaõnnestub. kdesvn-build ootab, kuni kõigi moodulite ehitamine on lõppenud ja koondab siis kõik tulemused rapordisse. Raport saadetakse ainult siis, kui mooduli ehitamine ebaõnnestus. Võtmega email-address saab määrata aadressi, mida kdesvn-build saatmisel kasutab. Kontrolli seda, sest vaikimisi ei ole see arvatavasti sugugi selline, nagu vaja.
inst-apps | Tühistab globaalse väärtuse | See on vastupidine võtmele do-not-compile. Sellega saab määrata, et ehitatakse ainult kindlad tipptaseme kataloogid. Kataloogid tuleb eraldada tühikuga. Muudatused jõustuvad alles siis, kui käsk `make `-f` Makefile.cvs` uuesti käivitatakse - kas automaatselt skripti poolt või käsitsi võtmega `--refresh-build` või `--recreate-configure`. Pane tähele, et programmide lähtekood laaditakse sellele vaatamata alla. Määramaks, milliseid katalooge alla laaditakse, kasuta võtit checkout-only.
install-after-build | Tühistab globaalse väärtuse | Selle võtmega saab paketi paigaldada pärast edukat ehitamist. Vaikimisi on see sisse lülitatud. Kui soovid seda keelata, määra selle võtme väärtuseks konfiguratsioonifailis 0. Samuti võib tarvitada käsurealippu `--no-install`.
kdedir | Ei ole tühistatav | Selle võtmega määratakse kataloog, kuhu &kde; pärast ehitamist paigaldatakse. Vaikimisi on selleks `~/kde`. Kui määrad siin kataloogi, mille ligipääs nõuab administraatori õigusi, tasuks tutvuda ka võtme make-install-prefix kirjeldusega.
libpath | Ei ole tühistatav | Selle võtmega saab määrata ehitamise ajal kasutatava keskkonnamuutuja LD_LIBRARY_PATH. Seda ei saa moodulivõtmega tühistada. Vaikimisi on see tühi, kuid asukohad `$KDEDIR/lib` ja `$QTDIR/lib` lisatakse automaatselt. Võtme juures võib iga asukoha määramisel kasutada tildet (~).
log-dir | Tühistab globaalse väärtuse | Selle võtmega saab muuta kataloogi, kus hoitakse skripti tekitatud logifaile. Alates skripti versioonist 0.64 saab seda määrata igale moodulile eraldi.
make-install-prefix | Tühistab globaalse väärtuse | Selle võtmega saab tühikutega eraldatult määrata nimekirja, mida tõlgendatakse käsu ja selle võtmetena, mis lisatakse moodulite paigaldamiseks kasutatava käsu make install ette. See on kasulik näiteks pakettide paigaldamisel sudo'ga, kuid palun ole ettevaatlik, kui tegemist on administraatori õigustega.
make-options | Tühistab globaalse väärtuse | Selle muutujaga saab edastada käsule make käsureavõtmeid. See on kasulik sellistele programmidele nagu distcc. distcc võimaldab jagada kompileerimise tulemust enam kui ühele arvutile. Selle kasutamiseks tuleb edastada käsule make võti `-j`. Vastavalt dokumentatsioonile on soovitatav lisada sellele arv kujul 2 * võrguprotsessorite_arv. Kui sul on kokku ainult üks protsessor, siis peaks see olema `-j2`.
manual-build | Tühistab globaalse väärtuse | Määra võtme väärtuseks true, kui soovid, et ehitamisel ei ehitataks antud moodulit. &svn;ist uuendamisel seda siiski uuendatakse. See on samaväärne käsureavõtmega `--no-build`.
manual-update | Tühistab globaalse väärtuse | Määra võtme väärtuseks true, kui soovid, et ehitamisel ei üritataks moodulit uuendada (ja seeläbi ka ehitada ega paigaldada). Kui määrad selle võtme moodulile, siis tähendab see sisuliselt selle kõrvalejätmist ehitamisest.
module-base-path | Tühistab globaalse väärtuse | Selle võtmega saab tühistada &kdesvn-build;'i vaikimisi kataloogiasukoha antud moodulile. Seda saab kasutada näiteks konkreetse haru või sildi väljavõtmiseks. Õige asukoha määratlemisel on kindlasti hindamatuks abiks &kde; lähtekoodi hoidla veebis. Pane tähele, et &kdesvn-build; loob lõpliku asukohta järgmise malli põhjal: `$svn-server`/home/kde/`$module-base-path`/`$module-name`. Vaikeväärtus on sõltuvalt moodulinimest trunk või trunk/KDE.
niceness | Ei ole tühistatav | Selle võtme väärtus on arv vahemikus 20 kuni 0. Mida suurem arv, seda väiksem on prioriteet, mida &kdesvn-build; endale omistab. Vaikeväärtus on 10.
no-rebuild-on-fail | Tühistab globaalse väärtuse | Määra selle võtme väärtuseks true, kui soovid vältida, et &kdesvn-build; hakkaks moodulit ümberehitama, kui inkrementehitamine ei õnnestu. Tavaliselt püüab &kdesvn-build; mooduli algusest peale ümber ehitada, et takistada &svn;i uuendamise halba mõju ehitamissüsteemile.
override-url | Tühistab globaalse väärtuse | Selle võtme kasutamisel tarvitab kdesvn-build selle väärtust URL-ina, mis edastatakse Subversionile täiesti muutmatult. Üldiselt tuleks seda kasutada siis, kui soovid alla laadida konkreetset väljalaset, kuid kdesvn-build ei suuda sinu soovides võtme branch põhjal aru saada.
qtdir | Ei ole tühistatav | Selle võtmega saab määrata ehitamisel kasutatava keskkonnamuutuja QTDIR. Seda ei saa moodulivõtmega tühistada. Kui see pole määratud, kasutatakse vaikimisi asukohta ``$(source-dir)`/build/qt-copy`, mis kasutab &kde; lähtekoodihoidlas leiduvat qt-copy moodulit. Kodukataloogi tähistamiseks võib kasutada tildet (~).
remove-after-install | Tühistab globaalse väärtuse | Kui sul napib kõvakettal ruumi, võib selle võtmega lasta automaatselt kustutada ehitamiskataloogi (või ka korraga nii lähtekoodi- kui ka ehitamiskataloogi) pärast mooduli edukat paigaldamist. Võtme võimalikud väärtused on järgmised: none - midagi ei kustutata (vaikimisi). builddir - kustutatakse ehitamiskataloog, aga mitte lähtekoodikataloog. all - kustutatakse nii lähtekoodi- kui ehitamiskataloog. Pane tähele, et selle võtme kasutamine mõjutab päris negatiivselt nii sinu tekitatavat võrgukoormust (kui kasutad väärtust 'all') kui ka KDE kompileerimiseks kuluvat aega, sest kdesvn-build ei saa sel juhul kasutada inkrementehitamist.
set-env | Tühistab globaalse väärtuse | Selle võtme juures saab anda tühikuga eraldatult väärtuste nimekirja, mille esimene väärtus on määratav keskkonnamuutuja ja ülejäänud selle muutuja väärtused. Näiteks muutujale RONALD väärtuse McDonald andmine käib nii:
    set-env RONALD McDonald
See võti on eriline selle poolest, et seda võib korrata ilma varasemaid set-env määratlusi konfiguratsioonifaili samas sektsioonis tühistamata. Sel moel võid moodulis (või ka globaalselt) määrata mitu keskkonnamuutujat.
source-dir | Ei ole tühistatav | Selle võtmega saab määrata kataloogi oma arvutis, kuhu salvestatakse &kde; &svn;i lähtekood. Kui see pole määratud, kasutatakse vaikeväärtusena `~/kdesvn`. Väärtuse määramisel tuleks kasutada absoluutset asukohta.
svn-server | Ei ole tühistatav | Selle võtmega saab määrata serveri, kust &svn; välja võetakse. Vaikimisi on see anonüümne &svn;i hoidla svn://anonsvn.kde.org/.
stop-on-failure | Tühistab globaalse väärtuse | Määra selle võtme väärtuseks true, kui soovid, et skript peataks töö pärast vea tekkimist ehitamisel või paigaldamisel. Vaikimisi on see välja lülitatud.
tag | Tühistab globaalse väärtuse | Selle võtmega saab alla laadida mooduli konkreetse väljalaske. MÄRKUS: on üsna usutav, et SA EI SOOVI seda võtit kasutada. KDE väljalasked asuvad tar-failidena KDE FTP-saidil ning selle peegelsaitidel. Kui kasutad kdesvn-build'i sellepärast, et sul on probleeme sinu distributsioonile mõeldud KDE väljalasetega, võiks kaaluda mõte pruukida ehitamistööriista Konstruct, mis kasutab väljalasete tar-faile.
use-qt-builddir-hack | Tühistab globaalse väärtuse | Kuigi see võti tühistab globaalse võtme, on sel mõtet ainult qt-copy korral. Määra võtme väärtuseks true, kui soovid lubada skriptil tarvitada eksperimentaalset srcdir != builddir režiimi. Sisselülitamise korral kopeerib &kdesvn-build; qt-copy lähtemooduli ehitamiskataloogi ja sooritab ehitamise seal. See tähendab, et keskkonnamuutuja QTDIR väärtuseks tuleb määrata `$(qt-copy-build-dir)/qt-copy/lib`. Samuti tuleb vastavalt muuta võtit qtdir. Selles režiimis saab kasutada ka inkrement-make'i, sest kopeerimise järel säilitatakse ajatemplid. Kui tarvitad võtit apply-qt-patches, rakendatakse paigad ehitamis-, mitte lähtekoodikataloogis. Vaikimisi on võtme väärtuseks true.
use-unsermake | Tühistab globaalse väärtuse | Määra võtme väärtuseks true, kui soovid konfigureerimisskripti käivitamisel kasutada atuomake'i asemel eksperimentaalset unsermake'i. See võib mõnikord suurendada tublisti ehitamisaega, eriti jagatud ehitamissüsteemi korral. Vaikimisi on väärtuseks enamiku moodulite korral true. Tavaliselt püüab kdesvn-build selle võtme kasutamisel hoida unsermake'i alati värskena. See võib muutuda tülikaks, eriti kui soovid unsermake'i ise hallata. Sel juhul anna võtmele väärtuseks self ja kuigi kdesvn-build kasutab sel juhul endiselt unsermake'i, ei üritata seda värskena hoida.

## Käsureavõtmed ja keskkonnamuutujad

Skript ei kasuta keskkonnamuutujaid. Kui sul on vaja ehitamiseks või paigaldamiseks määrata keskkonnamuutujaid, uuri võtme set-env kirjeldust.

Skript tunnistab järgmisi käsureavõtmeid:

`--help`

- Näitab lihtsat abiinfot skripti kohta.

`--version`

- Näitab programmi versiooni.

`--author`

- Näitab autori kontaktinfot.

`--color`

- Lubab värvilise väljundi.

`--no-color`

- Keelab värvilise väljundi.

`--pretend` (või `-p`)

- Tegelikult EI VÕETA midagi ette, vaid ainult teeseldakse.

`--quiet` (või `-q`)

- Väljund on väheminformatiivsem, näidatakse ainult kõige olulisemaid teateid.

`--really-quiet`

- Väljund näitab ainult hoiatusi ja veateateid.

`--verbose`

- Väljund näitab põhjalikult kõike, mis toimub.

`--svn-only`

- Võetakse ette ainult lähtekoodi uuendamine.

`--build-only`

- Võetakse ette ainult ehitamine.

`--ignore-modules`

- Uuendamisse/ehitamisse ei kaasata ülejäänud käsureal antud mooduleid.

`--no-svn`

- Ei looda ühendust &svn;i serveriga.

`--no-build`

- Ehitamine jäetakse vahele.

`--no-install`

- Pakette ei paigaldata pärast ehitamist automaatselt.

`--debug`

- Lülitab sisse silumisrežiimi. Praegu tähendab see seda, et lisaks logimisele logikataloogi saadetakse kogu väljund ka standardväljundisse (STDOUT). Samuti annavad paljud funktsioonid silumisrežiimis märksa enam infot oma tegevuse kohta.

`--no-rebuild-on-fail`

- Ei üritata algusest peale ümber ehitada mooduleid, mille ehitamine ebaõnnestus. &kdesvn-build; ei ürita seda kunagi mooduli korral, mida on juba püütud algusest peale ehitada.

`--refresh-build`

- Taasluuakse ehitamissüsteem ja alustatakse algusest peale.

`--reconfigure`

- Käivitatakse uuesti konfigureerimisskript ilma ehitamiskataloogi puhastamata.

`--recreate-configure`

- Antakse uuesti käsk `make `-f` Makefile.cvs`, et luua konfigureerimisskript ja jätkata ehitamist normaalselt. See eeldab võtit `--reconfigure`.

`--resume`

- See üritab jätkata ehitamist sealt, kus skript eelmisel korral pooleli jäi. Skript hakkab ehitama moodulit, mis järgneb moodulile, mida kompoleeriti skripti viimasel töökorral (sõltumata sellest, kas ehitamine oli edukas või mitte). See eeldab võtit `--no-svn`. Käsureal ei tohi määrata teisi moodulinimesid.

`--resume-from`

- Sarnaneb võtmega `--resume`, ainult et sul tuleb anda käsureal parameetrina moodul, millest ehitamist alustada. See eeldab võtit `--no-svn`. Käsureal ei tohi määrata teisi moodulinimesid.

`--rc-file`

- Järgmist käsureal antud parameetrit tõlgendatakse failina, millest lugeda konfiguratsioonivõtmed. Vaikeväärtus on ~/.kdesvn-buildrc.

`--prefix=</kde/asukoht>`

- Võimaldab muuta kataloogi, kuhu &kde; paigaldatakse. See eeldab võtit `--reconfigure`.

`--build-system-only`

- Peatab skripti töö pärast käsu `make `-f` Makefile.cvs` täitmist. Konfiguratsiooniskripti paneb &kdesvn-build; tööle siis alles järgmisel käivitamisel. See võimaldab kõik konfiguratsiooniskriptid korraga ette valmistada, nii et saad vaadata igas moodulis `./configure `--help`` ja muuta vastavalt konfigureerimislippe.

`--install`

- Kui see on ainus käsureavõti, üritatakse paigaldada kõik edukalt ehitatud moodulid, välja arvatud qt-copy, mis ei vaja paigaldamist. Kui pärast võtit `--install` esineb veel käsureavõtmeid, tõlgendatakse neid paigaldatavate moodulitena.

`--<võtme-nimi>=`

- Selle võtmega saab kõigi mooduli jaoks tühistada konfiguratsioonifailis leiduva võtme. Kui näiteks soovid tühistada võtit log-dir, siis see käib nii: `--log-dir=/kataloogi/asukoht`.

`--<mooduli-nimi>,<võtme-nimi>=`

- Selle võtmega saab iga mooduli jaoks tühistada konfiguratsioonifailis leiduva võtme. Kui näiteks soovid tühistada võtit use-unsermake moodulis kdemultimedia, siis see käib nii: `--kdemultimedia,use-unsermake=false`.

Kõiki muid käsureavõtmeid tõlgendatakse uuendatavate ja ehitatavate moodulitena. Palun ära aja ehitamist segamini paigaldamisega.

## Autorid ja litsents

&underFDL;