Adding upstream version 2.25.15.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
This commit is contained in:
parent
10737b110a
commit
b543f2e88d
485 changed files with 191459 additions and 0 deletions
151
scripts/getbuildlog.sh
Executable file
151
scripts/getbuildlog.sh
Executable file
|
@ -0,0 +1,151 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# getbuildlog: download package build logs from Debian auto-builders
|
||||
#
|
||||
# Copyright © 2008 Frank S. Thomas <fst@debian.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
set -e
|
||||
|
||||
PROGNAME=${0##*/}
|
||||
|
||||
usage() {
|
||||
cat <<EOT
|
||||
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.
|
||||
|
||||
If <version-pattern> is "last" then only the logs for the most recent
|
||||
version of <package> found on buildd.debian.org will be downloaded.
|
||||
|
||||
If <version-pattern> is "last-all" then the logs for the most recent
|
||||
version found on each build log index will be downloaded.
|
||||
Options:
|
||||
-h, --help Show this help message.
|
||||
-V, --version Show version and copyright information.
|
||||
Examples:
|
||||
# Download amd64 build log for hello version 2.2-1:
|
||||
$PROGNAME hello 2\.2-1 amd64
|
||||
|
||||
# Download mips(el) build logs of all glibc versions:
|
||||
$PROGNAME glibc "" mips.*
|
||||
|
||||
# Download all build logs of backported wesnoth versions:
|
||||
$PROGNAME wesnoth .*bpo.*
|
||||
EOT
|
||||
}
|
||||
|
||||
version() {
|
||||
cat <<EOT
|
||||
This is $PROGNAME, from the Debian devscripts package, version ###VERSION###
|
||||
This code is copyright 2008 by Frank S. Thomas, all rights reserved.
|
||||
This program comes with ABSOLUTELY NO WARRANTY.
|
||||
You are free to redistribute this code under the terms of the
|
||||
GNU General Public License, version 2 or later.
|
||||
EOT
|
||||
}
|
||||
|
||||
[ "$1" = "-h" ] || [ "$1" = "--help" ] && usage && exit 0
|
||||
[ "$1" = "-V" ] || [ "$1" = "--version" ] && version && exit 0
|
||||
|
||||
[ $# -ge 1 ] && [ $# -le 3 ] || { usage && exit 1; }
|
||||
|
||||
if ! which wget > /dev/null 2>&1; then
|
||||
echo "$PROGNAME: this program requires the wget package to be installed";
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PACKAGE=$1
|
||||
VERSION=${2:-[:~+.[:alnum:]-]+}
|
||||
ARCH=${3:-[[:alnum:]-]+}
|
||||
ESCAPED_PACKAGE=$(echo "$PACKAGE" | sed -e 's/\+/\\\+/g')
|
||||
|
||||
GET_LAST_VERSION=no
|
||||
if [ "$VERSION" = "last" ]; then
|
||||
GET_LAST_VERSION=yes
|
||||
VERSION=[:~+.[:alnum:]-]+
|
||||
elif [ "$VERSION" = "last-all" ]; then
|
||||
GET_LAST_VERSION=all
|
||||
VERSION=[:~+.[:alnum:]-]+
|
||||
fi
|
||||
|
||||
PATTERN="fetch\.(cgi|php)\?pkg=$ESCAPED_PACKAGE&arch=$ARCH&ver=$VERSION&\
|
||||
stamp=[[:digit:]]+"
|
||||
|
||||
getbuildlog() {
|
||||
BASE=$1
|
||||
ALL_LOGS=$(mktemp --tmpdir getbuildlog.tmp.XXXXXXXXXX)
|
||||
|
||||
trap 'rm -f "$ALL_LOGS"' EXIT
|
||||
|
||||
wget -q -O $ALL_LOGS "$BASE/status/logs.php?pkg=$PACKAGE"
|
||||
|
||||
# Put each href in $ALL_LOGS on a separate line so that $PATTERN
|
||||
# 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/&/\&/g" -e "s/%2B/\+/g" -e "s/%3A/:/g" -e "s/%7E/~/g" $ALL_LOGS
|
||||
|
||||
# If only the last version was requested, extract and sort
|
||||
# the listed versions and determine the highest
|
||||
if [ "$GET_LAST_VERSION" != "no" ]; then
|
||||
LASTVERSION=$( \
|
||||
for match in $(grep -E -o "$PATTERN" $ALL_LOGS); do
|
||||
ver=${match##*ver=}
|
||||
echo ${ver%%&*}
|
||||
done | perl -e '
|
||||
use Devscripts::Versort;
|
||||
while (<>) { push @versions, [$_]; }
|
||||
@versions = Devscripts::Versort::versort(@versions);
|
||||
print $versions[0][0]; ' | sed -e "s/\+/\\\+/g"
|
||||
)
|
||||
|
||||
NEWPATTERN="fetch\.(cgi|php)\?pkg=$ESCAPED_PACKAGE&\
|
||||
arch=$ARCH&ver=$LASTVERSION&stamp=[[:digit:]]+"
|
||||
else
|
||||
NEWPATTERN=$PATTERN
|
||||
fi
|
||||
|
||||
for match in $(grep -E -o "$NEWPATTERN" $ALL_LOGS); do
|
||||
ver=${match##*ver=}
|
||||
ver=${ver%%&*}
|
||||
arch=${match##*arch=}
|
||||
arch=${arch%%&*}
|
||||
match=$(echo $match | sed -e 's/\+/%2B/g')
|
||||
# Mimic wget's behaviour, using a numerical suffix if needed,
|
||||
# to support downloading several logs for a given tuple
|
||||
# (unfortunately, -nc and -O means only the first file gets
|
||||
# downloaded):
|
||||
filename="${PACKAGE}_${ver}_${arch}.log"
|
||||
if [ -f "$filename" ]; then
|
||||
suffix=1
|
||||
while [ -f "$filename.$suffix" ]; do suffix=$((suffix+1)); done
|
||||
filename="$filename.$suffix"
|
||||
fi
|
||||
wget -O "$filename" "$BASE/status/$match&raw=1"
|
||||
done
|
||||
|
||||
rm -f $ALL_LOGS
|
||||
|
||||
if [ "$GET_LAST_VERSION" = "yes" ]; then
|
||||
PATTERN=$NEWPATTERN
|
||||
GET_LAST_VERSION=no
|
||||
fi
|
||||
}
|
||||
|
||||
getbuildlog https://buildd.debian.org
|
Loading…
Add table
Add a link
Reference in a new issue