- Timestamp:
- 06/29/2020 09:19:32 PM (4 years ago)
- 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
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
xsoft/graphweb/firefox.xml
r691f4f70 rd5d7cd6 7 7 <!ENTITY firefox-download-http "&mozilla-http;/firefox/releases/&firefox-version;esr/source/firefox-&firefox-version;esr.source.tar.xz"> 8 8 <!ENTITY firefox-download-ftp " "> 9 <!ENTITY firefox-md5sum " a1156aed941b28a06115a9450a46563d">10 <!ENTITY firefox-size "3 03MB">9 <!ENTITY firefox-md5sum "0a095e672a2e1e468a21a0d0c9a328ae"> 10 <!ENTITY firefox-size "318 MB"> 11 11 <!-- NB with stylo, much of the build uses rust, and therefore cargo files. 12 12 But the extra cached cargo files, if any, seem to be minimal --> 13 <!ENTITY firefox-buildsize "4. 3 GB (167MB installed) without tests">13 <!ENTITY firefox-buildsize "4.9 GB (184 MB installed) without tests"> 14 14 <!-- editors: with ff63 and rust-1.29, ./mach build -j4 is probably the 15 15 most practical way to get a timing on a machine with more cores, if taking 16 16 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"> 18 18 ]> 19 19 … … 76 76 </itemizedlist> 77 77 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 89 78 <note> 90 79 <para> … … 115 104 <para> 116 105 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, 6GB118 of real memory is used during the final link and the SBUs can increase119 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 122 111 <para> 123 112 The mach build system (Python scripts) can be somewhat unreliable: if … … 128 117 running one set of jobs - that will make the build take about 3 times as 129 118 long as running with four sets of jobs. 130 </para> 119 </para>--> 131 120 132 121 <para> … … 143 132 <xref linkend="autoconf213"/>, 144 133 <xref linkend="cbindgen"/>, 145 <!-- with ff-69.0 the configure system was happy to continue to disable146 dbus-glib, but linking libxul.so failed because rust code uses it, so147 make it required and remove from mozconfig : ken -->148 134 <xref linkend="dbus-glib"/>, 149 135 both <xref linkend="gtk3"/> and … … 157 143 now deprecated by mozilla), in either case please read the 158 144 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"/>, 160 148 <xref linkend="unzip"/>, 161 149 <xref linkend="yasm"/>, and … … 167 155 <xref linkend="icu"/>, 168 156 <xref linkend="libevent"/>, 169 <!-- fails to build in 65.0 (headers changed)170 <xref linkend="libvpx"/>, -->171 157 <xref linkend="libwebp"/>, 172 <xref linkend="nasm"/>, and 173 <xref linkend="sqlite"/> 158 <xref linkend="nasm"/> 174 159 </para> 175 160 … … 190 175 <xref linkend="liboauth"/>, 191 176 <xref linkend="openjdk"/>, 192 <xref linkend="startup-notification"/>,193 177 <xref linkend="valgrind"/>, 194 178 <xref linkend="wget"/>, 195 179 <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> 200 181 </para> 201 182 … … 234 215 #ac_add_options --with-google-location-service-api-keyfile=$PWD/google-key 235 216 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 238 218 239 219 # Uncomment the following option if you have not installed PulseAudio … … 244 224 # Comment out following options if you have not installed 245 225 # recommended dependencies: 246 ac_add_options --enable-system-sqlite247 226 ac_add_options --with-system-libevent 248 # firefox-65 understands webp and ships with an included copy249 227 ac_add_options --with-system-webp 250 228 ac_add_options --with-system-nspr … … 262 240 ac_add_options --enable-official-branding 263 241 264 # If you are going to apply the patch for system graphite265 # and system harfbuzz, uncomment these lines:266 #ac_add_options --with-system-graphite2267 #ac_add_options --with-system-harfbuzz268 269 242 # Stripping is now enabled by default. 270 243 # Uncomment these lines if you need to run a debugger: … … 277 250 ac_add_options --disable-debug-symbols 278 251 279 # The BLFS editors recommend not changing anything below this line:280 ac_add_options --prefix=/usr281 ac_add_options --enable-application=browser282 283 252 # The elf-hack is reported to cause failed installs (after successful builds) 284 253 # on some machines. It is supposed to improve startup time and it shrinks … … 286 255 ac_add_options --disable-elf-hack 287 256 257 # The BLFS editors recommend not changing anything below this line: 258 ac_add_options --prefix=/usr 259 ac_add_options --enable-application=browser 288 260 ac_add_options --disable-crashreporter 289 261 ac_add_options --disable-updater … … 295 267 ac_add_options --enable-optimize 296 268 297 # From firefox-61 system cairo is not supported298 299 269 ac_add_options --enable-system-ffi 300 270 ac_add_options --enable-system-pixman 301 271 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 305 273 ac_add_options --with-system-jpeg 306 274 ac_add_options --with-system-png … … 323 291 </para> 324 292 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> 333 303 334 304 <para> … … 376 346 377 347 <para> 378 Now invoke the Python 2script to compile the package.348 Now invoke the Python script to compile the package. 379 349 </para> 380 350 … … 418 388 419 389 <para> 420 <command>sed -e 's/checkImpl/checkFFImpl/g' ...</command>: Although the421 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, changes423 from upstream 63 cause builds with the system version to fail with an error424 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>429 390 <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. 432 398 </para> 433 399 … … 450 416 <para> 451 417 <command>./mach build</command>: <application>Firefox</application> 452 now uses this <application>python 2</application> script to run the418 now uses this <application>python</application> script to run the 453 419 build and install. 454 420 </para> … … 457 423 <option>./mach build --verbose</option>: Use this alternative if you 458 424 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. 460 427 </para> 461 428 462 429 <para> 463 430 <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. 472 433 </para> 473 434 … … 485 446 class="directory">/usr/lib/mozilla/plugins</filename> by default, but the 486 447 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 use492 the clang toolchain. Remember to unset these variables after the build.493 448 </para> 494 449 … … 537 492 538 493 <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, 541 497 on balance using <application>Alsa</application> may be easier. 542 498 </para> … … 589 545 <command>about:profiles</command>. 590 546 </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> 591 573 592 574 </sect3>
Note:
See TracChangeset
for help on using the changeset viewer.