Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 932673 - app-text/doxygen-1.10.0-r1 - configuration file example.cfg not found with dev-build/ninja-1.12.1
Summary: app-text/doxygen-1.10.0-r1 - configuration file example.cfg not found with de...
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Matthias Maier
URL:
Whiteboard:
Keywords: PATCH
Depends on:
Blocks: parallel-make
  Show dependency tree
 
Reported: 2024-05-25 04:11 UTC by Leonid Kopylov
Modified: 2024-07-22 20:45 UTC (History)
5 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (build.log,400.56 KB, text/plain)
2024-05-25 04:11 UTC, Leonid Kopylov
Details
fix for incorrect dependency declaration (doxygen-example-dep-fix.patch,2.05 KB, patch)
2024-07-07 15:30 UTC, Torsten Kaiser
Details | Diff
patch for doxygen-1.11.0 (doxygen-1.11.0-examples-CMakeList.patch,2.17 KB, patch)
2024-07-22 19:57 UTC, Benjamin Réveillé
Details | Diff
modified doxygen-1.11.0.ebuild (doxygen-1.11.0.ebuild,3.75 KB, text/plain)
2024-07-22 19:59 UTC, Benjamin Réveillé
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Leonid Kopylov 2024-05-25 04:11:44 UTC
# emerge -pqv '=app-text/doxygen-1.10.0-r1::gentoo'
[ebuild  N    ] app-text/doxygen-1.10.0-r1  USE="doc dot doxysearch gui -clang -debug -test"

