gmailfs con Ubuntu Dapper

Dopo le consuete scorribande online alla ricerca di documentazione corretta, ma soprattutto aggiornata, sono finalmente riuscito a utilizzare il mio spazio Gmail come se si trattasse di un normale filesystem.

Nel repository Universe di Ubuntu sono presenti alcuni pacchetti relativi a gmailfs, ma assolutamente non funzionano. E’ necessario compilare il software dai sorgenti ed utilizzare alcuni piccoli accorgimenti. Sperando di ricordarmi tutto, scrivo qui i passaggi necessari.

Per prima cosa installiamo il pacchetto “module assistant” (repository “universe”), che utilizzeremo per compilare il modulo “FUSE” per il nostro kernel e lanciamolo:

$ sudo apt-get install module-assistant
$ sudo module-assistant

Scegliamo l’ opzione “PREPARE”. Una volta che il sistema è configurato, possiamo selezionare “SELECT” e scorrere la lista fino a che non vediamo il pacchetto “fuse”, che selezioniamo tramite la barra spaziatrice. Premiamo OK e quindi “GET” per scaricare i sorgenti del pacchetto. Fatto questo selezioniamo BUILD e quando ci viene chiesto se vogliamo installare il pacchetto compilato diciamo sì.

Un rapido controllo ci dice se FUSE è up and running:

$ lsmod |grep fuse
fuse 38412 0

Ora scarichiamo alcune dipendenze che ci serviranno in seguito:

$ sudo apt-get install fuse-utils python-dev m2crypto python-pyopenssl cvs pkg-config

Creiamo una directory dove scaricheremo i vari sorgenti:

$ mkdir ~/src
$ cd src

Ora scarichiamo i bindings FUSE per python da CVS e compiliamoli:

$ cvs -d:pserver:anonymous@fuse.cvs.sourceforge.net:/cvsroot/fuse co -P python
$ cd python
$ python setup.py build
$ python setup.py install

Scarichiamo libgmail e compiliamola:

$ wget http://belnet.dl.sourceforge.net/sourceforge/libgmail/libgmail-0.1.5.1.tar.gz
$ tar xzvf libgmail-0.1.5.1.tar.gz
$ cd libgmail-0.1.5.1
$ python setup.py build
$ sudo cp lgconstants.py /usr/lib/python2.4/site-packages/
$ sudo cp libgmail.py /usr/lib/python2.4/site-packages/

Scarichiamo e installiamo gmailfs:

$ wget http://richard.jones.name/google-hacks/gmail-filesystem/gmailfs-0.7.2.tar.gz
$ tar xzvf gmailfs-0.7.2.tar.gz
$ cd gmailfs-0.7.2
$ sudo cp gmailfs.py /usr/local/bin
$ sudo cp mount.gmailfs /sbin/
$ sudo cp gmailfs.conf /etc

Ora editiamo il file /etc/gmailfs.conf inserendo i dati richiesti, che sono:

  • [username] = il nostro username gmail (senza @gmail.com)
  • [password] = la nostra password
  • [filesystem] = un nome univoco di nostra scelta (se è troppo semplice esiste la possibilità che la nostra sessione venga intercettata)

Impostiamo i permessi corretti per evitare che altri leggano la nostra password:

$ sudo chmod 600 /etc/gmailfs.conf

Creiamo il mountpoint e impostiamo i permessi corretti:

$ sudo mkdir /mnt/gmail
$ sudo chown -R nostroutente.nostroutente /mnt/gmail

Affinchè tutto funzioni dobbiamo anche impostare una variabile per python, che altrimenti farà le bizze, mostrando tipicamente questo errore:

TypeError: __init__() got multiple values for keyword argument 'usage'

Impostiamo la variabile d’ambiente:

$ export FUSE_PYTHON_COMPAT=0.1 

(da impostare ogni volta)

Ora siamo pronti per montare il nostro filesystem gmailfs:

$ sudo mount -t gmailfs /usr/local/bin/gmailfs.py /mnt/gmail/

Attualmente ho un problema: una volta montato il filesystem, non riesco ad accedere all’ interno della directory, mentre se il mio utente si trova già al suo interno il tutto funziona.

Un esempio per chiarirmi meglio:

keltik@koky:$ sudo mount -t gmailfs /usr/local/bin/gmailfs.py /mnt/gmail/
Ignored option :rw
keltik@koky:$ cd /mnt/gmail
bash: cd: /mnt/gmail: Permesso negato

mentre:

keltik@koky:$ sudo umount /mnt/gmail
keltik@koky:$ cd /mnt/gmail/
keltik@koky:/mnt/gmail$ sudo mount -t gmailfs /usr/local/bin/gmailfs.py /mnt/gmail/
Ignored option :rw
keltik@koky:/mnt/gmail$ pwd
/mnt/gmail
keltik@koky:/mnt/gmail$ ls -la
totale 8
drwxr-xr-x 2 keltik keltik 4096 2006-09-21 20:47 .
drwxr-xr-x 3 root root 4096 2006-09-21 20:47 ..
keltik@koky:/mnt/gmail$ touch prova.txt
keltik@koky:/mnt/gmail$ ls -l
totale 0
-rw-r--r-- 1 keltik keltik 0 2006-09-21 21:58 prova.txt

Se avete qualche idea … 😉

Happy hacking!

N.B.: Se quando tentate di montare il filesystem ottenete questo errore:

TypeError: __init__() got multiple values for keyword argument 'username'

controllate di aver copiato *tutti* i files nelle directory corrette, come indicato nella guida.

4 pensieri su “gmailfs con Ubuntu Dapper

  1. ciao a tutti, io ho lo stesso problema di keltik, per poter usare la partizione gmail, devo entrare nella cartella di mountpoint prima di montare il filesystem…altrimenti non ho i permessi di accesso. qualcuno ha risolto? Uso Ubuntu Edgy se può essere utile… Grazie

  2. ciao!

    allora … in ubuntu edgy ci sono stati alcuni cambiamenti, anche perchè libgmail proprio non funzionava!

    dovrebbe essere sufficiente installare i pacchetti gmailfs e python-libgmail (oltre a fuse). poi crei un link a /usr/lib/python2.4/site-packages/gmailfs.py in /usr/bin

    poi crei un mount point, ad esempio /mnt/gmailfs
    a quel punto puoi montare il filesystem.

    io ad esempio ho in /etc/fstab la linea:
    /usr/bin/gmailfs.py /mnt/gmailfs gmailfs noauto,username=tuo_utente_senza_@gmail.com,password=tua_password,fsname=zOlRRa

    e dando il comando: # mount /mnt/gmailfs ottieni:
    Ignored option :rw
    Ignored option :noauto

    e puoi fare quel che vuoi nel tuo spazio gmail (come utente root).
    faccio ancora qualche esperimento e poi credo che scriverò qualcosa di più preciso e lineare.

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.