Brussels / 31 January & 1 February 2015


Enlightenment, a cross-platform window manager and toolkit

Dealing with Enlightenment portability issues in FreeBSD and elsewhere

The EFL is a toolkit for writing cross-platform applications. Enlightenment is a desktop shell built using this toolkit. Both the EFL and Enlightenment are fast and light on resources (which made them the toolkit of choice in places such as the Tizen operating system and embedded environments) while remaining scalable, but their low level approach complicates portability. In this talk I'd like to summarize our past portability issues and tackle current ones, as well as talk about our future direction. The talk will be focused on FreeBSD, using it as an example, but will also cover our general issues and portability to other operating systems including Windows and OS X.

The EFL (Enlightenment Foundation Libraries) is a toolkit for writing applications (desktop and mobile alike), notably used by the Tizen operating system as well as other places. Enlightenment itself is a desktop shell built upon this toolkit. It's clean, lightweight and written entirely in C. However, its low-level implementation approach has, besides small size and high performance, a flaw, which is portability, an issue I have to deal with very often as part of my work at Samsung.

Enlightenment/EFL developers have always tried to write relatively portable code, but there are still quite a few issues (major and minor) that remain. As a FreeBSD user I think that portability is a very important topic that should not be overlooked, and that's why I would like to cover these issues in this talk as well as propose some solutions. The problems we're currently facing include dependency on certain very Linux specific things, such as udev, Wayland etc. as well as differences between APIs provided by those operating systems and differences in tooling (build systems...).

By coming up with solutions to these issues, we can make the EFL and E work better on non-Linux operating systems (including but not limited to the BSD family, Mac OS X or even Windows) as well as make it work better in those places where it already runs, making it more accessible to more developers.

In this talk I will introduce the EFL and Enlightenment, cover portability problems across different operating systems with a focus on *BSD (and lesser coverage of OS X and Windows) and present our future plans as far as platform coverage is concerned.


Daniel Kolesa