domenica 17 febbraio 2008

Compilare gnome da svn

Gnome utilizza jhbuild per compilare gnome da svn, questo programma permette di gestire meglio tutta la compilazione e permette di utilizzare i programmi compilati senza che essi vadano a sovrascrivere quelli gia' presenti. Quindi la versione di gnome che andremo a compilare non influenzera' in alcun modo il DE che stiamo utilizzando (sia esso kde, gnome o altro).
Iniziamo con il creare un nuovo utente che utilizzeremo per compilare gnome. Questo passaggio lo potete fare come vi pare: con interfaccia grafica o con adduser.
Una volta loggati con il nuovo utente apprestiamoci a compilare e installare jhbuild (tutto da utente quindi senza i privilegi di root):

mkdir -p ~/checkout/gnome2
cd ~/checkout/gnome2
svn co http://svn.gnome.org/svn/jhbuild/trunk jhbuild
cd jhbuild
./autogen.sh
make install
Fatto questo bisogna creare il file .jhbuildrc nella vostra home directory. Questo e' il mio file, lo potete copiare e incollare, e' impostato per compilare gnome 2.22.
Una volta creato il file di configurazione dobbiamo creare la cartella dove andranno a finire i nostri programmi compilati:
sudo mkdir -p /opt/gnome2
sudo chown username:usergroup /opt/gnome2
In questo modo gnome compilato andra' in /opt/gnome2 e non influenzera' minimamente il nostro DE che e' installato in /usr. Controlliamo se la cartella ~/bin (quella dove abbiamo compilato jhbuild) e' nel nostro path con:
jhbuild --help
Se non e' presente aggiungiamola al path con:
export PATH=$PATH:~/bin
Infine installiamo tutte le dipendenze che richede gnome con:

$ sudo apt-get install gnome-common build-essential doxygen subversion automake1.4 automake1.7 automake1.8 cvs git-core docbook docbook-utils docbook-xsl flex bison texinfo python2.5-dev lynx mono-gmcs libtiff4-dev libxtst-dev libgdbm-dev libxml-simple-perl libelfg0-dev libcupsys2-dev libldap2-dev libexchange-storage1.2-dev libxmu-dev libpam0g-dev libgpgme11-dev libfreetype6-dev libpng12-dev libxrender-dev libxi-dev libexpat1-dev libbz2-dev firefox-dev libxcursor-dev guile-1.8-dev libxdamage-dev libxcomposite-dev libmono-cairo2.0-cil xnest libxft-dev libloudmouth1-0 libloudmouth1-dev libxss-dev libxkbfile-dev
Se non usate ubuntu gutsy qua ci sono guide anche per le altre distribuzioni (comprese le vecchie versioni di ubuntu). Se, invece, volete compilarvi tutte le dipendenze potete farlo con
jhbuild bootstrap
Infine siamo pronti per compilare gnome! Date un bel:
jhbuild build
Vi avverto che molto spesso diversi programmi non compileranno, qui c'e' una guida per risolvere gli errori di compilazione. Se invece di compilare tutto gnome vi serve compilare solo un programma (per esempio evince) basta fare
jhbuild build evince
Se invece volete compilare un programma senza compilare le dipendenze questo e' il comando:
jhbuild buildone evince
Per ricominciare la compilazione da un determianto modulo (per esempio gtk+) basta fare:
jhbuild build -t gtk+
Come utilizzare gnome appena compilato?
Se avete compilato interamente gnome potete creare una nuova sessione in gdm in questo modo:
sudo gedit /etc/jhbuild.conf
E inserite all'interno del file:
prefix = '/opt/gnome2'
Ora aprite il seguente file:
sudo gedit /usr/bin/jhbuild-session
E copiate questo:
exec jhbuild --file=/etc/jhbuild.conf run gnome-session
Abilitate i permessi al file appena salvato con:
sudo chmod a+x /usr/bin/jhbuild-session
Infine create il file .desktop con:
sudo gedit /usr/share/xsessions/jhbuild.desktop
E riempitelo con:
[Desktop Entry]
Encoding=UTF-8
Name=Jhbuild GNOME
Comment=This session logs you into Jhbuild GNOME
Exec=/usr/bin/jhbuild-session
Icon=
Type=Application
Vi consiglio di avviare la sessione sempre con un utente di prova e non con quello che normalmente utilizzate.
Se invece volete avviare solo un applicazione che avete compilato basta fare un:
jhbuild start nome_applicazione
E il programma si avvierà nel DE corrente!

PS: oltre ai link gia' segnalati nell'articolo probabilmente vi torneranno utili anche questi:
  1. jhbuil manual
  2. jhbuil su gnome live
  3. guida su jhbuil e ubuntu

Nessun commento: