hooks/post-install: check for -private-devel if PRIVATE_API is used
This commit is contained in:
parent
d1e7f98c9d
commit
4fb1dd4a21
|
@ -0,0 +1,60 @@
|
||||||
|
# vim: set ts=4 sw=4 et ft=bash :
|
||||||
|
#
|
||||||
|
# This hook execute the following tasks:
|
||||||
|
# - warn if packages uses private Qt API but makedepends doesn't have
|
||||||
|
# qt6-*-private-devel
|
||||||
|
#
|
||||||
|
# This hook only really target qt6-base-private-devel, a lot of packages
|
||||||
|
# linked with Qt6::CorePrivate and Qt6::GuiPrivate, yet don't need its
|
||||||
|
# headers.
|
||||||
|
|
||||||
|
get_qt_private() {
|
||||||
|
local _elf _fn _lf
|
||||||
|
find ${PKGDESTDIR} -type f |
|
||||||
|
while read -r _fn; do
|
||||||
|
trap - ERR
|
||||||
|
_lf=${_fn#${PKGDESTDIR}}
|
||||||
|
if [ "${skiprdeps/${_lf}/}" != "${skiprdeps}" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
read -n4 _elf < "$_fn"
|
||||||
|
if [ "$_elf" = $'\177ELF' ]; then
|
||||||
|
$OBJDUMP -p "$_fn" |
|
||||||
|
sed -n '
|
||||||
|
/required from /{s/.*required from \(.*\):/\1/;h;}
|
||||||
|
/Qt_[0-9]*_PRIVATE_API/{g;p;}
|
||||||
|
'
|
||||||
|
fi
|
||||||
|
done |
|
||||||
|
sort -u
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
hook() {
|
||||||
|
local _list _shlib _version _md _v _ok
|
||||||
|
|
||||||
|
if [ -n "$noverifyrdeps" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
_list=$(get_qt_private)
|
||||||
|
for _shlib in $_list; do
|
||||||
|
msg_normal "${pkgver}: requires PRIVATE_API from $_shlib\n"
|
||||||
|
done
|
||||||
|
_version=$(printf '%s\n' $_list | sed 's/^libQt\([0-9]*\).*/\1/' | grep -v '^5$' | uniq)
|
||||||
|
for _v in $_version; do
|
||||||
|
_ok=
|
||||||
|
for _md in ${makedepends}; do
|
||||||
|
case "${_md}" in
|
||||||
|
# Anything will works, because they're updated together
|
||||||
|
qt${_v}-*-private-devel)
|
||||||
|
_ok=yes
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
if [ -z "$_ok" ]; then
|
||||||
|
msg_warn "${pkgver}: using Qt${_v}_PRIVATE_API but doesn't use qt${_v}-*-private-devel\n"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
Loading…
Reference in New Issue