Dear maintainer(s),
qtwebengine-opensource-src fails to build from source with glibc 2.43,
currently in experimental. From the build log:
| FAILED: [code=1] obj/sandbox/linux/sandbox_services/broker_process.o
| /usr/bin/g++ -MMD -MF obj/sandbox/linux/sandbox_services/broker_process.o.d -DSANDBOX_IMPLEMENTATION -DUSE_UDEV -DUSE_AURA=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -DTOOLKIT_QT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -Igen -I../../3rdparty/chromium -I../../3rdparty/chromium/third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -Igen -Igen -Igen -Igen -I../../3rdparty/chromium/third_party/abseil-cpp -I../../3rdparty/chromium/third_party/boringssl/src/include -I../../3rdparty/chromium/third_party/protobuf/src -Igen/protoc_out -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pipe -pthread -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-comments -Wno-packed-not-aligned -Wno-dangling-else -Wno-missing-field-initializers -Wno-unused-parameter -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g0 -fvisibility=hidden -std=gnu++17 -Wno-narrowing -Wno-class-memaccess -Wno-attributes -Wno-class-memaccess -Wno-subobject-linkage -Wno-invalid-offsetof -Wno-return-type -Wno-deprecated-copy -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -c ../../3rdparty/chromium/sandbox/linux/syscall_broker/broker_process.cc -o obj/sandbox/linux/sandbox_services/broker_process.o
| In file included from ../../3rdparty/chromium/sandbox/linux/bpf_dsl/trap_registry.h:11,
| from ../../3rdparty/chromium/sandbox/linux/syscall_broker/broker_process.h:18,
| from ../../3rdparty/chromium/sandbox/linux/syscall_broker/broker_process.cc:5:
| ../../3rdparty/chromium/sandbox/linux/system_headers/linux_seccomp.h:224:39: error: expected identifier before numeric constant
| 224 | #define SYS_SECCOMP 1
| | ^
| ../../3rdparty/chromium/sandbox/linux/system_headers/linux_seccomp.h:224:39: error: expected ‘}’ before numeric constant
| In file included from /usr/include/signal.h:58,
| from ../../3rdparty/chromium/sandbox/linux/syscall_broker/broker_process.cc:8:
| /usr/include/aarch64-linux-gnu/bits/siginfo-consts.h:218:1: note: to match this ‘{’
| 218 | {
| | ^
| ../../3rdparty/chromium/sandbox/linux/system_headers/linux_seccomp.h:224:39: error: expected unqualified-id before numeric constant
| 224 | #define SYS_SECCOMP 1
| | ^
| In file included from /usr/include/features.h:539,
| from /usr/include/aarch64-linux-gnu/sys/stat.h:25,
| from ../../3rdparty/chromium/sandbox/linux/syscall_broker/broker_process.h:8:
| /usr/include/signal.h:393:1: error: expected declaration before ‘}’ token
| 393 | __END_DECLS
| | ^~~~~~~~~~~
| ninja: build stopped: subcommand failed.
| make[5]: *** [Makefile.gn_run:360: run_ninja] Error 1
| make[5]: Leaving directory '/build/reproducible-path/qtwebengine-opensource-src-5.15.19+dfsg2/src/core'
| make[4]: *** [Makefile:82: sub-gn_run-pro-make_first] Error 2
| make[4]: Leaving directory '/build/reproducible-path/qtwebengine-opensource-src-5.15.19+dfsg2/src/core'
| make[3]: *** [Makefile:80: sub-core-make_first] Error 2
| make[3]: Leaving directory '/build/reproducible-path/qtwebengine-opensource-src-5.15.19+dfsg2/src'
| make[2]: *** [Makefile:49: sub-src-make_first] Error 2
| make[2]: Leaving directory '/build/reproducible-path/qtwebengine-opensource-src-5.15.19+dfsg2'
| dh_auto_build: error: make -j128 -Onone returned exit code 2
| make[1]: *** [debian/rules:102: override_dh_auto_build-arch] Error 25
| make[1]: Leaving directory '/build/reproducible-path/qtwebengine-opensource-src-5.15.19+dfsg2'
| make: *** [debian/rules:65: binary] Error 2
| dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2
The full build log is available here [1].
The issue is due to the definition of SYS_SECCOMP in <signal/signal.h>
added in glibc 2.43 [2]. I believe that the patch used by OpenSUSE [3]
fixes the issue, but I haven't tested it.
I would like to thanks Emanuele Rocca for doing the archive rebuild on a
fast arm64 server.
Regards
Aurelien
[1] https://people.debian.org/~ema/glibc-2.43-rebuilds/output-1/qtwebengine-opensource-src_arm64.build
[2] https://sourceware.org/git/?p=glibc.git;a=commit;h=6f120faf649f03a261e3e64d5b5991030383c1b3
[3] https://build.opensuse.org/projects/openSUSE:Factory/packages/chromium/files/chromium-141-glibc-2.42-SYS_SECCOMP.patch?expand=0