LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   regression on -current with doxygen (gcc-12.1.0) (https://www.linuxquestions.org/questions/slackware-14/regression-on-current-with-doxygen-gcc-12-1-0-a-4175712131/)

nobodino 05-15-2022 12:21 AM

regression on -current with doxygen (gcc-12.1.0)
 
doxygen doesn't build with gcc-12.1.0:

Code:

[ 23%] Built target vhdlparser
Consolidate compiler generated dependencies of target doxycfg
[ 23%] Building CXX object src/CMakeFiles/doxycfg.dir/message.cpp.o
In file included from /tmp/doxygen-1.9.4/src/doxygen.h:24,
                from /tmp/doxygen-1.9.4/src/message.cpp:21:
/tmp/doxygen-1.9.4/src/cache.h: In member function ‘V* Cache<K, V>::insert(const K&, V&&)’:
/tmp/doxygen-1.9.4/src/cache.h:53:14: error: ‘exchange’ is not a member of ‘std’
  53 |        std::exchange(it->second->second,value);
      |              ^~~~~~~~
make[2]: *** [src/CMakeFiles/doxycfg.dir/build.make:170: src/CMakeFiles/doxycfg.dir/message.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:595: src/CMakeFiles/doxycfg.dir/all] Error 2
make: *** [Makefile:166: all] Error 2

a single sed line solves the problem, follow this link from BLFS: https://www.linuxfromscratch.org/blf...l/doxygen.html

Code:

find . \
  \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
  -exec chmod 755 {} \+ -o \
  \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
  -exec chmod 644 {} \+

# patch to build with gcc-12.1.0
sed -i '/mutex/a#include <utility>' src/cache.h

mkdir build
cd build


nobodino 06-18-2022 01:05 AM

it still doesn't build on -current with gcc-12.1.0.

USUARIONUEVO 06-18-2022 11:31 PM

I can test now cause im out of home , but linux from scratch do this..

Quote:

sed -i '/mutex/a#include <utility>' src/cache.h

github upstream patch , not tested

https://github.com/doxygen/doxygen/c...3ea511fa.patch

nobodino 06-18-2022 11:33 PM

I know but it's not in the slackware source tree.

USUARIONUEVO 06-18-2022 11:35 PM

Quote:

Originally Posted by nobodino (Post 6361971)
I know but it's not in the slackware source tree.

https://github.com/doxygen/doxygen/c...3ea511fa.patch

I updated with a direct link to official patch , i cant test now if this patch solve the problem.

nobodino 06-19-2022 02:38 AM

nota: the sed line and the patch accomplish exactly the same thing.

Some prefer patches and others sed lines, it's a matter of taste.

marav 06-19-2022 04:55 AM

Quote:

Originally Posted by nobodino (Post 6361997)
nota: the sed line and the patch accomplish exactly the same thing.

Some prefer patches and others sed lines, it's a matter of taste.

My taste is: if a single sed does the trick, it's not necessary to overcharge the script with a patch

nobodino 06-19-2022 11:40 AM

PV prefers patches as I've seen.

nobodino 07-14-2022 12:53 AM

still unsolved in -current.

nobodino 07-30-2022 04:23 AM

the gcc-12.1.0 is solved but a new problem appeared:

Code:

entering extended mode
(./doxygen_manual.tex
LaTeX2e <2021-11-15> patch level 1
L3 programming layer <2022-05-04>
make[3]: *** [doc/CMakeFiles/doxygen_pdf.dir/build.make:75 : doc/CMakeFiles/doxygen_pdf] Erreur 1
make[2]: *** [CMakeFiles/Makefile2:751 : doc/CMakeFiles/doxygen_pdf.dir/all] Erreur 2
make[1]: *** [CMakeFiles/Makefile2:784 : doc/CMakeFiles/docs.dir/rule] Erreur 2
make: *** [Makefile:395 : docs] Erreur 2
[ 38%] Built target doxymain
[ 40%] Built target md5
[ 40%] Built target lodepng
[ 45%] Built target mscgen
[ 45%] Checking the doxygen version for changes...
[ 45%] Built target check_doxygen_version
[ 45%] Checking the git repository for changes...
[ 45%] Built target check_git_repository
[ 46%] Built target doxygen_version
[ 47%] Built target xml
[ 47%] Built target generate_configvalues_header
[ 50%] Built target vhdlparser
[ 53%] Built target doxycfg
[ 54%] Built target doxygen
[ 78%] Built target examples
[ 80%] Generating Latex and HTML documentation.
[100%] Built target run_doxygen
[100%] Generating Doxygen Manual PDF.
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022 on Slackware) (preloaded format=pdflatex)
 \write18 enabled.
entering extended mode
(./doxygen_manual.tex
LaTeX2e <2021-11-15> patch level 1
L3 programming layer <2022-05-04>
make[3]: *** [doc/CMakeFiles/doxygen_pdf.dir/build.make:75 : doc/CMakeFiles/doxygen_pdf] Erreur 1
make[2]: *** [CMakeFiles/Makefile2:751 : doc/CMakeFiles/doxygen_pdf.dir/all] Erreur 2
make[1]: *** [CMakeFiles/Makefile2:784 : doc/CMakeFiles/docs.dir/rule] Erreur 2
make: *** [Makefile:395 : docs] Erreur 2


marav 07-30-2022 07:06 PM

I didn't find out why, but it builds fine if you revert to texlive-2021.210418-x86_64-4
So, it can be the culprit

Code:

...
usr/man/
usr/man/man1/
usr/man/man1/doxygen.1.gz
usr/man/man1/doxyindexer.1.gz
usr/man/man1/doxysearch.1.gz
usr/man/man1/doxywizard.1.gz

Slackware package /tmp/doxygen-1.9.4-x86_64-1.txz created


nobodino 07-31-2022 03:34 AM

the solution may here: https://github.com/doxygen/doxygen/issues/8935

When you follow the instructions and look at the doxygen_manuel.log you can see this:
Code:

! LaTeX Error: File `sectsty.sty' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: sty)

Enter file name:
! Emergency stop.
<read *>

Code:

root@xxxx:~/scripts# locate sectsty.sty
/usr/share/texmf-dist/tex/latex/lwarp/lwarp-sectsty.sty

sectsty.sty is part of the old texlive package.
Could it be built with the new texlive?

franzen 07-31-2022 06:53 AM

Quote:

Originally Posted by nobodino (Post 6370895)
sectsty.sty is part of the old texlive package.
Could it be built with the new texlive?

I'll add it to the next texlive update!

nobodino 07-31-2022 07:21 AM

Thanks Sir!

nobodino 08-01-2022 07:32 AM

Finally,I found a solution,it needed 6 'test and try' texlive build to achieve it:
I copied a list of missing sty and def files to get doxygen build without any errors. I modified the texlive.slackbuild as following:

Code:

# Create some directories to make it clear that they're owned by this package
mkdir -p $PKG$TEXMFROOT/{texmf-config,texmf-var,texmf-local}

# install various sty and def files from previous installation
mkdir -v $PKG/usr/share/texmf-dist/tex/latex/{adjustbox,etoc,sectsty,tocloft,varwidth,stackengine}
cp -v $CWD/sectsty.sty $PKG/usr/share/texmf-dist/tex/latex/sectsty/
cp -v $CWD/tocloft.sty $PKG/usr/share/texmf-dist/tex/latex/tocloft/
cp -v $CWD/varwidth.sty $PKG/usr/share/texmf-dist/tex/latex/varwidth/
cp -v $CWD/adjcalc.sty $PKG/usr/share/texmf-dist/tex/latex/adjustbox/
cp -v $CWD/adjustbox.sty $PKG/usr/share/texmf-dist/tex/latex/adjustbox/
cp -v $CWD/tc-dvips.def $PKG/usr/share/texmf-dist/tex/latex/adjustbox/
cp -v $CWD/tc-pdftx.def $PKG/usr/share/texmf-dist/tex/latex/adjustbox/
cp -v $CWD/tc-pgf.def $PKG/usr/share/texmf-dist/tex/latex/adjustbox/
cp -v $CWD/tc-xetex.def $PKG/usr/share/texmf-dist/tex/latex/adjustbox/
cp -v $CWD/trimclip.sty $PKG/usr/share/texmf-dist/tex/latex/adjustbox/
cp -v $CWD/stackengine.sty $PKG/usr/share/texmf-dist/tex/latex/stackengine/
cp -v $CWD/etoc.sty $PKG/usr/share/texmf-dist/tex/latex/etoc/


# Add texlive perl modules
mkdir -p $PKG/usr/share/perl5
mv $PKG$TEXMFROOT/texmf-dist/scripts/texlive/TeXLive $PKG/usr/share/perl5/

It's just a trick, but it gives you what's missing (franzen).


All times are GMT -5. The time now is 11:12 AM.