From fb83d0ccdda584a5aa9a93d87c6c71a03bc24ed4 Mon Sep 17 00:00:00 2001 From: Steve Langasek Date: Mon, 11 Jun 2012 22:36:02 +0000 Subject: prepare-release: declare the packages needed as source build deps. --- prepare-release | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'prepare-release') diff --git a/prepare-release b/prepare-release index 2d8502d7f..a9cc49cfd 100755 --- a/prepare-release +++ b/prepare-release @@ -1,11 +1,15 @@ #!/bin/sh +set -e + 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)" +dpkg-checkbuilddeps -d 'libxml2-utils' + if [ "$1" = 'pre-export' ]; then libraryversioncheck() { local LIBRARY="$1" -- cgit v1.2.3 From 0c268997152d3488c79b6e8fb1af6ac1fc87b4c3 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 7 Dec 2013 12:56:26 +0100 Subject: fix release script to deal with vendors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Call xmllint with each vendor to check if any vendor specific errors are present, but check the translations only with one vendor to check for translation specifics – vendor and translation specific isn't possible. Git-Dch: Ignore --- prepare-release | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'prepare-release') diff --git a/prepare-release b/prepare-release index a9cc49cfd..d422e386c 100755 --- a/prepare-release +++ b/prepare-release @@ -51,11 +51,20 @@ elif [ "$1" = 'post-build' ]; then else echo >&2 'REMEMBER: Change to a valid distribution before release' fi - if ! xmllint --nonet --valid --noout $(find doc/ -maxdepth 1 -name '*.xml'); then - echo >&2 'WARNING: original docbook manpages have errors!' - elif ! xmllint --nonet --valid --noout $(find doc/ -mindepth 2 -maxdepth 2 -name '*.xml'); then - echo >&2 'WARNING: translated docbook manpages have errors, but originals are okay!' + + # check the manpages with each vendor for vendor-specific errors… + find vendor -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f 2 | while read DISTRO; do + ln -sf ../vendor/${DISTRO}/apt-vendor.ent doc + if ! xmllint --nonet --valid --noout $(find doc/ -maxdepth 1 -name '*.xml'); then + echo >&2 "WARNING: original docbook manpages have errors with vendor ${DISTRO}!" + fi + done + # … but check the translations only with one vendor for translation-specific errors + if ! xmllint --nonet --valid --noout $(find doc/ -mindepth 2 -maxdepth 2 -name '*.xml'); then + echo >&2 "WARNING: translated docbook manpages have errors!" fi + rm -f doc/apt-vendor.ent + elif [ "$1" = 'library' ]; then librarysymbols() { echo "Checking $1 in version $2" -- cgit v1.2.3 From 3fadd319255fc4bddb498a23a81e4ffe8588c701 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 7 Dec 2013 13:05:19 +0100 Subject: tell the release script that we use git now Git-Dch: Ignore --- prepare-release | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'prepare-release') diff --git a/prepare-release b/prepare-release index d422e386c..69ca83887 100755 --- a/prepare-release +++ b/prepare-release @@ -47,7 +47,7 @@ if [ "$1" = 'pre-export' ]; then sed -i -e "s/^$//" doc/apt-verbatim.ent elif [ "$1" = 'post-build' ]; then if [ "$DISTRIBUTION" != "UNRELEASED" ]; then - echo >&2 "REMEMBER: Tag this release with »bzr tag ${VERSION}« if you are satisfied" + echo >&2 "REMEMBER: Tag this release with »git tag ${VERSION}« if you are satisfied" else echo >&2 'REMEMBER: Change to a valid distribution before release' fi @@ -86,7 +86,7 @@ else \t$0 post-build \t$0 library -If you use »bzr builddeb« you can leave this script alone as it will +If you use »git buildpackage« 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. -- cgit v1.2.3 From f1d87437cc6336fb5427d041bac262f9296679ad Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 7 Dec 2013 13:48:46 +0100 Subject: update libapt-pkg4.12 symbols file also fixing the release script code to deal with 'set -e' mode while checking the symbols file. --- prepare-release | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'prepare-release') diff --git a/prepare-release b/prepare-release index 69ca83887..5dc5a63a7 100755 --- a/prepare-release +++ b/prepare-release @@ -69,14 +69,14 @@ elif [ "$1" = 'library' ]; then librarysymbols() { echo "Checking $1 in version $2" local tmpfile=$(mktemp) - dpkg-gensymbols -p${1}${2} -ebuild/bin/${1}.so.${2} -Idebian/${1}${2}.symbols -O/dev/null 2> /dev/null > $tmpfile + dpkg-gensymbols -p${1}${2} -ebuild/bin/${1}.so.${2} -Idebian/${1}${2}.symbols -O/dev/null 2> /dev/null > $tmpfile || true echo '=== Missing symbols:' - grep '^+#MISSING' $tmpfile + grep '^+#MISSING' $tmpfile || true 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 + rm -f $tmpfile } librarysymbols 'libapt-pkg' "${LIBAPTPKGVERSION}" echo -- cgit v1.2.3 From 01c790a7f6f57c5afe3e555450b56c7ad1df687b Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 7 Dec 2013 14:12:52 +0100 Subject: ensure prepare-release works in the right directory Git-Dch: Ignore --- prepare-release | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'prepare-release') diff --git a/prepare-release b/prepare-release index 5dc5a63a7..dfa37631b 100755 --- a/prepare-release +++ b/prepare-release @@ -1,15 +1,18 @@ #!/bin/sh - set -e +dpkg-checkbuilddeps -d 'libxml2-utils' + +if [ -n "${GBP_BUILD_DIR}" ]; then + cd "$GBP_BUILD_DIR" +fi + 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)" -dpkg-checkbuilddeps -d 'libxml2-utils' - if [ "$1" = 'pre-export' ]; then libraryversioncheck() { local LIBRARY="$1" @@ -59,9 +62,14 @@ elif [ "$1" = 'post-build' ]; then echo >&2 "WARNING: original docbook manpages have errors with vendor ${DISTRO}!" fi done - # … but check the translations only with one vendor for translation-specific errors - if ! xmllint --nonet --valid --noout $(find doc/ -mindepth 2 -maxdepth 2 -name '*.xml'); then - echo >&2 "WARNING: translated docbook manpages have errors!" + # lets assume we will always have a german manpage translation + if [ -e 'doc/de/' ]; then + # … but check the translations only with one vendor for translation-specific errors + if ! xmllint --nonet --valid --noout $(find doc/ -mindepth 2 -maxdepth 2 -name '*.xml'); then + echo >&2 "WARNING: translated docbook manpages have errors!" + fi + else + echo >&2 "ERROR: translated manpages need to be build before they can be checked!" fi rm -f doc/apt-vendor.ent -- cgit v1.2.3 From 4c90bc28889b9570096148e18e4433d18ab51a12 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 14 Feb 2014 22:20:17 +0100 Subject: update symbols file with hints from the buildlogs --- prepare-release | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'prepare-release') diff --git a/prepare-release b/prepare-release index dfa37631b..6141ce6e4 100755 --- a/prepare-release +++ b/prepare-release @@ -13,6 +13,18 @@ DISTRIBUTION=$(dpkg-parsechangelog | sed -n -e '/^Distribution:/s/^Distribution: 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)" +librarysymbolsfromfile() { + local MISSING="$(grep '^+#MISSING' "$1")" + echo '=== Missing optional symbols:' + echo -n "$MISSING" | grep '|optional=' || true + echo '=== Missing required symbols:' + echo -n "$MISSING" | grep -v '|optional=' || true + echo '=== New symbols:' + grep '^+ ' "$1" | cut -d' ' -f 2 | cut -d'@' -f 1 | c++filt | while read line; do + echo " (c++)\"${line}@Base\" $VERSION" + done | sort -u +} + if [ "$1" = 'pre-export' ]; then libraryversioncheck() { local LIBRARY="$1" @@ -78,17 +90,17 @@ elif [ "$1" = 'library' ]; then echo "Checking $1 in version $2" local tmpfile=$(mktemp) dpkg-gensymbols -p${1}${2} -ebuild/bin/${1}.so.${2} -Idebian/${1}${2}.symbols -O/dev/null 2> /dev/null > $tmpfile || true - echo '=== Missing symbols:' - grep '^+#MISSING' $tmpfile || true - 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 + librarysymbolsfromfile "$tmpfile" rm -f $tmpfile } librarysymbols 'libapt-pkg' "${LIBAPTPKGVERSION}" echo librarysymbols 'libapt-inst' "${LIBAPTINSTVERSION}" +elif [ "$1" = 'buildlog' ]; then + while [ -n "$2" ]; do + librarysymbolsfromfile "$2" + shift + done else echo >&1 "Usage:\t$0 pre-export \t$0 post-build -- cgit v1.2.3