]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
bad_stable script added
authorGreg Kroah-Hartman <gregkh@suse.de>
Tue, 15 Feb 2011 17:16:35 +0000 (09:16 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 15 Feb 2011 17:16:35 +0000 (09:16 -0800)
scripts/bad_stable [new file with mode: 0755]

diff --git a/scripts/bad_stable b/scripts/bad_stable
new file mode 100755 (executable)
index 0000000..38b93b5
--- /dev/null
@@ -0,0 +1,183 @@
+#!/bin/bash
+
+STABLE_VERSION=".37"
+EMAIL_ADDRESS='<gregkh@suse.de>'
+
+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@kernel.org>'
+STABLE_COMMITS='<stable-commits@vger.kernel.org>'
+
+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 <stable@kernel.org>."
+               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