gMTP su Fedora - pacchetti (spec) e appunti
Come sapete, da qualche tempo sto usando Fedora (al momento Fedora 18) con GNOME e devo dire che mi trovo, se non molto bene, di sicuro "non male": ovviamente c'è il supporto hardware solito tipico di Linux, e GNOME Shell ha fatto un po' di passi che se non sono da gigante comunque lasciano intravedere la speranza per chi, con le prime release, ha storto il naso (sottoscritto compreso). La mancanza più grande che ho riscontrato sinora però è quella di gMTP.
Per chi non sapesse cos'è MTP, copincollo da Wikipedia:
L' MTP (Media Transfer Protocol) è un set di estensioni del PTP (Picture Transfer Protocol) creato da Microsoft, per consentire l'uso di lettori MP3, macchine fotografiche digitali e altri dispositivi digitali portatili. MTP è fortemente legato a Windows Media Player. L'utilizzo di MTP al posto del classico MSC (mass storage class) comporta alcuni vantaggi pratici per gli utenti che utilizzano abitualmente Windows Media Player, ma rende di fatto meno accessibile la periferica rispetto ad un utilizzo col protocollo MSC. Ad esempio: un lettore MP3 che viene visto tramite MSC come una comune chiave di memoria (e quindi anche in Risorse del Computer si comporta come tale) è molto più versatile di un lettore MP3 che utilizza il protocollo MTP e che viene visto dalla gestione delle risorse del computer come dispositivo "Hierarchical", cioè come sotto cartella di risorse del computer. Le sottocartelle poi non portano indicazione sulla data e l'ora di creazione dei file contenuti (molto scomodo se il lettore MP3 è dotato di registratore vocale in quanto si perdono la data e l'ora in cui sono stati registrati i dati; infatti una volta trasferiti sul pc acquisteranno la data e l'ora del momento esatto del trasferimento. Altro difetto sta nel fatto che durante un trasferimento non si deve chiudere la cartella del lettore mp3 dalla quale si stanno prelevando i file altrimenti il trasferimento si interrompe.
Ora, piccolo approfondimento, che molti conosceranno già: in cerca di un protocollo migliore per gestire i trasferimenti di file in Android, Google ha deciso di utilizzare MTP che è probabilmente (anzi sicuramente) il protocollo "meno peggio" in circolazione riguardo il file transfer tra dispositivi. Il problema è che MTP gode del seguente supporto presso i maggiori sistemi operativi:
- Windows lo supporta ottimamente (ci credo: è il loro)
- Mac OS ha bisogno di un frescobuffo che si chiama Android File Transfer - che, per chi non lo sapesse, e si ostinasse a denigrare il software open source in ogni sua forma, è una GUI per libmtp, progetto aperto. Sucate.
- Su Linux, come sopra, abbiamo libmtp che però ha una corolla di interfacce grafiche e a riga di comando notevoli. La mia preferita è gMTP che, pur funzionando (scusate la ruralità dell'espressione) a cazzo, è anche in questo caso la meno peggio. Semplice, efficace, fa il suo mestiere.
Il problema è che pur essendo nei repository di tutte le distro del mondo, come al solito Fedora, sguarnita più di un supermercato il giorno dopo Natale, non ce l'ha. Mi sono quindi ingegnato e editando uno spec che ho preso da Fedora Forum, ho creato il mio bel pacchetto sorgente con l'ultima versione di gMTP, pronto per compilare su qualsiasi Fedora 18 di questo mondo. Dovrete armarvi di un po' di buon senso, la linea di comando e delle vostre incantevoli dita, dopodiché, come ci dice anche il wiki di CentOS:
wget http://dl.dropbox.com/u/685412/f-pkg/gmtp-1.3.4-2.fc18.src.rpm
rpm -i gmtp-1.3.4-2.fc18.src.rpm
cd ~/rpmbuild/SPECS
rpmbuild -ba gmtp.spec
Dando questi quattro comandi riusciremo a produrre un RPM di gMTP perfettamente funzionante, che possiamo installare come vogliamo; io ho usato rpm da CLI perché il frontend era andato in sciopero per ragioni a me ignote.
Note nerd
Oh, figo rpmbuild!
Non avevo mai visto una cosa così caruccetta nei modi e nelle configurazioni. L'unica cosa che gli assomiglia per la mia esperienza è ABS, il sistema di port di Arch Linux, ma la sintassi degli spec per costruire un RPM è decisamente poco complessa, con header ben definiti e contenuti stra-leggibili. Sembra - azzardo - quasi un file markdown più che qualcosa dove vengono istanziate delle variabili. Ne sono rimasto piacevolmente sorpreso, adesso come in altre occasioni. Sicuramente, sia rpmbuild che makepkg sono anni avanti a quello che è (mi scusino i debianisti) il modo di creare un pacchetto DEB, pacchetti per i quali ho buttato il sangue a suo tempo e sui quali ho promesso di non ripetere più l'esperienza traumatica.
Photo courtesy of Fernando Weno