# Manuale dello script &kdesvn-build;

## Introduzione

&kdesvn-build; è uno script Perl che aiuta gli utenti ad installare &kde; da &svn;. Potresti anche considerare lo script `kde-build` incluso con il modulo kdesdk di &kde;.

Qui documentiamo la sintassi e le opzioni del file di configurazione di &kdesvn-build;, le sue opzioni alla riga di comando, le sue funzionalità, e una panoramica di tutti i passi necessari a generare &kde; dal codice sorgente, inclusi i passi che dovresti effettuare con altri strumenti, ovvero quelli non effettuati automaticamente dallo script &kdesvn-build;.

## Per cominciare

In questo capitolo, mostriamo come usare &kdesvn-build; per ritirare i moduli dal deposito di &kde; e generarli. Diamo anche una rapida spiegazione della struttura del deposito &svn; di &kde; e di cosa devi fare prima di eseguire lo script.

Tutti gli argomenti qui presenti sono trattati in maggiore dettaglio nella guida a generare &kde; dai file sorgente, al sito Web della squadra di qualità di &kde;. Se stai compilando &kde; per la prima volta, è una buona idea leggerla, o almeno consultarla come riferimento. Troverai informazioni dettagliate sugli strumenti di gestione dei pacchetti e su requisiti, errori comuni di compilazione, strategie e informazioni su come far funzionare la tua nuova installazione di &kde;.

### Preparare il sistema per la generazione di &kde;

Si raccomanda di scaricare e generare &kde; usando un account utente. Se hai già installato i pacchetti di &kde;, la scelta migliore sarebbe creare un utente diverso (apposito) per generare ed avviare il nuovo &kde;. Il vantaggio di generare &kde; con un utente apposito è che non puoi rovinare il sistema di base, e avrai sempre il modo di continuare a lavorare tranquillamente anche se qualcosa va storto.

In seguito, se vorrai, potrai fare un'installazione come amministratore. Questo documento non considera l'installazione come amministratore. Se stai facendo un'installazione per tutto il sistema, probabilmente sai comunque lo stesso quello che stai facendo.

Prima di usare lo script &kdesvn-build; (o qualsiasi altra strategia di generazione) devi installare gli strumenti di sviluppo e le librerie necessarie a &kde;. Ti serve la libreria &Qt;, versione 3.3.0 o successiva, Automake 1.8, Autoconf 2.5X (meglio se successivo a 2.57, siccome è stato segnalato un errore nelle versioni precedenti), il client di Subversion (SVN), il compilatore gcc con supporto per C++, libxml2, openssl, libbz2 e molti altri (per un elenco completo, vedi i requisiti di compilazione di &kde;). Normalmente ci dovrebbero essere dei pacchetti di questi strumenti forniti dalla tua distribuzione o dal tuo fornitore.

Alcuni di questi pacchetti sono divisi in librerie, programmi e pacchetti di sviluppo. Ti serviranno almeno il programma o la libreria, e il suo pacchetto di sviluppo. Nel dubbio, installa tutto. Le librerie di cui avrai bisogno cambieranno a seconda dei moduli che intendi generare, perché ogni modulo ha i suoi requisiti. La guida passo-passo per la generazione di &kde; dal codice sorgente ha maggiori dettagli sugli strumenti e tecniche specifici usati per installare e trovare i programmi necessari.

Probabilmente hai già una versione dello script &kdesvn-build; installata sul tuo sistema. &kdesvn-build; ti richiede di creare un file di configurazione, chiamato `.kdesvn-buildrc`. Questo file dovrebbe venire installato nella cartella Home (cioè `~/`), e contenere tutti i dati di configurazione necessari per l'esecuzione dello script, come le opzioni di configurazione, di compilazione, la posizione dei sorgenti, la destinazione dell'installazione (il prefisso), i moduli da costruire, eccetera. I dati di configurazione predefiniti sono forniti nel file `kdesvn-buildrc-sample`. Puoi trovare maggiori informazioni sulla sintassi del file di configurazione nelconfigure-data e nel kdesvn-buildrc.

Un buon modo di prendere l'ultima versione è andare alla pagina kdesdk/scripts del sito Web websvn.kde.org. Vedrai un elenco dei file disponibili nella cartella kdesdk/scripts del deposito &svn; di &kde;. Fai clic sul collegamento a &kdesvn-build; e scarica l'ultima versione dello script. Fai lo stesso per il file `kdesvn-buildrc-sample`. Rendi eseguibile lo script, e assicurati che sia nel tuo percorso.

### Impostare i dati della configurazione

Per usare lo script, devi avere un file nella tua cartella Home chiamato `.kdesvn-buildrc`, che imposta le opzioni generali e i moduli che vuoi scaricare e generare.

