summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-03-17 21:42:45 +0000
committerSam James <sam@gentoo.org>2023-03-17 21:52:36 +0000
commitd63d78079332b0d18cdd745ff6ece3e9ea204533 (patch)
treeb9f210e651eceec7b72f79b1cb9dc0a6f0502bee /dev-perl/Crypt-DES
parentdev-perl/SDL: fix build w/ clang 16 (diff)
downloadgentoo-d63d78079332b0d18cdd745ff6ece3e9ea204533.tar.gz
gentoo-d63d78079332b0d18cdd745ff6ece3e9ea204533.tar.bz2
gentoo-d63d78079332b0d18cdd745ff6ece3e9ea204533.zip
dev-perl/Crypt-DES: fix build w/ clang 16
Closes: https://bugs.gentoo.org/870427 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-perl/Crypt-DES')
-rw-r--r--dev-perl/Crypt-DES/Crypt-DES-2.70.0-r3.ebuild32
-rw-r--r--dev-perl/Crypt-DES/files/Crypt-DES-2.07-implicit-func-decl.patch34
2 files changed, 66 insertions, 0 deletions
diff --git a/dev-perl/Crypt-DES/Crypt-DES-2.70.0-r3.ebuild b/dev-perl/Crypt-DES/Crypt-DES-2.70.0-r3.ebuild
new file mode 100644
index 000000000000..1a477b6695dc
--- /dev/null
+++ b/dev-perl/Crypt-DES/Crypt-DES-2.70.0-r3.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DIST_AUTHOR=DPARIS
+DIST_VERSION=2.07
+inherit perl-module
+
+DESCRIPTION="Perl DES encryption module"
+
+LICENSE="DES"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ virtual/perl-ExtUtils-MakeMaker
+ test? ( dev-perl/Crypt-CBC )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.07-implicit-func-decl.patch
+)
+
+src_compile() {
+ mymake=(
+ "OPTIMIZE=${CFLAGS}"
+ )
+ perl-module_src_compile
+}
diff --git a/dev-perl/Crypt-DES/files/Crypt-DES-2.07-implicit-func-decl.patch b/dev-perl/Crypt-DES/files/Crypt-DES-2.07-implicit-func-decl.patch
new file mode 100644
index 000000000000..fa65def771b0
--- /dev/null
+++ b/dev-perl/Crypt-DES/files/Crypt-DES-2.07-implicit-func-decl.patch
@@ -0,0 +1,34 @@
+https://src.fedoraproject.org/rpms/perl-Crypt-DES/raw/0a4557f6b118387730b895037e4a17c90f212e68/f/perl-Crypt-DES-fedora-c99.patch
+https://rt.cpan.org/Public/Bug/Display.html?id=133363
+https://rt.cpan.org/Public/Bug/Display.html?id=133412
+https://bugs.gentoo.org/870427
+--- a/DES.xs
++++ b/DES.xs
+@@ -36,7 +36,7 @@ _des_expand_key(key)
+ if (key_len != sizeof(des_user_key))
+ croak("Invalid key");
+
+- perl_des_expand_key((i8 *)key, ks);
++ perl_des_expand_key((unsigned char *)key, ks);
+
+ ST(0) = sv_2mortal(newSVpv((char *)ks, sizeof(ks)));
+ }
+@@ -66,7 +66,8 @@ _des_crypt(input, output, ks, enc_flag)
+
+ (SvUPGRADE(output, SVt_PV));
+
+- perl_des_crypt(input, SvGROW(output, output_len), (i32 *)ks, enc_flag);
++ perl_des_crypt((unsigned char *)input, (unsigned char *)SvGROW(output, output_len),
++ (unsigned long *)ks, enc_flag);
+
+ SvCUR_set(output, output_len);
+ *SvEND(output) = '\0';
+--- a/_des.h
++++ b/_des.h
+@@ -5,3 +5,5 @@ typedef unsigned long des_ks[32];
+ void _des_crypt( des_cblock in, des_cblock out, des_ks key, int encrypt );
+ void _des_expand_key( des_user_key userKey, des_ks key );
+
++void perl_des_expand_key(des_user_key userKey, des_ks ks);
++void perl_des_crypt( des_cblock input, des_cblock output, des_ks ks, int encrypt );
+