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
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
FLAC-1.3.2, git-2.11.1, libevent-2.1.8, libexif-0.6.21, libsecret-0.18.5, libwebp-0.6.0,
pciutils-3.5.2, PulseAudio-10.0, xdg-utils-1.1.1 et
yasm-1.3.0
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
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
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