Added the flags required for mounted images to the postinst call.
Scripts no longer need to fixup postinst hence that code is removed.
Review URL: http://codereview.chromium.org/3027012
Instead of loosely wrapping emerge, parallel_emerge now integrates tightly with emerge. This boosts performance while allowing us to map dependencies more accurately.
With this change, build_image --fast can clock under 4 minutes, and build_packages --fast now clocks as low as 4:30. With the --rebuild option, build_packages takes 5:30, but it has the big benefit of producing actually-correct results.
Note that this change also depends on us updating the various build scripts to prefix
calls to parallel_emerge with sudo -E.
TEST=Ran several parallel_emerge test cases, build_packages --fast, and
build_image --fast
BUG=none
Review URL: http://codereview.chromium.org/2891013
Added --fast option. Updated the one place that wasn't using sudo when calling
emerge to use sudo like the others. This is safe because we're merging with
--usepkgonly.
TEST=Ran mod_image_for_test.sh with and without the --fast options
BUG=none
Review URL: http://codereview.chromium.org/2834055
The "[[ ... ]]" syntax is bash-specific. Reflect this by changing shbang to "#!/bin/bash". Many of our dev systems symlink "/bin/sh" to "/bin/bash" which has masked this problem for a long time, but "real" sh fails on "[[".
BUG=none
TEST=rerun
Review URL: http://codereview.chromium.org/2825050
Added --chrome_root option to sync_build_test.sh which, if specified, builds Chromium browser from source in the directory given.
Review URL: http://codereview.chromium.org/2824054
TEST=Tested with following workflow:
cros_mark_as_stable -p 'crash-reporter' -i 'boogabooga' commit
cros_mark_as_stable push
cros_mark_as_stable clean
Also passed in some real options for push_options in a branch that had nothing in it.
Review URL: http://codereview.chromium.org/3017002
Instead of playing mount and loop device games, this change adds support for
update_bootloaders.sh to directly update the EFI system partition living in the
image if a file, offset, and size is supplied.
TEST=build_image for x86-generic; booted resulting image
BUG=broken build
Change-Id: I3d891fd965df6fb4abfc63d660e314c497a4184d
Review URL: http://codereview.chromium.org/3006006
Will Drewry is working on the proper fix, but this unblocks people who
build images that boot w/ syslinux.
Review URL: http://codereview.chromium.org/3009003
When we run custom actions in parallel_emerge, we should pass the list of
packages on to emerge. Otherwise emerge won't know what packages to unmerge.
Besides the above, also fix an issue where --workon doesn't override
--getbinpkgonly or --usepkgonly.
TEST=Ran parallel_emerge --unmerge dhcpd and parallel_emerge --usepkgonly --board=x86-generic
--workon=power_manager power_manager
BUG=none
Review URL: http://codereview.chromium.org/2927013
* Bend iterate to accept either list of packages or --all, following the new
semantics
This is a re-upload of the original CL which seems to be broken beyond repair
by the git malfunctions yesterday
Review URL: http://codereview.chromium.org/3040001
This is a first pass. I'll review this code myself and do more
testing, but I wanted to get folks a look at it to make sure I
was going in the right direction.
BUG=none
TEST=ran using both cell and hostname scenarios
Review URL: http://codereview.chromium.org/3007002
* Replaced listall with list --all
* stop/start without arguments will now fail
* stop/start with --all will do just the expected thing
* Rewritten package list decision logic
TBR: msb - already got LGTM, then fixed a comment i noticed
Review URL: http://codereview.chromium.org/2963011
This fix separates out any additional command line arguments given to
the enter_chroot.sh script when passed to the interior chroot. This
allows one to pass environment variable settings to the interior
chroot shell such as:
./enter_chroot.sh -- CHROME_ORIGIN=LOCAL_SOURCE emerge-x86-generic ...
Before this fix any of these variable settings will be sucked up by
the shell launching the chroot, not the interior shell.
BUG=chromium-os:2457
TEST=ran test cases detailed in bug report
Review URL: http://codereview.chromium.org/2855034
Override locally warn/error functions to not interfere with stdout of canonicalize_name.
Future FIXME in common.sh.
Review URL: http://codereview.chromium.org/2985003
* Warn if user stops working on a package he wasn't working on
* Warn if user starts to work on a package he already is working on
Review URL: http://codereview.chromium.org/2978002
Clean up command-line argument used to disable re-download of image bits down to the upgrade server. This is now handed via a much more concise "--no_copy_archive" argument. and user output output "fast restart" messages
Output information on how to run the "image_to_live.sh" client unconditionally (even if a client isn't being launched by this instance).
BUG=none
TEST=Reran commands, observed output
Review URL: http://codereview.chromium.org/2919009
cros_copy_upgrade_server had a bug where it would always start servers
on port 8081 regrdless of whether that port was free. This was a bug
in the "get next free port" code.
BUG=chromium-os:4776
TEST=Reran multiple instances at once, run netstat -nlt
Review URL: http://codereview.chromium.org/2975006
Currently, parallel_emerge doesn't know how to handle uninstall actions, so it
actually installs packages when it should be uninstalling them. This patch
fixes that.
TEST=sudo ./parallel_emerge -uDNv hard-host-depends, and make sure it
uninstalls nih-dbus-tool, which is blocked by hard-host-depends
BUG=none
Review URL: http://codereview.chromium.org/2990001
Packages specified as workon packages are always built from source.
Dependencies of workon packages are also built from source.
Dependencies are calculated with --selective=n so that workon packages will be included in the install list. Packages that are not being worked on and are being unnecessarily replaced because of --selective=n are filtered out later.
This patch also fixes a bug with world file updating -- previously the world file was never updated because the packages were getting removed by RemoveInstalledPackages. We now keep the appropriate world file updates, and instead update SanitizeTree to handle world file updates without trouble.
I also optimized the cycle cracking algorithm so that it only visits each node once. This seems to improve run time significantly on graphs that have cycles.
TEST=Ran ./parallel_emerge -uDNvpg --board=x86-generic chromeos --workon=chromeos-chrome &&
./parallel_emerge -uDNvpg --board=x86-generic chromeos --workon=libcros &&
./parallel_emerge -uDNvpg world --workon=libxml2 &&
./parallel_emerge -uDNv -p world hard-host-depends --workon='bcel'
BUG=none
Review URL: http://codereview.chromium.org/2959006
Added populating OEM partner partition with content.
Added creating flag file .consider_oobe for OEM partition to get mounted on OOBE.
BUG=http://crosbug.com/3828
TEST=Install Chrome OS on the device from USB stick. /mnt/partner_partition contains etc/... directory with customization manifests on first boot.
Review URL: http://codereview.chromium.org/2938003
An earlier CL modifies the vboot_reference ebuild to install the
keys into /usr/share/vboot.
TEST=verified that build_image fails without this change and no
vboot_reference checkout but succeeds with this change and no
vboot_reference checkout
Change-Id: Ie2bc1091b52c36fd56cd5f763ee275afc91765c3
Review URL: http://codereview.chromium.org/2896008
Currently the output of build_image signs the kernel partition with the recovery keys on the final image. This script allows us to replace the kernel vblock and resign the kernel with the right set of keys (for example, using the normal boot path kernel keys, or the keys for factory install, etc.)
BUG=4623
TEST=Tested by running the script on one of the latest builbot images (801) and resigning with test kernel keys. The resulting image was dd-ed off to an SSD and was succesfully able to boot on one of our dev systems with our custom firmware with both dev mode and recovery mode turned off.
To test (can do outside chroot):
1) Download the latest image from the buildbot (I used build 801)
2) Run script with the following arguments and paths adjusted below
resign_image
--from /path/to/chromiumos_image.bin \
--datakey /path/to/vboot_reference/tests/devkeys/kernel_data_key.vbprivk \
--keyblock /path/to/vboot_reference/tests/devkeys/kernel.keyblock \
--vsubkey /path/to/vboot_reference/tests/devkeys/kernel_subkey.vbpubk \
--vbutil_dir /path/to/vbutil/binaries
--to image.out
This re-signs the image with the normal test keys (instead of recovery as done by build_image)
3) Copy the image to an SSD drive
dd if=image.out of=/dev/ssd [replace with the correct device]
4) Boot with the latest custom firmware in normal mode (recovery and dev mode turned off).
5) Profit!
Review URL: http://codereview.chromium.org/2938004
* This fixes the issue, where cros-workon packages have a package.mask set
to prevent upstream ebuilds from rolling in. In general, it brings out the
cavalry for unmasking the live package in every possible way.
Review URL: http://codereview.chromium.org/2934007