diff --git a/www/firefox/Makefile b/www/firefox/Makefile index 8a62cce9c12c..33f74e7aaad7 100644 --- a/www/firefox/Makefile +++ b/www/firefox/Makefile @@ -1,73 +1,73 @@ PORTNAME= firefox DISTVERSION= 122.0 PORTEPOCH= 2 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= www wayland MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}${DISTVERSIONSUFFIX}/source \ MOZILLA/${PORTNAME}/candidates/${DISTVERSION}${DISTVERSIONSUFFIX}-candidates/build2/source DISTFILES= ${DISTNAME}.source${EXTRACT_SUFX} MAINTAINER= gecko@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla WWW= https://www.mozilla.com/firefox BUILD_DEPENDS= nspr>=4.32:devel/nspr \ nss>=3.95:security/nss \ icu>=73.1:devel/icu \ libevent>=2.1.8:devel/libevent \ harfbuzz>=8.3.0:print/harfbuzz \ graphite2>=1.3.14:graphics/graphite2 \ png>=1.6.39:graphics/png \ dav1d>=1.0.0:multimedia/dav1d \ libvpx>=1.13.1:multimedia/libvpx \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \ v4l_compat>0:multimedia/v4l_compat \ autoconf2.13:devel/autoconf2.13 \ nasm:devel/nasm \ yasm:devel/yasm \ zip:archivers/zip USE_GECKO= gecko CONFLICTS_INSTALL= firefox-esr USE_MOZILLA= -sqlite CFLAGS_powerpc64le= -DSQLITE_BYTEORDER=1234 # work around bindgen not finding ICU, e.g. # dist/include/mozilla/intl/ICU4CGlue.h:8:10: fatal error: 'unicode/uenum.h' file not found, err: true CONFIGURE_ENV+= BINDGEN_CFLAGS="-I${LOCALBASE}/include" USES= tar:xz # helpful when testing beta WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION} FIREFOX_ICON= ${MOZILLA}.png FIREFOX_ICON_SRC= ${PREFIX}/lib/${MOZILLA}/browser/chrome/icons/default/default48.png FIREFOX_DESKTOP= ${MOZSRC}/taskcluster/docker/${MOZILLA}-snap/${MOZILLA}.desktop MOZ_OPTIONS= --enable-application=browser \ --enable-official-branding .include "${.CURDIR}/../../www/firefox/Makefile.options" .include .if ${ARCH} == powerpc64 MOZ_OPTIONS+= --without-wasm-sandboxed-libraries .else BUILD_DEPENDS+= ${LOCALBASE}/share/wasi-sysroot/lib/wasm32-wasi/libc++abi.a:devel/wasi-libcxx${LLVM_VERSION} \ ${LOCALBASE}/share/wasi-sysroot/lib/wasm32-wasi/libc.a:devel/wasi-libc \ wasi-compiler-rt${LLVM_VERSION}>0:devel/wasi-compiler-rt${LLVM_VERSION} MOZ_OPTIONS+= --with-wasi-sysroot=${LOCALBASE}/share/wasi-sysroot .endif post-patch: @${REINPLACE_CMD} -e 's/%u/%U/' -e '/X-MultipleArgs/d' \ -e '/^Icon/s/=.*/=${FIREFOX_ICON:R}/' \ ${FIREFOX_DESKTOP} @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/browser/app/nsBrowserApp.cpp post-install: ${INSTALL_DATA} ${FIREFOX_DESKTOP} ${STAGEDIR}${PREFIX}/share/applications/ ${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps ${LN} -sf ${FIREFOX_ICON_SRC} ${STAGEDIR}${PREFIX}/share/pixmaps/${FIREFOX_ICON} .include diff --git a/www/firefox/files/patch-third__party_libwebrtc_modules_video__capture_video__capture__factory.cc b/www/firefox/files/patch-third__party_libwebrtc_modules_video__capture_video__capture__factory.cc new file mode 100644 index 000000000000..b57030bdb636 --- /dev/null +++ b/www/firefox/files/patch-third__party_libwebrtc_modules_video__capture_video__capture__factory.cc @@ -0,0 +1,26 @@ +commit 324c4811690dd288a7bbd1378d129dc5e9d6f16b + + video capture also is implented with WEBRTC_BSD (at least on FreeBSD) + +diff --git third_party/libwebrtc/modules/video_capture/video_capture_factory.cc third_party/libwebrtc/modules/video_capture/video_capture_factory.cc +index e085ac2df8a0..2790fbbe1cba 100644 +--- third_party/libwebrtc/modules/video_capture/video_capture_factory.cc ++++ third_party/libwebrtc/modules/video_capture/video_capture_factory.cc +@@ -24,7 +24,7 @@ rtc::scoped_refptr VideoCaptureFactory::Create( + const char* deviceUniqueIdUTF8) { + // This is only implemented on pure Linux and WEBRTC_LINUX is defined for + // Android as well +-#if !defined(WEBRTC_LINUX) || defined(WEBRTC_ANDROID) ++#if (!defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD)) || defined(WEBRTC_ANDROID) + return nullptr; + #else + return videocapturemodule::VideoCaptureImpl::Create(options, +@@ -40,7 +40,7 @@ VideoCaptureModule::DeviceInfo* VideoCaptureFactory::CreateDeviceInfo( + VideoCaptureOptions* options) { + // This is only implemented on pure Linux and WEBRTC_LINUX is defined for + // Android as well +-#if !defined(WEBRTC_LINUX) || defined(WEBRTC_ANDROID) ++#if (!defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD)) || defined(WEBRTC_ANDROID) + return nullptr; + #else + return videocapturemodule::VideoCaptureImpl::CreateDeviceInfo(options);