Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • xsoft/graphweb/firefox.xml

    rb4f89635 r8d219de  
    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        "ad6ab1bbf36c9e799688eb117ead7926">
    10   <!ENTITY firefox-size          "364 MB">
     9  <!ENTITY firefox-md5sum        "9fe60d1991b9344ebfd80592aff2bfa9">
     10  <!ENTITY firefox-size          "457 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     "6.7 GB (195 MB installed) without tests">
     13  <!ENTITY firefox-buildsize     "7.1 GB (199 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          "31 SBU (on a typical 4-core machine) without tests">
     17  <!ENTITY firefox-time          "21 SBU using -j4, without tests">
    1818]>
    1919
     
    2121  <?dbhtml filename="firefox.html" ?>
    2222
    23   <sect1info>
    24     <date>$Date$</date>
    25   </sect1info>
    26 
    27   <title>Firefox-&firefox-version;</title>
     23
     24<!-- indicate this is the ESR variant,
     25  The point was that the 102.0 stable release differed slightly.
     26  <title>Firefox-&firefox-version;</title>-->
     27  <title>Firefox-&firefox-version;esr</title>
    2828
    2929  <indexterm zone="firefox">
     
    3939    </para>
    4040
    41     &lfs110a_checked;
     41    &lfs112_checked;
    4242
    4343    <bridgehead renderas="sect3">Package Information</bridgehead>
     
    7575    </itemizedlist>
    7676
    77     <bridgehead renderas="sect3">Additional Downloads</bridgehead>
     77<!--<bridgehead renderas="sect3">Additional Downloads</bridgehead>
    7878    <itemizedlist spacing="compact">
     79      <listitem>
     80        <para>
     81          Required patch:
     82          <ulink url="&patch-root;/firefox-&firefox-version;esr-gcc12_fix-1.patch"/>
     83        </para>
     84      </listitem>
    7985      <listitem>
    8086        <para>
     
    8389        </para>
    8490      </listitem>
    85     </itemizedlist>
     91    </itemizedlist>-->
    8692
    8793    <note>
     
    117123      </para>
    118124
    119       <!-- commented, by 78.0 it seems to work reliably
    120       <para>
    121         The mach build system (Python scripts) can be somewhat unreliable: if
    122         the build fails and reports an Error, it can still return a status of
    123         success, causing a scripted build to try to install (which does not rerun
    124         the build), fail during the preparations for installing, but still exit
    125         with a status of success. Also, on occasion it may limit itself to only
    126         running one set of jobs - that will make the build take about 3 times as
    127         long as running with four sets of jobs.
    128       </para>-->
    129 
    130125      <para>
    131126        Although upstream prefer to use <application>PulseAudio</application>,
     
    142137      <xref linkend="cbindgen"/>,
    143138      <xref linkend="dbus-glib"/>,
    144       both <xref linkend="gtk3"/> and
    145       <xref linkend="gtk2"/>,
     139      <xref linkend="gtk3"/>,
    146140      <xref linkend="libnotify"/>,
    147       <xref linkend="llvm"/> (clang, used for bindgen even if using gcc),
     141      <xref linkend="llvm"/> (with clang, used for bindgen even if using gcc),
    148142      <xref linkend="nodejs"/>,
    149143      <xref linkend="pulseaudio"/>
     
    152146        now deprecated by mozilla), in either case please read the
    153147        Configuration Information,
    154       <!-- rustc is required by cbindgen so not needed here
    155       <xref linkend="rust"/>,-->
    156148      <xref linkend="python3"/> (rebuilt after installing <xref linkend="sqlite"/>),
    157149      <xref linkend="startup-notification"/>,
     
    184176      <xref linkend="doxygen"/>,
    185177      <xref role="runtime" linkend="ffmpeg"/> (runtime, to play mov, mp3 or mp4 files),
    186       <!--      <phrase revision="sysv"><ulink url="https://sourceforge.net/projects/liboauth/files/">liboauth</ulink></phrase> -->
    187178      <xref linkend="liboauth"/>,
    188       <xref linkend="openjdk"/>,
    189179      <xref linkend="valgrind"/>,
    190180      <xref linkend="wget"/>,
     
    223213#ac_add_options --with-mozilla-api-keyfile=$PWD/mozilla-key
    224214
    225 # Uncomment the following line if you wish to use Google's geolocaton API
     215# Uncomment the following line if you wish to use Google's geolocation API
    226216# (needed for use with saved maps with Google Maps)
    227217#ac_add_options --with-google-location-service-api-keyfile=$PWD/google-key
     
    229219# startup-notification is required since firefox-78
    230220
    231 # Uncomment the following option if you have not installed PulseAudio
    232 #ac_add_options --disable-pulseaudio
    233 # or uncomment this if you installed alsa-lib instead of PulseAudio
    234 #ac_add_options --enable-alsa
     221# Uncomment the following option if you have not installed PulseAudio and
     222# want to use alsa instead
     223#ac_add_options --enable-audio-backends=alsa
    235224
    236225# Comment out following options if you have not installed
     
    243232ac_add_options --with-system-webp
    244233
    245 # Do not specify the gold linker which is not the default. It will take
    246 # longer and use more disk space when debug symbols are disabled.
     234# Unlike with thunderbird, although using the gold linker can
     235# save four megabytes in the installed file it does not make
     236# the build faster.
    247237
    248238# libdavid (av1 decoder) requires nasm. Uncomment this if nasm
    249 # has not been installed.
     239# has not been installed. Do not uncomment this if you have
     240# ffmpeg-5 installed.
    250241#ac_add_options --disable-av1
    251242
     
    287278ac_add_options --with-system-zlib
    288279
     280# Using sandboxed wasm libraries has been moved to all builds instead
     281# of only mozilla automation builds. It requires extra llvm packages
     282# and was reported to seriously slow the build. Disable it.
     283ac_add_options --without-wasm-sandboxed-libraries
     284
    289285# The following option unsets Telemetry Reporting. With the Addons Fiasco,
    290286# Mozilla was found to be collecting user's data, including saved passwords and
     
    304300
    305301    <para>
    306       First apply a patch which works around unexplained failures on some machines
    307       (a message that a python check on libgkrust.a identified 1 networking
    308       function, getsockname) in the rust static library.
    309     </para>
    310 
    311 <screen><userinput>patch -Np1 -i ../firefox-&firefox-version;esr-disable_rust_test-1.patch</userinput></screen>
    312 
     302      A change in cbindgen-0.24.2 causes a symbol to now be output by
     303      cbindgen, but it has already been defined in a header. This sed
     304      prevents the build from eventually failing:
     305    </para>
     306
     307<screen><userinput>sed -i '/ROOT_CLIP_CHAIN/d' gfx/webrender_bindings/webrender_ffi.h</userinput></screen>
     308
     309<!-- Not needed with clang. Upstream bug at
     310     https://bugzilla.mozilla.org/show_bug.cgi?id=1729459
     311
     312    <para>
     313      If building on a 32 bit machine, the following sed works around
     314      an issue with an incompatible <quote>double</quote> type in one
     315      header file:
     316    </para>
     317
     318<screen><userinput>case "$(uname -m)" in
     319    i?86) sed -e '/typedef[ ]*double/s/double/long double/' \
     320              -i modules/fdlibm/src/math_private.h ;;
     321esac</userinput></screen>
     322-->
    313323    <para>
    314324      If the geolocation APIs are needed:
     
    343353
    344354    </note>
    345     <!--
    346     <para>
    347       If you are building on i686, apply a fix to prevent Internal Compiler
    348       Errors in GCC-7+:
    349     </para>
    350 
    351 <screen><userinput remap="pre">case $(uname -m) in
    352    i?86) sed -i "562 s/mips64/i386/" gfx/skia/skia/third_party/skcms/src/Transform_inl.h ;;
    353 esac</userinput></screen>
    354     -->
    355 <!--<para>
    356       Apply a patch to allow this to be compiled with <xref linkend="rust"/>:
    357     </para>
    358 
    359 <screen><userinput remap="pre">patch -p1 -i ../firefox-&firefox-version;esr-rustc1470-1.patch</userinput></screen>-->
     355
     356    <para>
     357      First remove an obsolete flag in python code, that has been removed
     358      in python-3.11:
     359    </para>
     360
     361<screen><userinput>grep -rl \"rU\" | xargs sed -i 's/"rU"/"r"/'</userinput></screen>
     362
     363    <para>
     364      Then fix an issue with regular expressions in python-3.11:
     365    </para>
     366
     367<screen><userinput>sed -e 's/?s)\./?s:.)/'               \
     368    -e '/?m)/{s/?m)/?m:/;s/\$"/$)"/}' \
     369    -e '/?s)%/{s/?s)/?s:/;s/?"/?)"/}' \
     370    -i xpcom/idl-parser/xpidl/xpidl.py</userinput></screen>
    360371
    361372    <para>
     
    363374    </para>
    364375
    365 <screen><userinput>export CC=gcc CXX=g++ &amp;&amp;
    366 export MACH_USE_SYSTEM_PYTHON=1            &amp;&amp;
    367 export MOZBUILD_STATE_PATH=${PWD}/mozbuild &amp;&amp;
    368 ./mach configure                           &amp;&amp;
     376<screen><userinput>export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none &amp;&amp;
     377export MOZBUILD_STATE_PATH=${PWD}/mozbuild          &amp;&amp;
     378./mach configure                                    &amp;&amp;
    369379./mach build</userinput></screen>
    370380
     
    384394    </para>
    385395
    386 <screen role="root"><userinput>MACH_USE_SYSTEM_PYTHON=1 ./mach install</userinput></screen>
     396<screen role="root"><userinput>MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none ./mach install</userinput></screen>
    387397
    388398    <para>
     
    390400    </para>
    391401
    392 <screen><userinput>unset CC CXX MACH_USE_SYSTEM_PYTHON MOZBUILD_STATE_PATH</userinput></screen>
     402<screen><userinput>unset MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE MOZBUILD_STATE_PATH</userinput></screen>
    393403
    394404  </sect2>
     
    399409<!--<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
    400410      href="../../xincludes/SIOCGSTAMP.xml"/>-->
    401 
    402     <para>
    403       <command>export CC=gcc CXX=g++ ...</command>: Upstream now prefer
    404       <application>clang</application> so that they can use one compiler
    405       everywhere. On the X86 architectures <application>clang</application>
    406       now appears to support most of the same security-hardening options as
    407       <application>GCC</application>.
    408       <!-- supported in llvm-11
    409       but the newer
    410       <literal>-fstack-clash-protection</literal> is still not supported.-->
    411       With the current versions and the default flags,
    412       <application>GCC</application> creates a marginally bigger build but
    413       takes typically 2 SBU less time on a 4-core machine using the mozconfig
    414       above.
    415     </para>
    416411
    417412    <para>
     
    433428
    434429    <para>
    435       <command>MACH_USE_SYSTEM_PYTHON=1</command>: Use the system python
    436       to create a virtual environment for <command>mach</command> without
    437       downloading any python wheels.
     430      <command>MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none</command>: Use the
     431      system python to create a virtual environment for <command>mach</command>
     432      without downloading any python wheels nor using the system python modules.
     433      This prevent version mismatches between system modules and bundled ones.
    438434    </para>
    439435
     
    446442      <option>./mach build --verbose</option>: Use this alternative if you
    447443      need details of which files are being compiled, together with any C or
    448       C++ flags being used. But do not add '--verbose' to the install command,
    449       it is not accepted there.
     444      C++ flags being used. But do not add '--verbose' to the install command
     445      since it is not accepted there.
    450446    </para>
    451447
     
    456452    </para>
    457453
    458 <!--
    459     <para>
    460       <command>mkdir -pv /usr/lib/mozilla/plugins</command>: This ensures
    461       that <filename class="directory">/usr/lib/mozilla/plugins/</filename>
    462       exists.
    463     </para>
    464 
    465     <para>
    466       <command>ln -sv ... /usr/lib/firefox/browser</command>:
    467       This command creates a symbolic link to <filename
    468       class="directory">/usr/lib/mozilla/plugins</filename>. It's not really
    469       needed, as <application>Firefox</application> checks <filename
    470       class="directory">/usr/lib/mozilla/plugins</filename> by default, but the
    471       symbolic link is made to keep all the plugins installed in one folder.
    472     </para>
    473 -->
     454    <para>
     455      <option><envar>CC=gcc CXX=g++</envar></option>: BLFS used to
     456      prefer to use gcc and g++ instead of upstream's defaults of the
     457      <application>clang</application> programs. With the release of
     458      gcc-12 the build takes longer with gcc and g++, primarily because
     459      of extra warnings, and is bigger. Set these environment variables
     460      <emphasis>before you run the configure script</emphasis>
     461      if you wish to continue to use gcc, g++. Building
     462      with GCC on i?86 is currently broken.
     463    </para>
    474464
    475465  </sect2>
     
    480470    <para>
    481471      If you use a desktop environment like <application>Gnome</application> or
    482       <application>KDE</application> you may like to create a
     472      <application>KDE</application> you may want to create a
    483473      <filename>firefox.desktop</filename> file so that
    484       <application>Firefox</application> appears in the panel's menus. <!--If you
    485       didn't enable startup-notification in your mozconfig change the
    486       StartupNotify line to false.--> As the
    487       <systemitem class="username">root</systemitem> user:
     474      <application>Firefox</application> appears in the panel's menus.
     475      As the &root; user:
    488476    </para>
    489477
     
    491479mkdir -pv /usr/share/pixmaps      &amp;&amp;
    492480
    493 MIMETYPE="text/xml;text/mml;text/html"                                     &amp;&amp;
    494 MIMETYPE="$MIMETYPE;application/xhtml+xml;application/vnd.mozilla.xul+xml" &amp;&amp;
    495 MIMETYPE="$MIMETYPE;x-scheme-handler/http;x-scheme-handler/https"          &amp;&amp;
     481MIMETYPE="text/xml;text/mml;text/html;"                            &amp;&amp;
     482MIMETYPE+="application/xhtml+xml;application/vnd.mozilla.xul+xml;" &amp;&amp;
     483MIMETYPE+="x-scheme-handler/http;x-scheme-handler/https"           &amp;&amp;
    496484
    497485cat &gt; /usr/share/applications/firefox.desktop &lt;&lt; EOF &amp;&amp;
     
    532520        If you enabled <application>Alsa</application> for sound, you may need
    533521        to alter one variable to get working sound. If you run
    534         <command>firefox</command> from a term and try to play something with
    535         sound you might encounter error messages like:
     522        <command>firefox</command> from a terminal and try to play something
     523        with sound you might encounter error messages like:
    536524      </para>
    537525
     
    552540        might already be started by that DE.  But if it is not, although
    553541        firefox-57 managed to start it, firefox-58 did not.  If you run
    554         <command>firefox</command> from a term and this problem is present,
     542        <command>firefox</command> from a terminal and this problem is present,
    555543        trying to play sound will
    556544        encounter error messages warning <literal>Can't get cubeb
     
    580568        Although WebRender (using the GPU for compositing) is not used by
    581569        default, it now appears to work well on supported hardware (ATI, Nvidia
    582         and Intel GPUs with Mesa-18 or later. For an explanation, please see
     570        and Intel GPUs with Mesa-18 or later). For an explanation, please see
    583571        <ulink
    584572       url="https://hacks.mozilla.org/2017/10/the-whole-web-at-maximum-fps-how-webrender-gets-rid-of-jank/">hacks.mozilla.org</ulink>.
     
    589577    <para>
    590578      To check if WebRender is being used, look in about:support. In the Graphics
    591       section Compositing will either show 'Basic' (i.e. not in use) or
     579      section, Compositing will either show 'Basic' (i.e. not in use) or
    592580      'WebRender'. To enable it, go to about:config and change gfx.webrender.all
    593581      to True. You will need to restart firefox.
     
    623611        </seg>
    624612        <seg>
    625           /usr/lib/firefox and /usr/lib/mozilla
     613          /usr/lib/firefox
    626614        </seg>
    627615      </seglistitem>
     
    637625        <listitem>
    638626          <para>
    639             is a <application>GTK+-3</application> internet browser that uses
    640             the Mozilla Gecko rendering engine
     627            is a <application>GTK+-3</application> internet browser that uses
     628            the Mozilla Gecko rendering engine
    641629          </para>
    642630          <indexterm zone="firefox firefox-prog">
Note: See TracChangeset for help on using the changeset viewer.