Pages

Tuesday, April 2, 2013

Building and Installing E17 from stable release

When edje wont build

Summary:
check for previous (obsolete) installs for EFL and E17 development packages.

Its April 2013 as I write this.
Over Easter  I finally got around to _successfully_ building the latest Released (stable) version from the Enlightenment Main Site .
See:
The Released page.

Now this is (should be) straight forward enough essentially you build the Enlightenment Foundation Libraries then build the desktop manager/shell  (E17) and away you go. The usual caveats around building from source apply of course. You will need quite few other dev libraries that you may or may not have in place.


If you get all the way to edje and then it breaks, before you waste a heap of time manually relinking and checking $PATH and permissions, reading all the ./configure --help(s) ... and grepping through code tracing the linkages ...
googling around in circles ...

Do yourself a favour purge all the packaged development libs and apps or simply move them out of the way.

I had only purged e17-dev and this was not enough.

((DOH) Well of course it wasn't I was building the Foundation Libraries, the desktop (e17) may be treated as a nice side effect :)

I had totally forgotten I had installed the Debian prepacked versions months ago for reasons I now only vaguely remember.

Here is list of them for Debian (.deb) based distros I expect they will be very similar for others.

  libedje-dev - libedje headers and static libraries
 libeet-dev - Enlightenment DR17 file chunk reading/writing library      development files
libefreet-dev - Development files for libefreet and libefreet-mime
libelementary-dev - Development files for libelementary
libevas-dev - Enlightenment DR17 advanced canvas library development files
e17-dev - Enlightenment headers, static libraries and documentation

I suspect its the edje and possibly the e17 devs that cause issues that are not resolved by the $PREFIX settings at build time.

The symptom is that edje wont build as its compile gets pointed to old versions of its precursors. (dependencies)


./configure wont warn you about this :)

So as your going to be building from source anyway you may as well --purge them. Some equivalent to :

apt-get remove --purge libedje-dev libeet-dev libefreet-dev libelementary-dev libevas-dev e17-dev


I haven't looked into the details but will note that most ./configure (s) appear to have options that would also solve the issue ... I can't see the point having them as they are way out of date and now (soonish)  not needed.

Other thoughts and notes:
  Use the released tarballs at least at first, getting the developers latest stuff is quite massive and probably in a rapid state of flux in any case.
(Lets not talk about WTF is going on with VCS ...)
In any case you will need to gather some familiarity before doing SVN or bzr <-> git.


So with this in mind or some functional equivalent as you see fit go ahead and start again :)

I will post a step through next post.
Its quite doable following the instructions at the main site.
(and avoiding the developers docs which may lead you to dark places)