Flatpak runtime for electron apps based on the freedesktop runtime.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
Makefile
README.md
com.endlessm.ElectronKnowledgeBaseApp.json
com.endlessm.ElectronKnowledgeDevApp.json
io.atom.electron.BaseApp.json
io.atom.electron.DevApp.json
libappindicator-disable-python-bindings.patch
libgnome-keyring-detect-gcrypt.patch

README.md

electron-flatpak-base-app

This repo contains flatpak builder manifests for building a number of applications to help with electron flatpak development.

Built versions for x86_64, i386 and arm are hosted on Flathub.

To get started with the electron base app for your current architecture.

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub io.atom.electron.BaseApp

Apps

The most useful app here will probably be the io.atom.electron.BaseApp which can be layered into your flatpak electron app with all the library dependencies electron needs to run. For a high level overview of flatpak, electron and the applications here see.

General Apps

  • io.atom.electron.BaseApp: contains all the library dependencies of an electron application, allowing your app to target the freedesktop runtime. Should be suitable for targeting any linux distribution.
  • io.atom.electron.DevApp: layered on top of the base app, this application contains flatpak, git and nodejs installed. You can use it to build electron flatpaks on a system where either git or nodejs is not available.

EndlessOS Apps

  • com.endless.ElectronKnowledgeBaseApp: layered on top of the base app, contains the library dependencies needed to build offline content browsing apps for EndlessOS.
  • com.endless.ElectronKnowledgeDevApp: adds flatpak, git and nodejs to the ElectronKnowledgeBaseApp. You can build EndlessOS content browsing flatpaks from within this app.

Building

Building the apps require flatpak and flatpak-builder to be installed on your system. You will also need the freedesktop runtime, which if you don't already have, can be installed by running

make install-deps

Any of the app manifests can be built directly using the flatpak-builder command. The makefile contains a recipe for building all the apps in this repo sequentially, to do so just run

make

You can use the following environment variables to configure the build.

  • ARCH: architecture to use when building the base application. You must have the freedesktop runtimes installed for the same architecture.
  • REPO: the location of the flatpak repository to publish the base app to. Defaults to repo wherever make is run.
  • REPO_NAME: the name to use when setting up a local flatpak remote for the repo. Default to local-endless-electron-apps.
  • EXPORT_ARGS: extra arguments to use when exporting the application with flatpak-builder, such as --gpg-sign=KEYID for gpg signing.

Using

You can use the base app to build an electron application flatpak. One way to do this is to specify it in a flatpak-builder manifest file.

{
    "id": "com.website.MyElectronApp",
    "base": "io.atom.electron.BaseApp",
    "base-version": "master",
    "runtime": "org.freedesktop.Platform",
    "runtime-version": "1.6",
    "sdk": "org.freedesktop.Sdk",