--- ~~Title: Installing EFL on Fedora~~ ~~NOCACHE~~ --- # Installing EFL on Fedora # [The *Enlightenment Foundation Libraries (EFL)*](about-efl.md) power millions of systems from mobile phones to set-top boxes, desktops, laptops, game systems and more. You'll need EFL if you want to develop apps for Enlightenment and for any of the devices that use Enlightenment for its visual interface. This tutorial describes several ways to install EFL on your system. You will only need to use one of these. Select your chosen method using the index on the right. Many distributions offer EFL as an installable package from their default repositories. In this case you only need to use your distribution's software management system to install. However most versions of EFL in default repositories are out of date and will not compile more recent Enlightenment applications. If this is not an issue for you, read through the ["From Distribution Repositories"](#From_Distribution_Repositories) section below. Distributions often provide a special repository maintained by users or a method of integrating a bleeding edge version of EFL with your software management system. This means that once installed you can keep EFL current just by running system updates. If your distribution offers this, take a look at the section ["Installing from a Special Repository"](#Installing_from_a_Special_Repository). The Enlightenment developers provide a pre-packaged source of EFL. Although not bleeding edge it is up to date and considered stable for production environments. You can download, compile and install it yourself by following the instructions in ["Installing from Packaged Source"](#Installing_from_Packaged_Source). You can also download the source code for the most recent version from the EFL git repositories. To get started, read the section ["Installing from Git"](#Installing_from_Git). Whichever installation method you use, visit ["Compiling EFL Applications"](#Compiling_EFL_Applications) to discover how to compile your Enlightenment applications. ## From Distribution Repositories ## Fedora includes an *efl* packge in its default repositories. This makes installing EFL a simple task: ```bash sudo dnf install efl ``` Fedora does not come with *gcc* or *cpp* preinstalled. You'll need to install these to compile EFL-based applications: ```bash sudo dnf install gcc cpp ``` Note that the version of EFL in Fedoras's official repositories may not be the most recent release. This can cause problems when trying to compile examples from tutorials in this documentation. If this is the case, install a more recent version of EFL using one of the following methods: ## Installing from a Special Repository ## Fedora does not maintain a repository with a nightly, up to date, version of EFL. There is a [user-maintained repository containing a nightly version of Enlightenment](http://download.opensuse.org/repositories/X11:/Enlightenment:/Nightly/Fedora_Rawhide/). Unfortunately installing packages with duplicate names from user-maintained repository is very complex. It's much easier to install and maintain EFL installing it from Enlightenments official packages and git repository, so this should be your first resort. ## Installing from Packaged Source ## There are two versions of EFL available from the Enlightenment website. One is the bleeding edge version which you can [download using git](#Installing_from_Git). The other is packaged and available from the [EFL's download site](https://download.enlightenment.org/rel/libs/efl/) which is the focus of this section. ### Step 1: Downloading Stable Version ### [Download the latest version of EFL](https://download.enlightenment.org/rel/libs/efl/) and check it against its SHA256 hash: ```bash wget https://download.enlightenment.org/rel/libs/efl/efl-X.XX.X.tar.xz wget https://download.enlightenment.org/rel/libs/efl/efl-X.XX.X.tar.xz.sha256 cat efl-X.XX.X.tar.xz.sha256; sha256sum efl-X.XX.X.tar.xz ``` Note that you will have to change ``X.XX.X`` to the current version of EFL. ### Step 2: Unpacking ### Once you have downloaded the archive file containing EFL unpack it with: ```bash tar xvf efl-X.XX.X.tar.xz ``` This will create a folder named *efl-X.XX.X*. ### Step 3: Installing Dependencies ### Before you can compile and install EFL, you will have to install some software packages EFL requires: ```bash sudo dnf install meson ninja-build gcc gcc-c++ doxygen openssl-devel systemd-devel libjpeg-turbo-devel glib2-devel gstreamer1-devel luajit-devel freetype-devel fontconfig-devel fribidi-devel xorg-x11-server-devel libXrender-devel giflib-devel libtiff-devel libwebp-devel openjpeg2-devel poppler-devel poppler-cpp-devel libspectre-devel LibRaw-devel librsvg2-devel libmount-devel dbus-devel pulseaudio-libs-devel libsndfile-devel libXcursor-devel libXcomposite-devel libXinerama-devel libXdamage-devel libXrandr-devel libXtst-devel libXScrnSaver-devel bullet-devel gstreamer1-plugins-base-devel harfbuzz-devel mesa-libGLES-devel mesa-libEGL-devel scim-devel libcurl-devel wayland-protocols-devel libxkbcommon-devel libxkbcommon-x11-devel libinput-devel libgbm-devel libexif-devel ``` ### Step 4: Building and Installing ### Once you have installed all dependencies ``cd`` into the *efl-X.XX.X* folder and run: ```bash meson build ninja -C build sudo ninja -C build install ``` This will configure the files needed for compiling and installation. ### Step 5: Carrying out Post Installation Tasks ### As you are not installing to ``/usr`` but to ``/usr/local``, you will have to ensure that some files are visible to *dbus*: ```bash sudo ln -s /usr/local/share/dbus-1/services/org.enlightenment.Ethumb.service /usr/share/dbus-1/services/org.enlightenment.Ethumb.service ``` You also have to make some files visible to *pkgconfig*. To do this open ``/etc/profile`` in a text editor as root (using ``sudo vi /etc/profile`` for instance) and add the following line to the end: ```bash export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig ``` You may also need to refresh your library path to make sure your apps can find the EFL libraries: ```bash sudo ldconfig ``` ## Installing from Git ## Download the bleeding edge version of EFL by cloning it from the git repository. By default, *git* is installed in Fedora, so the first step is to clone EFL's source code: ```bash git clone https://git.enlightenment.org/enlightenment/efl ``` This will create a a directory named ``efl/``. You can now ``cd`` into the ``efl/`` folder and follow step 3, 4 and 5 from the above instructions. For a faster and smaller download you can add the ``--depth 1`` to the previous git command, in this way you will not get the full history of changes but just the latest snapshot of the source code. ## Troubleshooting ## If you are having problems compiling and installing EFL, you can come and seek advice on any of [our IRC channels](https://www.enlightenment.org/contact) or [post a ticket to our Phabricator](https://phab.enlightenment.org). ## Installing on Other Operating Systems ## If you would like to install EFL on a different operating system visit the [Installing EFL](start) page.