Chromium-56.0.2924.87

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.0.

Informations sur le paquet

Téléchargements supplémentaires

[Note]

Note

Téléchargez ce fichier via wget ainsi :

wget https://github.com/foutrelis/chromium-launcher/archive/v3.tar.gz \
     -O chromium-launcher-3.tar.gz

Dépendances de Chromium

Requises

alsa-lib-1.1.3, Cups-2.2.2, desktop-file-utils-0.23, dbus-1.10.14, File::BaseDir-0.07, GTK+-2.24.31, hicolor-icon-theme-0.15, MIT Kerberos V5-1.15, Mesa-13.0.4, Ninja-1.7.2, NSS-3.29, Python-2.7.13, usbutils-008 et Système X Window

Recommandées

Facultatives

FFmpeg-3.2.4, GConf-3.2.6, gnome-keyring-3.20.0, ICU-58.2, libjpeg-turbo-1.5.1, libpng-1.6.28, libxml2-2.9.4, libvpx-1.6.1, speech-dispatcher (pour le lecteur d'écran) et snappy

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

Installation de Chromium

Corrigez un problème de construction avec Linux-4.5+ :

sed 's/#include <sys\/mman\.h>/&\n\n#if defined(MADV_FREE)\n#undef MADV_FREE\n#endif\n/' \
    -i third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp

Corrigez un problème de construction avec GCC-6 :

sed "s/^config(\"compiler\") {/&\ncflags_cc = [ \"-fno-delete-null-pointer-checks\" ]/" \
    -i build/config/linux/BUILD.gn

Si vous préférez activer l'utilisation du greffon WideVine, requis pour le support de Netflix (voyez la section WideVine ci-dessous), vous devrez définir un nom de produit disponible ("Pinkie Pie" dans ce cas) avec la commande suivante :

sed "s/WIDEVINE_CDM_AVAILABLE/&\n\n#define WIDEVINE_CDM_VERSION_STRING \"Pinkie Pie\"/" \
    -i third_party/widevine/cdm/stub/widevine_cdm_version.h

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 56.0.2924.87, les versions systèmes de icu, libjpeg, libpng, libxml2, libvpx et zlib sont connues pour casser la construction actuellement.

for LIB in flac harfbuzz-ng libwebp libxslt yasm; do
    find -type f -path "*third_party/$LIB/*" \
        \! -path "*third_party/$LIB/chromium/*" \
        \! -path "*third_party/$LIB/google/*" \
        \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
        -delete
done &&

python build/linux/unbundle/replace_gn_files.py \
    --system-libraries flac harfbuzz-ng libwebp libxslt yasm

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_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=false'
'use_kerberos=true'
'use_pulseaudio=true'
'use_sysroot=false')

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[*]}"

Construisez Chromium en utilisant la commande suivante :

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 -vm755 out/Release/libwidevinecdmadapter.so \
               /usr/lib/chromium/                             &&
install -vDm644 out/Release/icudtl.dat /usr/lib/chromium      &&
install -vDm644 out/Release/gen/content/content_resources.pak \
                /usr/lib/chromium/                            &&
install -vm644 out/Release/{*.pak,*.bin} \
               /usr/lib/chromium/                             &&

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

install -vDm644 out/Release/chrome.1 \
                /usr/share/man/man1/chromium.1

Toujours en root, installez les icônes et le fichier .desktop :

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 &&

cat > /usr/share/applications/chromium.desktop << "EOF"
[Desktop Entry]
Encoding=UTF-8
Name=Chromium Web Browser
Comment=Access the Internet
GenericName=Web Browser
Exec=chromium %u
Terminal=false
Type=Application
Icon=chromium
Categories=GTK;Network;WebBrowser;
MimeType=application/xhtml+xml;text/xml;application/xhtml+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
EOF

Chromium Launcher

Chromium Launcher est une enveloppe pour chromium qui permet l'utilisation du greffon Pepper Flash. Si vous souhaitez utiliser le greffon Pepper Flash, construisez Chromium Launcher en lançant les commandes suivantes :

tar -xf ../chromium-launcher-3.tar.gz &&
cd chromium-launcher-3                &&
make PREFIX=/usr

Installez Chromium Launcher avec les commandes suivantes (en tant qu'utilisateur root) :

rm -f /usr/bin/chromium        &&
make PREFIX=/usr install-strip &&
cd ..

Extraction du greffon WideVine de Chrome

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

mkdir temp                                         &&
cd temp                                            &&
ar -x ../../google-chrome-stable_56.0.2924.87*.deb &&
tar -xf data.tar.xz

En tant qu'utilisateur root, installez le greffon WideVine avec la commande suivante :

install -vm755 opt/google/chrome/libwidevinecdm.so \
    /usr/lib/chromium/

Installez le greffon Pepper Flash :

Extrayez le greffon Flash Player avec la commande suivante :

tar -xf ../../flash_player_ppapi_linux.*.tar.gz

En tant qu'utilisateur root, installez le greffon Pepper Flash avec la commande suivante :

install -vdm755 /usr/lib/PepperFlash                     &&
install -vm755 libpepflashplayer.so /usr/lib/PepperFlash &&
install -vm644 manifest.json /usr/lib/PepperFlash

Explication des commandes

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

sed "s/#include <sys... : cette commande rend indéfinie MADV_FREE pour corriger un problème de construction avec Linux-4.5 et supérieur.

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.

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

Contents

Programmes installés: /usr/bin/chromium, /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, /usr/lib/chromium-launcher et (potentiellement) /usr/lib/PepperFlash

Descriptions courtes

/usr/bin/chromium

est une enveloppe pour le binaire principal de chromium (dans /usr/lib/chromium) qui permet l'utilisation du greffon Pepper Flash.

/usr/lib/chromium/chromium

est l'exécutable chromium principal.

/usr/bin/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 2017-02-22 22:28:29 +0100