fink / fink-distributions

Package descriptions and patches for Fink
25 stars 38 forks source link

Failed: phase compiling: doxygen-1.9.8-1 failed #1180

Open dak180 opened 1 week ago

dak180 commented 1 week ago
[ 19%] Building CXX object vhdlparser/CMakeFiles/vhdlparser.dir/__/generated_src/VhdlParser_adj.cc.o
cd /sw/src/fink.build/doxygen-1.9.8-1/doxygen-1.9.8/finkbuild/vhdlparser && /sw/var/lib/fink/path-prefix-clang/c++  -I/sw/include -I/sw/src/fink.build/doxygen-1.9.8-1/doxygen-1.9.8/src -I/sw/src/fink.build/doxygen-1.9.8-1/doxygen-1.9.8/vhdlparser -I/sw/src/fink.build/doxygen-1.9.8-1/doxygen-1.9.8/finkbuild/generated_src -Wno-deprecated-register -mmacosx-version-min=10.14 -MD       -DJAVACC_CHAR_TYPE="unsigned char" -O3 -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.14 -fvisibility=hidden -fvisibility-inlines-hidden -std=gnu++1z -MD -MT vhdlparser/CMakeFiles/vhdlparser.dir/__/generated_src/VhdlParser_adj.cc.o -MF CMakeFiles/vhdlparser.dir/__/generated_src/VhdlParser_adj.cc.o.d -o CMakeFiles/vhdlparser.dir/__/generated_src/VhdlParser_adj.cc.o -c /sw/src/fink.build/doxygen-1.9.8-1/doxygen-1.9.8/finkbuild/generated_src/VhdlParser_adj.cc
In file included from /sw/src/fink.build/doxygen-1.9.8-1/doxygen-1.9.8/finkbuild/generated_src/VhdlParser_adj.cc:2:
In file included from /sw/src/fink.build/doxygen-1.9.8-1/doxygen-1.9.8/vhdlparser/VhdlParser.h:7:
In file included from /sw/src/fink.build/doxygen-1.9.8-1/doxygen-1.9.8/src/vhdljjparser.h:18:
/sw/src/fink.build/doxygen-1.9.8-1/doxygen-1.9.8/src/util.h:28:10: fatal error: 
      'variant' file not found
#include <variant>
         ^~~~~~~~~
1 error generated.
make[2]: *** [vhdlparser/CMakeFiles/vhdlparser.dir/__/generated_src/VhdlParser_adj.cc.o] Error 1
make[2]: Leaving directory `/sw/src/fink.build/doxygen-1.9.8-1/doxygen-1.9.8/finkbuild'
make[1]: *** [vhdlparser/CMakeFiles/vhdlparser.dir/all] Error 2
make[1]: Leaving directory `/sw/src/fink.build/doxygen-1.9.8-1/doxygen-1.9.8/finkbuild'
make: *** [all] Error 2
make: Leaving directory `/sw/src/fink.build/doxygen-1.9.8-1/doxygen-1.9.8/finkbuild'
### execution of /tmp/fink.FC0Dm failed, exit code 2
### execution of /tmp/fink.Dtjmi failed, exit code 2
2024-11-07 20:17:01.524 perl5.18[64694:4495137] GrowlApplicationBridge: Could not send open-document event to register this application with Growl because AESend returned -600/no eligible process with specified descriptor
Removing runtime build-lock...
Removing build-lock package...
/sw/bin/dpkg-lockwait -r fink-buildlock-doxygen-1.9.8-1
(Reading database ... 278658 files and directories currently installed.)
Removing fink-buildlock-doxygen-1.9.8-1 ...
Failed: phase compiling: doxygen-1.9.8-1 failed
Package manager version: 0.45.6
Distribution version: selfupdate-rsync Thu Nov  7 19:50:15 2024, 10.12, x86_64
Trees: local/main remote/dak180 stable/main
Xcode.app: 9.2
Xcode command-line tools: 9.2.0.0.1.1510905681
Max. Fink build jobs:  1
nieder commented 1 week ago

Ugh. The <variant> header is apparently a C++17 thing. Doxygen started with v1.9.4: https://github.com/doxygen/doxygen/commit/7ff9879dd7c3e727fac106e0e8722b3657460362

Unfortunately, the [commit log for our doxygen-1.9.8] [147eb78ad47ed3ab8d294cb46b3891a35b918a56] says this was due to our older 1.8.14 version being unable to deal with texlive-2021 and ghostscript-10, so we can't downgrade doxygen on 10.12 and earlier.

Packaging options that I can think of (because I don't know if the code is fixable): 1) switch 10.12 and earlier to using gcc instead of clang; 2) try to find an intermediate version of doxygen that works with texlive-2024 and is not using c++17[1]. Doxygen went to c++11 with v1.8.16, c++14 with v1.8.17, and c++17 with v1.9.4.

[1] Note that this is using gnu++1z, which is supposed to be the prerelease version of c++17 as far as I can understand from the web, but it's clearly not enough.

edited to add: reading more, some places say Xcode 9.2 does support C++17, but you have to force it by passing -std=c++17 to the compiler in CXXFLAGS. Can you edit doxygen.info, and add the field SetCXXFLAGS: -std=c++17 ? Does that fix it?