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 <<EOF > 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*<16-byte-hash>.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) && -make -f client.mk && -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= && -chown -R 0:0 /usr/lib/firefox-&firefox-version; && +<screen role="root"><userinput>./mach install && -mkdir -pv /usr/lib/mozilla/plugins && -ln -sfv ../../mozilla/plugins /usr/lib/firefox-&firefox-version;/browser</userinput></screen> +mkdir -pv /usr/lib/mozilla/plugins && +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&</literal></phrase> +<phrase revision="systemd"> +<literal>pulseaudio --verbose --log-target=journald&</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