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 ?
Libplayer :
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
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.
Libvalhalla.
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.
Easy_e17 :
EFL compilation will be done with Brian ‘morlenxus’ Miculcy script : easy_e17.sh
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 :
./easy_e17.sh -i
Compilation begins. Later if you want to update EFL you just have to execute
./easy_e17.sh -u
And only changes will be compiled.
Gb libs
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.
cd libplayer
./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
Configuration
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 :
path_music=file:///home/user/Music,Music collection,icon/favorite
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 :
path=file:///home/user/Music
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 !
Autour de la compilation d’Enna « Skywalker13 2:52 pm on December 21, 2009 Permalink |
[…] Faites aussi un tour à ces adresses (en anglais / in english: http://enna.geexbox.org/developers.html https://captainigloo.wordpress.com/2009/12/21/enna-compilation-on-ubuntu-3/ […]
Joe90 5:21 pm on December 27, 2009 Permalink |
Phew!
Having followed the old howto I came upon the new howto once I had got stuck configuring enna (wrong versions of libplayer and valhalla)
So transferred to new howto for the libs! And stuck with the location of /usr with all the E17 stuff
Just run through the installation/compilation on my Ubuntu Jaunty setup.
Installed the following packages using apt. Left out mplayer as this is already compiled from source.
sudo apt-get install build-essential make gcc bison flex subversion automake autoconf autotools-dev autoconf-archive libtool gettext 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 libltdl3-dev libglu1-xorg-dev libglut3-dev libdbus-1-dev libxml2-dev colormake libcurl4-openssl-dev ccache
Had to amend some packages listed and also had to add cvs and lua/liblua5.1-dev
From svn compiled and installed the following:
eina
eet
embryo
evas
ecore (needed cvs)
edje (needed LUA)
elementary (in /TMP/st)
From hg compiled and installed the following:
libplayer
libvalhalla (needed sqlite3 and libsqlite3-dev)
libnfo
(using hg clone -r v1.0.0)
enna
It’s gorgeous 🙂
CyberMomo 8:42 pm on February 8, 2010 Permalink |
Hello
I followed all your steps but i am struggled on enna configuration
~/geexbox/enna$ ./autogen.sh –prefix=/opt/e17
…
checking for pkg-config… /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0… yes
checking for ENNA… configure: error: Package requirements (
eina-0 >= 0.9.9.063
eet >= 1.2.2
evas >= 0.9.9.063
ecore >= 0.9.9.063
ecore-evas >= 0.9.9.063
ecore-file >= 0.9.9.063
ecore-ipc >= 0.9.9.063
edje >= 0.9.93.063
elementary >= 0.6.0.063
libxdg-basedir >= 1.0.0
libplayer >= 2.0.0 libplayer = 2.0.0 libvalhalla < 3.0.0
libxml-2.0
libcurl
) were not met:
No package 'eina-0' found
No package 'eet' found
No package 'evas' found
No package 'ecore' found
No package 'ecore-evas' found
No package 'ecore-file' found
No package 'ecore-ipc' found
No package 'edje' found
No package 'elementary' found
No package 'libxdg-basedir' found
No package 'libplayer' found
No package 'libplayer' found
No package 'libvalhalla' found
No package 'libvalhalla' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables ENNA_CFLAGS
and ENNA_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
I have tried several time but always same result. Olso tried to give "/opt/e17" value to PKG_CONFIG_PATH.
All GB libs installed without problem.
Anyone know what is wrong? (iam on ubuntu9.10)
captainigloo 9:27 pm on February 8, 2010 Permalink |
you should define PKG_CONFIG_PATH to point out the right path :
export PKG_CONFIG_PATH=/opt/e17/lib/pkgconfig
and launch autogen.sh again.
CyberMomo 6:25 am on February 9, 2010 Permalink |
Hello thanks for the solution.
Next error is “No package ‘libxdg-basedir’ found” solution is “sudo apt-get install libxdg-basedir-dev”.
But now i have
Requested ‘libplayer >= 2.0.0’ but version of libplayer is 1.0.0
Requested ‘libvalhalla >= 2.0.0’ but version of libvalhalla is 1.0.0
If i understand these requirement is done for enna 0.5.0. Do i have to modify manualy this check to force use latest aviable release?
libvalhalla v1.0.1 comited
libplayer v1.0.0
Or the best i have to do is to try compile actual source? (make hg clone http://hg.geexbox.org/libvalhalla)
The last solution is to get first release of Enna but it’s probably too old. (hg clone -r v0.4.0 http://hg.geexbox.org/enna)
CyberMomo 1:18 pm on February 9, 2010 Permalink |
Ok i have tried to clone actuall version off libs and i have chance because it compile.
For your step you probably better replace (hg clone http://hg.geexbox.org/enna) by (hg clone -r v0.4.0 http://hg.geexbox.org/enna).
For those who want latest version just doesn’t use “-r vx.x.x” switch but like lotoff snapshot (tip) it not guarrented to be compilable…