commit: f777ed34be0ceac0174729991138eb7167374026 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Mon Jul 7 22:16:53 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Mon Jul 7 22:16:53 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f777ed34
dev-perl/Crypt-OpenSSL-EC: EAPI 8, fix build w/ perl-5.42 Closes: https://bugs.gentoo.org/959696 Signed-off-by: Sam James <sam <AT> gentoo.org> ...1.ebuild => Crypt-OpenSSL-EC-1.320.0-r2.ebuild} | 24 +++---- .../files/Crypt-OpenSSL-EC-1.320.0-perl-5.42.patch | 80 ++++++++++++++++++++++ 2 files changed, 89 insertions(+), 15 deletions(-) diff --git a/dev-perl/Crypt-OpenSSL-EC/Crypt-OpenSSL-EC-1.320.0-r1.ebuild b/dev-perl/Crypt-OpenSSL-EC/Crypt-OpenSSL-EC-1.320.0-r2.ebuild similarity index 52% rename from dev-perl/Crypt-OpenSSL-EC/Crypt-OpenSSL-EC-1.320.0-r1.ebuild rename to dev-perl/Crypt-OpenSSL-EC/Crypt-OpenSSL-EC-1.320.0-r2.ebuild index 41d327b816a2..8d0bbeb5572c 100644 --- a/dev-perl/Crypt-OpenSSL-EC/Crypt-OpenSSL-EC-1.320.0-r1.ebuild +++ b/dev-perl/Crypt-OpenSSL-EC/Crypt-OpenSSL-EC-1.320.0-r2.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 DIST_AUTHOR=MIKEM DIST_VERSION=1.32 @@ -9,23 +9,17 @@ inherit perl-module DESCRIPTION="Perl extension for OpenSSL EC (Elliptic Curves) library" SLOT="0" + KEYWORDS="~amd64 ~x86" -IUSE="test " -RESTRICT="!test? ( test )" RDEPEND=" >=dev-perl/Crypt-OpenSSL-Bignum-0.40.0 - dev-libs/openssl:0= + dev-libs/openssl:= " DEPEND=" - dev-libs/openssl:0 -" -BDEPEND="${RDEPEND} - virtual/perl-ExtUtils-MakeMaker + dev-libs/openssl:= " -src_compile() { - mymake=( - "OPTIMIZE=${CFLAGS}" - ) - perl-module_src_compile -} + +PATCHES=( + "${FILESDIR}"/${PN}-1.320.0-perl-5.42.patch +) diff --git a/dev-perl/Crypt-OpenSSL-EC/files/Crypt-OpenSSL-EC-1.320.0-perl-5.42.patch b/dev-perl/Crypt-OpenSSL-EC/files/Crypt-OpenSSL-EC-1.320.0-perl-5.42.patch new file mode 100644 index 000000000000..8573c2927b67 --- /dev/null +++ b/dev-perl/Crypt-OpenSSL-EC/files/Crypt-OpenSSL-EC-1.320.0-perl-5.42.patch @@ -0,0 +1,80 @@ +https://bugs.gentoo.org/959696 +https://rt.cpan.org/Public/Bug/Display.html?id=164982 +https://rt.cpan.org/Transaction/Display.html?id=3010771 + +From 9455d2a6542da3c55351d8fb4b08aabb20245c1c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <[email protected]> +Date: Wed, 7 May 2025 16:30:18 +0200 +Subject: [PATCH] Remove never compiled EC_POINTs_make_affine() and + EC_POINTs_mul() prototypes +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +After upgrading ExtUtils::ParseXS from 3.51 to 3.57 Crypt-OpenSSL-EC-1.32 fails to build: + + $ make + cp lib/Crypt/OpenSSL/EC.pm blib/lib/Crypt/OpenSSL/EC.pm + AutoSplitting blib/lib/Crypt/OpenSSL/EC.pm (blib/lib/auto/Crypt/OpenSSL/EC) + Running Mkbootstrap for EC () + chmod 644 "EC.bs" + "/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- EC.bs blib/arch/auto/Crypt/OpenSSL/EC/EC.bs 644 + "/usr/bin/perl" "/usr/share/perl5/vendor_perl/ExtUtils/xsubpp" -typemap '/usr/share/perl5/ExtUtils/typemap' -typemap '/home/test/fedora/perl-Crypt-OpenSSL-EC/Crypt-OpenSSL-EC-1.32/typemap' EC.xs > EC.xsc + Unparseable XSUB parameter: 'EC_POINT *p[]' in EC.xs, line 354 + Unparseable XSUB parameter: 'const EC_POINT *p[]' in EC.xs, line 357 + Unparseable XSUB parameter: 'const BIGNUM *m[]' in EC.xs, line 357 + make: *** [Makefile:362: EC.c] Error 1 + +The problematic argument with a pointer to an array type trigger the +failure. Old ExtUtils::ParseXS parsed them, but the generated code was +an invalid C code. E.g. This XS: + + int + EC_POINTs_make_affine(const EC_GROUP *group, size_t num, EC_POINT *p[], BN_CTX *ctx) + +was incorrectly parsed as: + + XS_EUPXS(XS_Crypt__OpenSSL__EC__EC_POINT_EC_POINTs_mul) + { + [...] + RETVAL = EC_POINTs_mul(group, r, n, num, const EC_POINT *p[], const BIGNUM *m[], ctx); + +That means that ExtUtils::ParseXS never supported arrays of pointers. Now it +correctly reports na error. + +On the other hand, ExtUtils::ParseXS does not understand +C preprocessor directives and does not ignore code enclosed in "#if 0" +macro condition. + +This patch simply removes the two protypes. + +CPAN RT#164982 + +Signed-off-by: Petr Písař <[email protected]> +--- + EC.xs | 10 ---------- + 1 file changed, 10 deletions(-) + +diff --git a/EC.xs b/EC.xs +index d5d01d1..c06b9c3 100644 +--- a/EC.xs ++++ b/EC.xs +@@ -348,16 +348,6 @@ EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, BN_CTX + int + EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx) + +-#if 0 +- +-int +-EC_POINTs_make_affine(const EC_GROUP *group, size_t num, EC_POINT *p[], BN_CTX *ctx) +- +-int +-EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, size_t num, const EC_POINT *p[], const BIGNUM *m[], BN_CTX *ctx) +- +-#endif +- + int + EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx) + +-- +2.49.0
