Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 1800249

Summary: webkit2gtk3: FTBFS in Fedora rawhide/f32
Product: [Fedora] Fedora Reporter: Fedora Release Engineering <releng>
Component: webkit2gtk3Assignee: Eike Rathke <erack>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: erack, gnome-sig, mcatanza, mcatanzaro+wrong-account-do-not-cc, tpopela
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: webkit2gtk3-2.27.4-3.fc32 webkit2gtk3-2.31.1-2.fc34 webkit2gtk3-2.31.1-2.eln108 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-02-10 19:00:22 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1750908    
Attachments:
Description Flags
build.log
none
root.log
none
state.log none

Description Fedora Release Engineering 2020-02-06 20:22:47 UTC
webkit2gtk3 failed to build from source in Fedora rawhide/f32

https://koji.fedoraproject.org/koji/taskinfo?taskID=41322781


For details on the mass rebuild see:

https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Please fix webkit2gtk3 at your earliest convenience and set the bug's status to
ASSIGNED when you start fixing it. If the bug remains in NEW state for 8 weeks,
webkit2gtk3 will be orphaned. Before branching of Fedora 33,
webkit2gtk3 will be retired, if it still fails to build.

For more details on the FTBFS policy, please visit:
https://fedoraproject.org/wiki/Fails_to_build_from_source

Comment 1 Fedora Release Engineering 2020-02-06 20:22:50 UTC
Created attachment 1661367 [details]
build.log

file build.log too big, will only attach last 32768 bytes

Comment 2 Fedora Release Engineering 2020-02-06 20:22:53 UTC
Created attachment 1661368 [details]
root.log

file root.log too big, will only attach last 32768 bytes

Comment 3 Fedora Release Engineering 2020-02-06 20:22:54 UTC
Created attachment 1661369 [details]
state.log

Comment 4 Michael Catanzaro 2020-02-06 23:41:24 UTC
FAILED: Source/ThirdParty/ANGLE/CMakeFiles/ANGLE.dir/src/common/event_tracer.cpp.o 
/usr/bin/c++  -DANGLE_ENABLE_ESSL -DANGLE_ENABLE_GLSL -DBUILDING_GTK__=1 -DBUILDING_WITH_CMAKE=1 -DBWRAP_EXECUTABLE=\"/usr/bin/bwrap\" -DDBUS_PROXY_EXECUTABLE=\"/usr/bin/xdg-dbus-proxy\" -DEGL_EGL_PROTOTYPES=0 -DGETTEXT_PACKAGE=\"WebKit2GTK-4.0\" -DGL_GLES_PROTOTYPES=0 -DHAVE_CONFIG_H=1 -DJSC_GLIB_API_ENABLED -DLIBANGLE_IMPLEMENTATION -DSVN_REVISION=\"tarball\" -DWEBKITGTK_API_VERSION_STRING=\"4.0\" -I../Source/ThirdParty/ANGLE/include -I../Source/ThirdParty/ANGLE/include/KHR -I../Source/ThirdParty/ANGLE/src -I../Source/ThirdParty/ANGLE/src/common/third_party/base -ISource/ThirdParty/ANGLE/include -fdiagnostics-color=always -Wextra -Wall -Wno-expansion-to-defined -Wno-psabi -Wno-noexcept-type -Wno-maybe-uninitialized -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -O2 -g1 -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=zEC12 -mtune=z13 -fasynchronous-unwind-tables -fstack-clash-protection -DUSER_AGENT_GTK_DISTRIBUTOR_NAME='"Fedora"' -fno-strict-aliasing -fno-exceptions -fno-rtti -DNDEBUG -fPIC   -Wno-cast-align -Wno-suggest-attribute=format -Wno-type-limits -Wno-undef -Wno-unused-parameter -std=c++17 -MD -MT Source/ThirdParty/ANGLE/CMakeFiles/ANGLE.dir/src/common/event_tracer.cpp.o -MF Source/ThirdParty/ANGLE/CMakeFiles/ANGLE.dir/src/common/event_tracer.cpp.o.d -o Source/ThirdParty/ANGLE/CMakeFiles/ANGLE.dir/src/common/event_tracer.cpp.o -c ../Source/ThirdParty/ANGLE/src/common/event_tracer.cpp
In file included from ../Source/ThirdParty/ANGLE/src/common/event_tracer.h:9,
                 from ../Source/ThirdParty/ANGLE/src/common/event_tracer.cpp:5:
