Author: ken
Date: Tue Jan 23 17:54:48 2018
New Revision: 19693

Log:
Firefox-58.0 and rustc-1.22.1. Firefox now sometimes needs libnotify to report 
success during the install (I managed some installs without that being present, 
others barfed at the end).  This version of firefox has felt like 'In the 
beginning was the plan, ... and the darkness was upon the face of the workers 
...'  I hope it will be less painful for anybody using it.

Modified:
   trunk/BOOK/general/prog/rust.xml
   trunk/BOOK/introduction/welcome/changelog.xml
   trunk/BOOK/packages.ent
   trunk/BOOK/xsoft/graphweb/firefox.xml

Modified: trunk/BOOK/general/prog/rust.xml
==============================================================================
--- trunk/BOOK/general/prog/rust.xml    Tue Jan 23 09:50:10 2018        (r19692)
+++ trunk/BOOK/general/prog/rust.xml    Tue Jan 23 17:54:48 2018        (r19693)
@@ -6,10 +6,10 @@
 
   <!ENTITY rust-download-http 
"https://static.rust-lang.org/dist/rustc-&rust-version;-src.tar.gz";>
   <!ENTITY rust-download-ftp  " ">
-  <!ENTITY rust-md5sum        "75e779670ac79edf023497a9c37eb35d">
-  <!ENTITY rust-size          "48 MB">
-  <!ENTITY rust-buildsize     "4.2 GB (362 MB installed), (add 0.6GB for 
tests) plus 273MB for ~/.cargo files">
-  <!ENTITY rust-time          "33 SBU (add 14 SBU for tests, both with 4 
processors)">
+  <!ENTITY rust-md5sum        "7272ddba14f512e6d2612ef60460bed8">
+  <!ENTITY rust-size          "53 MB">
+  <!ENTITY rust-buildsize     "4.1 GB (437 MB installed), (add 1.2GB for 
tests) including 226MB of ~/.cargo files for both the builder and root (from 
the install)">
+  <!ENTITY rust-time          "48 SBU (add 12 SBU for tests, both with 4 
processors)"> 
 ]>
 
 <sect1 id="rust" xreflabel="rustc-&rust-version;">
@@ -53,6 +53,24 @@
       guarantees of a stable ABI.
     </para>
 
+    <note>
+      <para>
+        Repeated builds of this package on the same machine show a wide range
+        of build times. Some of this might be due to variations in downloading
+        the required cargo files if they are not already present, but this does
+        not seem to adequately explain the variations. Also, both the builder
+        and the user running the install will need to download the cargo crates
+        if they are not already present in <filename>~/.cargo</filename>.
+      </para>
+      <para>
+        If you use a DESTDIR method to install, you will only need to download
+        the crates once, for the build, saving about one-third of the build and
+        install time (but using extra space for the install). Similarly if you
+        were to build as root, or if your user is allowed to run <command>sudo
+        ./x.py install</command> - but those methods are dangerous.
+      </para>
+    </note>
+
     &lfs81_checked;
 
     <bridgehead renderas="sect3">Package Information</bridgehead>
@@ -95,6 +113,8 @@
     <para role="required">
       <xref linkend="curl"/>,
       <xref linkend="cmake"/>,
+<!-- if changing this to use python3, also add python2 as a required
+ dependency for firefox, because at the moment it picks that up from here -->
       <xref linkend="python2"/>
     </para>
 
@@ -126,7 +146,7 @@
     </para>
 
 <screen><userinput>cat &lt;&lt;EOF &gt; config.toml
-# see src/bootstrap/config.toml.example for more possible options
+# see config.toml.example for more possible options
 [llvm]
 targets = "X86"
 
@@ -136,8 +156,11 @@
 
 [install]
 prefix = "/usr"
-docdir = "share/doc/rustc-1.19.0"
+docdir = "share/doc/rustc-&rust-version;"
+
+[rust]
 channel = "stable"
+rpath = false
 EOF</userinput></screen>
 
     <para>
@@ -155,7 +178,8 @@
       compile-fail/issue-37131.rs and run-make/target-without-atomics both try 
to
       compile for the thumbv6m-none-eabi target, but the BLFS build does not 
cater for
       that, and all 105 tests in debuginfo-gdb will fail if
