diff --git a/build_library/board_options.sh b/build_library/board_options.sh index cd3fb6c4bd..e2280ccad1 100644 --- a/build_library/board_options.sh +++ b/build_library/board_options.sh @@ -12,7 +12,7 @@ BOARD_ROOT="/build/${BOARD}" ARCH=$(get_board_arch ${BOARD}) # What cross-build are we targeting? -. "${BOARD_ROOT}/etc/portage/make.conf" +. "${BOARD_ROOT}/etc/portage/make.conf" || die # check if any of the given use flags are enabled for a pkg pkg_use_enabled() { @@ -25,12 +25,18 @@ pkg_use_enabled() { return $? } -# get a package's SONAMEs in soname.provided format -pkg_soname_provides() { +# Usage: pkg_version [installed|binary|ebuild] some-pkg/name +# Prints: some-pkg/name-1.2.3 +# Note: returns 0 even if the package was not found. +pkg_version() { + portageq-"${BOARD}" best_visible "${BOARD_ROOT}" "$1" "$2" +} + +# Usage: pkg_provides [installed|binary] some-pkg/name-1.2.3 +# Prints: x86_32: libfoo.so.2 x86_64: libfoo.so.2 +pkg_provides() { local provides p - # We could run this command but it ugly and silly slow: - # portageq-"${BOARD}" metadata "${BOARD_ROOT}" installed "$1" PROVIDES - provides=$(<"${BOARD_ROOT}/var/db/pkg/$1/PROVIDES") + provides=$(portageq-"${BOARD}" metadata "${BOARD_ROOT}" "$1" "$2" PROVIDES) if [[ -z "$provides" ]]; then return diff --git a/build_library/build_image_util.sh b/build_library/build_image_util.sh index a600fb3755..65b241a4e5 100755 --- a/build_library/build_image_util.sh +++ b/build_library/build_image_util.sh @@ -211,7 +211,7 @@ package_provided() { for p in "$@"; do info "Writing $p to package.provided and soname.provided" echo "$p" >> "${profile}/package.provided" - pkg_soname_provides "$p" >> "${profile}/soname.provided" + pkg_provides binary "$p" >> "${profile}/soname.provided" done }