pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/www/firefox



Module Name:    pkgsrc
Committed By:   ryoon
Date:           Wed Dec 24 15:26:41 UTC 2025

Modified Files:
        pkgsrc/www/firefox: Makefile distinfo mozilla-common.mk
        pkgsrc/www/firefox/files: node-wrapper.sh
        pkgsrc/www/firefox/patches:
            patch-third__party_libwebrtc_modules_audio__device_audio__device__impl.cc
            patch-third__party_libwebrtc_modules_video__capture_linux_device__info__v4l2.cc
            patch-third__party_libwebrtc_modules_video__capture_linux_video__capture__v4l2.cc
Added Files:
        pkgsrc/www/firefox/patches:
            patch-third__party_libwebrtc_modules_portal_portal__gn_moz.build
            patch-third__party_libwebrtc_modules_video__capture_video__capture__internal__impl__gn_moz.build

Log Message:
www/firefox: Update to 146.0.1

* Disable pipewire under non-Linux explicitly.
* Update FFmpeg dependency to 8.
* Detect video(4) devices under NetBSD. It seems that NetBSD's uvideo(4) does
  not support Windows Hello ready webcams yet.

Changelog:
146.0.1:
Fixed

  * Improved overall stability by fixing crashes related to browsing, graphics,
    and accessibility features. (Bugs 2001160, 1998185, 1998188)

  * Fixed an issue where fingerprinting protection caused incorrect font
    rendering on popular websites. (Bug 2000429)

  * Fixed crashes related to media playback and GMP process shutdown. (Bug
    2002697)

  * Fixed an issue where desktop profile shortcuts were being unintentionally
    removed when changing copied profile settings. (Bug 1998209)

  * Improved sidebar text contrast when using vertical tabs with certain
    themes. (Bug 2006091)

  * When restoring from a backup, the restore success message will appear over
    the new tab page instead of one of the tabs restored from a backup, to
    avoid cases where the restored tab canceled the restore success message. (
    Bug 2003307)

  * Various security fixes.

Security fixes:
Mozilla Foundation Security Advisory 2025-98
#CVE-2025-14860: Use-after-free in the Disability Access APIs component
#CVE-2025-14861: Memory safety bugs fixed in Firefox 146.0.1

146.0:
New

  * Windows 10 users can now automatically protect their passwords, bookmarks,
    and more by turning on backup in Firefox. Your browsing data is saved daily
    on your device and can be encrypted with a password. When you set up a
    fresh install of Firefox on any operating system for a new device or your
    current one, you can restore from this backup and pick up right where you
    left off. This feature is currently available on Windows devices and will
    be coming to other operating systems soon.

  * MacOS users now have a dedicated GPU process by default. This includes
    WebGPU, WebGL, and Firefox's own WebRender. With this feature enabled,
    fatal errors in graphics code will no longer crash the browser, and will
    instead transparently restart the GPU process.

  * Firefox Labs is now available to all desktop users, regardless of whether
    they choose to participate in studies or submit telemetry. This means more
    experimental features are now available to more people.

  * Users can now skip the results page and see direct results as they type in
    the search bar for faster, simpler browsing.

  * There is a New Tab Weather opt-in workflow available for users in the EU
    and some other countries, where they can choose whether to enable location
    detection or manually search for a location.

  * Firefox now natively supports fractional scaled displays on Linux
    (Wayland), making rendering more effective.

  * For users of the English-language versions of Firefox in France, Germany,
    and Italy, the address bar now shows English-language suggestions for
    holidays and other important dates.

Fixed

  * When the timepicker is enabled for <input type="time"> and <input type=
    "datetime-local">, it now provides full keyboard and assistive technology
    support. This update also improves the behavior of the time spin buttons
    for users who prefer reduced motion. The Firefox Accessibility team hopes
    that making the built-in timepicker accessible will encourage wider
    adoption of browser-provided time and date inputs across the web, reducing
    the need for custom controls, and improving accessibility for all users.

  * Various security fixes.

Security fixes:
Mozilla Foundation Security Advisory 2025-92
#CVE-2025-14321: Use-after-free in the WebRTC: Signaling component
#CVE-2025-14322: Sandbox escape due to incorrect boundary conditions in the
 Graphics: CanvasWebGL component
