Firefox-58.0.2

Introduction à Firefox

Firefox est un navigateur autonome basé sur la base de code de Mozilla.

Ce paquet est connu pour se construire correctement sur une plateforme LFS-8.2.

Informations sur le paquet

[Note]

Note

Les temps de construction pour cette version de Firefox (avec stylo, le nouveau code de rendu CSS) semble varier grandement entre différentes machines. Sur un vieux modèle Intel i3 la construction a pris beaucoup plus de temps. La raison n'est pas comprise. Une construction avec stylo désactivé est typiquement 1 à 2 SBU plus courte et requière 0.8 Go d'espace disque en moins.

Bien qu'en amont on préfère utiliser PulseAudio, pour le moment Alsa peut toujours être utilisé. Les deux ont besoin de configuration à l'exécution pour que le son fonctionne.

Téléchargements supplémentaires

[Note]

Note

L'archive firefox-58.0.2.source.tar.xz se décompressera dans le répertoire firefox-58.0.2. Il réinitialisera aussi les permissions du répertoire courant à 0755 si vous avez la permission de faire cela. Si vous le faites dans un répertoire où le droit sticky est activé, comme /tmp l'opération se terminera avec les messages d'erreur :

tar: .: Cannot utime: Operation not permitted
tar: .: Cannot change mode to rwxr-xr-t: Operation not permitted
tar: Exiting with failure status due to previous errors

Elle termine avec un statut différent de zéro, mais cela ne signifie PAS qu'il y a un vrai problème. Ne décompressez pas en tant que root dans un répertoire où le droit sticky est activé - cela le désactiverait.

Dépendances de Firefox

Requises

Autoconf-2.13, à la fois GTK+-3.22.28 et GTK+-2.24.32, libnotify-0.7.7, NSS-3.35, PulseAudio-11.1 (ou alsa-lib-1.1.5 si vous modifiez le mozconfig; maintenant rendu obsolète par mozilla), dans les deux cas veuillez lire les informations de configuration, rustc-1.22.1, UnZip-6.0, yasm-1.3.0 et Zip-3.0

Recommandées

[Note]

Note

Si vous n'installez pas les dépendances recommandées, alors les versions internes de ces paquets seront utilisés. Elles peuvent être testées pour fonctionner, mais elles peuvent être dépassées ou contenir des trous de sécurité.

Facultatives

