Pagina principale faq Amiga Life a Pianeta Amiga La redazione
Galleria Indice generale
Enigma Amiga Life

AmigaLife 121 ?

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

Copyright (C) 1999-2002, la redazione di AmigaLife.
Il logo e le copertine della rivista sono tratti dal sito Pluricom e sono Copyright (C) 1992-2001 Pluricom S.r.l.