Closed Bug 1837918 Opened 1 year ago Closed 1 year ago

libwebrtc update to 112 broke the build on OpenBSD

Categories

(Core :: WebRTC, defect)

Unspecified
OpenBSD
defect

Tracking

()

RESOLVED FIXED
116 Branch
Tracking Status
firefox-esr102 --- unaffected
firefox114 --- unaffected
firefox115 --- unaffected
firefox116 --- fixed

People

(Reporter: gaston, Assigned: ng)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file)

build error:

83:56.08 /build/buildslave-amd64/mozilla-central-amd64/build/third_party/libwebrtc/modules/video_capture/linux/device_info_linux.cc:53:16: error: no member named 'allow_v4l2' in 'webrtc::VideoCaptureOptions'
83:56.08   if (options->allow_v4l2())
83:56.08       ~~~~~~~  ^
83:56.22 In file included from Unified_cpp_ure_internal_impl_gn0.cpp:20:
83:56.23 /build/buildslave-amd64/mozilla-central-amd64/build/third_party/libwebrtc/modules/video_capture/linux/video_capture_linux.cc:67:16: error: no member named 'allow_v4l2' in 'webrtc::VideoCaptureOptions'
83:56.23   if (options->allow_v4l2()) {
83:56.23       ~~~~~~~  ^
83:56.29 third_party/libwebrtc/modules/video_coding/codecs/av1/av1_svc_config_gn

full log at http://buildbot.rhaalovely.net/nine/#/builders/3/builds/1721/steps/8/logs/stdio

that's with a clean objdir to make sure there werent old headers lying around.

Were the instructions from bug #1749604 followed ? im not sure its a build system regression...

should the #ifdef WEBRTC_LINUX in https://searchfox.org/mozilla-central/source/third_party/libwebrtc/modules/video_capture/video_capture_options.h#55 be amended to include WEBRTC_BSD too ? i dont remember how the last similar breakage was solved..

i see mozilla patches are kept 'external' per https://searchfox.org/mozilla-central/source/third_party/libwebrtc/moz-patch-stack/0014.patch, is it still the case ?

Set release status flags based on info from the regressing bug 1833237

:ng, since you are the author of the regressor, bug 1833237, could you take a look? Also, could you set the severity field?

For more information, please visit BugBot documentation.

the below patch fixed m-c for me, cf http://buildbot.rhaalovely.net/nine/#/builders/3/builds/1722

diff --git a/third_party/libwebrtc/modules/video_capture/video_capture_options.h b/third_party/libwebrtc/modules/video_capture/video_capture_options.h
--- a/third_party/libwebrtc/modules/video_capture/video_capture_options.h
+++ b/third_party/libwebrtc/modules/video_capture/video_capture_options.h
@@ -47,29 +47,29 @@ class RTC_EXPORT VideoCaptureOptions {
     virtual void OnInitialized(Status status) = 0;
 
    protected:
     virtual ~Callback() = default;
   };
 
   void Init(Callback* callback);
 
-#if defined(WEBRTC_LINUX)
+#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
   bool allow_v4l2() const { return allow_v4l2_; }
   void set_allow_v4l2(bool allow) { allow_v4l2_ = allow; }
 #endif
 
 #if defined(WEBRTC_USE_PIPEWIRE)
   bool allow_pipewire() const { return allow_pipewire_; }
   void set_allow_pipewire(bool allow) { allow_pipewire_ = allow; }
   rtc::scoped_refptr<videocapturemodule::PipeWireSession> pipewire_session();
 #endif
 
  private:
-#if defined(WEBRTC_LINUX)
+#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
   bool allow_v4l2_ = false;
 #endif
 #if defined(WEBRTC_USE_PIPEWIRE)
   bool allow_pipewire_ = false;
   rtc::scoped_refptr<videocapturemodule::PipeWireSession> pipewire_session_;
 #endif
 };

i wont have much spare time to work on pushing that to phabricator in the coming days (on holidays mostly offline) so if its deemed correct don't hesitate to push it on my behalf - thanks !

Landry, thanks for the patch, and have a great holiday.

Flags: needinfo?(na-g)
Assignee: nobody → na-g

hi :ng, can you push this simple patch above ? i still have it on my local buildbot, not in a hurry but if possible it'd be nice to have it before the next m-c->m-b merge.

thanks a lot !

Flags: needinfo?(na-g)

patch didnt apply straight away anymore after bug 1724900:

diff --git a/third_party/libwebrtc/modules/video_capture/video_capture_options.h b/third_party/libwebrtc/modules/video_capture/video_capture_options.h
--- a/third_party/libwebrtc/modules/video_capture/video_capture_options.h
+++ b/third_party/libwebrtc/modules/video_capture/video_capture_options.h
@@ -46,30 +46,30 @@ class RTC_EXPORT VideoCaptureOptions {
     virtual void OnInitialized(Status status) = 0;
 
    protected:
     virtual ~Callback() = default;
   };
 
   void Init(Callback* callback);
 
-#if defined(WEBRTC_LINUX)
+#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
   bool allow_v4l2() const { return allow_v4l2_; }
   void set_allow_v4l2(bool allow) { allow_v4l2_ = allow; }
 #endif
 
 #if defined(WEBRTC_USE_PIPEWIRE)
   bool allow_pipewire() const { return allow_pipewire_; }
   void set_allow_pipewire(bool allow) { allow_pipewire_ = allow; }
   void set_pipewire_fd(int fd) { pipewire_fd_ = fd; }
   rtc::scoped_refptr<videocapturemodule::PipeWireSession> pipewire_session();
 #endif
 
  private:
-#if defined(WEBRTC_LINUX)
+#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
   bool allow_v4l2_ = false;
 #endif
 #if defined(WEBRTC_USE_PIPEWIRE)
   bool allow_pipewire_ = false;
   int pipewire_fd_ = -1;
   rtc::scoped_refptr<videocapturemodule::PipeWireSession> pipewire_session_;
 #endif
 };

will try to find the right magic incantations to use moz-phab, but .. urgh.

i now have a new failure during linking, we don't have pipewire nor wayland on OpenBSD..

107:38.49 ld.lld: error: undefined hidden symbol: webrtc::CameraPortal::CameraPortal(webrtc::CameraPortal::PortalNotifier*)

can that be a regression of bug 1724900 ? sorry cant chase too many tracks at the same time while on holidays...

filed bug 1839234 for the above

:ng, from my vague understanding, a new file should be added to third_party/libwebrtc/moz-patch-stack/ for the fix to stick across webrtc upgrades ?

:gaston, yes. I'll get this pushed and talk to :jib who is doing the current merge about getting this added to the stack.

Flags: needinfo?(na-g)
Pushed by na-g@nostrum.com: https://hg.mozilla.org/integration/autoland/rev/2a6a838b7021 libwebrtc update broke the build on OpenBSD;r=mjf,webrtc-reviewers

:gaston, this should be automatically added to the stack when we do our next rebase from mozilla-central to the merge branch. I talked to :mjf, and we are no longer following the procedure in Bug 1749604 .

(In reply to Nico Grunbaum [:ng, @chew:mozilla.org] from comment #9)

:gaston, yes. I'll get this pushed and talk to :jib who is doing the current merge about getting this added to the stack.

great, thanks a lot ! in which bug is the next merge so that i can follow up there if needed ?

Thank you for keeping this working. The next merge is Bug 1839451 . There will be periodic pushes to https://hg.mozilla.org/projects/elm as progress is made.

Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 116 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: