Creazione e configurazione di un progetto in Trac/SVN

Guida in 11 punti alla creazione e alla configurazione di un progetto in Trac/SVN per la development farm sul server 137.204.107.229.
  1. creare il repository SVN tramite il comando
    svnadmin create newRepPath
    
  2. creare l'environment di Trac nella posizione desiderata
    trac-admin newEnvPath initenv
    
    A questo punto, viene chiesto di inserire alcune informazioni sull'environment da creare. A meno che non sia indicato esplicitamente cosa digitare, inserire sempre l'opzione di default (compare a console racchiusa tra parentesi quadre):
    • Project Name. Inserire il nome del progetto;
    • Database connection string.
    • Repository type.
    • Path to repository. Inserire newRepPath (path completo)
    • Templates directory.

    • verificare che i permessi delle cartelle contenenti i repository e gli environment siano corretti: con ciò intendo dire che l'utente sotto cui gira Apache (solitamente www, comunque lo si può trovare in httpd.conf, alla voce User) vi deve poter accedere in lettura/scrittura.
    • riguardo al repository SVN, creare/modificare i seguenti file:
    • newRepPath/conf/passwd, in cui inserire gli account utente tramite l'utility htdigest di Apache. Per aggiungere uno user si digita:

      htdigest passwdfile realm username
      
      Se il realm è costituito da più parole, ricordarsi di scriverlo tra virgolette (""). Si noti che passwdfile e realm devono essere uguali rispettivamente al valore degli attributi AuthDigestFile e AuthName, nel tag Location di httpd.conf. Se il password-file non esiste ancora, o se lo si vuole resettare, inserire l'opzione -c. E' altresì possibile utilizzare lo stesso file delle password per tutti i repository; in questo caso sarà opportuno modificare il path del file, ad esempio repositoriesParentPath/svn.passwd
    • newRepPath/conf/authz, che contiene le istruzioni di autorizzazione. Poichè il contenuto di questo file potrebbe anche essere identico per tutti i repository, se ne potrebbe usare uno solo, posizionato in una locazione "comune", ad esempio repositoriesParentPath/common_authz.

    • creazione del password-file per Trac, utilizzando htdigest (come spiegato al punto precedente).
    • creazione di un file di autorizzazione per l'environment di Trac, che non è uguale a quello per SVN. A meno che non si utilizzi lo stesso file per tutti gli environment, è opportuno posizionare tale file in newEnvPath/conf/
    • fare le seguenti modifiche a newEnvPath/conf/trac.ini:
    • se si intende sfruttare la patch "WikiRBAC", aggiungere alla sezione [wiki] queste linee:

      authz_svn_module_name = tracwiki
      authorization_mode = require_all
      
    • nella sezione [trac], inserire l'attributo authz_file, indicandovi il path del file che specifica le autorizzazioni sul repository e sullo spazio wiki.
    • nella sezione [components] (se non esiste, crearla), inserire la linea

      webadmin.* = enabled
      
      Ciò va fatto perchè l'attivazione di WebAdmin generalmente non avviene in maniera automatica.
    • sincronizzare l'environment con il repository SVN
      trac-admin newEnvPath resync
      
    • modificare httpd.conf ai fini del funzionamento di Trac e Subversion; per questo fare riferimento al file del server 137.204.107.229, in cui si trova il testo aggiunto per i progetti esistenti. Si noti che, in questo file, la configurazione di Trac è indipendente dal numero di environment presenti, mentre Subversion necessita di un tag Location per ogni repository; ciò significa che, in fase di creazione di un nuovo progetto, la sezione di Trac non va toccata, tuttavia occorre inserire un nuovo tag Location per il repository SVN. Ciò è necessario affinchè ad ogni repository venga associato il corrispondente file delle autorizzazioni.
    • riavviare Apache.
    • (supponendo che sia installato WebAdmin) entrare in ogni Trac-environment come amministratore (cioè con un account dotato del permesso TRAC_ADMIN), e assegnare ai vari utenti i permessi adeguati (Admin --> General --> Permissions). Altrimenti l'assegnazione dei permessi va fatta da shell, direttamente sul server (per la sintassi dei comandi, vedi http://trac.edgewall.org/wiki/TracPermissions).

Note

Il file httpd.conf è il file centrale di configurazione del web server Apache. La sua collocazione esatta nel filesystem dipende dall'installazione di Apache.

I comandi svnadmin e trac-admin potrebbero non essere riconosciuti dal sistema; in tal caso occorre aggiungerne il percorso alla variabile d'ambiente PATH. Nel caso del server 137.204.107.229, i comandi da eseguire sono rispettivamente (la prima riga per svnadmin, la seconda per trac-admin):

PATH=$PATH:/usr/local/bin
PATH=$PATH:/System/Library/Frameworks/Python.framework/Versions/2.3/bin 

(Scritto da Emanuele Panzavolta, aprile 2007.)