Enlightenment Foundation Libraries 1.23 Release

  • 2019-10-01 - by Stefan Schmidt

After almost 6 months of development we are releasing version 1.23 of the Enlightenment Foundation Libraries, featuring over 2100 patches from 48 developers around the world. Thanks a lot for your contributions!

efl-1.23.tar.xz cd9625161b324621f873f00eb841de03398892078ce73d60205abd1766c15cc5

What's New

Again, the primary focus of this release has been stabilizing the EO library as well as an extending the set of unified API which is based on it. From this release onwards we also switched to meson as our only build system (RIP autotools, you served us well for a long time). The 2110 commits contain more changes to possible list here, but you will find improved DRM support, a new widget for controlling vector animations, a first step towards MVVM support, general bugfixes and more.

Please see the NEWS file for more details.


(git log –pretty=oneline v1.22.0..v1.23.0 | wc -l)
Number of commits in 1.23: 2110
Number of commits in 1.22: 2152

(git shortlog -ns v1.22.0..v1.23.0 | wc -l)
Number of authors in 1.23: 48
Number of authors in 1.22: 55

(git diff –stat v1.22.0..v1.23.0 | tail -1)
2296 files changed, 90115 insertions(+), 85554 deletions(-) in 1.23
3154 files changed, 169564 insertions(+), 79861 deletions(-) in 1.22

Compiling and installing


EFL requires a C and C++ compiler by default. C++ exists mostly to interface to C++ libraries like Bullet and our C++ bindings.

Required by default:

  • bullet
  • libpng
  • libjpeg
  • gstreamer (1.x, 0.10 support optional. Ensure all codecs you want are installed.)
  • zlib
  • luajit (lua 5.1 or 5.2 support optional)
  • libtiff
  • openssl
  • curl
  • dbus
  • libc
  • fontconfig
  • freetype2
  • fribidi
  • libpulse
  • libsndfile
  • libx11
  • libxau
  • libxcomposite
  • libxdamage
  • libxdmcp
  • libxext
  • libxfixes
  • libxinerama
  • libxrandr
  • libxrender
  • libxss
  • libxtst
  • libxcursor
  • libxp
  • libxi (2.2 or newer)
  • opengl(mesa etc.) (opengl/glx/full or opengl-es2/egl. full opengl only on osx - must be explicitly specified to be full to have support)
  • giflib
  • util-linux (limbount + libblkid)
  • systemd / libudev
  • poppler / poppler-cpp
  • libraw
  • libspectre
  • librsvg
  • openmp (clang needs libomp, while gcc uses libgomp)

You might want webp support so disable fewer loaders and remove webp from the disablers with: -Devas-loaders-disabler=json

Wayland support

You may also want wayland support when on Linux. This enables support for EFL to trget wayland support for client applications. To do this supply: -Dwl=true

Framebuffer support

This requires linux frame-buffer support, headers etc. This supports basic frame-buffers like /dev/fb as well as input via /dev/input for keyboards and mice in a basic way. Enable this with: -Dfb=true

For more modern framebuffer support you may want drm/kms rendering support so enable this. This is what you also want for wayland compositor support in enlightenment as it will want to be able to render to a moder framebuffer tarbet with atomic buffer swapping. To do this provide: -Ddrm=true


You may want to change the install prefix for EFL with: –prefix=/path/to/prefix

The default prefix if not given is “/usr/local”. Many people like to use prefixes like /opt/e or /opt/efl or /home/USERNAME/software etc.

Compiler flags

You can affect compilation optimization, debugging and other factors by setting your CFLAGS environment variable (and CXXFLAGS). Be aware that to ensure ABI stability you should use the exact same CFLAGS / CXXFLAGS for all the build of EFL and any applications/libraries that depend on them.

There are many other configure options that can be used, but in general it is not a good idea to go enabling or disabling things unless you wish to break things. The defaults are well tested, with the above recommended options also being well tested. Go much further and your mileage may vary wildly. Disabling features is a good way of breaking EFL functionality, so it is not recommended to mess with these without understanding the implications. The defaults have been carefully considered to provide full functionality so users will not be missing anything.


EFL officially offers openssl or gnutls as cryptography backends. By default it uses “openssl” to do signature, cipher and related. Alternatively one can use “gnutls” (some distros are strict about licenses and want gnutls instead of openssl) You can switch to gnutls with: -Dcrypto=gnutls

You could leave a comment if you were logged in.