summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-perl/Net-SSLeay')
-rw-r--r--dev-perl/Net-SSLeay/Manifest3
-rw-r--r--dev-perl/Net-SSLeay/Net-SSLeay-1.920.0-r1.ebuild (renamed from dev-perl/Net-SSLeay/Net-SSLeay-1.900.0.ebuild)17
-rw-r--r--dev-perl/Net-SSLeay/Net-SSLeay-1.940.0.ebuild66
-rw-r--r--dev-perl/Net-SSLeay/files/Net-SSLeay-1.88-fix-libdir.patch27
-rw-r--r--dev-perl/Net-SSLeay/files/Net-SSLeay-1.92-libressl.patch158
5 files changed, 236 insertions, 35 deletions
diff --git a/dev-perl/Net-SSLeay/Manifest b/dev-perl/Net-SSLeay/Manifest
index 5937ab939a4d..5b509c132861 100644
--- a/dev-perl/Net-SSLeay/Manifest
+++ b/dev-perl/Net-SSLeay/Manifest
@@ -1 +1,2 @@
-DIST Net-SSLeay-1.90.tar.gz 534246 BLAKE2B 2510fa886db8b7c5f185aa1145ae1b50b7c4101a9bd80e17c8c1d77718765f288c9180464d831775c35aa94b5a6f6c8f717ecaeb4974f7280829b63f10567f22 SHA512 8a5f251b5ef1d8c2d619d984594a7a22ddeed2e5e726fe683a45f299d7878f4ca8ffab00480ebf5ef7a94ae1fcf6be05dfdaa68b8bfe2ad68443150765adb891
+DIST Net-SSLeay-1.92.tar.gz 555930 BLAKE2B 04d97860817b013a9680e0ef29b0004ddb98da2db859761a45612c4d25b6edd16bf92645293d1108d83352bce18665721c6df05455426b32a95a42b464119a3d SHA512 e9d9161ebeb7be90f4c7a0ea98f1034892ce6d33aa72872683177b19daa1f4c5819f85ea9a052a076ec8d7c21705f6c344aef64680bc881bf3218d38e8b7b173
+DIST Net-SSLeay-1.94.tar.gz 663948 BLAKE2B 97cef98bf3794ec992817e5ad91f8403ded95e29184512d9f23b5cbbd765912d2e7f8e835366b40aae9682dd13947cd79e2d9dcca2d10cd78e3c7869b1e197db SHA512 f1461667269f3da56ff7e1724b5511b95c34582250f8336e9f93d30f3b30d4a5360eb27622b9730bba11df75e00d717c7f0cea2120d20206723db136a8509375
diff --git a/dev-perl/Net-SSLeay/Net-SSLeay-1.900.0.ebuild b/dev-perl/Net-SSLeay/Net-SSLeay-1.920.0-r1.ebuild
index 7aa8353d6813..83c7281896d6 100644
--- a/dev-perl/Net-SSLeay/Net-SSLeay-1.900.0.ebuild
+++ b/dev-perl/Net-SSLeay/Net-SSLeay-1.920.0-r1.ebuild
@@ -1,26 +1,28 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DIST_AUTHOR=CHRISN
-DIST_VERSION=1.90
+DIST_VERSION=1.92
DIST_EXAMPLES=("examples/*")
-inherit multilib perl-module
+inherit perl-module
DESCRIPTION="Perl extension for using OpenSSL"
LICENSE="Artistic-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="minimal examples"
RDEPEND="
- dev-libs/openssl:0=
+ dev-libs/openssl:=
virtual/perl-MIME-Base64
"
+DEPEND="${RDEPEND}"
BDEPEND="${RDEPEND}
virtual/perl-ExtUtils-MakeMaker
+ virtual/perl-File-Spec
test? (
!minimal? (
dev-perl/Test-Exception
@@ -33,7 +35,7 @@ BDEPEND="${RDEPEND}
PATCHES=(
"${FILESDIR}/${PN}-1.88-fix-network-tests.patch"
- "${FILESDIR}/${PN}-1.88-fix-libdir.patch"
+ "${FILESDIR}/${PN}-1.92-libressl.patch" #903001
)
PERL_RM_FILES=(
@@ -51,13 +53,14 @@ src_configure() {
export NETWORK_TESTS=no
fi
export LIBDIR=$(get_libdir)
+ export OPENSSL_PREFIX="${ESYSROOT}/usr"
perl-module_src_configure
}
src_compile() {
mymake=(
OPTIMIZE="${CFLAGS}"
- OPENSSL_PREFIX="${EPREFIX}"/usr
+ OPENSSL_PREFIX="${ESYSROOT}"/usr
)
perl-module_src_compile
}
diff --git a/dev-perl/Net-SSLeay/Net-SSLeay-1.940.0.ebuild b/dev-perl/Net-SSLeay/Net-SSLeay-1.940.0.ebuild
new file mode 100644
index 000000000000..a93692796da1
--- /dev/null
+++ b/dev-perl/Net-SSLeay/Net-SSLeay-1.940.0.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DIST_AUTHOR=CHRISN
+DIST_VERSION=1.94
+DIST_EXAMPLES=("examples/*")
+inherit perl-module
+
+DESCRIPTION="Perl extension for using OpenSSL"
+
+LICENSE="Artistic-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="minimal examples"
+
+RDEPEND="
+ dev-libs/openssl:=
+ virtual/perl-MIME-Base64
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ ${RDEPEND}
+ virtual/perl-ExtUtils-MakeMaker
+ virtual/perl-File-Spec
+ test? (
+ !minimal? (
+ dev-perl/Test-Exception
+ dev-perl/Test-Warn
+ dev-perl/Test-NoWarnings
+ )
+ virtual/perl-Test-Simple
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.88-fix-network-tests.patch"
+)
+
+PERL_RM_FILES=(
+ # Author tests
+ 't/local/01_pod.t'
+ 't/local/02_pod_coverage.t'
+ 't/local/kwalitee.t'
+)
+
+src_configure() {
+ if use test && has network ${DIST_TEST_OVERRIDE:-${DIST_TEST:-do parallel}}; then
+ export NETWORK_TESTS=yes
+ else
+ use test && einfo "Network tests will be skipped without DIST_TEST_OVERRIDE=~network"
+ export NETWORK_TESTS=no
+ fi
+ export LIBDIR=$(get_libdir)
+ export OPENSSL_PREFIX="${ESYSROOT}/usr"
+ perl-module_src_configure
+}
+
+src_compile() {
+ mymake=(
+ OPTIMIZE="${CFLAGS}"
+ OPENSSL_PREFIX="${ESYSROOT}"/usr
+ )
+ perl-module_src_compile
+}
diff --git a/dev-perl/Net-SSLeay/files/Net-SSLeay-1.88-fix-libdir.patch b/dev-perl/Net-SSLeay/files/Net-SSLeay-1.88-fix-libdir.patch
deleted file mode 100644
index d78acb9c6153..000000000000
--- a/dev-perl/Net-SSLeay/files/Net-SSLeay-1.88-fix-libdir.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Bug: https://bugs.gentoo.org/416339
-
-The previous patch for the above bug report used $ENV{LIBDIR} but this
-wasn't enough to help with cross-compiling. We could use $ENV{SYSROOT}
-but this results in a bogus RPATH entry. It is better to simply trust
-the toolchain, which may have its own sysroot applied.
-
-Cross-compiling Perl modules requires additional hackery but at least
-that hackery will work now. :)
-
-Chewi
-2017/12/03
-
-diff -Naur a/Makefile.PL b/Makefile.PL
---- a/Makefile.PL 2017-10-13 01:38:01.000000000 +0100
-+++ b/Makefile.PL 2017-12-03 10:52:27.304861804 +0000
-@@ -141,10 +141,8 @@
- cccdlflags => '',
- };
- for ("$prefix/include", "$prefix/inc32", '/usr/kerberos/include') {
-- push @{$opts->{inc_paths}}, $_ if -f "$_/openssl/ssl.h";
- }
- for ($prefix, "$prefix/lib64", "$prefix/lib", "$prefix/out32dll") {
-- push @{$opts->{lib_paths}}, $_ if -d $_;
- }
-
- my $rsaref = $self->ssleay_is_rsaref;
diff --git a/dev-perl/Net-SSLeay/files/Net-SSLeay-1.92-libressl.patch b/dev-perl/Net-SSLeay/files/Net-SSLeay-1.92-libressl.patch
new file mode 100644
index 000000000000..f3e1b4ae1bd2
--- /dev/null
+++ b/dev-perl/Net-SSLeay/files/Net-SSLeay-1.92-libressl.patch
@@ -0,0 +1,158 @@
+https://bugs.gentoo.org/903001
+https://github.com/radiator-software/p5-net-ssleay/pull/360
+https://github.com/radiator-software/p5-net-ssleay/commit/4a886e06c1cac80e7fb3f8d52146a27ce557ba8c
+https://github.com/radiator-software/p5-net-ssleay/pull/362
+https://github.com/radiator-software/p5-net-ssleay/commit/88c3bbc45399c8ef2c8879aada8bfa91d8bc6c10
+https://github.com/radiator-software/p5-net-ssleay/pull/363
+https://github.com/radiator-software/p5-net-ssleay/commit/3dd2f101b8e15a59f66e22525b8d001d5ad6ce7d
+https://github.com/radiator-software/p5-net-ssleay/pull/434
+https://github.com/radiator-software/p5-net-ssleay/pull/435
+https://github.com/radiator-software/p5-net-ssleay/commit/fe9e49d220fa424c55fc436303b24f5bddae0b8d
+
+From 4a886e06c1cac80e7fb3f8d52146a27ce557ba8c Mon Sep 17 00:00:00 2001
+From: Alexander Bluhm <alexander.bluhm@gmx.net>
+Date: Wed, 19 Jan 2022 14:56:22 +0100
+Subject: [PATCH] Use X509_get0_tbs_sigalg() for LibreSSL. (#360)
+
+* Use X509_get0_tbs_sigalg() for LibreSSL.
+
+LibreSSL 3.5.0 has removed access to internal data structures. Use
+X509_get0_tbs_sigalg() like in OpenSSL 1.1.
+
+* Start Changes for the next release.
+
+Co-authored-by: Heikki Vatiainen <hvn@radiatorsoftware.com>
+---
+ Changes | 5 +++++
+ SSLeay.xs | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+From 88c3bbc45399c8ef2c8879aada8bfa91d8bc6c10 Mon Sep 17 00:00:00 2001
+From: Alexander Bluhm <alexander.bluhm@gmx.net>
+Date: Wed, 19 Jan 2022 20:38:57 +0100
+Subject: [PATCH] Use OCSP_SINGLERESP_get0_id() for LibreSSL. (#362)
+
+LibreSSL 3.5.0 has removed access to internal ocsp data structures.
+Use OCSP_SINGLERESP_get0_id() like in OpenSSL 1.1.
+---
+ SSLeay.xs | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+From 3dd2f101b8e15a59f66e22525b8d001d5ad6ce7d Mon Sep 17 00:00:00 2001
+From: Alexander Bluhm <alexander.bluhm@gmx.net>
+Date: Thu, 20 Jan 2022 19:15:27 +0100
+Subject: [PATCH] Implement RSA_get_key_parameters() for newer LibreSSL. (#363)
+
+LibreSSL 3.5.0 has removed access to internal rsa data structures.
+Use RSA_get0... functions to provide RSA_get_key_parameters().
+---
+ SSLeay.xs | 25 +++++++++++++++++++++++--
+ 1 file changed, 23 insertions(+), 2 deletions(-)
+
+From fe9e49d220fa424c55fc436303b24f5bddae0b8d Mon Sep 17 00:00:00 2001
+From: orbea <orbea@riseup.net>
+Date: Mon, 29 May 2023 10:16:33 -0700
+Subject: [PATCH] SSLeay.xs: Disable Policy Tree API for LibreSSL 3.8 and later
+
+This is taken from the OpenBSD ports tree.
+
+https://github.com/openbsd/ports/commit/f6567f938c9bd51bfd99f8426eba6a1590cc6384
+---
+ SSLeay.xs | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/SSLeay.xs
++++ b/SSLeay.xs
+@@ -1914,7 +1914,7 @@ X509 * find_issuer(X509 *cert,X509_STORE *store, STACK_OF(X509) *chain) {
+ return issuer;
+ }
+
+-SV* bn2sv(BIGNUM* p_bn)
++SV* bn2sv(const BIGNUM* p_bn)
+ {
+ return p_bn != NULL
+ ? sv_2mortal(newSViv((IV) BN_dup(p_bn)))
+@@ -6283,8 +6283,28 @@ RSA_generate_key(bits,e,perl_cb=&PL_sv_undef,perl_data=&PL_sv_undef)
+ void
+ RSA_get_key_parameters(rsa)
+ RSA * rsa
++PREINIT:
++#if defined(LIBRESSL_VERSION_NUMBER) && (LIBRESSL_VERSION_NUMBER >= 0x3050000fL)
++ const BIGNUM *n, *e, *d;
++ const BIGNUM *p, *q;
++ const BIGNUM *dmp1, *dmq1, *iqmp;
++#endif
+ PPCODE:
+ {
++#if defined(LIBRESSL_VERSION_NUMBER) && (LIBRESSL_VERSION_NUMBER >= 0x3050000fL)
++ RSA_get0_key(rsa, &n, &e, &d);
++ RSA_get0_factors(rsa, &p, &q);
++ RSA_get0_crt_params(rsa, &dmp1, &dmq1, &iqmp);
++ /* Caution: returned list consists of SV pointers to BIGNUMs, which would need to be blessed as Crypt::OpenSSL::Bignum for further use */
++ XPUSHs(bn2sv(n));
++ XPUSHs(bn2sv(e));
++ XPUSHs(bn2sv(d));
++ XPUSHs(bn2sv(p));
++ XPUSHs(bn2sv(q));
++ XPUSHs(bn2sv(dmp1));
++ XPUSHs(bn2sv(dmq1));
++ XPUSHs(bn2sv(iqmp));
++#else
+ /* Caution: returned list consists of SV pointers to BIGNUMs, which would need to be blessed as Crypt::OpenSSL::Bignum for further use */
+ XPUSHs(bn2sv(rsa->n));
+ XPUSHs(bn2sv(rsa->e));
+@@ -6294,9 +6314,10 @@ PPCODE:
+ XPUSHs(bn2sv(rsa->dmp1));
+ XPUSHs(bn2sv(rsa->dmq1));
+ XPUSHs(bn2sv(rsa->iqmp));
++#endif
+ }
+
+-#endif
++#endif /* OpenSSL < 1.1 or LibreSSL */
+
+ void
+ RSA_free(r)
+@@ -7010,6 +7031,7 @@ X509_VERIFY_PARAM_get0_peername(param)
+
+ #endif /* OpenSSL 1.0.2-beta2, LibreSSL 2.7.0 */
+
++#if !defined(LIBRESSL_VERSION_NUMBER) || (LIBRESSL_VERSION_NUMBER < 0x3080000fL) /* LibreSSL < 3.8.0 */
+ void
+ X509_policy_tree_free(tree)
+ X509_POLICY_TREE *tree
+@@ -7052,6 +7074,7 @@ const X509_POLICY_NODE *
+ X509_policy_node_get0_parent(node)
+ const X509_POLICY_NODE *node
+
++#endif /* !(LibreSSL >= 3.7.0) */
+ #endif
+
+ ASN1_OBJECT *
+@@ -7197,7 +7220,7 @@ ASN1_OBJECT *
+ P_X509_get_signature_alg(x)
+ X509 * x
+ CODE:
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
++#if (OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)) || (LIBRESSL_VERSION_NUMBER >= 0x3050000fL)
+ RETVAL = (X509_get0_tbs_sigalg(x)->algorithm);
+ #else
+ RETVAL = (x->cert_info->signature->algorithm);
+@@ -7690,7 +7713,7 @@ OCSP_response_results(rsp,...)
+ if (!idsv) {
+ /* getall: create new SV with OCSP_CERTID */
+ unsigned char *pi,*pc;
+-#if OPENSSL_VERSION_NUMBER >= 0x10100003L && !defined(LIBRESSL_VERSION_NUMBER)
++#if (OPENSSL_VERSION_NUMBER >= 0x10100003L && !defined(LIBRESSL_VERSION_NUMBER)) || (LIBRESSL_VERSION_NUMBER >= 0x3050000fL)
+ int len = i2d_OCSP_CERTID((OCSP_CERTID *)OCSP_SINGLERESP_get0_id(sir),NULL);
+ #else
+ int len = i2d_OCSP_CERTID(sir->certId,NULL);
+@@ -7699,7 +7722,7 @@ OCSP_response_results(rsp,...)
+ Newx(pc,len,unsigned char);
+ if (!pc) croak("out of memory");
+ pi = pc;
+-#if OPENSSL_VERSION_NUMBER >= 0x10100003L && !defined(LIBRESSL_VERSION_NUMBER)
++#if (OPENSSL_VERSION_NUMBER >= 0x10100003L && !defined(LIBRESSL_VERSION_NUMBER)) || (LIBRESSL_VERSION_NUMBER >= 0x3050000fL)
+ i2d_OCSP_CERTID((OCSP_CERTID *)OCSP_SINGLERESP_get0_id(sir),&pi);
+ #else
+ i2d_OCSP_CERTID(sir->certId,&pi);