From 744faa2df4ca5bb206e169fa5470fdb02a797ded Mon Sep 17 00:00:00 2001 From: Michael Marineau Date: Tue, 23 Feb 2016 12:50:52 -0800 Subject: [PATCH] vm_image_util: oems are always from ebuild, others always from binary This resolves two issues: - Large dependencies are *never* built during image_to_vm, build_packages must now handle that. - Since build_packages can't resonably do the oem-* packages (they all conflict with eachother) we do want to build them from the ebuild. This is now enforced so a old binpkg is never used. This resolves confusing issues people have always had while when editing oem ebuilds but getting a stale build instead. --- build_library/vm_image_util.sh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/build_library/vm_image_util.sh b/build_library/vm_image_util.sh index 6572590cc3..47d8fc3cc0 100644 --- a/build_library/vm_image_util.sh +++ b/build_library/vm_image_util.sh @@ -422,9 +422,19 @@ install_oem_package() { return 0 fi + # Split into two steps because we want to always install $oem_pkg from + # the ebuild (build_packages doesn't handle it) *but* we never want to + # build anything else from source here. emerge doesn't have a way to + # enforce this in a single command. + info "Building ${oem_pkg}" + USE="${oem_use}" emerge-${BOARD} --root="${oem_tmp}" \ + --nodeps --buildpkgonly --usepkg n \ + --quiet "${oem_pkg}" + info "Installing ${oem_pkg} to OEM partition" USE="${oem_use}" emerge-${BOARD} --root="${oem_tmp}" \ - --root-deps=rdeps --usepkg --quiet "${oem_pkg}" + --root-deps=rdeps --usepkgonly \ + --quiet --jobs=2 "${oem_pkg}" sudo rsync -a "${oem_tmp}/usr/share/oem/" "${VM_TMP_ROOT}/usr/share/oem/" sudo rm -rf "${oem_tmp}" }