Bug 279164

Summary: www/qt6-webengine fails to build using poudriere on 14.1-STABLE amd64 with fatal error: 'chrome/grit/generated_resources.h' file not found
Product: Ports & Packages Reporter: Robert Cina <transitive>
Component: Individual Port(s)Assignee: freebsd-kde (group) <kde>
Status: Open ---    
Severity: Affects Some People CC: dev, jhale, madpilot, vvelox
Priority: --- Flags: jhale: maintainer-feedback+
Version: Latest   
Hardware: amd64   
OS: Any   
Bug Depends on:    
Bug Blocks: 279187    

Description Robert Cina 2024-05-19 14:49:16 UTC
uname -a
FreeBSD alto.my.domain 14.1-STABLE FreeBSD 14.1-STABLE stable/14-45764d1d4 GENERIC amd64

www/qt6-webengine fails to build using poudriere on my system with fatal error: 'chrome/grit/generated_resources.h' file not found

The relevant build log is shown below:

sections -fno-unique-section-names -fno-omit-frame-pointer -g0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wno-redundant-parens -Wno-redundant-parens -DPROTOBUF_ALLOW_DEPRECATED=1 -I/usr/local/include/nss -I/usr/local/include/nspr -Wno-parentheses-equality -Wno-tautological-compare -Wno-thread-safety-attributes -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -std=c++20 -Wno-trigraphs -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -std=c++20 -isystem /usr/local/include -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include  -c ../../../../../qtwebengine-everywhere-src-6.7.0/src/3rdparty/chromium/chrome/browser/devtools/devtools_file_helper.cc -o obj/devtools_sources/devtools_file_helper.o
../../../../../qtwebengine-everywhere-src-6.7.0/src/3rdparty/chromium/chrome/browser/devtools/devtools_file_helper.cc:31:10: fatal error: 'chrome/grit/generated_resources.h' file not found
   31 | #include "chrome/grit/generated_resources.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
[ 98% 30346/30714] CXX obj/components/plugins/renderer/renderer/webview_plugin.o
c++: warning: /usr/lib/libexecinfo.so: 'linker' input unused [-Wunused-command-line-argument]
[ 98% 30346/30714] CXX obj/components/plugins/renderer/renderer/loadable_plugin_placeholder.o
c++: warning: /usr/lib/libexecinfo.so: 'linker' input unused [-Wunused-command-line-argument]
[ 98% 30346/30714] CXX obj/components/plugins/renderer/renderer/plugin_placeholder.o
c++: warning: /usr/lib/libexecinfo.so: 'linker' input unused [-Wunused-command-line-argument]
[ 98% 30346/30714] CXX obj/components/autofill/content/renderer/renderer/renderer_jumbo_2.o
c++: warning: /usr/lib/libexecinfo.so: 'linker' input unused [-Wunused-command-line-argument]
[ 98% 30346/30714] CXX obj/components/autofill/content/renderer/renderer/renderer_jumbo_1.o
c++: warning: /usr/lib/libexecinfo.so: 'linker' input unused [-Wunused-command-line-argument]
[ 98% 30346/30714] ACTION //chrome/app:generated_resources_grit(/wrkdirs/usr/ports/www/qt6-webengine/work/.build/src/core/target_toolchain:target)
ninja: build stopped: subcommand failed.
*** [src/core/Release/amd64/QtWebEngineCore.stamp] Error code 1

make[3]: stopped in /wrkdirs/usr/ports/www/qt6-webengine/work/.build
1 error

make[3]: stopped in /wrkdirs/usr/ports/www/qt6-webengine/work/.build
*** [src/core/CMakeFiles/QtWebEngineCore_Release_amd64.dir/all] Error code 2

make[2]: stopped in /wrkdirs/usr/ports/www/qt6-webengine/work/.build
1 error

make[2]: stopped in /wrkdirs/usr/ports/www/qt6-webengine/work/.build
*** [all] Error code 2

