BUG=chrome-os-partner:8349
TEST=Ad hoc, apply update to 64bit, run this script, make sure build works
Change-Id: I708addf055faf90b250bb38da5b292ecabc26edb
Reviewed-on: https://gerrit.chromium.org/gerrit/17597
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Old crossdev would symlink its metadata dir to the chromiumos overlay.
New crossdev manages this itself iff it had created the layout.conf
before. Add an upgrade hook to convert the symlink over to a config
file that crossdev will update.
BUG=chromium-os:26998
TEST=`./update_chroot` with old chroot created metadata overlay that crossdev would update
Change-Id: I03faa78a988e0cd0a94dcd4f0f01151c32bb215b
CQ-DEPEND=I3f2775111da800622591c9b56ba00428d6106207
Reviewed-on: https://gerrit.chromium.org/gerrit/17408
Reviewed-by: Zdenek Behan <zbehan@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
BUG=chrome-os-partner:8235
TEST=Ad hoc, apply update to 64bit, run this script, make sure build works
Change-Id: I43fe93cfc4af2b4904ecb9a3d331769acd2a5e16
Reviewed-on: https://gerrit.chromium.org/gerrit/17115
Reviewed-by: David James <davidjames@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
There was a bug in the setup_board where it was selecting cross-compilers
and adding them to @world. Now that's been fixed, undo the damage.
BUG=None
TEST=`./update_chroot && grep ^cross- /var/lib/portage/world` showed nothing
Change-Id: Ide4961def700cf42d95454cc0ce404cb517bdfea
Reviewed-on: https://gerrit.chromium.org/gerrit/16997
Reviewed-by: Brian Harring <ferringb@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
BUG=chrome-os-partner:8235
TEST=Ad hoc, apply update to 64bit, run this script, make sure build works
Change-Id: If7b39baae1f4f9ab9529b9c00dc7dd49ac2e2987
Reviewed-on: https://gerrit.chromium.org/gerrit/16829
Reviewed-by: Brian Harring <ferringb@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
In case people have some of these old pkgs hanging around still, or
happened to manually install them while testing, punt them all from
our board dirs.
BUG=None
TEST=build_packages updated chroot and cleaned out old pkgs in other build dirs
Change-Id: I2b037e668faef39e78f7422f91df2d5493799c0f
Reviewed-on: https://gerrit.chromium.org/gerrit/16818
Reviewed-by: Matt Tennant <mtennant@chromium.org>
Reviewed-by: David James <davidjames@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Via distfiles bind mounting, chrome build output was being cached
across chroot replacements. This potentially is desirable, but
wasn't explicitly planned for and violates an assumption of the
canaries.
As such move the content to it's new location.
BUG=None
TEST=emerge-<board> chromeos-chrome
CQ-DEPEND=Ibfc5d42e74861ff498dd2cb6cc2d7be6ec0ded60
Change-Id: I18e384f0fc1cedb3c70ab85178103765322370eb
Reviewed-on: https://gerrit.chromium.org/gerrit/15383
Reviewed-by: David James <davidjames@chromium.org>
Tested-by: Brian Harring <ferringb@chromium.org>
Purpose of this is to allow us to avoid re-downloading everything
every time we rebuild the chroot.
This maintains two directories; host and target. Future enhancement
involves collapsing this into one- this requires some host work however,
and has some potential gotchas in doing so.
Meanwhile, we now store distfiles in repo/distfiles/{host,target},
and mount bind repo/distfiles into /var/cache/distfiles.
An upgrade script in turn optimistically tries to move the content
into the new location; if it can't complete the move, it wipes the
content and the user has to redownload it (acceptable, if annoying).
BUG=chromium-os:13115
TEST=cbuildbot x86-generic-full
Change-Id: Iea96429df0e1fdc4ac0860fbce0daabc90c4c2a3
Reviewed-on: https://gerrit.chromium.org/gerrit/15189
Reviewed-by: Brian Harring <ferringb@chromium.org>
Tested-by: Brian Harring <ferringb@chromium.org>
Commit-Ready: Brian Harring <ferringb@chromium.org>
Not everyone got a smooth migration for git/subversion from dev-util
to dev-vcs, so add a hook to manually unmerge the old versions. The
newer packages should recover gracefully after that.
BUG=chromium-os:24360
TEST=build_packages ran ver 23 upgrade and continued on
Change-Id: I0b56f0f0a8b8a7ebd64a4a664e5524f0b7828791
Reviewed-on: https://gerrit.chromium.org/gerrit/13663
Reviewed-by: Doug Anderson <dianders@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Commit-Ready: Doug Anderson <dianders@chromium.org>
This solves two problems (and half):
a) messing with user's preference file is a no-no, if we want a
hardcoded behaviour like this, profile.d is the way to go
b) .bashrc settings are overridden when doing env-update; source
/etc/profile
c) profile.d will also apply to root (although not with sudo su)
BUG=none
TEST=below
1) ./run_chroot_version_hooks --version 21
2) see all fixed, source /etc/profile, and still see my prompt unchanged
Change-Id: I25b4602f4951b17815bcd312a8249320784c67e1
Reviewed-on: https://gerrit.chromium.org/gerrit/12539
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Zdenek Behan <zbehan@chromium.org>
Commit-Ready: Zdenek Behan <zbehan@chromium.org>
See CL https://gerrit.chromium.org/gerrit/#change,11951 for the original CL.
BUG=chromium-os:23407
TEST=Tested on chroot synced on 23/11/11
Change-Id: I039d6b6ee06617dfa9263eab4fe83e128f0773b4
Reviewed-on: https://gerrit.chromium.org/gerrit/12106
Reviewed-by: Peter Mayo <petermayo@chromium.org>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Tested-by: Sean Paul <seanpaul@chromium.org>
Commit-Ready: Sean Paul <seanpaul@chromium.org>
The bashrc that is in each board's /etc/portage/ dir is an old tool from
crossdev which we no longer use/need, so drop it. Especially since it
conflicts with newer bashrc profile stacking.
BUG=chromium-os:21276
TEST=chroot updated to 18 and all /etc/portage/bashrc files in /board/*/ are gone
Change-Id: I51688ce6c04e91506113d920bf1a50a6a822d2f3
Reviewed-on: https://gerrit.chromium.org/gerrit/11908
Reviewed-by: David James <davidjames@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
BUG=chromium-os:21244
TEST=./build_packages unmerges old grub and installs new one (with related change)
Change-Id: Iadfbd219a989f71258786591c047ace3931f1e9c
Reviewed-on: https://gerrit.chromium.org/gerrit/11951
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Tested-by: Anush Elangovan <anush@chromium.org>
The make_chroot script was upgraded to add its customizations to a file
in /etc/sudoers.d/ instead of modifying /etc/sudoers. Then the sudo
ebuild was updated to not modify /etc/sudoers anymore. This meant for
older chroots, the customizations that make_chroot added were lost in
the process.
Add an upgrade hook that creates the split /etc/sudoers.d/ file for older
chroots that did not go through the newer make_chroot.
BUG=chromium-os:11991
TEST=set chroot to 16, deleted file, ran build_packages: chroot updated to 17 and created correct /etc/sudoers.d/90_cros file
TEST=set chroot to 17, create /etc/sudoers.d/90_cros, ran build_packages: chroot updated to 17 and left existing file alone
Change-Id: I279ac3e15380e02b50a752a62cecbd94171fd724
Reviewed-on: https://gerrit.chromium.org/gerrit/11774
Reviewed-by: David James <davidjames@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Older core ebuilds would install /etc/localtime symlinks that'd confuse
the build system, so scrub them now that the ebuilds in question have
been fixed up.
See http://gerrit.chromium.org/gerrit/10960 for more info.
BUG=chromium-os:21850
TEST=`./build_packages --board=x86-alex` cleaned my old /etc/._cfg*_localtime symlinks
Change-Id: I3b3d2a42e77d259cf9eda380f791e8108fef7458
Reviewed-on: https://gerrit.chromium.org/gerrit/10965
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
This drops the work that we did in 14_board_portage_env as support for
per-package env in the overlay has been moved to profile.bashrc. That
do not require modification of any /etc/portage/env dirs.
BUG=chromium-os:21787
TEST=update chroot to ver 15, make sure /build/*/etc/portage/env are gone
Change-Id: I4f1d577f125a66efdeabdbbd8f862562c2e5d2e5
Reviewed-on: https://gerrit.chromium.org/gerrit/11047
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: David James <davidjames@chromium.org>
Newer setup_board now sets up /etc/portage/env in the board root as a
symlink. Add an update hook to fix up all existing boards.
Also migrate /etc/portage/bashrc in the chroot.
BUG=chromium-os:21787
TEST=update chroot from ver 13 to ver 14; make sure /build/*/etc/portage/env are symlinks
Change-Id: I8b828b8773998e1aa0104c42bad2dd2ac5c8416c
Reviewed-on: http://gerrit.chromium.org/gerrit/10344
Reviewed-by: David James <davidjames@chromium.org>
Reviewed-by: Raymes Khoury <raymes@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
These files need not be +x to work since we source them directly.
BUG=None
TEST=update chroot from ver 12 to ver 13
Change-Id: I3133cf532286bed63308e82767f0c95900f54e84
Reviewed-on: http://gerrit.chromium.org/gerrit/10342
Reviewed-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: David James <davidjames@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
add a hook for fixing all pending config updates
BUG=chromium-os:13987
TEST=below
1) export CONFIG_PROTECT="/etc /usr/share"
2) checkout as old as possible revision of cros-overlay, update chroot to it
3) checkout HEAD and update back
4) run the hook, see it update thousands of files correctly
Change-Id: Idabf5475516ed58b76ceee6ffdc817a5f46839ad
Reviewed-on: http://gerrit.chromium.org/gerrit/10022
Reviewed-by: Sameer Nanda <snanda@chromium.org>
Tested-by: Zdenek Behan <zbehan@chromium.org>
BUG=chromium-os:13987
TEST=below
1) export CONFIG_PROTECT="/etc /usr/share"
2) checkout as old as possible revision of cros-overlay, update chroot to it
3) checkout HEAD and update back
4) run the hook, see it update thousands of files correctly
Change-Id: I4213de8ccba6e573541e96591ea0d033a10218a5
Reviewed-on: http://gerrit.chromium.org/gerrit/8938
Tested-by: Zdenek Behan <zbehan@chromium.org>
Reviewed-by: Brian Harring <ferringb@chromium.org>
Commit-Ready: Zdenek Behan <zbehan@chromium.org>
Metrics unit tests fail if /does/not directory is present, so we need to
clean this up as a followup to a build_packages fix that stopped
creating that directory.
BUG=none
TEST=Metrics unit tests actually work now.
Change-Id: I7c470e8225e4c5c7a77f6decc4c4bcadb72cd246
Reviewed-on: http://gerrit.chromium.org/gerrit/8848
Reviewed-by: David James <davidjames@chromium.org>
Tested-by: David James <davidjames@chromium.org>
BUG=none
TEST=Metrics unit tests work now.
Change-Id: If5830c17bbd2f389df3c390fb0de7057b05aa9aa
Reviewed-on: http://gerrit.chromium.org/gerrit/8845
Reviewed-by: David James <davidjames@chromium.org>
Tested-by: David James <davidjames@chromium.org>
First let's add a chroot upgrade hook that'll declare a small list of
locales to speed up glibc upgrades.
The other blocker was that `cros_sdk --enter` took an inordinate amount
of time to execute (`locale-gen -u` specifically) when the number of
existing locales is huge. This seems to be a bug in the bash/glibc
stack which is resolved in newer versions, but we can workaround the
issue by forcing locale-gen to run in a C locale. The tool itself does
not care about its locale and we silence its output.
BUG=chromium-os:20378
TEST=`cros_sdk --enter`; see no locales in /etc/locale.gen; run `./build_packages` and see upgrade hook work
TEST=generate all 400 locales; `cros_sdk --enter`; see that it was quick
Change-Id: I8fcc5e26bd8e1bcfd52b6a6c7ef3cacf0a252081
Reviewed-on: http://gerrit.chromium.org/gerrit/7806
Reviewed-by: David James <davidjames@chromium.org>
Reviewed-by: Zdenek Behan <zbehan@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
The setup_board script now inserts a BOARD_USE value into
/build/<board>/etc/make.conf.board_setup. This only happens the first
time the board is setup, so this upgrade script inserts that value
for boards that were previously set up.
BUG=chromium-os:20341
TEST=Ran run_chroot_version_hooks in chroot, inspected make.conf.board_setup
files for boards that did and did not have BOARD_USE already set.
Change-Id: I333198a0434076a5e8e50db6affc81ea2076d301
Reviewed-on: http://gerrit.chromium.org/gerrit/7653
Reviewed-by: David James <davidjames@chromium.org>
Tested-by: Matt Tennant <mtennant@chromium.org>
BUG=chromium-os:19613
TEST=below
1) Manually create a chroot with old gcc
2) Let the script update&select new one, unmerge old
Change-Id: I71732da315ed4effc6df48afab797718e44d7a06
Reviewed-on: http://gerrit.chromium.org/gerrit/7117
Tested-by: Zdenek Behan <zbehan@chromium.org>
Reviewed-by: Zdenek Behan <zbehan@chromium.org>
Reviewed-by: David James <davidjames@chromium.org>
Recently, a gcc-4.4.6 has been unmasked in the host, but no effort
has been made to make sure the developers select it with gcc-config.
BUG=chromium-os:19613
TEST=ran the tests below with set -x and observed
1) manually set the MINIMUM version to 4.4.7, see it fail
2) two gccs, current + old, set to old, observed the switch and unmerge
3) above, but set to new, same result
4) only one gcc, the current, observed nothing happening
5) only have old gcc, let the script update&select new one, unmerge old
Change-Id: Id2a285a13f5b27d7531eae4db35e36f6b8cc5f4f
Reviewed-on: http://gerrit.chromium.org/gerrit/6694
Reviewed-by: David James <davidjames@chromium.org>
Tested-by: Zdenek Behan <zbehan@chromium.org>
by mobile-providers.
BUG=none
TEST=./build_packages
Change-Id: I07a2fc91f0782d6a03f535333a8925f9fe6283c1
Reviewed-on: http://gerrit.chromium.org/gerrit/3973
Tested-by: Nathan J. Williams <njw@chromium.org>
Reviewed-by: David James <davidjames@chromium.org>
BUG=chromium-os:16364
TEST=Ran with symlinked directories
Change-Id: I374eced27f1b0b3147b9632d5f9dd2637b0d7d28
Reviewed-on: http://gerrit.chromium.org/gerrit/2390
Reviewed-by: Daniel Erat <derat@chromium.org>
Tested-by: David James <davidjames@chromium.org>
This script also helps out with chromeos-u-boot-next -> chromeos-u-boot
migration.
BUG=chromium-os:16310
TEST=Run the script and verify right packages are uninstalled.
Change-Id: I4ebaa0a0b3e1eea32005b4d2a47f4581e44d825c
Reviewed-on: http://gerrit.chromium.org/gerrit/2309
Tested-by: David James <davidjames@chromium.org>
Reviewed-by: David James <davidjames@chromium.org>
TEST=Test incremental build_packages after libtool upgrade,
verify all packages still work.
BUG=chromium-os:15595
Change-Id: I7cf130a4b537eb0b02f52681801346c62fc9fd69
Reviewed-on: http://gerrit.chromium.org/gerrit/2161
Reviewed-by: David James <davidjames@chromium.org>
Tested-by: David James <davidjames@chromium.org>
Add script that adds depot_tools and chromite/bin to the PATH globally using /etc/env.d
BUG=16093
TEST=Ran make_chroot and run_chroot_version_hooks
Change-Id: I6011d7436f18ce46dfe215f01068e862d2567273
Reviewed-on: http://gerrit.chromium.org/gerrit/2022
Reviewed-by: David James <davidjames@chromium.org>
Tested-by: Ryan Cui <rcui@chromium.org>
The name chroot_upgrade is rather confusing since we already have
"chroot_update" and those two scripts will be chained. It was the
original name before update_chroot existed.
BUG=none
TEST=run the new one, see it work the same
Change-Id: I851fc4a0f28e32a9bbd01b2e4ddedbaffc6abf1c
Reviewed-on: http://gerrit.chromium.org/gerrit/876
Reviewed-by: David James <davidjames@chromium.org>
Tested-by: Zdenek Behan <zbehan@chromium.org>