cURL-7.58.0, dbus-glib-0.110, Doxygen-1.8.14, GConf-3.2.6, FFmpeg-3.4.2 (à l'exécution, pour jouer des fichiers mov, mp3 ou mp4), libwebp-0.6.1, OpenJDK-9.0.4, startup-notification-0.12, Valgrind-3.13.0, Wget-1.19.4, Wireless Tools-29, Hunspell, liboauth-1.0.3, libproxy et (avec le correctif) Graphite2-1.3.10 et HarfBuzz-1.7.5

Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/firefox

Installation de Firefox

La configuration de Firefox se fait en créant un fichier mozconfig contenant les options de configuration désirées. Un mozconfig par défaut est créé ci-dessous. Pour voir toute la liste des options de configuration disponibles, (et une description abrégée de chacune), faites ./configure --help. Il se peut que vous vouliez aussi relire tout le fichier et dé-commenter les autres options souhaitées. Créez le fichier en tapant la commande suivante :

cat > mozconfig << "EOF"
# If you have a multicore machine, all cores will be used by default.
# You can change the number of non-rust jobs by setting a valid number
# of cores in this option, but when rust crates are being compiled
# jobs will be scheduled for all the online CPU cores.
#mk_add_options MOZ_MAKE_FLAGS="-j1"

# If you have installed dbus-glib, comment out this line:
ac_add_options --disable-dbus

# If you have installed dbus-glib, and you have installed (or will install)
# wireless-tools, and you wish to use geolocation web services, comment out
# this line
ac_add_options --disable-necko-wifi

# API Keys for geolocation APIs - necko-wifi (above) is required for MLS
# Uncomment the following line if you wish to use Mozilla Location Service
#ac_add_options --with-mozilla-api-keyfile=$PWD/mozilla-key

# Uncomment the following line if you wish to use Google's geolocaton API
# (needed for use with saved maps with Google Maps)
#ac_add_options --with-google-api-keyfile=$PWD/google-key

# Uncomment these lines if you have installed optional dependencies:
#ac_add_options --enable-system-hunspell
#ac_add_options --enable-startup-notification

# Uncomment the following option if you have not installed PulseAudio
#ac_add_options --disable-pulseaudio
# and uncomment this if you installed alsa-lib instead of PulseAudio
#ac_add_options --enable-alsa

# If you have installed GConf, comment out this line
ac_add_options --disable-gconf

# Stylo is the new CSS code, including the rust 'style'
# package. It is enabled by default but requires clang.
# Uncomment this if you do not wish to use stylo.
#ac_add_options --disable-stylo

# Comment out following options if you have not installed
# recommended dependencies:
ac_add_options --enable-system-sqlite
ac_add_options --with-system-libevent
ac_add_options --with-system-libvpx
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-icu

# If you are going to apply the patch for system graphite
# and system harfbuzz, uncomment these lines:
#ac_add_options --with-system-graphite2
#ac_add_options --with-system-harfbuzz

# Stripping is now enabled by default.
# Uncomment these lines if you need to run a debugger:
#ac_add_options --disable-strip
#ac_add_options --disable-install-strip

# The BLFS editors recommend not changing anything below this line:
ac_add_options --prefix=/usr
ac_add_options --enable-application=browser

ac_add_options --disable-crashreporter
ac_add_options --disable-updater
# enabling the tests will use a lot more space and significantly
# increase the build time, for no obvious benefit.
ac_add_options --disable-tests

# Optimization for size is broken with gcc7
ac_add_options --enable-optimize="-O2"

ac_add_options --enable-official-branding

# From firefox-40, using system cairo caused firefox to crash
# frequently when it was doing background rendering in a tab.
# This appears to again work in firefox-56
ac_add_options --enable-system-cairo
ac_add_options --enable-system-ffi
ac_add_options --enable-system-pixman

ac_add_options --with-pthreads

ac_add_options --with-system-bz2
ac_add_options --with-system-jpeg
ac_add_options --with-system-png
ac_add_options --with-system-zlib

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox-build-dir
EOF

Compilez Firefox en lançant les commandes suivantes :

Si vous avez installé les versions du système de graphite2 et harfbuzz et souhaitez que firefox les utilise à la place de ses versions embarquées, appliquez le correctif et dé-commentez les entrées appropriées du fichier mozconfig.

patch -Np1 -i ../firefox-58.0.2-system_graphite2_harfbuzz-1.patch

Si les API de géolocalisation sont nécessaires 

[Note]

Note

Les clefs d'API de Google et Mozilla ci-dessous sont spécifiques à LFS. Si vous utilisez ces instructions pour une autre distribution, ou si vous avez l'intention de distribuer des copies logicielles en utilisant ces directives, obtenez vos propres clefs en suivant les instrictions définies respectivement http://www.chromium.org/developers/how-tos/api-keys et https://location.services.mozilla.com/api.

echo "AIzaSyDxKL42zsPjbke5O8_rPVpVrLrJ8aeE9rQ" > google-key
echo "d2284a20-0505-4927-a809-7ffaf4d91e55" > mozilla-key
[Note]

Note

Si vous compilez Firefox en chroot, soyez certain d'avoir initialisé la variable d'environnement $SHELL ou passez SHELL=/bin/sh.


./mach build

Le fichier mozconfig ci-dessus désactive les tests car ils prennent beaucoup plus de temps et d'espace disque sans bénéfice évident. Si vous les avez tout de même activés, vous pouvez lancer les tests en exécutant ./mach gtest. Cela requiert une connexion internet et d'être lancé dans un environnement Xorg - il y a une boîte de dialogue lorsque la connexion à ALSA échoue (ce qui ne fait pas échouer le test). Un ou deux tests échoueront. Pour voir les détails des échecs, vous devrez enregistrer la sortie de la commande pour pouvoir la revoir.

Maintenant, en tant qu'utilisateur root :

./mach install                                                  &&

mkdir -pv  /usr/lib/mozilla/plugins                             &&
ln    -sfv ../../mozilla/plugins /usr/lib/firefox-58.0.2/browser

Explication des commandes

./mach build : Firefox utilise maintenant ce script python2 pour lancer la construction et l'installation.

./mach build --verbose : Utilisez cette alternative si vous avez besoin de détails sur les fichiers qui sont compilés avec les drapeaux C ou C++ utilisés.

mkdir -p /usr/lib/mozilla/plugins : Vérifie que /usr/lib/mozilla/plugins existe.

ln -sv ... /usr/lib/firefox-58.0.2/browser : Cette commande crée un lien symbolique vers /usr/lib/mozilla/plugins. Il n'est pas vraiment nécessaire, comme Firefox vérifie /usr/lib/mozilla/plugins par défaut, mais le lien symbolique est fait pour garder tous les greffons installés dans un seul dossier.

Configuration de Firefox

Si vous utilisez un environnement de bureau comme Gnome ou KDE vous pourriez souhaiter créer un fichier firefox.desktop pour que Firefox apparaisse dans les menus du bureau. Si vous n'avez pas activé startup-notification (notification de démarrage) dans votre mozconfig, modifiez la ligne StartupNotify en false. En tant qu'utilisateur root :

mkdir -pv /usr/share/applications &&
mkdir -pv /usr/share/pixmaps &&

cat > /usr/share/applications/firefox.desktop << "EOF" &&
[Desktop Entry]
Encoding=UTF-8
Name=Firefox Web Browser
Comment=Browse the World Wide Web
GenericName=Web Browser
Exec=firefox %u
Terminal=false
Type=Application
Icon=firefox
Categories=GNOME;GTK;Network;WebBrowser;
MimeType=application/xhtml+xml;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
StartupNotify=true
EOF

ln -sfv /usr/lib/firefox-58.0.2/browser/icons/mozicon128.png \
        /usr/share/pixmaps/firefox.png

Informations sur la configuration

Les paramètres applicatifs pour firefox sont accessibles en entrant about:config dans la barre d'adresse.

Avec cette version de firefox, le son peut poser problème. Bien qu'en amont pulseaudio soit préféré, utiliser Alsa peut être plus facile.

Si vous avez activé Alsa pour le son, vous pourriez avoir besoin de modifier une variable pour qu'il fonctionne. Si vous lancez firefox depuis un terminal et essayez de jouer quelque chose avec du son, vous pouvez trouver des messages d'erreur tels que :

Sandbox: seccomp sandbox violation: pid 3941, tid 4030, syscall 16, args 48 2147767296 139909894784796 0 0 0.

C'était sur x86_64, sur i686 le numéro d'appel système est 54. Pour permettre cet appel système, dans about:config, modifiez security.sandbox.content.syscall_whitelist à 16 (ou 54 en i686).

Si vous utiliser pulseaudio dans un environnement de bureau, il est peut-être déjà démarré par celui-ci. Mais si ce n'est pas le cas, bien que firefox-57 arrivait à le démarrer, firefox-58 n'y arrive pas. Si vous lancez firefox depuis un terminal, essayer de jouer un son produira des avertissements Impossible de trouver le contexte cubeb !

La solution est de fermer firefox, démarrer pluseaudio pour vérifier qu'il démarre (sinon voir les information de configuration dans PulseAudio-11.1) et redémarrez firefox pour vérifier que ça fonctionne. Si maintenant ça fonctionne, ajoutez ce qui suit à voutr ~/.xinitrc : pulseaudio --verbose --log-target=journald& (malheureusement, sur certains systèmes cela ne fonctionne pas).

Vous pouvez souhaiter utiliser plusieurs profile dans firefox. Pour cela, invoquez firefox avec firefox --ProfileManager. Vous pouvez aussi vérifier le profil actuellement utilisé avec about:profiles.

Contenu

Programmes installés: firefox
Bibliothèques installées: De nombreuses bibliothèques, composants du navigateur, greffons, extensions et modules d'aide dans /usr/lib/firefox-58.0.2
Répertoire installé: /usr/lib/firefox-58.0.2 et /usr/lib/mozilla

Descriptions courtes

firefox

est un navigateur internet GTK+-3 qui utilise le moteur de rendu Mozilla Gecko.

Last updated on 2018-02-18 00:35:13 +0100