Attempting to cross-compile Firefox will be rather challenging. It has
loads of dependencies, written in a variety of languages. Some issues
are more interesting than others. Notably, _dev-libs/nss_ needs to be
installed on the host in order to cross-compile itself, but its ebuild
does not specify this ([Bug 759127][0]). Also the build system for
_gnome-base/librsvg_ is broken: [Gentoo Bug 835758][1], [GNOME
Issue #810][2]. Cross-compiling _dev-libs/gobject-introspection_ is
also broken ([Bug 759127][3], [850895][4]).
With all of these changes, we can get to the point where Portage starts
building Firefox, it will take hours and all of my machine's resources,
so I haven't tested if will actually build. We shall see once Jenkins
tries it...
[0]: https://bugs.gentoo.org/759127
[1]: https://bugs.gentoo.org/835758
[2]: https://gitlab.gnome.org/GNOME/librsvg/-/issues/810
[3]: https://bugs.gentoo.org/850895
[4]: https://bugs.gentoo.org/751325
Recompiling the entire OS for every build takes way too long for
development purposes. Since we build binary packages anyway, let's keep
them around between builds by storing them on a Kubernetes persistent
volume.
Eventually, I want add a build parameter to wipe out the binary package
storage to force a from-scratch build. We'll use that option for robust
periodic builds, once development has slowed down.