Enlightenment Basics

Enlightenment consists of a core package,
a set of libraries upon which it is dependent and add-on packages
known as “epplets”, which are not required to get E
(Enlightenment) running. You can grab the core package and the
libraries it requires from the primary E web site at
http://www.enlightenment.org/.
At a minimum, you'll need the packages listed in Table 1 in order
to run on a Red Hat 5.2 system. Red Hat 6.0 or later, SuSE 6.2 and
later and the current Debian distributions already have E
available. If you install everything, you'll have E ready to run.
If not, you will need to determine which package includes E.
Usually this is the same category in which you find GNOME or KDE
when choosing packages to install.

The graphics libraries you'll want are TIFF, GIF, PNG and
JPEG, but most of these have been installed with Linux
distributions for a couple of years, so chances are you already
have them. Like the other libraries upon which E is dependent, you
can find the source distributions for the graphics libraries on the
E web site.

The first thing you want to do is make sure the graphics
libraries are present. The quick way to check for them is to type
ldconfig -p. This command will print all
libraries initially installed on your system. If you add more
libraries in other directories (as we'll be doing in a moment) and
have configured them in /etc/ld.so.conf, it will show those as
well.

If any of these commands simply return without printing
anything, you're missing the associated library. The
grep command will allow only the
output from ldconfig which
contains the string that follows it (-i means
ignore case). If you're missing a graphics library, get it from the
web site and install it. Since most people will already have these,
we're going to skip their installation.

Next, you want to install imlib. This library handles the
display of graphic images (backgrounds, borders, etc.). It scales
images appropriately, such as when you make a window wider. Imlib
is not installed on most older distributions of Linux, and some
newer versions may not install it by default, so we'll look at the
installation of this library directory from its source.

Grab the library source from the E web site and unpack it
into a local directory. In this directory, run the configure script
as follows:

./configure --prefix=/usr/local/imlib

This will prepare the package for compiling. The “--prefix”
option tells configure that, after compilation, installation will
be into a directory called /usr/local/imlib. Management of packages
like imlib, that are built from source rather than an RPM, is
easier if you install them in their own directories.

After running the configure command, you're ready to build
the software by typing make. This will run for a
time and should complete without error; however, you may see some
warnings go by. On my system, I don't have the GIF library
installed, so I get a message stating “Native GIF support will not
be built.” This isn't a big problem unless you plan on using GIF
images in your personal themes or as background images. The themes
provided in the E core distribution all use PNG, so at a minimum
you'll need the PNG library installed.

You might also run into a warning about GTK not being found
and one that reads “gdk_imlib will not be built”. This shouldn't
happen to you unless, like me, you have GTK installed in its own
directory. Most readers will have installed GTK during installation
of the operating system. If you do get this error, either you may
need to upgrade your GTK package or you need not have it installed
in a standard location. In either case, you don't have to have
gdk_imlib in order to use the imlib library with E.

After the source code build completes, you're ready to
install it. Since we specified a directory in /usr/local, we'll
need to be root to install the software there. You can either log
out and log back in as root, or just run the
su command to change to the root
user. The latter is easier to do, but you will need the root
password. As root, type

make install

Now, edit the /etc/ld.so.conf file and append the following
line to it:

/usr/local/imlib/lib

Then run ldconfig. This will tell the system new
libraries are installed under /usr/local/imlib/lib and to check for
libraries there when running programs or compiling them. We'll be
doing this step again for the other libraries, so be sure you
remember it. If you used su to change to the root user, type
exit to return to your normal user name.
Remember: you should never work as the root user
except to manage system files. You can compile
these packages without being root, and you should—it's safer that
way.

Now you're ready to install the font libraries, fnlib and
freetype. Fnlib, a collection of fonts that E uses, has some
dependencies on imlib, so that's why imlib had to be installed
first. Freetype is the library which gives E internal support for
TrueType fonts. In this way, E can use TrueType fonts even if your
X server doesn't support them.

Unpack fnlib and the FreeType library into their own separate
directories. In the fnlib directory, run this command:

In each directory, run make, change to the root
user again and run make install. Edit the
/etc/ld.so.conf file and append these two lines:

/usr/local/fnlib/lib
/usr/local/freetype/lib

Finally, rerun ldconfig and exit from the root user.

Normally, this would be all that was necessary for other
programs which use auto-conf (the
tool which creates the configure scripts) to find your newly
installed packages. But E is missing a minor bit in its configure
scripts, so we have one extra step to do. We need to make symbolic
links for the files in the fnlib and freetype directories into
their respective directories under /usr/local. It's not hard, so
don't let this technical explanation scare you. Just type the
script in Listing 1 into a file called /tmp/fixit.sh, then
type:

That should do it. Seems like a lot of work, and it is, but
this is what you have to live with when working with very young
software. Linux may be in its infancy, but E is only a bit older
than most zygotes.

After installing the libraries upon which E is dependent,
we're ready to build and install E itself. This one follows the
same basic steps as the others—run configure,
run make, run make install.
Except this time, you don't need to update the ld.so.conf
file.

Change to the root user and type make
install, then exit from the root user.

When you run the configure script, you will get a notice
about Esound not being found. That's fine—you don't need it to
work with E. As far as I'm concerned, sound on a computer does one
of two things: makes noises when you type, or the clock changes and
plays MP3s on your CD. Playing music shouldn't be the job of the
window manager, so the latter option isn't important. As for making
sounds when you type, well, any window manager that does that
should be placed on a floppy disk and nailed to the stake where its
author is tied just before they light the fire at his feet. But I
digress.

The process for building E is just like building the
libraries, so the installation should go smoothly. Chances are, the
only real problems you'll hit might be if the libraries weren't
installed correctly. If that's the case, reread this section and
try again. After the build and installation are complete, you may
want to add the Enlightenment/bin directory to your path:

Note that E's main program—the window manager—is a program called
“enlightenment”.

What looks like a typo is not—the path is correct in both of
these commands. We told the build process to install all the
enlightenment tools under /usr/local/enlightenment. When we ran
make install, the E installation process created
a number of directories under /usr/local/enlightenment. One of
these was called enlightenment. The reasons for this are technical,
but suffice it to say the Enlightenment developers had one
installation scenario in mind and that differs from mine. It
doesn't matter. It still works using my method, and later upgrades
to E will be easier to handle without disturbing any other
packages.

Michael J. Hammel (mjhammel@graphics-muse.org) is
a graphic artist wanna-be, a writer and a software developer. He
wanders the planet aimlessly in search of adventure, quiet beaches
and an escape from the computers that dominate his life.

Trending Topics

Upcoming Webinar

Getting Started with DevOps - Including New Data on IT Performance from Puppet Labs 2015 State of DevOps Report

August 27, 2015
12:00 PM CDT

DevOps represents a profound change from the way most IT departments have traditionally worked: from siloed teams and high-anxiety releases to everyone collaborating on uneventful and more frequent releases of higher-quality code. It doesn't matter how large or small an organization is, or even whether it's historically slow moving or risk averse — there are ways to adopt DevOps sanely, and get measurable results in just weeks.