summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2016-07-27 10:54:24 +0000
committerTimo Teräs <timo.teras@iki.fi>2016-07-27 12:06:56 +0000
commit74355b39d552db4d511eaeb7f5e82d6712e77ab6 (patch)
tree9c57a2159560f99f473c0e9bb489265c7f4bdf19
parent05e2a0370e14cc6ad2c3130cc893489edb576d39 (diff)
downloadabuild-cross-build.tar.bz2
abuild-cross-build.tar.xz
abuild: fix dependency tracing for cross buildscross-build
-rw-r--r--abuild.in23
1 files changed, 15 insertions, 8 deletions
diff --git a/abuild.in b/abuild.in
index f2cc304..65c7ce7 100644
--- a/abuild.in
+++ b/abuild.in
@@ -1026,7 +1026,14 @@ subpkg_provides_pc() {
trace_apk_deps() {
local name="$1"
local dir="$2"
+ local parch="$3"
local i= found= autodeps= deppkgs= missing=
+ local apkroot=
+
+ case "$parch" in
+ $CBUILD_ARCH) ;;
+ $CARCH | $CTARGET_ARCH) apkroot="--root $CBUILDROOT" ;;
+ esac
msg "Tracing dependencies..."
# add pkgconfig if usr/lib/pkgconfig is found
@@ -1049,8 +1056,8 @@ trace_apk_deps() {
if subpkg_provides_prefixed_so "$i"; then
autodeps="$autodeps so:$sonameprefix$i"
- elif subpkg_provides_so "$i" || cross_compiling \
- || $APK info --quiet --installed "so:$i"; then
+ elif subpkg_provides_so "$i" \
+ || $APK $apkroot info --quiet --installed "so:$i"; then
autodeps="$autodeps so:$i"
else
missing="$missing $i"
@@ -1061,7 +1068,7 @@ trace_apk_deps() {
if [ -f "$dir"/.rpaths ]; then
local so_files=$(find_so_files "$dir"/.rpaths $missing) \
|| return 1
- deppkgs=$($APK info --quiet --who-owns $so_files) || return 1
+ deppkgs=$($APK $apkroot info --quiet --who-owns $so_files) || return 1
fi
for found in $deppkgs; do
@@ -1079,9 +1086,9 @@ trace_apk_deps() {
# pkg-config depends
for i in $(sort -u "$dir"/.needs-pc 2>/dev/null); do
- if subpkg_provides_pc "$i" || cross_compiling \
- || $APK info --quiet --installed "pc:$i"; then
- local provider=$(apk search --quiet "pc:$i")
+ if 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
warning "$provider should be removed from depends_dev"
fi
@@ -1090,7 +1097,7 @@ trace_apk_deps() {
warning "Could not find any provider for pc:$i"
local pcfile=/usr/lib/pkgconfig/"${i%%[<>=]*}".pc
if [ -e "$pcfile" ]; then
- local owner=$($APK info --quiet --who-owns $pcfile)
+ local owner=$($APK $apkroot info --quiet --who-owns $pcfile)
warning "${owner:-package providing $pcfile} needs to be rebuilt"
fi
fi
@@ -1310,7 +1317,7 @@ create_apks() {
local subpkgname=$name
local subpkgarch=$(pkginfo_val arch $file)
- trace_apk_deps "$name" "$dir" || return 1
+ trace_apk_deps "$name" "$dir" "$subpkgarch" || return 1
msg "Package size: ${size}"
msg "Compressing data..."
(