On Wed, Jan 05 2022, Stuart Henderson <s...@spacehopper.org> wrote:
> Quite a few of the new sparc64 failures are related to neon:
>> http://build-failures.rhaalovely.net/sparc64/2022-01-03/audio/libmusicbrainz.log
>> http://build-failures.rhaalovely.net/sparc64/2022-01-03/audio/libmusicbrainz5.log
>
> /usr/local/lib/libneon.so.31.3: undefined reference to `EVP_sha512_256'
>
> This can be replicated on amd64 with USE_LLD=No

Yep.  For completeness, here are the related cc warnings:
--8<--
ne_openssl.c: In function 'hash_to_md':
ne_openssl.c:1124:37: warning: implicit declaration of function 
'EVP_sha512_256'; did you mean 'EVP_sha512'? [-Wimplicit-function-declaration]
     case NE_HASH_SHA512_256: return EVP_sha512_256();
                                     ^~~~~~~~~~~~~~
                                     EVP_sha512
ne_openssl.c:1124:37: warning: returning 'int' from a function with return type 
'const EVP_MD *' {aka 'const struct env_md_st *'} makes pointer from integer 
without a cast [-Wint-conversion]
     case NE_HASH_SHA512_256: return EVP_sha512_256();
                                     ^~~~~~~~~~~~~~~~
ne_openssl.c: In function 'hash_to_md':
ne_openssl.c:1124:37: warning: implicit declaration of function 
'EVP_sha512_256'; did you mean 'EVP_sha512'? [-Wimplicit-function-declaration]
     case NE_HASH_SHA512_256: return EVP_sha512_256();
                                     ^~~~~~~~~~~~~~
                                     EVP_sha512
ne_openssl.c:1124:37: warning: returning 'int' from a function with return type 
'const EVP_MD *' {aka 'const struct env_md_st *'} makes pointer from integer 
without a cast [-Wint-conversion]
     case NE_HASH_SHA512_256: return EVP_sha512_256();
                                     ^~~~~~~~~~~~~~~~
-->8--


> Presumably this in src/ne_openssl.c:
>
>       ...
> |     static const EVP_MD *hash_to_md(unsigned int flags)
> |     {
> |         switch (flags & NE_HASH_ALGMASK) {
> |         case NE_HASH_MD5: return EVP_md5();
> |         case NE_HASH_SHA256: return EVP_sha256();
> |     #ifdef HAVE_OPENSSL11
> |         case NE_HASH_SHA512: return EVP_sha512();
> |         case NE_HASH_SHA512_256: return EVP_sha512_256();
> |     #endif
>       ...
>
>
> The others aren't explicit but I guess quite likely to have the same cause:
>
>> http://build-failures.rhaalovely.net/sparc64/2022-01-03/net/cadaver.log
>
> configure: incompatible neon library version 0.32.1: wanted 0.27 28 29 30 31 
> 32
>
>> http://build-failures.rhaalovely.net/sparc64/2022-01-03/telephony/asterisk/16.log
>> http://build-failures.rhaalovely.net/sparc64/2022-01-03/telephony/asterisk/18.log
>> http://build-failures.rhaalovely.net/sparc64/2022-01-03/telephony/asterisk/19.log
>
> not clear from the build log but the module which isn't built depends on neon;
> config.log and/or menuselect-generated files probably tell more
>
>> http://build-failures.rhaalovely.net/sparc64/2022-01-03/sysutils/nut.log
>
> "checking whether to build neon based XML driver... no"
> config.log probably tells more

All those probably have the same root cause indeed.

Here's a diff that should get this port back on track.
cc'ing tb@ for feedback for I suspect that adding those APIs is not
a priority for now.

ok?


Index: Makefile
===================================================================
RCS file: /home/cvs/ports/net/neon/Makefile,v
retrieving revision 1.48
diff -u -p -r1.48 Makefile
--- Makefile    30 Dec 2021 16:29:56 -0000      1.48
+++ Makefile    10 Jan 2022 22:17:47 -0000
@@ -3,6 +3,7 @@
 COMMENT=               HTTP and WebDAV client library, with C interface
 
 DISTNAME=              neon-0.32.1
+REVISION=              0
 
 SHARED_LIBS +=  neon                 31.3     # 32.1
 
Index: patches/patch-src_ne_openssl_c
===================================================================
RCS file: patches/patch-src_ne_openssl_c
diff -N patches/patch-src_ne_openssl_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_ne_openssl_c      10 Jan 2022 22:18:37 -0000
@@ -0,0 +1,15 @@
+$OpenBSD$
+
+LibreSSL does not provide EVP_sha512_256()
+
+Index: src/ne_openssl.c
+--- src/ne_openssl.c.orig
++++ src/ne_openssl.c
+@@ -1121,7 +1121,6 @@ static const EVP_MD *hash_to_md(unsigned int flags)
+     case NE_HASH_SHA256: return EVP_sha256();
+ #ifdef HAVE_OPENSSL11
+     case NE_HASH_SHA512: return EVP_sha512();
+-    case NE_HASH_SHA512_256: return EVP_sha512_256();
+ #endif
+     default: break;
+     }


-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE

Reply via email to