Chromium-64.0.3282.186

Introduction à Chromium

Chormium est un projet de navigateur libre qui a pour but de construire une expérience utilisateur plus sure, plus rapide et plus stable sur le web.

Ce paquet est connu pour se construire correctement sur une plateforme LFS-8.2.

Informations sur le paquet

Téléchargements supplémentaires

Correctif requis :

Binaires de Chrome facultatifs pour extraire le support du greffon (Netflix) WideVine :

Dépendances de Chromium

Requises

alsa-lib-1.1.5, Cups-2.2.6, desktop-file-utils-0.23, dbus-1.12.4, File::BaseDir-0.07, GTK+-3.22.28, hicolor-icon-theme-0.17, MIT Kerberos V5-1.16, Mesa-17.3.4, nodejs-9.5.0, NSS-3.35, Python-2.7.14, usbutils-009 et Système X Window

Recommandées

Facultatives

FFmpeg-3.4.2 (actuellement cassé), GConf-3.2.6, ICU-60.2 (actuellement cassé), gnome-keyring-3.20.1, libevent-2.1.8, libpng-1.6.34 (actuellement cassé), libvpx-1.7.0 (actuellement cassé), libxml2-2.9.7 (actuellement cassé), UPower-0.99.7 (exécution), speech-dispatcher (pour le lecteur d'écran) et snappy

Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/chromium

Installation de Chromium

Activez l'utilisation du greffon WideVine, requis pour le support de Netflix (voyez la section WideVine ci-dessous). Définissez un nom de produit disponible ("Pinkie Pie" dans ce cas) avec la commande suivante :

line='#define WIDEVINE_CDM_VERSION_STRING "Pinkie Pie"' 
sed "/WIDEVINE_CDM_AVAILABLE/a$line" \
    -i third_party/widevine/cdm/stub/widevine_cdm_version.h

Éventuellement ignorez plusieurs (2000+) avertissements invalides :

sed '/static_assert/s:^://:' \
    -i third_party/WebKit/Source/platform/wtf/text/TextCodec.h

Corrigez un problème de construction avec la version actuelle de GCC :

patch -Np1 -i ../chromium-64.0.3282.186-constexpr-1.patch

Supprimez les fichiers de construction tiers qui interfèrent avec les versions du système :

[Note]

Note

Chromium utilise plusieurs projets externes, les sélections ci-dessous ne sont pas gravées dans le marbre, cependant elles ont été testées soigneusement. Avec Chromium 64.0.3282.186, les versions systèmes de libvpx, libxml2 et zlib sont connues pour casser actuellement la construction.









for LIB in flac freetype harfbuzz-ng libjpeg \
           libjpeg_turbo libwebp libxslt yasm; do
    find -type f -path "*third_party/$LIB/*"      \
        \! -path "*third_party/$LIB/chromium/*"   \
        \! -path "*third_party/$LIB/google/*"     \
        \! -path "*base/third_party/icu/*"        \
        \! -path './third_party/yasm/run_yasm.py' \
        \! -regex '.*\.\(gn\|gni\|isolate\|py\)'  \
        \! -path './third_party/freetype/src/src/psnames/pstables.h' \
        -delete
done &&

python build/linux/unbundle/replace_gn_files.py     \
    --system-libraries flac libjpeg libxml libevent \
                       libwebp libxslt opus yasm     &&

python third_party/libaddressinput/chromium/tools/update-strings.py

Chromium utilise un outil interne, gn, pour générer les fichiers de construction Ninja. La configuration complète de la construction se fait avec les commandes suivantes :

[Note]

Note

Les clefs API de Google et les jetons OAuth ci-dessous sont spécifiques à LFS. Si vous utilisez ces instructions pour une autre distribution, ou si vous souhaitez distribuer des copies binaires de ce logiciel en utilisant ces instructions, merci d'obtenir vos propres clefs en suivant les instructions disponibles sur http://www.chromium.org/developers/how-tos/api-keys.

GN_CONFIG=('google_api_key="AIzaSyDxKL42zsPjbke5O8_rPVpVrLrJ8aeE9rQ"'
'google_default_client_id="595013732528-llk8trb03f0ldpqq6nprjp1s79596646.apps.googleusercontent.com"'
'google_default_client_secret="5ntt6GbbkjnTVXx-MSxbmx5e"'
'clang_use_chrome_plugins=false'
'enable_hangout_services_extension=true'
'enable_nacl=false'
'enable_nacl_nonsfi=false'
'enable_swiftshader=false'
'enable_widevine=true'
'fatal_linker_warnings=false'
'ffmpeg_branding="Chrome"'
'fieldtrial_testing_like_official_build=true'
'is_debug=false'
'is_clang=false'
'link_pulseaudio=true'
'linux_use_bundled_binutils=false'
'proprietary_codecs=true'
'remove_webcore_debug_symbols=true'
'symbol_level=0'
'treat_warnings_as_errors=false'
'use_allocator="none"'
'use_cups=true'
'use_gconf=false'
'use_gnome_keyring=false'
'use_gold=false'
'use_gtk3=true'
'use_kerberos=true'
'use_pulseaudio=true'
'use_sysroot=false'
'use_system_freetype=true'
'use_system_harfbuzz=true')

Construisez gn et utilisez-le pour préparer les fichiers de construction Ninja :

python tools/gn/bootstrap/bootstrap.py --gn-gen-args "${GN_CONFIG[*]}" &&
out/Release/gn gen out/Release --args="${GN_CONFIG[*]}"
[Avertissement]

Avertissement

Ninja, par défaut, initialise le nombre de travaux au nombre de threads disponibles. Si la mémoire de votre machine est réduite, comparée au nombre de threads, vous devriez réduire le nombre de travaux en passant le paramètre -j# à la commande ninja ci-dessous. Prévoyez environ 1.25 Go par thread pendant l'édition des liens de WebKit pour éviter les erreurs de mémoire.

Construisez Chromium en utilisant les commandes suivantes :

mkdir -p third_party/node/linux/node-linux-x64/bin &&
ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/ &&
ninja -C out/Release chrome chrome_sandbox chromedriver widevinecdmadapter

Ce paquet a déjà été testé pendant la construction.

Maintenant en tant qu'utilisateur root, installez le paquet :

install -vDm755  out/Release/chrome \
                 /usr/lib/chromium/chromium                   &&

install -vDm4755 out/Release/chrome_sandbox \
                 /usr/lib/chromium/chrome-sandbox             &&

install -vDm755  out/Release/chromedriver \
                 /usr/lib/chromium/chromedriver               &&

ln -svf /usr/lib/chromium/chromium     /usr/bin               &&
ln -svf /usr/lib/chromium/chromedriver /usr/bin               &&

install -vDm644 out/Release/gen/content/content_resources.pak \
                /usr/lib/chromium/                            &&

install -vDm644 out/Release/icudtl.dat \
                /usr/lib/chromium/icudtl.dat                  &&

install -vDm644 out/Release/{*.pak,*.bin} \
                /usr/lib/chromium/                            &&

sed -i \
    -e "s/@@MENUNAME@@/Chromium/g" \
    -e "s/@@PACKAGE@@/chromium/g" \
    -e "s/@@USR_BIN_SYMLINK_NAME@@/chromium/g" \
    chrome/installer/linux/common/desktop.template \
    chrome/app/resources/manpage.1.in                         &&

install -vDm644 chrome/installer/linux/common/desktop.template \
                /usr/share/applications/chromium.desktop      &&

install -vDm644 chrome/app/resources/manpage.1.in \
                /usr/share/man/man1/chromium.1                &&

cp -av out/Release/locales /usr/lib/chromium/                 &&
chown -Rv root:root /usr/lib/chromium/locales                 &&

for size in 16 32; do
    install -vDm644 \
        "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \
        "/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
done &&

for size in 22 24 48 64 128 256; do
    install -vDm644 "chrome/app/theme/chromium/product_logo_$size.png" \
        "/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
done
[Note]

Note

Si vous mettez à jour depuis une construction précédente de chromium qui utilisait gtk+-2.x, vous pourriez devoir supprimer le répertoire ~/.config/chromium.

Extraction du greffon WideVine de Chrome

Extrayez le fichier deb téléchargé avec les commandes suivantes :

mkdir temp                                         &&
cd temp                                            &&
case $(uname -m) in
    x86_64) ar -x ../../google-chrome-stable_64.0.3282.186-1_amd64.deb
    ;;
    i?86)   ar -x ../../google-chrome-stable_48.0.2564.116-1_i386.deb
    ;;
