diff --git a/SOURCES/perl-5.16.3-Fix-Math-BigInt-overload-warning.patch b/SOURCES/perl-5.16.3-Fix-Math-BigInt-overload-warning.patch
new file mode 100644
index 0000000..307bb64
--- /dev/null
+++ b/SOURCES/perl-5.16.3-Fix-Math-BigInt-overload-warning.patch
@@ -0,0 +1,12 @@
+diff -Naur old/dist/Math-BigInt/lib/Math/BigInt.pm new/dist/Math-BigInt/lib/Math/BigInt.pm
+--- old/dist/Math-BigInt/lib/Math/BigInt.pm	2011-09-03 16:26:41.000000000 +1000
++++ new/dist/Math-BigInt/lib/Math/BigInt.pm	2013-04-15 14:39:17.890447159 +1000
+@@ -60,8 +60,6 @@
+ '>>='	=>	sub { $_[0]->brsft($_[1]); },
+ 
+ # not supported by Perl yet
+-'..'	=>	\&_pointpoint,
+-
+ '<=>'	=>	sub { my $rc = $_[2] ?
+                       ref($_[0])->bcmp($_[1],$_[0]) : 
+                       $_[0]->bcmp($_[1]); 
diff --git a/SOURCES/perl-5.16.3-Fix-PAUSE-indexing-problem.patch b/SOURCES/perl-5.16.3-Fix-PAUSE-indexing-problem.patch
new file mode 100644
index 0000000..ea298a2
--- /dev/null
+++ b/SOURCES/perl-5.16.3-Fix-PAUSE-indexing-problem.patch
@@ -0,0 +1,69 @@
+From 23d7f6ae0009ab5f2aa9887d1204a98de7fd2326 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Wed, 21 Mar 2018 14:50:08 +0100
+Subject: [PATCH 3/4] Fix PAUSE indexing problem
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Ported to Net::SMTP as found in Perl 5.16.3 from libnet upstream
+commits:
+
+commit 4b426b971e4acf37fdbd08ffa88da4e6979fa133
+Author: Steve Hay <steve.m.hay@googlemail.com>
+Date:   Wed Oct 8 08:57:53 2014 +0100
+
+    Fix PAUSE indexing problem
+
+    Net::POP3::_SSLified and Net::SMTP::_SSLified are already used by
+    Net-SSLGlue.
+
+commit 40a3dfc5c40a7fbe0a777a4af50978354e4903f4
+Author: Steve Hay <steve.m.hay@googlemail.com>
+Date:   Wed Oct 8 09:11:31 2014 +0100
+
+    Fix PAUSE indexing problem again
+
+    Sigh. Net::SMTP::SSL is already used by Net-SMTP-SSL.
+
+This is to avoid clashes in name space when somebody uses Net-SSLGlue.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ cpan/libnet/Net/SMTP.pm | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/cpan/libnet/Net/SMTP.pm b/cpan/libnet/Net/SMTP.pm
+index 7dbf3df..6475c86 100644
+--- a/cpan/libnet/Net/SMTP.pm
++++ b/cpan/libnet/Net/SMTP.pm
+@@ -72,7 +72,7 @@ sub new {
+ 
+   ${*$obj}{'net_smtp_arg'} = \%arg;
+   if ($arg{SSL}) {
+-    Net::SMTP::_SSLified->start_SSL($obj,SSL_verifycn_name => $host,%arg)
++    Net::SMTP::_SSL->start_SSL($obj,SSL_verifycn_name => $host,%arg)
+       or return;
+   }
+ 
+@@ -217,7 +217,7 @@ sub starttls {
+   my $self = shift;
+   $ssl_class or die $nossl_warn;
+   $self->_STARTTLS or return;
+-  Net::SMTP::_SSLified->start_SSL($self,
++  Net::SMTP::_SSL->start_SSL($self,
+     %{ ${*$self}{'net_smtp_arg'} }, # (ssl) args given in new
+     @_   # more (ssl) args
+   ) or return;
+@@ -567,7 +567,7 @@ sub _STARTTLS { shift->command("STARTTLS", @_)->response() == CMD_OK }
+ 
+ 
+ {
+-  package Net::SMTP::_SSLified;
++  package Net::SMTP::_SSL;
+   our @ISA = ( $ssl_class ? ($ssl_class):(), 'Net::SMTP' );
+   sub starttls { die "SMTP connection is already in SSL mode" }
+   sub start_SSL {
+-- 
+2.14.3
+
diff --git a/SOURCES/perl-5.16.3-SSL-support-for-Net-SMTP.patch b/SOURCES/perl-5.16.3-SSL-support-for-Net-SMTP.patch
new file mode 100644
index 0000000..7a64065
--- /dev/null
+++ b/SOURCES/perl-5.16.3-SSL-support-for-Net-SMTP.patch
@@ -0,0 +1,180 @@
+From d3ad0a08dbd9e32a498a5f3335d521d6c38f4f1f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Wed, 21 Mar 2018 13:21:42 +0100
+Subject: [PATCH 1/4] SSL support for Net::SMTP
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Ported to Net::SMTP 2.31 as found in Perl 5.16.3 from libnet upstream:
+
+commit 34436780081aa8793b16f51864bce42a7cdd7e8b
+Author: Steffen Ullrich <Steffen_Ullrich@genua.de>
+Date:   Fri May 16 21:55:20 2014 +0200
+
+    added tests for Net::SMTP SSL and IPv6, save arguments in Net::SMTP to apply them on starttls
+
+IPv6 support exluded.
+
+Check for IO::Socket::SSL version removed because we have default sane
+default CA list since perl-IO-Socket-SSL-1.94-7.el7. We also set
+SSL_verify_mode => SSL_VERIFY_PEER by default.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ cpan/libnet/Net/Cmd.pm  |  1 -
+ cpan/libnet/Net/SMTP.pm | 72 +++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 72 insertions(+), 1 deletion(-)
+
+diff --git a/cpan/libnet/Net/Cmd.pm b/cpan/libnet/Net/Cmd.pm
+index 4f0e444..29eeb14 100644
+--- a/cpan/libnet/Net/Cmd.pm
++++ b/cpan/libnet/Net/Cmd.pm
+@@ -53,7 +53,6 @@ my %debug = ();
+ 
+ my $tr = $^O eq 'os390' ? Convert::EBCDIC->new() : undef;
+ 
+-
+ sub toebcdic {
+   my $cmd = shift;
+ 
+diff --git a/cpan/libnet/Net/SMTP.pm b/cpan/libnet/Net/SMTP.pm
+index a28496d..6143990 100644
+--- a/cpan/libnet/Net/SMTP.pm
++++ b/cpan/libnet/Net/SMTP.pm
+@@ -18,6 +18,15 @@ use Net::Config;
+ 
+ $VERSION = "2.31";
+ 
++# Code for detecting if we can use SSL
++my $ssl_class = eval {
++  require IO::Socket::SSL;
++} && 'IO::Socket::SSL';
++my $nossl_warn = !$ssl_class &&
++  'To use SSL please install IO::Socket::SSL';
++
++sub can_ssl   { $ssl_class };
++
+ @ISA = qw(Net::Cmd IO::Socket::INET);
+ 
+ 
+@@ -33,6 +42,13 @@ sub new {
+     %arg  = @_;
+     $host = delete $arg{Host};
+   }
++
++  if ($arg{SSL}) {
++    # SSL from start
++    die $nossl_warn if !$ssl_class;
++    $arg{Port} ||= 465;
++  }
++
+   my $hosts = defined $host ? $host : $NetConfig{smtp_hosts};
+   my $obj;
+ 
+@@ -54,6 +70,11 @@ sub new {
+   return undef
+     unless defined $obj;
+ 
++  if ($arg{SSL}) {
++    Net::SMTP::_SSLified->start_SSL($obj,SSL_verifycn_name => $host,%arg)
++      or return;
++  }
++
+   $obj->autoflush(1);
+ 
+   $obj->debug(exists $arg{Debug} ? $arg{Debug} : undef);
+@@ -185,11 +206,22 @@ sub hello {
+   }
+ 
+   return undef unless $ok;
++  ${*$me}{net_smtp_hello_domain} = $domain;
+ 
+   $msg[0] =~ /\A\s*(\S+)/;
+   return ($1 || " ");
+ }
+ 
++sub starttls {
++  my $self = shift;
++  $ssl_class or die $nossl_warn;
++  $self->_STARTTLS or return;
++  Net::SMTP::_SSLified->start_SSL($self,@_) or return;
++
++  # another hello after starttls to read new ESMTP capabilities
++  return $self->hello(${*$self}{net_smtp_hello_domain});
++}
++
+ 
+ sub supports {
+   my $self = shift;
+@@ -527,6 +559,27 @@ sub _BDAT { shift->command("BDAT", @_) }
+ sub _TURN { shift->unsupported(@_); }
+ sub _ETRN { shift->command("ETRN", @_)->response() == CMD_OK }
+ sub _AUTH { shift->command("AUTH", @_)->response() == CMD_OK }
++sub _STARTTLS { shift->command("STARTTLS", @_)->response() == CMD_OK }
++
++
++{
++  package Net::SMTP::_SSLified;
++  our @ISA = ( $ssl_class ? ($ssl_class):(), 'Net::SMTP' );
++  sub starttls { die "SMTP connection is already in SSL mode" }
++  sub start_SSL {
++    my ($class,$smtp,%arg) = @_;
++    delete @arg{ grep { !m{^SSL_} } keys %arg };
++    ( $arg{SSL_verifycn_name} ||= $smtp->host )
++	=~s{(?<!:):[\w()]+$}{}; # strip port
++    $arg{SSL_verifycn_scheme} ||= 'smtp';
++    $arg{SSL_verify_mode} ||= IO::Socket::SSL::SSL_VERIFY_PEER();
++    my $ok = $class->SUPER::start_SSL($smtp,%arg);
++    $@ = $ssl_class->errstr if !$ok;
++    return $ok;
++  }
++}
++
++
+ 
+ 1;
+ 
+@@ -613,6 +666,11 @@ the C<PeerAddr> option in L<IO::Socket::INET>, or a reference to
+ an array with hosts to try in turn. The L</host> method will return the value
+ which was used to connect to the host.
+ 
++B<SSL> - If the connection should be done from start with SSL, contrary to later
++upgrade with C<starttls>.
++You can use SSL arguments as documented in L<IO::Socket::SSL>, but it will
++usually use the right arguments already.
++
+ B<LocalAddr> and B<LocalPort> - These parameters are passed directly
+ to IO::Socket to allow binding the socket to a local port.
+ 
+@@ -643,6 +701,14 @@ Example:
+                            Debug   => 1,
+ 			  );
+ 
++    # the same with direct SSL
++    $smtp = Net::SMTP->new('mailhost',
++			   Hello => 'my.mail.domain',
++			   Timeout => 30,
++			   Debug   => 1,
++			   SSL     => 1,
++			  );
++
+     # Connect to the default server from Net::config
+     $smtp = Net::SMTP->new(
+ 			   Hello => 'my.mail.domain',
+@@ -686,6 +752,12 @@ to connect to the host.
+ 
+ Request a queue run for the DOMAIN given.
+ 
++=item starttls ( SSLARGS )
++
++Upgrade existing plain connection to SSL.
++You can use SSL arguments as documented in L<IO::Socket::SSL>, but it will
++usually use the right arguments already.
++
+ =item auth ( USERNAME, PASSWORD )
+ 
+ Attempt SASL authentication.
+-- 
+2.14.3
+
diff --git a/SOURCES/perl-5.16.3-added-tests-for-Net-SMTP-SSL-save-arguments-in-Net-S.patch b/SOURCES/perl-5.16.3-added-tests-for-Net-SMTP-SSL-save-arguments-in-Net-S.patch
new file mode 100644
index 0000000..47cabf8
--- /dev/null
+++ b/SOURCES/perl-5.16.3-added-tests-for-Net-SMTP-SSL-save-arguments-in-Net-S.patch
@@ -0,0 +1,195 @@
+From 1d3aa3540da1a751c047e84fbc5dca793e411b2e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Wed, 21 Mar 2018 13:48:53 +0100
+Subject: [PATCH 2/4] added tests for Net::SMTP SSL, save arguments in
+ Net::SMTP to apply them on starttls
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Ported to Net::SMTP 2.31 as found in Perl 5.16.3 from libnet upstream:
+
+commit 34436780081aa8793b16f51864bce42a7cdd7e8b
+Author: Steffen Ullrich <Steffen_Ullrich@genua.de>
+Date:   Fri May 16 21:55:20 2014 +0200
+
+    added tests for Net::SMTP SSL and IPv6, save arguments in Net::SMTP to apply them on starttls
+
+IPv6 support excluded.
+
+Check for IO::Socket::SSL version removed because we have default sane
+default CA list since perl-IO-Socket-SSL-1.94-7.el7.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ MANIFEST                 |   1 +
+ cpan/libnet/Net/SMTP.pm  |   6 ++-
+ cpan/libnet/t/smtp_ssl.t | 120 +++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 126 insertions(+), 1 deletion(-)
+ create mode 100644 cpan/libnet/t/smtp_ssl.t
+
+diff --git a/MANIFEST b/MANIFEST
+index b649ddb..aa117d3 100644
+--- a/MANIFEST
++++ b/MANIFEST
+@@ -1456,6 +1456,7 @@ cpan/libnet/t/libnet_t.pl	libnet
+ cpan/libnet/t/netrc.t		libnet
+ cpan/libnet/t/nntp.t		libnet
+ cpan/libnet/t/require.t		libnet
++cpan/libnet/t/smtp_ssl.t	libnet
+ cpan/libnet/t/smtp.t		libnet
+ cpan/libnet/t/time.t		libnet
+ cpan/List-Util/Changes			Util extension
+diff --git a/cpan/libnet/Net/SMTP.pm b/cpan/libnet/Net/SMTP.pm
+index 6143990..7dbf3df 100644
+--- a/cpan/libnet/Net/SMTP.pm
++++ b/cpan/libnet/Net/SMTP.pm
+@@ -70,6 +70,7 @@ sub new {
+   return undef
+     unless defined $obj;
+ 
++  ${*$obj}{'net_smtp_arg'} = \%arg;
+   if ($arg{SSL}) {
+     Net::SMTP::_SSLified->start_SSL($obj,SSL_verifycn_name => $host,%arg)
+       or return;
+@@ -216,7 +217,10 @@ sub starttls {
+   my $self = shift;
+   $ssl_class or die $nossl_warn;
+   $self->_STARTTLS or return;
+-  Net::SMTP::_SSLified->start_SSL($self,@_) or return;
++  Net::SMTP::_SSLified->start_SSL($self,
++    %{ ${*$self}{'net_smtp_arg'} }, # (ssl) args given in new
++    @_   # more (ssl) args
++  ) or return;
+ 
+   # another hello after starttls to read new ESMTP capabilities
+   return $self->hello(${*$self}{net_smtp_hello_domain});
+diff --git a/cpan/libnet/t/smtp_ssl.t b/cpan/libnet/t/smtp_ssl.t
+new file mode 100644
+index 0000000..e817d00
+--- /dev/null
++++ b/cpan/libnet/t/smtp_ssl.t
+@@ -0,0 +1,120 @@
++use strict;
++use warnings;
++use Test::More;
++use File::Temp 'tempfile';
++use Net::SMTP;
++
++my $debug = 0; # Net::SMTP Debug => ..
++
++plan skip_all => "no SSL support found in Net::SMTP" if ! Net::SMTP->can_ssl;
++
++plan skip_all => "fork not supported on this platform"
++  if grep { $^O =~m{$_} } qw(MacOS VOS vmesa riscos amigaos);
++
++plan skip_all => "incomplete or to old version of IO::Socket::SSL" if ! eval {
++  require IO::Socket::SSL
++    && require IO::Socket::SSL::Utils
++    && defined &IO::Socket::SSL::Utils::CERT_create;
++};
++
++my $srv = IO::Socket::INET->new(
++  LocalAddr => '127.0.0.1',
++  Listen => 10
++);
++plan skip_all => "cannot create listener on localhost: $!" if ! $srv;
++my $saddr = $srv->sockhost.':'.$srv->sockport;
++
++plan tests => 2;
++
++my ($ca,$key) = IO::Socket::SSL::Utils::CERT_create( CA => 1 );
++my ($fh,$cafile) = tempfile();
++print $fh IO::Socket::SSL::Utils::PEM_cert2string($ca);
++close($fh);
++
++my $parent = $$;
++END { unlink($cafile) if $$ == $parent }
++
++my ($cert) = IO::Socket::SSL::Utils::CERT_create(
++  subject => { CN => 'smtp.example.com' },
++  issuer_cert => $ca, issuer_key => $key,
++  key => $key
++);
++
++test(1); # direct ssl
++test(0); # starttls
++
++
++sub test {
++  my $ssl = shift;
++  defined( my $pid = fork()) or die "fork failed: $!";
++  exit(smtp_server($ssl)) if ! $pid;
++  smtp_client($ssl);
++  wait;
++}
++
++
++sub smtp_client {
++  my $ssl = shift;
++  my %sslopt = (
++    SSL_verifycn_name => 'smtp.example.com',
++    SSL_ca_file => $cafile
++  );
++  $sslopt{SSL} = 1 if $ssl;
++  my $cl = Net::SMTP->new($saddr, %sslopt, Debug => $debug);
++  diag("created Net::SMTP object");
++  if (!$cl) {
++    fail( ($ssl ? "SSL ":"" )."SMTP connect failed");
++  } elsif ($ssl) {
++    $cl->quit;
++    pass("SSL SMTP connect success");
++  } elsif ( ! $cl->starttls ) {
++    fail("starttls failed: $IO::Socket::SSL::SSL_ERROR");
++  } else {
++    $cl->quit;
++    pass("starttls success");
++  }
++}
++
++sub smtp_server {
++  my $ssl = shift;
++  my $cl = $srv->accept or die "accept failed: $!";
++  my %sslargs = (
++    SSL_server => 1,
++    SSL_cert => $cert,
++    SSL_key => $key,
++  );
++  if ( $ssl ) {
++    if ( ! IO::Socket::SSL->start_SSL($cl, %sslargs)) {
++      diag("initial ssl handshake with client failed");
++      return;
++    }
++  }
++
++  print $cl "220 welcome\r\n";
++  while (<$cl>) {
++    my ($cmd,$arg) = m{^(\S+)(?: +(.*))?\r\n} or die $_;
++    $cmd = uc($cmd);
++    if ($cmd eq 'QUIT' ) {
++      print $cl "250 bye\r\n";
++      last;
++    } elsif ( $cmd eq 'HELO' ) {
++      print $cl "250 localhost\r\n";
++    } elsif ( $cmd eq 'EHLO' ) {
++      print $cl "250-localhost\r\n".
++	( $ssl ? "" : "250-STARTTLS\r\n" ).
++	"250 HELP\r\n";
++    } elsif ( ! $ssl and $cmd eq 'STARTTLS' ) {
++      print $cl "250 starting ssl\r\n";
++      if ( ! IO::Socket::SSL->start_SSL($cl, %sslargs)) {
++	diag("initial ssl handshake with client failed");
++	return;
++      }
++      $ssl = 1;
++    } else {
++      diag("received unknown command: $cmd");
++      print "500 unknown cmd\r\n";
++    }
++  }
++
++  diag("SMTP dialog done");
++}
+-- 
+2.14.3
+
diff --git a/SOURCES/perl-5.16.3-use-SNI-for-SSL-support-in-SMTP.patch b/SOURCES/perl-5.16.3-use-SNI-for-SSL-support-in-SMTP.patch
new file mode 100644
index 0000000..b04f5dc
--- /dev/null
+++ b/SOURCES/perl-5.16.3-use-SNI-for-SSL-support-in-SMTP.patch
@@ -0,0 +1,66 @@
+From 5f39e47e30390af4288acf47a6d342874a803cbf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Wed, 21 Mar 2018 14:54:07 +0100
+Subject: [PATCH 4/4] use SNI for SSL support in SMTP
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Ported to Net::SMTP as found in Perl 5.16.3 from libnet upstream
+commit:
+
+commit 50c6fd25f2958e6300ec8377ab40c3f1a23bd9fd
+Author: Steffen Ullrich <Steffen_Ullrich@genua.de>
+Date:   Fri Nov 28 11:47:16 2014 +0100
+
+    - model SSL support for Net::NNTP after Net::SMTP, i.e. upgrade to SSL class instead of using IO::Socket::SSL in plain and SSL mode
+    - use SNI for SSL support in SMTP, NNTP, POP3, FTP by default
+
+commit f2756a6b81ebfadbd1ce318879c20b6519207c49
+Author: Steffen Ullrich <Steffen_Ullrich@genua.de>
+Date:   Sat Nov 29 17:13:58 2014 +0100
+
+    SSL support: use SNI only if supported by IO::Socket::SSL (i.e. openssl version>=1)
+
+Other protocols excluded.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ cpan/libnet/Net/SMTP.pm | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/cpan/libnet/Net/SMTP.pm b/cpan/libnet/Net/SMTP.pm
+index 6475c86..d207c3c 100644
+--- a/cpan/libnet/Net/SMTP.pm
++++ b/cpan/libnet/Net/SMTP.pm
+@@ -71,8 +71,9 @@ sub new {
+     unless defined $obj;
+ 
+   ${*$obj}{'net_smtp_arg'} = \%arg;
++  ${*$obj}{'net_smtp_host'} = $host;
+   if ($arg{SSL}) {
+-    Net::SMTP::_SSL->start_SSL($obj,SSL_verifycn_name => $host,%arg)
++    Net::SMTP::_SSL->start_SSL($obj,%arg)
+       or return;
+   }
+ 
+@@ -86,7 +87,6 @@ sub new {
+   }
+ 
+   ${*$obj}{'net_smtp_exact_addr'} = $arg{ExactAddresses};
+-  ${*$obj}{'net_smtp_host'}       = $host;
+ 
+   (${*$obj}{'net_smtp_banner'}) = $obj->message;
+   (${*$obj}{'net_smtp_domain'}) = $obj->message =~ /\A\s*(\S+)/;
+@@ -575,6 +575,8 @@ sub _STARTTLS { shift->command("STARTTLS", @_)->response() == CMD_OK }
+     delete @arg{ grep { !m{^SSL_} } keys %arg };
+     ( $arg{SSL_verifycn_name} ||= $smtp->host )
+ 	=~s{(?<!:):[\w()]+$}{}; # strip port
++    $arg{SSL_hostname} = $arg{SSL_verifycn_name}
++       if ! defined $arg{SSL_hostname} && $class->can_client_sni;
+     $arg{SSL_verifycn_scheme} ||= 'smtp';
+     $arg{SSL_verify_mode} ||= IO::Socket::SSL::SSL_VERIFY_PEER();
+     my $ok = $class->SUPER::start_SSL($smtp,%arg);
+-- 
+2.14.3
+
diff --git a/SPECS/perl.spec b/SPECS/perl.spec
index 2967b85..c7534d0 100644
--- a/SPECS/perl.spec
+++ b/SPECS/perl.spec
@@ -31,7 +31,7 @@
 Name:           perl
 Version:        %{perl_version}
 # release number must be even higher, because dual-lived modules will be broken otherwise
-Release:        292%{?dist}
+Release:        293%{?dist}
 Epoch:          %{perl_epoch}
 Summary:        Practical Extraction and Report Language
 Group:          Development/Languages
@@ -165,6 +165,16 @@ Patch36:        perl-5.20.3-Don-t-leak-the-temp-utf8-copy-of-n.patch
 # RT#31923, in upstream after 5.23.3
 Patch37:        perl-5.16.3-Properly-duplicate-PerlIO-encoding-objects.patch
 
+# Add SSL support to Net::SMTP, bug #1557574, CPAN RT#93823
+Patch38:        perl-5.16.3-SSL-support-for-Net-SMTP.patch
+Patch39:        perl-5.16.3-added-tests-for-Net-SMTP-SSL-save-arguments-in-Net-S.patch
+Patch40:        perl-5.16.3-Fix-PAUSE-indexing-problem.patch
+Patch41:        perl-5.16.3-use-SNI-for-SSL-support-in-SMTP.patch
+
+# Do not overload ".." in Math::BigInt, bug #1497734, CPAN RT#80182,
+# fixed in Math-BigInt-1.999718
+Patch42:        perl-5.16.3-Fix-Math-BigInt-overload-warning.patch
+
 # Update some of the bundled modules
 # see http://fedoraproject.org/wiki/Perl/perl.spec for instructions
 
@@ -183,6 +193,11 @@ BuildRequires:  procps, rsyslog
 # compat macro needed for rebuild
 %global perl_compat perl(:MODULE_COMPAT_5.16.3)
 
+# perl-interpreter denotes a package with the perl executable.
+# Full EVR is for compatibility with systems that swapped perl and perl-core
+# <https://fedoraproject.org/wiki/Changes/perl_Package_to_Install_Core_Modules>.
+Provides: perl-interpreter = %{perl_epoch}:%{perl_version}-%{release}
+
 # Compat provides
 Provides: %perl_compat
 Provides: perl(:MODULE_COMPAT_5.16.2)
@@ -234,6 +249,8 @@ handle Perl scripts.
 Summary:        The libraries for the perl runtime
 Group:          Development/Languages
 License:        GPL+ or Artistic
+# Interpreter version to fulfil requires based on "require 5.006;"
+Provides:       perl(:VERSION) = %{perl_version}
 Requires:       %perl_compat
 
 %description libs
@@ -1954,6 +1971,11 @@ tarball from perl.org.
 %patch35 -p1
 %patch36 -p1
 %patch37 -p1
+%patch38 -p1
+%patch39 -p1
+%patch40 -p1
+%patch41 -p1
+%patch42 -p1
 
 %if !%{defined perl_bootstrap}
 # Local patch tracking
@@ -1993,6 +2015,11 @@ perl -x patchlevel.h \
     'RHEL Patch35: Fix CRLF conversion in ASCII FTP upload (CPAN RT#41642)' \
     'RHEL Patch36: Do not leak the temp utf8 copy of namepv (CPAN RT#123786)' \
     'RHEL Patch37: Fix duplicating PerlIO::encoding when spawning threads (RT#31923)' \
+    'RHEL Patch38: Add SSL support to Net::SMTP (CPAN RT#93823) [1]' \
+    'RHEL Patch39: Add SSL support to Net::SMTP (CPAN RT#93823) [2]' \
+    'RHEL Patch40: Add SSL support to Net::SMTP (CPAN RT#93823) [3]' \
+    'RHEL Patch41: Add SSL support to Net::SMTP (CPAN RT#93823) [4]' \
+    'RHEL Patch42: Do not overload ".." in Math::BigInt (CPAN RT#80182)' \
     %{nil}
 %endif
 
@@ -3675,6 +3702,11 @@ sed \
 
 # Old changelog entries are preserved in CVS.
 %changelog
+* Wed Mar 21 2018 Petr Pisar <ppisar@redhat.com> - 4:5.16.3-293
+- Add SSL support to Net::SMTP (bug #1557574)
+- Do not overload ".." in Math::BigInt (bug #1497734)
+- Provide perl(:VERSION) and perl-interpreter RPM symbols (bug #1410347)
+
 * Mon Feb 27 2017 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.16.3-292
 - Removed perl-Perl4-CoreLibs because it was added as separate package to
   RHEL (bug #1366724)