diff --git a/mail/thunderbird/Makefile b/mail/thunderbird/Makefile index 7a533bdd148e..5ac54a27d523 100644 --- a/mail/thunderbird/Makefile +++ b/mail/thunderbird/Makefile @@ -1,77 +1,78 @@ PORTNAME= thunderbird DISTVERSION= 128.2.0 +PORTREVISION= 2 CATEGORIES= mail news net-im wayland MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source \ MOZILLA/${PORTNAME}/candidates/${DISTVERSION}esr-candidates/build1/source DISTFILES= ${DISTNAME}esr.source${EXTRACT_SUFX} MAINTAINER= gecko@FreeBSD.org COMMENT= Mozilla Thunderbird is standalone mail and news that stands above WWW= https://www.mozilla.com/thunderbird/ BUILD_DEPENDS= nspr>=4.32:devel/nspr \ nss>=3.101:security/nss \ libevent>=2.1.8:devel/libevent \ harfbuzz>=8.5.0:print/harfbuzz \ graphite2>=1.3.14:graphics/graphite2 \ png>=1.6.43:graphics/png \ dav1d>=1.0.0:multimedia/dav1d \ libvpx>=1.14.0: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 LIB_DEPENDS= libjson-c.so:devel/json-c \ libbotan-2.so:security/botan2 USE_GECKO= gecko # cannot use system icu: calendar is completely broken by # https://unicode-org.atlassian.net/browse/ICU-22132 (fix not in 74.1) USE_MOZILLA= -icu -sqlite CFLAGS_powerpc64le= -DSQLITE_BYTEORDER=1234 USES= tar:xz MOZ_OPTIONS= --enable-application=comm/mail --enable-official-branding MOZ_OPTIONS+= --with-system-bz2 --with-system-jsonc --with-system-botan MOZ_MK_OPTIONS= MOZ_THUNDERBIRD=1 MAIL_PKG_SHARED=1 MOZ_EXPORT= MOZ_THUNDERBIRD=1 MAIL_PKG_SHARED=1 PORTNAME_ICON= ${MOZILLA}.png PORTNAME_ICON_SRC= ${PREFIX}/lib/${MOZILLA}/chrome/icons/default/default48.png SYSTEM_PREFS= ${FAKEDIR}/lib/${PORTNAME}/defaults/pref/${PORTNAME}.js OPTIONS_DEFAULT=CANBERRA .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-extract: @${SED} -e 's|@PORTNAME_ICON@|${PORTNAME_ICON:R}|;s|@MOZILLA@|${MOZILLA}|' \ <${FILESDIR}/thunderbird.desktop.in >${WRKDIR}/${MOZILLA_EXEC_NAME}.desktop post-patch: @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/comm/mail/app/nsMailApp.cpp port-pre-install: ${MKDIR} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/defaults post-install: ${INSTALL_DATA} ${WRKDIR}/${MOZILLA_EXEC_NAME}.desktop ${STAGEDIR}${PREFIX}/share/applications ${LN} -sf ${PORTNAME_ICON_SRC} ${STAGEDIR}${PREFIX}/share/pixmaps/${PORTNAME_ICON} .include diff --git a/mail/thunderbird/files/patch-bug1559213 b/mail/thunderbird/files/patch-bug1559213 index cfdb9bbefb2b..ead3425fa70b 100644 --- a/mail/thunderbird/files/patch-bug1559213 +++ b/mail/thunderbird/files/patch-bug1559213 @@ -1,98 +1,131 @@ -commit 717bba28411c -Author: Jory A. Pratt -Date: Thu Jun 13 11:53:00 2019 -0700 +commit 25a5572d5cd137aa6d893e09a00bd39908a59a18 +Author: Christoph Moench-Tegeder +Date: Tue Sep 10 22:23:32 2024 +0200 - Bug 1559213 - Allow to use system av1 libs instead of bundled. + based on: + commit 717bba28411c + Author: Jory A. Pratt + Date: Thu Jun 13 11:53:00 2019 -0700 + + Bug 1559213 - Allow to use system av1 libs instead of bundled. diff --git config/external/moz.build config/external/moz.build -index b6e174c5d6..49fe67a7ad 100644 +index a24b470396cf..547f5f5c9e04 100644 --- config/external/moz.build +++ config/external/moz.build @@ -40,8 +40,9 @@ if not CONFIG["MOZ_SYSTEM_LIBVPX"]: external_dirs += ["media/libvpx"] if CONFIG["MOZ_AV1"]: - external_dirs += ["media/libaom"] - external_dirs += ["media/libdav1d"] + if not CONFIG["MOZ_SYSTEM_AV1"]: + external_dirs += ["media/libaom"] + external_dirs += ["media/libdav1d"] if not CONFIG["MOZ_SYSTEM_PNG"]: external_dirs += ["media/libpng"] diff --git dom/media/platforms/moz.build dom/media/platforms/moz.build -index 1933f8d73a..049ca0f710 100644 +index 61536cc6e225..29cf635bbb44 100644 --- dom/media/platforms/moz.build +++ dom/media/platforms/moz.build -@@ -73,6 +73,11 @@ if CONFIG["MOZ_AV1"]: +@@ -71,6 +71,11 @@ if CONFIG["MOZ_AV1"]: "agnostic/AOMDecoder.cpp", "agnostic/DAV1DDecoder.cpp", ] + if CONFIG['MOZ_SYSTEM_AV1']: + CXXFLAGS += CONFIG['MOZ_SYSTEM_LIBAOM_CFLAGS'] + OS_LIBS += CONFIG['MOZ_SYSTEM_LIBAOM_LIBS'] + CXXFLAGS += CONFIG['MOZ_SYSTEM_LIBDAV1D_CFLAGS'] + OS_LIBS += CONFIG['MOZ_SYSTEM_LIBDAV1D_LIBS'] if CONFIG["MOZ_OMX"]: EXPORTS += [ diff --git media/ffvpx/libavcodec/moz.build media/ffvpx/libavcodec/moz.build -index 6f09049a60..2e63568bd1 100644 +index 6f09049a6068..90a82a19a9d1 100644 --- media/ffvpx/libavcodec/moz.build +++ media/ffvpx/libavcodec/moz.build -@@ -119,10 +119,14 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']: +@@ -119,10 +119,16 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']: 'vp9recon.c', 'vpx_rac.c', ] - USE_LIBS += [ - 'dav1d', - 'media_libdav1d_asm', - ] + if CONFIG["MOZ_SYSTEM_AV1"]: + CFLAGS += CONFIG['MOZ_SYSTEM_LIBDAV1D_CFLAGS'] + OS_LIBS += CONFIG['MOZ_SYSTEM_LIBDAV1D_LIBS'] ++ CFLAGS += CONFIG['MOZ_SYSTEM_LIBAOM_CFLAGS'] ++ OS_LIBS += CONFIG['MOZ_SYSTEM_LIBAOM_LIBS'] + else: + USE_LIBS += [ + 'dav1d', + 'media_libdav1d_asm', + ] if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": LOCAL_INCLUDES += ['/media/mozva'] SOURCES += [ +diff --git media/libopus/moz.build media/libopus/moz.build +index 943aee79ee99..4ad07e3e98af 100644 +--- media/libopus/moz.build ++++ media/libopus/moz.build +@@ -58,7 +58,7 @@ if not CONFIG["MOZ_SAMPLE_TYPE_FLOAT32"]: + DEFINES["FIXED_POINT"] = 1 + DEFINES["DISABLE_FLOAT_API"] = True + +-if CONFIG["OS_ARCH"] == "Linux": ++if CONFIG["OS_ARCH"] in ("FreeBSD", "Linux"): + OS_LIBS += [ + "m", + ] +diff --git media/libvorbis/moz.build media/libvorbis/moz.build +index cd17d4f89759..816edd72a000 100644 +--- media/libvorbis/moz.build ++++ media/libvorbis/moz.build +@@ -45,7 +45,7 @@ LOCAL_INCLUDES += ['lib'] + if CONFIG['OS_ARCH'] == 'SunOS': + DEFINES['HAVE_ALLOCA_H'] = True + +-if CONFIG["OS_ARCH"] == "Linux": ++if CONFIG["OS_ARCH"] in ("FreeBSD", "Linux"): + OS_LIBS += [ + "m", + ] diff --git toolkit/moz.configure toolkit/moz.configure -index a424446c7d..1d5babe8a9 100644 +index 1f85d2831f2f..07294b93f850 100644 --- toolkit/moz.configure +++ toolkit/moz.configure -@@ -789,7 +789,23 @@ def av1(value): +@@ -883,7 +883,23 @@ def av1(value): return True -@depends(target, when=av1 & compile_environment) +option("--with-system-av1", + help="Use system av1 (located with pkgconfig)") + +system_libaom_info = pkg_check_modules("MOZ_SYSTEM_LIBAOM", "aom >= 1.0.0", + when="--with-system-av1") + +system_libdav1d_info = pkg_check_modules("MOZ_SYSTEM_LIBDAV1D", "dav1d >= 0.1.1", + when="--with-system-av1") + +@depends(system_libaom_info, system_libdav1d_info) +def system_av1(system_libaom_info, system_libdav1d_info): + has_av1_libs = False + if system_libaom_info and system_libdav1d_info: + has_av1_libs = True + return has_av1_libs + +@depends(target, when=av1 & depends(system_av1)(lambda v: not v) & compile_environment) def dav1d_asm(target): if target.cpu in ("aarch64", "x86", "x86_64"): return True -@@ -805,6 +821,7 @@ set_config("MOZ_DAV1D_ASM", dav1d_asm) +@@ -899,6 +915,7 @@ set_config("MOZ_DAV1D_ASM", dav1d_asm) set_define("MOZ_DAV1D_ASM", dav1d_asm) set_config("MOZ_AV1", av1) set_define("MOZ_AV1", av1) +set_config("MOZ_SYSTEM_AV1", depends_if(system_av1)(lambda _: True)) # JXL Image Codec Support # ============================================================== diff --git a/www/firefox-esr/Makefile b/www/firefox-esr/Makefile index 1a85da360c7d..cfbe910aed57 100644 --- a/www/firefox-esr/Makefile +++ b/www/firefox-esr/Makefile @@ -1,70 +1,71 @@ PORTNAME= firefox DISTVERSION= 128.2.0 +PORTREVISION= 2 PORTEPOCH= 1 CATEGORIES= www wayland MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source \ MOZILLA/${PORTNAME}/candidates/${DISTVERSION}esr-candidates/build1/source PKGNAMESUFFIX= -esr DISTFILES= ${DISTNAME}esr.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.101:security/nss \ icu>=73.1,1:devel/icu \ libevent>=2.1.8:devel/libevent \ harfbuzz>=8.5.0:print/harfbuzz \ graphite2>=1.3.14:graphics/graphite2 \ png>=1.6.43:graphics/png \ dav1d>=1.0.0:multimedia/dav1d \ libvpx>=1.14.0: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 CPE_PRODUCT= ${PORTNAME}_esr CONFLICTS_INSTALL= firefox USE_MOZILLA= -sqlite CFLAGS_powerpc64le= -DSQLITE_BYTEORDER=1234 CONFIGURE_ENV+= BINDGEN_CFLAGS="-I${LOCALBASE}/include" USES= tar:xz 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-esr/files/patch-bug1559213 b/www/firefox-esr/files/patch-bug1559213 index ae11fb38f989..ead3425fa70b 100644 --- a/www/firefox-esr/files/patch-bug1559213 +++ b/www/firefox-esr/files/patch-bug1559213 @@ -1,104 +1,131 @@ -commit 717bba28411c -Author: Jory A. Pratt -Date: Thu Jun 13 11:53:00 2019 -0700 +commit 25a5572d5cd137aa6d893e09a00bd39908a59a18 +Author: Christoph Moench-Tegeder +Date: Tue Sep 10 22:23:32 2024 +0200 - Bug 1559213 - Allow to use system av1 libs instead of bundled. ---- - config/external/moz.build | 5 +++-- - config/system-headers.mozbuild | 8 ++++++++ - dom/media/platforms/moz.build | 5 +++++ - toolkit/moz.configure | 19 ++++++++++++++++++- - 4 files changed, 34 insertions(+), 3 deletions(-) + based on: + commit 717bba28411c + Author: Jory A. Pratt + Date: Thu Jun 13 11:53:00 2019 -0700 + + Bug 1559213 - Allow to use system av1 libs instead of bundled. diff --git config/external/moz.build config/external/moz.build -index 2fc8df57992e..63d18e50a961 100644 +index a24b470396cf..547f5f5c9e04 100644 --- config/external/moz.build +++ config/external/moz.build @@ -40,8 +40,9 @@ if not CONFIG["MOZ_SYSTEM_LIBVPX"]: external_dirs += ["media/libvpx"] if CONFIG["MOZ_AV1"]: - external_dirs += ["media/libaom"] - external_dirs += ["media/libdav1d"] + if not CONFIG["MOZ_SYSTEM_AV1"]: + external_dirs += ["media/libaom"] + external_dirs += ["media/libdav1d"] if not CONFIG["MOZ_SYSTEM_PNG"]: external_dirs += ["media/libpng"] diff --git dom/media/platforms/moz.build dom/media/platforms/moz.build -index 5c6e25b3980b..ce99ebfb6d3f 100644 +index 61536cc6e225..29cf635bbb44 100644 --- dom/media/platforms/moz.build +++ dom/media/platforms/moz.build -@@ -81,6 +81,11 @@ if CONFIG["MOZ_AV1"]: +@@ -71,6 +71,11 @@ if CONFIG["MOZ_AV1"]: "agnostic/AOMDecoder.cpp", "agnostic/DAV1DDecoder.cpp", ] + if CONFIG['MOZ_SYSTEM_AV1']: + CXXFLAGS += CONFIG['MOZ_SYSTEM_LIBAOM_CFLAGS'] + OS_LIBS += CONFIG['MOZ_SYSTEM_LIBAOM_LIBS'] + CXXFLAGS += CONFIG['MOZ_SYSTEM_LIBDAV1D_CFLAGS'] + OS_LIBS += CONFIG['MOZ_SYSTEM_LIBDAV1D_LIBS'] if CONFIG["MOZ_OMX"]: EXPORTS += [ diff --git media/ffvpx/libavcodec/moz.build media/ffvpx/libavcodec/moz.build -index 761fc8cf4cd9..793a5b8697a8 100644 +index 6f09049a6068..90a82a19a9d1 100644 --- media/ffvpx/libavcodec/moz.build +++ media/ffvpx/libavcodec/moz.build -@@ -120,10 +120,14 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']: +@@ -119,10 +119,16 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']: 'vp9recon.c', 'vpx_rac.c', ] - USE_LIBS += [ - 'dav1d', - 'media_libdav1d_asm', - ] + if CONFIG["MOZ_SYSTEM_AV1"]: + CFLAGS += CONFIG['MOZ_SYSTEM_LIBDAV1D_CFLAGS'] + OS_LIBS += CONFIG['MOZ_SYSTEM_LIBDAV1D_LIBS'] ++ CFLAGS += CONFIG['MOZ_SYSTEM_LIBAOM_CFLAGS'] ++ OS_LIBS += CONFIG['MOZ_SYSTEM_LIBAOM_LIBS'] + else: + USE_LIBS += [ + 'dav1d', + 'media_libdav1d_asm', + ] if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": LOCAL_INCLUDES += ['/media/mozva'] SOURCES += [ +diff --git media/libopus/moz.build media/libopus/moz.build +index 943aee79ee99..4ad07e3e98af 100644 +--- media/libopus/moz.build ++++ media/libopus/moz.build +@@ -58,7 +58,7 @@ if not CONFIG["MOZ_SAMPLE_TYPE_FLOAT32"]: + DEFINES["FIXED_POINT"] = 1 + DEFINES["DISABLE_FLOAT_API"] = True + +-if CONFIG["OS_ARCH"] == "Linux": ++if CONFIG["OS_ARCH"] in ("FreeBSD", "Linux"): + OS_LIBS += [ + "m", + ] +diff --git media/libvorbis/moz.build media/libvorbis/moz.build +index cd17d4f89759..816edd72a000 100644 +--- media/libvorbis/moz.build ++++ media/libvorbis/moz.build +@@ -45,7 +45,7 @@ LOCAL_INCLUDES += ['lib'] + if CONFIG['OS_ARCH'] == 'SunOS': + DEFINES['HAVE_ALLOCA_H'] = True + +-if CONFIG["OS_ARCH"] == "Linux": ++if CONFIG["OS_ARCH"] in ("FreeBSD", "Linux"): + OS_LIBS += [ + "m", + ] diff --git toolkit/moz.configure toolkit/moz.configure -index f93a5d64fec8..814357f4e979 100644 +index 1f85d2831f2f..07294b93f850 100644 --- toolkit/moz.configure +++ toolkit/moz.configure -@@ -744,7 +744,23 @@ def av1(value): +@@ -883,7 +883,23 @@ def av1(value): return True -@depends(target, when=av1 & compile_environment) +option("--with-system-av1", + help="Use system av1 (located with pkgconfig)") + +system_libaom_info = pkg_check_modules("MOZ_SYSTEM_LIBAOM", "aom >= 1.0.0", + when="--with-system-av1") + +system_libdav1d_info = pkg_check_modules("MOZ_SYSTEM_LIBDAV1D", "dav1d >= 0.1.1", + when="--with-system-av1") + +@depends(system_libaom_info, system_libdav1d_info) +def system_av1(system_libaom_info, system_libdav1d_info): + has_av1_libs = False + if system_libaom_info and system_libdav1d_info: + has_av1_libs = True + return has_av1_libs + +@depends(target, when=av1 & depends(system_av1)(lambda v: not v) & compile_environment) def dav1d_asm(target): if target.cpu in ("aarch64", "x86", "x86_64"): return True -@@ -760,6 +776,7 @@ set_config("MOZ_DAV1D_ASM", dav1d_asm) +@@ -899,6 +915,7 @@ set_config("MOZ_DAV1D_ASM", dav1d_asm) set_define("MOZ_DAV1D_ASM", dav1d_asm) set_config("MOZ_AV1", av1) set_define("MOZ_AV1", av1) +set_config("MOZ_SYSTEM_AV1", depends_if(system_av1)(lambda _: True)) # JXL Image Codec Support # ============================================================== diff --git a/www/firefox/Makefile b/www/firefox/Makefile index 89be664e51cb..45def465f3ea 100644 --- a/www/firefox/Makefile +++ b/www/firefox/Makefile @@ -1,73 +1,73 @@ PORTNAME= firefox DISTVERSION= 130.0 -PORTREVISION= 1 +PORTREVISION= 3 PORTEPOCH= 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.103:security/nss \ icu>=73.1:devel/icu \ libevent>=2.1.8:devel/libevent \ harfbuzz>=9.0.0:print/harfbuzz \ graphite2>=1.3.14:graphics/graphite2 \ png>=1.6.43:graphics/png \ dav1d>=1.0.0:multimedia/dav1d \ libvpx>=1.14.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-bug1559213 b/www/firefox/files/patch-bug1559213 index ae11fb38f989..ead3425fa70b 100644 --- a/www/firefox/files/patch-bug1559213 +++ b/www/firefox/files/patch-bug1559213 @@ -1,104 +1,131 @@ -commit 717bba28411c -Author: Jory A. Pratt -Date: Thu Jun 13 11:53:00 2019 -0700 +commit 25a5572d5cd137aa6d893e09a00bd39908a59a18 +Author: Christoph Moench-Tegeder +Date: Tue Sep 10 22:23:32 2024 +0200 - Bug 1559213 - Allow to use system av1 libs instead of bundled. ---- - config/external/moz.build | 5 +++-- - config/system-headers.mozbuild | 8 ++++++++ - dom/media/platforms/moz.build | 5 +++++ - toolkit/moz.configure | 19 ++++++++++++++++++- - 4 files changed, 34 insertions(+), 3 deletions(-) + based on: + commit 717bba28411c + Author: Jory A. Pratt + Date: Thu Jun 13 11:53:00 2019 -0700 + + Bug 1559213 - Allow to use system av1 libs instead of bundled. diff --git config/external/moz.build config/external/moz.build -index 2fc8df57992e..63d18e50a961 100644 +index a24b470396cf..547f5f5c9e04 100644 --- config/external/moz.build +++ config/external/moz.build @@ -40,8 +40,9 @@ if not CONFIG["MOZ_SYSTEM_LIBVPX"]: external_dirs += ["media/libvpx"] if CONFIG["MOZ_AV1"]: - external_dirs += ["media/libaom"] - external_dirs += ["media/libdav1d"] + if not CONFIG["MOZ_SYSTEM_AV1"]: + external_dirs += ["media/libaom"] + external_dirs += ["media/libdav1d"] if not CONFIG["MOZ_SYSTEM_PNG"]: external_dirs += ["media/libpng"] diff --git dom/media/platforms/moz.build dom/media/platforms/moz.build -index 5c6e25b3980b..ce99ebfb6d3f 100644 +index 61536cc6e225..29cf635bbb44 100644 --- dom/media/platforms/moz.build +++ dom/media/platforms/moz.build -@@ -81,6 +81,11 @@ if CONFIG["MOZ_AV1"]: +@@ -71,6 +71,11 @@ if CONFIG["MOZ_AV1"]: "agnostic/AOMDecoder.cpp", "agnostic/DAV1DDecoder.cpp", ] + if CONFIG['MOZ_SYSTEM_AV1']: + CXXFLAGS += CONFIG['MOZ_SYSTEM_LIBAOM_CFLAGS'] + OS_LIBS += CONFIG['MOZ_SYSTEM_LIBAOM_LIBS'] + CXXFLAGS += CONFIG['MOZ_SYSTEM_LIBDAV1D_CFLAGS'] + OS_LIBS += CONFIG['MOZ_SYSTEM_LIBDAV1D_LIBS'] if CONFIG["MOZ_OMX"]: EXPORTS += [ diff --git media/ffvpx/libavcodec/moz.build media/ffvpx/libavcodec/moz.build -index 761fc8cf4cd9..793a5b8697a8 100644 +index 6f09049a6068..90a82a19a9d1 100644 --- media/ffvpx/libavcodec/moz.build +++ media/ffvpx/libavcodec/moz.build -@@ -120,10 +120,14 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']: +@@ -119,10 +119,16 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']: 'vp9recon.c', 'vpx_rac.c', ] - USE_LIBS += [ - 'dav1d', - 'media_libdav1d_asm', - ] + if CONFIG["MOZ_SYSTEM_AV1"]: + CFLAGS += CONFIG['MOZ_SYSTEM_LIBDAV1D_CFLAGS'] + OS_LIBS += CONFIG['MOZ_SYSTEM_LIBDAV1D_LIBS'] ++ CFLAGS += CONFIG['MOZ_SYSTEM_LIBAOM_CFLAGS'] ++ OS_LIBS += CONFIG['MOZ_SYSTEM_LIBAOM_LIBS'] + else: + USE_LIBS += [ + 'dav1d', + 'media_libdav1d_asm', + ] if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": LOCAL_INCLUDES += ['/media/mozva'] SOURCES += [ +diff --git media/libopus/moz.build media/libopus/moz.build +index 943aee79ee99..4ad07e3e98af 100644 +--- media/libopus/moz.build ++++ media/libopus/moz.build +@@ -58,7 +58,7 @@ if not CONFIG["MOZ_SAMPLE_TYPE_FLOAT32"]: + DEFINES["FIXED_POINT"] = 1 + DEFINES["DISABLE_FLOAT_API"] = True + +-if CONFIG["OS_ARCH"] == "Linux": ++if CONFIG["OS_ARCH"] in ("FreeBSD", "Linux"): + OS_LIBS += [ + "m", + ] +diff --git media/libvorbis/moz.build media/libvorbis/moz.build +index cd17d4f89759..816edd72a000 100644 +--- media/libvorbis/moz.build ++++ media/libvorbis/moz.build +@@ -45,7 +45,7 @@ LOCAL_INCLUDES += ['lib'] + if CONFIG['OS_ARCH'] == 'SunOS': + DEFINES['HAVE_ALLOCA_H'] = True + +-if CONFIG["OS_ARCH"] == "Linux": ++if CONFIG["OS_ARCH"] in ("FreeBSD", "Linux"): + OS_LIBS += [ + "m", + ] diff --git toolkit/moz.configure toolkit/moz.configure -index f93a5d64fec8..814357f4e979 100644 +index 1f85d2831f2f..07294b93f850 100644 --- toolkit/moz.configure +++ toolkit/moz.configure -@@ -744,7 +744,23 @@ def av1(value): +@@ -883,7 +883,23 @@ def av1(value): return True -@depends(target, when=av1 & compile_environment) +option("--with-system-av1", + help="Use system av1 (located with pkgconfig)") + +system_libaom_info = pkg_check_modules("MOZ_SYSTEM_LIBAOM", "aom >= 1.0.0", + when="--with-system-av1") + +system_libdav1d_info = pkg_check_modules("MOZ_SYSTEM_LIBDAV1D", "dav1d >= 0.1.1", + when="--with-system-av1") + +@depends(system_libaom_info, system_libdav1d_info) +def system_av1(system_libaom_info, system_libdav1d_info): + has_av1_libs = False + if system_libaom_info and system_libdav1d_info: + has_av1_libs = True + return has_av1_libs + +@depends(target, when=av1 & depends(system_av1)(lambda v: not v) & compile_environment) def dav1d_asm(target): if target.cpu in ("aarch64", "x86", "x86_64"): return True -@@ -760,6 +776,7 @@ set_config("MOZ_DAV1D_ASM", dav1d_asm) +@@ -899,6 +915,7 @@ set_config("MOZ_DAV1D_ASM", dav1d_asm) set_define("MOZ_DAV1D_ASM", dav1d_asm) set_config("MOZ_AV1", av1) set_define("MOZ_AV1", av1) +set_config("MOZ_SYSTEM_AV1", depends_if(system_av1)(lambda _: True)) # JXL Image Codec Support # ==============================================================