Skip to content

Instantly share code, notes, and snippets.

@BenoitZugmeyer
Last active December 31, 2017 14:08
Show Gist options
  • Save BenoitZugmeyer/3fbb11bc85bfe10cf0364067fc3bef6b to your computer and use it in GitHub Desktop.
Save BenoitZugmeyer/3fbb11bc85bfe10cf0364067fc3bef6b to your computer and use it in GitHub Desktop.
headless_shell compilation on ArchLinux

headless_shell compilation on ArchLinux

https://chromium.googlesource.com/chromium/src/+/master/docs/linux_build_instructions.md https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md#usage-as-a-c_library https://chromium.googlesource.com/chromium/src/+/lkcr/docs/linux_suid_sandbox_development.md About the chrome_sandbox: it's still needed https://bugs.archlinux.org/task/36969 https://www.chromium.org/developers/gn-build-configuration

yaourt -S depot-tools-git
sudo chown $USER:users /opt/depot_tools
export PATH="$PATH":/opt/depot_tools

mkdir chromium
cd chromium
virtualenv2 venv
. venv/bin/activate

fetch --nohooks --no-history chromium

cd src
gclient runhooks

mkdir -p out/Default
echo 'import("//build/args/headless.gn")' >| out/Default/args.gn
echo 'is_debug = false' >> out/Default/args.gn
# faster build:
echo 'symbol_level = 0' >> out/Default/args.gn
echo 'enable_nacl = false' >> out/Default/args.gn
echo 'remove_webcore_debug_symbols = true' >> out/Default/args.gn
gn gen out/Default
ninja -C out/Default headless_shell chrome_sandbox osmesa

sudo chown root:root out/Default/chrome_sandbox
sudo chmod 4755 out/Default/chrome_sandbox
# test:
CHROME_DEVEL_SANDBOX="$PWD/out/Default/chrome_sandbox" out/Default/headless_shell --print-to-pdf 'https://showkeeper.tv'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment