Bug 279242

Summary: www/chromium: 125.0.6422.76 fails to build
Product: Ports & Packages Reporter: Ivan Rozhuk <rozhuk.im>
Component: Individual Port(s)Assignee: freebsd-chromium (Nobody) <chromium>
Status: Closed FIXED    
Severity: Affects Some People CC: dev, junchoon, o.hushchenkov, rnagy, rozhuk.im
Priority: --- Flags: bugzilla: maintainer-feedback? (chromium)
Version: Latest   
Hardware: Any   
OS: Any   

Description Ivan Rozhuk 2024-05-23 08:11:46 UTC
[ 43% 26987/62665] c++ -MD -MF obj/media/audio/libpulse_stubs/pulse_stubs.o.d -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -DCR_LIBCXX_REVISION=e3b94d0e5b86883fd77696bf10dc33ba250ba99b -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_56 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_56 -DBASE_USE_PERFETTO_CLIENT_LIBRARY=1 -DUSE_SYSTEM_LIBEVENT=1 -Igen/media/audio -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -Igen/shim_headers/libevent_shim -Igen/shim_headers/icui18n_shim -Igen/shim_headers/icuuc_shim -I../../base/allocator/partition_allocator/src -Igen/base/allocator/partition_allocator/src -I../../third_party/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -Igen/protoc_out -Wall -Wextra -Wimplicit-fallthrough -Wextra-semi -Wunreachable-code-aggressive -Wthread-safety -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wno-cast-function-type -Wno-ignored-pragma-optimize -Wno-deprecated-builtins -Wno-bitfield-constant-conversion -Wno-deprecated-this-capture -Wno-invalid-offsetof -Wno-vla-extension -Wshadow -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcomplete-member-pointers -m64 -msse3 -Xclang -fdebug-compilation-dir -Xclang . -no-canonical-prefixes -ftrivial-auto-var-init=pattern -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-math-errno -fno-omit-frame-pointer -g0 -fprofile-use=../../chrome/build/pgo_profiles/chrome-linux-6422-1715686914-39d3c200676449e33ad84989ea45ad3474fab6e2-013ab7d1275249b95c27d77aaaa0d257ac6d2359.profdata -Wno-profile-instr-unprofiled -Wno-profile-instr-out-of-date -Wno-backend-plugin -mllvm -enable-ext-tsp-block-placement=1 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -isystem/usr/local/include -isystem/usr/local/include/glib-2.0 -isystem/usr/local/lib/glib-2.0/include -DPROTOBUF_ALLOW_DEPRECATED=1 -Wenum-compare-conditional -std=c++20 -Wno-trigraphs -fno-exceptions -fno-rtti -nostdinc++ -isystem../../third_party/libc++/src/include -isystem../../third_party/libc++abi/src/include -fvisibility-inlines-hidden -O2 -pipe -O3 -pipe -funroll-loops -mretpoline -fno-delete-null-pointer-checks -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -fdebug-prefix-map=/tmp/ports/usr/ports/www/chromium/work/chromium-125.0.6422.76=. -O3 -funroll-loops -mretpoline -fno-delete-null-pointer-checks  -isystem /usr/local/include  -fdebug-prefix-map=/tmp/ports/usr/ports/www/chromium/work/chromium-125.0.6422.76=. -c gen/media/audio/pulse/pulse_stubs.cc -o obj/media/audio/libpulse_stubs/pulse_stubs.o
FAILED: obj/media/audio/libpulse_stubs/pulse_stubs.o 
c++ -MD -MF obj/media/audio/libpulse_stubs/pulse_stubs.o.d -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -DCR_LIBCXX_REVISION=e3b94d0e5b86883fd77696bf10dc33ba250ba99b -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_56 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_56 -DBASE_USE_PERFETTO_CLIENT_LIBRARY=1 -DUSE_SYSTEM_LIBEVENT=1 -Igen/media/audio -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -Igen/shim_headers/libevent_shim -Igen/shim_headers/icui18n_shim -Igen/shim_headers/icuuc_shim -I../../base/allocator/partition_allocator/src -Igen/base/allocator/partition_allocator/src -I../../third_party/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -Igen/protoc_out -Wall -Wextra -Wimplicit-fallthrough -Wextra-semi -Wunreachable-code-aggressive -Wthread-safety -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wno-cast-function-type -Wno-ignored-pragma-optimize -Wno-deprecated-builtins -Wno-bitfield-constant-conversion -Wno-deprecated-this-capture -Wno-invalid-offsetof -Wno-vla-extension -Wshadow -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcomplete-member-pointers -m64 -msse3 -Xclang -fdebug-compilation-dir -Xclang . -no-canonical-prefixes -ftrivial-auto-var-init=pattern -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-math-errno -fno-omit-frame-pointer -g0 -fprofile-use=../../chrome/build/pgo_profiles/chrome-linux-6422-1715686914-39d3c200676449e33ad84989ea45ad3474fab6e2-013ab7d1275249b95c27d77aaaa0d257ac6d2359.profdata -Wno-profile-instr-unprofiled -Wno-profile-instr-out-of-date -Wno-backend-plugin -mllvm -enable-ext-tsp-block-placement=1 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -isystem/usr/local/include -isystem/usr/local/include/glib-2.0 -isystem/usr/local/lib/glib-2.0/include -DPROTOBUF_ALLOW_DEPRECATED=1 -Wenum-compare-conditional -std=c++20 -Wno-trigraphs -fno-exceptions -fno-rtti -nostdinc++ -isystem../../third_party/libc++/src/include -isystem../../third_party/libc++abi/src/include -fvisibility-inlines-hidden -O2 -pipe -O3 -pipe -funroll-loops -mretpoline -fno-delete-null-pointer-checks -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -fdebug-prefix-map=/tmp/ports/usr/ports/www/chromium/work/chromium-125.0.6422.76=. -O3 -funroll-loops -mretpoline -fno-delete-null-pointer-checks  -isystem /usr/local/include  -fdebug-prefix-map=/tmp/ports/usr/ports/www/chromium/work/chromium-125.0.6422.76=. -c gen/media/audio/pulse/pulse_stubs.cc -o obj/media/audio/libpulse_stubs/pulse_stubs.o
gen/media/audio/pulse/pulse_stubs.cc:17:10: fatal error: 'pulse/pulseaudio.h' file not found
   17 | #include <pulse/pulseaudio.h>
      |          ^~~~~~~~~~~~~~~~~~~~
