commit:     a3a11cfe962d506e6e6e5c96cdab2376c8167110
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Sep  1 14:00:13 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Sep  1 14:04:53 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a3a11cfe

sys-apps/coreutils: fix build w/ <openssl-3

Closes: https://bugs.gentoo.org/913368
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-apps/coreutils/coreutils-9.4.ebuild            |   1 +
 .../files/coreutils-9.4-gnulib-openssl-1.1.patch   | 165 +++++++++++++++++++++
 2 files changed, 166 insertions(+)

diff --git a/sys-apps/coreutils/coreutils-9.4.ebuild 
b/sys-apps/coreutils/coreutils-9.4.ebuild
index 1eeb24a0282e..65deec47eb27 100644
--- a/sys-apps/coreutils/coreutils-9.4.ebuild
+++ b/sys-apps/coreutils/coreutils-9.4.ebuild
@@ -111,6 +111,7 @@ src_prepare() {
        # TODO: past 2025, we may need to add our own hack for bug #907474.
        local PATCHES=(
                # Upstream patches
+               "${FILESDIR}"/${P}-gnulib-openssl-1.1.patch
        )
 
        if ! use vanilla && [[ -d "${WORKDIR}"/${MY_PATCH} ]] ; then

diff --git a/sys-apps/coreutils/files/coreutils-9.4-gnulib-openssl-1.1.patch 
b/sys-apps/coreutils/files/coreutils-9.4-gnulib-openssl-1.1.patch
new file mode 100644
index 000000000000..3576c7d0d1eb
--- /dev/null
+++ b/sys-apps/coreutils/files/coreutils-9.4-gnulib-openssl-1.1.patch
@@ -0,0 +1,165 @@
+https://bugs.gentoo.org/913368
+https://debbugs.gnu.org/65674
+https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=ce20e238f0b4448a098bd7c076c131edbc759764
+
+From ce20e238f0b4448a098bd7c076c131edbc759764 Mon Sep 17 00:00:00 2001
+From: Bruno Haible <[email protected]>
+Date: Fri, 1 Sep 2023 12:55:30 +0200
+Subject: crypto/{sha*,md5,sm3}-buffer: Fix --with-openssl (regr. 2023-08-26).
+
+Reported by Agostino Sarubbo via Sam James <[email protected]> in
+<https://lists.gnu.org/archive/html/bug-gnulib/2023-09/msg00000.html>.
+
+* lib/sha1.h: Test the OpenSSL major version before attempting to
+include <openssl/configuration.h>.
+* lib/sha256.h: Likewise.
+* lib/sha512.h: Likewise.
+* lib/md5.h: Likewise.
+* lib/sm3.h: Likewise.
+--- a/lib/md5.h
++++ b/lib/md5.h
+@@ -33,14 +33,18 @@
+ #   define OPENSSL_API_COMPAT 0x10101000L /* FIXME: Use OpenSSL 1.1+ API.  */
+ #  endif
+ /* If <openssl/macros.h> would give a compile-time error, don't use OpenSSL.  
*/
+-#  include <openssl/configuration.h>
+-#  if (OPENSSL_CONFIGURED_API \
+-       < (OPENSSL_API_COMPAT < 0x900000L ? OPENSSL_API_COMPAT : \
+-          ((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \
+-          + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \
+-          + ((OPENSSL_API_COMPAT >> 12) & 0xFF)))
+-#   undef HAVE_OPENSSL_MD5
+-#  else
++#  include <openssl/opensslv.h>
++#  if OPENSSL_VERSION_MAJOR >= 3
++#   include <openssl/configuration.h>
++#   if (OPENSSL_CONFIGURED_API \
++        < (OPENSSL_API_COMPAT < 0x900000L ? OPENSSL_API_COMPAT : \
++           ((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \
++           + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \
++           + ((OPENSSL_API_COMPAT >> 12) & 0xFF)))
++#    undef HAVE_OPENSSL_MD5
++#   endif
++#  endif
++#  if HAVE_OPENSSL_MD5
+ #   include <openssl/md5.h>
+ #  endif
+ # endif
+--- a/lib/sha1.h
++++ b/lib/sha1.h
+@@ -32,14 +32,18 @@
+ #   define OPENSSL_API_COMPAT 0x10101000L /* FIXME: Use OpenSSL 1.1+ API.  */
+ #  endif
+ /* If <openssl/macros.h> would give a compile-time error, don't use OpenSSL.  
*/
+-#  include <openssl/configuration.h>
+-#  if (OPENSSL_CONFIGURED_API \
+-       < (OPENSSL_API_COMPAT < 0x900000L ? OPENSSL_API_COMPAT : \
+-          ((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \
+-          + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \
+-          + ((OPENSSL_API_COMPAT >> 12) & 0xFF)))
+-#   undef HAVE_OPENSSL_SHA1
+-#  else
++#  include <openssl/opensslv.h>
++#  if OPENSSL_VERSION_MAJOR >= 3
++#   include <openssl/configuration.h>
++#   if (OPENSSL_CONFIGURED_API \
++        < (OPENSSL_API_COMPAT < 0x900000L ? OPENSSL_API_COMPAT : \
++           ((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \
++           + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \
++           + ((OPENSSL_API_COMPAT >> 12) & 0xFF)))
++#    undef HAVE_OPENSSL_SHA1
++#   endif
++#  endif
++#  if HAVE_OPENSSL_SHA1
+ #   include <openssl/sha.h>
+ #  endif
+ # endif
+--- a/lib/sha256.h
++++ b/lib/sha256.h
+@@ -31,14 +31,18 @@
+ #   define OPENSSL_API_COMPAT 0x10101000L /* FIXME: Use OpenSSL 1.1+ API.  */
+ #  endif
+ /* If <openssl/macros.h> would give a compile-time error, don't use OpenSSL.  
*/
+-#  include <openssl/configuration.h>
+-#  if (OPENSSL_CONFIGURED_API \
+-       < (OPENSSL_API_COMPAT < 0x900000L ? OPENSSL_API_COMPAT : \
+-          ((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \
+-          + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \
+-          + ((OPENSSL_API_COMPAT >> 12) & 0xFF)))
+-#   undef HAVE_OPENSSL_SHA256
+-#  else
++#  include <openssl/opensslv.h>
++#  if OPENSSL_VERSION_MAJOR >= 3
++#   include <openssl/configuration.h>
++#   if (OPENSSL_CONFIGURED_API \
++        < (OPENSSL_API_COMPAT < 0x900000L ? OPENSSL_API_COMPAT : \
++           ((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \
++           + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \
++           + ((OPENSSL_API_COMPAT >> 12) & 0xFF)))
++#    undef HAVE_OPENSSL_SHA256
++#   endif
++#  endif
++#  if HAVE_OPENSSL_SHA256
+ #   include <openssl/sha.h>
+ #  endif
+ # endif
+--- a/lib/sha512.h
++++ b/lib/sha512.h
+@@ -31,14 +31,18 @@
+ #   define OPENSSL_API_COMPAT 0x10101000L /* FIXME: Use OpenSSL 1.1+ API.  */
+ #  endif
+ /* If <openssl/macros.h> would give a compile-time error, don't use OpenSSL.  
*/
+-#  include <openssl/configuration.h>
+-#  if (OPENSSL_CONFIGURED_API \
+-       < (OPENSSL_API_COMPAT < 0x900000L ? OPENSSL_API_COMPAT : \
+-          ((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \
+-          + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \
+-          + ((OPENSSL_API_COMPAT >> 12) & 0xFF)))
+-#   undef HAVE_OPENSSL_SHA512
+-#  else
++#  include <openssl/opensslv.h>
++#  if OPENSSL_VERSION_MAJOR >= 3
++#   include <openssl/configuration.h>
++#   if (OPENSSL_CONFIGURED_API \
++        < (OPENSSL_API_COMPAT < 0x900000L ? OPENSSL_API_COMPAT : \
++           ((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \
++           + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \
++           + ((OPENSSL_API_COMPAT >> 12) & 0xFF)))
++#    undef HAVE_OPENSSL_SHA512
++#   endif
++#  endif
++#  if HAVE_OPENSSL_SHA512
+ #   include <openssl/sha.h>
+ #  endif
+ # endif
+--- a/lib/sm3.h
++++ b/lib/sm3.h
+@@ -40,14 +40,18 @@
+ #   define OPENSSL_API_COMPAT 0x10101000L /* FIXME: Use OpenSSL 1.1+ API.  */
+ #  endif
+ /* If <openssl/macros.h> would give a compile-time error, don't use OpenSSL.  
*/
+-#  include <openssl/configuration.h>
+-#  if (OPENSSL_CONFIGURED_API \
+-       < (OPENSSL_API_COMPAT < 0x900000L ? OPENSSL_API_COMPAT : \
+-          ((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \
+-          + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \
+-          + ((OPENSSL_API_COMPAT >> 12) & 0xFF)))
+-#   undef HAVE_OPENSSL_SM3
+-#  else
++#  include <openssl/opensslv.h>
++#  if OPENSSL_VERSION_MAJOR >= 3
++#   include <openssl/configuration.h>
++#   if (OPENSSL_CONFIGURED_API \
++        < (OPENSSL_API_COMPAT < 0x900000L ? OPENSSL_API_COMPAT : \
++           ((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \
++           + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \
++           + ((OPENSSL_API_COMPAT >> 12) & 0xFF)))
++#    undef HAVE_OPENSSL_SM3
++#   endif
++#  endif
++#  if HAVE_OPENSSL_SM3
+ #   include <openssl/sm3.h>
+ #  endif
+ # endif
+-- 
+cgit v1.1

Reply via email to