X-Git-Url: https://git.tld-linux.org/?a=blobdiff_plain;f=client%2Fmake-request.sh;h=aebc5dd2736e13127ae0181e3f49ca075b4e8980;hb=7b38371253db760e5cd2d518b717b326a8aaf81a;hp=35b94f9fe5fb374a19cc61a12cb0f51ffdfb3cc6;hpb=98b7c2339a5c5de5d0472943c2b14cc5527fdf6d;p=tld-builder.git diff --git a/client/make-request.sh b/client/make-request.sh index 35b94f9..aebc5dd 100755 --- a/client/make-request.sh +++ b/client/make-request.sh @@ -1,4 +1,6 @@ #!/bin/sh +# vim:noet:ts=4:sw=4 +VERSION=1.89 # prevent "*" from being expanded in builders var set -f @@ -15,7 +17,9 @@ dist= url= no_depend=no verbose=no -autotag=no +pkgrevision=no +requester_override= +relup=no if [ -x /usr/bin/python ]; then send_mode="python" @@ -34,14 +38,14 @@ if [ ! -f "$USER_CFG" ]; then echo "Creating config file $USER_CFG. You *must* edit it." cat > $USER_CFG <> sys.stdout, "Request queued via HTTP." esac } +# htmlspecialchars: escape <, > and & +hsc() { + local input=$1 + echo -E "$input" | sed -e 's,&,\&,g;s,<,\<,g;s,>,\>,g' +} + # simple df_fetcher, based on packages/fetchsrc_request # TODO: tcp (smtp) mode # TODO: adjust for ~/.requestrc config @@ -115,7 +140,7 @@ df_fetch() { local specs="$@" # Sending by - local MAILER='/usr/sbin/sendmail' + local MAILER='/usr/lib/sendmail' # MAILER='/usr/bin/msmtp' # Sending via local VIA="SENDMAIL" @@ -126,23 +151,24 @@ df_fetch() { # VIA_ARGS='-a gmail' # # DISTFILES EMAIL - local DMAIL="distfiles@pld-linux.org" + local DMAIL="df@tld-linux.org" local HOST=$(hostname -f) local LOGIN=${requester%@*} + local SPEC BRANCH for spec in $specs; do - local SPEC=$(echo "$spec" | sed -e 's|:.*||') - local BRANCH=$(echo "$spec" | sed -e 's|.*:||') + SPEC=$(echo "$spec" | sed -e 's|:.*||') + SPEC=${SPEC%.spec} + BRANCH=$(echo "$spec" | sed -e 's|.*:||') echo >&2 "Distfiles Request: $SPEC:$BRANCH via $MAILER ${VIA_ARGS:+ ($VIA_ARGS)}" cat <<-EOF | "$MAILER" -t -i $VIA_ARGS To: $DMAIL From: $LOGIN <$LOGIN@$HOST> Subject: fetchsrc_request notify - X-CVS-Module: SPECS X-distfiles-request: yes X-Login: $LOGIN - X-Spec: $SPEC + X-Package: $SPEC X-Branch: $BRANCH X-Flags: force-reply @@ -151,45 +177,33 @@ df_fetch() { done } -# autotag from rpm-build-macros -# displays latest used tag for a specfile -autotag() { - local out s - for s in "$@"; do - # strip branches - s=${s%:*} - # ensure package ends with .spec - s=${s%.spec}.spec - out=$(cvs status -v $s | awk "!/Sticky/&&/auto-$dist-/{if (!a++) print \$1}") - echo "$s:$out" - done -} - -# get autotag for specs -# WARNING: This may checkout some files from CVS -get_autotag() { - local pkg spec rpmdir +# get package revision for specs +get_pkgrevision() { + local pkgrev pkg spec rpmdir rpmdir=$(rpm -E %_topdir) - cd $rpmdir for pkg in "$@"; do + cd $rpmdir # strip branches pkg=${pkg%:*} # strip .spec extension pkg=${pkg%.spec} - # checkout only if missing - if [ ! -e $pkg/$pkg.spec ]; then - $rpmdir/builder -g $pkg -ns -r HEAD 1>&2 - fi - if [ ! -e $pkg/$pkg.spec ]; then - # just print it out, to fallback to base pkg name - echo "$pkg" + wget http://pkgrevs.tld-linux.org/list/$pkg -O /tmp/$pkg.tags 1>/dev/null 2>&1 + pkgrev=$(head -n 1 /tmp/$pkg.tags) + rm -f /tmp/$pkg.tags + if [ "x$pkgrev" = "x" ]; then + echo "$pkg.spec" else - autotag $pkg/$pkg.spec + echo "$pkg.spec:$pkgrev" fi done } +relup() { + local script=$(dirname $(rpm -E %_topdir))/rpm-build-tools/relup.sh + $script -u -i "$@" +} + usage() { cat <$requester_override" + fi + msg "Queue-ID: $id" echo # job to depend on local depend= - local b i=1 + local b i=1 val local name branch builders_xml for b in $builders; do @@ -694,7 +723,7 @@ gen_req() { echo -E >&2 "* Command: $command" echo " " echo " " - echo -E "$command" | sed -e 's,&,\&,g;s,<,\<,g;s,>,\>,g' + hsc "$command" echo "" echo " " echo "$builders_xml" @@ -725,6 +754,17 @@ gen_req() { echo " $branch" echo " ${kernel:+$kernel}" echo " ${target:+$target}" + + oIFS=$IFS; IFS=$cr + for b in $define; do + [ -z "$b" ] && continue + value=${b#*=} + b=${b%%=*} + echo " $(hsc "$value")" + msg "- define $b=$value" + done + IFS=$oIFS + echo " " echo for b in $with; do @@ -750,7 +790,7 @@ gen_req() { echo -E >&2 "* Post-Command: $post_command" echo " " echo " " - echo -E "$post_command" | sed -e 's,&,\&,g;s,<,\<,g;s,>,\>,g' + hsc "$post_command" echo "" echo " " echo "$builders_xml" @@ -776,8 +816,8 @@ gen_email () { To: $builder_email Subject: build request Message-Id: <$id@$(hostname)> - X-New-PLD-Builder: request - X-Requester-Version: \$Id$ + X-New-TLD-Builder: request + X-Requester-Version: $VERSION EOF