Usa il file `kdesvn-buildrc-sample` come modello per impostare le opzioni globali e i moduli da generare.

Seleziona il server usato per ritirare i file da &svn; impostando l'opzione globale `svn-server`. Il valore predefinito è il deposito &svn; anonimo, `svn://anonsvn.kde.org/`, ma cambialo se hai un account &svn; di &kde;, o se hai un mirror vicino.

Fai molta attenzione alle variabili globali `kdedir` e `qtdir`, perché la prima imposta dove sarà generato &kde; (come impostazione predefinita `~/kde`), e la seconda dove (e se) sarà compilata e installata la libreria &Qt; (come impostazione predefinita `~/kdesvn/build/qt-copy`). Più avanti dovrai ricordarti il valore di `kdedir` e `qtdir`, per impostare le variabili d'ambiente necessarie a far funzionare la tua installazione. Controlla se i moduli elencati sono effettivamente quelli che vuoi generare. Le opzioni predefinite del file `kdesvn-buildrc-sample` dovrebbero essere sufficienti per avere un'installazione di &kde; piuttosto completa. Salva il risultato come `.kdesvn-buildrc` nella tua cartella Home.

Se vuoi affinare il file `.kdesvn-buildrc`, consulta kdesvn-buildrc per informazioni dettagliate su tutte le opzioni di configurazione.

### Usare lo script &kdesvn-build;

Adesso sei pronto per eseguire lo script. Da una finestra di terminale, accedi come l'utente che vuoi usare per compilare &kde; ed esegui lo script:

    %su - nome utente
    %kdesvn-build

Adesso lo script dovrebbe cominciare a scaricare il codice sorgente e a compilarlo. È improbabile che funzioni tutto al primo colpo nella compilazione di &kde;. Non disperare! Controlla i file di registro per vedere se ti mancano degli strumenti o dei pacchetti di sviluppo (i file di registro sono messi dove indicato dalla variabile `log-dir` nel file di configurazione). A volte, il ramo di sviluppo principale diventa molto instabile e difficile da generare, specialmente quando si avvicina una scadenza di sviluppo. Abbi pazienza. Puoi trovare gli esempi più comuni di cose che possono andare storte e le loro soluzioni, oltre a diversi suggerimenti e strategie per generare &kde;, nella guida passo-passo per generare &kde; dal codice sorgente.

### Impostare l'ambiente per far funzionare il tuo nuovo &kde;

Supponendo che tu stia usando un utente apposito per generare &kde;, e che tu abbia già installato una versione di &kde;, far funzionare il nuovo &kde; potrebbe essere un po' difficile, perché il nuovo deve prendere la precedenza sul vecchio. Cambia le variabili d'ambiente per assicurarti che sia così.

Apri o crea il file `.bash_profile` nella cartella Home con un qualsiasi editor di testo, e aggiungi alla fine del file:

    KDEDIR=(percorso a kdedir)
    KDEDIRS=$KDEDIR
    PATH=$KDEDIR/bin:$QTDIR/bin:$PATH
    LD_LIBRARY_PATH=$KDEDIR/lib:$LD_LIBRARY_PATH
    export KDEDIRS PATH LD_LIBRARY_PATH

