mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-08 05:26:58 +02:00
- May be sourced early, so explicitly die if source fails. - Add a function for getting the latest version of a package. - Read PROVIDES metadata using portageq, enabling data to be read from binary packages in addition to installed packages. The performance issue is not an issue here and needed to support empty build roots.
61 lines
1.5 KiB
Bash
61 lines
1.5 KiB
Bash
# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
if [ -z "${FLAGS_board}" ]; then
|
|
error "--board is required."
|
|
exit 1
|
|
fi
|
|
|
|
BOARD="${FLAGS_board}"
|
|
BOARD_ROOT="/build/${BOARD}"
|
|
ARCH=$(get_board_arch ${BOARD})
|
|
|
|
# What cross-build are we targeting?
|
|
. "${BOARD_ROOT}/etc/portage/make.conf" || die
|
|
|
|
# check if any of the given use flags are enabled for a pkg
|
|
pkg_use_enabled() {
|
|
local pkg="$1"
|
|
shift
|
|
# for every flag argument, turn it into `-e ^+flag` for grep
|
|
local grep_args="${@/#/-e ^+}"
|
|
|
|
equery-"${BOARD}" -q uses "${pkg}" | grep -q ${grep_args}
|
|
return $?
|
|
}
|
|
|
|
# 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
|
|
provides=$(portageq-"${BOARD}" metadata "${BOARD_ROOT}" "$1" "$2" PROVIDES)
|
|
|
|
if [[ -z "$provides" ]]; then
|
|
return
|
|
fi
|
|
|
|
# convert:
|
|
# x86_32: libcom_err.so.2 libss.so.2 x86_64: libcom_err.so.2 libss.so.2
|
|
# into:
|
|
# x86_32 libcom_err.so.2 libss.so.2
|
|
# x86_64 libcom_err.so.2 libss.so.2
|
|
echo -n "# $1:"
|
|
for p in ${provides}; do
|
|
if [[ "$p" == *: ]]; then
|
|
echo
|
|
echo -n "${p%:}"
|
|
else
|
|
echo -n " $p"
|
|
fi
|
|
done
|
|
echo
|
|
}
|