Bug 2113850

Summary: Firefox 103.0 fails to build on ppc64le / pipewire
Product: [Fedora] Fedora Reporter: Martin Stransky <stransky>
Component: firefoxAssignee: Gecko Maintainer <gecko-bugs-nobody>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 37CC: awilliam, dan, erack, gecko-bugs-nobody, jhorak, kai-engert-fedora, klaas, klember, pjasicek, rstrode, sandmann
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: AcceptedFreezeException
Fixed In Version: firefox-103.0-1.fc37 firefox-104.0-5.fc37 firefox-105.0.2-1.fc38 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-08-27 00:24:42 UTC Type: Bug
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: 2009538    

Description Martin Stransky 2022-08-02 06:58:06 UTC
Description of problem:
Firefox 103.0 fails to build on ppc64le / pipewire:

75:40.86 ../../../../../config/nsinstall -R -m 644 'libipcclientcerts.so' '../../../../../dist/bin'
75:40.86 gmake[4]: Leaving directory '/builddir/build/BUILD/firefox-103.0/objdir/security/manager/ssl/ipcclientcerts/dynamic-library'
78:20.98 /usr/bin/ld: /builddir/build/BUILD/firefox-103.0/objdir/toolkit/library/build/../../../dom/media/systemservices/Unified_cpp_systemservices0.o: in function `webrtc::DesktopCaptureImpl::Init()':
78:21.00 /builddir/build/BUILD/firefox-103.0/dom/media/systemservices/video_engine/desktop_capture_impl.cc:334: undefined reference to `webrtc::DesktopCaptureOptions::CreateDefault()'
78:21.00 /usr/bin/ld: /builddir/build/BUILD/firefox-103.0/dom/media/systemservices/video_engine/desktop_capture_impl.cc:377: undefined reference to `webrtc::DesktopCaptureOptions::~DesktopCaptureOptions()'
78:21.00 /usr/bin/ld: /builddir/build/BUILD/firefox-103.0/dom/media/systemservices/video_engine/desktop_capture_impl.cc:340: undefined reference to `webrtc::DesktopCapturer::CreateScreenCapturer(webrtc::DesktopCaptureOptions const&)'
78:21.00 /usr/bin/ld: /builddir/build/BUILD/firefox-103.0/dom/media/systemservices/video_engine/desktop_capture_impl.cc:363: undefined reference to `webrtc::DesktopAndCursorComposer::DesktopAndCursorComposer(std::unique_ptr<webrtc::DesktopCapturer, std::default_delete<webrtc::DesktopCapturer> >, webrtc::DesktopCaptureOptions const&)'
78:21.00 /usr/bin/ld: /builddir/build/BUILD/firefox-103.0/dom/media/systemservices/video_engine/desktop_capture_impl.cc:368: undefined reference to `webrtc::DesktopCapturer::CreateTabCapturer(webrtc::DesktopCaptureOptions const&)'
78:21.00 /usr/bin/ld: /builddir/build/BUILD/firefox-103.0/dom/media/systemservices/video_engine/desktop_capture_impl.cc:353: undefined reference to `webrtc::DesktopCapturer::CreateWindowCapturer(webrtc::DesktopCaptureOptions const&)'
78:21.00 /usr/bin/ld: /builddir/build/BUILD/firefox-103.0/objdir/toolkit/library/build/../../../dom/media/systemservices/Unified_cpp_systemservices0.o: in function `webrtc::DesktopDeviceInfoImpl::InitializeScreenList()':
78:21.00 /builddir/build/BUILD/firefox-103.0/dom/media/systemservices/video_engine/desktop_device_info.cc:306: undefined reference to `webrtc::DesktopCaptureOptions::CreateDefault()'
78:21.00 /usr/bin/ld: /builddir/build/BUILD/firefox-103.0/dom/media/systemservices/video_engine/desktop_device_info.cc:306: undefined reference to `webrtc::DesktopCapturer::CreateScreenCapturer(webrtc::DesktopCaptureOptions const&)'
78:21.00 /usr/bin/ld: /builddir/build/BUILD/firefox-103.0/dom/media/systemservices/video_engine/desktop_device_info.cc:306: undefined reference to `webrtc::DesktopCaptureOptions::~DesktopCaptureOptions()'
78:21.00 /usr/bin/ld: /builddir/build/BUILD/firefox-103.0/objdir/toolkit/library/build/../../../dom/media/systemservices/Unified_cpp_systemservices0.o: in function `webrtc::DesktopDeviceInfoImpl::InitializeWindowList()':
78:21.00 /builddir/build/BUILD/firefox-103.0/dom/media/systemservices/video_engine/desktop_device_info.cc:245: undefined reference to `webrtc::DesktopCaptureOptions::CreateDefault()'
78:21.00 /usr/bin/ld: /builddir/build/BUILD/firefox-103.0/dom/media/systemservices/video_engine/desktop_device_info.cc:245: undefined reference to `webrtc::DesktopCapturer::CreateWindowCapturer(webrtc::DesktopCaptureOptions const&)'
78:21.00 /usr/bin/ld: /builddir/build/BUILD/firefox-103.0/dom/media/systemservices/video_engine/desktop_device_info.cc:245: undefined reference to `webrtc::DesktopCaptureOptions::~DesktopCaptureOptions()'
78:22.54 /usr/bin/ld: /builddir/build/BUILD/firefox-103.0/objdir/toolkit/library/build/../../../dom/media/systemservices/Unified_cpp_systemservices1.o: in function `mozilla::TabCapturerWebrtc::~TabCapturerWebrtc()':
78:22.54 /builddir/build/BUILD/firefox-103.0/dom/media/systemservices/video_engine/tab_capturer.h:86: undefined reference to `webrtc::DesktopCapturer::~DesktopCapturer()'
78:22.54 /usr/bin/ld: /builddir/build/BUILD/firefox-103.0/dom/media/systemservices/video_engine/tab_capturer.h:86: undefined reference to `webrtc::DesktopCapturer::~DesktopCapturer()'
78:22.54 /usr/bin/ld: /builddir/build/BUILD/firefox-103.0/objdir/toolkit/library/build/../../../dom/media/systemservices/Unified_cpp_systemservices1.o: in function `mozilla::TabCapturerWebrtc::~TabCapturerWebrtc()':
78:22.54 /builddir/build/BUILD/firefox-103.0/dom/media/systemservices/video_engine/tab_capturer.h:86: undefined reference to `webrtc::DesktopCapturer::~DesktopCapturer()'
78:22.54 /usr/bin/ld: /builddir/build/BUILD/firefox-103.0/dom/media/systemservices/video_engine/tab_capturer.h:86: undefined reference to `webrtc::DesktopCapturer::~DesktopCapturer()'
78:22.54 /usr/bin/ld: /builddir/build/BUILD/firefox-103.0/objdir/toolkit/library/build/../../../dom/media/systemservices/Unified_cpp_systemservices1.o: in function `mozilla::TabCapturer::OnFrame(mozilla::dom::ImageBitmap*)':
78:22.54 /builddir/build/BUILD/firefox-103.0/dom/media/systemservices/video_engine/tab_capturer.cc:202: undefined reference to `webrtc::BasicDesktopFrame::BasicDesktopFrame(webrtc::DesktopSize)'
78:22.54 /usr/bin/ld: /builddir/build/BUILD/firefox-103.0/dom/media/systemservices/video_engine/tab_capturer.cc:211: undefined reference to `webrtc::DesktopFrame::CopyPixelsFrom(unsigned char const*, int, webrtc::DesktopRect const&)'
78:22.54 /usr/bin/ld: /builddir/build/BUILD/firefox-103.0/objdir/toolkit/library/build/../../../dom/media/systemservices/Unified_cpp_systemservices1.o:(.data.rel.ro.local._ZTVN7mozilla17TabCapturerWebrtcE[_ZTVN7mozilla17TabCapturerWebrtcE]+0x28): undefined reference to `webrtc::DesktopCapturer::SetSharedMemoryFactory(std::unique_ptr<webrtc::SharedMemoryFactory, std::default_delete<webrtc::SharedMemoryFactory> >)'
78:22.54 /usr/bin/ld: /builddir/build/BUILD/firefox-103.0/objdir/toolkit/library/build/../../../dom/media/systemservices/Unified_cpp_systemservices1.o:(.data.rel.ro.local._ZTVN7mozilla17TabCapturerWebrtcE[_ZTVN7mozilla17TabCapturerWebrtcE]+0x38): undefined reference to `webrtc::DesktopCapturer::SetExcludedWindow(long)'
79:44.36 /usr/bin/ld: libxul.so: hidden symbol `_ZN6webrtc15DesktopCapturer20CreateScreenCapturerERKNS_21DesktopCaptureOptionsE' isn't defined
79:44.36 /usr/bin/ld: final link failed: bad value

Comment 1 Fedora Update System 2022-08-02 15:17:50 UTC
FEDORA-2022-3ebb99df47 has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2022-3ebb99df47

Comment 2 Fedora Update System 2022-08-02 15:22:41 UTC
FEDORA-2022-3ebb99df47 has been pushed to the Fedora 37 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 3 Dan Horák 2022-08-03 08:29:29 UTC
This has been reported as https://bugzilla.mozilla.org/show_bug.cgi?id=1779545 and the workaround should be to disable webrtc support for ppc64le. The real solution is to fix the broken Makefile generator in bug https://bugzilla.mozilla.org/show_bug.cgi?id=1775202 ...

Comment 4 Dan Horák 2022-08-03 08:30:49 UTC
another workaround is to apply patch from https://bugzilla.mozilla.org/show_bug.cgi?id=1775202#c2

Comment 5 Martin Stransky 2022-08-03 08:40:51 UTC
(In reply to Dan Horák from comment #4)
> another workaround is to apply patch from
> https://bugzilla.mozilla.org/show_bug.cgi?id=1775202#c2

IMHO all the suggested patches needs complete make file rebuilds from gn, right?
Firefox 106 should have backported it from upstream (https://phabricator.services.mozilla.com/D153354)

Comment 6 Dan Horák 2022-08-05 12:27:46 UTC
(In reply to Martin Stransky from comment #5)
> (In reply to Dan Horák from comment #4)
> > another workaround is to apply patch from
> > https://bugzilla.mozilla.org/show_bug.cgi?id=1775202#c2
> 
> IMHO all the suggested patches needs complete make file rebuilds from gn,
> right?

no, the changes with OpenBSD (and some arm/aarch64) support caused a re-generation of the moz.build files in upstream and due the bug/deficiency in the generator (gn?) they produce incomplete/broken moz.build file for ppc64le. The workaround is to patch the generated moz.build as show in https://src.fedoraproject.org/rpms/firefox/pull-request/45

> Firefox 106 should have backported it from upstream
> (https://phabricator.services.mozilla.com/D153354)

I think this is unrelated to the current build failure

Comment 7 Ben Cotton 2022-08-09 13:41:02 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 37 development cycle.
Changing version to 37.

Comment 8 Adam Williamson 2022-08-21 14:13:01 UTC
Ping? It seems like there are possible solutions here, can we do any of them? The problem with just disabling firefox on ppc64le is it means deliverables that include it - the Silverblue and Kinoite ostrees - fail to build. I'm not sure anyone's really running graphical Fedora on a ppc64le system, but the images are enabled so I guess someone wanted them...

Comment 9 Kalev Lember 2022-08-21 14:33:15 UTC
I have a pending PR for firefox packaging that should help with firefox build OOMing on s390x and other secondary arches, and sharkcz has a PR with ppc64le build fixes. These together should make firefox build again on all arches we have.

stransky asked me to hold off merging the fixes until next week until firefox 104 is out -- I can take care of getting the secondary arch builds going again after that.

Comment 10 Dan Horák 2022-08-22 09:02:02 UTC
I have rebased https://src.fedoraproject.org/rpms/firefox/pull-request/45 onto the latest rawhide and re-verified that it builds OK.

And yes, there are people running Fedora desktops on their ppc64le machines :-)

Comment 11 Fedora Update System 2022-08-24 14:37:11 UTC
FEDORA-2022-74ff7f9e74 has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2022-74ff7f9e74

Comment 12 Fedora Update System 2022-08-24 14:37:18 UTC
FEDORA-2022-02d2625a01 has been submitted as an update to Fedora 36. https://bodhi.fedoraproject.org/updates/FEDORA-2022-02d2625a01

Comment 13 Fedora Update System 2022-08-24 14:37:23 UTC
FEDORA-2022-ee0d54e824 has been submitted as an update to Fedora 35. https://bodhi.fedoraproject.org/updates/FEDORA-2022-ee0d54e824

Comment 14 Kalev Lember 2022-08-24 14:42:12 UTC
Proposing as a F37 Beta Freeze Exception to fix ostree ppc64le composes that are failing right now due to missing firefox.

Comment 15 Adam Williamson 2022-08-24 15:42:26 UTC
This is actually an automatic FE, per "Bugs which entirely prevent the composition of one or more of the non-release-blocking images required to be built for a currently-pending (pre-)release" - https://fedoraproject.org/wiki/QA:SOP_freeze_exception_bug_process#Automatic_freeze_exceptions . Marking accepted.

Comment 16 Fedora Update System 2022-08-24 18:45:05 UTC
FEDORA-2022-74ff7f9e74 has been pushed to the Fedora 37 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2022-74ff7f9e74`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2022-74ff7f9e74

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 17 Fedora Update System 2022-08-24 20:31:34 UTC
FEDORA-2022-02d2625a01 has been pushed to the Fedora 36 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 18 Fedora Update System 2022-08-24 20:41:05 UTC
FEDORA-2022-ee0d54e824 has been pushed to the Fedora 35 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2022-ee0d54e824`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2022-ee0d54e824

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 19 Fedora Update System 2022-08-26 12:16:20 UTC
FEDORA-2022-ee0d54e824 has been pushed to the Fedora 35 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 20 Fedora Update System 2022-08-27 00:24:42 UTC
FEDORA-2022-74ff7f9e74 has been pushed to the Fedora 37 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 21 Fedora Update System 2022-10-05 12:46:06 UTC
FEDORA-2022-f0988ea008 has been submitted as an update to Fedora 38. https://bodhi.fedoraproject.org/updates/FEDORA-2022-f0988ea008

Comment 22 Fedora Update System 2022-10-05 12:57:34 UTC
FEDORA-2022-f0988ea008 has been pushed to the Fedora 38 stable repository.
If problem still persists, please make note of it in this bug report.