|
AmigaDev
SourceForge
di Yuri D'Elia
Chi sviluppa software, o semplicemente utilizza qualche software
open source avrà forse sentito parlare di SourceForge (http://www.sourceforge.org),
un servizio che offre a chiunque, gratuitamente, tutto il necessario
per realizzare prodotti open source anche assieme a decine di collaboratori
sparsi per il mondo.
In questi ultimi anni, dopo il boom di Linux, il numero di sviluppatori
di applicazioni open source è cresciuto in maniera esponenziale. SourceForge
stesso è un esempio dell'impegno profuso nel settore da singoli e vere
e proprie comunità.
Ideato da un gruppo di sviluppatori per abbattere le comuni barriere
che affliggono la gestione concorrenziale di un progetto il cui sorgente
è aperto a modifiche da parte di chiunque voglia apportarne, SourceForge
è sia un sito, sia un software sviluppato ad hoc. Il sistema offre una
moltitudine di servizi atti a consentire lo sviluppo di software (open
source, naturalmente) a gruppi più o meno grandi di programmatori.
Attualmente SourceForge offre uno spazio per ospitare le pagine web
inerenti al progetto (accessibile da sottodominio o virtual host), statistiche
dettagliate per ogni attività effettuata dagli sviluppatori, organizzazione
dello sviluppo utilizzando i "web tracker" (che permettono una completa
gestione via web), un account SSH (Secure Shell) per l'amministrazione
remota, una "compile farm" per provare i progetti su architetture differenti,
server CVS e MySQL, spazio FTP anonimo per consentire agli utenti di
inviare patch e file inerenti al progetto, nonché una categorizzazione
all'interno della directory di SourceForge.
Oggi SourceForge ospita oltre 20.000 progetti e circa 170.000 utenti
registrati. Queste dimensioni sono state raggiunte soprattutto grazie
alla sponsorizzazione da parte di VA Linux Systems che fornisce l'hardware
dedicato al server. Le specifiche attuali di SourceForge sono imponenti
e comprendono una memoria RAM pari a 35 GB, spazio su disco per un totale
di 4,5 TB (TeraByte!) e capacità di calcolo complessiva pari a 44 GHz.
L'impegno di VA Linux Systems (soprattutto economico), nei confronti
di questo progetto, è strettamente legato ad una serie di fattori commerciali.
I prodotti venduti dall'azienda comprendono molti software rilasciati
come open source. Stimolare il miglioramento della comunità open source
garantisce dunque a VA Linux Systems di offrire prodotti di qualità,
per i quali vende anche supporto tecnico. Per questo motivo si prevede
che VA Linux Systems continuerà a sponsorizzare il progetto a lungo
e ad espanderlo per soddisfare le esigenze future degli sviluppatori.
Di fatto si tratta di uno dimostrazione di come sia effettivamente possibile
guadagnare con il software open source.
L'iscrizione a SourceForge naturalmente è gratuita e aperta a tutti.
Non è necessario avere un progetto, anche se quasi tutti i servizi sono
basati sull'amministrazione di un software proprio. La gestione via
WEB, veramente semplice da utilizzare e ampiamente documentata (in inglese)
sul sito stesso, permette a chiunque, anche ai meno esperti, di amministrare
il proprio progetto in modo sicuro e facile da usare. Chi si iscrive
ha a disposizione tutto lo spazio e gli strumenti necessari per sviluppare
software nel più libero e soprattutto sicuro dei modi. SourceForge ha
infatti preso molto a cuore la sicurezza e l'integrità dei dati che
ospita. Ogni utente dispone di un account SSH, e non potrà effettuare
il login attraverso Telnet o FTP onde evitare di trasmettere la propria
password in chiaro attraverso la rete. Persino la connessione alle pagine
WEB avviene attraverso SSL. Inoltre, di tutti i dati salvati su SourceForge
è effettuata una copia quotidiana su nastro.
Per iniziare a sviluppare utilizzando SourceForge è necessario registrarsi.
Fatto questo, entro circa 24 ore sarà creato un account personale sul
sito che consentirà di effettuare il login via WEB e partecipare allo
sviluppo di software esistente. Chi, invece, desidera creare un nuovo
progetto deve sottoporre la richiesta traverso il link "Register New
Project" dalla propria pagina personale. Anche questa operazione richiede
circa 24 ore poiché è effettuata manualmente da un operatore che visiona
quanto proposto.
Durante la registrazione del progetto sarà infatti necessario inserire
tutti i dati relativi, come nome, descrizione dettagliata e soprattutto
la licenza con cui si desidererà distribuirlo. Non è possibile sviluppare
software non open source su SourceForge tranne che in casi particolari.
Ottenuto il via libera da SourceForge si potrà usufruire immediatamente
di tutte le funzionalità a disposizione.
Ogni modifica consistente di un progetto effettuato attraverso il WEB
(cambiamento password, aggiunta di un nuovo utente ad un gruppo, creazione
di un database MySQL o di una mailing list...) non è effettuata istantaneamente
ma ad una cadenza periodica di sei ore. Viene denominato il "Six hours
cron delay". Ogni sei ore, infatti, un processo cron effettua la sincronizzazione
di tutti gli account e la creazione di funzionalità relative ai progetti.
Per ogni progetto creato si ha a disposizione spazio WEB illimitato
ed un sottodominio di terzo livello (nomeprogetto.sourceforge.net).
Il sito WEB è amministrabile utilizzando il proprio account SSH, da
cui è possibile inserire anche script CGI locali ed esaminare i vari
log di accesso.
Per inserire i file che compongono il sito è possibile servirsi di SCP
(secure copy tramite SSH) oppure di un server FTP anonimo. In questo
caso i file andranno importati nel proprio sito entro 24 ore. Se il
progetto è particolarmente rilevante e si ritiene necessario dargli
maggiore rilievo o facilità di accesso, SourceForge può anche offrire
un virtualhost con un dominio di secondo livello (nomeprogetto.org).
Naturalmente la funzionalità non è immediata e la richiesta verrà valutata
dal team di SourceForge.
Per i maniaci delle statistiche SourceForge è una vera manna. Tutte
le attività svolte via WEB, inclusi gli accessi al proprio sito e l'uso
del CVS, sono monitorate e salvate. E' dunque possibile ottenere statistiche
complete, anche in formato grafico, di ogni attività inerente al proprio
progetto, il tutto con un semplice click sull'interfaccia del sito.
Per facilitare l'amministrazione del proprio progetto sono disponibili
i "web tracker". Un tracker è un particolare strumento utilizzabile
via WEB che gestisce, amministra e visualizza le statistiche per una
determinata area del progetto. Ogni progetto è suddiviso in varie aree
e per ognuna esiste un tracker dedicato. Ve ne sono per i bug, per le
richieste di supporto, per le patch, per le richieste di nuove funzionalità,
ecc. Un qualsiasi utente interessato ad un progetto può immettere in
una delle citate aree una segnalazione di bug, o fornire una patch da
lui sviluppata (il vantaggio dell'open source è anche che l'autore di
un programma non è costretto a correggere da sè i problemi...). Il tracker
registrerà la segnalazione e se necessario ne segnalerà la presenza
sulla pagina dell'autore del progetto. Secondo l'importanza della segnalazione
l'utente che la immette può impostare una priorità. Le segnalazioni
di maggiore interesse saranno visualizzate per prime, mentre quelle
risolte verranno eliminate automaticamente. Lo stesso meccanismo funziona
per ogni altro tracker, rendendo la vita più semplice all'autore del
progetto. Con lo stesso principio è possibile organizzare, per ogni
progetto, una serie di compiti da svolgere in base ad una specifica
priorità. I compiti, ordinati per importanza, saranno visualizzati nella
pagina personale ed eliminati man mano che verranno soddisfatti.
L'amministratore di un progetto può inoltre creare dei forum pubblici,
gestire delle mailing list e inserire nelle proprie pagine dei sondaggi
personalizzabili. I sondaggi possono essere di qualunque tipo, e consentono
di visualizzare una domanda, con una serie di possibili risposte a disposizione
degli utenti. Quest'ultima possibilità si rivela molto utile in grossi
progetti dove è necessario sapere quali funzionalità sarebbe preferibile
implementare per prime.
Per gestire al meglio i progetti, SourceForge mette a disposizione
di ogni utente un account SSH (versione 1, per una maggiore compatibilità
con tutti i sistemi) su users.sourceforge.net. Attraverso la shell è
possibile amministrare le proprie pagine e ricevere la posta indirizzata
a proprionome@users.sourceforge.net. SourceForge comunque prevede anche
un servizio di redirezione nel caso si preferisca utilizzare un'altra
casella postale. Sempre tramite SSH si può accedere alla "Compile Farm",
una serie di computer con architetture e sistemi operativi differenti
ove è possibile verificare la corretta compilazione e funzionamento
del proprio programma su piattaforme hard/soft diverse da quella posseduta.
La "Compile Farm" viene spesso utilizzata dai programmatori per creare
distribuzioni binarie precompilate dei propri programmi. SourceForge
attualmente dispone delle seguenti piattaforme: Intel/x86 con Linux,
Intel/x86 con FreeBSD, Compaq/Alpha con Linux, Compaq/Alpha con Tru64,
Sun/Sparc con Linux e Sun/Sparc con Solaris. In questi computer non
è compilata alcuna libreria aggiuntiva. Se il progetto dipende da una
libreria particolare sarà quindi necessario ricompilarla manualmente.
Da notare come, purtroppo, non siano presenti sistemi Amiga 68K o LinuxPPC,
nonostante SourceForge ospiti parecchi progetti dedicati all'Amiga,
incluso il kernel di Linux Apus.
Per i progetti che richiedono una grande mole di informazioni e un database
centralizzato è inoltre disponibile un server MySQL amministrabile via
SSH o localmente, se si dispone di un client apposito. Un server MySQL
è un database relazionale che consente l'archiviazione di molte informazioni
in tabelle collegate. E' espressamente realizzato per una ricerca rapida
ed efficiente delle informazioni di qualsiasi genere ed è utilizzabile
attraverso lo standard SQL.
Uno degli strumenti più utilizzati nei progetti di dimensioni medio
grandi è il CVS (Current Version System). Il CVS è uno strumento utilizzato
per la gestione del sorgente in contemporanea da più sviluppatori operanti
su macchine differenti. Utilizzando i metodi tradizionali, più sviluppatori
avrebbero seri problemi a mantenere aggiornati i loro sorgenti. Sarebbe
necessario un amministratore che prelevi i vari file dagli utenti e
li sincronizzi manualmente. E' inutile dire che non è una situazione
materialmente gestibile se si pensa soprattutto a sorgenti di grosse
dimensioni e con computer dislocati in ampie zone.
Il CVS è un archivio centralizzato che contiene tutte le revisioni dei
sorgenti che compongono un determinato progetto e svolge svariate funzionalità
al fine di risolvere i maggiori problemi legati allo sviluppo concorrente.
Se un file viene modificato da due o più sviluppatori che vi apportano
delle modifiche contemporaneamente, le diverse versioni saranno fuse
in una e verrà visualizzato un messaggio che indica di effettuare un
controllo sulla avvenuta fusione. Il CVS tiene inoltre traccia di tutti
i cambiamenti apportati ad ogni file, inclusi i commenti e l'autore
della modifica. Questo diventa molto utile durante la ricerca di bug
apparsi in versioni recenti del software. Evidenziando le differenze
è possibile risalire al codice che ha generato il nuovo bug.
Chi desidera utilizzare il CVS deve disporre di un client e di una versione
locale dell'albero dei sorgenti. Il primo download (checkout) preleverà
tutto il contenuto dell'albero dei sorgenti. Ad ogni successivo aggiornamento
(update) solo i file modificati verranno trasmessi.
In una sessione di esempio un programmatore deve effettuare un aggiornamento
dei propri sorgenti. Fatto questo apporta le modifiche ai file e una
volta che è stata fatta una modifica sensibile procede ad una sincronizzazione
col server (commit), indicando in un commento cosa ha cambiato. In questo
modo ogni utente dispone della versione aggiornata dei sorgenti, i problemi
di conflitti vengono automaticamente risolti e diventa possibile lavorare
a qualsiasi parte del programma senza doversi preoccupare di spostare
manualmente i file o scaricare patch da applicare localmente. Il CVS
inoltre permette di dividere l'albero dei sorgenti in più rami (branch)
per isolare, ad esempio, una versione stabile da una in via di sviluppo.
Quando si ritiene che la nuova versione sia giunta ad un livello di
stabilità sufficiente è possibile fondere i diversi rami. SourceForge,
venendo incontro all'utente anche meno esperto, ha messo a punto un'interfaccia
WEB chiamata "webcvs". E' uno script che permette di visualizzare con
il proprio browser l'ultimissima versione dei file e le modifiche più
recenti. Inoltre chi non disponesse di un client CVS può scaricare uno
snapshot dell'albero dei sorgenti aggiornato quotidianamente da SourceForge.
Sempre per gli utenti che non dispongono di un server CVS, o che non
partecipano al progetto abbastanza attivamente da essere membri di un
gruppo, è disponibile uno spazio FTP anonimo ove è possibile inviare
documentazione, file di esempio, e altro materiale inerente al progetto
di interesse.
Tutti i programmi, una volta creati, possono essere categorizzati
nell'apposita directory di SourceForge, operazione, questa, caldamente
consigliata per dare piena visibilità ai propri progetti. In un sito
con oltre 20.000 progetti attivi, la directory e il sistema di categorizzazione
sono stati curati in modo da aiutare l'utente a reperire facilmente
ciò che cerca. Ogni programma può essere classificato in base a audience
(utenti, sviluppatori...), stato di sviluppo, licenza sotto la quale
è rilasciato, genere (comunicazione, networking, database...), sistema
operativo, ambiente (solo testo, demone, applicazione grafica) e linguaggio
di programmazione. Ad un programma può essere inoltre associata una
breve descrizione esplicativa. In questo modo è possibile cercare il
software in base a specifiche esigenze, tenendo conto, ad esempio, dello
stato di sviluppo e della stabilità.
Se invece si è in cerca di un progetto cui partecipare è possibile utilizzare
una pagina apposita dove consultare o immettere annunci su disponibilità
o offerta di "lavoro". Inutile dire l'annuncio più frequente riguarda
traduttori: qualsiasi persona in grado di tradurre la documentazione
è sempre ben accetta.
Per ulteriori informazioni su qualsiasi aspetto di SourceForge, è
sufficiente leggere la documentazione presente sul sito. E' disponibile
molta documentazione su come utilizzare il proprio account e amministrare
il web server, nonché alcune FAQ (anche se non estremamente chiare)
su MySQL e CVS. Tutta la documentazione è in inglese (fatta eccezione
per una traduzione in ungherese). Anche qui, chiunque desideri tradurre
tali testi è sempre il benvenuto.
Amiga e SourceForge
SourceForge ospita vari progetti inerenti Amiga. Sono reperibili con
una ricerca del termine "amiga" dalla pagina principale del sito. Fra
gli altri citiamo YAM, Amster, MUFS e Directory Opus 4.
Per utilizzare SourceForge sono sufficienti un browser compatibile SSL,
MiamiTelnet o AmTelnet (per la shell SSH) ed un port del client CVS,
presente sul CD allegato alla rivista. [G.F.]
Torna al sommario
|