summaryrefslogtreecommitdiff
path: root/abuild.in
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2012-09-05 12:26:45 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2012-09-05 12:28:05 +0000
commit14af6a80cfbf657423334614b37a8f6f688dfe1a (patch)
tree1281481e432fa103dc33c40fd81358e0da412679 /abuild.in
parenta5cc84e229a40d725c1d53d1b0924a9ef9a615e0 (diff)
downloadabuild-14af6a80cfbf657423334614b37a8f6f688dfe1a.tar.gz
abuild-14af6a80cfbf657423334614b37a8f6f688dfe1a.tar.bz2
abuild-14af6a80cfbf657423334614b37a8f6f688dfe1a.tar.xz
abuild-14af6a80cfbf657423334614b37a8f6f688dfe1a.zip
abuild: include correct version number for provides
This changes the format of .provides-so file. We now add a column with the version number
Diffstat (limited to 'abuild.in')
-rwxr-xr-xabuild.in16
1 files changed, 12 insertions, 4 deletions
diff --git a/abuild.in b/abuild.in
index ecb7c4d..a9ed449 100755
--- a/abuild.in
+++ b/abuild.in
@@ -775,14 +775,22 @@ EOF
prepare_tracedeps() {
local dir=${subpkgdir:-$pkgdir}
+ local etype= soname= file= sover=
[ "$arch" = "noarch" ] && return 0
options_has "!tracedeps" && return 0
# lets tell all the .so files this package provides in .provides-so
scanelf --recursive --nobanner --soname "$dir" | while read etype soname file; do
# if soname field is missing, soname will be the filepath
# we only want shared libs
+ sover=0
case $soname in
- *.so|*.so.[0-9]*) echo ${soname##*/};;
+ *.so|*.so.[0-9]*)
+ soname=${soname##*/}
+ case "$file" in
+ *.so.[0-9]*) sover=${file##*.so.};;
+ esac
+ echo "$soname $sover"
+ ;;
esac
done >"$controldir"/.provides-so
# lets tell all the places we should look for .so files - all rpaths
@@ -794,7 +802,7 @@ prepare_tracedeps() {
| sed 's:,:\n:g' | sort | uniq \
| while read i; do
# only add files that are not self provided
- grep "^$i$" "$controldir"/.provides-so >/dev/null \
+ grep -q -w "^$i" "$controldir"/.provides-so \
|| echo $i >> "$controldir"/.needs-so
done
}
@@ -888,7 +896,7 @@ trace_apk_deps() {
found=
# first check if its provide by same apkbuild
for j in "$dir"/../.control.*/.provides-so; do
- grep -w "$i" "$j" >/dev/null || continue
+ grep -q -w "^$i" "$j" || continue
found=${j%/.provides-so}
found=${found##*/.control.}
break
@@ -921,7 +929,7 @@ trace_apk_deps() {
echo "# automatically detected:" >> "$dir"/.PKGINFO
if [ -f "$dir"/.provides-so ]; then
- sed 's/^\(.*\)/provides = so:\1=0/' "$dir"/.provides-so \
+ sed 's/^\(.*\) \([0-9].*\)/provides = so:\1=\2/' "$dir"/.provides-so \
>> "$dir"/.PKGINFO
fi
[ -z "$autodeps" ] && return 0