#CVE-2025-14323: Privilege escalation in the DOM: Notifications component
#CVE-2025-14324: JIT miscompilation in the JavaScript Engine: JIT component
#CVE-2025-14325: JIT miscompilation in the JavaScript Engine: JIT component
#CVE-2025-14326: Use-after-free in the Audio/Video: GMP component
#CVE-2025-14327: Spoofing issue in the Downloads Panel component
#CVE-2025-14328: Privilege escalation in the Netmonitor component
#CVE-2025-14329: Privilege escalation in the Netmonitor component
#CVE-2025-14330: JIT miscompilation in the JavaScript Engine: JIT component
#CVE-2025-14331: Same-origin policy bypass in the Request Handling component
#CVE-2025-14332: Memory safety bugs fixed in Firefox 146 and Thunderbird 146
#CVE-2025-14333: Memory safety bugs fixed in Firefox ESR 140.6, Thunderbird ESR
 140.6, Firefox 146 and Thunderbird 146


To generate a diff of this commit:
cvs rdiff -u -r1.652 -r1.653 pkgsrc/www/firefox/Makefile
cvs rdiff -u -r1.572 -r1.573 pkgsrc/www/firefox/distinfo
cvs rdiff -u -r1.304 -r1.305 pkgsrc/www/firefox/mozilla-common.mk
cvs rdiff -u -r1.34 -r1.35 pkgsrc/www/firefox/files/node-wrapper.sh
cvs rdiff -u -r1.4 -r1.5 \
    pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_audio__device_audio__device__impl.cc \
    pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_video__capture_linux_device__info__v4l2.cc
cvs rdiff -u -r0 -r1.1 \
    pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_portal_portal__gn_moz.build \
    pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_video__capture_video__capture__internal__impl__gn_moz.build
cvs rdiff -u -r1.2 -r1.3 \
    pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_video__capture_linux_video__capture__v4l2.cc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/www/firefox/Makefile
diff -u pkgsrc/www/firefox/Makefile:1.652 pkgsrc/www/firefox/Makefile:1.653
--- pkgsrc/www/firefox/Makefile:1.652   Mon Dec 22 06:08:17 2025
+++ pkgsrc/www/firefox/Makefile Wed Dec 24 15:26:40 2025
@@ -1,18 +1,17 @@
-# $NetBSD: Makefile,v 1.652 2025/12/22 06:08:17 adam Exp $
+# $NetBSD: Makefile,v 1.653 2025/12/24 15:26:40 ryoon Exp $
 
 FIREFOX_VER=           ${MOZ_BRANCH}${MOZ_BRANCH_MINOR}
