[SCM] Debian Qt/KDE packaging tools branch, master, updated. debian/0.6.8-7-g821e1f9
Modestas Vainius
modax at alioth.debian.org
Sat Mar 13 17:39:34 UTC 2010
The following commit has been merged in the master branch:
commit 03fd00ec9379dbee49513a925bc8637e9c95f1a8
Author: Modestas Vainius <modestas at vainius.eu>
Date: Sat Mar 13 18:56:40 2010 +0200
Add a new tool `pkgkde-getbuildlogs`.
It can be used to get build logs from https://buildd.debian.org for the
specified package.
---
Makefile | 1 +
debian/changelog | 2 +
symbolshelper/pkgkde-getbuildlogs | 134 +++++++++++++++++++++++++++++++++++++
3 files changed, 137 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile
index 36bdfb8..4d79187 100644
--- a/Makefile
+++ b/Makefile
@@ -21,6 +21,7 @@ install:
install -D -m 0644 {} $(DESTDIR)/$(PERLLIBDIR)/{} \;
install -m 0755 $(SYMBOLSHELPER_DIR)/pkgkde-symbolshelper $(BINDIR)/pkgkde-symbolshelper
install -m 0755 $(SYMBOLSHELPER_DIR)/pkgkde-debs2symbols $(BINDIR)/pkgkde-debs2symbols
+ install -m 0755 $(SYMBOLSHELPER_DIR)/pkgkde-getbuildlogs $(BINDIR)/pkgkde-getbuildlogs
# Improved Dpkg::Shlibs and dpkg-gensymbols
cd $(SYMBOLSHELPER_DIR) && find Dpkg -type f -name "*.pm" -exec \
diff --git a/debian/changelog b/debian/changelog
index 5224a18..11674fc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,8 @@ pkg-kde-tools (0.6.9~pre1) UNRELEASED; urgency=low
been detected but symbols differences still remain (rare variant of
"possible incomplete subst detection"). libakonadi-kde4 in kdepimlibs was
hit by this bug.
+ * Add a new tool `pkgkde-getbuildlogs` that can be used to get
+ build logs from https://buildd.debian.org for the specified package.
-- Modestas Vainius <modax at debian.org> Wed, 03 Mar 2010 23:43:10 +0200
diff --git a/symbolshelper/pkgkde-getbuildlogs b/symbolshelper/pkgkde-getbuildlogs
new file mode 100755
index 0000000..75bb7c2
--- /dev/null
+++ b/symbolshelper/pkgkde-getbuildlogs
@@ -0,0 +1,134 @@
+#!/bin/sh
+
+set -e
+
+info() {
+ echo "* $@" >&2
+}
+
+info2() {
+ echo " -" "$@" >&2
+}
+
+error() {
+ echo "$PROGNAME: error:" "$@" >&2
+ exit 1
+}
+
+warning() {
+ echo "$PROGNAME: warning:" "$@" >&2
+}
+
+usage() {
+ echo "$PROGNAME: usage:" "$0" "[ -d destdir ]" "[ -v version ]" "[ package ]" "[ distribution ]" >&2
+}
+
+
+download_logs() {
+ local destdir pkg distro ver url
+ destdir="$1"
+ pkg="$2"
+ distro="$3"
+ ver="$4"
+ # Download debs
+ url="https://buildd.debian.org/pkg.cgi?pkg=$pkg"
+ if [ -n "$ver" ]; then
+ url="${url}&ver=$ver"
+ elif [ -n "$distro" ]; then
+ url="${url}&dist=$distro"
+ fi
+
+ info "Downloading referenced build logs from $url ..."
+ wget -e robots=off --timestamping --no-directories --directory-prefix="$destdir" \
+ --recursive --level=1 --no-parent --accept 'fetch.cgi*' "$url"
+}
+
+rename_logs() {
+ local destdir pkg
+ local IFS f files old
+ destdir="$1"
+ pkg="$2"
+ files="`ls -1 "$destdir" 2>/dev/null |
+ sed -n "/^fetch\.cgi?.*pkg=${pkg}/ {"'
+ p;
+ s/fetch\.cgi//;
+ s/[?;&][^=]\+=\([^?;&]\+\)/_\1/g;
+ s/^_//;
+ s/$/.build/;
+ p;
+ }'`";
+ IFS='
+'
+
+ if [ -n "$files" ]; then
+ for f in $files; do
+ if [ -n "$old" ]; then
+ info2 "$f"
+ mv "$destdir/$old" "$destdir/$f"
+ old=""
+ else
+ old="$f"
+ fi
+ done
+
+ return 0
+ else
+ return 1
+ fi
+}
+
+# Process options
+VERSION=""
+DESTDIR=""
+while getopts "d:v:" name; do
+ case "$name" in
+ d) DESTDIR="$OPTARG" ;;
+ v) VERSION="$OPTARG" ;;
+ \?) usage; exit 2 ;;
+ esac
+done
+
+shift `expr $OPTIND - 1`
+
+PACKAGE="$1"
+DISTRO="$2"
+
+PROGNAME=`basename "$0"`
+
+if [ -f debian/changelog ]; then
+ _parsechangelog=`dpkg-parsechangelog`
+ if [ -z "$PACKAGE" ]; then
+ PACKAGE=$(echo "$_parsechangelog" | sed -n '/^Source:/ {s/[^:]\+:[[:space:]]*\(.\+\)/\1/; p; q}')
+ fi
+ if [ -n "$PACKAGE" ] && [ -z "$VERSION" ] && [ -z "$DISTRO" ]; then
+ DISTRO=$(echo "$_parsechangelog" | sed -n '/^Distribution:/ {s/[^:]\+:[[:space:]]*\(.\+\)/\1/; p; q}')
+ if [ "$DISTRO" = "UNRELEASED" ]; then
+ # Get distro from the next to current entry
+ _parsechangelog=`dpkg-parsechangelog -c1 -o1`
+ DISTRO=$(echo "$_parsechangelog" | sed -n '/^Distribution:/ {s/[^:]\+:[[:space:]]*\(.\+\)/\1/; p; q}')
+ fi
+ fi
+fi
+
+if [ -z "$PACKAGE" ] || ( [ -z "$VERSION" ] && [ -z "$DISTRO" ] ); then
+ usage
+ exit 2
+fi
+
+# Determine destination directory to store logs
+destdir="${DESTDIR:-${PACKAGE}_${VERSION:-${DISTRO}}_logs}"
+
+info "Selected output directory for logs:" "$destdir/"
+if [ ! -d "$destdir" ]; then
+ mkdir "$destdir"
+fi
+
+download_logs "$destdir" "$PACKAGE" "$DISTRO" "$VERSION"
+rmdir "$destdir" 2>/dev/null || true
+
+info "Downloaded build logs (stored to $destdir):"
+if ! rename_logs "$destdir" "$PACKAGE"; then
+ error "no build logs has been downloaded"
+fi
+
+exit 0
--
Debian Qt/KDE packaging tools
More information about the pkg-kde-commits
mailing list