1 error generated.
Comment 1 Ivan Rozhuk 2024-05-23 08:12:16 UTC
# make showconfig
===> The following configuration options are available for chromium-125.0.6422.76:
     CODECS=on: Compile and enable patented codecs like H.264
     CUPS=on: CUPS printing system support
     DEBUG=off: Build with debugging support
     DRIVER=off: Install chromedriver
     KERBEROS=off: Kerberos support
     LTO=off: Use Link-Time Optimization
     PIPEWIRE=off: Screen capture via PipeWire
     TEST=off: Build and/or run tests
     WIDEVINE=off: Depend on foreign-cdm to enable playback of DRM content
====> Kerberos support: you can only select none or one of them
     HEIMDAL=off: Heimdal Kerberos (security/heimdal)
     HEIMDAL_BASE=off: Heimdal Kerberos (base)
     MIT=off: MIT Kerberos (security/krb5)
Comment 2 Florian Walpen 2024-05-23 12:03:12 UTC
I hit the same build failure, do you also have pulseaudio disabled globally?
See bug #246449.
Comment 3 Tomoaki AOKI 2024-05-23 12:12:14 UTC
Do you have commit 1e1a1e9ebc2aae54c1c274ac3bbe329de54704b3 [1] in your ports tree?

The failed point was different, but I think I've been bitten by the race condition problem which is stated to be fixex by [1].

Now updated ports tree after [1], finished updating everything except www/chromium,
and building www/chromium again. Although it's still ongoing, but already passed the point (around 8% for me) that failed on previous build.

[1] https://cgit.freebsd.org/ports/commit/?id=1e1a1e9ebc2aae54c1c274ac3bbe329de54704b3
Comment 4 commit-hook freebsd_committer freebsd_triage 2024-05-23 12:16:35 UTC
A commit in branch main references this bug:

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

commit e63ccbd60c54526e90ae3fbba9c105b6a31b6243
Author:     Robert Nagy <rnagy@FreeBSD.org>
AuthorDate: 2024-05-23 12:14:12 +0000
Commit:     Robert Nagy <rnagy@FreeBSD.org>
CommitDate: 2024-05-23 12:14:12 +0000

    www/chromium: add audio/pulseaudio as a build dependency

    PR:     279242

 www/chromium/Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
Comment 5 Florian Walpen 2024-05-23 12:35:50 UTC
Tomoaki, thanks for the help, but it's obviously not that ninja problem.

Robert, thanks for your efforts, build is now past the pulse_stubs part, let's hope for the best :-)
Comment 6 Ivan Rozhuk 2024-05-23 13:16:44 UTC
But I do not want ugly pulse in my system.
Is it really necessary?
Comment 7 Florian Walpen 2024-05-23 15:45:05 UTC
(In reply to Ivan Rozhuk from comment #6)

AFAIK pulse is used during build, but not installed as a dependency.
Comment 8 Robert Nagy freebsd_committer freebsd_triage 2024-05-23 15:48:32 UTC
(In reply to Florian Walpen from comment #7)

Exactly. If you don't want to have it installed during the build,
then you are free to use the binary packages.
Comment 9 Tomoaki AOKI 2024-05-23 21:56:07 UTC
(In reply to Robert Nagy from comment #8)

Or use poudriere to build binary package locally.
It installes dependencies INSIDE BUILDER JAILS, BUT NOT ONTO THE BARE-METAL ENVIRONMENT to build.

If you want to configure poudriere for casual uses, such that
  *share existing ports tree,
  *share existing configured options,
between regular builds and poudriere builder jails and
  *do not install local web server for local repo built by poudriere,
my tips and tricks at Brew [1] could be helpful.

[1] https://brew.bsd.cafe/TomAoki/Tips-and-Tricks
Comment 10 Oleh Hushchenkov 2024-05-25 17:16:50 UTC
(In reply to Robert Nagy from comment #8)

It's relatively easy to return audio backend options into the port.
I mean the same three options(pulse, sndio, alsa) all enabled by default.
Disabling an option removes build dependency.

Will you accept such a patch?