-      <application>gdb</application> has not been installed.
+      <application>gdb</application> has not been installed. Several other 
tests in
+      run-make can also fail.
     </para>
 
     <para>
@@ -166,7 +190,7 @@
 <screen><command>grep 'running .* tests' ../rustc-testlog | awk '{ sum += $2 } 
END { print sum }'</command></screen>
 
     <para>
-      That should report 14029 tests. Similarly, the total tests which failed 
can
+      That should report 14854 tests. Similarly, the total tests which failed 
can
       be found by running:
     </para>
 
@@ -204,6 +228,14 @@
     </para>
 
     <para>
+      <command>rpath = false</command>: by default, <command>rust</command> can
+      be run from where it was built, without being installed. That adds 
DT_RPATH
+      entries to all of the ELF files, which produces very messy output from
+      <command>ldd</command>, showing the libraries in the place they were 
built,
+      even if they have been deleted from there after the install.
+    </para>
+
+    <para>
       <command>--verbose</command>: this switch can sometimes provide more
       information about a test which fails.
     </para>
@@ -213,6 +245,17 @@
       will not stop at the first error.
     </para>
 
+    <para>
+      <option>PYTHON=/usr/bin/python3 ... tee buildlog</option>: Because rust
+      can use <application>Python3</application> which was installed in LFS,
+      this command tells it to use that instead of the deprecated
+      <application>Python2</application>. For the moment this should be 
regarded
+      as experimental and problems may be encountered. Because
+      <application>rust</application> will use all CPUs, if an error happened 
the
+      message may have scrolled out of the terminal's buffer. Logging makes it
+      possible to find out what was reported.
+    </para>
+
   </sect2>
 
   <sect2 role="content">
@@ -225,7 +268,7 @@
 
       <seglistitem>
         <seg>
-          cargo, rust-gdb, rust-lldb, rustc, rustdoc.
+          cargo, rls, rust-gdb, rust-lldb, rustc, rustdoc.
         </seg>
         <seg>
           Many lib*&lt;16-byte-hash&gt;.so libraries.
@@ -255,6 +298,20 @@
           </indexterm>
         </listitem>
       </varlistentry>
+
+      <varlistentry id="rls">
+        <term><command>rls</command></term>
+        <listitem>
+          <para>
+            is the Rust Language Server. This can run in the background to
+            provide IDEs, editors, and other tools with information about Rust
+            programs.
+          </para>
+          <indexterm zone="rust rls">
+            <primary sortas="b-rls">rls</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
 
       <varlistentry id="rust-gdb">
         <term><command>rust-gdb</command></term>

Modified: trunk/BOOK/introduction/welcome/changelog.xml
==============================================================================
--- trunk/BOOK/introduction/welcome/changelog.xml       Tue Jan 23 09:50:10 
2018        (r19692)
+++ trunk/BOOK/introduction/welcome/changelog.xml       Tue Jan 23 17:54:48 
2018        (r19693)
@@ -45,6 +45,15 @@
       <para>January 23rd, 2018</para>
       <itemizedlist>
         <listitem>
+          <para>[ken] - Update to rustc-1.22.1 and firefox-58.0 (which
+          includes security fixes). Fixes
+          <ulink url="&blfs-ticket-root;10292">#10292</ulink> and
+          <ulink url="&blfs-ticket-root;10279">#10279</ulink>. Please note
+          firefox now has an additional dependency and added Configuration
+          Information details. Particular thanks to Tim Tassonis, Ryan
+          Marsaw, and Bruce for their help with this.</para>
+        </listitem>
+        <listitem>
           <para>[bdubbs] - Update to sqlite-3.22.0. Fixes
           <ulink url="&blfs-ticket-root;10291">#10291</ulink>.</para>
         </listitem>

Modified: trunk/BOOK/packages.ent
==============================================================================
--- trunk/BOOK/packages.ent     Tue Jan 23 09:50:10 2018        (r19692)
+++ trunk/BOOK/packages.ent     Tue Jan 23 17:54:48 2018        (r19693)
@@ -332,7 +332,7 @@
 <!ENTITY ruby-minor-version           "2.5">
 <!ENTITY ruby-patch-version           "0">
 <!ENTITY ruby-version                 
