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