- Timestamp:
- 10/29/2016 07:29:37 AM (7 years ago)
- Branches:
- 10.0, 10.1, 11.0, 11.1, 11.2, 11.3, 12.0, 12.1, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, basic, bdubbs/svn, elogind, kea, ken/TL2024, ken/inkscape-core-mods, ken/tuningfonts, lazarus, lxqt, nosym, perl-modules, 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:
- 7b8c7ec
- Parents:
- 5714cf71
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
xsoft/graphweb/chromium.xml
r5714cf71 r47eea61 7 7 <!ENTITY chromium-download-http "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-&chromium-version;.tar.xz"> 8 8 <!ENTITY chromium-download-ftp " "> 9 <!ENTITY chromium-md5sum "fdc737af242421b2a9a0bb84f6b17040"> 10 <!ENTITY chromium-size "440 MB"> 11 <!ENTITY chromium-buildsize "6.2 GB"> 12 <!ENTITY chromium-time "111 SBU"> 13 <!-- I got a very high build time (222 SBU), but I can't verify it. --> 9 <!ENTITY chromium-md5sum "30bb11c67bfbb30a28ca0b0cb6e06740"> 10 <!ENTITY chromium-size "458 MB"> 11 <!ENTITY chromium-buildsize "5.2 GB"> 12 <!ENTITY chromium-time "105 SBU"> 13 <!-- Ninja defaults to parallel build unless supplying -j1, SBU measured on 14 dual core, hyperthreaded CPU (4 threads). --> 14 15 ]> 15 16 … … 66 67 <itemizedlist spacing="compact"> 67 68 <listitem> 68 <para>Optional launcher (to eanble Pepper Flash - x86_64 only):69 <para>Optional launcher (to use the Flash Player PPAPI plugin): 69 70 <ulink url="https://github.com/foutrelis/chromium-launcher/archive/v3.tar.gz"/> 70 71 </para> 71 72 </listitem> 72 73 <listitem> 73 <para>Optional Chrome distribution (to copy plugins - x86_64 only): 74 <ulink url="http://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_&chromium-version;-1_amd64.deb"/> 74 <para>Optional Chrome distribution (to copy widevine plugin): 75 <ulink url="http://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_&chromium-version;-1_amd64.deb"/> or 76 <ulink url="http://mirror.retrosnub.co.uk/apt/google/pool/main/g/google-chrome-stable/google-chrome-stable_48.0.2564.116-1_i386.deb"/> 77 (i386 is no longer officially supported)</para> 78 </listitem> 79 <listitem> 80 <para>Optional Flash Player plugin: 81 <ulink url="https://fpdownload.adobe.com/pub/flashplayer/pdc/23.0.0.205/flash_player_ppapi_linux.x86_64.tar.gz"/> or 82 <ulink url="https://fpdownload.adobe.com/pub/flashplayer/pdc/23.0.0.205/flash_player_ppapi_linux.i386.tar.gz"/> 75 83 </para> 76 84 </listitem> … … 100 108 <para role="recommended"> 101 109 <xref linkend="flac"/>, 102 <xref linkend="GConf"/>, 103 <xref linkend="gnome-keyring"/>, 104 <xref linkend="hicolor-icon-theme"/>, 110 <xref linkend="git"/>, 105 111 <xref linkend="libevent"/>, 106 112 <xref linkend="libexif"/>, 107 <xref linkend="libjpeg"/>,108 <xref linkend="libpng"/>,109 113 <xref linkend="libsecret"/>, 114 <xref linkend="libwebp"/>, 110 115 <xref linkend="pciutils"/>, 111 116 <xref linkend="pulseaudio"/>, … … 117 122 <para role="optional"> 118 123 <xref linkend="ffmpeg"/>, 119 <xref linkend=" git"/> (required to build PNaCL on i686),120 <!-- <ulink url="http://www.gnu.org/software/gperf">gperf</ulink>, Its in BLFS. --> 124 <xref linkend="GConf"/>, 125 <xref linkend="gnome-keyring"/>, 121 126 <xref linkend="icu"/>, 127 <xref linkend="libjpeg"/>, 128 <xref linkend="libpng"/>, 122 129 <xref linkend="libxml2"/>, 123 130 <xref linkend="libvpx"/>, … … 135 142 <title>Installation of Chromium</title> 136 143 137 <para>If you'd like to import binary Pepper plugins from Chrome, you'll 138 need to enable PNaCL. PNaCL is a sandboxed environment for running 139 untrusted code, but the binary toolchain is available only on x86_64. 140 Download the binary PNaCL toolchain with the following commands:</para> 141 142 <screen><userinput>python build/download_nacl_toolchains.py --packages \ 143 nacl_x86_newlib,pnacl_newlib,pnacl_translator \ 144 sync --extract</userinput></screen> 145 146 <!-- <para>If on any other arch than x86_64, you will have to build the PNaCL 147 environment yourself. Please report if this works without issue as this 148 has not been tested. Instuctions were taken directly from 149 <ulink url="https://www.chromium.org/nativeclient/pnacl/building-pnacl-components-for-distribution-packagers"> 150 here</ulink>. Note that Google no longer support i686 builds, so any 151 plugin extracted from the binary installation of Chrome (libwidevinecdm.so) 152 will be necessarely out of date.</para> 153 154 <screen><userinput>toolchain_build/toolchain_build_pnacl.py \ 155 - -verbose - -sync - -clobber - -gcc - -no-use-cached-results \ 156 - -no-use-remote-cache - -disable-git-cache - -build-sbtc 157 build/package_version/package_version.py - -packages pnacl_newlib \ 158 - -tar-dir toolchain_build/out/packages - -dest-dir toolchain/ \ 159 extract - -skip-missing 160 build/package_version/package_version.py - -packages pnacl_translator \ 161 - -tar-dir toolchain_build/out/packages - -dest-dir toolchain/ \ 162 extract - -skip-missing</userinput></screen> --> 163 164 <para>To enable use of 165 <ulink url="http://www.widevine.com/">WideVine</ulink>, needed for Netflix 166 support (see the binary Chrome plugins section below), in addition to 167 enabling PNaCL above, you'll need to define an available product name 168 ("Pinkie Pie" in this case) with the following command:</para> 144 <para>Fix a build issue on Linux-4.5+:</para> 145 146 <screen><userinput>sed 's/#include <sys\/mman\.h>/&\n\n#if defined(MADV_FREE)\n#undef MADV_FREE\n#endif\n/' \ 147 -i third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp</userinput></screen> 148 149 <para>Fix a build issue with GCC-6:</para> 150 151 <screen><userinput>sed "s/^config(\"compiler\") {/&\ncflags_cc = [ \"-fno-delete-null-pointer-checks\" ]/" \ 152 -i build/config/linux/BUILD.gn</userinput></screen> 153 154 <para>If you'd like to enable the use of the 155 <ulink url="http://www.widevine.com/">WideVine</ulink> plugin, needed for 156 Netflix support (see the WideVine section below), you'll need to define an 157 available product name ("Pinkie Pie" in this case) with the following 158 command:</para> 169 159 170 160 <screen><userinput>sed "s/WIDEVINE_CDM_AVAILABLE/&\n\n#define WIDEVINE_CDM_VERSION_STRING \"Pinkie Pie\"/" \ 171 161 -i third_party/widevine/cdm/stub/widevine_cdm_version.h</userinput></screen> 172 162 173 <para>Setup <application>Chromium</application> build options by running 174 the following commands:</para> 163 <para>Remove third-party build files that interfere with system versions:</para> 175 164 176 165 <note> 177 166 <para> 178 167 Chromium uses many external projects, the selections below are not set 179 in stone, however they have been tested thoroughly. With 53.0.2785.116,180 system versions of icu, libxml2, libvpx, and zlib are known to break181 the build at this time.</para>168 in stone, however they have been tested thoroughly. With Chromium 169 &chromium-version;, system versions of icu, libjpeg, libpng, libxml2, 170 libvpx, and zlib are known to break the build at this time. 182 171 <!-- This should be remedied by 55.x as updates are coming upstream --> 183 172 </para> 173 </note> 174 175 <!-- Again, thanks to Arch, this is much better than listing all the needed 176 shipped libs required to use the remove_bundled_files.py script --> 177 <screen><userinput>for LIB in flac harfbuzz-ng libwebp libxslt yasm; do 178 find -type f -path "*third_party/$LIB/*" \ 179 \! -path "*third_party/$LIB/chromium/*" \ 180 \! -path "*third_party/$LIB/google/*" \ 181 \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \ 182 -delete 183 done && 184 185 python build/linux/unbundle/replace_gn_files.py \ 186 --system-libraries flac harfbuzz-ng libwebp libxslt yasm</userinput></screen> 187 188 <para><application>Chromium</application> uses an internal tool, <ulink 189 url="https://chromium.googlesource.com/chromium/src/tools/gn">gn</ulink>, 190 to generate the <application>Ninja</application> build files. Complete 191 configuration of the build using the following commands:</para> 192 193 <note> 194 <para> 184 195 <!-- Taken from Arch Linux - an immensely helpful link - Thanks --> 185 <para>Additionally, the Google API Key and 0Auth tokens below are 186 specific to LFS. If using these instructions for another distro, or if 187 you intend to distribute binary copies of the software using these 188 instructions, please obtain your own keys following the instructions 189 located at 196 The Google API Key and OAuth tokens below are specific to LFS. If using 197 these instructions for another distro, or if you intend to distribute 198 binary copies of the software using these instructions, please obtain 199 your own keys following the instructions located at 190 200 <ulink url="http://www.chromium.org/developers/how-tos/api-keys"/>. 191 201 <!-- BLFS Devs, register an account at Google with your 192 202 @linuxfromscratch.org email address, and I'll make you an administrator 193 for the 'Chromium for LFS' project (where the API and 0Auth keys were194 created for the book).-->203 for the 'Chromium for LFS' project (where the API and OAuth keys were 204 created for use in the book).--> 195 205 </para> 196 206 </note> 197 207 198 <screen><userinput>CHROMIUM_CONFIG=( 199 -Dgoogle_api_key=AIzaSyDxKL42zsPjbke5O8_rPVpVrLrJ8aeE9rQ 200 -Dgoogle_default_client_id=595013732528-llk8trb03f0ldpqq6nprjp1s79596646.apps.googleusercontent.com 201 -Dgoogle_default_client_secret=5ntt6GbbkjnTVXx-MSxbmx5e 202 -Dwerror= 203 -Dclang=0 204 -Dpython_ver=2.7 205 -Dlinux_link_gsettings=1 206 -Dlinux_link_libpci=1 207 -Dlinux_link_pulseaudio=1 208 -Dlinux_strip_binary=1 209 -Dlinux_use_bundled_binutils=0 210 -Dlinux_use_bundled_gold=0 211 -Dlinux_use_gold_flags=0 212 -Dicu_use_data_file_flag=1 213 -Dlogging_like_official_build=1 214 -Dtracing_like_official_build=1 215 -Dfieldtrial_testing_like_official_build=1 216 -Drelease_extra_cflags="$CFLAGS" 217 -Dffmpeg_branding=Chrome 218 -Dproprietary_codecs=1 219 -Duse_gnome_keyring=0 220 -Duse_system_bzip2=1 221 -Duse_system_flac=1 222 -Duse_system_ffmpeg=0 223 -Duse_system_harfbuzz=1 224 -Duse_system_icu=0 225 -Duse_system_libevent=1 226 -Duse_system_libjpeg=1 227 -Duse_system_libpng=1 228 -Duse_system_libvpx=0 229 -Duse_system_libxml=0 230 -Duse_system_snappy=0 231 -Duse_system_xdg_utils=1 232 -Duse_system_yasm=1 233 -Duse_system_zlib=0 234 -Dusb_ids_path=/usr/share/hwdata/usb.ids 235 -Duse_mojo=0 236 -Duse_gconf=1 237 -Duse_sysroot=0 238 -Denable_hangout_services_extension=1 239 -Denable_widevine=1 240 -Ddisable_fatal_linker_warnings=1 241 -Ddisable_glibc=1)</userinput></screen> 242 243 <!-- <para>If you are not on x86_64 (or you elected to rebuild the PNaCL 244 sandbox manually on x86_64), execute the following commands:</para> 245 246 <screen><userinput>CHROMIUM_CONFIG+=( 247 -Dpnacl_newlib_toolchain=$PWD/toolchain/linux_x86/pnacl_newlib 248 -Dpnacl_translator_dir=PWD/toolchain/linux_x86/pnacl_translator 249 )</userinput></screen> --> 250 251 <para>Fix a build issue with GCC-6.</para> 252 253 <screen><userinput>export CFLAGS+=' -fno-delete-null-pointer-checks'</userinput></screen> 254 255 <para>Fix a build issue with cups-2.2.</para> 256 257 <screen><userinput>sed 's/#include <cups\/cups\.h>/&\n#include <cups\/ppd.h>/' \ 258 -i printing/backend/cups_helper.h</userinput></screen> 259 260 <para>Fix a potential build issue on Linux-4.5+:</para> 261 262 <screen><userinput>sed 's/#include \<sys\/mman\.h>/&\n\n#if defined(MADV_FREE)\n#undef MADV_FREE\n#endif\n/' \ 263 -i.bak third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp</userinput></screen> 264 265 <!-- This does not seem to be needed anymore... 266 <para>Replace a missing file to allow the test suite to run:</para> 267 268 <screen><userinput>touch chrome/test/data/webui/i18n_process_css_test.html</userinput></screen> 269 --> 270 271 <para><application>Chromium</application> uses 272 <ulink url="https://gyp.gsrc.io/">GYP</ulink> to generate the 273 <application>Ninja</application> build files. Complete configuration of 274 the build using the following commands:</para> 275 276 <screen><userinput>build/linux/unbundle/replace_gyp_files.py "${CHROMIUM_CONFIG[@]}" && 277 build/gyp_chromium --depth=. "${CHROMIUM_CONFIG[@]}"</userinput></screen> 208 <screen><userinput>GN_CONFIG=("google_api_key=\"AIzaSyDxKL42zsPjbke5O8_rPVpVrLrJ8aeE9rQ\"" 209 "google_default_client_id=\"595013732528-llk8trb03f0ldpqq6nprjp1s79596646.apps.googleusercontent.com\"" 210 "google_default_client_secret=\"5ntt6GbbkjnTVXx-MSxbmx5e\"" 211 'clang_use_chrome_plugins=false' 212 'enable_hangout_services_extension=true' 213 'enable_nacl=false' 214 'enable_nacl_nonsfi=false' 215 'enable_widevine=true' 216 'fatal_linker_warnings=false' 217 'ffmpeg_branding="Chrome"' 218 'fieldtrial_testing_like_official_build=true' 219 'is_debug=false' 220 'is_clang=false' 221 'link_pulseaudio=true' 222 'linux_use_bundled_binutils=false' 223 'proprietary_codecs=true' 224 'remove_webcore_debug_symbols=true' 225 'symbol_level=0' 226 'treat_warnings_as_errors=false' 227 'use_allocator="none"' 228 'use_cups=true' 229 'use_gconf=false' 230 'use_gnome_keyring=false' 231 'use_gold=false' 232 'use_gtk3=false' 233 'use_kerberos=true' 234 'use_pulseaudio=true' 235 'use_sysroot=false')</userinput></screen> 236 237 <para>Build <application>gn</application> and use it to prepare the 238 <application>Ninja</application> build files:</para> 239 240 <screen><userinput>python tools/gn/bootstrap/bootstrap.py --gn-gen-args "${GN_CONFIG[*]}" && 241 out/Release/gn gen out/Release --args="${GN_CONFIG[*]}"</userinput></screen> 278 242 279 243 <para>Build <application>Chromium</application> using the following 280 244 command:</para> 281 245 282 <screen><userinput>ninja -C out/Release chrome chrome_sandbox chromedriver </userinput></screen>246 <screen><userinput>ninja -C out/Release chrome chrome_sandbox chromedriver widevinecdmadapter</userinput></screen> 283 247 284 248 <para>This package was already tested as part of the build.</para> … … 295 259 ln -svf /usr/lib/chromium/chromium /usr/bin && 296 260 ln -svf /usr/lib/chromium/chromedriver /usr/bin/ && 261 262 install -vm755 out/Release/libwidevinecdmadapter.so \ 263 /usr/lib/chromium/ && 297 264 install -vDm644 out/Release/icudtl.dat /usr/lib/chromium && 298 265 install -vDm644 out/Release/gen/content/content_resources.pak \ 266 /usr/lib/chromium/ && 299 267 install -vm644 out/Release/{*.pak,*.bin} \ 300 268 /usr/lib/chromium/ && … … 334 302 EOF</userinput></screen> 335 303 336 <para>If you've enabled PNaCL support, while still the337 <systemitem class="username">root</systemitem> user:</para>338 339 <screen><userinput role="root">install -vm755 out/Release/nacl_helper{,_bootstrap} \340 out/Release/nacl_irt_*.nexe \341 /usr/lib/chromium/</userinput></screen>342 343 <para>If you've enabled <application>WideVine</application> support, while344 still the <systemitem class="username">root</systemitem> user:</para>345 346 <screen><userinput role="root">install -vm755 out/Release/libwidevinecdmadapter.so \347 /usr/lib/chromium/</userinput></screen>348 349 304 <bridgehead renderas="sect3">Chromium Lanucher</bridgehead> 350 305 <para><application>Chromium Launcher</application> is a wrapper for … … 365 320 cd ..</userinput></screen> 366 321 367 <bridgehead renderas="sect3">Extracting binary pluginsfrom Chrome</bridgehead>322 <bridgehead renderas="sect3">Extracting the WideVine plugin from Chrome</bridgehead> 368 323 369 324 <para>Extract the downloaded deb file with the following commands:</para> … … 371 326 <screen><userinput>mkdir temp && 372 327 cd temp && 373 ar -x ../../google-chrome-stable _&chromium-version;*.deb &&328 ar -x ../../google-chrome-stable*.deb && 374 329 tar -xf data.tar.xz</userinput></screen> 375 330 376 <bridgehead renderas="sect4">Pepper Flash</bridgehead> 377 331 <para>As the <systemitem class="username">root</systemitem> user, install 332 the WideVine plugin with the following command:</para> 333 334 <screen role="root"><userinput>install -vm755 opt/google/chrome/libwidevinecdm.so \ 335 /usr/lib/chromium/</userinput></screen> 336 337 338 <bridgehead renderas="sect3">Installing the Pepper Flash plugin:</bridgehead> 339 340 <para>Extract the <application>Flash Player</application> plugin with the 341 following command:</para> 342 343 <screen><userinput>tar -xf ../../flash_player_ppapi_linux.*.tar.gz</userinput></screen> 378 344 <para>As the <systemitem class="username">root</systemitem> user, install 379 345 the Pepper Flash plugin with the following command:</para> 380 346 381 347 <screen role="root"><userinput>install -vdm755 /usr/lib/PepperFlash && 382 install -vm755 opt/google/chrome/PepperFlash/* /usr/lib/PepperFlash</userinput></screen> 383 384 <bridgehead renderas="sect4">WideVine</bridgehead> 385 386 <para>As the <systemitem class="username">root</systemitem> user, install 387 the WideVine plugin with the following command:</para> 388 389 <screen role="root"><userinput>install -vm755 opt/google/chrome/libwidevinecdm.so /usr/lib/chromium/</userinput></screen> 348 install -vm755 libpepflashplayer.so /usr/lib/PepperFlash && 349 install -vm644 manifest.json /usr/lib/PepperFlash</userinput></screen> 390 350 391 351 </sect2> … … 394 354 <title>Command Explanations</title> 395 355 396 <para><command> CHROMIUM_CONFIG=(...)</command>: this array contains356 <para><command>GN_CONFIG=(...)</command>: this array contains 397 357 all of the defines used in the build.</para> 398 399 <para><command>sed 's/#include <cups...</command>: this command fixes400 a build issue with Cups 2.2 and newer where functions are defined in a401 different file (cups/ppd.h).</para>402 358 403 359 <para><command>sed "s/#include <sys...</command>: this command undefines 404 360 MADV_FREE to fix a build issue with Linux-4.5 and newer.</para> 405 361 406 <para><command> build/linux/unbundle/replace_gyp_files.py "${CHROMIUM_CONFIG[@]}"</command>:407 this command replaces defines in the g yp filewith the values contained in408 <envar>${ CHROMIUM_CONFIG[@]}</envar>.</para>409 410 <para><command> build/gyp_chromium --depth=. "${CHROMIUM_CONFIG[@]}"</command>:411 this command runs a Google modified version of412 <application>g yp</application> on the source tree to produce362 <para><command>python tools/gn/bootstrap/bootstrap.py --gn-gen-args "${GN_CONFIG[*]}"</command>: 363 this command replaces defines in the gn files with the values contained in 364 <envar>${GN_CONFIG[@]}</envar>.</para> 365 366 <para><command>out/Release/gn gen out/Release --args="${GN_CONFIG[*]}"</command>: 367 this command runs a Google provided configuration script 368 <application>gn</application> on the source tree to produce 413 369 a <application>Ninja</application> configuration suitable for the build 414 370 machine.</para> 415 371 416 <para><command>ar -x ../../google-chrome-stable _53.0.2785.116*.deb</command>:372 <para><command>ar -x ../../google-chrome-stable*.deb</command>: 417 373 the <command>ar</command> utility is used to extract Debian archives.</para> 418 374
Note:
See TracChangeset
for help on using the changeset viewer.