Commit messages to the list (was Re: patch "Subject: Staging: cxt1e1: fix cxt1e1 module names" added to staging-next tree)

Greg KH gregkh at suse.de
Mon May 3 22:07:36 UTC 2010


On Mon, May 03, 2010 at 02:39:50PM -0700, Joe Perches wrote:
> On Mon, 2010-05-03 at 14:31 -0700, Greg KH wrote:
> > On Mon, May 03, 2010 at 12:53:02PM -0700, Joe Perches wrote:
> > > On Mon, 2010-05-03 at 12:10 -0700, gregkh at suse.de wrote:
> > > > This is a note to let you know that I've just added the patch titled
> > > I think it'd be good if you added driverdev to these ack messages.
> > In the past, people have complained when I spam mailing lists with my
> > "your patch has been committed" messages.
> > 
> > So, let me ask the list, anyone really want to see all of the commit
> > messages made to the staging-next git tree that can not watch the rss
> > feed instead?
> 
> I think you should send your "acked-by" or "signed-off-by"
> messages to the list, not necessarily the full patch with the
> "your patch has been committed" message.

What would the difference be?

And, if you want to hack up the script to try to do something like that,
please do so, I've attached it below.

Warning, it's some scary bash foo, originally based on one of akpm's
scripts, and slowly modified over the years to probably only run on my
system...

thanks,

greg k-h
-------------- next part --------------
#!/bin/bash

#. patchfns 2>/dev/null ||
#. /usr/lib/patch-scripts/patchfns 2>/dev/null ||
#. $PATCHSCRIPTS_LIBDIR/patchfns 2>/dev/null ||
#{
#	echo "Impossible to find my library 'patchfns'."
#	echo "Check your install, or go to the right directory"
#	exit 1
#}

EMAIL_ADDRESS='<gregkh at 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"$SMTP_SERVER" = x ]
then
	SMTP_SERVER=localhost:25
fi

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=""

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=$(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)\" -reply_to=$MESSAGE_ID -message=$ID $CHARCMD"
#	echo "smtpsend -server=$SMTP_SERVER $to -from=$FROM"


	(
		echo
		echo "This is a note to let you know that I've just added the patch titled"
		echo
		echo "    $SUBJECT"
		echo
		echo "to my staging-next git tree which can be found at"
		echo "    git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-next-2.6.git"
		echo "in the staging-next branch."
		echo
		echo "The patch will show up in the next release of the linux-next tree"
		echo "(usually sometime within the next 24 hours during the week.)"
		echo
		echo "The patch will also will be merged in the next major kernel release"
		echo "during the merge window."
		echo
		echo "If you have any questions about this process, please let me know."
		echo
		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" \
		-subject="patch \"$SUBJECT\" added to staging-next tree" \
		-date="$(date -R)" \
		-reply_to="$MESSAGE_ID" \
		-message_id="$ID" \
		"$CHARCMD" | \
	# talk to the suse network instead of localhost (due to the way suse.de now handles email...)
	#smtpsend -server=$SMTP_SERVER $to -from=$FROM
	#msmtp $to
#	~/bin/msmtp-enqueue.sh -a suse $to
	~/bin/msmtp-enqueue.sh -a coco $to
}

for patch_file in $*
do
	reply $patch_file
	echo "acknowledged $patch_file"
	echo "-----------------------------------------------"
	echo
done


More information about the devel mailing list