From c57a9070f27ad10f507f36a88b01ab6f019b46cd Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Sat, 8 Sep 2012 13:45:34 +0000
Subject: [PATCH] abuild: dont add .so files with mismatching soname version

Skip .so files without version number in filename when soname has
version number.

This solves issue with libgcj/gcc-java who ships both libgcj_bc.so and
libgcj_bc.so.1.0.0 which both has soname libgcj_bc.so.1
---
 abuild.in | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/abuild.in b/abuild.in
index 889fa7516281..60cb91cf28b8 100755
--- a/abuild.in
+++ b/abuild.in
@@ -952,17 +952,29 @@ scan_shared_objects() {
 	# lets tell all the .so files this package provides in .provides-so
 	scanelf --nobanner --soname "$@" | 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]*)
+		if [ -z "$file" ]; then
+			file="$soname"
 			soname=${soname##*/}
-			case "$file" in
-			*.so.[0-9]*) sover=${file##*.so.};;
+		fi
+
+		# we only want shared libs
+		case $soname in
+		*.so|*.so.[0-9]*);;
+		*) continue;;
+		esac
+
+		case "$file" in
+		*.so.[0-9]*) sover=${file##*.so.};;
+		*.so)
+			# filter out sonames with version when file does not
+			# have version
+			case "$soname" in
+			*.so.[0-9]*) continue;;
 			esac
-			echo "$soname $sover"
 			;;
 		esac
+		echo "$soname $sover"
 	done > "$controldir"/.provides-so
 
 	# now find the so dependencies
-- 
GitLab