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
Add a script to import all binary packages for a given source package
from ports.ubuntu.com, convert and install them using 'chromiumos-build
--convert', and write out a fake .changes file so that chromiumos-build
doesn't try to re-import them. Use it like this:
./import_native_build.sh anthy libchewing
For the moment, there are a number of source packages that won't
cross-build successfully but that can be imported from native Ubuntu
builds, and this wraps up the process of doing so.
Review URL: http://codereview.chromium.org/543059
This makes it possible to attempt a build using chromiumos-build by
running './build_platform_packages.sh --new-build', with an -a option to
select the architecture (e.g. -a armel).
Right now, this uses --apt-source to build all build-dependencies as
well, since that usually ends up being what you want when
cross-compiling. I'd appreciate feedback from buildbot-oriented folks
on whether this is an acceptable load in general. For the meantime,
this is mainly for the convenience of people working on the cross-build
project.
Review URL: http://codereview.chromium.org/546042
The package_script_whitelist.sh is intendended to make it easy
to make passes through the set of packages that have preinst
or postinst maintainer scripts and add them to the whitelist.
The audit mode will use the PAGER to show non-whitelisted preinst
and postinst scripts and ask you if you want to whitelist them,
create a template alternative maintainer script, skip, etc.
There are also commands to add individual scripts or check to
see if they are in the whitelist.
Review URL: http://codereview.chromium.org/543027
This changes install_packages to always have apt use our dpkg
wrapper when building an image. The dpkg_no_scripts.sh has been
modified to check if a package's maintainer scripts have been
whitelisted. If so, it will install without maintainer scripts.
If any relevant maintainer script has not been whitelisted it
will fall back to standard dpkg which will process the
maintainer scripts.
This will allow us to transition to installing packages without
maintainer scripts in batches rather than all at once. Once
everything is switched over we will have dpkg_no_scripts.sh
throw an error if it encounters a package with maintainer
scripts that have not been whitelisted.
Move postinst stuff from install_packages.sh to actual postinst
scripts.
Review URL: http://codereview.chromium.org/549017
This change switches to mastering an image without using debootstrap.
We turn on the previously experimental bits that install a small
set of packages manually before handing things over to apt. In both
cases we use apt to download the packages so that it can populate
it's local package cache.
With this change we will no longer depend on the local_repo when
mastering an image. Developers will not have to rebuild their
local repo when repo_list_image.txt changes. Instead we will use
and lazy-fill the local apt-cache. The first time you build_image.sh
it will be slow since it needs to download the packages. Subsequent
runs should be as before since it will use the local cache. If
packages are added they should be lazily fetched in the next image
build.
Until we have a fully populated external mirror, developers will
still have to add packages to repo_list_image.txt. Also, until
make_chroot is switched over to use the external repo then
developers will have to redo their local repo when the
repo_list_dev.txt changes.
Review URL: http://codereview.chromium.org/521073
This is a script to run client or server autotests on a live Chromium OS instance, collect results, and optionally upload the to an autotest database. This includes functional and performance tests. We assume the remote instance is running an appropriate image installed (one created using mod_image_for_test.sh and possibly installed using image_to_live.sh).
An example run might be
run_remote_tests.sh --remote=192.168.1.5 BootPerfServer -o results.txt
This example will run src/platform/testing/server_tests/system_BootPerfServer
5 times on instance at 192.168.1.5 and collect results in result.txt.
Also refactors and improves readability in image_to_live.sh.
Review URL: http://codereview.chromium.org/519041
This change also switches us to pre-populate the apt cache with
the set of packages needed to run apt and install them from there
rather than referring to the soon-to-be-defunct local repo.
Review URL: http://codereview.chromium.org/523146
We use apt to install the majority of our packages. In order to
get apt running where it can install packages we first need to
force install a small set of packages that have cyclic dependencies.
This CL reduces the required set quite a bit and fixes a bug where
we were installing a few wrong packages than what we were attempting
to install due to a bad glob.
Review URL: http://codereview.chromium.org/519075
Set LANG=C also when providing a command to enter_chroot.sh. Should make
buildbot logs quite a bit shorter.
Review URL: http://codereview.chromium.org/521053
A few weeks ago, dbus-uuidgen command was removed from the platform/init/dbus.conf script, but after the "upgrade-everything-to-Karmic" change, I think generating the uuid has become mandatorty again.
Without the uuid file (/var/lib/dbus/machine-id), ibus-daemon which uses D-Bus as its IPC channel does not work at all. I'm not sure but possibly the same is true for dbus-daemon?
chronos@localhost:/home/chronos$ ibus-daemon
process 2254: D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open "/var/lib/dbus/machine-id": No such file or directory
See the manual page for dbus-uuidgen to correct this issue.
BUG=1127
TEST=On xterm, run /usr/bin/ibus-setup and verify the command does not show an error like "ibus-daemon is not working."
Review URL: http://codereview.chromium.org/508018
running maintainer scripts.
This is a work-in-progress. If you build_image like:
EXPERIMENTAL_NO_DEBOOTSTRAP=1 ./build_image.sh
it will skip debootstrap and install the base required packages
without running maintainer scripts. This is about 68 packages that
have lots of interleaved dependencies so it is nasty to trim down.
If you build like:
EXPERIMENTAL_NO_MAINTAINER_SCRIPTS=1 ./build_image.sh
it will install all packages skipping maintainer scripts.
Using these we can try and get things in a state where we can
create an image built of cross-compiled packages.
This is obviously not finished but in this case I prefer to commit
early so others can poke at it.
Review URL: http://codereview.chromium.org/527015
src/third_party/chrome/ needs dh-chromeos. Fortunately at least
dh-chromeos doesn't need anything else from our tree, so let's build and
install it really early.
Review URL: http://codereview.chromium.org/518051
Add make_pkg.sh for src/third_party/chrome/ (a.k.a. libchrome-dev) and
src/common/ (a.k.a. libchromeos-dev) and (ab)use it to install those
packages once built.
Installing the packages from make_pkg.sh isn't very clean. However, this
gives us a migration path to future use of chromeos-build, which will
need these headers and libraries to be built as packages in order to
support cross-building cleanly.
Review URL: http://codereview.chromium.org/523109