From d8fb403f691e6f0eb7984f8f99f3ab85942f4939 Mon Sep 17 00:00:00 2001 From: Benjamin Gilbert Date: Wed, 29 Mar 2017 16:31:05 -0700 Subject: [PATCH] build_image_util: Fix warnings when building OEM ACIs INFO build_oem_aci: Writing coreos_oem_gce_aci_stage_packages.txt awk: cmd. line:1: fatal: cannot open file `/build/amd64-usr/var/db/pkg//DEPEND' for reading (No such file or directory) INFO build_oem_aci: Writing coreos_oem_gce_aci_stage_licenses.txt awk: cmd. line:1: fatal: cannot open file `/build/amd64-usr/var/db/pkg//DEPEND' for reading (No such file or directory) --- build_library/build_image_util.sh | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/build_library/build_image_util.sh b/build_library/build_image_util.sh index e42e14f673..cdbfb46600 100755 --- a/build_library/build_image_util.sh +++ b/build_library/build_image_util.sh @@ -220,6 +220,7 @@ image_packages() { local profile="${BUILD_DIR}/configroot/etc/portage/profile" ROOT="$1" PORTAGE_CONFIGROOT="${BUILD_DIR}"/configroot \ equery --no-color list --format '$cpv::$repo' '*' + # We also want to list packages that only exist in the initramfs. # Approximate this by listing build dependencies of coreos-kernel that # are specified with the "=" slot operator, excluding those already @@ -227,14 +228,18 @@ image_packages() { local vdb=$(portageq-${BOARD} vdb_path) local kernel_pkg=$(ROOT="$1" PORTAGE_CONFIGROOT="${BUILD_DIR}"/configroot \ equery --no-color list --format '$cpv' sys-kernel/coreos-kernel) - local depend_path="$vdb/$kernel_pkg/DEPEND" - local pkg - for pkg in $(awk 'BEGIN {RS=" "} /=$/ {print}' "$depend_path"); do - if ! ROOT="$1" PORTAGE_CONFIGROOT="${BUILD_DIR}"/configroot \ - equery -q list "$pkg" >/dev/null ; then - equery-${BOARD} --no-color list --format '$cpv::$repo' "$pkg" - fi - done + # OEM ACIs have no kernel package. + if [[ -n "${kernel_pkg}" ]]; then + local depend_path="$vdb/$kernel_pkg/DEPEND" + local pkg + for pkg in $(awk 'BEGIN {RS=" "} /=$/ {print}' "$depend_path"); do + if ! ROOT="$1" PORTAGE_CONFIGROOT="${BUILD_DIR}"/configroot \ + equery -q list "$pkg" >/dev/null ; then + equery-${BOARD} --no-color list --format '$cpv::$repo' "$pkg" + fi + done + fi + # In production images GCC libraries are extracted manually. if [[ -f "${profile}/package.provided" ]]; then xargs --arg-file="${profile}/package.provided" \