The Myth of the Muttering Madman is a project in self-realization.

Showing posts with label linux. Show all posts
Showing posts with label linux. Show all posts

Sunday, May 06, 2007

Enlightenment Foundation Libraries and Rage 0.2.0

Enlightenment logoFor 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

Saturday, November 18, 2006

IE and Kubuntu are go!

I was having a discussion with a web developer friend of mine the other day about Kubuntu. He made the very valid point that he still needs a windows install around to do thorough testing of IE browser support on a windows box.

Well I have IE 5.5 and 6.0 running on Kubuntu (and no I'm not using VMWare). I found a very nifty little script in my blog reading this morning which installs IE 5.0, 5.5 and 6.0 for you (you can choose which versions you want). The magic all happens with IEs4Linux (also check out his blog - looks like IE7 support is there too - maybe this will convince me to finally install IE7). It installs with a minimum of fuss and hassle. In fact with ADSL2+ the install is lightning fast.

The only requirement is that you have Wine installed and cabextract (a program to extract Microsoft Cabinet files). Using Adept Manager I had these installed in minutes. Following the Kubuntu instructions on the IEs4Linux was incredibly straightfoward. Within minutes I had two fancy looking IE icons on my desktop (an upside down IE logo in what looks like a cocktail glass), and I was ready to go.

I have a screenshot of IE 5.5, IE 6.0 and Firefox running behind it. No hacks, no pain. It Just Works. Very impressive. Just to prove that it really is IE I've loaded up Bento's blog Waffle which proudly gives IE the middle finger. You can see what I mean in the screenshot :)

So while it's not IE on Windows, it's about as close as you'll get whilst running a Linux distro. I say give it a whirl :)

Sunday, November 12, 2006

Kubuntu - Oh What a Feeling :D

Ok - so I'm typing this post from my newly installed Kubuntu (which is pretty much just Ubuntu with KDE as the default window manager). It's very very nice.

I'm just copying across my mp3s from my USB external hard disk and we'll be good to go. I have Gaim installed and configured (which I was using on Windows anyway - it wees all over MSN and Trillian (which is just plain ugly)). Kubuntu pre-installs OpenOffice which I was also using on my Windows XP box, and I have Firefox 2.0 up and running.

It's been about 9 years since I ran Linux exclusively on my desktop at home, and that only lasted about 18 months. Boy o boy has Linux come a long way. I haven't had to go hunting around for my XConfig file. I haven't spent days looking for an obscure X server driver. Everything Just Works. In fact, it's interesting to note that I've installed and configured Kubuntu to my tastes faster than it normally takes to download, configure and install Cygwin (a tool that any serious programmer familiar with *nixs would usually install on their Windows boxen).

Ah, I love it. Let me see, I have Adept which appears to be a kickarse GUI interface to the powerful apt-get packaging system we've all been envious of from Debian. I have an audio player already installed (mp3s work with barely any fuss). I have CD and DVD burning software, a powerful media player in Kaffeine. I have an RSS reader pre-installed. I have Bluetooth chat (!), a bittorrent client, an IRC client, a PDF reader out of the box, Konqueror - a kick arse web browser (arguably better than Firefox in some sense - just ask Apple - Safari heart KHTML and all that). I have all that Linux brings to the development table (Windows has nothing on Linux - and no I'm not convinced that Powershell will make much of a difference), and all of this is wrapped up in a really quite beautiful GUI (I rate it way higher than XP or other MS derivatives - Mac OS X still rocks - though Ubuntu is definitely up there).

For those who want to take a peek you can click on the smaller image below for a full res screenshot of what Kubuntu looks like on my desktop (1280x1024). Even the process of taking this image was effortless. Hitting printscreen on your keyboard automatically brings up a snapshot program which wants to save your desktop as a PNG for you. Excellent :)



I'll get to know Kubuntu better over the next week or so and post some more, so stay tuned :)

One last point. People who are interested in Linux, or Free Software in general (there is a convincingly philosophical argument behind this) should definitely check Ubuntu out. You can download it here. Give it a go. If you're a developer and you're happy to put the time in I can't imagine you'd fail to be impressed.

about me

Labels