Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / docs / using_a_linux_chroot.md
blob96fadfd36543adbe1ea6a8fbc244826fa028c363
1 # Using a chroot
3 If you want to run layout tests and you're not running Lucid, you'll get errors
4 due to version differences in libfreetype. To work around this, you can use a
5 chroot.
7 ## Basic Instructions
9 *   Run `build/install-chroot.sh`. On the prompts, choose to install a 64-bit
10     Lucid chroot and activate all your secondary mount points.
11 *   sudo edit `/etc/schroot/mount-lucid64bit` and uncomment `/run` and
12     `/run/shm`.  Verify that your mount points are correct and uncommented: for
13     example, if you have a second hard drive at `/src`, you should have an entry
14     like `/src /src none rw,bind 0 0`.
15 *   Enter your chroot as root with `sudo schroot -c lucid64`.
16     Run `build /install-build-deps.sh`, then exit the rooted chroot.
17 *   Delete your out/ directory if you had a previous non-chrooted build.
18 *   To enter your chroot as normal user, run `schroot -c lucid64`.
19 *   Now run `build/gyp_chromium`, compile and run DumpRenderTree within chroot.
21 ## Tips and Tricks
23 ### NFS home directories
25 The chroot install will be installed by default in /home/$USER/chroot. If your
26 home directory is inaccessible by root (typically because it is mounted on NFS),
27 then move this directory onto your local disk and change the corresponding entry
28 in `/etc/schroot/mount-lucid64bit`.
30 ### Goma builds
32 If you get mysterious compile errors (glibconfig.h or dbus header error), make
33 sure that goma is running in the chroot, or don't use goma for builds inside the
34 chroot.
36 ### Different color prompt
38 I use the following code in my .zshrc file to change the color of my prompt in
39 the chroot.
41 ```shell
42 # load colors
43 autoload colors zsh/terminfo
44 if [[ "$terminfo[colors]" -ge 8 ]]; then
45   colors
47 for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
48   eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}'
49   eval PR_LIGHT_$color='%{$fg[${(L)color}]%}'
50 done
51 PR_NO_COLOR="%{$terminfo[sgr0]%}"
53 # set variable identifying the chroot you work in (used in the prompt below)
54 if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
55   debian_chroot=$(cat /etc/debian_chroot)
58 if [ "xlucid64" = "x$debian_chroot" ]; then
59     PS1="%n@$PR_GREEN% lucid64$PR_NO_COLOR %~ %#"
60 else
61     PS1="%n@$PR_RED%m$PR_NO_COLOR %~ %#"
63 ```
65 ### Running X apps
67 I also have `DISPLAY=:0` in my `$debian_chroot` section so I can run test_shell
68 or layout tests without manually setting my display every time.  Your display
69 number may vary (`echo $DISPLAY` outside the chroot to see what your display
70 number is).
72 You can also use `Xvfb` if you only want to
73 [run tests headless](layout_tests_linux.md#Using-an-embedded-X-server).
75 ### Having layout test results open in a browser
77 After running layout tests, you should get a new browser tab or window that
78 opens results.html.  If you get an error "Failed to open
79 file:///path/to/results.html, check the
80 following conditions.
82 1.  Make sure `DISPLAY` is set. See the
83     [Running X apps](#Running_X_apps) section above.
84 1.  Install `xdg-utils`, which includes `xdg-open`, a utility for finding the
85     right application to open a file or URL with.
86 1.  Install [Chrome](https://www.google.com/intl/en/chrome/browser/).