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

Guarda mamma sono su Bongolinux!

Bongolinux e' un aggregatore di feed riguardanti il mondo open source e Linux completamente italiano. Da ieri ne faccio parte anch'io! Nel menu' di navigazione a destra ho aggiunto anche il Bongoroll, ma sembra non funzionare (per ora), probabilmente dovro' aspettare che sia completata la mia registrazione . In tanto potete vedere la mia posizione in classifica in fondo al blog.

sabato 16 febbraio 2008

apt-get source senza essere root

Ho letto questo fantastico articolo di Martin Ferrari e devo dire che mi e' tornato molto utile soprattutto all'universita' quando uso i laboratori della scuola (quindi senza i privilegi di root). Questo trucco serve ad utilizzare un sources.list (magari contenuto nella propria home) per scaricare i sorgenti con apt. Molto utile se, per esempio, occorono i sorgenti di un pacchetto contenuto in un repository non presente in /etc/sources.list.

In definitiva sempre copiando dal blog di Martin questo e' quello che bisogna fare:


$ mkdir apt
$ cp /etc/apt/sources.list apt/
$ vi apt/sources.list # modificare a piacere il file
$ mkdir -p apt/lists/partial
$ cat > apt/apt.conf
Dir::Etc::SourceList "home_dir/apt/sources.list"; # Serve il percorso completo
Dir::State::Lists "home_dir/apt/lists";
^D
$ export APT_CONFIG=~/apt/apt.conf
$ apt-get update
...
$ apt-get source foo
apt si dovrebbe lamentare che non riesce a fare il lock sulla directory di dpkg ma comunque i sorgenti verranno scaricati senza problemi :D

KDE4 e qt4.4

Qualche giorno fa sono uscite le qt 4.4 e chiaramente KDE le ha subito adottate. Purtroppo per chi compila kde4 farebbe meglio ad aspettare qualche altro giorno finche' tutte le varie applicazioni non si saranno assestate con le nuove librerie perche' ora non si riesce a compilare quasi nulla.

In questa pagina web (aggiornata ogni 10 minuti circa) si possono vedere i risultati della compilazione di kde4 e ora come ora non compila quasi niente...

Come distruggere una partizione

Oggi ho provato a ridimensionare una partizione ext3 con gparted. Purtroppo la partizione in questione doveva essere aumentata ma l'unico spazio disponibile era prima di essa quindi gparted doveva anche spostare tutti i dati... e' lapalissiano dire che si e ' presentato un errore durante l'esecuzione di gparted. Naturalmente sapevo che sarebbe successo e la partizione non conteneva nulla di importante.
Ma vediamo cosa e' accaduto:
Il mio obbiettivo e' quello di portare sdb2 alla dimensione raffigurata nell'immagine:


Dapprima il programma ridimensiona la partizione:

E poi si appresta a spostare anche tutti i dati:

Infine tutto crasha terribilmente...


La partizione e' talmente danneggiata che ne fsck che testdisk riescono a fare qualcosa: in particolare testdisk non riesce ad accedere alla partizione e fsck non trova nemmeno un superblock valido. Questo e' l'output di fsck:

sudo fsck.ext3 /dev/sdb2
e2fsck 1.40.2 (12-Jul-2007)
Couldn't find ext2 superblock, trying backup blocks...
virtual: recovering journal
fsck.ext3: unable to set superblock flags on virtual
La cosa figa e' che se monto a mano la partizione tutto funziona O_o, cioe' sia fsck che gparted non riescono ad accedere alla partizione dal tanto che e' danneggiata ma mount funziona egregiamente e sembra che tutti i dati siano integri... ho provato ad aprire file a caso e tutto funziona senza problemi. Qualcuno ha qualche spiegazione del perche' accade questo?

venerdì 15 febbraio 2008

yum non ha piu' problemi con le librerie a 64 bit!

Mi ricordo che uno dei motivi per cui ho abbandonato fedora era proprio il gestore dei pacchetti yum che ogni volta installava sia la versione a 64 bit sia quella a 32 bit di qualsiasi libreria.


A quanto pare finalmente ce l'hanno fatta: con la versione di yum 3.2.11 esiste una variabile (impostabile da yum.conf) per disabilitare questo comportamento:

multilib_policy=best

The linux supervillain

Qesto video mi ha fatto morire:

Upgrade da Gutsy a Hardy

Per fare l'upgrade all'ultima versione di ubuntu disponibile basta lanciare l'update manager con l'opzione -d (dist-upgrade); in questo modo:

sudo update-manager -d

Ecco come si presenta la schermata dell'update manager, notare il bottone "esegui avanzamento":



Alternativamente e' possibile eseguire l'avanzamento di versione da terminale prima sostituendo "gutsy" con "hardy" nel file sources.list e poi lanciando un

sudo apt-get update && sudo apt-get dist-upgrade

Comunque penso che il metodo piu' sicuro sia quello da interfaccia grafica.
Se non vi va di aggiornare gutsy sappiate che ubuntu fornisce i cd di sviluppo di hardy. Ricordo anche che, per ora, hardy e' un alpha 4 e se non volete trovarvi con bug strani o il sistema inutilizzabile aspettate l'uscita ufficiale il 16 aprile.

mercoledì 13 febbraio 2008

Tastiera Dvorak

Da bravo utente Gnu/Linux ho imparato ad apprezzare maggiormente la tastiera al posto del mouse. Purtroppo la tastiera che avevo era molto economica e ben presto si è rivelata insoddisfacente: alcuni tasti erano diventati estremamente duri da premere rispetta ad altri, in più molte parti avevano iniziato a perdere colore... Quindi aiutato da ebay mi sono comprato questa:


Questa tastiera è fantastica per i seguenti motivi:

  1. E' massaccia e resistente: proprio come il modello ibm originale
  2. I due tasti centrali hanno una forma completamente diversa dagli altri per essere immediatamente riconosciuti al tocco
  3. I tasti sono completamente meccanici e "cliccano" quando premuti :P
Come già citato nel titolo io utilizzo il layout dvorak che, al contrario del layout qwerty progettato per impedire ai martelletti delle macchine da scrivere di incepparsi, è stato creato per velocizzare il più possibile la scrittura e di ridurre l'affaticamento delle mani.
Per imparare ad usare una tastiera dvorak esiste questo fantastico sito. VI consiglio di fare tutti gli esercizi senza saltarne nessuno... è una gran scocciatura ma è indispensabile. Mi raccomando: ricordate di fare pause frequenti!
Ho notato che finché non si sono terminati tutti gli esercizi non conviene provare a scrivere con la tastiera, ne usando il layout dvorak ne il qwerty perché si fa una gran confusione. Alcune persone dicono che riescono ad usare indifferentemente sia tastiere dvorak che qwerty, io non sono una di quelle: ora ha disimparato completamente a scrivere con le tastiere "normali", quindi mettete in conto anche questo se volete abbandonare la tastiera qwerty.

Come cambiare il layout

Per impostare il layout in windows cercate qualche guida su google. Per linux esistono vari modi:

  1. Impostare la tastiera nel file xorg.conf:

    Option "XkbLayout" "us(dvorak)"

    In questo modo tutte le applicazioni che non utilizzano Xorg manterranno la configurazione di default.

  2. Impostare la tastiera da gnome o kde con il pannello di amministrazione: in questo modo, però il login manager e le console virtuali manterranno la configurazione di default.

  3. Per cambiare il comportamento di tutte le applicazioni che non usano Xorg basta eseguire questo comando (solo per debian e ubuntu):

    dpkg-reconfigure console-tools

Firefox beta 3!

Dopo mille peripezie sono riuscito a compilarmi Mozilla da gnome-svn... (mannaggia mai avuto tanti problemi, per compilare gnome ho impiegato 3 giorni!) per poi scoprire che hanno appena pubblicato i binari sia per windows che per linux (in tutte le lingue). Qua' c'e' una guida per chi volesse utilizzare la guida:

Ecco come si presenta firefox in tutto il suo splendore...:


Notare come le icone, i menu e i dialoghi siano esattamente quelli del tema in uso, questo vuol dire che cambiando tema a gnome cambierà tema anche firefox... era ora!


La libreria utilizza il database sqlite per indicizzare, taggare, ricercare e ordinare tutti i nostri segnalibri e perfino la cronologia!:


La nuova barra degli indirizzi ricerca durante la digitazione i vari siti visitati precedentemente mostrando (oltre all'url) anche il titolo e la favicon (che non so perché ma per ora funziona solo con alcuni siti):


Non ho fatto lo screenshot ma sappiate che finalmente il download manager ora può effettuare le ricerche tra i file scaricati e finalmente e' possibile fermare i download e farli ripartire dal punto in cui si erano fermati!