[ubuntu-it] Mediatomb e javascript

Stemaz docste a tiscali.it
Ven 29 Lug 2011 09:04:25 UTC


Smanetta a destra e a manca mi sono accorto che il mio post più sotto
non è poi tanto OT; posto qui nella speranza che sia utile per qualcuno.
Ovviamente non è tutta farina del mio sacco.
Mediatomb è un server DLNA leggerissimo, che permette di creare una rete
multimediale domestica senza la necessità di acquistare apparecchi
creati a questo scopo: in altre parole è un server multimediale
leggerissimo, che permette di condividere in rete foto, musica, filmati
ecc ecc. E con due valori aggiunti: la possibilità di transcodifica
(ossia convertire in tempo reale un file da un formato ad un altro) e
l'altissima configurabilità (dalla scelta del programma per la
transcodifica, la sua configurazione in base alle caratteristiche della
norstra rete, ecc). Con una Playstation 3, o una TV in grado di
connettersi in rete e un pc con mediatomb c'è veramente da sbizarrirsi:
vedere filmati scaricati da internet nei vari formati (ad esempio,
ricette di cucina o filmati per il fai-da-te), streaming diretto da
youtube, visione di filmati divx su televisori che non includono i codec
divx, e in più c'è la possibilità di importare oggetti (ad esempio, un
dvd) creando script di importazione in java!
E qui casca l'asino, per lo meno con i pacchetti che installiamo da
repository, visto che Mediatomb è stato compilato senza supporto per gli
script  java, e quando tentiamo di utilizzarne uno o il server si pianta
nella schermata di login, senza possibilità di accedere, od otteniamo un
messaggio di errore:

"MediaTomb was compiled without js support, however you specified “js”
to be used for the virtual-layout."

Poco male, si potrebbe pensare: si scarica il sorgente, e si ricompila.
.. che ci vuole?
Che ci vuole? Ma solo le librerie libjs, ribattezzate SpiderMonkey, ecco
che ci vuole!... Ma per quanto cerchiate di installare da repository non
ci riuscirete mai, e il perchè è ben spiegato nel file README che si
trova nella cartella js/src del sorgente che scaricate da qui
http://ftp.mozilla.org/pub/mozilla.org/js/js185-1.0.0.tar.gz :
"NOTE: Do not attempt to use Makefile to build the standalone JavaScript
engine.  This file is used only for building the JS-engine in the
Mozilla browser."

La soluzione al problema che ho trovato non è molto ortodossa,
probabilmente deprecabile, ma funziona.

Dopo aver scaricato e scompattato il file js185-1.0.0.tar.gz
dall'indirizzo sopra (per la verità ho utilizzato la versione 1.7.0, ma
la cosa non dovrebbe cambiare), andate nella directory js/src e
compilate il driver:

$ gmake -f Makefile.ref BUILD_OPT=1

Se provate a installare la libreria non ci riuscirete, perchè lanciando
il comando

$ sudo make install

otterrete in risposta che non esistono istruzioni per l'installazione.
Creiamole, quindi: nella stessa directory js/src creiamo un file che
chiameremo Makeinstall, e in cui all'interno copieremo queste linee (13
in tutto):

BLD := Linux_All_OPT.OBJ
#PREFIX := /usr/local
PREFIX := /usr

install:
        cp ${BLD}/libjs.so ${PREFIX}/lib
        cp ${BLD}/js ${PREFIX}/bin
        cp ${BLD}/jscpucfg ${PREFIX}/bin
        cp ${BLD}/jskwgen ${PREFIX}/bin
        mkdir -p ${PREFIX}/include/js
        cp *.h ${PREFIX}/include/js
        cp *.tbl ${PREFIX}/include/js
        cp ${BLD}/*.h ${PREFIX}/include/js

PREFIX dovrebbe essere /usr se usato con checkinstall, altrimenti
/usr/local (piazzate un # prima dell'opzione che non volete utilizzare).
Fare molta attenzione a come verrà incolonnato quanto scritto al di
sotto di "install:": il rientro non è dato da otto spazi vuoti, ma da un
singolo rientro creato con il tasto tab della tastiera. O è così, o
Makefile non funzionerà.
A questo punto si può normalmente installate la libreria:

$ sudo make install

Personalmente preferisco sempre creare pacchetti .deb, e ho creato un
pacchetto che fa le stesse cose di make install:

$ checkinstall -D make install

A questo punto la libreria libjs dovrebbe essere installata sul sistema.
Si può scaricare il sorgente di Mediatomb da
http://mediatomb.cc/pages/download#source_code , compilare con supporto
java abilitato, installare, e fine dei giochi. Ma visto che sono pigro,
e che nei repository non ci sarà il pacchetto .deb compilato come mi
garba, ma non c'è nemmeno cacca, mi scarico da lì i sorgenti: apro una
directory dove piazzare i files (ad esempio mediatomb in Scaricati), ci
entro:

$ mkdir /home/nome_utente/Scaricati/mediatomb
$ cd /home/nome_utente/Scaricati/mediatomb

e li prelevo

$ apt-get source mediatomb

e vado ad abilitare il supporto java:

$ sudo gedit
/home/nome_utente/Scaricati/mediatomb/mediatomb-0.12.1/debian/rules

cercando MEDIATOMB_CONFIG_OPTIONS e modificando da "–disable-libjs" ad
"–enable-libjs"

Nella stessa directory da dove abbiamo in precedenza dato il comando
apt-get (nel caso in esempio /home/nome_utente/Scaricati/mediatomb) ci
andremo ora a creare i tre pacchetti .deb (mediatomb, mediatomb-common e
mediatomb-daemon) che successivamente installeremo:

$ sudo dpkg-buildpackage -rfakeroot -us -uc
$ sudo dpkg -i mediatomb*.deb

Se la cosa non vi soddisferà (ci credo poco...) potrete sempre ritornare
agli "originali":

$ apt-get install --reinstall mediatomb

Non dimenticate di modificare il file di configurazione di mediatomb:

$ sudo gedit /etc/mediatomb/config.xml

modificando l'istruzione virtual-layout type da <virtual-layout
type="builtin"> a <virtual-layout type="js">

Happy scripting & transcoding!

-- 
Stemaz
docste a tiscalinet.it



Maggiori informazioni sulla lista ubuntu-it