blob: 8543fe16cde4b0263e3dfcd4e8fb9859e2279c0d [file] [log] [blame] [view]
andybons3322f762015-08-24 21:37:091# Using a chroot
2
Kent Tamura59ffb022018-11-27 05:30:563If you want to run web tests and you're not running Lucid, you'll get errors
nodir06cbaa02015-08-25 17:15:244due to version differences in libfreetype. To work around this, you can use a
5chroot.
andybons3322f762015-08-24 21:37:096
nodir06cbaa02015-08-25 17:15:247## Basic Instructions
andybons3322f762015-08-24 21:37:098
nodir06cbaa02015-08-25 17:15:249* 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`.
Daniel Bratellf73f0df2018-09-24 13:52:4919* Now compile and run DumpRenderTree within chroot.
andybons3322f762015-08-24 21:37:0920
nodir06cbaa02015-08-25 17:15:2421## Tips and Tricks
andybons3322f762015-08-24 21:37:0922
nodir06cbaa02015-08-25 17:15:2423### NFS home directories
andybons3322f762015-08-24 21:37:0924
nodir06cbaa02015-08-25 17:15:2425The chroot install will be installed by default in /home/$USER/chroot. If your
26home directory is inaccessible by root (typically because it is mounted on NFS),
27then move this directory onto your local disk and change the corresponding entry
28in `/etc/schroot/mount-lucid64bit`.
andybons3322f762015-08-24 21:37:0929
Takuto Ikuta7478af722024-05-27 07:23:1930### Reclient builds
andybons3322f762015-08-24 21:37:0931
Takuto Ikuta7478af722024-05-27 07:23:1932If you get mysterious compile errors (glibconfig.h or dbus header error), don't
33use reclient for builds inside the chroot.
andybons3322f762015-08-24 21:37:0934
nodir06cbaa02015-08-25 17:15:2435### Different color prompt
36
37I use the following code in my .zshrc file to change the color of my prompt in
38the chroot.
39
40```shell
andybons3322f762015-08-24 21:37:0941# load colors
42autoload colors zsh/terminfo
43if [[ "$terminfo[colors]" -ge 8 ]]; then
44 colors
45fi
46for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
47 eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}'
48 eval PR_LIGHT_$color='%{$fg[${(L)color}]%}'
49done
50PR_NO_COLOR="%{$terminfo[sgr0]%}"
51
52# set variable identifying the chroot you work in (used in the prompt below)
53if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
54 debian_chroot=$(cat /etc/debian_chroot)
55fi
56
57if [ "xlucid64" = "x$debian_chroot" ]; then
58 PS1="%n@$PR_GREEN% lucid64$PR_NO_COLOR %~ %#"
59else
60 PS1="%n@$PR_RED%m$PR_NO_COLOR %~ %#"
61fi
62```
63
nodir06cbaa02015-08-25 17:15:2464### Running X apps
andybons3322f762015-08-24 21:37:0965
nodir06cbaa02015-08-25 17:15:2466I also have `DISPLAY=:0` in my `$debian_chroot` section so I can run test_shell
Kent Tamura59ffb022018-11-27 05:30:5667or web tests without manually setting my display every time. Your display
nodir06cbaa02015-08-25 17:15:2468number may vary (`echo $DISPLAY` outside the chroot to see what your display
69number is).
andybons3322f762015-08-24 21:37:0970
nodir06cbaa02015-08-25 17:15:2471You can also use `Xvfb` if you only want to
Kent Tamura59ffb022018-11-27 05:30:5672[run tests headless](web_tests_linux.md#Using-an-embedded-X-server).
andybons3322f762015-08-24 21:37:0973
Kent Tamura59ffb022018-11-27 05:30:5674### Having web test results open in a browser
andybons3322f762015-08-24 21:37:0975
Kent Tamura59ffb022018-11-27 05:30:5676After running web tests, you should get a new browser tab or window that
nodir06cbaa02015-08-25 17:15:2477opens results.html. If you get an error "Failed to open
78file:///path/to/results.html, check the
79following conditions.
andybons3322f762015-08-24 21:37:0980
nodir06cbaa02015-08-25 17:15:24811. Make sure `DISPLAY` is set. See the
foolipdf2a8632017-02-15 15:03:1682 [Running X apps](#Running-X-apps) section above.
nodir06cbaa02015-08-25 17:15:24831. Install `xdg-utils`, which includes `xdg-open`, a utility for finding the
84 right application to open a file or URL with.
851. Install [Chrome](https://www.google.com/intl/en/chrome/browser/).