Bug 254757

Summary: devel/doxygen: build failure: deprecated directive: '%name-prefix "constexpYY"',
Product: Ports & Packages Reporter: O. Hartmann <ohartmann>
Component: Individual Port(s)Assignee: Dima Panov <fluffy>
Status: In Progress ---    
Severity: Affects Only Me CC: bink19th, yamayan
Priority: --- Flags: bugzilla: maintainer-feedback? (fluffy)
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
patch none

Description O. Hartmann 2021-04-04 08:31:00 UTC
devel/doxygen fails to build on the latest ports tree before migration to git.
Deleting and rebuilding devel/bison (which seems to be the source of the problem) doesn't solve the problem.

A very similar "deprecated directive:" error osscurs for me when compiling editors/libreoffice

[ 31%] Linking CXX static library ../lib/libvhdlparser.a
cd /usr/ports/devel/doxygen/work/.build/vhdlparser && /usr/local/bin/cmake -P CMakeFiles/vhdlparser.dir/cmake_clean_target.cmake
cd /usr/ports/devel/doxygen/work/.build/vhdlparser && /usr/local/bin/cmake -E cmake_link_script CMakeFiles/vhdlparser.dir/link.txt --verbose=1
/usr/bin/ar qc ../lib/libvhdlparser.a CMakeFiles/vhdlparser.dir/CharStream.cc.o CMakeFiles/vhdlparser.dir/ParseException.cc.o CMakeFiles/vhdlparser.dir/Token.cc.o CMakeFiles/vhdlparser.dir/TokenMgrError.cc.o CMakeFiles/vhdlparser.dir/__/generated_src/VhdlParser_adj.cc.o CMakeFiles/vhdlparser.dir/VhdlParserTokenManager.cc.o
/usr/bin/ranlib ../lib/libvhdlparser.a
[ 31%] Built target vhdlparser
/usr/bin/make  -f src/CMakeFiles/doxymain.dir/build.make src/CMakeFiles/doxymain.dir/depend
[ 31%] [BISON][constexp] Building parser with bison 3.7.5
cd /usr/ports/devel/doxygen/work/doxygen-1.9.0/src && /usr/local/bin/bison  -d -o /usr/ports/devel/doxygen/work/.build/generated_src/ce_parse.cpp /usr/ports/devel/doxygen/work/doxygen-1.9.0/src/constexp.y
/usr/ports/devel/doxygen/work/doxygen-1.9.0/src/constexp.y:38.1-25: warning: deprecated directive: '%name-prefix "constexpYY"', use '%define api.prefix {constexpYY}' [

Stop.
make[4]: stopped in /usr/ports/devel/doxygen/work/.build
*** Error code 1
Comment 1 Dima Panov freebsd_committer 2021-04-06 07:24:26 UTC
(In reply to O. Hartmann from comment #0)

Update to doxygen-1.9.1 is almost ready, which should fix this issue, caused by flex/bison. 

Will be committed as soon as git repo will be opened to push
Comment 2 David Armstrong 2021-04-14 07:52:21 UTC
I've encountered this error with the doxygen build on FreeBSD 13.0-RELEASE AMD64.

It's part of the KDE5 build process, which puts a spanner in the works.
Comment 3 David Armstrong 2021-04-14 08:05:57 UTC
A (strange?) workaround for this would seem to have output directed to a text file.

This is under a csh shell.

Running "make" fails.
Running "make >& log.txt" is successful.

I had the same issue with gstreamer1.
bug #254326, comment #5
Comment 4 O. Hartmann 2021-04-15 08:50:00 UTC
The error also occurs with 

multimedia/gstreamer1
editors/libreoffice

in a similar way (build/compilation failure):

multimedia/gstreamer1:

[...]
mv grammar.tab_tmp2.c grammar.tab.c
./grammar.y:799.1-12: warning: deprecated directive: ‘%pure-parser’, use ‘%define api.pure’ [
                                                                                             gmake[6]: *** [Makefile:842: grammar.tab.h] Error 139
gmake[6]: Leaving directory '/usr/ports/multimedia/gstreamer1/work/gstreamer-1.16.2/gst/parse'
gmake[5]: *** [Makefile:1813: all-recursive] Error 1
gmake[5]: Leaving directory '/usr/ports/multimedia/gstreamer1/work/gstreamer-1.16.2/gst'
gmake[4]: *** [Makefile:1011: all] Error 2
gmake[4]: Leaving directory '/usr/ports/multimedia/gstreamer1/work/gstreamer-1.16.2/gst'
gmake[3]: *** [Makefile:742: all-recursive] Error 1
gmake[3]: Leaving directory '/usr/ports/multimedia/gstreamer1/work/gstreamer-1.16.2'
gmake[2]: *** [Makefile:648: all] Error 2
gmake[2]: Leaving directory '/usr/ports/multimedia/gstreamer1/work/gstreamer-1.16.2'
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1


editors/libreoffice:

[...]
[CXX] codemaker/source/codemaker/options.cxx
/usr/ports/editors/libreoffice/work/libreoffice-7.1.2.2/unoidl/source/sourceprovider-parser.y:13.1-12: warning: deprecated directive: ‘%pure-parser’, use ‘%define api.pure’ [
                                  gmake[3]: *** [/usr/ports/editors/libreoffice/work/libreoffice-7.1.2.2/solenv/gbuild/LinkTarget.mk:407: /usr/ports/editors/libreoffice/work/libreoffice-7.1.2.2/workdir/YaccTarget/unoidl/source/sourceprovider-parser.done] Error 139
gmake[3]: *** Waiting for unfinished jobs....
gmake[3]: Leaving directory '/usr/ports/editors/libreoffice/work/libreoffice-7.1.2.2'
gmake[2]: *** [Makefile:282: build] Error 2
gmake[2]: Leaving directory '/usr/ports/editors/libreoffice/work/libreoffice-7.1.2.2'
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/editors/libreoffice
*** Error code 1


I had recompiled almost every port due to ncurses changes, but right now I recompile all kf5 ports and required ports. Hopefully this helps. Thanks for the int delegating output to a dedicated file, will try ...
Comment 5 O. Hartmann 2021-04-15 15:27:40 UTC
(In reply to David Armstrong from comment #3)

Your trick apllied to all the failing ports made the build magically work again!
Comment 6 Dima Panov freebsd_committer 2021-04-18 17:29:59 UTC
Folks, please test with doxygen 1.9.1. 

I still cannot reproduce in clean poudriere build
Comment 7 O. Hartmann 2021-05-08 06:35:36 UTC
The same problem with the latest devel/doxygen in the ports tree, e3847f7b2db9, which has devel/doxygen 1.9.1_2.

Still the same problem. The number of servers having this reported problme seems to grow over time.
Comment 8 Dima Panov freebsd_committer 2021-05-08 09:49:52 UTC
(In reply to O. Hartmann from comment #7)
Moin!

I still cannot reproduce this in a clean build environment (poudriere and synth).

In which way you build it? Looks like polluted installation :(
Comment 9 yamayan 2021-07-13 13:27:01 UTC
Created attachment 226429 [details]
patch

change %name-prefix to %define api.prefix {constexpYY}
remove -p flag