Re: get_maintainer.pl and git send-email: 5.1.2 The recipient address <linux-mtd@xxxxxxxxxxxxxxxxxxx)> is not a valid
From: Joe Perches
Date: Wed Sep 14 2016 - 10:13:42 EST
On Wed, 2016-09-14 at 12:45 +0200, RafaÅ MiÅecki wrote:
> Hi Joe,
Hello RafaÅ
> Some time ago I started using git send-email with --cc-cmd and
> get_maintainer.pl. I liked it and it worked fine until I tried to send
> ubifs patch patch. I got this:
> Send this email? ([y]es|[n]o|[q]uit|[a]ll): y
> > 5.1.2 The recipient address <linux-mtd@xxxxxxxxxxxxxxxxxxx)> is not a valid
> 5.1.2 RFC-5321 address. j11sm4705544lfe.27 - gsmtp
>
> I suspect there may be some problem with MAINTAINERS entries using braces.
>
> Could you take a look at following try?
> https://patchwork.ozlabs.org/patch/669853/
>
> wget -O mtd.patch https://patchwork.ozlabs.org/patch/669853/mbox/
> git send-email --cc-cmd="scripts/get_maintainer.pl" mtd.patch
>
> It results in:
> > (cc-cmd) Adding cc: linux-mtd@xxxxxxxxxxxxxxxxxxx (open list:UBI FILE
> SYSTEM (UBIFS)) from: 'scripts/get_maintainer.pl'
> and Cc-ing:
> linux-mtd@xxxxxxxxxxxxxxxxxxx) (open list:UBI FILE SYSTEM (UBIFS)
>
> Is this something to fix at get_maintainer.pl level?
Not really.
At a minimum you need to add "--norolestats" to the cc-cmd invocation
--cc-cmd="./scripts/get_maintainer.pl --norolestats"
I use scripts to do this along with .gitconfig entries.
[sendemail]
chainreplyto = false
thread = false
suppresscc = self
cccmd = ~/bin/cc.sh
tocmd = ~/bin/to.sh
The scripts use --to-cmd to address the direct maintainers
and cc-cmd to address indirect maintainers and mailing lists.
$ cat ~/bin/to.sh
#!/bin/bash
opts="--nogit --nogit-fallback --norolestats --pattern-depth=1"
if [[ $(basename $1) =~ ^0000- ]] ; then
./scripts/get_maintainer.pl --nom $opts $(dirname $1)/*
else
maint=$(./scripts/get_maintainer.pl --nol $opts $1)
if [ "$maint" == "" ] ; then
echo "linux-kernel@xxxxxxxxxxxxxxx"
else
echo "$maint"
fi
fi
$ cat ~/bin/cc.sh
#!/bin/bash
opts="--nogit --nogit-fallback --norolestats"
if [[ $(basename $1) =~ ^0000- ]] ; then
./scripts/get_maintainer.pl --nom $opts $(dirname $1)/*
else
./scripts/get_maintainer.pl $opts $1
fi