# emerge --info '=app-text/doxygen-1.10.0-r1::gentoo'
Portage 3.0.64 (python 3.12.3-final-0, default/linux/amd64/23.0/desktop/gnome/systemd, gcc-14, glibc-2.39-r6, 6.9.1-gentoo-amd64 x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-6.9.1-gentoo-amd64-x86_64-13th_Gen_Intel-R-_Core-TM-_i7-1370P-with-glibc2.39
KiB Mem:    65394216 total,  63696776 free
KiB Swap:    8388604 total,   8388604 free
Timestamp of repository gentoo: Fri, 24 May 2024 06:30:00 +0000
Head commit of repository gentoo: 9aa2b1a14f8c5d41f02b5112c31e9a2f47e928b1
sh bash 5.2_p26-r3
ld GNU ld (Gentoo 2.42 p3) 2.42.0
ccache version 4.9.1 [enabled]
app-misc/pax-utils:        1.3.7::gentoo
app-shells/bash:           5.2_p26-r3::gentoo
dev-build/autoconf:        2.71-r7::gentoo, 2.72-r1::gentoo
dev-build/automake:        1.16.5-r2::gentoo
dev-build/cmake:           3.29.3::gentoo
dev-build/libtool:         2.4.7-r4::gentoo
dev-build/make:            4.4.1-r1::gentoo
dev-build/meson:           1.4.0-r1::gentoo
dev-java/java-config:      2.3.3-r1::gentoo
dev-lang/perl:             5.38.2-r5::gentoo
dev-lang/python:           3.11.9-r1::gentoo, 3.12.3-r1::gentoo, 3.13.0_beta1_p2::gentoo
dev-lang/rust-bin:         1.77.1::gentoo
dev-util/ccache:           4.9.1-r1::gentoo
sys-apps/baselayout:       2.15::gentoo
sys-apps/sandbox:          2.38::gentoo
sys-apps/systemd:          255.6::gentoo
sys-devel/binutils:        2.42-r1::gentoo
sys-devel/binutils-config: 5.5::gentoo
sys-devel/clang:           15.0.7-r3::gentoo, 16.0.6::gentoo, 17.0.6::gentoo, 18.1.6::gentoo
sys-devel/gcc:             12.3.1_p20240502::gentoo, 13.3.0::gentoo, 14.1.1_p20240518::gentoo
sys-devel/gcc-config:      2.11::gentoo
sys-devel/llvm:            15.0.7-r3::gentoo, 16.0.6::gentoo, 17.0.6::gentoo, 18.1.6::gentoo
sys-kernel/linux-headers:  6.9::gentoo (virtual/os-headers)
sys-libs/glibc:            2.39-r6::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: rsync
    sync-uri: rsync://gentoo.kopylovs.net/gentoo-portage
    priority: -1000
    volatile: False
    sync-rsync-extra-opts:
    sync-rsync-verify-jobs: 1
    sync-rsync-verify-max-age: 3
    sync-rsync-verify-metamanifest: yes

Binary Repositories:

gentoobinhost
    priority: 1
    sync-uri: https://distfiles.gentoo.org/releases/amd64/binpackages/23.0/x86-64

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA android AnyDesk-TOS geekbench google-chrome Intel-SDP microsoft-edge Microsoft-vscode NVIDIA-CUDA NVIDIA-SDK OPERA-2018 PUEL-11 RAR TeamViewer Vivaldi"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=native -O2 -pipe -fomit-frame-pointer"
DISTDIR="/var/cache/distfiles"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME"
FCFLAGS="-march=native -O2 -pipe -fomit-frame-pointer"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live ccache config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync merge-wait multilib-strict network-sandbox news parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict strict-keepdir unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync warn-on-large-env xattr"
FFLAGS="-march=native -O2 -pipe -fomit-frame-pointer"
GENTOO_MIRRORS="https://mirror.isoc.org.il/pub/gentoo/ https://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/"
LANG="en_US.utf8"
LC_ALL="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs"
LEX="flex"
MAKEOPTS="-j10"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
SHELL="/bin/bash"
USE="X a52 aac accessibility acl acpi alsa amd64 audit bash-completion berkdb bidi bluetooth branding brotli btrfs bzip2 cairo cdda cdr cet cli colord crypt cryptsetup cuda cups curl dbus designer device-mapper doc dri drm dts dvd dvdr eds emacs encode evdev evo examples exif experimental ffmpeg flac fortran fuse gamepad gdbm gif git gmp gnome gnome-keyring gnome-online-accounts gnome-shell gnutls go gpg gpm gstreamer gtk gtk-doc gui hscolour html http iconv icu idn introspection iodbc ios ipv6 jack java jemalloc joystick jpeg json kde kerberos keyring lcms ldap libnotify libtirpc lm-sensors lua lvm lz4 lzma lzo mad man mbedtls mng mongodb mp3 mp4 mpeg mpi multilib multimedia mysql nas nautilus ncurses netlink network networkmanager nfs nls nss nvenc odbc offensive ogg opencl opengl openmp openssl pam pango pcap pcre pdf perl pkcs11 plasma plugins png policykit postgres ppds pulseaudio python qml qt5 qt6 readline redis samba sasl screencast sdl seccomp semantic-desktop snmp sound source speech spell sqlite ssl startup-notification svg symlink sysprof systemd tcl telemetry test-rust threads tiff tk tools tpm tracker truetype udev udisks unicode upower usb utils v4l vaapi vala vdpau vim-syntax vnc vorbis vulkan wayland webengine webkit webp wifi wxwidgets x264 xattr xcb xen xft xinerama xml xv xvid yaml zeroconf zip zlib zsh-completion zstd" ABI_X86="64 32" ADA_TARGET="gcc_12" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_core authn_dbd authn_dbm authn_file authn_socache authz_core authz_dbd authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex brotli cache cgi cgid charset_lite dav dav_fs dav_lock dbd deflate dir env expires ext_filter file_cache filter headers http2 ident imagemap include info log_config logio mime mime_magic negotiation ratelimit reqtimeout rewrite session session_cookie session_crypto session_dbd setenvif socache_shmcb speling status substitute tls unique_id unixd userdir usertrack version vhost_alias watchdog xml2enc" APACHE2_MPMS="worker" CALLIGRA_FEATURES="karbon sheets stage words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 ssse3 vpclmulqdq" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 ntrip navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" GRUB_PLATFORMS="efi-64" INPUT_DEVICES="evdev joystick libinput" KERNEL="linux" L10N="en en-US he ru" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LIBREOFFICE_EXTENSIONS="nlpsolver scripting-beanshell scripting-javascript wiki-publisher" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" NGINX_MODULES_HTTP="access addition auth_basic auth_ldap auth_pam auth_request autoindex brotli browser charset dav dav_ext echo empty_gif fancyindex fastcgi flv geo geoip geoip2 grpc gunzip gzip image_filter javascript limit_conn limit_req map memc memcached metrics mirror mp4 perl proxy push_stream referer rewrite scgi split_clients ssi stub_status upload_progress upstream_check upstream_hash upstream_ip_hash upstream_keepalive upstream_least_conn upstream_zone userid uwsgi vhost_traffic_status xslt" NGINX_MODULES_MAIL="imap pop3 smtp" NGINX_MODULES_STREAM="access" OFFICE_IMPLEMENTATION="libreoffice" PERL_FEATURES="ithreads quadmath" PHP_TARGETS="php8-1" POSTGRES_TARGETS="postgres15" PYTHON_SINGLE_TARGET="python3_12" PYTHON_TARGETS="python3_11 python3_12 python3_13" RUBY_TARGETS="ruby31 ruby32 ruby33" UWSGI_PLUGINS="alarm_curl cache carbon cheaper_busyness clock_monotonic clock_realtime corerouter curl_cron dumbloop echo emperor_amqp emperor_pg emperor_zeromq fastrouter forkptyrouter geoip graylog2 http ldap legion_cache_fetch logcrypto logfile logpipe logsocket mongodblog nagios notfound pam ping rados rawrouter redislog router_access router_basicauth router_cache router_expires router_hash router_http router_memcached router_metrics router_redirect router_redis router_rewrite router_spnego router_static router_uwsgi router_xmldir rpc rrdtool rsyslog signal spooler sqlite ssi sslrouter stats_pusher_statsd symcall syslog systemd_logger transformation_chunked transformation_gzip transformation_offload transformation_tofile transformation_toupper tuntap ugreen webdav xattr xslt zabbix zergpool" VIDEO_CARDS="intel fbdev vesa nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account"
Unset:  ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PYTHONPATH, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS
Comment 1 Leonid Kopylov 2024-05-25 04:11:55 UTC
Created attachment 894308 [details]
build.log
Comment 2 Benjamin Réveillé 2024-07-03 20:42:50 UTC
Seeing the same build error

>emerge -pqv '=app-text/doxygen-1.10.0-r1'
[ebuild   R   ] app-text/doxygen-1.10.0-r1  USE="doc dot gui -clang -debug -doxysearch -test"

FAILED: html/examples/example/html/index.html latex/examples/example/latex/refman_doc.tex /var/tmp/portage/app-text/doxygen-1.10.0-r1/work/doxygen-1.10.0_build/html/examples/example/html/index.html /var/tmp/portage/app-text/doxygen-1.10.0-r1/work/doxygen-1.10.0_build/latex/examples/example/latex/refman_doc.tex 
cd /var/tmp/portage/app-text/doxygen-1.10.0-r1/work/doxygen-1.10.0_build/examples && /usr/bin/cmake -E make_directory /var/tmp/portage/app-text/doxygen-1.10.0-r1/work/doxygen-1.10.0_build/html/examples/example && /usr/bin/cmake -E make_directory /var/tmp/portage/app-text/doxygen-1.10.0-r1/work/doxygen-1.10.0_build/latex/examples/example && /usr/bin/cmake -E env PROJECT_BINARY_DIR=/var/tmp/portage/app-text/doxygen-1.10.0-r1/work/doxygen-1.10.0_build /var/tmp/portage/app-text/doxygen-1.10.0-r1/work/doxygen-1.10.0_build/bin/doxygen example.cfg && /usr/bin/python3.13 /var/tmp/portage/app-text/doxygen-1.10.0-r1/work/doxygen-1.10.0/examples/strip_example.py < /var/tmp/portage/app-text/doxygen-1.10.0-r1/work/doxygen-1.10.0_build/latex/examples/example/latex/refman.tex > /var/tmp/portage/app-text/doxygen-1.10.0-r1/work/doxygen-1.10.0_build/latex/examples/example/latex/refman_doc.tex
error: configuration file example.cfg not found!
Comment 3 Gary E. Miller 2024-07-04 01:05:42 UTC
#MeToo
Comment 4 Klaus Kusche 2024-07-06 13:09:06 UTC
Same problem here.
Comment 5 Benjamin Réveillé 2024-07-06 13:54:30 UTC
applying this patch to the ebuild worked for me...


--- /var/db/repos/gentoo/app-text/doxygen/doxygen-1.10.0-r1.ebuild      2024-07-06 15:44:05.572456076 +0200
+++ doxygen-1.10.0-r1.ebuild    2024-07-06 15:50:44.082937489 +0200
@@ -141,6 +141,7 @@
                                || die "disabling dot failed"
                fi
 
+               cmake_src_compile examples
                # -j1 for bug #770070
                cmake_src_compile docs -j1
        fi



Couldn't figure out why the examples dependency wasn't getting built... So just added it myself.
Comment 6 Klaus Kusche 2024-07-06 14:14:15 UTC
(In reply to Benjamin Réveillé from comment #5)
Same patch works here, too.
Comment 7 Torsten Kaiser 2024-07-07 13:40:25 UTC
The trigger seems to be ninja.

dev-build/ninja-1.12.1 -> broken
dev-build/ninja-1.11.1-r5 -> works

https://github.com/ninja-build/ninja/releases/tag/v1.12.0

"Critical path scheduler which orders the jobs by their runtime history #2177
This may break your build if you haven't specified your dependencies correctly."

So, somewhere a dependency is really missing in doxygen and the new ninja scheduler will then build it in the "wrong" order.
Comment 8 Torsten Kaiser 2024-07-07 15:30:11 UTC
Created attachment 897279 [details, diff]
fix for incorrect dependency declaration

The attached patch fixes the build problem for me.
And I was even able to remove the -j1 restriction from the second build call. (8 core / 16 thread ryzen using -j16. So it should be OK for any -j)

The problem seems to be, that the doxygen call expects all files already copied to the target build directory. And as part of the DEPENDS declaration this should have been the case. But while all other DEPENDS specify the full path to the needed files, in the case of the doxygen call only the pure filename was listed. So cmake / ninja could not construct the correct dependency and the copy before doxygen only happend due to luck and the -j1 was needed so, that all copys where finished before the doxygen call.

After adding the full paths the dependency now seems to get calculated correctly and it works both with the new ninja and without needing -j1.

Change for the ebuild:
--- /usr/portage/app-text/doxygen/doxygen-1.10.0-r1.ebuild      2024-04-30 20:41:27.000000000 +0200
+++ /var/ebuilds/app-text/doxygen/doxygen-1.10.0-r1.ebuild      2024-07-07 17:02:46.033546959 +0200
@@ -141,8 +141,7 @@
                                || die "disabling dot failed"
                fi
 
-               # -j1 for bug #770070
-               cmake_src_compile docs -j1
+               cmake_src_compile docs
        fi
 }
Comment 9 Benjamin Réveillé 2024-07-20 06:47:22 UTC
(In reply to Torsten Kaiser from comment #8)
> Created attachment 897279 [details, diff] [details, diff]
> fix for incorrect dependency declaration
> 
> The attached patch fixes the build problem for me.
> And I was even able to remove the -j1 restriction from the second build
> call. (8 core / 16 thread ryzen using -j16. So it should be OK for any -j)
> 
> The problem seems to be, that the doxygen call expects all files already
> copied to the target build directory. And as part of the DEPENDS declaration
> this should have been the case. But while all other DEPENDS specify the full
> path to the needed files, in the case of the doxygen call only the pure
> filename was listed. So cmake / ninja could not construct the correct
> dependency and the copy before doxygen only happend due to luck and the -j1
> was needed so, that all copys where finished before the doxygen call.
> 
> After adding the full paths the dependency now seems to get calculated
> correctly and it works both with the new ninja and without needing -j1.
> 
> Change for the ebuild:
> --- /usr/portage/app-text/doxygen/doxygen-1.10.0-r1.ebuild      2024-04-30
> 20:41:27.000000000 +0200
> +++ /var/ebuilds/app-text/doxygen/doxygen-1.10.0-r1.ebuild      2024-07-07
> 17:02:46.033546959 +0200
> @@ -141,8 +141,7 @@
>                                 || die "disabling dot failed"
>                 fi
>  
> -               # -j1 for bug #770070
> -               cmake_src_compile docs -j1
> +               cmake_src_compile docs
>         fi
>  }

With this patch and ebuild modification I am still failing with "error: @INCLUDE = baseexample.cfg: not found!"
Comment 10 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-07-20 06:55:00 UTC
Many thanks for the debugging!
Comment 11 Benjamin Réveillé 2024-07-20 07:00:41 UTC
(In reply to Benjamin Réveillé from comment #9)
> (In reply to Torsten Kaiser from comment #8)
> > Created attachment 897279 [details, diff] [details, diff] [details, diff]
> > fix for incorrect dependency declaration
> > 
> > The attached patch fixes the build problem for me.
> > And I was even able to remove the -j1 restriction from the second build
> > call. (8 core / 16 thread ryzen using -j16. So it should be OK for any -j)
> > 
> > The problem seems to be, that the doxygen call expects all files already
> > copied to the target build directory. And as part of the DEPENDS declaration
> > this should have been the case. But while all other DEPENDS specify the full
> > path to the needed files, in the case of the doxygen call only the pure
> > filename was listed. So cmake / ninja could not construct the correct
> > dependency and the copy before doxygen only happend due to luck and the -j1
> > was needed so, that all copys where finished before the doxygen call.
> > 
> > After adding the full paths the dependency now seems to get calculated
> > correctly and it works both with the new ninja and without needing -j1.
> > 
> > Change for the ebuild:
> > --- /usr/portage/app-text/doxygen/doxygen-1.10.0-r1.ebuild      2024-04-30
> > 20:41:27.000000000 +0200
> > +++ /var/ebuilds/app-text/doxygen/doxygen-1.10.0-r1.ebuild      2024-07-07
> > 17:02:46.033546959 +0200
> > @@ -141,8 +141,7 @@
> >                                 || die "disabling dot failed"
> >                 fi
> >  
> > -               # -j1 for bug #770070
> > -               cmake_src_compile docs -j1
> > +               cmake_src_compile docs
> >         fi
> >  }
> 
> With this patch and ebuild modification I am still failing with "error:
> @INCLUDE = baseexample.cfg: not found!"

Then again my solution is not working anymore either...
Comment 12 Torsten Kaiser 2024-07-20 15:50:33 UTC
(In reply to Benjamin Réveillé from comment #9)
> With this patch and ebuild modification I am still failing with "error:
> @INCLUDE = baseexample.cfg: not found!"

I think that should be a different problem,
baseexample.cfg != example.cfg

The build system is using "baseexample.cfg" for each example as a base for the per example configuration. As one of the examples has the name "example", this one then uses "example.cfg" as its configuration and that was, what originaly was failing, because this "example.cfg" has not yet been copied to the build tree.

The copy of "baseexample.cfg" is organized by a different build rule, that rule worked OK for all of my tests.

https://github.com/doxygen/doxygen/blob/master/examples/CMakeLists.txt#LC10
-> [line 10] build rule for baseexample.cfg

https://github.com/doxygen/doxygen/blob/master/examples/CMakeLists.txt#LC17
-> [line 17] that should copy any files per example directory, including example.cfg for the "example" example.

https://github.com/doxygen/doxygen/blob/master/examples/CMakeLists.txt#LC81
-> [line 81] wrong DEPENDS: It only lists ${f}.cfg for example.cfg without a path and then ninja was ignoring the need to copy the cfg before building the "example" documentation.

I just retried the build on my system: Still works for me. Did you apply any additional local patches?

For the proposed patches:
The attached patch for CMakeLists.txt is necessary. Otherwise the DEPENDS is wrong and the newer ninja versions will reorder the build steps in a way that does not work.

The patch for the ebuild itself is not really needed to get it to work. It only removed the "wrong" fix for the DEPENDS problem that bug #770070 added.
That fix worked with the old ninja versions, because by building it one step at a time without parallelism, by "random" change a working order was chosen.
With the fixed DEPENDS that restriction is no longer useful, as ninja now only can generate correct orders. And keeping the -j1 would just slow down the build.
Comment 13 Klaus Kusche 2024-07-21 11:49:44 UTC
The problem is still present in the doxygen-1.11.0 ebuild,
and "cmake_src_compile examples" still helps in 1.11 .
Comment 14 Benjamin Réveillé 2024-07-22 19:55:53 UTC
(In reply to Torsten Kaiser from comment #12)
> (In reply to Benjamin Réveillé from comment #9)
> > With this patch and ebuild modification I am still failing with "error:
> > @INCLUDE = baseexample.cfg: not found!"
> 
> I think that should be a different problem,
> baseexample.cfg != example.cfg
> 
> The build system is using "baseexample.cfg" for each example as a base for
> the per example configuration. As one of the examples has the name
> "example", this one then uses "example.cfg" as its configuration and that
> was, what originaly was failing, because this "example.cfg" has not yet been
> copied to the build tree.
> 
> The copy of "baseexample.cfg" is organized by a different build rule, that
> rule worked OK for all of my tests.
> 
> https://github.com/doxygen/doxygen/blob/master/examples/CMakeLists.txt#LC10
> -> [line 10] build rule for baseexample.cfg
> 
> https://github.com/doxygen/doxygen/blob/master/examples/CMakeLists.txt#LC17
> -> [line 17] that should copy any files per example directory, including
> example.cfg for the "example" example.
> 
> https://github.com/doxygen/doxygen/blob/master/examples/CMakeLists.txt#LC81
> -> [line 81] wrong DEPENDS: It only lists ${f}.cfg for example.cfg without a
> path and then ninja was ignoring the need to copy the cfg before building
> the "example" documentation.
> 
> I just retried the build on my system: Still works for me. Did you apply any
> additional local patches?
> 
> For the proposed patches:
> The attached patch for CMakeLists.txt is necessary. Otherwise the DEPENDS is
> wrong and the newer ninja versions will reorder the build steps in a way
> that does not work.
> 
> The patch for the ebuild itself is not really needed to get it to work. It
> only removed the "wrong" fix for the DEPENDS problem that bug #770070 added.
> That fix worked with the old ninja versions, because by building it one step
> at a time without parallelism, by "random" change a working order was chosen.
> With the fixed DEPENDS that restriction is no longer useful, as ninja now
> only can generate correct orders. And keeping the -j1 would just slow down
> the build.

Tried it again (patch + ebuild modification together as the first time) tonight and it worked :-)
So tried it again for repeatability and it failed :-(
Triedit a third time and it worked ;-)

So still a race condition somewhere :-(
Comment 15 Benjamin Réveillé 2024-07-22 19:57:16 UTC
Created attachment 898144 [details, diff]
patch for doxygen-1.11.0

Here is the patch adapted to doxygen-1.11.0
Comment 16 Benjamin Réveillé 2024-07-22 19:59:47 UTC
Created attachment 898145 [details]
modified doxygen-1.11.0.ebuild

As for the equivalent 1.10.0 solution (patch+ebuildmodification),
this also works most of the time but sometimes fails so there seems to remains a race conditions.
Comment 17 Benjamin Réveillé 2024-07-22 20:18:44 UTC
(In reply to Benjamin Réveillé from comment #16)
> Created attachment 898145 [details]
> modified doxygen-1.11.0.ebuild
> 
> As for the equivalent 1.10.0 solution (patch+ebuildmodification),
> this also works most of the time but sometimes fails so there seems to
> remains a race conditions.

Well just emerged thiq modified doxygen-1.11.0.ebuild 8 times in a row...
 * First 7 succeeded
 * 8th failed with 

FAILED: html/examples/example/html/index.html latex/examples/example/latex/refman_doc.tex /var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0_build/html/examples/example/html/index.html /var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0_build/latex/examples/example/latex/refman_doc.tex 
cd /var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0_build/examples && /usr/bin/cmake -E make_directory /var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0_build/html/examples/example && /usr/bin/cmake -E make_directory /var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0_build/latex/examples/example && /usr/bin/cmake -E env PROJECT_BINARY_DIR=/var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0_build /var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0_build/bin/doxygen example.cfg && /usr/bin/python3.13 /var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0/examples/strip_example.py < /var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0_build/latex/examples/example/latex/refman.tex > /var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0_build/latex/examples/example/latex/refman_doc.tex
error: source 'example_test.cpp' is not a readable file or directory... skipping.
/var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0_build/examples/example.cpp:21: error: included file 'example_test.cpp' is not found. Check your EXAMPLE_PATH
ninja: build stopped: subcommand failed.

Going to test with the -j1 added back to "cmake_src_compile docs"...
Comment 18 Benjamin Réveillé 2024-07-22 20:45:30 UTC
modified 1.11.0 with -j1 fails systematicaly with the same error...

FAILED: html/examples/example/html/index.html latex/examples/example/latex/refman_doc.tex /var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0_build/html/examples/example/html/index.html /var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0_build/latex/examples/example/latex/refman_doc.tex 
cd /var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0_build/examples && /usr/bin/cmake -E make_directory /var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0_build/html/examples/example && /usr/bin/cmake -E make_directory /var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0_build/latex/examples/example && /usr/bin/cmake -E env PROJECT_BINARY_DIR=/var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0_build /var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0_build/bin/doxygen example.cfg && /usr/bin/python3.13 /var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0/examples/strip_example.py < /var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0_build/latex/examples/example/latex/refman.tex > /var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0_build/latex/examples/example/latex/refman_doc.tex
error: source 'example_test.cpp' is not a readable file or directory... skipping.
/var/tmp/portage/app-text/doxygen-1.11.0/work/doxygen-1.11.0_build/examples/example.cpp:21: error: included file 'example_test.cpp' is not found. Check your EXAMPLE_PATH
ninja: build stopped: subcommand failed.