../Source/ThirdParty/ANGLE/include/platform/Platform.h:239:35: error: 'size_t' has not been declared
  239 |                                   size_t programSize,
      |                                   ^~~~~~
../Source/ThirdParty/ANGLE/include/platform/Platform.h:243:33: error: 'size_t' has not been declared
  243 |                                 size_t programSize,
      |                                 ^~~~~~


size_t is defined in a bunch of different headers. stdlib.h would suffice. ANGLE's Platform.h includes stdint.h, but it's not defined there.

Comment 5 Eike Rathke 2020-02-07 18:28:10 UTC
As that is C++ (even if .h) include <cstddef>

Comment 6 Eike Rathke 2020-02-07 18:40:00 UTC
Oh joy.. subsequent failure
FAILED: Source/ThirdParty/ANGLE/CMakeFiles/ANGLE.dir/src/libANGLE/FrameCapture_mock.cpp.o
/usr/bin/c++  -DANGLE_ENABLE_ESSL -DANGLE_ENABLE_GLSL -DBUILDING_GTK__=1 -DBUILDING_WITH_CMAKE=1 -DBWRAP_EXECUTABLE=\"/usr/bin/bwrap\" -DDBUS_PROXY_EXECUTABLE=\"/usr/bin/xdg-dbus-proxy\" -DEGL_EGL_PROTOTYPES=0 -DGETTEXT_PACKAGE=\"WebKit2GTK -4.0\" -DGL_GLES_PROTOTYPES=0 -DHAVE_CONFIG_H=1 -DJSC_GLIB_API_ENABLED -DLIBANGLE_IMPLEMENTATION -DSVN_REVISION=\"tarball\" -DWEBKITGTK_API_VERSION_STRING=\"4.0\" -I../Source/ThirdParty/ANGLE/include -I../Source/ThirdParty/ANGLE/include/KHR -I../Source/ThirdParty/ANGLE/src -I../Source/ThirdParty/ANGLE/src/common/third_party/base -ISource/ThirdParty/ANGLE/include -fdiagnostics-color=always -Wextra -Wall -Wno-expansion-to-defined -Wno-psabi -Wno-noexcept-type -Wno-maybe-uninitialized -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -DUSER_AGENT_GTK_DISTRIBUTOR_NAME='"Fedora"' -fno-strict-aliasing -fno-exceptions -fno-rtti -DNDEBUG -fPIC   -Wno-cast-align -Wno-suggest-attribute=format -Wno-type-limits -Wno-undef -Wno-unused-parameter -std=c++17 -MD -MT Source/ThirdParty/ANGLE/CMakeFiles/ANGLE.dir/src/libANGLE/FrameCapture_mock.cpp.o -MF Source/ThirdParty/ANGLE/CMakeFiles/ANGLE.dir/src/libANGLE/FrameCapture_mock.cpp.o.d -o Source/ThirdParty/ANGLE/CMakeFiles/ANGLE.dir/src/libANGLE/FrameCapture_mock.cpp.o -c ../Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture_mock.cpp
In file included from ../Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture.h:13,
                 from ../Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture_mock.cpp:10:
../Source/ThirdParty/ANGLE/src/libANGLE/angletypes.h:427:2:   in 'constexpr' expansion of 'angle::PackedEnumMap<gl::ComponentType, unsigned int>(std::initializer_list<std::pair<gl::ComponentType, unsigned int> >{((const std::pair<gl::ComponentType, unsigned int>*)(& const std::pair<gl::ComponentType, unsigned int> [3]{std::pair<gl::ComponentType, unsigned int>{gl::ComponentType::Float, 65537}, std::pair<gl::ComponentType, unsigned int>{gl::ComponentType::Int, 1}, std::pair<gl::ComponentType, unsigned int>{gl::ComponentType::UnsignedInt, 65536}})), 3})'
../Source/ThirdParty/ANGLE/src/common/PackedEnums.h:89:72: error: modifying a const object '(unsigned int&)(&(&(const Storage&)(&((angle::PackedEnumMap<gl::ComponentType, unsigned int>*)this)->angle::PackedEnumMap<gl::ComponentType, unsigned int>::mPrivateData))->std::array<unsigned int, 4>::operator[](((std::array<unsigned int, 4>::size_type)((angle::PackedEnumMap<gl::ComponentType, unsigned int>::UnderlyingType)it->std::pair<gl::ComponentType, unsigned int>::first))))' is not allowed in a constant expression
   88 |             const_cast<T &>(const_cast<const Storage &>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   89 |                 mPrivateData)[static_cast<UnderlyingType>(it->first)]) = it->second;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
