From: Greg Kroah-Hartman Date: Thu, 22 Aug 2019 16:26:02 +0000 (-0700) Subject: mbox2send script added for posterity of what not to do... X-Git-Tag: v4.19.68~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e024e329c489c5d3c108d60370027b61c9815dfc;p=thirdparty%2Fkernel%2Fstable-queue.git mbox2send script added for posterity of what not to do... --- diff --git a/scripts/mbox2send b/scripts/mbox2send new file mode 100755 index 00000000000..58f87a39aa2 --- /dev/null +++ b/scripts/mbox2send @@ -0,0 +1,122 @@ +#!/usr/bin/perl -W +# +# This takes a mbox of email, created with 'quilt mail --mbox' +# and formats it in the proper way to send off a -stable kernel review. +# +# This means: +# - strip off some quilt headers and the threading +# - add some text at the top of every message. +# +# Written in perl because the bash version is broken, it doesn't pass +# through the patch correctly :( +# + +my $line; + +my $root_version = shift; + +if ($root_version eq "") { + print "must provide kernel root version number\n"; + die; +} + +my $full_version = shift; +if ($full_version eq "") { + print "must provide kernel full version number\n"; + die; +} +my $mbox = shift; + +if ($mbox eq "") { + print "must provide the name of the mbox file\n"; + die; +} + +my $date=`date -u --iso-8601=minutes --date="2 days"`; +chomp($date); + +$mboxnew = "$mbox.new"; +chomp($mboxnew); + +open MBOX, "$mbox" || die "Failed to open $mbox"; +open FILE, ">$mboxnew" || die "Failed to create $mboxnew"; + +my $header = "true"; +my $eat = "false"; +my $tags_written = "false"; +my $stable_tag_written = "false"; + +while ($line = ) { + $eat = "false"; + + if ($header eq "false") { + if ($line =~ m/^From /) { + # start of a message, this is the header + $header = "true"; + } + } + + if ($header eq "true") { + if ($stable_tag_written eq "false") { + if ($line =~ m/^Subject:/) { + # always add a "X-stable: review" tag + print FILE "X-stable: review\n"; + $stable_tag_written = "true"; + # and a "X-Patchwork-Hint: ignore" tag + print FILE "X-Patchwork-Hint: ignore\n" + } + } + + # if first Subject: line, add our tags + if ($tags_written eq "false") { + if ($line =~ m/^Subject:/) { + # write out our own X-KernelTest tags to make automated tools's lives easier + print FILE "X-KernelTest-Patch: http://kernel.org/pub/linux/kernel/v4.x/stable-review/patch-$full_version.gz\n"; + print FILE "X-KernelTest-Tree: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git\n"; + print FILE "X-KernelTest-Branch: linux-$root_version.y\n"; + print FILE "X-KernelTest-Patches: git://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git\n"; + print FILE "X-KernelTest-Version: $full_version\n"; + print FILE "X-KernelTest-Deadline: $date\n"; + + $tags_written = "true"; + + # hack around the fact that content-type is not in the 000 message + # and so the 001 message will not get the X- flags we want to set above + $stable_tag_written = "false"; + } + } + + # strip out References line + if ($line =~ m/^References:/) { + # eat the line + $eat = "true"; + } + # strip out the Content-Disposition line + if ($line =~ m/Content-Disposition:/) { + # eat the line + $eat = "true"; + + # we are now out of the header + $header = "false"; + $stable_tag_written = "false"; + + # write out our custom header too + print FILE "\n"; + print FILE "$root_version-stable review patch. If anyone has any objections, please let me know.\n"; + print FILE "\n"; + print FILE "------------------\n"; + } + } + + if ($eat eq "false") { + print FILE $line; + } +} +close MBOX; +close FILE; + +#print "# New mailbox is in $mboxnew\n"; +#print "# To send the patches out, do:\n"; +#print "cat $mboxnew | formail -A \"In-Reply-To: \" -s msmtp-enqueue.sh\n"; +#print "# or\n"; +#print "< $mboxnew formail -ds sh -c 'cat > msg.\$FILENO'\n";