summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--abuild.in14
1 files changed, 12 insertions, 2 deletions
diff --git a/abuild.in b/abuild.in
index cd3383b..d03e35f 100644
--- a/abuild.in
+++ b/abuild.in
@@ -1067,7 +1067,7 @@ prepare_pkgconfig_provides() {
local f=${i##*/}
local v=$(PKG_CONFIG_PATH="$dir"/usr/lib/pkgconfig PKG_CONFIG_MAXIMUM_TRAVERSE_DEPTH=1 pkg-config \
--modversion ${f%.pc})
- echo "${f%.pc}=${v:-0}" >> "$controldir"/.provides-pc
+ echo "$pcprefix${f%.pc}=${v:-0}" >> "$controldir"/.provides-pc
done
}
@@ -1175,6 +1175,11 @@ subpkg_provides_so() {
grep -q -w "^$1" "$pkgbasedir"/.control.*/.provides-so 2>/dev/null
}
+subpkg_provides_prefixed_pc() {
+ [ -n "$pcprefix" ] && grep -q -w "^$pcprefix$1" \
+ "$pkgbasedir"/.control.*/.provides-pc 2>/dev/null
+}
+
subpkg_provides_pc() {
grep -q -w "^${1%%[<>=]*}" "$pkgbasedir"/.control.*/.provides-pc \
2>/dev/null
@@ -1243,7 +1248,12 @@ trace_apk_deps() {
# pkg-config depends
for i in $(sort -u "$dir"/.needs-pc 2>/dev/null); do
- if subpkg_provides_pc "$i" \
+ # first check if its provided by same apkbuild
+ grep -q -w "^$pcprefix$i" "$dir"/.provides-pc 2>/dev/null && continue
+
+ if subpkg_provides_prefixed_pc "$i"; then
+ autodeps="$autodeps pc:$pcprefix$i"
+ elif subpkg_provides_pc "$i" \
|| $APK $apkroot info --quiet --installed "pc:$i"; then
local provider=$(apk $apkroot search --quiet "pc:$i")
if list_has "$provider" $depends_dev; then