Author: xry111
Date: Sun Aug 16 22:05:27 2020
New Revision: 23544

Log:
draft mozjs-78

Added:
   trunk/BOOK/general/genlib/js78.xml
      - copied, changed from r23535, trunk/BOOK/general/genlib/js68.xml

Copied and modified: trunk/BOOK/general/genlib/js78.xml (from r23535, 
trunk/BOOK/general/genlib/js68.xml)
==============================================================================
--- trunk/BOOK/general/genlib/js68.xml  Sun Aug 16 10:15:18 2020        
(r23535, copy source)
+++ trunk/BOOK/general/genlib/js78.xml  Sun Aug 16 22:05:27 2020        (r23544)
@@ -4,89 +4,105 @@
   <!ENTITY % general-entities SYSTEM "../../general.ent">
   %general-entities;
 
-  <!ENTITY js68-download-http 
"&mozilla-http;/firefox/releases/&JS68-version;esr/source/firefox-&JS68-version;esr.source.tar.xz">
-  <!ENTITY js68-download-ftp  " ">
-  <!ENTITY js68-md5sum        "a8f860f31725d914c02918ff2b2aecf8">
-  <!ENTITY js68-size          "306 MB">
-  <!ENTITY js68-buildsize     "2.8 GB (30 MB installed after removing 31MB 
static lib)">
-  <!ENTITY js68-time          "2.2 SBU (with parallelism = 4)">
+  <!-- TODO: rename firefox-version to ff78-version,
+             to make our life easier when Firefox goes into next ESR. -->
+  <!ENTITY ff78-version       "&firefox-version;">
+  <!ENTITY js78-download-http 
"&mozilla-http;/firefox/releases/&ff78-version;esr/source/firefox-&ff78-version;esr.source.tar.xz">
+  <!ENTITY js78-download-ftp  " ">
+  <!-- 78.1.0 -->
+  <!ENTITY js78-md5sum        "4fec654ff75d469da53356644645e785">
+  <!ENTITY js78-size          "317 MB">
+  <!ENTITY js78-buildsize     "2.8 GB (30 MB installed after removing 31MB 
static lib)">
+  <!ENTITY js78-time          "2.2 SBU (with parallelism = 4)">
 ]>
 
-<sect1 id="js68" xreflabel="js68-&JS68-version;">
-  <?dbhtml filename="js68.html"?>
+<sect1 id="js78" xreflabel="js78-&ff78-version;">
+  <?dbhtml filename="js78.html"?>
 
   <sect1info>
     <othername>$LastChangedBy$</othername>
     <date>$Date$</date>
   </sect1info>
 
-  <title>JS-&JS68-version;</title>
+  <title>JS-&ff78-version;</title>
 
-  <indexterm zone="js68">
-    <primary sortas="a-js68">js68</primary>
+  <indexterm zone="js78">
+    <primary sortas="a-js78">js78</primary>
   </indexterm>
 
+  <!-- WIP, do NOT add into book for now. -->
+
   <sect2 role="package">
     <title>Introduction to JS</title>
 
     <para>
       <application>JS</application> is Mozilla's JavaScript engine
-      written in C. JS68 is taken from Firefox.
+      written in C. JS78 is taken from Firefox.
     </para>
 
     <bridgehead renderas="sect3">Package Information</bridgehead>
     <itemizedlist spacing="compact">
       <listitem>
         <para>
-          Download (HTTP): <ulink url="&js68-download-http;"/>
+          Download (HTTP): <ulink url="&js78-download-http;"/>
         </para>
       </listitem>
       <listitem>
         <para>
-          Download (FTP): <ulink url="&js68-download-ftp;"/>
+          Download (FTP): <ulink url="&js78-download-ftp;"/>
         </para>
       </listitem>
       <listitem>
         <para>
-          Download MD5 sum: &js68-md5sum;
+          Download MD5 sum: &js78-md5sum;
         </para>
       </listitem>
       <listitem>
         <para>
-          Download size: &js68-size;
+          Download size: &js78-size;
         </para>
       </listitem>
       <listitem>
         <para>
-          Estimated disk space required: &js68-buildsize;
+          Estimated disk space required: &js78-buildsize;
         </para>
       </listitem>
       <listitem>
         <para>
-          Estimated build time: &js68-time;
+          Estimated build time: &js78-time;
         </para>
       </listitem>
     </itemizedlist>
 