"&ruby-minor-version;.&ruby-patch-version;">
-<!ENTITY rust-version                 "1.19.0">
+<!ENTITY rust-version                 "1.22.1">
 <!ENTITY scons-version                "3.0.0">
 <!ENTITY slang-version                "2.3.1">
 <!ENTITY subversion-version           "1.9.7">
@@ -728,7 +728,7 @@
 <!-- Chapter 43 -->
 <!ENTITY chromium-version             "63.0.3239.132">
 <!ENTITY epiphany-version             "3.26.5.1">
-<!ENTITY firefox-version              "57.0.4">
+<!ENTITY firefox-version              "58.0">
 <!ENTITY flashplayer-version          "27.0.0.187">
 <!ENTITY qupzilla-version             "2.2.4">
 <!ENTITY seamonkey-version            "2.49.1">

Modified: trunk/BOOK/xsoft/graphweb/firefox.xml
==============================================================================
--- trunk/BOOK/xsoft/graphweb/firefox.xml       Tue Jan 23 09:50:10 2018        
(r19692)
+++ trunk/BOOK/xsoft/graphweb/firefox.xml       Tue Jan 23 17:54:48 2018        
(r19693)
@@ -6,9 +6,9 @@
 
   <!ENTITY firefox-download-http 
"&mozilla-http;/firefox/releases/&firefox-version;/source/firefox-&firefox-version;.source.tar.xz">
   <!ENTITY firefox-download-ftp  " ">
-  <!ENTITY firefox-md5sum        "18586d62f24671fa15f4a5dd7b19c09c">
-  <!ENTITY firefox-size          "239 MB">
-  <!ENTITY firefox-buildsize     "7.2 GB (148 MB installed) without tests">
+  <!ENTITY firefox-md5sum        "0d5b70d2cf074ed6716b13c3e8d43a18">
+  <!ENTITY firefox-size          "236 MB">
+  <!ENTITY firefox-buildsize     "7.4 GB (152 MB installed) without tests">
   <!ENTITY firefox-time          "20 SBU (with parallelism=4) without tests">
 ]>
 
@@ -74,9 +74,15 @@
       <para>
         The build times for this version of firefox (using stylo, the new CSS
         rendering code) seem to vary widely between different machines. On one
-        old Intel i3 the build took 33 SBU. The reason for this is not 
understood.
-        A build with stylo disabled is typically 1 or 2 SBU quicker and needs
-        0.8GB less disk space.
+        old Intel i3 the build took considerably longer. The reason for this is
+        not understood. A build with stylo disabled is typically 1 or 2 SBU
+        quicker and needs 0.8GB less disk space.
+      </para>
+
+      <para>
+        Although upstream prefer to use <application>PulseAudio</application>,
+        for the moment <application>Alsa</application> can still be used. Both
+        may need runtime configuration to get sound working.
       </para>
     </note>
 
@@ -122,11 +128,13 @@
       <xref linkend="autoconf213"/>,
       both <xref linkend="gtk3"/> and
       <xref linkend="gtk2"/>, 
+      <xref linkend="libnotify"/>,
       <xref linkend="nss"/>,
       <xref linkend="pulseaudio"/>
       (or
       <xref linkend="alsa-lib"/> if you edit the mozconfig; 
-        now deprecated by mozilla), 
+        now deprecated by mozilla), in either case please read the
+        Configuration Information,
       <xref linkend="rust"/>,
       <xref linkend="unzip"/>,
       <xref linkend="yasm"/>, and
@@ -344,9 +352,9 @@
 <!-- the BINDGEN_CFLAGS are to work around
  https://bugzilla.mozilla.org/show_bug.cgi?id=1341234
  which is reported to be fixed in ff58 -->
-<screen><userinput>export BINDGEN_CFLAGS=$(pkg-config --cflags nspr pixman-1) 
&amp;&amp;
-make -f client.mk                                          &amp;&amp;
-unset BINDGEN_CFLAGS</userinput></screen>
+<screen><userinput>
+./mach build
+</userinput></screen>
 
     <para>
       The <filename>mozconfig</filename> above disables the tests because
@@ -363,11 +371,10 @@
       Now, as the <systemitem class="username">root</systemitem> user:
     </para>
 
-<screen role="root"><userinput>make -f client.mk install INSTALL_SDK= 
&amp;&amp;
-chown -R 0:0 /usr/lib/firefox-&firefox-version;   &amp;&amp;
+<screen role="root"><userinput>./mach install                                  
                &amp;&amp;
 
-mkdir -pv    /usr/lib/mozilla/plugins  &amp;&amp;
-ln    -sfv   ../../mozilla/plugins 
/usr/lib/firefox-&firefox-version;/browser</userinput></screen>
+mkdir -pv  /usr/lib/mozilla/plugins                             &amp;&amp;
+ln    -sfv ../../mozilla/plugins 
/usr/lib/firefox-&firefox-version;/browser</userinput></screen>
 <!--
     <para>
       Set environment variables back to their values:
@@ -384,17 +391,15 @@
     <title>Command Explanations</title>
 
     <para>
-      <command>export BINDGEN_CFLAGS=$(pkg-config --cflags nspr 
pixman-1)</command>:
-      This works around a bug in the style rust package to allow it to find the
-      system headers for <package>nspr</package> and <package>pixman</package>.
+      <command>./mach build</command>: <application>Firefox</application>
+      now uses this <application>python2</application> script to run the
+      build and install.
     </para>
 
     <para>
-      <command>make -f client.mk ...</command>: Mozilla products are packaged 
to
-      allow the use of a configuration file which can be used to pass the
-      configuration settings to the <command>configure</command> command.
-      <command>make</command> uses the <filename>client.mk</filename> file to
-      get initial configuration and setup parameters.
+      <option>./mach build --verbose</option>: Use this alternative if you
+      need details of which files are being compiled, together with any C or
+      C++ flags being used.
     </para>
 
     <para>
@@ -448,6 +453,67 @@
 ln -sfv /usr/lib/firefox-&firefox-version;/browser/icons/mozicon128.png \
         /usr/share/pixmaps/firefox.png</userinput></screen>
 
+    <sect3><title>Configuration Information</title>
+
+      <para>
+        The application settings for firefox are accessible by keying
+        <command>about:config</command> in the address bar.
+      </para>
+
+      <para>
+        With this version of <application>firefox</application>, getting
+        working sound can be a problem.  Although upstream prefers pulseaudio,
+        on balance using <application>Alsa</application> may be easier.
+      </para>
+
+      <para>
+        If you enabled <application>Alsa</application> for sound, you may need
+        to alter one variable to get working sound. If you run
+        <command>firefox</command> from a term and try to play something with
+        sound you might encounter error messages like:
+      </para>
+
+      <para>
+         <literal>Sandbox: seccomp sandbox violation: pid 3941, tid 4030,
+         syscall 16, args 48 2147767296 139909894784796 0 0 0.</literal>
+      </para>
+
+      <para>
+        That was on x86_64, on i686 the syscall number is 54. To allow this
+        syscall, in <command>about:config</command> change
+        <command>security.sandbox.content.syscall_whitelist</command> to 16
+        (or 54 if using i686).
+      </para>
+
+      <para>
+        If you use <command>pulseaudio</command> in a Desktop Environment, it
+        might already be started by that DE.  But if it is not, although
+        firefox-57 managed to start it, firefox-58 does not.  If you run
+        <command>firefox</command> from a term, trying to play sound will
+        encounter error messages warning <literal>Can't get cubeb
+        context!</literal>
+      </para>
+
+    <para>
+      The fix for this is to close firefox, start pulseaudio to check it
+      does start (if not, read the information on Configuring in <xref
+      linkend="pulseaudio"/>) and restart firefox to check it is working.
+      If it now works, add the following to your 
<filename>~/.xinitrc</filename>:
+<phrase revision="sysv">
+<literal>pulseaudio --verbose --log-target=syslog&amp;</literal></phrase>
+<phrase revision="systemd">
+<literal>pulseaudio --verbose --log-target=journald&amp;</literal></phrase>
+        (unfortunately, on some systems this does not work).
+      </para>
+
+      <para>
+        You may wish to use multiple profiles within firefox. To do that, 
invoke
+        firefox as <command>firefox --ProfileManager</command>. You can also
+        check which profile is currently in use from
+        <command>about:profiles</command>.
+      </para>
+
+    </sect3>
   </sect2>
 
   <sect2 role="content">
-- 
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