Bug 271483 - www/iridium: 2023.04.112.2_2 build error - video_capture_device_linux
Summary: www/iridium: 2023.04.112.2_2 build error - video_capture_device_linux
Status: New
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: amd64 Any
: --- Affects Only Me
Assignee: freebsd-chromium (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-05-18 08:59 UTC by Marko Cupać
Modified: 2023-05-20 23:24 UTC (History)
3 users (show)

See Also:
bugzilla: maintainer-feedback? (chromium)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Marko Cupać 2023-05-18 08:59:13 UTC
Hi,

www/iridium: 2023.04.112.2_2 won't build in my 13.2 poudriere jail.

Here's last line of error message (it consistently fails at the same spot):

[ 56% 30547/53606] c++ -MMD -MF obj/media/capture/capture_lib/video_capture_device_linux.o.d -DCAPTURE_IMPLEMENTATION -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_56 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_56 -DUSE_EGL -DVK_USE_PLATFORM_XCB_KHR -DVK_USE_PLATFORM_WAYLAND_KHR -DLIBYUV_DISABLE_NEON -DUSE_SYSTEM_LIBEVENT=1 -DUSING_SYSTEM_ICU=1 -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC -DU_FINAL=final -DU_NOEXCEPT=noexcept -DU_OVERRIDE=override -DU_IMPORT=U_EXPORT -DSK_CODEC_DECODES_PNG -DSK_CODEC_DECODES_WEBP -DSK_ENCODE_PNG -DSK_ENCODE_WEBP -DSK_ENABLE_SKSL -DSK_UNTIL_CRBUG_1187654_IS_FIXED -DSK_USER_CONFIG_HEADER=\"../../skia/config/SkUserConfig.h\" -DSK_WIN_FONTMGR_NO_SIMULATIONS -DSK_GL -DSK_CODEC_DECODES_JPEG -DSK_ENCODE_JPEG -DSK_HAS_WUFFS_LIBRARY -DSK_VULKAN=1 -DSK_SUPPORT_GPU=1 -DSK_GPU_WORKAROUNDS_HEADER=\"gpu/config/gpu_driver_bug_workaround_autogen.h\" -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0 -DHAVE_PTHREAD -DLEVELDB_PLATFORM_CHROMIUM=1 -DWEBRTC_ENABLE_AVX2 -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_LINUX -DWEBRTC_BSD -DABSL_ALLOCATOR_NOTHROW=1 -DWEBRTC_USE_X11 -DLOGGING_INSIDE_WEBRTC -I../.. -Igen -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 -Igen/shim_headers/libpng_shim -Igen/shim_headers/libwebp_shim -I../../third_party/khronos -I../../gpu -I../../third_party/vulkan-deps/vulkan-headers/src/include -I../../third_party/wayland/src/src -I../../third_party/wayland/include/src -Igen/third_party/dawn/include -I../../third_party/dawn/include -I../../third_party/libyuv/include -Igen/shim_headers/opus_shim -Igen/shim_headers/flac_shim -Igen/shim_headers/snappy_shim -Igen/shim_headers/openh264_shim -I../../third_party/jsoncpp/source/include -I../../third_party/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/ced/src -I../../third_party/libwebm/source -I../../third_party/skia -I../../third_party/wuffs/src/release/c -I../../third_party/vulkan/include -I../../third_party/leveldatabase -I../../third_party/leveldatabase/src -I../../third_party/leveldatabase/src/include -I../../third_party/libaom/source/libaom -I../../third_party/ipcz/include -I../../net/third_party/quiche/overrides -I../../net/third_party/quiche/src/quiche/common/platform/default -I../../net/third_party/quiche/src -Igen/net/third_party/quiche/src -I../../third_party/webrtc_overrides -I../../third_party/webrtc -Igen/third_party/webrtc -Wimplicit-fallthrough -Wextra-semi -Wunreachable-code-aggressive -Wthread-safety -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-ignored-pragma-optimize -Wshadow -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -m64 -msse3 -no-canonical-prefixes -ftrivial-auto-var-init=pattern -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-omit-frame-pointer -g0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -DPROTOBUF_ALLOW_DEPRECATED=1 -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include/nss -I/usr/local/include/nspr -std=c++20 -Wno-trigraphs -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include  -c ../../media/capture/video/linux/video_capture_device_linux.cc -o obj/media/capture/capture_lib/video_capture_device_linux.o
ninja: build stopped: subcommand failed.
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1
Comment 1 Robert Nagy 2023-05-18 10:17:58 UTC
(In reply to Marko Cupać from comment #0)

Looks like the process was killed, probably out of memory?
Comment 2 Marko Cupać 2023-05-18 10:43:53 UTC
(In reply to Robert Nagy from comment #1)

Shouldn't be the case. Server has 48G of RAM, all other (currently 1214) ports build fine, including "more demanding ones", such as chromium, libreoffice, llvm*, gcc*, electron19 etc.
Comment 3 Robert Nagy 2023-05-18 10:49:18 UTC
(In reply to Marko Cupać from comment #2)

Then run the c++ command that has failed out from work/iridium..../iridium..../out/Release and see what happens.
Comment 4 Marko Cupać 2023-05-18 11:06:22 UTC
(In reply to Robert Nagy from comment #3)

Ok, hopefully I will manage to do as you instructed.

For starters, I initiated a poudriere testport:

sudo poudriere testport -j 13_2:x86:64 -p main -z workstation -i -o www/iridium

Once it fails (took it ~4 hrs in previous tries), I will navigate to directory you instructed, paste complete failed line there and paste back its output here.
Comment 5 Marko Cupać 2023-05-19 11:08:43 UTC
(In reply to Robert Nagy from comment #3)

Hi Robert,

the command gives zero output.
Comment 6 fgorter 2023-05-20 11:19:38 UTC
(In reply to Marko Cupać from comment #5)

Having the same problem here. Wrestling with it for a few weeks now.
My build-box is 36-cores 4.6Ghz / 128GB RAM / 8TB SSD machine. "lack of resources" concerns is effectively null & void. Monitoring the process confirms there is no lack of memory or other resources -- console does not spam anything to the effect either.
Interestingly, both chromium & ungoogled-chromium build successfully without error.

Output is the same:

@ [ 60% 32210/53604] 

FAILED: obj/media/capture/capture_lib/v4l2_capture_delegate.o 
c++ -MMD -MF obj/media/capture/capture_lib/v4l2_capture_delegate.o.d -DCAPTURE_IMPLEMENTATION -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_56 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_56 -DUSE_EGL -DVK_USE_PLATFORM_XCB_KHR -DVK_USE_PLATFORM_WAYLAND_KHR -DLIBYUV_DISABLE_NEON -DUSE_SYSTEM_LIBEVENT=1 -DUSING_SYSTEM_ICU=1 -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC -DU_FINAL=final -DU_NOEXCEPT=noexcept -DU_OVERRIDE=override -DU_IMPORT=U_EXPORT -DSK_CODEC_DECODES_PNG -DSK_CODEC_DECODES_WEBP -DSK_ENCODE_PNG -DSK_ENCODE_WEBP -DSK_ENABLE_SKSL -DSK_UNTIL_CRBUG_1187654_IS_FIXED -DSK_USER_CONFIG_HEADER=\"../../skia/config/SkUserConfig.h\" -DSK_WIN_FONTMGR_NO_SIMULATIONS -DSK_GL -DSK_CODEC_DECODES_JPEG -DSK_ENCODE_JPEG -DSK_HAS_WUFFS_LIBRARY -DSK_VULKAN=1 -DSK_SUPPORT_GPU=1 -DSK_GPU_WORKAROUNDS_HEADER=\"gpu/config/gpu_driver_bug_workaround_autogen.h\" -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0 -DHAVE_PTHREAD -DLEVELDB_PLATFORM_CHROMIUM=1 -DWEBRTC_ENABLE_AVX2 -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_LINUX -DWEBRTC_BSD -DABSL_ALLOCATOR_NOTHROW=1 -DWEBRTC_USE_X11 -DLOGGING_INSIDE_WEBRTC -I../.. -Igen -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 -Igen/shim_headers/libpng_shim -Igen/shim_headers/libwebp_shim -I../../third_party/khronos -I../../gpu -I../../third_party/vulkan-deps/vulkan-headers/src/include -I../../third_party/wayland/src/src -I../../third_party/wayland/include/src -Igen/third_party/dawn/include -I../../third_party/dawn/include -I../../third_party/libyuv/include -Igen/shim_headers/opus_shim -Igen/shim_headers/flac_shim -Igen/shim_headers/snappy_shim -Igen/shim_headers/openh264_shim -I../../third_party/jsoncpp/source/include -I../../third_party/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/ced/src -I../../third_party/libwebm/source -I../../third_party/skia -I../../third_party/wuffs/src/release/c -I../../third_party/vulkan/include -I../../third_party/leveldatabase -I../../third_party/leveldatabase/src -I../../third_party/leveldatabase/src/include -I../../third_party/libaom/source/libaom -I../../third_party/ipcz/include -I../../net/third_party/quiche/overrides -I../../net/third_party/quiche/src/quiche/common/platform/default -I../../net/third_party/quiche/src -Igen/net/third_party/quiche/src -I../../third_party/webrtc_overrides -I../../third_party/webrtc -Igen/third_party/webrtc -Wimplicit-fallthrough -Wextra-semi -Wunreachable-code-aggressive -Wthread-safety -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-ignored-pragma-optimize -Wshadow -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -m64 -msse3 -no-canonical-prefixes -ftrivial-auto-var-init=pattern -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-omit-frame-pointer -g0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -DPROTOBUF_ALLOW_DEPRECATED=1 -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include/nss -I/usr/local/include/nspr -std=c++20 -Wno-trigraphs -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include  -c ../../media/capture/video/linux/v4l2_capture_delegate.cc -o obj/media/capture/capture_lib/v4l2_capture_delegate.o
../../media/capture/video/linux/v4l2_capture_delegate.cc:220:27: error: out-of-line definition of 'IsSpecialControl' does not match any declaration in 'media::V4L2CaptureDelegate'
bool V4L2CaptureDelegate::IsSpecialControl(int control_id) {
                          ^~~~~~~~~~~~~~~~
../../media/capture/video/linux/v4l2_capture_delegate.cc:242:27: error: out-of-line definition of 'IsBlockedControl' does not match any declaration in 'media::V4L2CaptureDelegate'
bool V4L2CaptureDelegate::IsBlockedControl(int control_id) {
                          ^~~~~~~~~~~~~~~~
2 errors generated.
...
<snip>
...
ninja: build stopped: subcommand failed.
===> 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/www/iridium
*** Error code 1

Stop.
make: stopped in /usr/ports/www/iridium



It happens whether defaults or customized make config is issued.
I can usually force a make to carry on to a further point, but not getting beyond about [  0% 22/19972].
Haven't dug deep enough to compare how chromium proper gets around this issue -- assuming the same section of code appears in their source(s). Anything related to V4Linux is present, which shouldn't be the issue, given that the chromium vanilla varieties build just fine.
Not sure how to continue for now.
Comment 7 Robert Nagy 2023-05-20 13:23:04 UTC
(In reply to fgorter from comment #6)
In your case I can actually see the error.
I am looking into it.
Comment 8 commit-hook freebsd_committer freebsd_triage 2023-05-20 18:24:20 UTC
A commit in branch main references this bug:

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

commit 4037de3aa736bc59bd3a9d7a4a8ca9f1c7bfb3cd
Author:     Robert Nagy <rnagy@FreeBSD.org>
AuthorDate: 2023-05-20 18:23:20 +0000
Commit:     Robert Nagy <rnagy@FreeBSD.org>
CommitDate: 2023-05-20 18:23:20 +0000

    www/iridium: unbreak build after a previous bad merge

    PR:             271483
    Approved by:    rene (mentor, implicit)

 ..._capture_video_linux_v4l2__capture__delegate.cc | 288 +--------------------
 1 file changed, 9 insertions(+), 279 deletions(-)
Comment 9 commit-hook freebsd_committer freebsd_triage 2023-05-20 18:25:22 UTC
A commit in branch 2023Q2 references this bug:

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

commit efcc1dce2e6b708579bec796d5c62077be3b9406
Author:     Robert Nagy <rnagy@FreeBSD.org>
AuthorDate: 2023-05-20 18:23:20 +0000
Commit:     Robert Nagy <rnagy@FreeBSD.org>
CommitDate: 2023-05-20 18:24:32 +0000

    www/iridium: unbreak build after a previous bad merge

    PR:             271483
    Approved by:    rene (mentor, implicit)

    (cherry picked from commit 4037de3aa736bc59bd3a9d7a4a8ca9f1c7bfb3cd)

 ..._capture_video_linux_v4l2__capture__delegate.cc | 288 +--------------------
 1 file changed, 9 insertions(+), 279 deletions(-)
Comment 10 fgorter 2023-05-20 21:36:12 UTC
(In reply to Robert Nagy from comment #7)

I caught a bit of code sailing by in the terminal during a git pull some hours ago that indicated the folks over at www/ungoogled-chromium had caught something related... a patch specifically naming & shaming capture_video_linux_v4l2__capture__delegate. 
I'll check & see if there's something to pull for iridium & run a build for sanity-check.
Good work fellas!
Comment 11 fgorter 2023-05-20 23:24:05 UTC
(In reply to commit-hook from comment #9)

Builds successfully!