Version 67 (modified by ken@…, 2 years ago) ( diff )

firefox - remove very old items



Firefox has a nasty habit of requiring a new profile every few releases. I say this is nasty because logins, current tabs, plugins (even if still supported) and perhaps bookmarks can be lost. In addition, it tends to name the profiles default, then default.default when it creates another. This can also apply when downgrading the version (e.g. going from 69.0 to 68.2.0esr). 73.0 required a new profile, that profile continues to work in 77.0

If you wish to use multiple profiles (or to be able to rename or delete old profiles), open firefox with 'firefox -P'.

You can also tell firefox to use a profile which it warns is old, either by invoking it from a term in xorg using 'MOZ_ALLOW_DOWNGRADE=1 firefox' or by invoking it as 'firefox --allow-downgrade'. The latter invocation has been troublesome in the past but appears to work with 68.2.0 and can be used from a desktop 'launcher'.

Which version should I use ?

In general, BLFS tries to always use latest releases. For firefox up to and including 69.0 the latest version has normally been used, except that for certain point versions such as 69.0.2 the change has seemed not relevant (consult the tickets for more details). But in late 2019 mozilla decided to move to a more-frequent release schedule (eventually 4 weeks instead of 6 or 7 weeks).

Also, newer versions tend to need newer versions of rust, but this can cause problems with other packages which use rust. In particular, thunderbird releases are based on the firefox esr (extended support releases) code and tend to have code which does not build with the latest of rust.

There are only a few packages in BLFS which use rust and the editors aim to ensure that all the versions in the book can be built with the same version of rust.

As a result, after firefox-69 the book has moved to the esr versions of firefox which are technically a downgrade (see details about profiles above), but contain all the relevant security fixes. Based on past experience, some recent security fixes have been for new items which did not exist in the esr version. Therefore, using esr is expected to require slightly fewer updates.

You should always use the latest release, either the latest esr or the latest mainline version. And you should remember to update your ca-certificates when building a new version of firefox.

Dependencies for 68-ESR

Although the book is tested with its latest versions of the dependencies' it should be possible to use older versions of some packages:

cbindgen >= 0.8.7 should work

harfbuzz >= 2.4.0 (if using the patch for system harfbuzz) should work.

libwebp >= 1.02 should work

nss versions >= 3.44.4 are tested for, but using the latest is considered safer. 3.44.4 is a recent update to 3.44 released on 20th May 2020 (as was nss-3.52.1), Any versions released before that date should not be used, even if the configure tests pass

rustc-1.35.0 worked in past 68-esr releases, but is no longer tested. Tested with 1.37.0 and 1.42.0, 1.39.0 probably also works.

sqlite >= 3.28.0 should work, but you are recommended to use the latest version.

Changes after 68-esr up to the next esr (apart from changed minimum versions)

The patch for system graphite2 and system harfbuzz is no longer useful: The shipped graphite2 was changed in ff72, and for a little while a revised harfbuzz patch worked. But on reviewing the build in 76beta it became clear that the patch was not effective (harfbuzz code was still being compiled).

System sqlite can no-longer be used. Many years ago, having the shipped sqlite in the browser but with system sqlite used by other packages was reported to cause problems. So far, things now seem ok.

Importantly, after ff70 ./mach install no longer accepts '--verbose' and errors if it is used.

A profile which was created for 73.0 seems to work ok.

Dependencies for the latest release (these details are for 77.0)

This is an attempt to help people who want to keep using the latest upstream release, and will be updated from time to time. It is also a store of important changes which will need to be addressed when the book moves to the next ESR version which is expected to be the 78 series in June to August 2020 (depending on when thunderbird is ready!)

For firefox-77.0, the following need to be at least the specified versions:


libwebp has been updated to 1.1.0, I do not think the version is tested if using system version, but I guess the system version should be at least this version.

node-js now 10.19



rustc-1.41.0 or later, but 1.41.0 is buggy (unsafe) and 1.42.0 needs llvm-10.0 (as in the current svn book) if system llvm is to be used.

Dependencies for 78.0beta

Various options were removed from old-configure. Some (such as system nss,nspr, zlib) are definitely still accepted, but the following are no longer accepted: --enable-startup-notification and --with-system-bz2. The options for --enable-strip and --enable-install-strip are among those removed from old-configure, it is possible that the options to disable-these might no-longer work.

As of 78.0b4 this builds (and works) using gcc/g++, tested with 9.3.0 and 10.1.0.

System ICU should now be 67.1

As of 78.0b8 the nss requirement has been upgraded from 3.53 to 3.53.1

Now that the candidate builds are becoming available (i.e. release candidates, there are often several for each beta or release), the 78.0esr differs from vanilla 78.0 in two ways:

  1. In 78.0esr, the requirement that add-ons are signed by the trusted root is disabled. For an organization which provides its own add-ons, no doubt that will be useful. For the rest of us, it can be re-enabled by a sed.
  1. Extra options for allowing webrender on nightly builds have been removed, because esr cannot be nightly (i.e. alpha). However, this does highlight that WebRender, whilst still opt-in, is now stable enough for many of us to use.


Note: See TracWiki for help on using the wiki.