-    <bridgehead renderas="sect3">JS68 Dependencies</bridgehead>
+    <bridgehead renderas="sect3">Additional Downloads</bridgehead>
+    <itemizedlist spacing="compact">
+      <listitem>
+        <para>
+          Required patch:
+          <ulink url="&patch-root;/js78-code_coverage-1.patch"/>
+        </para>
+      </listitem>
+    </itemizedlist>
+
+    <bridgehead renderas="sect3">JS78 Dependencies</bridgehead>
 
     <bridgehead renderas="sect4">Required</bridgehead>
     <para role="required">
       <xref linkend="autoconf213"/>,
       <xref linkend="icu"/>,
-      <xref linkend="python2"/>, and
+      <xref linkend="llvm"/>,
+      <xref linkend="rust"/>, and
       <xref linkend="which"/>
     </para>
 
-    <bridgehead renderas="sect4">Optional</bridgehead>
+    <!-- It seems nasm is only used for aarch64-win64. -->
+    <!--bridgehead renderas="sect4">Optional</bridgehead>
     <para role="optional">
-      <xref linkend="llvm"/> (with <application>Clang</application>),
-      <xref linkend="nasm"/>, and
-      <xref linkend="doxygen"/> (for documentation)
-    </para>
+      <xref linkend="nasm"/>
+    </para-->
 
     <para condition="html" role="usernotes">
-      User Notes: <ulink url="&blfs-wiki;/js68"/>
+      User Notes: <ulink url="&blfs-wiki;/js78"/>
     </para>
   </sect2>
 
@@ -95,9 +111,9 @@
 
     <caution>
       <para>
-        If you are upgrading JS68 from a previously installed old version,
+        If you are upgrading JS78 from a previously installed old version,
         save all work and exit your GNOME Session if you have one running.
-        Replacing the JS68 binary will cause the GNOME Shell to crash and
+        Replacing the JS78 binary will cause the GNOME Shell to crash and
         return you to your display manager or TTY. After installing the new
         version, if GNOME Shell still doesn't work, reinstall
         <xref linkend="gjs"/>.
@@ -107,8 +123,8 @@
     <note>
       <para>
         Unlike most other packages in BLFS, the instructions below require you
-        to untar <filename>firefox-&JS68-version;esr.tar.xz</filename> and
-        change into the <filename>firefox-&JS68-version;</filename> folder.
+        to untar <filename>firefox-&ff78-version;esr.tar.xz</filename> and
+        change into the <filename>firefox-&ff78-version;</filename> folder.
       </para>
 
       <para>
@@ -134,6 +150,13 @@
 
     </note>
 
+    <!-- It's likely to be merged in 78.2.0.  -->
+    <para>
+      Apply a patch required by <xref linkend="gjs"/>:
+    </para>
+
+<screen><userinput>patch -Np1 -i 
../js78-code_coverage-1.patch</userinput></screen>
+
     <para>
       Install <application>JS</application> by running the following
       commands:
@@ -148,24 +171,25 @@
      </note>
 
 
-<screen><userinput>sed '21,+4d' -i js/moz.configure &amp;&amp;
-
-mkdir obj &amp;&amp;
+<screen><userinput>mkdir obj &amp;&amp;
 cd    obj &amp;&amp;
 
-CC=gcc CXX=g++ LLVM_OBJDUMP=/bin/false       \
+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        \
-                    --enable-unaligned-private-values &amp;&amp;
+                    --enable-readline        &amp;&amp;
 make</userinput></screen>
 
     <para>
-      This package does not come with a working test suite.
+      <!-- All JIT tests pass with 78.1.0 and GNOME patch. -->
+      To run JIT test suite, issue:
+      <command>make -C js/src check-jit-test
+      JITTEST_EXTRA_ARGS="--timeout 300"</command>.
+      The other parts of test suite are not functional on BLFS.
     </para>
 
     <para>
@@ -173,39 +197,24 @@
     </para>
 
 <screen role="root"><userinput>make install &amp;&amp;
-rm -v /usr/lib/libjs_static.ajs</userinput></screen>
+rm -v /usr/lib/libjs_static.ajs &amp;&amp;
+sed '/@NSPR_CFLAGS@/d' /usr/bin/js78-config</userinput></screen>
 
   </sect2>
 
+  <!-- Several gjs-1.65.90 tests fail with js78.  Not sure why.
+       OTOH an "otherwise" GNOME-3.36 environment works fine. -->
+
   <sect2 role="commands">
     <title>Command Explanations</title>
 
     <para>
