Change enter_chroot.sh to keep a list of open PIDs (enter_chroot.sh
instances) in chroot/var/lock, and use flock on that file to support
atomic operations to it.
When entering chroot, append the PID to the lock file.
When exiting chroot, clear out current PID and any dead
PIDs/duplicates. If the lock file is empty, only then clean up the
mounts.
Note that I have a little bit of code duplication: the number 200,
which is a manually numbered fd in bash, seemed impossible to place
inside a variable. If you know how to do it, please let me know.
Review URL: http://codereview.chromium.org/584010
this is necessary for portage-based builds which change the
chroot. You must pass --chroot to the run_remote_tests in this
case.
Review URL: http://codereview.chromium.org/588010
Don't punish the good people trying to write python-only autotests by
requiring them to sit through a long build_autotest run to test
every change. run_remote_tests and build_autotest both update
the chroot copy now.
Review URL: http://codereview.chromium.org/578027
so that tests have access to the source/build trees during setup.
For example, gl_APICheck requires access to OpenGL headers.
Review URL: http://codereview.chromium.org/555111
Run a basic check on a buildbot grabbed image to make sure it has a
kernel installed in it.
Better failure recovery.
Review URL: http://codereview.chromium.org/553063
chromiumos-build gets less confused if we refer to the package name
e4fsprogs-git rather than the directory name e2fsprogs (which is also a
different source package downloadable from Ubuntu).
Don't bother trying to build ibus-anthy, ibus-chewing, or ibus-hangul on
anything other than i386 for now. They aren't easily cross-buildable
and we can live without input methods.
Review URL: http://codereview.chromium.org/554063
chromiumos-build's destination directory shouldn't be a build directory;
as advised in chromiumos-build(1), this can cause it to think that
failed builds were actually successful. Build downloaded source
packages in src/build/ARCHITECTURE/external/ instead.
While we're here, rename the configuration file to a more visible name.
Review URL: http://codereview.chromium.org/548137
This is causing some kernel version package issues. Revert until I can
figure out the right fix.
This reverts commit 6eda4bc874427041c5a2eab794eb72284e9dcee7.
This is the first step towards abandonding make-kpkg. The next
step is to remove the kernel config files under
$(KERNEL_DIR)/files/Config, thereby requiring the use
of config files in $(KERNEL_DIR)/files/debian.chrome/config
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
Review URL: http://codereview.chromium.org/549135
Add an --arch option to build_image.sh, passed to install_packages.sh.
Use it to set APT::Architecture.
Add --mirror2/--suite2 options to build_image.sh, and --server2/--suite2
options to install_packages.sh (differing option names to match options
that were there already). This allows some of the packages to be pulled
from ports.ubuntu.com rather than from local_packages, like this:
./build_image.sh --arch armel --mirror2 http://ports.ubuntu.com/ubuntu-ports --suite2 karmic
Copy only .debs from local_packages, not whatever other junk might be
lying around there.
Use copy: rather than file: for local_packages, so that the files will
be copied into the apt cache directory for the benefit of
dpkg_no_scripts.sh.
Review URL: http://codereview.chromium.org/554031
(This was orignally reveiwed in the wrong place:
http://codereview.appspot.com/193057/show)
Many local mirrors (such as mine) only contain mirrors
of the binary packages, sufficient to create a debootstrap
chroot. Source packages, the sum of which, can be quite large and
are not typically mirrored locally. This patch allows one
to create a chroot with overrides to the desired mirrors, e.g.,
./make_chroot.sh --replace --mirror http://mirror.rtg.net/ubuntu
In this example all of the binaries come from my local mirror, all source
packages come from $DEFAULT_DEV_MIRROR.
./make_chroot.sh --replace --mirror_src http://archive.ubuntu.com/ubuntu
Here the source packages are pulled from the Ubuntu archive whereas the
binaries come from $DEFAULT_DEV_MIRROR.
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
Review URL: http://codereview.chromium.org/545169
Here are some example ways to use the script (from comments)
sync_build_test.sh
syncs, recreates local repo and chroot, builds, and masters an
image in the checkout based on your current directory, or if you
are not in a checkout, based on the top level directory the script
is run from.
sync_build_test.sh --image_to_usb=/dev/sdb -i
same as above but then images USB device /dev/sdb with the image.
Also prompt the user in advance of the steps we'll take to make
sure they agrees.
sync_build_test.sh --top=~/foo --nosync --remote 192.168.1.2
builds and masters an image in ~/foo, and live updates the machine
at 192.168.1.2 with that image.
sync_build_test.sh --top=~/newdir --test "Pam BootPerfServer" \
--remote=192.168.1.2
creates a new checkout in ~/newdir, builds and masters an image
which is live updated to 192.168.1.2 and then runs
two tests (Pam and BootPerfServer) against that machine.
sync_build_test.sh --grab_buildbot=LATEST --test Pam --remote=192.168.1.2
grabs the latest build from the buildbot, properly modifies it,
reimages 192.168.1.2, and runs the given test on it.
Review URL: http://codereview.chromium.org/548094
Fix chrome packaging (wrong symlink for plugin directory)
Pass architecture (ARCH) down from install_packages.sh
Remove tar from prod package list
Review URL: http://codereview.chromium.org/555027
after this cl, pam_offline will be built by default, included in the image,
and configured as the pam authority for xscreensaver.
Review URL: http://codereview.chromium.org/554021
Use our karmic mirror for creating the build chroot, removing the need for
make_local_repo.sh and the repo_list_*.txt files. If a local repo exists
when build_chroot.sh is run it will be used, but it's no longer necessary.
This change does not remove make_local_repo.sh or the repo_list_*.txt files.
Review URL: http://codereview.chromium.org/548083
This defaults to TRUE when building an image.
This CL moves some developer-only packages from package-list-prod.txt to
package-list-debug.txt and adds support for a comma-separated list of
package lists to build_image.sh.
Actually, I'd like to rename package-list-dev.txt to package-list-build.txt
and package-list-debug.txt to package-list-dev.txt but maybe in another CL.
Also there is a patch from lool that we should grab some stuff from that
can filter the package lists by build architecture. Eventually we will
likely add target-specific package lists as well.
With this change, build_image.sh --nowith_dev_pkgs will build an image
that does not contain niceties such as xterm.
Review URL: http://codereview.chromium.org/549107
Rather than pull the initial set from /lib/udev/devices, we
move them to /lib/chromiumos/devices.
We also whitelist the udev maintainer script since we don't need
to have it create devices in /lib/udev/devices and we also do not
need it to create the persistent rules files.
Review URL: http://codereview.chromium.org/552056
image_to_live.sh - fix problem where errorvalue is non-zero even when
reimage was successful.
run_remote_tests.sh - add ability to stow build description in the
autotest database so we can track the exact build for which
tests succeed/fail.
Review URL: http://codereview.chromium.org/547018
The idea here is to remove flag processing inside this wrapper script and pass on all flags into autoserv.
I've tested with server/site_tests/system_BootPerfServer and a client side tests.
Both work fine.
Review URL: http://codereview.chromium.org/536081
apt-get can't verify signatures without GPG, which
leads to devserver scripts breaking. xwininfo and
xprop are useful for debugging X issues.
Review URL: http://codereview.chromium.org/542079