summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-12-16 08:15:08 +0000
committerSam James <sam@gentoo.org>2023-12-16 08:23:55 +0000
commitea1df205e5207db476ea62971db3d64d345d46e7 (patch)
tree6d98034cd6403bd308863fe64e05ca10d40ae2ba /dev-libs/libmcrypt
parentnet-libs/udns: fix (another) modern C issue (diff)
downloadgentoo-ea1df205e5207db476ea62971db3d64d345d46e7.tar.gz
gentoo-ea1df205e5207db476ea62971db3d64d345d46e7.tar.bz2
gentoo-ea1df205e5207db476ea62971db3d64d345d46e7.zip
dev-libs/libmcrypt: fix more modern C issues
Closes: https://bugs.gentoo.org/919293 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-libs/libmcrypt')
-rw-r--r--dev-libs/libmcrypt/files/libmcrypt-2.5.8-c99-2.patch42
-rw-r--r--dev-libs/libmcrypt/files/libmcrypt-2.5.8-c99.patch56
-rw-r--r--dev-libs/libmcrypt/libmcrypt-2.5.8-r7.ebuild45
3 files changed, 143 insertions, 0 deletions
diff --git a/dev-libs/libmcrypt/files/libmcrypt-2.5.8-c99-2.patch b/dev-libs/libmcrypt/files/libmcrypt-2.5.8-c99-2.patch
new file mode 100644
index 000000000000..ba2236de6c42
--- /dev/null
+++ b/dev-libs/libmcrypt/files/libmcrypt-2.5.8-c99-2.patch
@@ -0,0 +1,42 @@
+https://src.fedoraproject.org/rpms/libmcrypt/blob/e02fbd614a5b7ba093e9e15ab322e7eb02d64e3b/f/libmcrypt-configure-c99-2.patch
+
+Fix glitches in the readdir and bcopy probes. They were
+just invalid.
+
+diff --git a/configure b/configure
+index d0fb8783e147654b..4fe7660a16359171 100755
+--- a/configure
++++ b/configure
+@@ -6639,7 +6639,7 @@ fi
+ done
+
+
+-for ac_func in readdir,,
++for ac_func in readdir
+ do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ echo "$as_me:$LINENO: checking for $ac_func" >&5
+@@ -6741,7 +6741,7 @@ fi
+ done
+
+
+-for ac_func in bcopy,,
++for ac_func in bcopy
+ do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ echo "$as_me:$LINENO: checking for $ac_func" >&5
+diff --git a/configure.in b/configure.in
+index a815778931728ec2..f0c9a0e8f73e1153 100644
+--- a/configure.in
++++ b/configure.in
+@@ -204,8 +204,8 @@ AC_FUNC_MEMCMP
+ AC_FUNC_REALLOC
+
+ AC_CHECK_FUNCS([bzero memmove memset mlock readdir_r strchr strdup strrchr])
+-AC_CHECK_FUNCS([readdir,,])
+-AC_CHECK_FUNCS([bcopy,,])
++AC_CHECK_FUNCS([readdir])
++AC_CHECK_FUNCS([bcopy])
+
+ dnl Checks for libraries.
+ AC_C_BIGENDIAN
diff --git a/dev-libs/libmcrypt/files/libmcrypt-2.5.8-c99.patch b/dev-libs/libmcrypt/files/libmcrypt-2.5.8-c99.patch
new file mode 100644
index 000000000000..25c555c99627
--- /dev/null
+++ b/dev-libs/libmcrypt/files/libmcrypt-2.5.8-c99.patch
@@ -0,0 +1,56 @@
+https://src.fedoraproject.org/rpms/libmcrypt/blob/e02fbd614a5b7ba093e9e15ab322e7eb02d64e3b/f/libmcrypt-c99.patch
+
+Add return and argument types to fake prototypes in mcrypt_symb.c.
+This avoids build failures with future compilers that do not support
+implicit function declarations.
+
+Also fix a minor type error in the perminit calls in the Triple DES
+implementation.
+
+Submitted upstream: <https://sourceforge.net/p/mcrypt/patches/15/>
+
+diff --git a/lib/Makefile.am b/lib/Makefile.am
+index a1a09578858aaf3c..a92f150627a1f610 100644
+--- a/lib/Makefile.am
++++ b/lib/Makefile.am
+@@ -23,8 +23,8 @@ mcrypt_symb.c: mcrypt_internal.h
+ @echo "/* This is automatically created. Don't touch... */" >> mcrypt_symb.c
+ @echo "" >> mcrypt_symb.c
+ -@for i in $(EXTRA_ALGOS); do \
+- if test -f ../modules/algorithms/$$i.c; then cat ../modules/algorithms/$$i.c 2>/dev/null|grep define|grep LTX|awk '{print "extern "$$3"();";}' >> mcrypt_symb.c 2>/dev/null; fi; \
+- if test -f ../modules/modes/$$i.c; then cat ../modules/modes/$$i.c 2>/dev/null|grep define|grep LTX|awk '{print "extern "$$3"();";}' >> mcrypt_symb.c 2>/dev/null; fi; \
++ if test -f ../modules/algorithms/$$i.c; then cat ../modules/algorithms/$$i.c 2>/dev/null|grep define|grep LTX|awk '{print "extern void "$$3"(void);";}' >> mcrypt_symb.c 2>/dev/null; fi; \
++ if test -f ../modules/modes/$$i.c; then cat ../modules/modes/$$i.c 2>/dev/null|grep define|grep LTX|awk '{print "extern void "$$3"(void);";}' >> mcrypt_symb.c 2>/dev/null; fi; \
+ done
+ @echo "" >> mcrypt_symb.c
+ @echo "const mcrypt_preloaded mps[] = {" >> mcrypt_symb.c
+diff --git a/lib/Makefile.in b/lib/Makefile.in
+index 1baaa1e94be1abce..e0e690d1c831370f 100644
+--- a/lib/Makefile.in
++++ b/lib/Makefile.in
+@@ -561,8 +561,8 @@ mcrypt_symb.c: mcrypt_internal.h
+ @echo "/* This is automatically created. Don't touch... */" >> mcrypt_symb.c
+ @echo "" >> mcrypt_symb.c
+ -@for i in $(EXTRA_ALGOS); do \
+- if test -f ../modules/algorithms/$$i.c; then cat ../modules/algorithms/$$i.c 2>/dev/null|grep define|grep LTX|awk '{print "extern "$$3"();";}' >> mcrypt_symb.c 2>/dev/null; fi; \
+- if test -f ../modules/modes/$$i.c; then cat ../modules/modes/$$i.c 2>/dev/null|grep define|grep LTX|awk '{print "extern "$$3"();";}' >> mcrypt_symb.c 2>/dev/null; fi; \
++ if test -f ../modules/algorithms/$$i.c; then cat ../modules/algorithms/$$i.c 2>/dev/null|grep define|grep LTX|awk '{print "extern void "$$3"(void);";}' >> mcrypt_symb.c 2>/dev/null; fi; \
++ if test -f ../modules/modes/$$i.c; then cat ../modules/modes/$$i.c 2>/dev/null|grep define|grep LTX|awk '{print "extern void "$$3"(void);";}' >> mcrypt_symb.c 2>/dev/null; fi; \
+ done
+ @echo "" >> mcrypt_symb.c
+ @echo "const mcrypt_preloaded mps[] = {" >> mcrypt_symb.c
+diff --git a/modules/algorithms/tripledes.c b/modules/algorithms/tripledes.c
+index 98e9bd45b4f336b1..2737d2fd8fd02a3f 100644
+--- a/modules/algorithms/tripledes.c
++++ b/modules/algorithms/tripledes.c
+@@ -201,8 +201,8 @@ static int _mcrypt_desinit(TRIPLEDES_KEY * key)
+ spinit(key, 0);
+ spinit(key, 1);
+ spinit(key, 2);
+- perminit(&key->iperm, ip);
+- perminit(&key->fperm, fp);
++ perminit(key->iperm, ip);
++ perminit(key->fperm, fp);
+
+
+ return 0;
diff --git a/dev-libs/libmcrypt/libmcrypt-2.5.8-r7.ebuild b/dev-libs/libmcrypt/libmcrypt-2.5.8-r7.ebuild
new file mode 100644
index 000000000000..3f3d5b686185
--- /dev/null
+++ b/dev-libs/libmcrypt/libmcrypt-2.5.8-r7.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Provides an uniform interface to access several encryption algorithms"
+HOMEPAGE="https://mcrypt.sourceforge.net"
+SRC_URI="mirror://sourceforge/mcrypt/${P}.tar.gz"
+
+LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+
+DOCS=(
+ AUTHORS NEWS README THANKS TODO ChangeLog
+ doc/README.config doc/README.key doc/README.xtea
+ doc/example.c
+)
+
+PATCHES=(
+ "${FILESDIR}/${P}-rotate-mask.patch"
+ "${FILESDIR}/${P}-autoconf-2.70.patch" #775113
+ # http://sourceforge.net/tracker/index.php?func=detail&aid=1872801&group_id=87941&atid=584895
+ "${FILESDIR}/${P}-uninitialized.patch"
+ "${FILESDIR}/${P}-prototypes.patch"
+ "${FILESDIR}/${P}-c99.patch"
+ "${FILESDIR}/${P}-c99-2.patch"
+)
+
+src_prepare() {
+ default
+
+ mv configure.in configure.ac || die
+ mv libltdl/configure.in libltdl/configure.ac || die
+ sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/g' configure.ac libltdl/configure.ac || die
+
+ eautoreconf # update stale autotools
+}
+
+src_install() {
+ default
+ find "${ED}" -type f -name '*.la' -delete || die
+}