Skip to content

Commit af07209

Browse files
committed
runtime: Improve the runtime section
- Add support policy documentation - Add ways to check available software in a runtime - Remove IDs for runtimes - Remove list of libraries. These get outdated too often
1 parent 18c81eb commit af07209

File tree

1 file changed

+103
-112
lines changed

1 file changed

+103
-112
lines changed

docs/available-runtimes.rst

Lines changed: 103 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -2,156 +2,147 @@ Available Runtimes
22
==================
33

44
This page provides information about available Flatpak runtimes. It is
5-
primarily intended as information for application developers and distributors.
5+
primarily intended as information for application developers and
6+
distributors.
67

78
There are currently three main runtimes available: Freedesktop, GNOME and
8-
KDE. These are all hosted on `Flathub <https://flathub.org/>`_. Each runtime
9-
comes with the corresponding SDK for building, and extensions for specific uses.
10-
11-
What is mentioned here is just a high level look at the contents. To have up
12-
to date information simply install the runtime and open a shell inside of it
13-
(``flatpak run org.freedesktop.Sdk//23.08``) from there you can look around or
14-
use tools like ``pkg-config --list-all``. In the runtime shell you can also
15-
inspect ``/usr/manifest.json``, which lists the sources used to build it.
9+
KDE all of which are hosted on `Flathub <https://flathub.org/>`_. Each
10+
runtime comes with a parent SDK for building, a Docs, a Debug and a
11+
Locale extension to provide documentation, debug symbols and localisation
12+
support, respectively and other extensions or extension points for
13+
specific uses.
1614

1715
Freedesktop
1816
-----------
1917

20-
The Freedesktop runtime is the standard runtime that can be used for any
21-
application and contains a set of essential libraries and services, including
22-
D-Bus, GLib, Gtk3, PulseAudio, X11 and Wayland.
18+
The `Freedesktop runtime <https://gitlab.com/freedesktop-sdk/freedesktop-sdk/>`_
19+
is the standard runtime that can be used for any application. It
20+
contains a set of essential libraries, provides the graphics and the
21+
toolchain stack and forms the base of the GNOME and KDE runtimes.
22+
23+
It also provides a base set of extensions and extension points used
24+
by other runtimes and applications. See
25+
:ref:`extension:Extensions or extension points defined by runtime` for
26+
more details.
2327

24-
The Freedesktop runtime is maintained `here
25-
<https://gitlab.com/freedesktop-sdk/freedesktop-sdk/>`__ and has a website
26-
`here <https://freedesktop-sdk.io/>`__.
28+
A given branch of the Freedesktop runtime has a 2 year support period
29+
after which they are declared EOL. A new major version is published on
30+
August of every year. The release schedule can be found on `Gitlab <https://gitlab.com/freedesktop-sdk/freedesktop-sdk/-/wikis/Releases>`_
31+
and announcements of new major version releases are made on `Flathub Discourse <https://discourse.flathub.org/c/announcements/6>`_.
2732

28-
Available Freedesktop runtimes:
33+
The Freedesktop platform (``org.freedesktop.Platform`` and
34+
``org.freedesktop.Sdk``) provides strict ABI/API stability in a
35+
major version.
2936

3037
====================================================== =====================================
3138
ID Description
3239
====================================================== =====================================
3340
org.freedesktop.Platform Runtime
3441
org.freedesktop.Sdk SDK
35-
====================================================== =====================================
36-
37-
The following runtime extensions are available:
38-
39-
====================================================== =====================================
40-
ID Description
41-
====================================================== =====================================
4242
org.freedesktop.Platform.Locale Runtime translations (extension)
43-
org.freedesktop.Platform.VAAPI.Intel{,.i386} Intel vaapi drivers (extension)
44-
org.freedesktop.Platform.ffmpeg-full All ffmpeg codecs (extension)
45-
org.freedesktop.Platform.Compat.{architecture} 32 bits compatible extension
46-
org.freedesktop.Platform.Compat.{architecture}.debug 32 bits compatible extension (debug)
47-
org.freedesktop.Platform.GL{,32}.default Mesa drivers (extension)
48-
org.freedesktop.Platform.GL{,32}.mesa-git Mesa drivers, latest (extension)
4943
org.freedesktop.Sdk.Debug SDK debug information (extension)
5044
org.freedesktop.Sdk.Locale SDK translations (extension)
5145
org.freedesktop.Sdk.Docs SDK documentation (extension)
52-
org.freedesktop.Sdk.Extension.toolchain-{architecture} SDK cross compilers (extension)
5346
====================================================== =====================================
5447

5548
GNOME
5649
-----
5750

58-
The GNOME runtime is appropriate for any application that uses the GNOME
59-
platform. It is based on the Freedesktop runtime and adds the GNOME platform,
60-
including:
61-
62-
* Gjs
63-
* GObject Introspection
64-
* GStreamer
65-
* GVFS
66-
* Libnotify
67-
* Libsecret
68-
* LibSoup
69-
* PyGObject
70-
* Vala
71-
* WebKitGTK
72-
73-
The GNOME runtime is maintained `here
74-
<https://gitlab.gnome.org/GNOME/gnome-build-meta>`__.
75-
76-
Available GNOME runtimes:
77-
78-
========================= =================================
79-
ID Description
80-
========================= =================================
81-
org.gnome.Platform Runtime
82-
org.gnome.Sdk SDK
83-
========================= =================================
84-
85-
The following runtime extensions are available:
86-
87-
========================= =================================
88-
ID Description
89-
========================= =================================
90-
org.gnome.Platform.Locale Runtime translations (extension)
91-
org.gnome.Sdk.Debug SDK debug information (extension)
92-
org.gnome.Sdk.Locale SDK translations (extension)
93-
org.gnome.Sdk.Docs SDK documentation (extension)
94-
========================= =================================
51+
The `GNOME runtime <https://gitlab.gnome.org/GNOME/gnome-build-meta>`_
52+
is appropriate for any application that uses the GNOME platform. It is
53+
based on the Freedesktop runtime and adds the libraries and components
54+
used by the GNOME platform.
55+
56+
Major version releases of the runtime are synced with `GNOME releases <https://release.gnome.org/calendar/>`_
57+
and are announced on `GNOME Discourse <https://discourse.gnome.org/tag/announcement>`_.
58+
Usually a given branch of the runtime is supported for an year and EOL-ed
59+
upon the release of a newstable version.
60+
61+
====================================================== =====================================
62+
ID Description
63+
====================================================== =====================================
64+
org.gnome.Platform Runtime
65+
org.gnome.Sdk SDK
66+
org.gnome.Platform.Locale Runtime translations (extension)
67+
org.gnome.Sdk.Debug SDK debug information (extension)
68+
org.gnome.Sdk.Locale SDK translations (extension)
69+
org.gnome.Sdk.Docs SDK documentation (extension)
70+
====================================================== =====================================
9571

9672
KDE
9773
---
9874

99-
The KDE runtime is also based on the Freedesktop runtime and adds Qt and KDE
100-
Frameworks. It is appropriate for any application that makes use of the KDE
75+
Runtime ID: ``org.kde.Platform``
76+
SDK ID: ``org.kde.Sdk``
77+
78+
The `KDE runtime <https://invent.kde.org/packaging/flatpak-kde-runtime>`_
79+
is also based on the Freedesktop runtime and adds Qt and KDE Frameworks.
80+
It is appropriate for any application that makes use of the KDE
10181
platform and most Qt-based applications.
10282

103-
The KDE runtime is maintained `here
104-
<https://invent.kde.org/packaging/flatpak-kde-runtime>`__.
83+
Qt5 LTS (based on KDE's Qt patch collection) branches are created on
84+
Freedesktop runtime major version releases and Qt6 branches are created
85+
on new Qt6 releases. More information about the support policy can be
86+
found on the `KDE wiki <https://community.kde.org/Policies/Flatpak_Runtime_Update_Policy>`_
87+
and announcements for new runtime branch releases are made on the
88+
`KDE Discourse <https://discuss.kde.org/c/announcement/9>`_.
10589

106-
Available KDE runtimes:
90+
====================================================== =====================================
91+
ID Description
92+
====================================================== =====================================
93+
org.kde.Platform Runtime
94+
org.kde.Sdk SDK
95+
org.kde.Platform.Locale Runtime translations (extension)
96+
org.kde.Sdk.Debug SDK debug information (extension)
97+
org.kde.Sdk.Locale SDK translations (extension)
98+
org.kde.Sdk.Docs SDK documentation (extension)
99+
====================================================== =====================================
107100

108-
======================= =================================
109-
ID Description
110-
======================= =================================
111-
org.kde.Platform Runtime
112-
org.kde.Sdk SDK
113-
======================= =================================
101+
elementary
102+
----------
114103

115-
The following runtime extensions are available:
104+
Runtime ID: ``io.elementary.Platform``
105+
SDK ID: ``io.elementary.Platform``
116106

117-
======================= =================================
118-
ID Description
119-
======================= =================================
120-
org.kde.Platform.Locale Runtime translations (extension)
121-
org.kde.Sdk.Debug SDK debug information (extension)
122-
org.kde.Sdk.Locale SDK translations (extension)
123-
org.kde.Sdk.Docs SDK documentation (extension)
124-
======================= =================================
107+
The `elementary runtime <https://github.com/elementary/flatpak-platform>`_
108+
is hosted by elementary and is appropriate for any application that
109+
would like to publish to the elementary AppCenter. It is based on the
110+
GNOME runtime and adds the elementary platform.
125111

126-
elementary
127-
----------
112+
====================================================== =====================================
113+
ID Description
114+
====================================================== =====================================
115+
io.elementary.Platform Runtime
116+
io.elementary.Sdk SDK
117+
io.elementary.Platform.Locale Runtime translations (extension)
118+
io.elementary.Sdk.Debug SDK debug information (extension)
119+
io.elementary.Sdk.Locale SDK translations (extension)
120+
io.elementary.Sdk.Docs SDK documentation (extension)
121+
====================================================== =====================================
122+
123+
Check software available in runtimes
124+
------------------------------------
125+
126+
The best way to check software packaged in the runtime is to look at
127+
their respective manifests in the git repository or release contents.
128+
129+
The latter can be done using::
130+
131+
flatpak run --command=cat <ID>//<branch> /usr/manifest.json|jq -r '."modules"|.[]|."name"'|sed -E 's#.*/(.*)\.bst#\1#'|sort -u
128132

129-
The elementary runtime is appropriate for any application that would like to publish in elementary AppCenter. It is based on the GNOME runtime and adds the elementary platform, including:
133+
# List all contents in GNOME 47 runtime
134+
flatpak run --command=cat org.gnome.Platform//47 /usr/manifest.json|jq -r '."modules"|.[]|."name"'|sed -E 's#.*/(.*)\.bst#\1#'|sort -u
130135

131-
* elementary Icons
132-
* elementary Stylesheet
133-
* elementary Sound Theme
134-
* Granite
136+
``pkg-config`` can be used for modules that install pkg-config files::
135137

136-
The elementary runtime is maintained `here
137-
<https://github.com/elementary/flatpak-platform>`__.
138+
flatpak run --command=pkg-config <SDK ID>//<branch> --list-all
138139

139-
Available elementary runtimes:
140+
# Check version appstream in Freedesktop SDK 24.08
141+
flatpak run --command=pkg-config org.freedesktop.Sdk//24.08 --modversion appstream
140142

141-
============================= =================================
142-
ID Description
143-
============================= =================================
144-
io.elementary.Platform Runtime
145-
io.elementary.Sdk SDK
146-
============================= =================================
143+
``ldconfig`` can be used to list all libraries::
147144

148-
The following runtime extensions are available:
145+
flatpak run --command=ldconfig <ID>//<branch> -p
149146

150-
============================= =================================
151-
ID Description
152-
============================= =================================
153-
io.elementary.Platform.Locale Runtime translations (extension)
154-
io.elementary.Sdk.Debug SDK debug information (extension)
155-
io.elementary.Sdk.Locale SDK translations (extension)
156-
io.elementary.Sdk.Docs SDK documentation (extension)
157-
============================= =================================
147+
# Check libraries in Freedesktop runtime 24.08
148+
flatpak run --command=ldconfig org.freedesktop.Platform//24.08 -p|awk '/\.so/ {print $1}'

0 commit comments

Comments
 (0)