In file included from ../Source/ThirdParty/ANGLE/src/libANGLE/Caps.h:12,
                 from ../Source/ThirdParty/ANGLE/src/libANGLE/Context.h:20,
                 from ../Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture.h:14,
                 from ../Source/ThirdParty/ANGLE/src/libANGLE/FrameCapture_mock.cpp:10:
../Source/ThirdParty/ANGLE/src/libANGLE/angletypes.h:427:2: note: originally declared 'const' here
  427 | }};
      |  ^

Comment 7 Michael Catanzaro 2020-02-07 19:27:06 UTC
For historical reasons, WebKit code style mostly prefers to include C headers when there is a choice between a C header and an equivalent C++ header, but it's inconsistent. That doesn't matter here because this is an ANGLE header, but it's already including stdint.h rather than cstdint, so makes sense to match the existing code style....

Comment 9 Michael Catanzaro 2020-02-07 21:37:18 UTC
I'm installing a rawhide VM to try building WebKit there and catch any remaining failures. We'll see how it goes.

Comment 10 Eike Rathke 2020-02-07 22:53:12 UTC
Please pull again, I committed the fix so far.

It now failed at the very end when generating the documentation with a
cc1: warning: command-line option ‘-Wno-noexcept-type’ is valid for C++/ObjC++ but not for C                            
Not an error though, but that seems to be the cause, omitting that option from the command made it succeed:

cd /builddir/build/BUILD/webkitgtk-2.27.4/x86_64-redhat-linux-gnu && /usr/bin/cmake -E env CC=/usr/bin/cc "CFLAGS=-fdiagnostics-color=always -Wextra -Wall -Wno-expansion-to-defined -Wno-psabi -Wno-noexcept-type -Wno-maybe-uninitialized -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -DUSER_AGENT_GTK_DISTRIBUTOR_NAME='\"Fedora\"' -fno-strict-aliasing -fno-exceptions -Wno-unused-parameter" "LDFLAGS=-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -fuse-ld=gold -Wl,--disable-new-dtags" /builddir/build/BUILD/webkitgtk-2.27.4/Tools/gtkdoc/generate-gtkdoc --gtk && touch docs-build.stamp

Comment 11 Michael Catanzaro 2020-02-08 00:36:34 UTC
Thanks Eike!

I'm testing this change:

diff --git a/Source/cmake/WebKitCompilerFlags.cmake b/Source/cmake/WebKitCompilerFlags.cmake
index c5fa4c3ea58..49446644e47 100644
--- a/Source/cmake/WebKitCompilerFlags.cmake
+++ b/Source/cmake/WebKitCompilerFlags.cmake
@@ -123,10 +123,11 @@ if (COMPILER_IS_GCC_OR_CLANG)
     # FIXME: We should probably not be disabling -Wno-maybe-uninitialized?
     WEBKIT_PREPEND_GLOBAL_COMPILER_FLAGS(-Qunused-arguments
                                          -Wno-maybe-uninitialized
-                                         -Wno-noexcept-type
                                          -Wno-parentheses-equality
                                          -Wno-psabi)
 
+    WEBKIT_PREPEND_GLOBAL_CXX_FLAGS(-Wno-noexcept-type)
+
     # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80947
     if (${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS "8.0" AND NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang")
         WEBKIT_PREPEND_GLOBAL_CXX_FLAGS(-Wno-attributes)

Comment 13 Eike Rathke 2020-02-10 19:00:22 UTC
Thanks!

Comment 14 Fedora Update System 2021-01-13 21:08:40 UTC
FEDORA-2021-a54756b357 has been pushed to the Fedora 34 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 15 Fedora Update System 2021-01-14 01:23:49 UTC
FEDORA-2021-45e2a134ce has been pushed to the Fedora ELN stable repository.
If problem still persists, please make note of it in this bug report.