JS-68.11.0

Introduction à JS

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.

Informations sur le paquet

Dépendances de JS68

Requises

Autoconf-2.13, ICU-67.1, Python-2.7.18 et Which-2.21

Facultatives

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

Installation de JS

[Attention]

Attention

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.

[Note]

Note

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 :

[Note]

Note

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

Explication des commandes

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.

Contents

Programmes installés: js68 et js68-config
Bibliothèques installées: libmozjs-68.so
Répertoires installés: /usr/include/mozjs-68

Descriptions courtes

js68

fournit une interface en ligne de commande au moteur JavaScript.

js68-config

est utilisé pour trouver le compilateur JS et les drapeaux de l'éditeur de liens.

libmozjs-68.so

contient les fonction de l'API de Mozilla JavaScript.

Last updated on 2020-08-17 04:26:53 +0000