Flatpak introduction

JensPetersen2 694 views 18 slides Nov 11, 2016
Slide 1
Slide 1 of 18
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18

About This Presentation

Talk at FUDCon APAC 2016 in Phnom Penh on the Flatpak tool providing Linux-portable application bundles. Currently primarily for GNOME, KDE, and LibreOffice.


Slide Content

presented by
Jens Petersen
Generic standalone
Linux app packages

About me: Jens Petersen
Worked on Fedora since the beginning
Red Hat i18n software engineering manager in Japan
Member of the Fedora Workstation WG

Disclaimer: not a Flatpak contributor/expert

Introduction
Packaging applications for generic Linux is painful
Different distributions in multiple versions,
each with their own versions of libraries and packaging formats

Flatpack
is here to change that
●Flatpak apps can be installed on different distros and versions
●Uses sandboxes to isolate binary apps from your system

Flatpak assumes Linux

Author
Flatpak is created and authored by Alex Larsson

Flatpak was formerly called xdg-app



https://2016.guadec.org/tag/flatpak/

How?







http://flatpak.org/#about

Concepts
●Runtimes
●Bundled libraries
●SDKs
●Sandboxes


http://flatpak.org/developer.html

Identifiers
Flatpak identifies runtimes, SDKs and applications by a triple of:
name/arch/branch
●name is in inverse-dns notation
○needs to match the D-Bus name used for the application
○Eg org.gnome.Sdk/x86_64/3.14 or org.gnome.Builder/i386/master

Technologies
Many of the important ingredients for Flatpak are inherited from Linux containers
and related initiatives:
●bubblewrap utility from Project Atomic lets unprivileged users set up and run
containers, using kernel features like Cgroups, Namespaces, Bind mounts,
Seccomp rules
●systemd to set up cgroups for the sandbox
●D-Bus, a well-established way to provide high-level APIs to applications
●OCI format from the Open Container Initiative, as a convenient transport
format for single-file bundles
●The OSTree system for versioning and distributing filesystem trees
●Appstream metadata for Flatpak apps to show up in Gnome Software

Anatomy of a flatpak app
http://flatpak.org/developer.html#Anatomy_of_a_Flatpak_App

No package versions?

Sandboxes
http://flatpak.org/developer.html#Working_with_the_Sandbox

Installation
Flatpak is available in Fedora, Ubuntu, Debian, etc

$ flatpak --help

Demo

Running
Let’s try http://flatpak.org/index.html#users

Build
We will try http://flatpak.org/index.html#developers

Tools, IDE
●flatpak-builder
●GNOME Builder and Software support flatpak
○since 3.20, improved in 3.22

Alternatives
Snap from Ubuntu
Nix/guix
AppImage

Thank you
Contributing:
●Homepage: http://flatpak.org/

●Mailing list: http://lists.freedesktop.org/mailman/listinfo/xdg-app

●IRC: #flatpak on Freenode

●Github: https://github.com/flatpak/flatpak