Package: devscripts Version: 2.10.35 Severity: wishlist Hi,
I would like to see the appended patches be applied to getbuildlog. Thanks. Bye, Jörg. -- System Information: Debian Release: unstable/experimental APT prefers unstable APT policy: (900, 'unstable'), (700, 'experimental') Architecture: powerpc (ppc) Kernel: Linux 2.6.27-rc3 Locale: LANG=C, LC_CTYPE=C (charmap=UTF-8) (ignored: LC_ALL set to de_DE.UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages devscripts depends on: ii dpkg-dev 1.14.20 Debian package development tools ii libc6 2.7-13 GNU C Library: Shared libraries ii perl 5.10.0-12 Larry Wall's Practical Extraction Versions of packages devscripts recommends: pn at <none> (no description available) ii bsd-mailx [mailx] 8.1.2-0.20071201cvs-3 A simple mail user agent ii curl 7.18.2-7 Get a file from an HTTP, HTTPS or ii cvs 1:1.12.13-11 Concurrent Versions System ii dctrl-tools 2.13.0 Command-line tools to process Debi ii debian-keyring 2008.07.22 GnuPG (and obsolete PGP) keys of D ii debian-maintainers 1.42 GPG keys of Debian maintainers ii dillo [www-browser 0.8.6-3 Small and fast web browser ii dput 0.9.2.32 Debian package upload tool ii elinks [www-browse 0.11.4-2 advanced text-mode WWW browser pn equivs <none> (no description available) ii fakeroot 1.9.6 Gives a fake root environment ii git-core 1:1.5.6.3-1 fast, scalable, distributed revisi ii gnupg 1.4.9-3 GNU privacy guard - a free PGP rep ii iceweasel [www-bro 3.0.1-1 lightweight web browser based on M pn libauthen-sasl-per <none> (no description available) ii libcrypt-ssleay-pe 0.57-1+b1 Support for https protocol in LWP pn libparse-debcontro <none> (no description available) pn libsoap-lite-perl <none> (no description available) pn libterm-size-perl <none> (no description available) ii libtimedate-perl 1.1600-9 Time and date functions for Perl ii liburi-perl 1.35.dfsg.1-1 Manipulates and accesses URI strin ii libwww-perl 5.813-1 WWW client/server library for Perl pn libyaml-syck-perl <none> (no description available) ii links2 [www-browse 2.1pre37-1.1 Web browser running in both graphi ii lintian 1.24.3 Debian package checker ii lsb-release 3.2-19 Linux Standard Base version report ii lynx-cur [www-brow 2.8.7dev9-1.2 Text-mode WWW Browser with NLS sup ii mailx 1:20071201-3 Transitional package for mailx ren ii man-db 2.5.2-2 on-line manual pager ii netsurf [www-brows 1.2-1 Small portable web browser with CS ii openssh-client [ss 1:5.1p1-2 secure shell client, an rlogin/rsh ii patch 2.5.9-5 Apply a diff file to an original ii patchutils 0.2.31-4 Utilities to work with patches ii strace 4.5.17+cvs080723-2 A system call tracer ii subversion 1.5.1dfsg1-1 Advanced version control system ii unzip 5.52-12 De-archiver for .zip files ii w3m [www-browser] 0.5.2-2+b1 WWW browsable pager with excellent ii wdiff 0.5-18 Compares two files word by word ii wget 1.11.4-1 retrieves files from the web Versions of packages devscripts suggests: ii build-essential 11.4 Informational list of build-essent pn cvs-buildpackage <none> (no description available) pn devscripts-el <none> (no description available) ii gnuplot 4.2.3-1 A command-line driven interactive pn libfile-desktopentry-perl <none> (no description available) pn libnet-smtp-ssl-perl <none> (no description available) ii mutt 1.5.18-4 text-based mailreader supporting M pn svn-buildpackage <none> (no description available) -- no debconf information
From 665ef7f0211de7b83a38f86d746da51793496e77 Mon Sep 17 00:00:00 2001 From: =?utf-8?q?J=C3=B6rg=20Sommer?= <[EMAIL PROTECTED]> Date: Thu, 21 Aug 2008 11:22:26 +0200 Subject: [PATCH 1/5] Improve variable assignment The variable expansion ${X:-Y} means expand $X if $X is set and not empty, else expand Y. This is exactly what the former expression did. --- getbuildlog | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/getbuildlog b/getbuildlog index 59768e9..daa0910 100755 --- a/getbuildlog +++ b/getbuildlog @@ -65,8 +65,8 @@ if [ ! -x "`which wget 2>/dev/null`" ]; then fi PACKAGE=$1 -VERSION=`(test -z "$2" && echo "[:~+.[:alnum:]-]+") || echo "$2"` -ARCH=`(test -z "$3" && echo "[[:alnum:]-]+") || echo "$3"` +VERSION=${2:-[:~+.[:alnum:]-]+} +ARCH=${3:-[[:alnum:]-]+} ESCAPED_PACKAGE=`echo "$PACKAGE" | sed -e 's/\+/\\\+/g'` PATTERN="fetch\.(cgi|php)\?&pkg=$ESCAPED_PACKAGE&ver=$VERSION&arch=$ARCH&\ -- 1.5.6.3
From 99a03bc528ed4ade5631e39d02b11bd7c74ea630 Mon Sep 17 00:00:00 2001 From: =?utf-8?q?J=C3=B6rg=20Sommer?= <[EMAIL PROTECTED]> Date: Thu, 21 Aug 2008 11:34:48 +0200 Subject: [PATCH 2/5] Replace string operations by shell expressions MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit The task to extract these fields from the string can be done with shell utils which saves pipes, forkes, … --- getbuildlog | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/getbuildlog b/getbuildlog index daa0910..7b4a781 100755 --- a/getbuildlog +++ b/getbuildlog @@ -85,8 +85,10 @@ getbuildlog() { sed -i -e "s/%2B/\+/g" -e "s/%3A/:/g" $ALL_LOGS for match in `grep -E -o "$PATTERN" $ALL_LOGS`; do - ver=`echo $match | cut -d'&' -f3 | cut -d'=' -f2` - arch=`echo $match | cut -d'&' -f4 | cut -d'=' -f2` + ver=${match##*ver=} + ver=${ver%%&*} + arch=${match##*arch=} + arch=${arch%%&*} match=`echo $match | sed -e 's/\+/%2B/g'` wget -O "${PACKAGE}_${ver}_${arch}.log" "$BASE/$match&file=log" done -- 1.5.6.3
From ede448c20122ba776ea7b68db7cff44efc0131de Mon Sep 17 00:00:00 2001 From: =?utf-8?q?J=C3=B6rg=20Sommer?= <[EMAIL PROTECTED]> Date: Thu, 21 Aug 2008 14:43:01 +0200 Subject: [PATCH 3/5] Print a warning if downloading a log a second time Some packages were built by more than one buildd. Tell the user about it. Example: http://buildd.debian-ports.org/fetch.php?&pkg=slrn&ver=0.9.8.1pl1-28&arch=armel http://experimental.debian.net/fetch.php?&pkg=slrn&ver=0.9.8.1pl1-28&arch=armel --- getbuildlog | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/getbuildlog b/getbuildlog index 7b4a781..fc70317 100755 --- a/getbuildlog +++ b/getbuildlog @@ -90,6 +90,9 @@ getbuildlog() { arch=${match##*arch=} arch=${arch%%&*} match=`echo $match | sed -e 's/\+/%2B/g'` + if [ -e "${PACKAGE}_${ver}_${arch}.log" ]; then + echo "Found ${PACKAGE}_${ver}_${arch}.log a second time on $BASE" + fi wget -O "${PACKAGE}_${ver}_${arch}.log" "$BASE/$match&file=log" done -- 1.5.6.3
From 2138b8ce9337f85087ded3922cdcc68c7d03319f Mon Sep 17 00:00:00 2001 From: =?utf-8?q?J=C3=B6rg=20Sommer?= <[EMAIL PROTECTED]> Date: Thu, 21 Aug 2008 14:46:27 +0200 Subject: [PATCH 4/5] Replace %7E by ~ in URLs --- getbuildlog | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/getbuildlog b/getbuildlog index fc70317..d1e7508 100755 --- a/getbuildlog +++ b/getbuildlog @@ -82,7 +82,7 @@ getbuildlog() { # matches only one href. This is required because grep is greedy. sed -i -e "s/href=\"/\nhref=\"/g" $ALL_LOGS # Quick-and-dirty unescaping - sed -i -e "s/%2B/\+/g" -e "s/%3A/:/g" $ALL_LOGS + sed -i -e "s/%2B/\+/g" -e "s/%3A/:/g" -e "s/%7E/~/g" $ALL_LOGS for match in `grep -E -o "$PATTERN" $ALL_LOGS`; do ver=${match##*ver=} -- 1.5.6.3
From 95031a64e3d5b0894a91b299ba47c7b95ed3fcbd Mon Sep 17 00:00:00 2001 From: =?utf-8?q?J=C3=B6rg=20Sommer?= <[EMAIL PROTECTED]> Date: Thu, 21 Aug 2008 14:50:43 +0200 Subject: [PATCH 5/5] Fetch only last version if version parameter is last It's much more handy, especially in scripts, to fetch only the last version without having to know the version number. --- getbuildlog | 17 +++++++++++++++-- getbuildlog.1 | 4 +++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/getbuildlog b/getbuildlog index d1e7508..a005ad8 100755 --- a/getbuildlog +++ b/getbuildlog @@ -28,7 +28,8 @@ Usage: $PROGNAME <package> [<version-pattern>] [<architecture-pattern>] Downloads build logs of <package> from Debian auto-builders. If <version-pattern> or <architecture-pattern> are given, only build logs whose versions and architectures, respectively, matches the given patterns - are downloaded. + are downloaded. If <version-pattern> is last, only download the build logs + of the last version. Options: -h, --help Show this help message. -V, --version Show version and copyright information. @@ -69,6 +70,13 @@ VERSION=${2:-[:~+.[:alnum:]-]+} ARCH=${3:-[[:alnum:]-]+} ESCAPED_PACKAGE=`echo "$PACKAGE" | sed -e 's/\+/\\\+/g'` +if [ "$VERSION" = last ]; then + GET_ONLY_LAST_VERSION=true + VERSION='[:~+.[:alnum:]-]+' +else + GET_ONLY_LAST_VERSION=false +fi + PATTERN="fetch\.(cgi|php)\?&pkg=$ESCAPED_PACKAGE&ver=$VERSION&arch=$ARCH&\ stamp=[[:digit:]]+" @@ -84,9 +92,14 @@ getbuildlog() { # Quick-and-dirty unescaping sed -i -e "s/%2B/\+/g" -e "s/%3A/:/g" -e "s/%7E/~/g" $ALL_LOGS - for match in `grep -E -o "$PATTERN" $ALL_LOGS`; do + last_ver= + for match in `grep -E -o "$PATTERN" $ALL_LOGS | tac`; do ver=${match##*ver=} ver=${ver%%&*} + if $GET_ONLY_LAST_VERSION && [ "${last_ver:-$ver}" != "$ver" ]; then + break + fi + last_ver=$ver arch=${match##*arch=} arch=${arch%%&*} match=`echo $match | sed -e 's/\+/%2B/g'` diff --git a/getbuildlog.1 b/getbuildlog.1 index 9861332..0376600 100644 --- a/getbuildlog.1 +++ b/getbuildlog.1 @@ -11,7 +11,9 @@ auto\-builders. It downloads build logs of all versions and for all architectures if \fIversion\-pattern\fR and \fIarchitecture\-pattern\fR are not specified or empty, otherwise only build logs whose versions match \fIversion-pattern\fR and build logs whose architectures match -\fIarchitecture-pattern\fR will be downloaded. The version and architecture +\fIarchitecture-pattern\fR will be downloaded. If \fIversion\-pattern\fP is +last, only download the build logs of the last version. The version and +architecture patterns are interpreted as extended regular expressions as described in \fBgrep\fR(1). .SH OPTIONS -- 1.5.6.3
signature.asc
Description: Digital signature http://en.wikipedia.org/wiki/OpenPGP