esac

En tant qu'utilisateur root, installez le greffon WideVine avec les commandes suivantes :

tar -xf data.tar.xz                                                        &&
install -vm755 ../out/Release/libwidevinecdmadapter.so /usr/lib/chromium/  &&
install -vm755 opt/google/chrome/libwidevinecdm.so  /usr/lib/chromium/

Explication des commandes

GN_CONFIG=(...) : ce tableau contient toutes les définitions utilisées dans la construction.

python tools/gn/bootstrap/bootstrap.py --gn-gen-args "${GN_CONFIG[*]}" : cette commande remplace les définitions dans les fichiers gn avec les valeurs contenues dans ${GN_CONFIG[@]}.

out/Release/gn gen out/Release --args="${GN_CONFIG[*]}" : cette commande lance un script de configuration fournit par Google, gn, dans l'arborescence des sources pour produire une configuration Ninja appropriée pour la machine qui construit.

mkdir...ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/ : Ces commandes remplacent le Node.js local (qui n'est plus disponible) avec le Node.js installé sur le système.

ar -x ../../google-chrome-stable*.deb : l'utilitaire ar est utilisé pour extraire les archives Debian.

Contents

Programmes installés: /usr/lib/chromium/chromium, /usr/lib/chromium/chromedriver, et /usr/lib/chromium/chrome-sandbox
Bibliothèques installées: none
Répertoires installés: /usr/lib/chromium

Descriptions courtes

/usr/lib/chromium/chromium

est l'exécutable chromium principal.

/usr/lib/chromium/chromedriver

est un WebDriver pour chromium.

/usr/lib/chromium/chrome-sandbox

crée un environnement de bac à sable pour lancer du code auquel on ne fait pas confiance (les greffons).

Last updated on 2018-03-03 02:58:04 +0100