Re: git: 7a7408cd7731 - main - security/botan3: Broken on aarch64, amd64 and 13

From: Matthias Andree <mandree_at_FreeBSD.org>
Date: Sun, 19 May 2024 09:47:34 UTC
Am 18.05.24 um 20:59 schrieb Yuri Victorovich:
> The branch main has been updated by yuri:
> 
> URL: https://cgit.FreeBSD.org/ports/commit/?id=7a7408cd7731d6e05ccbc6e895ca84600eb26bfe
> 
> commit 7a7408cd7731d6e05ccbc6e895ca84600eb26bfe
> Author:     Yuri Victorovich <yuri@FreeBSD.org>
> AuthorDate: 2024-05-18 18:58:46 +0000
> Commit:     Yuri Victorovich <yuri@FreeBSD.org>
> CommitDate: 2024-05-18 18:58:46 +0000
> 
>      security/botan3: Broken on aarch64, amd64 and 13
>      
>      Reported by:    fallout
> ---
>   security/botan3/Makefile | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/security/botan3/Makefile b/security/botan3/Makefile
> index 8ddf75dfbc36..64282de2bc4b 100644
> --- a/security/botan3/Makefile
> +++ b/security/botan3/Makefile
> @@ -12,7 +12,9 @@ WWW=		https://botan.randombit.net/
>   LICENSE=	BSD2CLAUSE
>   LICENSE_FILE=	${WRKSRC}/license.txt
>   
> -BROKEN_armv6=	include/arm_neon.h:28:2: error: "NEON support not enabled"
> +BROKEN_amd64=	clang crashes, see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=279136
> +BROKEN_aarch64=	clang crashes, see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=279136
> +BROKEN_FreeBSD_13=	compilation fails: no member named 'find' in namespace 'std::ranges'
>   
>   LIB_DEPENDS=	libboost_filesystem.so:devel/boost-libs
>   

Dima, Yuri,

Update: LLVM15 compiles this nicely on FreeBSD 14 amd64, yet
* I get a "pathfix" warning at the end that pathfix won't fix (we'd need 
to patch the configure.py or other stuff instead) and
* I find that the build hardcodes the /usr/local/llvm15/bin/c++ path so 
that it does not use ccache... so when using ccache, we would have to 
wrap it.  --compiler-cache=... to the rescue.

Finally, we might want to resolve the conflict with Botan2, which seems 
to be ONLY around the manual page, so Botan2 may want to rename its to 
botan2(1).

I am attaching a patch, which isn't complete, I didn't test LLVM14, I 
didn't test ARM64 (can't for lack of a system), I didn't hack FreeBSD 
13, and didn't remove the BROKEN line.

In case it doesn't make it here, see
https://people.freebsd.org/~mandree/botan3-wip.patch

ldd doesn't show we depend on boot::filesystem - is it safe to remove 
the LIB_DEPENDS? I've commented it out.


-------

Hi Yuri,

what's become of the LLVM version constraining lines that Dima commented 
out in 21d88aba74501? Have you tried pinning LLVM to versions 14-15 by 
enabling those commented lines again?

Alternatively, could/should we use GCC with libc++?
(Look at graphics/rawtherapee for how it's done, albeit with older C++ 
standards than C++20.)

Also, for std::ranges::find if our C++ doesn't cut it, we might consider 
adding Boost as a dependency and use boost::ranges::find if it's usable 
for what Botan3 tries to do with it (I haven't looked):
<https://www.boost.org/doc/libs/1_85_0/libs/range/doc/html/range/reference/algorithms/non_mutating/find.html>

Regards,
Matthias

-- 
Matthias Andree
FreeBSD ports committer