mirror of
https://gitlab.alpinelinux.org/alpine/abuild.git
synced 2025-01-13 18:50:31 +00:00
abuild: fix dependency checking
- versioned dependencies - dependencies on 'provides' tags or library names
This commit is contained in:
parent
c909c82ac2
commit
d8174e4f3a
48
abuild.in
48
abuild.in
@ -1855,10 +1855,27 @@ calcdeps() {
|
||||
fi
|
||||
}
|
||||
|
||||
get_missing_deps() {
|
||||
local cmd="$APK info --quiet --installed $1"
|
||||
shift
|
||||
|
||||
while [ "$1" ]; do
|
||||
local cp=${1#\!}
|
||||
if [ $cp != $1 ]; then
|
||||
if $cmd $cp; then
|
||||
error "Conflicting package installed: $cp"
|
||||
return 1
|
||||
fi
|
||||
elif [ "$upgrade" ] || ! $cmd $1; then
|
||||
echo $1
|
||||
fi
|
||||
shift
|
||||
done
|
||||
}
|
||||
|
||||
# build and install dependencies
|
||||
builddeps() {
|
||||
local pkg= i= missing= BUILD_BASE=
|
||||
local installed_hostdeps= installed_builddeps=
|
||||
local pkg= i= BUILD_BASE=
|
||||
[ -n "$nodeps" ] && return 0
|
||||
|
||||
msg "Analyzing dependencies..."
|
||||
@ -1872,30 +1889,11 @@ builddeps() {
|
||||
esac
|
||||
calcdeps "$BUILD_BASE"
|
||||
|
||||
installed_builddeps=$($APK info --installed $builddeps)
|
||||
[ -n "$CBUILDROOT" -a -n "$hostdeps" ] && installed_hostdeps=$($APK info --root "$CBUILDROOT" --arch "$CTARGET_ARCH" --installed $hostdeps)
|
||||
|
||||
# find which deps are missing
|
||||
for i in $builddeps; do
|
||||
if [ "${i#\!}" != "$i" ]; then
|
||||
if $APK info --quiet --installed "${i#\!}"; then
|
||||
error "Conflicting package installed: ${i#\!}"
|
||||
return 1
|
||||
fi
|
||||
elif ! deplist_has $i $installed_builddeps || [ -n "$upgrade" ]; then
|
||||
missing="$missing $i"
|
||||
fi
|
||||
done
|
||||
for i in $hostdeps; do
|
||||
if [ "${i#\!}" != "$i" ]; then
|
||||
if $APK info --quiet --installed --root "$CBUILDROOT" --arch "$CTARGET_ARCH" "${i#\!}"; then
|
||||
error "Conflicting package installed: ${i#\!}"
|
||||
return 1
|
||||
fi
|
||||
elif ! deplist_has $i $installed_hostdeps || [ -n "$upgrade" ]; then
|
||||
missing="$missing $i"
|
||||
fi
|
||||
done
|
||||
local mbd mhd missing
|
||||
mbd=$(get_missing_deps "" $builddeps) || return 1
|
||||
mhd=$(get_missing_deps "--root $CBUILDROOT --arch $CTARGET_ARCH" $hostdeps) || return 1
|
||||
missing=$(echo $mbd $mhd)
|
||||
|
||||
if [ -z "$install_deps" ] && [ -z "$recursive" ]; then
|
||||
# if we dont have any missing deps we are done now
|
||||
|
Loading…
Reference in New Issue
Block a user