[Linuxtrent] Re: analizzare sorgenti open-source (pensiero)

  • From: Flavio Stanchina <flavio@xxxxxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Mon, 15 Jan 2007 17:45:06 +0100

marios wrote:
> Ora sono interessato a vedere come funziona un
> web-browser "firefox" già installato sul so, ma
> ovviamente è pacchettizzato, di conseguenza dovrei
> andare sul sito e scaricare il sorgente.

Se hai una Debian (o distribuzioni derivate) è molto semplice:
  $ apt-get source <nome del package>

Credo che anche le distribuzioni basate su RPM abbiano qualcosa di simile.

> Ritengo sia un esperienza disarmante, in quanto mi
> aspetto di trovare svariati file che a me diranno
> poco,

Svariati? Beh, credo che troveresti Firefox particolarmente disarmante in
questo senso perché gli svariati file sono decine di migliaia:
  $ tar tvf firefox_1.5.dfsg+1.5.0.7.orig.tar.gz | grep -v "/$" | wc -l
  25591

> quindi chiedo se in linea di massima possiamo
> trovare delle similitudini da un programma all'altro,
> tipo: di solito il file ...  contiene .... quest'altro
> file invece sicuramente si occupa di ... etc...., o
> ogni programma non rispecchia una precisa "scaletta"
> (capisco che ogni programma sia a se stante)

L'unica similitudine che trovi con una certa costanza è lo script
"configure" che adatta la configurazione dei sorgenti al tuo sistema ed
alle librerie installate, generando i makefile. Nei progetti più semplici
trovi solo un makefile preconfezionato.

...ma temo che tu non sappia che cos'è un makefile. :)

Il resto sono file dei tipi più disparati, organizzati a seconda dell'estro
dell'autore originale. Ci sono convenzioni e buone abitudini su come
organizzare i file di un progetto, però in pratica se ne vedono d tutti i
colori.

> ecco il mio intento sarebbe quello di prendere piu'
> informazioni possibili per riuscire a capirci qualcosa
> :-).

Non vorrei smorzare il tuo entusiasmo, ma per mettere le mani in un
programma non banale ti servono alcuni anni di esperienza con C, C++,
makefiles, script della shell, e magari anche sistemi di controllo del
codice come CVS, Subversion, etc.

Oltre naturalmente ad un'ottima conoscenza del sistema che usi, delle
librerie standard del linguaggio e di altre librerie di uso comune (ad
esempio GTK e/o Qt per le applicazioni con interfaccia grafica).

Quindi è meglio se cominci subito ad imparare. :)

-- 
Ciao, Flavio

-- 
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: