Changeset d5d7cd6 for xsoft


Ignore:
Timestamp:
06/29/2020 09:19:32 PM (4 years ago)
Author:
Ken Moffat <ken@…>
Branches:
10.0, 10.1, 11.0, 11.1, 11.2, 11.3, 12.0, 12.1, kea, ken/TL2024, ken/inkscape-core-mods, ken/tuningfonts, lazarus, lxqt, plabs/newcss, plabs/python-mods, python3.11, qt5new, rahul/power-profiles-daemon, renodr/vulkan-addition, trunk, upgradedb, xry111/intltool, xry111/llvm18, xry111/soup3, xry111/test-20220226, xry111/xf86-video-removal
Children:
acdc8b01
Parents:
691f4f70
Message:

Firefox-78.0esr.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@23344 af4574ff-66df-0310-9fd7-8a98e5e911e0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • xsoft/graphweb/firefox.xml

    r691f4f70 rd5d7cd6  
    77  <!ENTITY firefox-download-http "&mozilla-http;/firefox/releases/&firefox-version;esr/source/firefox-&firefox-version;esr.source.tar.xz">
    88  <!ENTITY firefox-download-ftp  " ">
    9   <!ENTITY firefox-md5sum        "a1156aed941b28a06115a9450a46563d">
    10   <!ENTITY firefox-size          "303 MB">
     9  <!ENTITY firefox-md5sum        "0a095e672a2e1e468a21a0d0c9a328ae">
     10  <!ENTITY firefox-size          "318 MB">
    1111  <!-- NB with stylo, much of the build uses rust, and therefore cargo files.
    1212    But the extra cached cargo files, if any, seem to be minimal -->
    13   <!ENTITY firefox-buildsize     "4.3 GB (167 MB installed) without tests">
     13  <!ENTITY firefox-buildsize     "4.9 GB (184 MB installed) without tests">
    1414  <!-- editors: with ff63 and rust-1.29, ./mach build -j4 is probably the
    1515   most practical way to get a timing on a machine with more cores, if taking
    1616   cores offline is not practical. If in doubt, round up -->
    17   <!ENTITY firefox-time          "22 SBU (on a 4-core machine) without tests">
     17  <!ENTITY firefox-time          "32 SBU (on a 4-core machine) without tests">
    1818]>
    1919
     
    7676    </itemizedlist>
    7777
    78     <bridgehead renderas="sect3">Additional Downloads</bridgehead>
    79     <itemizedlist spacing="compact">
    80       <listitem>
    81         <para>
    82           Optional patch to allow system versions of <xref linkend="graphite2"/>
    83           and <xref linkend="harfbuzz"/>:
    84           <ulink url="&patch-root;/firefox-&firefox-version;esr-system_graphite2_harfbuzz-1.patch"/>
    85         </para>
    86       </listitem>
    87     </itemizedlist>
    88 
    8978    <note>
    9079      <para>
     
    115104      <para>
    116105        As with other large packages which use C++ (or rust), the SBU times
    117         to build this vary more widely than you might expect. Also, 6GB
    118         of real memory is used during the final link and the SBUs can increase
    119         significantly if the machine has to swap.
    120       </para>
    121 
     106        to build this vary more widely than you might expect. The build times
     107        will increase significantly if your machine has to swap.
     108      </para>
     109
     110      <!-- commented, by 78.0 it seems to work reliably
    122111      <para>
    123112        The mach build system (Python scripts) can be somewhat unreliable: if
     
    128117        running one set of jobs - that will make the build take about 3 times as
    129118        long as running with four sets of jobs.
    130       </para>
     119      </para>-->
    131120
    132121      <para>
     
    143132      <xref linkend="autoconf213"/>,
    144133      <xref linkend="cbindgen"/>,
    145       <!-- with ff-69.0 the configure system was happy to continue to disable
    146         dbus-glib, but linking libxul.so failed because rust code uses it, so
    147         make it required and remove from mozconfig : ken -->
    148134      <xref linkend="dbus-glib"/>,
    149135      both <xref linkend="gtk3"/> and
     
    157143        now deprecated by mozilla), in either case please read the
    158144        Configuration Information,
    159       <xref linkend="rust"/>,
     145      <!-- rustc is required by cbindgen so not needed here
     146      <xref linkend="rust"/>,-->
     147      <xref linkend="startup-notification"/>,
    160148      <xref linkend="unzip"/>,
    161149      <xref linkend="yasm"/>, and
     
    167155      <xref linkend="icu"/>,
    168156      <xref linkend="libevent"/>,
    169 <!-- fails to build in 65.0 (headers changed)
    170       <xref linkend="libvpx"/>, -->
    171157      <xref linkend="libwebp"/>,
    172       <xref linkend="nasm"/>, and
    173       <xref linkend="sqlite"/>
     158      <xref linkend="nasm"/>
    174159    </para>
    175160
     
    190175      <xref linkend="liboauth"/>,
    191176      <xref linkend="openjdk"/>,
    192       <xref linkend="startup-notification"/>,
    193177      <xref linkend="valgrind"/>,
    194178      <xref linkend="wget"/>,
    195179      <xref linkend="wireless_tools"/>,
    196       <ulink url="https://github.com/libproxy/libproxy">libproxy</ulink>,
    197       and (with the patch)
    198       <xref linkend="graphite2"/> and
    199       <xref linkend="harfbuzz"/>
     180      <ulink url="https://github.com/libproxy/libproxy">libproxy</ulink>
    200181    </para>
    201182
     
    234215#ac_add_options --with-google-location-service-api-keyfile=$PWD/google-key
    235216
    236 # Uncomment this line if you have installed startup-notification:
    237 #ac_add_options --enable-startup-notification
     217# startup-notification is required since firefox-78
    238218
    239219# Uncomment the following option if you have not installed PulseAudio
     
    244224# Comment out following options if you have not installed
    245225# recommended dependencies:
    246 ac_add_options --enable-system-sqlite
    247226ac_add_options --with-system-libevent
    248 # firefox-65 understands webp and ships with an included copy
    249227ac_add_options --with-system-webp
    250228ac_add_options --with-system-nspr
     
    262240ac_add_options --enable-official-branding
    263241
    264 # If you are going to apply the patch for system graphite
    265 # and system harfbuzz, uncomment these lines:
    266 #ac_add_options --with-system-graphite2
    267 #ac_add_options --with-system-harfbuzz
    268 
    269242# Stripping is now enabled by default.
    270243# Uncomment these lines if you need to run a debugger:
     
    277250ac_add_options --disable-debug-symbols
    278251
    279 # The BLFS editors recommend not changing anything below this line:
    280 ac_add_options --prefix=/usr
    281 ac_add_options --enable-application=browser
    282 
    283252# The elf-hack is reported to cause failed installs (after successful builds)
    284253# on some machines. It is supposed to improve startup time and it shrinks
     
    286255ac_add_options --disable-elf-hack
    287256
     257# The BLFS editors recommend not changing anything below this line:
     258ac_add_options --prefix=/usr
     259ac_add_options --enable-application=browser
    288260ac_add_options --disable-crashreporter
    289261ac_add_options --disable-updater
     
    295267ac_add_options --enable-optimize
    296268
    297 # From firefox-61 system cairo is not supported
    298 
    299269ac_add_options --enable-system-ffi
    300270ac_add_options --enable-system-pixman
    301271
    302 # From firefox-62 --with-pthreads is not recognized
    303 
    304 ac_add_options --with-system-bz2
     272# --with-system-bz2 was removed in firefox-78
    305273ac_add_options --with-system-jpeg
    306274ac_add_options --with-system-png
     
    323291    </para>
    324292
    325     <para>
    326       If you have installed system versions of graphite2 and harfbuzz and wish
    327       firefox to use those instead of its shipped versions, apply the patch and
    328       uncomment the appropriate entries in the <filename>mozconfig</filename>
    329       file.
    330     </para>
    331 
    332 <screen><userinput>patch -Np1 -i ../firefox-&firefox-version;esr-system_graphite2_harfbuzz-1.patch</userinput></screen>
     293     <para>
     294       In the esr version of firefox-78, the code to ensure that add-ons
     295       are signed by the trused root has been disabled, presumably for
     296       organizations which require their own add-ons. To enable it as an
     297       added security measure issue the following command:
     298     </para>
     299
     300<screen><userinput>sed -i -e 's/Disable/Enable/'      \
     301 -e '/^MOZ_REQUIRE_SIGNING/s/0/1/' \
     302 build/mozconfig.common</userinput></screen>
    333303
    334304    <para>
     
    376346
    377347    <para>
    378       Now invoke the Python2 script to compile the package.
     348      Now invoke the Python script to compile the package.
    379349    </para>
    380350
     
    418388
    419389    <para>
    420       <command>sed -e 's/checkImpl/checkFFImpl/g' ...</command>: Although the
    421       package ships with a modified version of <application>ICU-63</application>
    422       and only tests that the system version, if used, is at least 63, changes
    423       from upstream 63 cause builds with the system version to fail with an error
    424       message <literal>no void JSContext::checkImpl_63 member function</literal>.
    425       The sed renames the local function. Upstream ICU-64 works around this.
    426     </para>
    427 
    428     <para>
    429390      <command>export CC=gcc CXX=g++ ...</command>: Upstream now prefer
    430       <application>clang</application>, but gcc is a more secure compiler and
    431       now produces reasonably-sized builds.
     391      <application>clang</application> so that they can use one compiler
     392      everywhere. On the X86 architectures <application>clang</application>
     393      now appears to support the same security-hardening options as
     394      <application>GCC</application>. With the current versions,
     395      <application>GCC</application> creates a marginally bigger build but
     396      takes typically 2 SBU less time on a 4-core machine using the mozconfig
     397      above.
    432398    </para>
    433399
     
    450416    <para>
    451417      <command>./mach build</command>: <application>Firefox</application>
    452       now uses this <application>python2</application> script to run the
     418      now uses this <application>python</application> script to run the
    453419      build and install.
    454420    </para>
     
    457423      <option>./mach build --verbose</option>: Use this alternative if you
    458424      need details of which files are being compiled, together with any C or
    459       C++ flags being used.
     425      C++ flags being used. But do not add '--verbose' to the install command,
     426      it is not accepted there.
    460427    </para>
    461428
    462429    <para>
    463430      <option>./mach build -jN</option>: The build should, by default, use
    464       all the online CPU cores. There are two reasons to specify the number
    465       of cores, e.g. -j4 for 4 cores: First, if using all the cores causes
    466       the build to swap because you have insufficient memory (e.g. for 4 cores
    467       a build without system graphite2 and harfbuzz now uses towards 8GB
    468       of RAM). In such cases, using fewer cores can be faster. Second, on some
    469       machines the middle part of the build can drag on as if only one core is
    470       present. In those cases, specifying the number of cores may speed up the
    471       build.
     431      all the online CPU cores. If using all the cores causes the build to swap
     432      because you have insufficient memory, using fewer cores can be faster.
    472433    </para>
    473434
     
    485446      class="directory">/usr/lib/mozilla/plugins</filename> by default, but the
    486447      symbolic link is made to keep all the plugins installed in one folder.
    487     </para>
    488 
    489     <para>
    490       <option>export CC=clang CXX=clang++ AR=llvm-ar NM=llvm-nm RANLIB=llvm-ranlib</option>:
    491       Use this as an alternative to building with gcc and g++ if you wish to use
    492       the clang toolchain. Remember to unset these variables after the build.
    493448    </para>
    494449
     
    537492
    538493      <para>
    539         With this version of <application>firefox</application>, getting
    540         working sound can be a problem.  Although upstream prefers pulseaudio,
     494        Occasionally, getting working sound in
     495        <application>firefox</application> can be a problem.  Although upstream
     496        prefers pulseaudio,
    541497        on balance using <application>Alsa</application> may be easier.
    542498      </para>
     
    589545        <command>about:profiles</command>.
    590546      </para>
     547
     548      <para>
     549        Although WebRender (using the GPU for compositing) is not used by
     550        default, it now appears to work well on supported hardware (ATI, Nvidia
     551        and Intel GPUs with Mesa-18 or later. For an explanation, please see
     552        <ulink
     553       url="https://hacks.mozilla.org/2017/10/the-whole-web-at-maximum-fps-how-webrender-gets-rid-of-jank/">hacks.mozilla.org</ulink>.
     554       The only downside seems to be that on a machine with limited RAM it might
     555       use more RAM.
     556     </para>
     557
     558    <para>
     559      To check if WebRender is being used, look in about:support. In the Graphics
     560      section Compositing will either show 'Basic' (i.e. not in use) or
     561      'WebRender'. To enable it, go to about:config and change gfx.webrender.all
     562      to True. You will need to restart firefox.
     563    </para>
     564
     565    <para>
     566      It may be useful to mention the processes from firefox which can appear in
     567      <command>top</command> - as well as firefox itself, there may be multiple
     568      Web Content processes, and now an RDD Process (Remote Data Decoder) which
     569      appears when playing web videos encoded with av1 (libdav1d). If WebRender
     570      has been enabled, a GPU Process will also appear when firefox has to
     571      repaint (e.g. scrolling, opening a new tab, or playing a video).
     572    </para>
    591573
    592574    </sect3>
Note: See TracChangeset for help on using the changeset viewer.