#1011078 chromium: arm64 package not available in bullseye-security

Package:
chromium
Source:
chromium
Description:
web browser
Submitter:
Ben Steinberg
Date:
2022-05-31 12:15:02 UTC
Severity:
normal
#1011078#5
Date:
2022-05-16 15:35:19 UTC
From:
To:
Dear Maintainer,

Chromium 101.0.4951.64-1~deb11u1 has been accepted for bullseye-security, and the package
is present for the amd64 architecture. I think it has been built for arm64, but it has not
yet appeared at http://security.debian.org/debian-security/pool/main/c/chromium/ -- I know
there's a lag between amd64 and arm64 builds, but I think this is longer than usual.
Please let me know if there's a better place to report this kind of issue.

Thanks!

#1011078#10
Date:
2022-05-16 16:36:38 UTC
From:
To:

Unfortunately, bullseye-security buildd logs don't appear to be public,
so I actually have no idea whether 101.0.4951.64-1~deb11u1 ran into
problems building on arm64.


Security Team, is there a way for me to get access to the logs for
chromium's security builds by ssh'ing into a machine? Or some other way
for me to view them?

Thanks,

Andres

#1011078#15
Date:
2022-05-16 18:33:46 UTC
From:
To:
Hi Andres,

The build logs are not public but we can retrieve them. But in this
case from #debian-buildd:

[17:58] < carnil> Hi, can someone double check if chromium/arm64 build for bullseye-security is still really in building state?
[18:07] < jcristau> carnil: it is not
[18:07] < jcristau> guessing the host crashed a few days ago and it got a power cycle

Which I did and the package is not back in building state for arm64.

Regards,
Salvatore

#1011078#20
Date:
2022-05-16 19:53:25 UTC
From:
To:
clone 1011078 -1
retitle -1 chromium: i386 and armhf packages FTBFS in bullseye
tags -1 bullseye ftbfs
severity -1 serious
thanks

On Mon, 16 May 2022 20:33:46 +0200 Salvatore Bonaccorso <carnil@debian.org> wrote:
[...]
build failures, they should show up in the archive in a day or two.
Chromium is a slow build. :)


While looking at this, I noticed that i386 and armhf in
bullseye-security were even older (last built circa chromium v99). The
build log shows this build failure on armhf:

[12837/50904] CXX obj/base/base/task_annotator.o
FAILED: obj/base/base/task_annotator.o
clang++ -MMD -MF obj/base/base/task_annotator.o.d -DPA_PCSCAN_STACK_SUPPORTED -DUSE_SYMBOLIZE
 -DUSE_UDEV -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_LAR
GEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -DCR_CLANG_REVISION=\"llvmorg-15-init-3677-g
8133778d-4\" -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DBASE_IMPLEMENTATION -DGLI
B_VERSION_MAX_ALLOWED=GLIB_VERSION_2_40 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40 -DU_USI
NG_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1 -DU_ENABLE_TRACING=1 -DU_ENABLE_R
ESOURCE_TRACING=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -I../.. -
Igen -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third
_party/perfetto -Igen/shim_headers/zlib_shim -Igen/shim_headers/libevent_shim -I../../third_p
arty/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -I
gen/protoc_out -Igen/third_party/perfetto -I../../third_party/icu/source/common -I../../third
_party/icu/source/i18n -Wall -Wextra -Wimplicit-fallthrough -Wunreachable-code-aggressive -Wt
hread-safety -Wextra-semi -Wno-missing-field-initializers -Wno-unused-parameter -Wloop-analys
is -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-psabi -Wno-ignored-prag
ma-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 -fcrash-diagnostics-dir=../../tools/clang/
crashreports -mllvm -instcombine-lower-dbg-declare=0 -ffp-contract=off --target=arm-linux-gnu
eabihf -march=armv7-a -mfloat-abi=hard -mtune=generic-armv7-a -fdebug-compilation-dir=. -no-c
anonical-prefixes -mfpu=vfpv3-d16 -mthumb -ftrivial-auto-var-init=pattern -fno-omit-frame-poi
nter -g0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-comp
are -Wexit-time-destructors -Wglobal-constructors -I/usr/include/glib-2.0 -I/usr/lib/arm-linu
x-gnueabihf/glib-2.0/include -Wexit-time-destructors -fdata-sections -ffunction-sections -fno
-unique-section-names -DPROTOBUF_ALLOW_DEPRECATED=1 -std=c++17 -Wno-trigraphs -fno-aligned-ne
w -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -Wdate-time -D_FORTIFY_SOURCE=2 -O2 -
fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-securit
y -Wno-conversion -Wno-unused-function -Wno-unused-variable -Wno-unused-private-field -Wno-de
precated-declarations -Wno-unknown-pragmas  -fno-delete-null-pointer-checks -c ../../base/tas
k/common/task_annotator.cc -o obj/base/base/task_annotator.o
In file included from ../../base/task/common/task_annotator.cc:15:
../../base/sys_byteorder.h:56:28: error: constexpr function never produces a constant express
ion [-Winvalid-constexpr]
inline constexpr uintptr_t ByteSwapUintPtrT(uintptr_t x) {

../../base/sys_byteorder.h:65:12: note: non-constexpr function 'ByteSwap' cannot be used in a constant expression
    return ByteSwap(static_cast<uint32_t>(x));
           ^
../../base/sys_byteorder.h:33:17: note: declared here
inline uint32_t ByteSwap(uint32_t x) {
                ^
1 error generated.



And this build failure on i386:

[12741/51668] CXX obj/base/base/sampling_heap_profiler.o
FAILED: obj/base/base/sampling_heap_profiler.o
clang++ -MMD -MF obj/base/base/sampling_heap_profiler.o.d -DPA_PCSCAN_STACK_SUPPORTED -DUSE_S
YMBOLIZE -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D__STDC_CONSTAN
T_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURC
E -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -DCR_CLANG_REVISION=\"llvmorg-15-ini
t-3677-g8133778d-4\" -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DBASE_IMPLEMENTATI
ON -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_40 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40
 -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1 -DU_ENABLE_TRACING=1 -DU_
ENABLE_RESOURCE_TRACING=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -
I../.. -Igen -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Ig
en/third_party/perfetto -Igen/shim_headers/zlib_shim -Igen/shim_headers/libevent_shim -I../..
/third_party/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobu
f/src -Igen/protoc_out -Igen/third_party/perfetto -I../../third_party/icu/source/common -I../
../third_party/icu/source/i18n -Wall -Wextra -Wimplicit-fallthrough -Wunreachable-code-aggres
sive -Wthread-safety -Wextra-semi -Wno-missing-field-initializers -Wno-unused-parameter -Wloo
p-analysis -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-psabi -Wno-igno
red-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-table
s -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tool
s/clang/crashreports -mllvm -instcombine-lower-dbg-declare=0 -ffp-contract=off -m32 -mfpmath=
sse -msse3 -fdebug-compilation-dir=. -no-canonical-prefixes -ftrivial-auto-var-init=pattern -
fno-omit-frame-pointer -momit-leaf-frame-pointer -g0 -fvisibility=hidden -Wheader-hygiene -Ws
tring-conversion -Wtautological-overlap-compare -Wexit-time-destructors -Wglobal-constructors
 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -Wexit-time-destructors -
fdata-sections -ffunction-sections -fno-unique-section-names -DPROTOBUF_ALLOW_DEPRECATED=1 -s
td=c++17 -Wno-trigraphs -fno-aligned-new -fno-exceptions -fno-rtti -fvisibility-inlines-hidde
n -Wdate-time -D_FORTIFY_SOURCE=2 -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector
-strong -Wformat -Werror=format-security -Wno-conversion -Wno-unused-function -Wno-unused-var
iable -Wno-unused-private-field -Wno-deprecated-declarations -Wno-unknown-pragmas  -fno-delet
e-null-pointer-checks -c ../../base/sampling_heap_profiler/sampling_heap_profiler.cc -o obj/b
ase/base/sampling_heap_profiler.o
In file included from ../../base/sampling_heap_profiler/sampling_heap_profiler.cc:12:
In file included from ../../base/allocator/partition_allocator/partition_alloc.h:10:
In file included from ../../base/allocator/partition_allocator/partition_root.h:53:
In file included from ../../base/allocator/partition_allocator/partition_direct_map_extent.h:
10:
In file included from ../../base/allocator/partition_allocator/partition_page.h:21:
In file included from ../../base/allocator/partition_allocator/partition_freelist_entry.h:21:
../../base/sys_byteorder.h:56:28: error: constexpr function never produces a constant express
ion [-Winvalid-constexpr]
inline constexpr uintptr_t ByteSwapUintPtrT(uintptr_t x) {
                           ^
../../base/sys_byteorder.h:65:12: note: non-constexpr function 'ByteSwap' cannot be used in a
 constant expression
    return ByteSwap(static_cast<uint32_t>(x));
           ^
../../base/sys_byteorder.h:33:17: note: declared here
inline uint32_t ByteSwap(uint32_t x) {
                ^
1 error generated.




Both are occurring in chromium's ./base/sys_byteorder.h header. ByteSwapUintPtrT is marked
constexpr but it includes a non-constexpr function (ByteSwap).  Clang-13 is smart enough to
inline ByteSwap this and not care about the differences in constexpr marking, but clang-11 is not.

I'll need to remove the constexpr, like I did in
debian/patches/bullseye/blink-constexpr.patch. And/or send a patch upstream to mark ByteSwap as
constexpr, which I couldn't do with blink-constexpr.patch because it was using a non-constexpr
function from the c++ std library.

#1011078#27
Date:
2022-05-17 14:18:11 UTC
From:
To:
Thank you, Andres and Salvatore!

Is the build in fact running? I just want to make sure that the "not" in

is a typo for "now" -- :)

Ben

#1011078#32
Date:
2022-05-17 15:27:43 UTC
From:
To:
Hi,

They where built now!

Regards,
Salvatore

#1011078#37
Date:
2022-05-28 01:18:02 UTC
From:
To:
I uploaded chromium-102 to bullseye-security, and I don't see armhf
binary packages. Salvatore, can you please tell me if that build failed?

I'm aware that it failed on i386, but that's for a different, new
reason (and also failed in sid). I need to deal with that separately.

On Tue, May 17, 2022 at 17:27, Salvatore Bonaccorso <carnil@debian.org> wrote:

#1011078#42
Date:
2022-05-28 12:04:23 UTC
From:
To:
Hi Andres,

Sorry bit late, but yes it did fail the build. build log:

https://people.debian.org/~carnil/buildd-logs/chromium/chromium_102.0.5005.61-1~deb11u1_armhf-2022-05-25T07:02:35Z.gz

Regards,
Salvatore

#1011078#47
Date:
2022-05-28 15:40:07 UTC
From:
To:
reopen 1011078
thanks



./../base/allocator/partition_allocator/base/sys_byteorder.h:66:12:
note: non-constexpr function 'ByteSwap' cannot be used in a constant
expression


Hah, because of course chromium has multiple copies of the same broken
header file. I'll fix it (again) in the next upload.

Thank you!

On Sat, May 28, 2022 at 14:04, Salvatore Bonaccorso <carnil@debian.org> wrote:

#1011078#58
Date:
2022-05-31 12:11:16 UTC
From:
To: