Package: firefox
Version: 81.0-2
Severity: wishlist
It would be useful if firefox (but not -esr) ran the upstream test suite
for SpiderMonkey (js) on buildds, ideally with failures causing FTBFS.
Otherwise, the GNOME team (which needs to repackage -esr versions of
mozjs for gjs, on a cycle that is driven by GNOME rather than Mozilla)
gets this anti-pattern:
* mozjs does low-level things that frequently introduce portability
regressions
* upstream only tests and supports non-exotic architectures
* each new -esr release of mozjs breaks ABI, which means we have to give
it a new SONAME, which means it has to go through NEW
* until it has left NEW, it isn't routinely built on the full zoo of
exotic architectures
* architecture porters have no idea anything is wrong, because from their
perspective, everything is building successfully
* this means we can only start fixing regressions when it leaves NEW, by
which time it's holding up new versions of GNOME
In the mozjs* family of packages, we run build-time tests and consider
most failures to be fatal, because we've found that if we don't, in
practice mozjs won't actually work, causing FTBFS further down the line
in gjs or in packages that happen to use gjs.
If firefox runs the tests, the cost is that it will take longer for new
versions to become available, particularly on slow architectures. However,
firefox (non-esr) is only in unstable and deliberately kept out of testing
anyway, so that seems maybe not so bad?
We've found that it's necessary to skip a few tests where Mozilla
upstream makes assumptions that are not true in Debian. Some notable
examples:
* Mozilla specifically does not support non-SSE x86 CPUs, but Debian's
i386 architecture baseline demands that we must, so some tests fail as
a result of i387's excess precision and need to be skipped
* Mozilla specifically does not support ARM softfloat, but Debian armel
does, so again we have to skip a few tests that make assertions about
the finer points of floating-point behaviour
* Debian has some 64-bit architectures that Mozilla hasn't heard of, so
tests that take an arbitrarily long time on 64-bit need to be skipped
on more architectures
To support that, I've added some infrastructure in mozjs78's
debian/patches/ to be able to skip tests selectively according to facts
about dpkg-architecture - for example to be able to skip a test on all
the big-endian architectures.
The GNOME team are not Mozilla ecosystem specialists, and I definitely
don't know what I'm doing (I'm only working on mozjs because someone
has to and nobody else did), so some of our patches are definitely just
hacks - if anyone with a better grasp of the Mozilla ecosystem can replace
our hacks with something better they are more than welcome to do so!
Thanks,
smcv