Fedora Workstation ships with a flathub remote which is filtered. Only explicitly allowed applications and runtimes are available, unless the user has explicitly installed the full Flatpak remote.
This repository holds data files with the status of available downloads from Flathub, and scripts for updating those files.
[com.spotify.Client] Name: Spotify Include: yes Comments: very popular. Downloads via extra-data Summary: Online music streaming service Homepage: https://www.spotify.com Links: https://flathub.org/apps/details/com.spotify.Client https://github.com/flathub/com.spotify.Client License: LicenseRef-proprietary=https://www.spotify.com/us/legal/end-user-agreement/ Runtime: org.freedesktop.Platform/20.08 Downloads (new last month): 29978 (rank: 1) Fedora Flatpak: no
Downloads (new last month)is non-incremental downloads in the last month. We ignore incremental updates, because we don't want to count apps that are frequently updated as more popular. Rank is separate for applications and other downloads.
Commentsis free-form text explaining a value of
Includeindicates a decision to include or exclude the Flatpak from Fedora. For now, most components will have blank values for
Include, which means they will be excluded, but no decision has been made.
Linksis a field with useful links to learn more about this entry. Its filled in automatically for
apps.txt, but starts off empty and is editable in
There is also a file wildcard.txt which holds entries
for wild-card patterns that match against many entries in
[org.freedesktop.Platform.GL.default/*] Comments: Mesa libGL. Built as part of org.freedesktop.Platform Include: yes Links: https://gitlab.com/freedesktop-sdk/freedesktop-sdk
wildcard.txt starts off empty,
and entries have to be added to it manually. When entries in
wildcard.txt match items in
other.txt, they are
inserted as follows:
[org.freedesktop.Platform.GL.default/20.08] Matched: org.freedesktop.Platform.GL.default/* Include: # yes Comments: # Mesa libGL. Built as part of org.freedesktop.Platform Links: # https://gitlab.com/freedesktop-sdk/freedesktop-sdk Downloads (new last month): 278820 (rank: 1) Fedora Flatpak: no
fedora-flathub.filter is the final filter file. It shouldn't be edited manually.
update.py script is used to update
Usage is simple. To download the latest data from Flathub and Fedora,
and update the data files, run:
Interesting options are:
--verboseshow slightly more output
--quietshow less output
--force-downloadforce downloading current application data, even if the cached data is recent.
git rebase TARGET, but with special handling of
--merge=PR_NUMBERrebase and merge a pull request
--rebase deserves more explanation.
The big problem with the strategy of checking
other.txt into git
is that as download statistics change, they change a lot.
Commits to this repository that mixed updates and substantive changes would be unreadable.
--rebase=TARGET does is create a single commit on top of
with only changes from running
update.py, and then replays commits not in
merging changes to
wildcard.txt in a smart fashion.
git clone https://pagure.io/fedora-flathub-filter cd fedora-flathub-filter # make a branch to work on git checkout -b updates-2021-03-24 # add an initial commit with just update.py changes ./update.py --rebase main # Edit, edit, edit, commit, edit, ..., commit # update your branch with any upstream and Flathub changes git fetch origin ./update.py --rebase origin/main # File your branch as a pull request
Most pull requests will need to be rebased before landing, since they
include updates to the latest Flathub data. Asking contributors to do
this is annoying, so
update.py has a special
--merge flag for maintainers
to use to rebase-and-merge a pull request, using the right text to get
Pagure to mark the pull request as merged.
./update.py --merge=123 # Check that everything looks good git push origin main
extra-datamechanism. If the program is coming from an established, well-known commercial entity, you can assume they have obtained all necessary patent and other licenses.
Commentsnon-speculative. Something like: "Contains h264, not currently shipped with Fedora" is appropriate.