make[1]: stopped in /wrkdirs/usr/ports/www/qt6-webengine/work/.build
1 error

make[1]: stopped in /wrkdirs/usr/ports/www/qt6-webengine/work/.build
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make: stopped in /usr/ports/www/qt6-webengine
=>> Cleaning up wrkdir
===>  Cleaning for qt6-webengine-6.7.0
build of www/qt6-webengine | qt6-webengine-6.7.0 ended at Sun May 19 09:15:46 EDT 2024
build time: 01:00:12
Comment 1 Guido Falsi freebsd_committer freebsd_triage 2024-05-19 20:02:38 UTC
Hi,

I can confirm this in poudriere with recent HEAD.

Goggling the error message I found this:

https://github.com/brave/brave-browser/issues/1112


While the solution there is not correct for our case, maybe it can work as an inspiration.

I tried to apply it to the devtools component but it did not help. But since I know nothing about the chromium build system my attempt was probably flawed.

Hope this can be fixed soon!
Comment 2 Jason E. Hale freebsd_committer freebsd_triage 2024-05-20 03:30:08 UTC
I had to add in a few missing deps in build systems of the chromium-based ports, including qt6-webengine to fix the build with ninja-1.12.0 when we were doing the exp-run for that. This particular error didn't pop up for me in testing for any of the chromium-based ports, however. Maybe a few more problems cropped up with ninja 1.12.1.

It could be due to the number of make jobs, version of ninja, or non-default options. I do want to rule out a few things, because I merged Qt-6.7.0 into quarterly which still has ninja 1.11.1.

