From 9831ae8747f06ee8d57c3cb29a74fc9443742840 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 15 Feb 2011 09:16:35 -0800 Subject: [PATCH] bad_stable script added --- scripts/bad_stable | 183 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100755 scripts/bad_stable diff --git a/scripts/bad_stable b/scripts/bad_stable new file mode 100755 index 00000000000..38b93b5437b --- /dev/null +++ b/scripts/bad_stable @@ -0,0 +1,183 @@ +#!/bin/bash + +STABLE_VERSION=".37" +EMAIL_ADDRESS='' + +extract_addr() +{ + read l + read l + read l + read l + a=$(echo "$l" | sed -n -e 's/.*<\(.*@[^>]*\).*/\1/p') + echo $a +} + +if [ x"$EMAIL_ADDRESS" = x ] +then + echo "You must set the EMAIL_ADDRESS environment variable to your email address" + exit 1 +fi +FROM=$EMAIL_ADDRESS + +TO="" +CC="" +STABLE='' +STABLE_COMMITS='' + +author() +{ + first_author="" + TXT=$2 + if [ ! -f $TXT ] + then + echo "$TXT is missing" + exit 1 + fi + author="" + while read l + do + # skip the Message-ID: line so we don't send email to the wrong place + #echo "$l" + reply=$(echo "$l" | grep -i Message-ID:) + if [ x"$reply" != x ] + then + continue + fi + + # if this is the start of the diff, then it's time to stop looking + diff=$(echo "$l" | grep "^---") + if [ x"$diff" != x ] + then + #echo "diffstart!!!!!" + break + fi + + for x in $l + do + a=$(echo "$x" | sed -n -e 's/.*<\(.*@[^>]*\).*/\1/p') + if [ x"$a" != x ] + then + if [ x"$author" == x ] + then + author=$a + first_author=$a + else + author="$author $a" + fi + fi + done + done < $TXT + author=$(echo "$author" | tr ' ' '\n' | grep -v "$first_author" | + sort | uniq) + author="$first_author $author" + eval $1=$(echo $author | sed -e 's/ /,/g') + if [ x"$3" != x ] + then + eval $3=$first_author + fi +} + + + +reply() +{ + PATCH=$1 +# patch_name=$(stripit $1) +# PATCH=$P/patches/$patch_name.patch +# TXT=$P/txt/$patch_name.txt +# if [ ! -f $TXT ] +# then +# echo $TXT is missing +# exit 1 +# fi + #echo "PATCH=$PATCH" +# SUBJECT=`grep "Subject:" $PATCH` + SUBJECT=`grep "Subject:" $PATCH | sed s/Subject\:\ //` +# SUBJECT=$(head -n 2 $PATCH | tail -n 1) + MESSAGE_ID=`grep -i "^Message-ID:" $PATCH | cut -f 2 -d ' ' | cut -f 2 -d '<' | cut -f 1 -d '>'` + author AUTHOR $1 FIRST_AUTHOR + #echo "author said $AUTHOR" + #echo "first_author said $FIRST_AUTHOR" + if [ x"$AUTHOR" == "x" ] + then + echo "nobody to notify" + exit 0 + fi + to="" + for i in $(echo "$AUTHOR" | sed -e 's/,/ /g') + do + if ! echo "$TO" | grep "$i" + then + to=$to" -to $i" + fi + done + if [ x"$cc" != x ] + then + cc="-cc $cc" + fi + + CHARSET=$(guess-charset "$PATCH") + if test "x$CHARSET" = "ANSI_X3.4-1968"; then + CHARSET= + else + CHARCMD="-charset=$CHARSET" + fi + + ID=`make_message_id` + + #echo "makemail -to $AUTHOR -from=$FROM -subject=\"patch $PATCH added to gregkh tree\" -date=\"$(date -R)\" -message=$ID $CHARCMD" + echo "sending to $AUTHOR" + + ( + echo + echo "The patch below does not apply to the $STABLE_VERSION-stable tree." + echo "If someone wants it applied there, or to any other stable or longterm" + echo "tree, then please email the backport, including the original git commit" + echo "id to ." + echo + echo "thanks," + echo + echo "greg k-h" + echo + echo "------------------ original commit in Linus's tree ------------------" + echo + cat $PATCH + echo +# echo +# echo -n "Patches currently in gregkh-2.6 which might be from " +# echo "$FIRST_AUTHOR are" +# echo +# grep -lR $FIRST_AUTHOR /home/gregkh/linux/patches/ 2> /dev/null | +# sed -e 's/\/home\/gregkh\/linux\/patches\///' + ) | + makemail -to "$AUTHOR" \ + -from="$FROM" \ + -cc="$STABLE" \ + -subject="patch \"$SUBJECT\" failed to apply to $STABLE_VERSION-stable tree" \ + -date="$(date -R)" \ + -message_id="$ID" \ + "$CHARCMD" | \ + # talk to the suse network instead of localhost (due to the way suse.de now handles email...) + #msmtp $to +# ~/bin/msmtp-enqueue.sh -a suse $to + ~/bin/msmtp-enqueue.sh -a coco $to +} + + + +for git_id in $* +do + TMPFILE=`mktemp bad_patch.XXXXX` || exit 1 + git show --pretty=email $git_id > $TMPFILE + reply $TMPFILE + rm $TMPFILE +done + +#for patch_file in $* +#do +# reply $patch_file +# echo "acknowledged $patch_file" +# echo "-----------------------------------------------" +# echo +#done -- 2.47.3