This change adds
- --rootfs_hash_pad to specify the MBs reserved for the pad
- the implementation of the above flag
- check if total fs size + pad size exceeds the partition size
- hash appending in make_image_bootable()
Fixes:
- a style for ROOT_FS_HASH usage
- bad mount|grep
- bad bash subst for root devices in all boot paths
- fixed a typo in the update_bootloaders table creation
- disables verified usb for now
Adding the padding argument ensures that the generated hash tree for the root filesystem is appended to the image. Assuming the rootfs is _never_ mounted read-write
again, that hash tree will be valid and vboot will be able to proceed.
BUG=chromium-os:2693
TEST=manual build_image
Review URL: http://codereview.chromium.org/3043011
Change-Id: I67d9b0f91cacdefa309c0cc2dd7fed1d2eddd7a7
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