Se stai generando il modulo `qt-copy`, aggiungi invece:

    QTDIR=(percorso a qtdir)
    KDEDIR=(percorso a 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

Se non stai usando un utente apposito, imposta una diversa variabile `$KDEHOME` per il tuo nuovo ambiente nel tuo `.bash_profile`:

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

    # Crealo se necessario
    [ ! -e ~/.kde-svn ] && mkdir ~/.kde-svn

Se in seguito il menu è vuoto o troppo affollato da applicazioni della tua distribuzione, potresti dover impostare le variabili d'ambiente `XDG` nel tuo `.bash_profile`:

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

Adesso che abbiamo finito, devi assicurarti che venga usato lo script di avvio startkde giusto:

Apri il file di testo `.xinitrc` (o `.xsession`, a seconda della distribuzione) dalla cartella Home, o crealo se necessario. Aggiungi la riga:

    exec ${KDEDIR}/bin/startkde

Adesso, avvia il tuo nuovo &kde;: nei sistemi BSD e Linux con supporto per i terminali virtuali, le combinazioni di tasti &Ctrl;&Alt;F1...F12 vengono usate per selezionare le console virtuali dalla 1 alla 12. Ciò permette di avere più di un ambiente desktop allo stesso tempo. Le prime sei sono terminali di testo, e le seguenti sono terminali grafici.

Se quando avvii la macchina ti viene invece presentato il gestore grafico, puoi usare il nuovo ambiente &kde;, anche se non è elencato come opzione. Premi &Ctrl;&Alt;F2, e ti troverai davanti a un terminale testuale. Accedi usando l'utente apposito e scrivi:

    startx -- :1

Puoi far girare il &kde; compilato dal codice sorgente e il vecchio &kde; allo stesso tempo! Puoi tornare al tuo utente normale premendo &Ctrl;&Alt;F7 (o F6, F8... provali, uno dev'essere quello giusto). Per tornare alla versione di &kde; dal codice sorgente, premi &Ctrl;&Alt;F8 (o il tasto giusto). Adesso puoi passare da una versione di &kde; all'altra, e provare quella nuova sapendo che puoi tornare rapidamente alla sicurezza del desktop &kde; stabile.

## Funzionalità dello script

Le funzionalità di &kdesvn-build; includono:

- Ritira o aggiorna automaticamente i moduli da &svn;, a seconda di cosa è appropriato.

- Prende il tempo di generazione dei moduli.

- Cerca automaticamente di rigenerare i moduli che usano il `make` incrementale, che tende a non riuscire dopo alcuni tipi di deposito.

- Può far ripartire uno script precedente, o avviare il processo di generazione da un modulo particolare.

- Ha già un insieme di opzioni predefinite appropriate per generare un'installazione monoutente di &kde; dal deposito anonimo di &svn;.

- Contiene supporto per Unsermake.

- Espansione della tilde per le opzioni di configurazione. Per esempio, puoi specificare:

      qtdir ~/kdesvn/build/qt-copy

- Cartelle di generazione, sorgente e registro configurabili

- Configura automaticamente un sistema di generazione, con la cartella del codice sorgente diversa da quella di generazione, per mantenere pulita la cartella sorgente. L'eccezione è qt-copy, che non è progettato per essere costruito in questo modo (a meno che tu voglia provare il trucco per usare una cartella di generazione separata con Qt.

- Puoi specificare che le opzioni globali si applichino a ogni modulo da ritirare, e puoi anche specificare opzioni da applicare a singoli moduli.

- Siccome gli Autotools a volte non sono sincronizzati con le modifiche nell'albero del codice sorgente, puoi forzare la rigenerazione di un modulo creando un file `.refresh-me` nella cartella di generazione del modulo, o eseguendo &kdesvn-build; con l'opzione `--refresh-build`.

- Puoi specificare varie variabili d'ambiente da usare durante la generazione, incluse `KDEDIR`, `QTDIR`, `DO_NOT_COMPILE` e `CXXFLAGS`.

- I registri dei comandi hanno data e ora, in modo da avere sempre un registro dell'esecuzione dello script. Inoltre, uno speciale collegamento simbolico chiamato `latest` viene creato e punta sempre al file più recente della cartella dei registri.

- Se stai usando una versione utente di &kde; invece di una di sistema (per installare la quale devi essere amministratore), puoi usare lo script per installarla al posto tuo. Non ho verificato bene il codice, e fa ampio uso della chiamata `system()`, quindi non raccomanderei di usarlo come amministratore per ora.

- Puoi usare make-install-prefix per prefissare la riga di comando di `make install` con un altro comando, cosa utile per `sudo`.

- Puoi usare l'opzione apidox per generare e installare automaticamente la documentazione dell'API per alcuni moduli.

- Puoi ritirare anche solo una parte di un modulo &svn; di &kde;. Per esempio, potresti ritirare solo taglib da kdesupport, o solo K3B da extragear/multimedia. Lo script includerà automaticamente kde-common quando necessario per far funzionare la generazione.

- Puoi far finta di fare le operazioni. Se passi le opzioni `--pretend` o `-p` sulla riga di comando, lo script darà una descrizione logorroica dei comandi che sta per eseguire, senza però eseguirli.

- Supporto per ritirare particolari rami dei moduli &svn;. Questo lavoro deve ancora essere completato, ma puoi già selezionare il ramo che vuoi generare usando l'opzione di configurazione `module-base-path`.

Cose che &kdesvn-build; non fa:

- Trovare il mirror &svn; di &kde;. Per ora non c'è nemmeno un elenco nello script, però il server predefinito dovrebbe funzionare senza problemi.

- Spazzolarti i denti. Quello te lo devi ricordare tu.

- Lo script probabilmente non è esente da errori. Scusa.

## Il formato di `.kdesvn-buildrc`

Per usare lo script, devi avere un file chiamato `.kdesvn-buildrc` nella tua cartella Home, il quale descrive i moduli che vuoi scaricare e generare.

Parte con le opzioni globali, specificate come segue:

    global
    nome-opzione valore-opzione
    [...]
    end global

Seguono quindi una o più sezioni per i moduli, specificate come segue:

    module nome-modulo
    nome-opzione valore-opzione
    [...]
    end module

`nome-modulo` deve essere un modulo del deposito &svn; di &kde; (per esempio, `kdelibs` o `kdebase`). Alcune opzioni sostituiscono quelle globali, alcune si aggiungono ad esse, e alcune opzioni globali non si possono sostituire.

Segue un elenco alfabetico delle opzioni disponibili. Fai clic sull'opzione per saperne di più. Se ne trovi una non documentata, scrivi agli autori usando l'indirizzo che trovi sopra.

- apidox, per generare la documentazione dell'API.

- apply-qt-patches, per migliorare qt-copy.

- binpath, per impostare la variabile `PATH`.

- branch, per ritirare da un ramo invece che dal tronco principale.

- build-dir, per impostare la cartella in cui generare.

- checkout-only, per ritirare soltanto alcune parti di un modulo.

- colorful-output, per aggiungere del colore all'output dello script.

- configure-flags, per definire quali flag con cui configurare un modulo.

- cxxflags, per definire la variabile `CXXFLAGS`.

- dest-dir, per cambiare il nome della cartella di un modulo.

- disable-agent-check, per evitare che &kdesvn-build; controlli lo stato dell'agente ssh.

- do-not-compile, per segnare le cartelle da non generare.

- inst-apps, per generare e installare solo alcune cartelle.

- install-after-build, per evitare di installare dopo il processo di generazione.

- kdedir, per impostare la cartella in cui installare &kde;.

- libpath, per impostare la variabile `LD_LIBRARY_PATH`.

- make-install-prefix, per avviare un programma di aiuto (come sudo) durante `make install`.

- make-options, per passare opzioni al programma `make`.

- manual-build, per evitare di generare il modulo automaticamente.

- manual-update, per evitare di fare qualsiasi cosa sul modulo in automatico.

- module-base-path, per cambiare da dove scaricare il modulo (utile per rami e tag).

- niceness, per cambiare la priorità nell'uso della CPU.

- no-rebuild-on-fail, per evitare di far ripartire `make` se non riesce.

- qtdir, per impostare il percorso alle librerie &Qt;.

- set-env, per impostare una variabile d'ambiente.

- source-dir, per cambiare da dove scaricare il codice sorgente.

- stop-on-failure, per far fermare &kdesvn-build; non appena qualcosa non riesce.

- svn-server, per cambiare il server da cui si scarica il codice sorgente.

- use-qt-builddir-hack, per dare a &Qt; una cartella di generazione separata dal suo codice sorgente, come per &kde;.

- use-unsermake, per usare il sistema di generazione avanzato unsermake.

Questa è una tabella delle varie opzioni con alcuni commenti. Ogni opzione che ne sostituisca una globale sostituirà anche un'impostazione della riga di comando.

## Tabella delle opzioni

Nome dell'opzione | Sostituibilità | Note
apidox | Sostituisce globale | Imposta questa opzione a `true` (vero) per fare in modo che &kdesvn-build; generi e installi la documentazione dell'API per il modulo dopo il normale processo di generazione e installazione. Questo funziona soltanto per i moduli nei quali `make apidox` ha effetto, tra cui kdelibs, kdebase, koffice e altri.
apply-qt-patches | Sostituisce globale | Questa opzione è utile solo per qt-copy. Se è impostata ad un valore non nullo, lo script `apply-patches` sarà eseguito prima della generazione, per applicare le patch non ufficiali a qt-copy. Siccome queste patch sono normalmente la ragione per cui si installa qt-copy invece di un normale &Qt;, non dovrebbe far male abilitarle. L'impostazione predefinita è abilitare le patch.
binpath | Non sostituibile | Imposta questa opzione per impostare la variabile d'ambiente `PATH` durante la generazione. Non puoi sostituire questa impostazione nelle opzioni di un modulo. Il valore predefinito è `/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin`. Questa variabile d'ambiente dovrebbe includere i percorsi, separati da due punti, dei tuoi strumenti di sviluppo. I percorsi `$`KDEDIR`/bin` e `$`QTDIR`/bin` sono aggiunti automaticamente. Puoi usare la tilde (~) per qualsiasi percorso che aggiungi con questa opzione.
branch | Sostituisce globale | Imposta questa opzione per ritirare i file da un ramo di &kde; invece che dal tronco, che è predefinito ed è dove avviene lo sviluppo di &kde;. Per esempio, per ritirare &kde; 3.4, imposteresti questa opzione a `3.4`. Nota che alcuni moduli usano un diverso nome su alcuni rami. In particolare, il modulo &arts; richiesto non segue i numeri di versione di &kde;. La versione di &arts; corrispondente a &kde; 3.4 era la versione 1.4. Se &kdesvn-build; non riesce a scaricare correttamente un ramo con questa opzione, potresti dover specificare manualmente l'URL da cui scaricare usando l'opzione override-url.
build-dir | Sostituisce globale | Usa questa opzione per cambiare la cartella che conterrà il codice costruito. Ci sono tre diversi modi di usarla: Relativa alla cartella sorgente della cartella del codice sorgente &svn; di &kde; (vedi l'opzione source-dir). Questo è il modo predefinito, e il modo in cui lo script ha funzionato fino alla versione 0.61. Questa modalità viene selezionata se scrivi un nome di cartella che non comincia per tilde (~) o sbarra (/). Il valore predefinito è `build`. Percorso assoluto. Se specifichi un percorso che comincia per /, quel percorso sarà usato direttamente. Per esempio, `/tmp/kde-obj-dir/`. Relativo alla tua cartella Home. Se specifichi un percorso che comincia per ~, il percorso è inteso relativo alla tua cartella Home, analogamente all'espansione della tilde in una shell. Per esempio, `~/builddir` imposterebbe la cartella di generazione a `/home/nome-utente/builddir`. Forse ti sorprenderà, ma questa opzione è effettivamente modificabile a seconda del modulo.
checkout-only | Sostituisce globale | Imposta questa opzione per ritirare il codice sorgente &svn; un pezzo alla volta. Il valore di questa opzione dovrebbe essere un elenco separato da spazi di cartelle da ritirare. Se non includi la cartella `admin`, essa verrà inclusa automaticamente (se necessario). Quando ritiri un pezzo alla volta, la cartella `admin` sarà presa da kde-common, che è dove si trova sul server &svn;. Sebbene questa opzione sostituisca l'opzione globale, tieni presente che impostare questa opzione come globale non ha senso.
configure-flags | Si aggiunge alle opzioni globali (eccetto qt-copy) | Usa questa opzione per specificare quali flag passare a `./configure` quando crei il sistema di generazione per il modulo. Quando usata come opzione globale, viene applicata a tutti i moduli generati da questo script. qt-copy usa un insieme molto diverso di opzioni rispetto al resto di &kde;, quindi questa opzione sostituisce le impostazioni globali quando applicata a qt-copy.
colorful-output | Non sostituibile | Imposta questa opzione a `false` (falso) per disattivare l'output colorato di &kdesvn-build;. Questa opzione ha valore predefinito `true` (vero). Nota che &kdesvn-build; non passerà codici di colore a nient'altro che a un terminale (come xterm, &konsole;, o la normale console di Linux).
cxxflags | Si aggiunge alle opzioni globali | Usa questa opzione per specificare quali flag passare a `./configure` nella forma della variabile `CXXFLAGS` quando crei il sistema di generazione del modulo. Questa opzione viene specificata qui invece che con configure-flags perché questa opzione imposterà anche la variabile d'ambiente `CXXFLAGS` durante il processo di generazione.
dest-dir | Sostituisce globale | Usa questa opzione per cambiare il nome che viene dato a un modulo sul disco. Per esempio, se il modulo era `extragear/network`, potresti rinominarlo a `extragear-network` usando questa opzione.
disable-agent-check | Non sostituibile | Normalmente, se stai usando ssh per scaricare i sorgenti da Subversion (come nel caso in cui stessi usando il protocollo `svn+ssh`), &kdesvn-build; cercherà di assicurarsi che se stai usando ssh-agent, questo stia effettivamente gestendo delle identità ssh. Questo è per cercare di prevenire che ssh chieda la password per ogni modulo. Puoi disabilitare questa opzione impostando `disable-agent-check` a `true` (vero).
do-not-compile | Sostituisce globale | Usa questa opzione per impostare la variabile d'ambiente `DO_NOT_COMPILE` prima di eseguire lo script di configurazione. Secondo le domande ricorrenti per gli sviluppatori di &kde;, ciò dovrebbe impedire la compilazione di ogni cartella di massimo livello che passi. Le cartelle dovrebbero essere separate da spazi. Nota che il codice sorgente dei programmi sarà comunque scaricato. Puoi usare la direttiva checkout-only per scegliere le cartelle che vuoi ritirare.
email-address | Non sostituibile | Imposta questa opzione all'indirizzo di posta elettronica da cui &kdesvn-build; dovrebbe inviare una lettera se mai ne avesse bisogno. Non te ne devi curare se non usi nessuna funzionalità che usa la posta (come impostazione predefinita sono tutte disattivate). Attualmente solo email-on-compile-error ha bisogno di questa opzione.
email-on-compile-error | Non sostituibile | Puoi impostare questa opzione all'indirizzo di posta elettronica a cui mandare un rapporto quando un modulo non può essere generato. &kdesvn-build; aspetterà fino a quando tutti i moduli saranno stati generati e metterà assieme tutti i risultati in un rapporto. Il rapporto viene inviato solo se almeno un modulo non è potuto essere generato. Vedi anche l'opzione email-address per impostare l'indirizzo da cui &kdesvn-build; dovrebbe inviare la lettera, perché il valore predefinito normalmente non è quello che vuoi.
inst-apps | Sostituisce globale | Questo è il contrario dell'opzione do-not-compile. Questa opzione fa in modo che solo le cartelle di massimo livello siano generate. Le cartelle devono essere separate da spazi. Nessun cambiamento avrà effetto fino alla prossima volta che verrà eseguito `make `-f` `Makefile.cvs``, automaticamente dallo script o a mano con le opzioni `--refresh-build` o `--recreate-configure`. Nota che il codice sorgente dei programmi sarà comunque scaricato. Puoi usare la direttiva checkout-only per scegliere le cartelle che vuoi ritirare.
install-after-build | Sostituisce globale | Questa opzione viene usata per installare il pacchetto a seguito di una generazione riuscita. Come impostazione predefinita, questa opzione è attiva. Se vuoi disattivarla, devi impostarla a `0` nel file di configurazione. Puoi anche usare l'opzione `--no-install` dalla riga di comando.
kdedir | Non sostituibile | Questa opzione imposta la cartella in cui &kde; sarà installato dopo essere stato generato. Il suo valore predefinito è `~/kde`. Se la cambi a una cartella che richiede accesso come amministratore di sistema, potresti essere interessato anche all'opzione make-install-prefix.
libpath | Non sostituibile | Imposta questa opzione per impostare la variabile d'ambiente `LD_LIBRARY_PATH`. Non puoi sostituire questa impostazione per un singolo modulo. Il valore predefinito è vuoto, ma i percorsi `$`KDEDIR`/lib` e `$`QTDIR`/lib` vengono aggiunti automaticamente. Puoi usare la tilde (~) per qualsiasi percorso che aggiungi con questa opzione.
log-dir | Sostituisce globale | Usa questa opzione per cambiare la cartella usata per contenere i file di registro generati dallo script. Questa opzione può essere impostata singolarmente per ogni modulo dalla versione 0.64 in avanti.
make-install-prefix | Sostituisce globale | Imposta questa variabile a un elenco separato da spazi, che verrà interpretato come un comando con le sue opzioni con cui far precedere il comando `make install` usato per installare i moduli. È comodo per installare i pacchetti con per esempio `sudo`, ma sii cauto quando usi i privilegi di amministratore.
make-options | Sostituisce globale | Imposta questa variabile per passare le opzioni della riga di comando al comando `make`. È utile per programmi come distcc. distcc ti permette di condividere il lavoro di compilazione tra diversi computer. Per usarlo, devi usare l'opzione `j` di make. La documentazione raccomanda di usare 2×(numero di cpu in rete). Se hai una sola CPU, sarebbe `-j2`.
manual-build | Sostituisce globale | Imposta il valore dell'opzione a `true` (vero) per impedire al processo di cercare di generare questo modulo. Sarà comunque aggiornato quando si aggiorna da &svn;. Questa opzione è esattamente equivalente all'opzione da riga di comando `--no-build`.
manual-update | Sostituisce globale | Imposta il valore dell'opzione a `true` (vero) per impedire che il processo di generazione cerchi di aggiornare (e di conseguenza generare o installare) questo modulo. Se imposti questa opzione per un modulo, lo stai in pratica escludendo.
module-base-path | Sostituisce globale | Imposta questa opzione per sostituire il percorso alla cartella predefinita di &kdesvn-build; per il modulo. Si può usare, per esempio, per ritirare particolari rami o versioni di alcune librerie. Il visore del sorgente di &kde; è utilissimo per capire quale percorso scegliere. Nota che &kdesvn-build; costruisce il percorso finale secondo il modello seguente: `$svn-server`/home/kde/`$module-base-path`/`$module-name`. Il valore predefinito è `trunk` o `trunk/KDE`, a seconda del nome del modulo.
niceness | Non sostituibile | Imposta questa opzione a un numero tra 20 e 0. Maggiore è il numero, minore la priorità che &kdesvn-build; si assegnerà. Il valore predefinito è 10.
no-rebuild-on-fail | Sostituisce globale | Imposta questa opzione a `true` (vero) per impedire sempre che &kdesvn-build; cerchi di ricostruire questo modulo se una generazione incrementale non dovesse riuscire. Normalmente &kdesvn-build; cercherà di ricostruire il modulo da zero per annullare l'effetto di aggiornamenti &svn; mancanti che danneggiano il sistema di generazione.
override-url | Sostituisce globale | Se imposti questa opzione, &kdesvn-build; userà il suo valore come l'URL da passare a Subversion esattamente com'è. Generalmente dovresti usarla se vuoi scaricare un rilascio particolare ma &kdesvn-build; non riesce a capire quello che vuoi fare usando branch.
qtdir | Non sostituibile | Imposta questa opzione per impostare la variabile d'ambiente `QTDIR` durante la generazione. Non puoi sostituire questa impostazione nelle opzioni di un modulo. Se non specifichi l'opzione, il suo valore predefinito sarà ``$(source-dir)`/build/qt-copy`, che usa il modulo qt-copy incluso nel deposito sorgente di &kde;. Puoi usare una tilde (~) per rappresentare la tua cartella Home.
remove-after-install | Sostituisce globale | Se hai poco spazio su disco, potrebbe interessarti questa opzione per eliminare automaticamente la cartella di generazione (o entrambe le cartelle del codice sorgente e di generazione per le installazioni singole) dopo che sarà riuscita l'installazione del modulo. I valori possibili di questa opzione sono: `none` - Non eliminare nulla (predefinito). `builddir` - Elimina la cartella di generazione, ma non il codice sorgente. `all` - Elimina sia la cartella del codice sorgente che quella di generazione. Nota che l'uso di questa opzione può avere un significativo impatto negativo sul tuo uso di banda (se usi `all`) e sul tempo necessario a compilare &kde;, perché &kdesvn-build; non potrà effettuare generazioni incrementali.
set-env | Sostituisce globale | Questa opzione accetta un insieme di valori separati da spazi, dove il primo è la variabile d'ambiente da impostare, e il resto i valori a cui vuoi impostarla. Per esempio, per impostare la variabile `PINCO` a `pallino`, inseriresti questo comando nella sezione opportuna:
    set-env PINCO pallino
Questa opzione è speciale perché può essere ripetuta senza sostituire le impostazioni di `set-env` precedenti nella stessa sezione del file di configurazione. In questo modo puoi impostare diverse variabili d'ambiente per modulo (o globalmente).
source-dir | Non sostituibile | Questa opzione viene usata per impostare la cartelle in cui tenere il codice sorgente &svn; di &kde; sul tuo computer. Se non specifichi questo valore, quello predefinito sarà `~/kdesvn`. Se invece lo specifichi, usa un percorso assoluto.
svn-server | Non sostituibile | Questa opzione viene usata per impostare il server usato per ritirare i file da &svn;. Il valore predefinito è il deposito &svn; anonimo, `svn://anonsvn.kde.org/`.
stop-on-failure | Sostituisce globale | Imposta questa opzione a `true` (vero) per far fermare l'esecuzione dello script a seguito del verificarsi di un errore durante il processo di generazione o installazione. Il valore predefinito di questa opzione è spento.
tag | Sostituisce globale | Usa questa opzione per scaricare un rilascio specifico di un modulo. Nota: è molto probabile che usare questa opzione non è quello che vuoi fare. I rilasci di &kde; sono disponibili come tarball dal sito FTP di &kde; o da uno dei suoi mirror. Se stai usando &kdesvn-build; perché hai dei problemi ad ottenere un rilascio di &kde; per la tua distribuzione, considera piuttosto lo strumento di generazione Konstruct, che funziona con le tarball dei rilasci.
use-qt-builddir-hack | Sostituisce globale | Sebbene questa opzione sostituisca quella globale, ha senso solo per qt-copy. Imposta questa opzione a `true` (vero) per abilitare la modalità sperimentale dello script, con srcdir diverso da builddir. Quando abilitata, &kdesvn-build; copierà il modulo del codice sorgente qt-copy nella cartella di generazione, ed effettuerà la generazione da lì. Ciò vuol dire che la tua variabile d'ambiente `QTDIR` dovrebbe invece essere impostata a `$(qt-copy-build-dir)/qt-copy/lib`. Dovresti anche cambiare l'opzione qtdir corrispondentemente. La compilazione incrementale dovrebbe funzionare ancora in questa modalità, perché le date e le ore dei file saranno mantenute dopo la copia. Se usi l'opzione apply-qt-patches, le patch saranno applicate nella cartella di generazione, non in quella del codice sorgente. Questa opzione ha valore predefinito `true` (vero).
use-unsermake | Sostituisce globale | Imposta questa opzione a `true` (vero) per usare il programma sperimentale unsermake invece di automake quando esegui lo script di configurazione. Ciò può portare a notevoli riduzioni del tempo di generazione, specialmente per i sistemi di generazione distribuiti. Questa opzione ha valore predefinito `true` (vero). Normalmente, se usi questa opzione &kdesvn-build; manterrà automaticamente unsermake aggiornato. Questo potrebbe essere fastidioso, specialmente se gestisci unsermake a mano. Se questo è il caso, puoi impostare questa opzione a `self`, e &kdesvn-build; userà ancora unsermake, ma non farà nulla di particolare per tenerlo aggiornato.

## Opzioni da riga di comando e variabili d'ambiente

Questo script non usa variabili d'ambiente. se devi impostare delle variabili d'ambiente per il processo di generazione o installazione, vedi l'opzione set-env.

Lo script accetta le seguenti opzioni dalla riga di comando:

`--help`

- mostra soltanto un semplice aiuto sull'uso di questo script.

`--version`

- mostra la versione del programma.

`--author`

- mostra informazioni per contattare l'autore.

`--color`

- abilita l'output colorato.

`--no-color`

- disabilita l'output colorato.

`--pretend` (o `-p`)

- non fare nulla, fai solo finta di farlo.

`--quiet` (o `-q`)

- non scrivere tanto output. Con questa opzione vengono scritte solo le cose fondamentali.

`--really-quiet`

- scrivi solo avvertimenti ed errori.

`--verbose`

- scrivi molte cose su quello che sta succedendo, e su cosa sta facendo &kdesvn-build;.

`--svn-only`

- fai solo l'aggiornamento del codice sorgente.

`--build-only`

- fai solo la generazione.

`--ignore-modules`

- non includere i moduli passati sul resto della riga di comando nel processo di aggiornamento e generazione.

`--no-svn`

- salta la connessione al server &svn;.

`--no-build`

- salta il processo di generazione.

`--no-install`

- non installare automaticamente i pacchetti dopo averli generati.

`--debug`

- abilita la modalità di debug per lo script. Attualmente ciò vuol dire che tutto l'output sarà riversato sullo standard output oltre ad essere registrato nella cartella di registro, come sarebbe normale. Inoltre, molte funzioni sono molto più verbose riguardo a quello che stanno facendo in modalità di debug.

`--no-rebuild-on-fail`

- non cercare di rigenerare da zero i moduli che non è stato possibile generare. &kdesvn-build; non cercherà mai di farlo con un modulo che si è già cercato di generare da zero.

`--refresh-build`

- ricrea il sistema di generazione e compila da zero.

`--reconfigure`

- esegui lo script di configurazione senza pulire la cartella di generazione.

`--recreate-configure`

- esegui di nuovo `make `-f` `Makefile.cvs`` per creare lo script di configurazione, e continua a generare come normalmente. Questa opzione implica `--reconfigure`.

`--resume`

- cerca di riprendere la generazione da dove lo script si è fermato l'ultima volta. Lo script comincia la generazione del modulo dopo l'ultimo compilato all'ultima esecuzione dello script, che sia riuscito o meno. Questa opzione implica `--no-svn`. Non dovresti specificare altri nomi di moduli sulla riga di comando.

`--resume-from`

- è come `--resume`, tranne che indichi il modulo da cui cominciare a generare nel successivo parametro della riga di comando. Questa opzione implica `--no-svn`. Non dovresti specificare altri nomi di moduli sulla riga di comando.

`--rc-file`

- interpreta il prossimo parametro della riga di comando come il file da cui leggere le opzioni di configurazione. Il valore predefinito di questo parametro è `~/.kdesvn-buildrc`.

`--prefix=</percorso/a/kde>`

- permette di cambiare la cartella in cui sarà installato &kde; dalla riga di comando. Questa opzione implica `--reconfigure`.

`--build-system-only`

- ferma dopo aver eseguito `make `-f` `Makefile.cvs``. Lo script di configurazione dovrà ancora essere eseguito, cosa che &kdesvn-build; farà la volta successiva. Ciò ti permette di preparare tutti gli script di configurazione in una volta, in modo da poter eseguire `./configure `--help`` per ogni modulo, e modificare i tuoi flag di configurazione opportunamente.

`--install`

- Se questa è l'unica opzione dalla riga di comando, cerca di installare tutti i moduli contenuti nella cartella `successfully-built`, tranne per qt-copy che non richiede installazione. Se sono specificate opzioni da riga di comando dopo `--install`, sono considerate essere i moduli da installare.

`--<nome-opzione>=`

- Puoi usare questa opzione per sostituire un'opzione nel tuo file di configurazione per ogni modulo. Per esempio, per sostituire l'opzione log-dir, scriveresti: `--log-dir=`/percorso/a/cartella``.

`--<nome-modulo>,<nome-opzione>=`

- Puoi usare questa opzione per sostituire un'opzione nel tuo file di configurazione per un modulo particolare. Per esempio, per sostituire l'opzione use-unsermake per kdemultimedia, scriveresti `--kdemultimedia,use-unsermake=false`.

Tutte le altre opzioni da riga di comando sono considerate come moduli da aggiornare e generare. Non confondere la generazione con l'installazione.

## Riconoscimenti e licenza

&underFDL;