{"thread":{"id":"46083","subject":"[BUG] git-send-email broken: Can't locate object method \"starttls\"","startedAt":"2017-05-31T22:25:15Z","lastAt":"2017-06-01T00:17:52Z","messageCount":6,"participants":["Eric Biggers","Jonathan Nieder","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"321209","messageId":"20170531222455.GD72735@gmail.com","threadId":"46083","inReplyTo":null,"subject":"[BUG] git-send-email broken: Can't locate object method \"starttls\"","fromName":"Eric Biggers","fromEmail":"ebiggers3@gmail.com","sentAt":"2017-05-31T22:24:55Z","receivedAt":"2017-05-31T22:25:15Z","isPatch":false,"sender":{"key":"ebiggers3@gmail.com","avatar":null},"body":"Hi,\n\nThere seems to be a bug in 'git send-email' caused by this commit:\n\n    commit 0ead000c3aca13a10ae51a3c74c866981e0d33b8\n    Author: Dennis Kaarsemaker <dennis@kaarsemaker.net>\n    Date:   Fri Mar 24 22:37:32 2017 +0100\n\n        send-email: Net::SMTP::SSL is obsolete, use only when necessary\n\nWhen running git send-email I get the following error:\n\n\tCan't locate object method \"starttls\" via package \"Net::SMTP\" at /usr/lib/git-core/git-send-email line 1410.\n\nThe perl version is 5.18.2, and the Net::SMTP version is 2.31.\n\nI suspect the following line of code which appears to assume that starttls() is\npresent in Net::SMTP >= 1.28:\n\n\tmy $use_net_smtp_ssl = version->parse($Net::SMTP::VERSION) < version->parse(\"1.28\");\n\n... but in fact it appears to have been added by the following commit to perl,\nwhich bumped the Net::SMTP version from 2.34 up to 3.01:\n\n\thttps://perl5.git.perl.org/perl.git/commit/2e1731446cd265cddae2ea6c43a375168fdb6f56\n\nEric\n"},{"id":"321211","messageId":"20170531224415.GC81679@aiede.mtv.corp.google.com","threadId":"46083","inReplyTo":"20170531222455.GD72735@gmail.com","subject":"[PATCH] send-email: Net::SMTP::starttls was introduced in v3.01 (Re: [BUG] git-send-email broken: Can't locate object method \"starttls\")","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2017-05-31T22:44:15Z","receivedAt":"2017-05-31T22:44:31Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Subject: send-email: Net::SMTP::starttls was introduced in v3.01\n\nWe cannot rely on the starttls method being present in the copy\nof Net::SMTP shipped with perl until v5.21.5~169 (Update libnet to\nCPAN version 3.01, 2014-10-10).\n\nReported-by: Brandon Williams <bmwill@google.com>\nReported-by: Eric Biggers <ebiggers3@gmail.com>\nSigned-off-by: Jonathan Nieder <jrnieder@gmail.com>\n---\nHi Eric,\n\nEric Biggers wrote:\n\n> There seems to be a bug in 'git send-email' caused by this commit:\n>\n>     commit 0ead000c3aca13a10ae51a3c74c866981e0d33b8\n>     Author: Dennis Kaarsemaker <dennis@kaarsemaker.net>\n>     Date:   Fri Mar 24 22:37:32 2017 +0100\n>\n>         send-email: Net::SMTP::SSL is obsolete, use only when necessary\n>\n> When running git send-email I get the following error:\n>\n> \tCan't locate object method \"starttls\" via package \"Net::SMTP\" at /usr/lib/git-core/git-send-email line 1410.\n>\n> The perl version is 5.18.2, and the Net::SMTP version is 2.31.\n\nThanks for reporting.  Does this patch help?\n\nRegards,\nJonathan\n\n git-send-email.perl | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/git-send-email.perl b/git-send-email.perl\nindex 0d90439d9..3441e3cf5 100755\n--- a/git-send-email.perl\n+++ b/git-send-email.perl\n@@ -1354,7 +1354,7 @@ EOF\n \t\t}\n \n \t\trequire Net::SMTP;\n-\t\tmy $use_net_smtp_ssl = version->parse($Net::SMTP::VERSION) < version->parse(\"1.28\");\n+\t\tmy $use_net_smtp_ssl = version->parse($Net::SMTP::VERSION) < version->parse(\"3.01\");\n \t\t$smtp_domain ||= maildomain();\n \n \t\tif ($smtp_encryption eq 'ssl') {\n-- \n2.13.0.506.g27d5fe0cd\n\n"},{"id":"321213","messageId":"xmqqy3tc8wso.fsf@gitster.mtv.corp.google.com","threadId":"46083","inReplyTo":"20170531224415.GC81679@aiede.mtv.corp.google.com","subject":"Re: [PATCH] send-email: Net::SMTP::starttls was introduced in v3.01 (Re: [BUG] git-send-email broken: Can't locate object method \"starttls\")","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-05-31T22:51:35Z","receivedAt":"2017-05-31T22:51:41Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jonathan Nieder <jrnieder@gmail.com> writes:\n\n> Subject: send-email: Net::SMTP::starttls was introduced in v3.01\n>\n> We cannot rely on the starttls method being present in the copy\n> of Net::SMTP shipped with perl until v5.21.5~169 (Update libnet to\n> CPAN version 3.01, 2014-10-10).\n>\n> Reported-by: Brandon Williams <bmwill@google.com>\n> Reported-by: Eric Biggers <ebiggers3@gmail.com>\n> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>\n> ---\n> Hi Eric,\n>\n> Eric Biggers wrote:\n>\n>> There seems to be a bug in 'git send-email' caused by this commit:\n>>\n>>     commit 0ead000c3aca13a10ae51a3c74c866981e0d33b8\n>>     Author: Dennis Kaarsemaker <dennis@kaarsemaker.net>\n>>     Date:   Fri Mar 24 22:37:32 2017 +0100\n>>\n>>         send-email: Net::SMTP::SSL is obsolete, use only when necessary\n>>\n>> When running git send-email I get the following error:\n>>\n>> \tCan't locate object method \"starttls\" via package \"Net::SMTP\" at /usr/lib/git-core/git-send-email line 1410.\n>>\n>> The perl version is 5.18.2, and the Net::SMTP version is 2.31.\n>\n> Thanks for reporting.  Does this patch help?\n\nGood, you beat me to it ;-)  Once we get this confirmed, let's queue\nan emergency fix.\n\nThanks.\n\n>\n> Regards,\n> Jonathan\n>\n>  git-send-email.perl | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n>\n> diff --git a/git-send-email.perl b/git-send-email.perl\n> index 0d90439d9..3441e3cf5 100755\n> --- a/git-send-email.perl\n> +++ b/git-send-email.perl\n> @@ -1354,7 +1354,7 @@ EOF\n>  \t\t}\n>  \n>  \t\trequire Net::SMTP;\n> -\t\tmy $use_net_smtp_ssl = version->parse($Net::SMTP::VERSION) < version->parse(\"1.28\");\n> +\t\tmy $use_net_smtp_ssl = version->parse($Net::SMTP::VERSION) < version->parse(\"3.01\");\n>  \t\t$smtp_domain ||= maildomain();\n>  \n>  \t\tif ($smtp_encryption eq 'ssl') {\n"},{"id":"321216","messageId":"20170531225708.GE72735@gmail.com","threadId":"46083","inReplyTo":"20170531224415.GC81679@aiede.mtv.corp.google.com","subject":"Re: [PATCH] send-email: Net::SMTP::starttls was introduced in v3.01 (Re: [BUG] git-send-email broken: Can't locate object method \"starttls\")","fromName":"Eric Biggers","fromEmail":"ebiggers3@gmail.com","sentAt":"2017-05-31T22:57:08Z","receivedAt":"2017-05-31T22:57:15Z","isPatch":true,"sender":{"key":"ebiggers3@gmail.com","avatar":null},"body":"On Wed, May 31, 2017 at 03:44:15PM -0700, Jonathan Nieder wrote:\n> Subject: send-email: Net::SMTP::starttls was introduced in v3.01\n> \n> We cannot rely on the starttls method being present in the copy\n> of Net::SMTP shipped with perl until v5.21.5~169 (Update libnet to\n> CPAN version 3.01, 2014-10-10).\n> \n> Reported-by: Brandon Williams <bmwill@google.com>\n> Reported-by: Eric Biggers <ebiggers3@gmail.com>\n> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>\n> ---\n> Hi Eric,\n> \n> Eric Biggers wrote:\n> \n> > There seems to be a bug in 'git send-email' caused by this commit:\n> >\n> >     commit 0ead000c3aca13a10ae51a3c74c866981e0d33b8\n> >     Author: Dennis Kaarsemaker <dennis@kaarsemaker.net>\n> >     Date:   Fri Mar 24 22:37:32 2017 +0100\n> >\n> >         send-email: Net::SMTP::SSL is obsolete, use only when necessary\n> >\n> > When running git send-email I get the following error:\n> >\n> > \tCan't locate object method \"starttls\" via package \"Net::SMTP\" at /usr/lib/git-core/git-send-email line 1410.\n> >\n> > The perl version is 5.18.2, and the Net::SMTP version is 2.31.\n> \n> Thanks for reporting.  Does this patch help?\n> \n> Regards,\n> Jonathan\n> \n>  git-send-email.perl | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n> \n> diff --git a/git-send-email.perl b/git-send-email.perl\n> index 0d90439d9..3441e3cf5 100755\n> --- a/git-send-email.perl\n> +++ b/git-send-email.perl\n> @@ -1354,7 +1354,7 @@ EOF\n>  \t\t}\n>  \n>  \t\trequire Net::SMTP;\n> -\t\tmy $use_net_smtp_ssl = version->parse($Net::SMTP::VERSION) < version->parse(\"1.28\");\n> +\t\tmy $use_net_smtp_ssl = version->parse($Net::SMTP::VERSION) < version->parse(\"3.01\");\n>  \t\t$smtp_domain ||= maildomain();\n>  \n>  \t\tif ($smtp_encryption eq 'ssl') {\n> -- \n\nYes, that solves the problem for me.\n\nEric\n"},{"id":"321218","messageId":"20170531230156.GE81679@aiede.mtv.corp.google.com","threadId":"46083","inReplyTo":"20170531225708.GE72735@gmail.com","subject":"Re: [PATCH] send-email: Net::SMTP::starttls was introduced in v3.01 (Re: [BUG] git-send-email broken: Can't locate object method \"starttls\")","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2017-05-31T23:01:56Z","receivedAt":"2017-05-31T23:02:08Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Eric Biggers wrote:\n> On Wed, May 31, 2017 at 03:44:15PM -0700, Jonathan Nieder wrote:\n\n>> Subject: send-email: Net::SMTP::starttls was introduced in v3.01\n>>\n>> We cannot rely on the starttls method being present in the copy\n>> of Net::SMTP shipped with perl until v5.21.5~169 (Update libnet to\n>> CPAN version 3.01, 2014-10-10).\n>>\n>> Reported-by: Brandon Williams <bmwill@google.com>\n>> Reported-by: Eric Biggers <ebiggers3@gmail.com>\n>> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>\n>> ---\n[...]\n>> +++ b/git-send-email.perl\n>> @@ -1354,7 +1354,7 @@ EOF\n>>  \t\t}\n>>  \n>>  \t\trequire Net::SMTP;\n>> -\t\tmy $use_net_smtp_ssl = version->parse($Net::SMTP::VERSION) < version->parse(\"1.28\");\n>> +\t\tmy $use_net_smtp_ssl = version->parse($Net::SMTP::VERSION) < version->parse(\"3.01\");\n>>  \t\t$smtp_domain ||= maildomain();\n>>  \n>>  \t\tif ($smtp_encryption eq 'ssl') {\n>> -- \n>\n> Yes, that solves the problem for me.\n\nThanks.  Mining through https://github.com/gbarr/perl-libnet, I find\n\n  $ git log -Sstarttls\n[...]\n  commit b4a7a274a7fe5344c154abc4b3fdd7c446d36370\n  Author: Steffen Ullrich <Steffen_Ullrich@genua.de>\n  Date:   Fri May 9 23:15:48 2014 +0200\n\n      SSL and IPv6 support for Net::SMTP\n  $ git show b4a7a274a7fe5344c154abc4b3fdd7c446d36370\n[...]\n  diff --git a/Net/SMTP.pm b/Net/SMTP.pm\n  index 705b5c5..fcc124f 100644\n  --- a/Net/SMTP.pm\n  +++ b/Net/SMTP.pm\n  @@ -18,7 +18,31 @@ use Net::Config;\n \n   $VERSION = \"2.33\";\n[...]\n  $ git log -p --ancestry-path b4a7a274a7fe5344c154abc4b3fdd7c446d36370..HEAD  -- Net/SMTP.pm\n[...]\n  commit 67b37d5c7118f9af50e5a5a00c242992caba3b8d\n  Author: Steve Hay <steve.m.hay@googlemail.com>\n  Date:   Mon Jun 2 14:13:55 2014 +0100\n\n      Bump $VERSION in changed modules\n\n  diff --git a/Net/SMTP.pm b/Net/SMTP.pm\n  index 4496f6f..9dfaadf 100644\n  --- a/Net/SMTP.pm\n  +++ b/Net/SMTP.pm\n  @@ -16,7 +16,7 @@ use IO::Socket;\n   use Net::Cmd;\n   use Net::Config;\n   \n  -$VERSION = \"2.34\";\n  +$VERSION = \"2.35\";\n   \n   # Code for detecting if we can use SSL\n   my $ssl_class = eval {\n\nI think 2.35 is the correct minimum version.\n\nJonathan\n"},{"id":"321226","messageId":"20170601001743.GF81679@aiede.mtv.corp.google.com","threadId":"46083","inReplyTo":"20170531230156.GE81679@aiede.mtv.corp.google.com","subject":"[PATCH v2] send-email: Net::SMTP::starttls was introduced in v2.34 (Re: [BUG] git-send-email broken: Can't locate object method \"starttls\")","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2017-06-01T00:17:43Z","receivedAt":"2017-06-01T00:17:52Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Subject: send-email: Net::SMTP::starttls was introduced in v2.34\n\nWe cannot rely on the starttls method being present in Net::SMTP until\nc274b798e6881a941d941808c6d89966975cb8c8 (Merge branch 'ipv6_ssl' of\nhttps://github.com/noxxi/perl-libnet into noxxi-ipv6_ssl, 2014-06-02),\nwhich set the module version to 2.34.\n\nThis version was first shipped as part of perl in v5.21.5~169 (Update\nlibnet to CPAN version 3.01, 2014-10-10).\n\nNoticed on an Ubuntu system with perl 5.18.2-2ubuntu1.1, which\nprovides Net::SMTP version 2.31. The error message is\n\n  Can't locate object method \"starttls\" via package \"Net::SMTP\" at /usr/lib/git-core/git-send-email line 1410.\n\nReported-by: Brandon Williams <bmwill@google.com>\nReported-and-tested-by: Eric Biggers <ebiggers3@gmail.com>\nSigned-off-by: Jonathan Nieder <jrnieder@gmail.com>\n---\nJonathan Nieder wrote:\n\n> Thanks.  Mining through https://github.com/gbarr/perl-libnet, I find\n[...]\n> I think 2.35 is the correct minimum version.\n\nNah, I'm reading wrong.  The relevant commit is c274b798 (Merge branch\n'ipv6_ssl' of https://github.com/noxxi/perl-libnet into\nnoxxi-ipv6_ssl, 2014-06-02), which bumped VERSION to 2.34.\n\nHere's an updated patch.\n\nThanks,\nJonathan\n\n git-send-email.perl | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/git-send-email.perl b/git-send-email.perl\nindex 0d90439d9..d326238c0 100755\n--- a/git-send-email.perl\n+++ b/git-send-email.perl\n@@ -1354,7 +1354,7 @@ EOF\n \t\t}\n \n \t\trequire Net::SMTP;\n-\t\tmy $use_net_smtp_ssl = version->parse($Net::SMTP::VERSION) < version->parse(\"1.28\");\n+\t\tmy $use_net_smtp_ssl = version->parse($Net::SMTP::VERSION) < version->parse(\"2.34\");\n \t\t$smtp_domain ||= maildomain();\n \n \t\tif ($smtp_encryption eq 'ssl') {\n-- \n2.13.0.506.g27d5fe0cd\n\n"}]}