Mozilla NSS Conflict

From FedoraProject

Jump to: navigation, search

Firefox version 3.5.x downloaded directly from Mozilla may crash on Fedora 11 and later.

There is a conflict between binary software downloaded from Mozilla (i.e. not installed using Fedora RPM packages) and NSS in Fedora. Firefox version 3.5.x (and earlier versions and other Mozilla software) may crash on Fedora 11 (and later).

This is often seen when using Adobe's (proprietary) Flash plugin, e.g. when watching a video on a web page that uses flash technology.

The conflict is between the NSPR/NSS libraries as included with Mozilla software and glibc (libcrypt), NSPR, NSS libraries (in particular libfreebl3.so) as shipped with Fedora. The crash happens because the libraries provided by Mozilla don't provide an interface required by Fedora's system library libcrypt. When having the incompatible version installed, it may get loaded directly by Firefox, or indirectly by the flash plugin.

Status

  • The crash seen with Flash is being tracked in Fedora bug 505365 and Mozilla bug 497251.
  • The cause is being tracked in Mozilla bug 513024.
  • The problem will be resolved once the fix has been added to all software provided by Mozilla. Unfortunately this bug can not be solved at the Fedora packaging level. However, a workaround is available, see below.

Workaround for end users

  • either use the Mozilla software as shipped with Fedora
  • or modify your downloaded Mozilla software using the following procedure

If you would like to download and use binaries made available by the Mozilla project, you must remove all NSPR and NSS libraries found in the Mozilla packages.

For example, if you have downloaded firefox-3.x.x.tar.bz2, the extracted directory is named "firefox", and the following files inside that directory must be removed:

libfreebl3.chk  libnspr4.so  libnssckbi.so   libnssdbm3.so   libplc4.so   libsmime3.so     libsoftokn3.so
libfreebl3.so   libnss3.so   libnssdbm3.chk  libnssutil3.so  libplds4.so  libsoftokn3.chk  libssl3.so

If you want to delete these files from a console, prepare using these commands:

$ cd firefox
$ ls libfr* libso* libns* libpl* libss* libsm*

You should see exactly the 14 files listed above. Now delete them using:

$ rm libfr* libso* libns* libpl* libss* libsm*

Developer solution

Possible solutions:

  • either compile the Mozilla software yourself (on Fedora) using configuration options --with-system-nspr --with-system-nss
  • or apply the patch from Mozilla bug 513024 when building Mozilla software

Going forward, the best fix is to always include the patch from Mozilla bug 513024 when building Mozilla on Linux. (This fix has already been included in most recent development snapshots for Firefox 3.6 (mozilla-1.9.2) and Firefox 3.7 (mozilla-1.9.3).)