-      <command>sed '21,+4d' js/moz.configure</command>: Firefox building
-      system searches for <command>rustc</command> and
-      <command>cargo</command>.
-      Since we are building the standalone JS engine instead of the entire
-      browser, they are not actually used.
-      Remove the reference to them so we can
-      build JS68 without <xref role="nodep" linkend="rust"/> installed.
-    </para>
-
-    <para>
       <envar>CC=gcc CXX=g++</envar>: Upstream now prefers
       <application>clang</application>, override it like other Mozilla
       packages in BLFS book.
     </para>
 
     <para>
-      <envar>LLVM_OBJDUMP=/bin/false</envar>: The firefox build system
-      searches for <command>llvm-objdump</command>.
-      Since we are building the standalone JS engine instead of the entire
-      browser, they are not actually used.
-      Override it so we can build JS68 without
-      <xref role="nodep" linkend="llvm"/> installed.
-    </para>
-
-    <para>
       <parameter>--with-*</parameter>: These parameters allow the build system
       to use system versions of the above libraries. These are required for
       stability.
@@ -218,25 +227,24 @@
     
     <para>
       <parameter>--disable-jemalloc</parameter>: This switch disables the
-      internal memory allocator used in JS68. jemalloc causes a conflict with 
glibc.
+      internal memory allocator used in JS78. jemalloc causes a conflict with 
glibc.
     </para>
 
     <para>
       <parameter>--disable-debug-symbols</parameter>: Don't generate debug
       symbols since they are very large and most users won't need it. Remove
-      it if you want to debug JS68.
+      it if you want to debug JS78.
     </para>
 
     <para>
-      <parameter>--enable-unaligned-private-values</parameter>: This switch
-      allows the code using JS68 not to align all pointers in the same way
-      JS68 does.  <xref linkend="gjs"/> requires JS68 to be built with this
-      switch.
+      <command>rm -v /usr/lib/libjs_static.ajs</command>: Remove a large
+      static library which is not used by any BLFS package.
     </para>
 
     <para>
-      <command>rm -v /usr/lib/libjs_static.ajs</command>: Remove a large
-      static library which is not used by any BLFS package.
+      <!-- recheck on 78.2.0 -->
+      <command>sed '/@NSPR_CFLAGS@/d' /usr/bin/js78-config</command>:
+      Prevent <command>js78-config</command> to print buggy CFLAGS.
     </para>
 
   </sect2>
@@ -251,13 +259,13 @@
 
       <seglistitem>
         <seg>
-          js68 and js68-config
+          js78 and js78-config
         </seg>
         <seg>
-          libmozjs-68.so
+          libmozjs-78.so
         </seg>
         <seg>
-          /usr/include/mozjs-68
+          /usr/include/mozjs-78
         </seg>
       </seglistitem>
     </segmentedlist>
@@ -267,39 +275,39 @@
       <?dbfo list-presentation="list"?>
       <?dbhtml list-presentation="table"?>
 
-      <varlistentry id="js6-js68">
-        <term><command>js68</command></term>
+      <varlistentry id="js6-js78">
+        <term><command>js78</command></term>
         <listitem>
           <para>
             provides a command line interface to the
             <application>JavaScript</application> engine.
           </para>
-          <indexterm zone="js68 js68">
-            <primary sortas="b-js68">js68</primary>
+          <indexterm zone="js78 js78">
+            <primary sortas="b-js78">js78</primary>
           </indexterm>
         </listitem>
       </varlistentry>
 
-      <varlistentry id="js68-config">
-        <term><command>js68-config</command></term>
+      <varlistentry id="js78-config">
+        <term><command>js78-config</command></term>
         <listitem>
           <para>
             is used to find the JS compiler and linker flags.
           </para>
-          <indexterm zone="js68 js68-config">
-            <primary sortas="b-js68-config">js68-config</primary>
+          <indexterm zone="js78 js78-config">
+            <primary sortas="b-js78-config">js78-config</primary>
           </indexterm>
         </listitem>
       </varlistentry>
 
-      <varlistentry id="libmozjs-68">
-        <term><filename class="libraryfile">libmozjs-68.so</filename></term>
+      <varlistentry id="libmozjs-78">
+        <term><filename class="libraryfile">libmozjs-78.so</filename></term>
         <listitem>
           <para>
             contains the Mozilla JavaScript API functions.
           </para>
-          <indexterm zone="js68 libmozjs-68">
-            <primary sortas="c-libmozjs68">libmozjs-68.so</primary>
+          <indexterm zone="js78 libmozjs-78">
+            <primary sortas="c-libmozjs78">libmozjs-78.so</primary>
           </indexterm>
         </listitem>
       </varlistentry>
-- 
http://lists.linuxfromscratch.org/listinfo/blfs-book
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to