-MOZ_BRANCH=            145.0
-MOZ_BRANCH_MINOR=      .2
+MOZ_BRANCH=            146.0
+MOZ_BRANCH_MINOR=      .1
 
 DISTNAME=      firefox-${FIREFOX_VER}.source
 PKGNAME=       ${DISTNAME:S/.source//:S/b/beta/:S/esr//}
-PKGREVISION=   1
 CATEGORIES=    www
 MASTER_SITES+= ${MASTER_SITE_MOZILLA:=firefox/releases/${FIREFOX_VER}/source/}
 MASTER_SITES+= ${MASTER_SITE_MOZILLA_ALL:=firefox/releases/${FIREFOX_VER}/source/}
 EXTRACT_SUFX=  .tar.xz
 
-NODEJSKIT=             nodejs-output-144.0.tgz
+NODEJSKIT=             nodejs-output-146.0.1.tgz
 DISTFILES=             ${DEFAULT_DISTFILES} ${NODEJSKIT}
 SITES.${NODEJSKIT}=    ${MASTER_SITE_LOCAL}
 

Index: pkgsrc/www/firefox/distinfo
diff -u pkgsrc/www/firefox/distinfo:1.572 pkgsrc/www/firefox/distinfo:1.573
--- pkgsrc/www/firefox/distinfo:1.572   Mon Dec 15 21:09:16 2025
+++ pkgsrc/www/firefox/distinfo Wed Dec 24 15:26:40 2025
@@ -1,11 +1,11 @@
-$NetBSD: distinfo,v 1.572 2025/12/15 21:09:16 gutteridge Exp $
+$NetBSD: distinfo,v 1.573 2025/12/24 15:26:40 ryoon Exp $
 
-BLAKE2s (firefox-145.0.2.source.tar.xz) = 5e6c16d0a55df4f928a6e77519bd9413fd82308d053a62c637b7af23406662fc
-SHA512 (firefox-145.0.2.source.tar.xz) = 99d28daf7054c80bc521c8b73d1cf5c1beb77ac9b66904fdbb5890f89ddf5b12a2715deaf867ed86a4806cf4f44952f7bcceb38cc5f2faf9290b0a07be823418
-Size (firefox-145.0.2.source.tar.xz) = 642269800 bytes
-BLAKE2s (nodejs-output-144.0.tgz) = 5c8b90a5d17c56467480bdf0a8f1884d14972c8f4163d293463834721f9a4432
-SHA512 (nodejs-output-144.0.tgz) = 6bb2a8975660c68d37b09da5d3f8f0af9bd9a826ca6cb836ef41ca3e7c0c5a902e37b6cbfac5871177688fc1d808b2e07a4e0d0a705470bfa3e368053bc079fd
-Size (nodejs-output-144.0.tgz) = 248214 bytes
+BLAKE2s (firefox-146.0.1.source.tar.xz) = 97e4144e54e4f520b637ccd6a3634b8e18c1a2c0ec169482e2e066c586861b2e
+SHA512 (firefox-146.0.1.source.tar.xz) = ae95b86e483febf8dfec8347748dd9048ed7d7f845250e07aa8048e2b351da61f6f3c5f83bb0d0c72e1a75ec61b60e59bbe69639f0f33532910ff8bf5ca07394
+Size (firefox-146.0.1.source.tar.xz) = 648938528 bytes
+BLAKE2s (nodejs-output-146.0.1.tgz) = 325dc3d29b5fa5492bfd77905caf0030db0b61b8b8db6317cf4097d236435714
+SHA512 (nodejs-output-146.0.1.tgz) = 847a32df3759e2650b6897794a66036c99ed727849f39a545671d47385de3610766e64f5f329e5d35d0bdf261d585db1b1bc0815900b3558a4db184833c71699
+Size (nodejs-output-146.0.1.tgz) = 249292 bytes
 SHA1 (patch-browser_app_profile_firefox.js) = 1eaa674c0aa8279e2f9dc2eda582650a08156d65
 SHA1 (patch-build_gn__processor.py) = 078f773104bf4c1b30584564aefe365db6ba6daf
 SHA1 (patch-build_moz.configure_init.configure) = 65deb3c233df0aab81eb1fca05d708e5a4ed169a
@@ -39,11 +39,13 @@ SHA1 (patch-python_mozbuild_mozbuild_bac
 SHA1 (patch-third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.cc) = b1067a6804470f7e365f347683b7d505853fd799
 SHA1 (patch-third__party_abseil-cpp_absl_debugging_internal_vdso__support.cc) = f9c44d0d6fd952296f23c24f56053958b30d8e5c
 SHA1 (patch-third__party_js_cfworker_build.sh) = 46cdf97b99cf01080f290ae8d9a33b5f869fc3e4
-SHA1 (patch-third__party_libwebrtc_modules_audio__device_audio__device__impl.cc) = 927532138175f99f96433d24060f65a2a919d2d1
+SHA1 (patch-third__party_libwebrtc_modules_audio__device_audio__device__impl.cc) = 127284a1a9b6e12581d325f5a5aadae443b0e57b
 SHA1 (patch-third__party_libwebrtc_modules_desktop__capture_desktop__capture__gn_moz.build) = f53af8e5383f31b5de7df21f80eb53d60c11eae1
 SHA1 (patch-third__party_libwebrtc_modules_desktop__capture_linux_wayland_egl__dmabuf.cc) = 89f8f8eb5dcb877e0c70120f742050f1b32676fb
-SHA1 (patch-third__party_libwebrtc_modules_video__capture_linux_device__info__v4l2.cc) = 8831d477f14fd4f8f735ff0c1a322cba8c70e277
-SHA1 (patch-third__party_libwebrtc_modules_video__capture_linux_video__capture__v4l2.cc) = 8111952a107eb2cd665525ddd0e27c79eee3c1cd
+SHA1 (patch-third__party_libwebrtc_modules_portal_portal__gn_moz.build) = 9a1ad764d5df7e19da8d370edf12f7ae07e4c8e3
+SHA1 (patch-third__party_libwebrtc_modules_video__capture_linux_device__info__v4l2.cc) = a4b04c390f93ffbc79e049f532251bfa00376eff
+SHA1 (patch-third__party_libwebrtc_modules_video__capture_linux_video__capture__v4l2.cc) = 9f1e606242b2ab2625dabc06f25b593f4721d387
+SHA1 (patch-third__party_libwebrtc_modules_video__capture_video__capture__internal__impl__gn_moz.build) = 2a214979769cbf57b1d534610e524138aac7fc2b
 SHA1 (patch-third__party_libwebrtc_modules_video__capture_video__capture__options.cc) = e15f7e365ef6d57cd262f920f49c4d73f3a13305
 SHA1 (patch-third__party_libwebrtc_rtc__base_memory__usage.cc) = a831145ba15b30d30c6e6e216b574d416253ed4a
 SHA1 (patch-third__party_libwebrtc_rtc__base_physical__socket__server.cc) = 6909c4da9e7b3785252e5bce9be0ff47ebb87e01

Index: pkgsrc/www/firefox/mozilla-common.mk
diff -u pkgsrc/www/firefox/mozilla-common.mk:1.304 pkgsrc/www/firefox/mozilla-common.mk:1.305
--- pkgsrc/www/firefox/mozilla-common.mk:1.304  Fri Nov 14 20:47:01 2025
+++ pkgsrc/www/firefox/mozilla-common.mk        Wed Dec 24 15:26:40 2025
@@ -1,4 +1,4 @@
-# $NetBSD: mozilla-common.mk,v 1.304 2025/11/14 20:47:01 tsutsui Exp $
+# $NetBSD: mozilla-common.mk,v 1.305 2025/12/24 15:26:40 ryoon Exp $
 #
 # common Makefile fragment for mozilla packages based on gecko 2.0.
 #
@@ -25,7 +25,7 @@ USE_LANGUAGES+=               c c++
 # XXX: As of 145.0
 GCC_REQD+=             10
 
-TOOL_DEPENDS+=         cbindgen>=0.28.0:../../devel/cbindgen
+TOOL_DEPENDS+=         cbindgen>=0.29.1:../../devel/cbindgen
 
 .if defined(FIREFOX_MAINTAINER) && !defined(MAINTAINER_INTERNAL)
 TOOL_DEPENDS+=         nodejs-[0-9]*:../../lang/nodejs
@@ -278,7 +278,7 @@ RUST_REQ=   1.82.0
 # TODO: check again, pkgsrc has hunspell 1.7
 # was: textproc/hunspell 1.3 is too old
 #.include "../../textproc/hunspell/buildlink3.mk"
-.include "../../multimedia/ffmpeg7/buildlink3.mk"
+.include "../../multimedia/ffmpeg8/buildlink3.mk"
 .include "../../x11/libXt/buildlink3.mk"
 .include "../../x11/libXtst/buildlink3.mk"
 BUILDLINK_API_DEPENDS.pixman+= pixman>=0.40

Index: pkgsrc/www/firefox/files/node-wrapper.sh
diff -u pkgsrc/www/firefox/files/node-wrapper.sh:1.34 pkgsrc/www/firefox/files/node-wrapper.sh:1.35
--- pkgsrc/www/firefox/files/node-wrapper.sh:1.34       Mon Oct 27 14:24:32 2025
+++ pkgsrc/www/firefox/files/node-wrapper.sh    Wed Dec 24 15:26:40 2025
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-VERS=v24.10.0
+VERS=v25.2.1
 
 if [ "$1" = "-v" ] || [ "$1" = "--version" ]; then
        printf "${VERS}\n"

Index: pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_audio__device_audio__device__impl.cc
diff -u pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_audio__device_audio__device__impl.cc:1.4 
pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_audio__device_audio__device__impl.cc:1.5
--- pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_audio__device_audio__device__impl.cc:1.4    Mon Oct 27 14:24:33 2025
+++ pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_audio__device_audio__device__impl.cc        Wed Dec 24 15:26:41 2025
@@ -1,17 +1,17 @@
-$NetBSD: patch-third__party_libwebrtc_modules_audio__device_audio__device__impl.cc,v 1.4 2025/10/27 14:24:33 ryoon Exp $
+$NetBSD: patch-third__party_libwebrtc_modules_audio__device_audio__device__impl.cc,v 1.5 2025/12/24 15:26:41 ryoon Exp $
 
---- third_party/libwebrtc/modules/audio_device/audio_device_impl.cc.orig       2025-10-03 13:18:12.000000000 +0000
+--- third_party/libwebrtc/modules/audio_device/audio_device_impl.cc.orig       2025-11-28 13:14:41.000000000 +0000
 +++ third_party/libwebrtc/modules/audio_device/audio_device_impl.cc
-@@ -33,7 +33,7 @@
- #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD)
+@@ -28,7 +28,7 @@
+ 
+ #if defined(WEBRTC_WIN)
  #include "modules/audio_device/win/audio_device_core_win.h"
- #endif
 -#elif defined(WEBRTC_LINUX)
 +#elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
  #if defined(WEBRTC_ENABLE_LINUX_ALSA)
  #include "modules/audio_device/linux/audio_device_alsa_linux.h"
  #endif
-@@ -151,6 +151,11 @@ int32_t AudioDeviceModuleImpl::CheckPlat
+@@ -146,6 +146,11 @@ int32_t AudioDeviceModuleImpl::CheckPlat
  #elif defined(WEBRTC_FUCHSIA)
    platform = kPlatformFuchsia;
    RTC_LOG(LS_INFO) << "current platform is Fuchsia";
@@ -23,7 +23,7 @@ $NetBSD: patch-third__party_libwebrtc_mo
  #endif
    if (platform == kPlatformNotSupported) {
      RTC_LOG(LS_ERROR)
-@@ -204,7 +209,7 @@ int32_t AudioDeviceModuleImpl::CreatePla
+@@ -199,7 +204,7 @@ int32_t AudioDeviceModuleImpl::CreatePla
  // 'rtc_include_pulse_audio' build flag.
  // TODO(bugs.webrtc.org/9127): improve support and make it more clear that
  // PulseAudio is the default selection.
Index: pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_video__capture_linux_device__info__v4l2.cc
diff -u pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_video__capture_linux_device__info__v4l2.cc:1.4 
pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_video__capture_linux_device__info__v4l2.cc:1.5
--- pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_video__capture_linux_device__info__v4l2.cc:1.4      Tue Jul 15 13:58:05 2025
+++ pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_video__capture_linux_device__info__v4l2.cc  Wed Dec 24 15:26:41 2025
@@ -1,50 +1,10 @@
-$NetBSD: patch-third__party_libwebrtc_modules_video__capture_linux_device__info__v4l2.cc,v 1.4 2025/07/15 13:58:05 ryoon Exp $
+$NetBSD: patch-third__party_libwebrtc_modules_video__capture_linux_device__info__v4l2.cc,v 1.5 2025/12/24 15:26:41 ryoon Exp $
 
 * Fix build under NetBSD 9 and older.
   The older NetBSD's sys/videoio.h does not have v4l2_capability.device_caps.
 
---- third_party/libwebrtc/modules/video_capture/linux/device_info_v4l2.cc.orig 2025-05-17 19:55:48.000000000 +0000
+--- third_party/libwebrtc/modules/video_capture/linux/device_info_v4l2.cc.orig 2025-12-11 01:10:40.995051175 +0000
 +++ third_party/libwebrtc/modules/video_capture/linux/device_info_v4l2.cc
-@@ -52,14 +52,14 @@
- #define V4L2_PIX_FMT_RGBA32 v4l2_fourcc('A', 'B', '2', '4')
- #endif
- 
--#ifdef WEBRTC_LINUX
-+#ifdef WEBRTC_LINUX || WEBRTC_BSD
- #define EVENT_SIZE  ( sizeof (struct inotify_event) )
- #define BUF_LEN     ( 1024 * ( EVENT_SIZE + 16 ) )
- #endif
- 
- namespace webrtc {
- namespace videocapturemodule {
--#ifdef WEBRTC_LINUX
-+#ifdef WEBRTC_LINUX || WEBRTC_BSD
- void DeviceInfoV4l2::HandleEvent(inotify_event* event, int fd)
- {
-     if (event->mask & IN_CREATE) {
-@@ -175,11 +175,11 @@ void DeviceInfoV4l2::InotifyProcess()
- #endif
- 
- DeviceInfoV4l2::DeviceInfoV4l2() : DeviceInfoImpl()
--#ifdef WEBRTC_LINUX
-+#ifdef WEBRTC_LINUX || WEBRTC_BSD
-     , _isShutdown(false)
- #endif
- {
--#ifdef WEBRTC_LINUX
-+#ifdef WEBRTC_LINUX || WEBRTC_BSD
-   _inotifyEventThread = rtc::PlatformThread::SpawnJoinable(
-       [this] {
-         InotifyProcess();
-@@ -192,7 +192,7 @@ int32_t DeviceInfoV4l2::Init() {
- }
- 
- DeviceInfoV4l2::~DeviceInfoV4l2() {
--#ifdef WEBRTC_LINUX
-+#ifdef WEBRTC_LINUX || WEBRTC_BSD
-     _isShutdown = true;
- 
-     if (!_inotifyEventThread.empty()) {
 @@ -211,11 +211,13 @@ uint32_t DeviceInfoV4l2::NumberOfDevices
    for (int n = 0; n < 64; n++) {
      snprintf(device, sizeof(device), "/dev/video%d", n);
@@ -59,37 +19,7 @@ $NetBSD: patch-third__party_libwebrtc_mo
  
        close(fd);
        count++;
-@@ -243,11 +245,13 @@ int32_t DeviceInfoV4l2::GetDeviceName(ui
-   for (int n = 0; n < 64; n++) {
-     snprintf(device, sizeof(device), "/dev/video%d", n);
-     if ((fd = open(device, O_RDONLY)) != -1) {
-+#if defined(VIDIOC_QUERYCAP)
-       // query device capabilities and make sure this is a video capture device
-       if (ioctl(fd, VIDIOC_QUERYCAP, &cap) < 0 || !IsVideoCaptureDevice(&cap)) {
-         close(fd);
-         continue;
-       }
-+#endif
-       if (count == deviceNumber) {
-         // Found the device
-         found = true;
-@@ -318,6 +322,7 @@ int32_t DeviceInfoV4l2::CreateCapability
-     if (fd == -1)
-       continue;
- 
-+#if defined(VIDIOC_QUERYCAP)
-     // query device capabilities
-     struct v4l2_capability cap;
-     if (ioctl(fd, VIDIOC_QUERYCAP, &cap) == 0) {
-@@ -342,6 +347,7 @@ int32_t DeviceInfoV4l2::CreateCapability
-         }
-       }
-     }
-+#endif
-     close(fd);  // close since this is not the matching device
-   }
- 
-@@ -387,11 +393,15 @@ bool DeviceInfoV4l2::IsDeviceNameMatches
+@@ -387,11 +389,15 @@ bool DeviceInfoV4l2::IsDeviceNameMatches
  
  bool DeviceInfoV4l2::IsVideoCaptureDevice(struct v4l2_capability* cap)
  {
@@ -100,7 +30,7 @@ $NetBSD: patch-third__party_libwebrtc_mo
      return cap->capabilities & V4L2_CAP_VIDEO_CAPTURE;
    }
 +#else
-+    return cap->capabilities & V4L2_CAP_VIDEO_CAPTURE;
++    return true;
 +#endif
  }
  

Index: pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_video__capture_linux_video__capture__v4l2.cc
diff -u pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_video__capture_linux_video__capture__v4l2.cc:1.2 
pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_video__capture_linux_video__capture__v4l2.cc:1.3
--- pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_video__capture_linux_video__capture__v4l2.cc:1.2    Tue Jan 24 17:57:09 2023
+++ pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_video__capture_linux_video__capture__v4l2.cc        Wed Dec 24 15:26:41 2025
@@ -1,11 +1,14 @@
-$NetBSD: patch-third__party_libwebrtc_modules_video__capture_linux_video__capture__v4l2.cc,v 1.2 2023/01/24 17:57:09 nia Exp $
+$NetBSD: patch-third__party_libwebrtc_modules_video__capture_linux_video__capture__v4l2.cc,v 1.3 2025/12/24 15:26:41 ryoon Exp $
 
 * Fix build under NetBSD 9 and older.
   The older NetBSD's sys/videoio.h does not have v4l2_capability.device_caps.
+* On NetBSD, some uvideo(4) devices are not usable. They returns
+  fmt.pixelformat as zero from VIDIOC_ENUM_FMT. Exclude unsupported devices
+  in early stage.
 
---- third_party/libwebrtc/modules/video_capture/linux/video_capture_v4l2.cc.orig       2022-10-06 21:19:29.000000000 +0000
+--- third_party/libwebrtc/modules/video_capture/linux/video_capture_v4l2.cc.orig       2025-12-05 17:43:20.000000000 +0000
 +++ third_party/libwebrtc/modules/video_capture/linux/video_capture_v4l2.cc
-@@ -77,6 +77,7 @@ int32_t VideoCaptureModuleV4L2::Init(con
+@@ -90,18 +90,28 @@ int32_t VideoCaptureModuleV4L2::Init(con
      if ((fd = open(device, O_RDONLY)) != -1) {
        // query device capabilities
        struct v4l2_capability cap;
@@ -13,7 +16,23 @@ $NetBSD: patch-third__party_libwebrtc_mo
        if (ioctl(fd, VIDIOC_QUERYCAP, &cap) == 0) {
          if (cap.bus_info[0] != 0) {
            if (strncmp((const char*)cap.bus_info,
-@@ -89,6 +90,7 @@ int32_t VideoCaptureModuleV4L2::Init(con
+                       (const char*)deviceUniqueIdUTF8,
+                       strlen((const char*)deviceUniqueIdUTF8)) ==
+               0) {  // match with device id
+-            close(fd);
+-            found = true;
+-            break;  // fd matches with device unique id supplied
++            struct v4l2_fmtdesc fmt;
++            memset(&fmt, 0, sizeof(fmt));
++            fmt.index = 0;
++            fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
++            if (ioctl(fd, VIDIOC_ENUM_FMT, &fmt) == 0) {
++              if (fmt.pixelformat != 0) {
++                close(fd);
++                found = true;
++                break;  // fd matches with device unique id supplied
++              }
++            }
            }
          }
        }

Added files:

Index: pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_portal_portal__gn_moz.build
diff -u /dev/null pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_portal_portal__gn_moz.build:1.1
--- /dev/null   Wed Dec 24 15:26:41 2025
+++ pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_portal_portal__gn_moz.build Wed Dec 24 15:26:41 2025
@@ -0,0 +1,29 @@
+$NetBSD: patch-third__party_libwebrtc_modules_portal_portal__gn_moz.build,v 1.1 2025/12/24 15:26:41 ryoon Exp $
+
+--- third_party/libwebrtc/modules/portal/portal_gn/moz.build.orig      2025-12-02 15:14:25.832556602 +0000
++++ third_party/libwebrtc/modules/portal/portal_gn/moz.build
+@@ -41,7 +41,8 @@ DEFINES["WEBRTC_MOZILLA_BUILD"] = True
+ DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0"
+ DEFINES["WEBRTC_POSIX"] = True
+ DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0"
+-DEFINES["WEBRTC_USE_PIPEWIRE"] = True
++if CONFIG["OS_TARGET"] == "Linux":
++    DEFINES["WEBRTC_USE_PIPEWIRE"] = True
+ DEFINES["_FILE_OFFSET_BITS"] = "64"
+ DEFINES["_GLIBCXX_ASSERTIONS"] = "1"
+ DEFINES["_GNU_SOURCE"] = True
+@@ -67,10 +68,13 @@ LOCAL_INCLUDES += [
+ ]
+ 
+ UNIFIED_SOURCES += [
+-    "/third_party/libwebrtc/modules/portal/pipewire_utils.cc",
+     "/third_party/libwebrtc/modules/portal/scoped_glib.cc",
+     "/third_party/libwebrtc/modules/portal/xdg_desktop_portal_utils.cc"
+ ]
++if CONFIG["OS_TARGET"] == "Linux":
++    UNIFIED_SOURCES += [
++        "/third_party/libwebrtc/modules/portal/pipewire_utils.cc"
++    ]
+ 
+ if not CONFIG["MOZ_DEBUG"]:
+ 
Index: pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_video__capture_video__capture__internal__impl__gn_moz.build
diff -u /dev/null pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_video__capture_video__capture__internal__impl__gn_moz.build:1.1
--- /dev/null   Wed Dec 24 15:26:41 2025
+++ pkgsrc/www/firefox/patches/patch-third__party_libwebrtc_modules_video__capture_video__capture__internal__impl__gn_moz.build Wed Dec 24 15:26:41 2025
@@ -0,0 +1,40 @@
+$NetBSD: patch-third__party_libwebrtc_modules_video__capture_video__capture__internal__impl__gn_moz.build,v 1.1 2025/12/24 15:26:41 ryoon Exp $
+
+--- third_party/libwebrtc/modules/video_capture/video_capture_internal_impl_gn/moz.build.orig  2025-12-02 15:13:29.385557469 +0000
++++ third_party/libwebrtc/modules/video_capture/video_capture_internal_impl_gn/moz.build
+@@ -282,7 +282,7 @@ if CONFIG["OS_TARGET"] == "Android" and 
+         "-msse2"
+     ]
+ 
+-if CONFIG["TARGET_CPU"] == "aarch64" and (CONFIG["OS_TARGET"] == "Linux" or CONFIG["OS_TARGET"] == "NetBSD" or CONFIG["OS_TARGET"] == "OpenBSD" or CONFIG["OS_TARGET"] == "FreeBSD"):
++if CONFIG["TARGET_CPU"] == "aarch64" and CONFIG["OS_TARGET"] == "Linux":
+ 
+     DEFINES["WEBRTC_USE_PIPEWIRE"] = True
+     DEFINES["_GNU_SOURCE"] = True
+@@ -299,7 +299,7 @@ if CONFIG["TARGET_CPU"] == "aarch64" and
+         "/third_party/libwebrtc/modules/video_capture/linux/video_capture_pipewire.cc"
+     ]
+ 
+-if CONFIG["TARGET_CPU"] == "arm" and (CONFIG["OS_TARGET"] == "Linux" or CONFIG["OS_TARGET"] == "NetBSD" or CONFIG["OS_TARGET"] == "OpenBSD" or CONFIG["OS_TARGET"] == "FreeBSD"):
++if CONFIG["TARGET_CPU"] == "arm" and CONFIG["OS_TARGET"] == "Linux":
+ 
+     DEFINES["WEBRTC_USE_PIPEWIRE"] = True
+     DEFINES["_GNU_SOURCE"] = True
+@@ -316,7 +316,7 @@ if CONFIG["TARGET_CPU"] == "arm" and (CO
+         "/third_party/libwebrtc/modules/video_capture/linux/video_capture_pipewire.cc"
+     ]
+ 
+-if CONFIG["TARGET_CPU"] == "x86" and (CONFIG["OS_TARGET"] == "Linux" or CONFIG["OS_TARGET"] == "NetBSD" or CONFIG["OS_TARGET"] == "OpenBSD" or CONFIG["OS_TARGET"] == "FreeBSD"):
++if CONFIG["TARGET_CPU"] == "x86" and CONFIG["OS_TARGET"] == "Linux":
+ 
+     CXXFLAGS += [
+         "-msse2"
+@@ -337,7 +337,7 @@ if CONFIG["TARGET_CPU"] == "x86" and (CO
+         "/third_party/libwebrtc/modules/video_capture/linux/video_capture_pipewire.cc"
+     ]
+ 
+-if CONFIG["TARGET_CPU"] == "x86_64" and (CONFIG["OS_TARGET"] == "Linux" or CONFIG["OS_TARGET"] == "NetBSD" or CONFIG["OS_TARGET"] == "OpenBSD" or CONFIG["OS_TARGET"] == "FreeBSD"):
++if CONFIG["TARGET_CPU"] == "x86_64" and CONFIG["OS_TARGET"] == "Linux":
+ 
+     DEFINES["WEBRTC_USE_PIPEWIRE"] = True
+     DEFINES["_GNU_SOURCE"] = True



Home | Main Index | Thread Index | Old Index