This git repository holds the modulemd file and associated container files for the Fedora Flatpak runtimes. It also holds scripts and data files used to maintain and update the Fedora Flatpak runtimes.
Prequisites: you need to have the following "upstream" runtimes installed:
org.freedesktop.Platform/x86_64/22.08
org.freedesktop.Sdk/x86_64/22.08
org.gnome.Platform/x86_64/44
org.gnome.Sdk/x86_64/44
You also need python3-jinja2
and possibly a few other Python
packages installed.
And finally, you'll need to have fedmod installed.
You should run fedmod fetch-metadata
initially and whenever you want to download
a fresh set of metadata from Fedora. fedmod
never updates metadata on its own.
How it works: The files in the upstream runtimes are the primary source for the contents
of the corresponding Fedora runtimes. When you type make update
, the
steps are as follows:
tools/list-files.py
)tools/resolve-files.py
)fedmod resolve-deps
,
correlate it all together, figure out the install profiles for each runtime,
and create report/runtime.html
. (tools/generate-runtime-report.py
)flatpak-runtime.new.yaml
using the profiles. (tools/generate-modulemd.py
)tools/download-fedora-appstream.sh
, tools/download-flathub-appstream.sh
,
tools/download-reviews.py
)reports/
. (tools/generate-app-reports.py
). (Improvement would be to use
the candidate next build - requires us to pass the runtime data to fedmod rather
than have fedmod download it from Koji.)flatpak-runtime.new.yaml
to flatpak-runtime.yaml
Report generation: if you type make report
instead then all the above happens
except the last step.
The main way to tweak the result is to edit and extend the data embedded in
tools/resolve-files.py
. Make sure you add comments explaining why you are
excluding files, and feed back exclusions to the upstream runtime maintainers
as appropriate.
To aid in keeping track of the status of all the packages in
report.html
, notes and "flags" are read from package-notes.txt. The
notes are added to report.html
and the flags affect formatting. The
top of that file has a comment describing the simple format.
First make sure that the branches for new Fedora release are created in the following components:
Once done, please do the following steps in this exact order:
rpms/flatpak-runtime-config
package for a new Fedora release - i.e. f35 and f36rpm -qa --qf "%{NAME}\n" | sort
) from a live Fedora Workstation media.modules/flatpak-runtime
- i.e. f34 -> f35 and f35 -> f36tools/generate-files.sh
fedmod --dataset=f36
fetch-metadata
(replace f36 with the new release). You might need to update
the /etc/fedmod/fedora.yaml
file and add a new release there. If the new
Fedora is already released, then duplicate the f36 part under the releases:
section example. If the new version isn't released yet, do the same, but replace
fedora-stable
with fedora-branched
.make new-runtime
. In case of any problems you will need to update the
tools/resolve-files.py
to adapt it for new library versions and so on.
Once the new runtime files are generated, consult the content of it and again
modify tools/resolve-files.py
to exclude any libraries, binaries or packages
if needed.flatpak-module local-build
to verify that the changes from previous step are working.fedpkg module-build -w
followed by fedpkg flatpak-build
fedpkg module-build -w
. If you will
hit any build problems you might want to try to build the module locally
against the local packages with flatpak-module build-module
. For that you
have to setup your environmentfedpkg flatpak-build
(no need to build a module for
flatpak-sdk). On the other hand if you will need to make any changes to the
flatpak-runtime defitions (to add more packages that are not pulled on
x86_64 - i.e. this change)
then you will need to again do a module build of flatpak-runtime and once
it's done, you can start a new fedpkg flatpak-build
of flatpak-runtime
and flatpak-sdk.fedpkg module-build -w
and fedpkg flatpak-build
. Also
it's a good time to update the finish-args
from Flathub and update them
in Fedora if needed. Also update the module packages with the changes from the new Fedora release - i.e. fedmod rpm2flatpak --flatpak-common --force --flathub=gimp gimp
.
You might find the following howto useful.