commit:     dfa22a8d91ee529cd68dfab03f91c73c8cf8ad22
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun May 11 00:16:16 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun May 11 00:17:49 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dfa22a8d

net-mail/sendEmail: fix runtime w/ newer OpenSSL; verify TLS certs

* Crank up TLSv1 -> TLSv3 to support newer OpenSSL (bug #954329, similar to
  previous bug #698322)

* Verify TLS certs (https://bugs.debian.org/1041517)

Bug: https://bugs.debian.org/1041517
Bug: https://bugs.gentoo.org/698322
Closes: https://bugs.gentoo.org/954329
Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-mail/sendEmail/files/1.56-openssl-3.patch   | 12 +++++++++
 net-mail/sendEmail/files/1.56-verify-mode.patch | 16 ++++++++++++
 net-mail/sendEmail/sendEmail-1.56-r4.ebuild     | 33 +++++++++++++++++++++++++
 3 files changed, 61 insertions(+)

diff --git a/net-mail/sendEmail/files/1.56-openssl-3.patch 
b/net-mail/sendEmail/files/1.56-openssl-3.patch
new file mode 100644
index 000000000000..827c6150dc66
--- /dev/null
+++ b/net-mail/sendEmail/files/1.56-openssl-3.patch
@@ -0,0 +1,12 @@
+https://bugs.gentoo.org/954329 (previously https://bugs.gentoo.org/698322)
+--- a/sendEmail
++++ b/sendEmail
+@@ -1903,7 +1903,7 @@
+     if ($conf{'tls_server'} == 1 and $conf{'tls_client'} == 1 and $opt{'tls'} 
=~ /^(yes|auto)$/) {
+         printmsg("DEBUG => Starting TLS", 2);
+         if (SMTPchat('STARTTLS')) { quit($conf{'error'}, 1); }
+-        if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'TLSv1', 
SSL_verify_mode => 0x00)) {
++        if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'TLSv1_3', 
SSL_verify_mode => 0x00)) {
+             quit("ERROR => TLS setup failed: " . IO::Socket::SSL::errstr(), 
1);
+         }
+         printmsg("DEBUG => TLS: Using cipher: ". $SERVER->get_cipher(), 3);

diff --git a/net-mail/sendEmail/files/1.56-verify-mode.patch 
b/net-mail/sendEmail/files/1.56-verify-mode.patch
new file mode 100644
index 000000000000..12379d8f0c5a
--- /dev/null
+++ b/net-mail/sendEmail/files/1.56-verify-mode.patch
@@ -0,0 +1,16 @@
+https://sources.debian.org/patches/sendemail/1.56-5.2/fix_tls_hostname_verification.patch/
+https://bugs.debian.org/1041517
+--- a/sendEmail
++++ b/sendEmail
+@@ -1903,7 +1903,10 @@ else {
+     if ($conf{'tls_server'} == 1 and $conf{'tls_client'} == 1 and $opt{'tls'} 
=~ /^(yes|auto)$/) {
+         printmsg("DEBUG => Starting TLS", 2);
+         if (SMTPchat('STARTTLS')) { quit($conf{'error'}, 1); }
+-        if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'TLSv1_3', 
SSL_verify_mode => 0x00)) {
++        if (! IO::Socket::SSL->start_SSL($SERVER,
++              SSL_version => 'TLSv1_3',
++              SSL_verifycn_scheme => 'smtp',
++              SSL_verifycn_name => $conf{'server'})) {
+             quit("ERROR => TLS setup failed: " . IO::Socket::SSL::errstr(), 
1);
+         }
+         printmsg("DEBUG => TLS: Using cipher: ". $SERVER->get_cipher(), 3);

diff --git a/net-mail/sendEmail/sendEmail-1.56-r4.ebuild 
b/net-mail/sendEmail/sendEmail-1.56-r4.ebuild
new file mode 100644
index 000000000000..9409e3943605
--- /dev/null
+++ b/net-mail/sendEmail/sendEmail-1.56-r4.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_P="${PN}-v${PV}"
+DESCRIPTION="Command line based, SMTP email agent"
+HOMEPAGE="http://caspian.dotconf.net/menu/Software/SendEmail/";
+SRC_URI="http://caspian.dotconf.net/menu/Software/SendEmail/${MY_P}.tar.gz";
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="ssl"
+
+RDEPEND="
+       dev-lang/perl
+       ssl? ( dev-perl/IO-Socket-SSL )
+"
+
+PATCHES=(
+       "${FILESDIR}"/${PV}-overzealous-version-check.patch
+       "${FILESDIR}"/${PV}-overzealous-verify-mode-check.patch
+       "${FILESDIR}"/${PV}-openssl-1.1.patch
+       "${FILESDIR}"/${PV}-openssl-3.patch
+       "${FILESDIR}"/${PV}-verify-mode.patch
+)
+
+src_install() {
+       dobin sendEmail
+       dodoc CHANGELOG README TODO
+}

Reply via email to