Workstation

Application development for the Librem 5 is not tied to a particular set of technologies. However, for simplicity, we recommend that you use the same set of tools and libraries that the Librem 5 developers have used.

Where appropriate you can use the versions of these that are provided with your operating system. However, it may be necessary to install more up-to-date versions of some tools when new features are needed. The preferred method for doing this is to use Flatpak to install sandboxed versions of the required applications.

GNOME and GNOME Builder

The default software stack is based on many of the technologies from the GNOME desktop environment. The applications supplied with the phone are also built using components from GNOME, such as the GTK+ toolkit. It can be useful to install the latest development versions of these components.

We suggest that developers use the GNOME Builder Integrated Development Environment (IDE) to develop applications. The latest documentation for Builder describes the preferred installation method for the IDE. This can be used to ensure that you have the latest version.

Meson and Ninja

Many applications will use the Meson and Ninja build tools to configure and build applications. The versions of these available in modern GNU/Linux distributions should be sufficient. Debian-based distributions, such as PureOS, provide packages called meson and ninja-build.

Flatpak

Flatpak provides features for application sandboxing and distribution. Applications for the phone can be distributed as Flatpaks - packages that can be distributed via repositories. Documentation for the flatpak tool and its flatpak-builder wrapper can be found in the Flatpak documentation.

Versions of these tools provided with modern GNU/Linux distributions should be sufficient. Debian-based distributions provide packages called flatpak and flatpak-builder.

gitg

This GNOME git client can be useful for visualizing git repositories. This is particularly helpful if you are considering porting an application with an extensive development history.

Versions of this tool provided with modern GNU/Linux distributions should be sufficient. Debian-based distributions provide a package called gitg.