wiki/notebook/packages.flatpak.org
Gabriel Arazas 110ec318e0 Update notebook as of 2021-11-06
- Some updates to pacman as I'm going to trying to use Open Build
Service which apparently has support for publishing Arch Linux packages.
Pretty nice!

- Starting to take more notes for Git as I use it beyond the simple
commit and push workflow. I mostly use it to create patches for
packaging other applications.

- Updates for Drawabox.
2021-11-06 12:06:25 +08:00

2.4 KiB

Flatpak packages

  • a Flatpak package usually is an application that depends on runtimes which are collections of library
  • while runtimes can be created, there are only a handful of them in the official Flathub remote
  • some of the runtimes include Freedesktop, GNOME, and KDE
  • you can run the runtimes to know the installed packages (e.g., flatpak run org.freedesktop.Sdk//19.08)
  • Flatpak can get packages from a repository referred to as remotes similar to Arch packages or FreeBSD ports
  • the package definition are referred to as a manifest similar to Nix packages
  • Flatpak can create bundles from a manifest, enabling easier distribution without a Flatpak remote
  • similar to Nix packages and Guix package manager, sandboxing is an important part of the build process; thus, there are limitations such as no network availability, filesystem access, and socket access; by default, applications only have access to their runtime folders
  • Flathub, the main repository, is concerned with Reproducible builds
  • examples:

    • Minecraft is fairly simple by fetching the compiled binary and its dependencies with minimal compilation needed
    • RawTherapee is slightly complex with various dependencies defined mostly in one file
    • Gnucash has a complex manifest that is composed of multiple dependencies packages as its own module file
    • RetroArch is similarly complex to Gnucash with its vendored dependencies packaged as its own module
  • Flathub has a curated set of scripts to automate building manifests for several projects such as Python, Rust, and Node similar to roam:nixpkgs
  • Flathub also has a collection of modules intended to be shared among the repo serving as an additional base for the most common dependencies that cannot be found in runtimes