Enlightenment Foundation Libraries and Rage 0.2.0
For those of you who don't know, Enlightenment is a window manager for linux.
Ever since I watched Raster's presentation at linux.conf.au 2007 earlier this year I've been thinking about the enlightenment libraries, and particularly how they'd be suited to building a media center type application for linux. During his presentation, Raster had a lot of good things to say about performance and efficiency. For a programmer, that is pretty inspiring stuff to hear :)
So today I jumped into #e on chat.freenode.net and asked around about just this question. Raster was in there and quickly let me know about Rage, something he whipped together pretty quickly and had posted about a few months ago on his website (video here). I decided that this would be a perfect opportunity to get my hands dirty and learn a bit about the libraries.
To this end I've documented the process I went through to get the relevant libraries (and Rage of course) installed on my linux box. FYI - I have just upgraded to Feisty (last couple of weeks) and had no enlightenment libraries previously installed (in fact I haven't mucked around with enlightenment for probably close on 8 years). You'll see in the documented steps below that there were quite a few dependencies not met. I've deliberately left all these steps in there. If someone else has similar dependency problems, then By the Power of Google, this info might help :)
So without further ado, here are the steps I went through to get Rage built and working on Feisty. Forgive the verbosity, and enjoy! :)
0) Get rage from the enlightenment cvs with:
cvs -d :pserver:anonymous@anoncvs.enlightenment.org:/var/cvs/e login
cvs -z3 -d :pserver:anonymous@anoncvs.enlightenment.org:/var/cvs/e co misc
Find the rage source at misc/rage
1) Try running ./autogen.sh for rage
Running aclocal...
./autogen.sh: 8: aclocal: not found
2) 'automake' seems not to be installed so install it via Adept
3) Try to run ./autogen.sh again
Running aclocal...
configure.in:13: warning: macro `AM_ENABLE_SHARED' not found in library
configure.in:14: warning: macro `AM_PROG_LIBTOOL' not found in library
4) Looks like 'libtools' is not installed either, so install that via Adept too
5) Try running ./autogen.sh again
checking for EET... configure: error: Package requirements (eet) were not met:
No package 'eet' found
6) EET is an enlightenment foundation library (there's going to be a few of these dependencies), so get it from the enlightenment cvs with:
cvs -z3 -d :pserver:anonymous@anoncvs.enlightenment.org:/var/cvs/e co e17/libs/eet
7) run ./autogen.sh from the eet directory
configure: error: "Cannot find zlib.h. Make sure your CFLAGS environment variable contains include
lines for the location of this file"
8) install 'zlib1g-dev' using Adept
9) run ./autogen.sh again
configure: error: "Cannot find jpeglib.h. Make sure your CFLAGS environment variable contains include
lines for the location of this file"
10) install 'libjpeg62-dev using Adept
11) run 'make'
12) run 'sudo make install'
13) try running ./autogen.sh for rage again
checking for EVAS... configure: error: Package requirements (evas) were not met:
14) get evas from cvs with:
cvs -z3 -d :pserver:anonymous@anoncvs.enlightenment.org:/var/cvs/e co e17/libs/eet
15) run autogen.sh
checking for FREETYPE... configure: error: Package requirements (freetype2 >= 9.3.0) were not met:
16) install 'libfreetype6-dev' using Adept
17) run ./autogen.sh again
18) run 'make'
19) run 'sudo make install'
20) try running ./autogen.sh for rage again
checking for EDJE... configure: error: Package requirements (edje) were not met:
No package 'edje' found
21) get edje from cvs with:
cvs -z3 -d :pserver:anonymous@anoncvs.enlightenment.org:/var/cvs/e co e17/libs/edje
22) run ./autogen.sh for edje
No package 'ecore-evas' found
No package 'ecore-job' found
No package 'embryo' found
23) get both the ecore and embryo libraries from cvs with:
cvs -z3 -d :pserver:anonymous@anoncvs.enlightenment.org:/var/cvs/e co e17/libs/ecore
cvs -z3 -d :pserver:anonymous@anoncvs.enlightenment.org:/var/cvs/e co e17/libs/embryo
24) run ./autogen.sh for ecore
25) run 'make' for ecore
26) run 'sudo make install' for ecore
27) run ./autogen.sh for embryo
28) run 'make' for embryo
29) run 'sudo make install' for embryo
30) try running ./autogen.sh for edje again
31) run 'make' for edje
32) run 'sudo make install' for edje
33) try running ./autogen.sh for rage again
checking for EMOTION... configure: error: Package requirements (emotion) were not met:
34) get emotion from cvs with:
cvs -z3 -d :pserver:anonymous@anoncvs.enlightenment.org:/var/cvs/e co e17/libs/emotion
35) run ./autogen.sh for emotion
checking for XINE... configure: error: Package requirements (libxine >= 1.1.1) were not met:
36) install 'libxine-dev' using Adept
37) run ./autogen.sh for emotion again
38) run 'make' for emotion
edje_cc: Error. unable to load image for image "tiles.png" part entry to ../data/theme.edj. Missing PNG or JPEG loader modules for
Evas or file does not exist, or is not readable.
make[2]: *** [theme.edj] Error 255
make[2]: Leaving directory `/home/adrian/development/e/e17/libs/emotion/data'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/adrian/development/e/e17/libs/emotion'
make: *** [all] Error 2
39) install 'libpng12-dev' using Adept
40) rebuild evas (./autogen.sh, make, sudo make install)
N.B. this builds png image loader support into evas which is what make was trying to use above
41) run ./autogen.sh, make and 'sudo make install' for emotion
42) try running ./autogen.sh for rage again
43) run make for rage
In file included from main.h:1,
from main.c:1:
e.h:38:21: error: Ecore_X.h: No such file or directory
make[3]: *** [main.o] Error 1
45) Looks like Ecore_X.h wasn't installed. I discovered that this was an optional component that wasn't installed when I was building ecore, so after looking through ./configure in the ecore directory I discovered that I could probably fix it with:
run './autogen.sh --enable-ecore-x-xcb' for ecore
failed - dependency not met
46) To fix this problem I had to install 'libxcb-xlib0-dev'. So do that using Adept
47) try './autogen.sh --enable-ecore-x-xcb' for ecore again
dependency checking seemed to pass this time
48) run 'make' for ecore
lots of errors! (these were related to X development libraries)
49) install xorg-dev using Adept
50) run './autogen.sh --enable-ecore-x-xcb' and then 'make' for ecore
In file included from ecore_evas.c:4:
ecore_evas_private.h:37:40: error: Evas_Engine_Software_X11.h: No such file or directory
make[4]: *** [ecore_evas.lo] Error 1
51) Ok, so maybe when I installed evas the X11 software engine option wasn't installed, so rebuild and reinstall evas by running './autogen.sh' and 'make' and 'sudo make install' again
52) try running './autogen.sh --enable-ecore-x-xcb' and 'make' for ecore again
53) run 'sudo make install' for ecore
54) run './autogen.sh' for rage again
55) run 'make' for rage again
56) run 'sudo make install' for rage
The README for rage tells you how to get rage to scan your disk for media (that's currently the default way of importing or seeing your videos etc). It's fairly straightfoward.
After that just run ./rage and you'll have a working media centre based on the Enlightenment libraries :D
P.S. I was pretty impressed that it could play my phone videos, xvid anime, certain tv shows etc. Rage didn't hiccup once on any of the media I threw at it. Awesome! :D
No comments:
Post a Comment