]> git.saurik.com Git - apt.git/blobdiff - prepare-release
German updated (Chris Leick). Closes: #673410
[apt.git] / prepare-release
index e02157b2461de6733295d6a6217922908098f51a..821726ae2607a32653324a9b4d9c42345adc5903 100755 (executable)
@@ -3,7 +3,27 @@
 VERSION=$(dpkg-parsechangelog | sed -n -e '/^Version:/s/^Version: //p')
 DISTRIBUTION=$(dpkg-parsechangelog | sed -n -e '/^Distribution:/s/^Distribution: //p')
 
 VERSION=$(dpkg-parsechangelog | sed -n -e '/^Version:/s/^Version: //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() {
+               LIBRARY="$1"
+               VERSION="$2"
+               if [ ! -e "debian/${LIBRARY}${VERSION}.symbols" ]; then
+                  echo >&2 "Library ${LIBRARY} in version ${VERSION} has no symbols file! (maybe forgot to rename?)"
+                  exit 1
+               fi
+               if [ "$(head -n1 "debian/${LIBRARY}${VERSION}.symbols")" != "${LIBRARY}.so.${VERSION} ${LIBRARY}${VERSION} #MINVER#" ]; then
+                  echo >&2 "Library ${LIBRARY}${VERSION} has incorrect version in symbol header! (»$(head -n1 "debian/${LIBRARY}${VERSION}.symbols")«)"
+                  exit 2
+               fi
+       }
+
+       libraryversioncheck 'libapt-pkg' "$LIBAPTPKGVERSION"
+       libraryversioncheck 'libapt-inst' "$LIBAPTINSTVERSION"
+
+
        if [ "$DISTRIBUTION" = 'sid' ]; then
                echo >&2 '»sid« is not a valid distribution. Replace it with »unstable« for you'
                sed -i -e 's/) sid; urgency=/) unstable; urgency=/' debian/changelog
        if [ "$DISTRIBUTION" = 'sid' ]; then
                echo >&2 '»sid« is not a valid distribution. Replace it with »unstable« for you'
                sed -i -e 's/) sid; urgency=/) unstable; urgency=/' debian/changelog
@@ -26,12 +46,32 @@ elif [ "$1" = 'post-build' ]; then
        else
                echo >&2 'REMEMBER: Change to a valid distribution before release'
        fi
        else
                echo >&2 'REMEMBER: Change to a valid distribution before release'
        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
        echo >&1 "Usage:\t$0 pre-export
 \t$0 post-build
 else
        echo >&1 "Usage:\t$0 pre-export
 \t$0 post-build
+\t$0 library
 
 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
 »pre-export« to update po and pot files as well as version numbering.
 
 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
 »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