Just a few questions to help me figure out when this occurs and try to reproduce:
Do you have ALLOW_MAKE_JOBS=yes or some for of ALLOW_MAKE_JOBS_PACKAGES="qt6-webengine" in poudriere.conf? If so, what was the MAKE_JOBS_NUMBER used to build?
Which version of ninja are you building with?
Are you using the default options for qt6-webengine?
Comment 3 Guido Falsi freebsd_committer freebsd_triage 2024-05-20 05:55:56 UTC
(In reply to Jason E. Hale from comment #2)

Yes, I'm using ALLOW_MAKE_JOBS=yes, the specific build is using 6 jobs.

Using ninja-1.12.1,2

using these options:

# This file is auto-generated by 'make config'.
# Options for qt6-webengine-6.7.0
_OPTIONS_READ=qt6-webengine-6.7.0
_FILE_COMPLETE_OPTIONS_LIST=CUPS DRIVER ALSA PULSEAUDIO SNDIO
OPTIONS_FILE_SET+=CUPS
OPTIONS_FILE_SET+=DRIVER
OPTIONS_FILE_UNSET+=ALSA
OPTIONS_FILE_SET+=PULSEAUDIO
OPTIONS_FILE_UNSET+=SNDIO
Comment 4 Guido Falsi freebsd_committer freebsd_triage 2024-05-20 07:11:47 UTC
(In reply to Guido Falsi from comment #3)

I need to correct myself, the number of jobs I'm running is 12.

I plan to try building with parallel jobs disabled soon to see if this makes the build complete.
Comment 5 commit-hook freebsd_committer freebsd_triage 2024-05-20 15:04:32 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9307e7dd80ddf53dad280075957399e1f14b7b19

commit 9307e7dd80ddf53dad280075957399e1f14b7b19
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2024-05-20 14:55:13 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2024-05-20 15:03:07 +0000

    Revert "devel/ninja: Update to 1.12.1"

    Ninja 1.12.1 is causing more dependency problems at least in www/qt6-webengine
    that will require some non-trivial amount of time to investigate.

    This reverts commit f1cd45a6680d7274e0e5b985393dab116a853ca8.

    PR:             279164
    Reported by:    Robert Cina <transitive@gmail.com>

 devel/ninja/Makefile | 4 ++--
 devel/ninja/distinfo | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)
Comment 6 Jason E. Hale freebsd_committer freebsd_triage 2024-05-20 15:10:30 UTC
I've reverted devel/ninja to 1.12.0 for now as this is going to take some time to work through and with Qt 6.7.1 coming out today, I just don't have the computing resources to keep doing trial and error. Especially since it happens so late in the build. I tried adding the needed dep where it should go, but its target still keeps coming after the failing target.
Comment 7 Robert Cina 2024-05-20 18:01:21 UTC
The port is still failing to build for me with the same error even after ninja was reverted.
Comment 8 Jason E. Hale freebsd_committer freebsd_triage 2024-05-20 18:22:18 UTC
(In reply to Robert Cina from comment #7)
Bugger. Well, I still have a few more things left to try. Unfortunately, I’m currently stuck at $JOB, but getting this working will be my top priority when I get home tonight.
Comment 9 Guido Falsi freebsd_committer freebsd_triage 2024-05-20 19:07:13 UTC
(In reply to Jason E. Hale from comment #8)

A big thank you for your effort and time! 


I have no concrete help I can offer on this, but I wanted to express my appreciation!
Comment 10 Florian Walpen 2024-05-20 21:07:52 UTC
I'm also affected by this, still fails to build after ninja is reverted. Using 20 jobs in parallel, 14.0-RELEASE, options:

===> The following configuration options are available for qt6-webengine-6.7.0:
     CUPS=on: CUPS printing system support
     DRIVER=on: Install WebEngineDriver
====> Audio backend: you have to select exactly one of them
     ALSA=on: ALSA audio architecture support
     PULSEAUDIO=off: PulseAudio sound server support
     SNDIO=off: Sndio audio support
===> Use 'make config' to modify these settings

Error is the same as OP.
Comment 11 commit-hook freebsd_committer freebsd_triage 2024-05-22 17:13:50 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=1e1a1e9ebc2aae54c1c274ac3bbe329de54704b3

commit 1e1a1e9ebc2aae54c1c274ac3bbe329de54704b3
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2024-05-22 16:45:35 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2024-05-22 17:13:01 +0000

    devel/ninja: Roll back to 1.11.1

    Despite passing an exp-run and successful local builds, there still
    exists a race condition in www/qt[56]-webengine when building with
    ninja 1.12.x that is proving difficult to solve. After a successful
    build, it seems subsequent builds fail when using ccache with a
    generated header missing before it is needed at compile time.

    Even after adding //chrome/app:generated_resources_grit as a dep in
    src/3rdparty/chromium/chrome/browser/devtools/BUILD.gn, the build is
    still failing with:

    ../../../../../qtwebengine-everywhere-src-6.7.0/src/3rdparty/chromium/chrome/browser/devtools/devtools_file_helper.cc:31:10:
    fatal error: 'chrome/grit/generated_resources.h' file not found

    This comes very late in the build, so trial and error attempts to fix
    this are tedious, costing an hour+ of build time with each attempt.
    Reverting to ninja 1.11.1 gets things building again while this can
    sorted out in the background under less stressful conditions.

    This partially reverts bb0835fd3aa268260cc9eae4ba0cad55814d6265.

    PR:             279162, 279164
    Reported by:    Robert Cina <transitive@gmail.com>

 devel/ninja/Makefile | 4 ++--
 devel/ninja/distinfo | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)
Comment 12 Jason E. Hale freebsd_committer freebsd_triage 2024-05-22 17:24:57 UTC
I tried just about everything I could think of and none of this is really making sense to me. We had this building with ninja 1.12.0 in the exp-run, but when I went switched to my ninja/cmake update branch that had a successful build, trying to rebuild failed in the same way that everyone else is seeing. I really have no choice at this point but to revert ninja to 1.11.1. It is going to take way too long with my 7 year old laptop to work through this in a timely manner.
Comment 13 Zane C. Bowers-Hadley 2024-10-30 18:58:58 UTC
Seeing this on 13.3-RELEASE-p7 AMD64 as well when building via poudriere.

On a interesting note when you look at pkg fallout, https://pkg-status.freebsd.org/beefy18/data/main-amd64-default/p1f84c1fae602_seb345e05ac6/logs/qt6-webengine-6.7.3.log , it is showing libmd.so.6 as not being found.


[ 99% 30455/30736] STAMP obj/content/public/renderer/renderer.stamp
[ 99% 30456/30736] AR obj/components/autofill/content/renderer/librenderer.a
[ 99% 30457/30736] AR obj/components/cdm/renderer/librenderer.a
[ 99% 30458/30736] AR obj/components/guest_view/renderer/librenderer.a
[ 99% 30459/30736] AR obj/components/network_hints/renderer/librenderer.a
[ 99% 30460/30736] AR obj/components/plugins/renderer/librenderer.a
[ 99% 30461/30736] AR obj/components/printing/renderer/librenderer.a
[ 99% 30462/30736] AR obj/components/pdf/renderer/librenderer.a
[ 99% 30463/30736] STAMP obj/components/spellcheck/renderer/renderer.stamp
[ 99% 30464/30736] AR obj/components/visitedlink/renderer/librenderer.a
[ 99% 30465/30736] AR obj/components/web_cache/renderer/librenderer.a
[ 99% 30466/30736] STAMP obj/extensions/renderer/renderer.stamp
[ 99% 30467/30736] LINK ./v8_context_snapshot_generator
[ 99% 30468/30736] ACTION //tools/v8_context_snapshot:generate_v8_context_snapshot(/wrkdirs/usr/ports/www/qt6-webengine/work/.build/src/core/target_toolchain:target)
FAILED: v8_context_snapshot.bin
/usr/local/bin/python3.11 ../../../../../qtwebengine-everywhere-src-6.7.3/src/3rdparty/chromium/build/gn_run_binary.py ./v8_context_snapshot_generator --output_file=v8_context_snapshot.bin
./v8_context_snapshot_generator failed with exit code -5
ninja: build stopped: subcommand failed.
*** [src/core/Release/amd64/QtWebEngineCore.stamp] Error code 1

make[3]: stopped in /wrkdirs/usr/ports/www/qt6-webengine/work/.build
1 error

make[3]: stopped in /wrkdirs/usr/ports/www/qt6-webengine/work/.build
*** [src/core/CMakeFiles/QtWebEngineCore_Release_amd64.dir/all] Error code 2

make[2]: stopped in /wrkdirs/usr/ports/www/qt6-webengine/work/.build
1 error

make[2]: stopped in /wrkdirs/usr/ports/www/qt6-webengine/work/.build
*** [all] Error code 2

make[1]: stopped in /wrkdirs/usr/ports/www/qt6-webengine/work/.build
1 error

make[1]: stopped in /wrkdirs/usr/ports/www/qt6-webengine/work/.build
*** Error code 1

Stop.
make: stopped in /usr/ports/www/qt6-webengine
=>> Cleaning up wrkdir
===>  Cleaning for qt6-webengine-6.7.3
build of www/qt6-webengine | qt6-webengine-6.7.3 ended at Wed Oct 30 13:36:58 CDT 2024
build time: 06:19:24
!!! build failure encountered !!!
Comment 14 Jason E. Hale freebsd_committer freebsd_triage 2024-10-30 20:09:39 UTC
(In reply to Zane C. Bowers-Hadley from comment #13)
> On a interesting note when you look at pkg fallout,
> https://pkg-status.freebsd.org/beefy18/data/main-amd64-default/p1f84c1fae602_seb345e05ac6/logs/qt6-webengine-6.7.3.log ,
> it is showing libmd.so.6 as not being found.

That particular fallout is unrelated and can be ignored. It only applies to CURRENT and occurred because multimedia/x265 wasn't rebuilt after the libmd.so version bump.