<pre style='margin:0'>
Haren S (harens) pushed a commit to branch master
in repository macports-base.
</pre>
<p><a href="https://github.com/macports/macports-base/commit/1e2ff3991b8f50fab0eabacd3b72cd42099f6e83">https://github.com/macports/macports-base/commit/1e2ff3991b8f50fab0eabacd3b72cd42099f6e83</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 1e2ff3991 Fix libmd linux (#237)
</span>1e2ff3991 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 1e2ff3991b8f50fab0eabacd3b72cd42099f6e83
</span>Author: Mihai Moldovan <ionic@ionic.de>
AuthorDate: Thu Mar 30 14:16:54 2023 +0200
<span style='display:block; white-space:pre;color:#404040;'> Fix libmd linux (#237)
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> The standalone libmd implementation as used on Linux includes a header
</span><span style='display:block; white-space:pre;color:#404040;'> called "sha2.h" which is supposed to be relative to its own include
</span><span style='display:block; white-space:pre;color:#404040;'> directory.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Unfortunately, MacPorts ships its own SHA2 implementation in pextlib (in
</span><span style='display:block; white-space:pre;color:#404040;'> case neither CommonCrypto, nor libmd nor OpenSSL-like implementations
</span><span style='display:block; white-space:pre;color:#404040;'> are available), which also uses the "sha2.h" header file name. This
</span><span style='display:block; white-space:pre;color:#404040;'> seems to take precedence and both header files are not compatible, so
</span><span style='display:block; white-space:pre;color:#404040;'> the build fails.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Move the standalone SHA2 implementation to src/compat/sha2 and update
</span><span style='display:block; white-space:pre;color:#404040;'> the references.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Additionally, SHA1_File is almost never a proper function, but most
</span><span style='display:block; white-space:pre;color:#404040;'> often defined as a macro set to the real function. In any case, checking
</span><span style='display:block; white-space:pre;color:#404040;'> for it via AC_CHECK_FUNCS() is wrong, so switch to AC_CHECK_DECLS() and
</span><span style='display:block; white-space:pre;color:#404040;'> use the updated checking macros.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Fixes: https://trac.macports.org/ticket/58060
</span>---
aclocal.m4 | 2 +-
configure | 11 +++++++----
src/{pextlib1.0 => compat/sha2}/sha2.c | 0
src/{pextlib1.0 => compat/sha2}/sha2.h | 0
src/config.h.in | 7 ++++---
src/pextlib1.0/sha1cmd.c | 2 +-
src/pextlib1.0/sha256cmd.c | 4 ++--
7 files changed, 15 insertions(+), 11 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/aclocal.m4 b/aclocal.m4
</span><span style='display:block; white-space:pre;color:#808080;'>index f0cb41583..cc92d20c3 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aclocal.m4
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aclocal.m4
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -805,7 +805,7 @@ AC_DEFUN([MP_LIB_MD5],[
</span> ])
ac_save_LIBS="$LIBS"
LIBS="-lmd $LIBS"
<span style='display:block; white-space:pre;background:#ffe0e0;'>- AC_CHECK_FUNCS([SHA1_File])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_CHECK_DECLS([SHA1_File], [], [], [[#include <sha.h>]])
</span> LIBS="$ac_save_LIBS"
AC_CHECK_HEADERS([ripemd.h sha256.h])
AC_DEFINE([HAVE_LIBMD], ,[Define if you have the `md' library (-lmd).])
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/configure b/configure
</span><span style='display:block; white-space:pre;color:#808080;'>index 8bfbd4432..a614be827 100755
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/configure
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/configure
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7524,12 +7524,15 @@ fi
</span> done
ac_save_LIBS="$LIBS"
LIBS="-lmd $LIBS"
<span style='display:block; white-space:pre;background:#ffe0e0;'>- ac_fn_c_check_func "$LINENO" "SHA1_File" "ac_cv_func_SHA1_File"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if test "x$ac_cv_func_SHA1_File" = xyes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_fn_check_decl "$LINENO" "SHA1_File" "ac_cv_have_decl_SHA1_File" "#include <sha.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+" "$ac_c_undeclared_builtin_options" "CFLAGS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if test "x$ac_cv_have_decl_SHA1_File" = xyes
</span> then :
<span style='display:block; white-space:pre;background:#ffe0e0;'>- printf "%s\n" "#define HAVE_SHA1_FILE 1" >>confdefs.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_have_decl=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+else $as_nop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_have_decl=0
</span> fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>+printf "%s\n" "#define HAVE_DECL_SHA1_FILE $ac_have_decl" >>confdefs.h
</span>
LIBS="$ac_save_LIBS"
ac_fn_c_check_header_compile "$LINENO" "ripemd.h" "ac_cv_header_ripemd_h" "$ac_includes_default"
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/pextlib1.0/sha2.c b/src/compat/sha2/sha2.c
</span>similarity index 100%
rename from src/pextlib1.0/sha2.c
rename to src/compat/sha2/sha2.c
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/pextlib1.0/sha2.h b/src/compat/sha2/sha2.h
</span>similarity index 100%
rename from src/pextlib1.0/sha2.h
rename to src/compat/sha2/sha2.h
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/config.h.in b/src/config.h.in
</span><span style='display:block; white-space:pre;color:#808080;'>index d3e471b1b..a3b5acdc4 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/config.h.in
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/config.h.in
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -40,6 +40,10 @@
</span> `rl_username_completion_function', and to 0 if you don't. */
#undef HAVE_DECL_RL_USERNAME_COMPLETION_FUNCTION
<span style='display:block; white-space:pre;background:#e0ffe0;'>+/* Define to 1 if you have the declaration of `SHA1_File', and to 0 if you
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ don't. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#undef HAVE_DECL_SHA1_FILE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> /* Define to 1 if you have the declaration of `username_completion_function',
and to 0 if you don't. */
#undef HAVE_DECL_USERNAME_COMPLETION_FUNCTION
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -144,9 +148,6 @@
</span> /* Define to 1 if you have the `setmode' function. */
#undef HAVE_SETMODE
<span style='display:block; white-space:pre;background:#ffe0e0;'>-/* Define to 1 if you have the `SHA1_File' function. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#undef HAVE_SHA1_FILE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> /* Define to 1 if you have the <sha256.h> header file. */
#undef HAVE_SHA256_H
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/pextlib1.0/sha1cmd.c b/src/pextlib1.0/sha1cmd.c
</span><span style='display:block; white-space:pre;color:#808080;'>index fdae1f3ea..a7c815a94 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/pextlib1.0/sha1cmd.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/pextlib1.0/sha1cmd.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -60,7 +60,7 @@ CHECKSUMFile(SHA1_, SHA_CTX)
</span> #ifndef SHA_DIGEST_LENGTH
#define SHA_DIGEST_LENGTH 20
#endif
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#ifndef HAVE_SHA1_FILE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#if (!(defined(HAVE_DECL_SHA1_FILE))) || (!(HAVE_DECL_SHA1_FILE))
</span> #define SHA1_File(x,y) SHAFile(x,y)
#endif
#elif defined(HAVE_LIBCRYPTO) && defined(HAVE_OPENSSL_SHA_H)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/pextlib1.0/sha256cmd.c b/src/pextlib1.0/sha256cmd.c
</span><span style='display:block; white-space:pre;color:#808080;'>index f02ac3344..963ff01d9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/pextlib1.0/sha256cmd.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/pextlib1.0/sha256cmd.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -78,8 +78,8 @@ CHECKSUMFile(SHA256_, SHA256_CTX)
</span> * let's use our own version of sha256* libraries.
*/
#include <sys/types.h>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#include "sha2.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#include "sha2.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include "sha2/sha2.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include "sha2/sha2.c"
</span>
#include "md_wrappers.h"
CHECKSUMEnd(SHA256_, SHA256_CTX, SHA256_DIGEST_LENGTH)
</pre><pre style='margin:0'>
</pre>