JS est le moteur JavaScript de Mozilla écrit en C. JS78 provient de Firefox.
This package is known to build and work properly using an LFS-10.1 platform.
Téléchargement (HTTP) : https://archive.mozilla.org/pub/firefox/releases/78.8.0esr/source/firefox-78.8.0esr.source.tar.xz
Somme de contrôle MD5 du téléchargement : 04858eb8431d560e62189878d1abb7bd
Taille du téléchargement : 316 Mo
Estimation de l'espace disque requis : 2,9 Go (36 Mo installés après avoir supprimé la bibliothèque statique de 35 Mo)
Estimation du temps de construction : 2,2 SBU (avec parallélisme = 4)
Autoconf-2.13, ICU-68.2, rustc-1.47.0 et Which-2.21
Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/js78
Contrairement à la plupart des autres paquets dans BLFS, les
instructions ci-dessous requièrent que vous décompressiez
firefox-esr.tar.xz
et entriez dans
le répertoire firefox-
.
L'extraction de l'archive remettra les permissions du répertoire
actuel à 0755 si vous avez les permissions nécessaires pour cela.
Si vous faites cela dans un répertoire avec le bit sticky, comme
/tmp
, le processus terminera avec
des 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
Cela termine avec un statut différent de zéro, mais ne signifie
PAS qu'il y a un vrai
problème. Ne désarchivez pas en tant qu'utilisateur root
das un répertoire où le bit sticky est
présent, cela le désactiverait.
Installez JS en lançant les commandes suivantes :
Si vous compilez ce paquet dans un chroot vous devez faire deux
choses. Tout d'abord, en tant qu'utilisateur root
, assurez-vous que /dev/shm
est monté. Si vous ne le faites pas,
le configury en Python échouera
avec un trace évocant /usr/lib/pythonN.N/multiprocessing/synchronize.py
.
Lancez :
mountpoint -q /dev/shm || mount -t tmpfs devshm /dev/shm
Deuxièmement, vous devez soit exporter en tant qu'utilisateur
root
la variable d'environnement
$SHELL
avec export SHELL=/bin/sh, soit
rajouter SHELL=/bin/sh
devant
l'invocation de la commande configure.
mkdir obj && cd obj && CC=gcc CXX=g++ \ ../js/src/configure --prefix=/usr \ --with-intl-api \ --with-system-zlib \ --with-system-icu \ --disable-jemalloc \ --disable-debug-symbols \ --enable-readline && make
Pour lancer la suite de tests de JS, lancez : make -C js/src check-jstests JSTESTS_EXTRA_ARGS="--timeout 300 --wpt=disabled". Il est recommandé de rediriger la sortie vers un fichier journal. En fonction de la machine, entre dix et quatorze tests de JS liés aux paramètres régionaux et aux fuseaux horaires échouent à cause d'un problème dans ICU-68.2. Pour lancer la suite de tests du JIT, lancez : make -C js/src check-jit-test JITTEST_EXTRA_ARGS="--timeout 300". De nouveau, quelques tests peuvent avoir des échecs imprévus.
Un problème avec le processus d'installation fait que les programmes qui se lient à la bibliothèque partagée JS78 (par exemple, GNOME Shell) crashent si JS78 est mis à jour ou réinstallé. Pour contourner le problème, supprimez l'ancienne version de la bibliothèque partagée JS78 avant l'installation :
rm -fv /usr/lib/libmozjs-78.so
Maintenant, en tant qu'utilisateur root
:
make install && rm -v /usr/lib/libjs_static.ajs && sed -i '/@NSPR_CFLAGS@/d' /usr/bin/js78-config
CC=gcc CXX=g++
: les développeurs
en amont préfèrent maintenant clang, corrigez cela comme avec les autres
paquets de Mozilla dans le livre BLFS.
--with-*
: ces
paramètres permettent au système de construction d'utiliser les
versions du système des bibliothèques ci-dessus. Ils sont requis
pour la stabilité.
--enable-readline
: ce
paramètre active la prise en charge de Readline dans le shell JS.
--disable-jemalloc
:
ce paramètre désactive l'allocateur de mémoire interne utilisé dans
JS78. jemalloc est conçu uniquement pour l'environnement du
navigateur Firefox. Si JS78 utilise jemalloc, les autres
applications qui l'utilisent peuvent crasher quand des éléments
alloués par jemalloc sont libérés avec l'allocateur du système
(glibc).
--disable-debug-symbols
: ne
génère pas les symboles de débogage parce qu'ils sont très gros et
que la plupart des utilisateurs n'en ont pas besoin. Supprimez-le
si vous voulez déboguer JS78.
rm -v /usr/lib/libjs_static.ajs : supprimez une grosse bibliothèque statique qui n'est utilisée par aucun paquet de BLFS.
sed -i '/@NSPR_CFLAGS@/d' /usr/bin/js78-config: évite que js78-config n'utilise des CFLAGS bogués.
Last updated on 2021-02-27 01:57:35 +0000