JS est le moteur JavaScript de Mozilla écrit en C. JS68 provient de Firefox.
Ce paquet est connu pour se construire correctement sur une plateforme LFS-1.0.
Téléchargement (HTTP) : https://archive.mozilla.org/pub/firefox/releases/68.11.0esr/source/firefox-68.11.0esr.source.tar.xz
Somme de contrôle MD5 du téléchargement : a8f860f31725d914c02918ff2b2aecf8
Taille du téléchargement : 306 Mo
Estimation de l'espace disque requis : 2,8 Go (30 Mo installé après la suppression de la bibliothèque statique de 31 Mo)
Estimation du temps de construction : 2,2 SBU (avec parallélisme = 4)
Autoconf-2.13, ICU-67.1, Python-2.7.18 et Which-2.21
LLVM-10.0.1 (avec Clang), NASM-2.15.03 et Doxygen-1.8.19 (pour la documentation)
Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/js68
Si vous mettez à jour JS68 à partir d'une version plus ancienne déjà installée, sauvegardez tout votre travail et sortez de votre session GNOME si vous en avez une. Remplacer le binaire JS68 causera un crash de GNOME Shell et vous renverra à votre gestionnaire d'affichage ou votre TTY. Après l'installation de la nouvelle version, réinstallez Gjs-1.64.4.
Contrairement à la plupart des autres paquets dans BLFS, les
instructions ci-dessous requièrent que vous décompressiez
firefox-68.11.0esr.tar.xz
et
entriez dans le répertoire firefox-68.11.0
.
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.
sed '21,+4d' -i js/moz.configure && mkdir obj && cd obj && CC=gcc CXX=g++ LLVM_OBJDUMP=/bin/false \ ../js/src/configure --prefix=/usr \ --with-intl-api \ --with-system-zlib \ --with-system-icu \ --disable-jemalloc \ --disable-debug-symbols \ --enable-readline \ --enable-unaligned-private-values && make
Ce paquet ne contient pas de suite de tests utilisable.
Maintenant, en tant qu'utilisateur root
:
make install && rm -v /usr/lib/libjs_static.ajs
sed '21,+4d' js/moz.configure : la système de construction de Firefox recherche rustc et cargo. Comme nous construisons le moteur JS indépendant et pas le navigateur complet, ils ne sont en fait pas utilisés. Supprimez la référence pour que vous puissiez construire JS68 sans installer rustc-1.42.0.
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.
LLVM_OBJDUMP=/bin/false
: le
système de construction de Firefox recherche llvm-objdump. Comme nous
construisons le moteur JS indépendant et pas le navigateur complet,
il n'est en fait pas utilisé. Supprimez-le pour pouvoir construire
JS68 sans installer LLVM-10.0.1.
--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 dans JS68.
jemalloc cause un conflit avec 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 JS68.
--enable-unaligned-private-values
:
ce paramètre permet au code qui utilise JS68 de ne pas aligner tous
les pointeurs de la même manière que JS68. Gjs-1.64.4 a besoin que
JS68 soit construit avec cette option.
rm -v /usr/lib/libjs_static.ajs : supprimez une grosse bibliothèque statique qui n'est utilisée par aucun paquet de BLFS.
Last updated on 2020-08-17 04:26:53 +0000