Page MenuHomePhabricator

Efler - The EFL Installer
Updated 1,214 Days AgoPublic

A bootstrap and GUI for installing and managing EFL and apps that require it.

Efler aims to be the cross-platform packaging-free solution to deploying and discovering EFL apps!
As the base requirements are as close to zero as possible efler can be bootstrapped with no EFL installation on a reasonably vanilla system. To install efler (and the EFL if you don't have it) you can execute the following command:

Linux / Mac OSX

bash -c "$(curl -fsSL https://git.enlightenment.org/devs/ajwillia-ms/efler.git/plain/bootstrap.sh)"

This will invoke the initial download of the efler repository which will in turn initialise your platform for efl and then build and install it. Once the EFL is installed efler will continue on to install base applications.
The cool thing is, effler installs itself into ~/.efler/ and you can run it again for incremental rebuilds :)

Windows

Windows is not currently supported :(

This is heavily a work in progress but is already function so feel free to try it out!

Motivation

Enlightenment and EFL have a lot of trouble getting packaged into various distributions and platforms which is a challenge. In addition we aim to be cross platform but are barely known on some platforms we target.

To allow EFL based apps to flourish we need to make it trivial to get the EFL and dependencies installed on a computer and we also need to make it easy to discover recommended, stable and up to date apps.

Efler will address both of these concerns. The main app will be designed to support discovery, installation and updating of EFL based apps whilst the system itself must be installable so easily it's a single command on any supported computer.

Design

Initially efler will operate as a compile-from-source system that is based off the enlightenment git repositories.
Once things become more stable we should be using tags or snapshots rather than master but essentially this is still bad for compile times and reliability.

Ideally we will operate a binary cross-platform distribution but such a solution is not yet available. Marrakech (discussed at various EFL events) is suggested as the target here but milestones are unclear at this time. Efler will need to be built in such a way that we can optimise the app distribution over time.

Efler has two areas where it writes files to:

  • ~/.efler is the location of all the source code and downloads required to build the libraries and apps.
  • /opt/efler is used as the install PREFIX - an environment script is installed to /etc/profile so your apps can be found.

Architecture

Efler is split into 3 parts

  1. Bootstrap of dependencies
  2. Command line installer / updater
  3. GUI application for app discovery, installation and updating

The GUI is coming later but the first two work already - the script line above calls them both. To bootstrap the guest operating system to install it's dependencies we need specific scripts and the following OSs are supported currently:

  • Linux
    • Arch & Manjaro Linux
    • Ubuntu (best on a fresh system)
    • (other distributions are prompted to check dependencies)
  • Mac OS X
    • El Capitan
  • (other OSs are not supported/tested at this time)
Last Author
ajwillia.ms
Last Edited
Jun 30 2017, 2:05 PM
Projects
None
Subscribers
None