Enna Compilation on Ubuntu #3
Ok Here an update of compiling enna for Ubuntu. Previous post about enna’s compilation is now verry old.
As explain by Mathieu in his blog post (in french) Geexbox libs have reached stability.
What are these libs for ?
If you have already compiled enna, you should know about libplayer. Libplayer is a wrapper for common mediaplayer binary and libs. The most used in enna is mplayer. But we are also using xine (for DVD player). To avoid code duplication to control this different mediaplayers, libplayer implement a set of common functions to use all of this backend. It’s very usefull.
Libnfo is a really tiny lib, and his goal is to implement XBMC NFO specifications. NFO are XML files that you can put in your directories, which describes a media file. You can add in this XML file a synopsys of a movie, add actors, directors …. This lib is used in a libvalhalla grabber.
You can see this lib as the Enna media database, but it’s more than that. During enna initialization, libvalhalla is launched and begin to parse all the files that it can (those specified in enna.cfg). It parses videos, musics and pictures files and add them in a sqlite database. Tags embedded in medias are parsed and insert and when it’s done it tries to get more inforations from the internet. Currently ther is a dozen of grabbers availaible for libvalhalla, like amazon, lastfm, lyricswiki, imdb, allocine, the movie db, the TV db and more…
By this way we can displayed synopsys, covers or fanart in Enna’s UI.
Libvalhalla is really powerfull, but it is also really fast.
For example parsing 1000 files (Ogg and MP3) take less than 25seconds ! Of course it’s only the time to parse ID3 tags and add them in database, without grabbers. Time to get infos with grabbers depends on you network access and on web services used, it can be really fast for some services, but can take about 50 seconds sometimes. Anyway libvalhlla grab files in parallel, so you should not noticed that.
About EFL ?
Enna uses Elementary now. To be short, elementary is a widget library on top of Evas and Edje so we don’t have to rewrite code ever and ever, we are using elementary list (genlist), elementary buttons and label ….
There is less code in enna core and we can focus on usability.
The easy method :
On Ubuntu Karmic :
Add this line to /etc/apt/sources.list :
deb http://packages.geexbox.org/ karmic main
and install development packages :
apt-get update apt-get install libeina-dev libeet-dev libevas-dev libevas-engines libevas-engines-extras libecore-dev libefreet-dev libembryo-dev libedje-dev libedje-bin libedbus-dev libhal-dev libhal-storage-dev libnfo-dev libplayer-dev libvalhalla-dev
Get enna :
hg clone http://hg.geexbox.org/enna cd enna ./autogen.sh make sudo make install
and that’s all 🙂
For experts : EFL + GB + enna compilation from sources
If you are on a Ubuntu machine, you can install these libs :
sudo apt-get install xterm make gcc bison flex subversion automake autoconf autotools-dev \ autoconf-archive libtool gettext \ libpam0g-dev libfreetype6-dev libpng12-dev zlib1g-dev libjpeg62-dev \ libtiff4-dev libungif4-dev librsvg2-dev libx11-dev libxcursor-dev \ libxrender-dev libxrandr-dev libxfixes-dev libxdamage-dev \ libxcomposite-dev libxss-dev libxp-dev libxext-dev libxinerama-dev \ libxft-dev libxfont-dev libxi-dev libxv-dev libxkbfile-dev \ libxkbui-dev libxres-dev libxtst-dev libltdl7-dev libglu1-xorg-dev \ libglut3-dev xserver-xephyr libdbus-1-dev cvs subversion mercurial \ liblua5.1-dev libavformat-dev mplayer libxine-dev libxml2-dev \ libcurl4-openssl-dev wget libexif-dev libsqlite3-dev libxine1-all-plugins libxine1-ffmpeg
This should be enough to compile EFL and GeeXboX libs.
We need to change a bit this script to suit our needs.
edit this script with the editor of your choice and change :
line 26 :
change efl_basic="eina eet evas ecore efreet e_dbus embryo edje esmart" with efl_basic="eina eet evas ecore efreet e_dbus embryo edje elementary"
line 29 :
change bin_basic="exchange e entrance" with bin_basic="expedite"
line 44 :
change autogen_args="" # evas:--enable-gl-x11 with autogen_args="evas:--enable-gl-x11"
Save your changes.
This script will download, build and install EFL in /opt/e17 and set all environnement variable you need to execute an EFL binary.
Sources will be download in $HOME/e17_src.
execute the script with :
Compilation begins. Later if you want to update EFL you just have to execute
And only changes will be compiled.
You can open a new terminal, while EFL compilation we will download geexbox libs and enna tip.
create a new directory : mkdir gb_src && cd gb_src
Enne uses for now stable versions of geexbox libs.
hg clone -r v1.0.0 http://hg.geexbox.org/libplayer hg clone -r v1.0.0 http://hg.geexbox.org/libnfo hg clone -r v1.0.0 http://hg.geexbox.org/libvalhalla hg clone http://hg.geexbox.org/enna
When EFL compilation is done and succesfull, you can verify if all is working fine by executing : elementary_test
If something happens, congrats, EFL are correctly installed 🙂
Ok, now GB libs. We will installed all libs in /opt/e17.
./configure --prefix=/opt/e17 make sudo make install cd .. && cd libnfo ./configure --prefix=/opt/e17 make sudo make install cd .. && cd libvalhalla ./configure --prefix=/opt/e17 make sudo make install cd .. && cd enna ./autogen.sh --prefix=/opt/e17 make sudo make install
At this point you should have enna functionnal.
You can run it with : enna
A new configuration file is created at the first execution in $HOME/.enna/enna.cfg
You can change settings in this file to suit your needs :
in [localfiles] section you can change path of you Media files :
For example if you have an music directory in /home/user/Music
Add this line :
You can do the same for video and photos.
just change path_music by path_video of path_photo of course you can remove dummy lines. Change the setiing on line 93 also. It will give to libvalhalla the directories to scan. For the same music direcotry than earlier add the line in [media_db] section :
All files present in this directory will be added to media database AND if you add/remove or change files, modifications will be reflect in database on the fly.
I hope you will enjoy Enna !