76 lines
2.3 KiB
Bash
76 lines
2.3 KiB
Bash
# vim: set ts=4 sw=4 ft=bash et:
|
|
#
|
|
# This hook executes the following tasks:
|
|
# - Generates provides file with provides entries for xbps-create(1)
|
|
|
|
get_explicit_provides() {
|
|
# include explicit values from the template
|
|
if [ -n "$provides" ]; then
|
|
printf '%s\n' $provides
|
|
fi
|
|
}
|
|
|
|
generate_python_provides() {
|
|
local py3_bin="${XBPS_MASTERDIR}/usr/bin/python3"
|
|
|
|
# get the canonical python package names for each python module
|
|
if [ -z "$nopyprovides" ] && [ -d "${PKGDESTDIR}/${py3_sitelib}" ] && [ -x "${py3_bin}" ]; then
|
|
PYTHONPATH="${XBPS_MASTERDIR}/${py3_sitelib}-bootstrap" "${py3_bin}" \
|
|
"${XBPS_COMMONDIR}"/scripts/parse-py-metadata.py \
|
|
-S "${PKGDESTDIR}/${py3_sitelib}" -v "${pkgver}" provides
|
|
fi
|
|
}
|
|
|
|
generate_pkgconfig_provides() {
|
|
find "${PKGDESTDIR}/usr/lib/pkgconfig" "${PKGDESTDIR}/usr/share/pkgconfig" -name '*.pc' -type f \
|
|
-exec pkg-config --print-provides {} \; 2>/dev/null | sed 's/^/pc:/; s/ = /-/' | sort -u
|
|
}
|
|
|
|
generate_cmd_provides() {
|
|
find "${PKGDESTDIR}/usr/bin" -maxdepth 1 -type f -printf '%f\n' 2>/dev/null \
|
|
| sed 's/^.*$/cmd:&-'"${version}_${revision}"'/' | sort -u
|
|
}
|
|
|
|
generate_alt_cmd_provides() {
|
|
local _alt _group _symlink _target _path
|
|
for _alt in $alternatives; do
|
|
IFS=':' read -r _group _symlink _target <<< "$_alt"
|
|
case "$_symlink" in
|
|
/usr/bin/*)
|
|
echo "${_symlink##*/}"
|
|
;;
|
|
/*)
|
|
# skip all other absolute paths
|
|
;;
|
|
*/*)
|
|
# relative path, resolve
|
|
_path="$(realpath -m "$_target/./$_symlink")"
|
|
if [ "${_path%/*}" = /usr/bin ]; then
|
|
echo "${_path##*/}"
|
|
fi
|
|
;;
|
|
*)
|
|
if [ "${_target%/*}" = /usr/bin ]; then
|
|
echo "${_symlink}"
|
|
fi
|
|
;;
|
|
esac
|
|
done | sed 's/^/cmd:/'
|
|
}
|
|
|
|
hook() {
|
|
local -a _provides
|
|
|
|
mapfile -t _provides < <(
|
|
get_explicit_provides
|
|
generate_python_provides
|
|
generate_pkgconfig_provides
|
|
generate_cmd_provides
|
|
generate_alt_cmd_provides
|
|
)
|
|
|
|
if [ "${#_provides[@]}" -gt 0 ]; then
|
|
echo " ${_provides[*]}"
|
|
echo "${_provides[*]}" > "${XBPS_STATEDIR}/${pkgname}-provides"
|
|
fi
|
|
}
|