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.
This commit is contained in:
Michael Marineau 2016-02-23 12:50:52 -08:00
parent 65864a3a2d
commit 744faa2df4

View File

@ -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}"
}