Selaa lähdekoodia

add a manually runable library action to help in maintaining the symbols files

David Kalnischkies 14 vuotta sitten
vanhempi
commit
5ca28ebd74
1 muutettua tiedostoa jossa 26 lisäystä ja 3 poistoa
  1. 26 3
      prepare-release

+ 26 - 3
prepare-release

@@ -3,6 +3,9 @@
 VERSION=$(dpkg-parsechangelog | sed -n -e '/^Version:/s/^Version: //p')
 VERSION=$(dpkg-parsechangelog | sed -n -e '/^Version:/s/^Version: //p')
 DISTRIBUTION=$(dpkg-parsechangelog | sed -n -e '/^Distribution:/s/^Distribution: //p')
 DISTRIBUTION=$(dpkg-parsechangelog | sed -n -e '/^Distribution:/s/^Distribution: //p')
 
 
+LIBAPTPKGVERSION="$(awk -v ORS='.' '/^\#define APT_PKG_M/ {print $3}' apt-pkg/init.h | sed 's/\.$//')"
+LIBAPTINSTVERSION="$(egrep '^MAJOR=' apt-inst/makefile |cut -d '=' -f 2)"
+
 if [ "$1" = 'pre-export' ]; then
 if [ "$1" = 'pre-export' ]; then
 	libraryversioncheck() {
 	libraryversioncheck() {
 		LIBRARY="$1"
 		LIBRARY="$1"
@@ -17,8 +20,8 @@ if [ "$1" = 'pre-export' ]; then
 		fi
 		fi
 	}
 	}
 
 
-	libraryversioncheck 'libapt-pkg' "$(awk -v ORS='.' '/^\#define APT_PKG_M/ {print $3}' apt-pkg/init.h | sed 's/\.$//')"
-	libraryversioncheck 'libapt-inst' "$(egrep '^MAJOR=' apt-inst/makefile |cut -d '=' -f 2)"
+	libraryversioncheck 'libapt-pkg' "$LIBAPTPKGVERSION"
+	libraryversioncheck 'libapt-inst' "$LIBAPTINSTVERSION"
 
 
 
 
 	if [ "$DISTRIBUTION" = 'sid' ]; then
 	if [ "$DISTRIBUTION" = 'sid' ]; then
@@ -43,12 +46,32 @@ elif [ "$1" = 'post-build' ]; then
 	else
 	else
 		echo >&2 'REMEMBER: Change to a valid distribution before release'
 		echo >&2 'REMEMBER: Change to a valid distribution before release'
 	fi
 	fi
+elif [ "$1" = 'library' ]; then
+	librarysymbols() {
+		echo "Checking $1 in version $2"
+		tmpfile=$(mktemp)
+		dpkg-gensymbols -p${1}${2} -ebuild/bin/${1}.so.${2} -Idebian/${1}${2}.symbols -O/dev/null 2> /dev/null > $tmpfile
+		echo '=== Missing symbols:'
+		grep '^+#MISSING' $tmpfile
+		echo '=== New symbols:'
+		grep '^+ ' $tmpfile | cut -d' ' -f 2 | cut -d'@' -f 1 | c++filt | while read line; do
+			echo " (c++)\"${line}@Base\" $VERSION"
+		done | sort -u
+		rm $tmpfile
+	}
+	librarysymbols 'libapt-pkg' "${LIBAPTPKGVERSION}"
+	echo
+	librarysymbols 'libapt-inst' "${LIBAPTINSTVERSION}"
 else
 else
 	echo >&1 "Usage:\t$0 pre-export
 	echo >&1 "Usage:\t$0 pre-export
 \t$0 post-build
 \t$0 post-build
+\t$0 library
 
 
 If you use »bzr builddeb« you can leave this script alone as it will
 If you use »bzr builddeb« you can leave this script alone as it will
 be run at the right places auto-magically. Otherwise you should use
 be run at the right places auto-magically. Otherwise you should use
 »pre-export« to update po and pot files as well as version numbering.
 »pre-export« to update po and pot files as well as version numbering.
-»post-build« can be used to run some more or less useful checks later on."
+»post-build« can be used to run some more or less useful checks later on.
+
+»library« isn't run automatically but can be useful for maintaining the
+(more or less experimental) symbols files we provide"
 fi
 fi