Firefox Flatpak Packaging
This page explains interactions between Firefox and Flatpak packaging format.
Where is the upstream
The code reference itself is mozilla-central and the repackaging is under the mach repackage flatpak command.
Where to report bugs
All bugs should be reported to Bugzilla in the appropriate component depending on the bug and marked as blocking the flatpak
meta-bug.
Build process
Perform a build and then run mach repackage flatpak
, e.g.:
$ mach repackage flatpak \
--input target.tar.xz \
--name org.mozilla.firefox \
--arch aarch64 \
--version 137.0a1 \
--product firefox \
--release-type nightly \
--flatpak-branch nightly \
--template-dir browser/installer/linux/app/flatpak \
--langpack-pattern $PWD/langpacks/*.xpi \
--output test.flatpak.tar.xz,
Where target.tar.xz
can be a downloaded artifact from try build or built from a local build. You will also want to download some langpack.
How to hack on try
Pushing to try is basically just:
$ mach try fuzzy --full -q "'repackage 'flatpak !shippable"`
This will produce a repackage flatpak task at the end that generates a target.flatpak.tar.xz
.
Installing the try build
Download and extract the previously generated target.flatpak.tar.xz
and it will produce a ./repo
directory that you can directly use with flatpak:
$ flatpak --user --no-gpg-verify remote-add firefox-try ./repo/
This should add you a user-level firefox-try flatpak remote, you can verify with (flathub
remote may be a user or a system level remote):
$ flatpak remotes Name Options firefox-try user flathub user
Then you can install your local build:
$ flatpak install firefox-try firefox Looking for matches… Found ref ‘app/org.mozilla.firefox/x86_64/nightly’ in remote ‘firefox-try’ (user). Use this ref? [Y/n]: y org.mozilla.firefox permissions: ipc network cups fallback-x11 pcsc pulseaudio wayland x11 devices devel file access [1] dbus access [2] bus ownership [3] system dbus access [4] [1] /run/.heim_org.h5l.kcm-socket, xdg-download, xdg-run/speech-dispatcher:ro [2] org.a11y.Bus, org.freedesktop.FileManager1, org.gtk.vfs.* [3] org.mozilla.firefox.*, org.mozilla.firefox_beta.*, org.mpris.MediaPlayer2.firefox.* [4] org.freedesktop.NetworkManager ID Branch Op Remote Download 1. [✓] org.freedesktop.Platform.GL.default 24.08 u flathub 67,3 Mo / 156,6 Mo 2. [✓] org.freedesktop.Platform.GL.default 24.08extra u flathub 3,9 Mo / 156,6 Mo 3. [✓] org.freedesktop.Platform.Locale 24.08 u flathub 282,1 Ko / 380,3 Mo 4. [✓] org.freedesktop.Platform 24.08 u flathub 25,4 Mo / 264,4 Mo 5. [✓] org.mozilla.firefox.Locale nightly i firefox-try 1,0 Ko / 1,6 Mo 6. [✓] org.mozilla.firefox nightly i firefox-try 1,0 Ko / 111,5 Mo Changes complete.
And after that you can just run flatpak run org.mozilla.firefox//nightly
.