diff --git a/www/firefox/Makefile b/www/firefox/Makefile index 3189355f132d..75bfd62963a1 100644 --- a/www/firefox/Makefile +++ b/www/firefox/Makefile @@ -1,75 +1,75 @@ # Created by: Alan Eldridge PORTNAME= firefox -DISTVERSION= 98.0.2 +DISTVERSION= 99.0 PORTEPOCH= 2 CATEGORIES= www MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ - MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/source + MOZILLA/${PORTNAME}/candidates/${DISTVERSION}${DISTVERSIONSUFFIX}-candidates/build1/source DISTFILES= ${DISTNAME}.source${EXTRACT_SUFX} MAINTAINER= gecko@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla BUILD_DEPENDS= nspr>=4.32:devel/nspr \ - nss>=3.75:security/nss \ + nss>=3.76:security/nss \ icu>=70.1:devel/icu \ libevent>=2.1.8:devel/libevent \ - harfbuzz>=3.1.2:print/harfbuzz \ + harfbuzz>=3.4.0:print/harfbuzz \ graphite2>=1.3.14:graphics/graphite2 \ png>=1.6.37:graphics/png \ dav1d>=1.0.0:multimedia/dav1d \ libvpx>=1.8.2:multimedia/libvpx \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \ v4l_compat>0:multimedia/v4l_compat \ autoconf-2.13:devel/autoconf213 \ 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 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 \ ${LOCALBASE}/share/wasi-sysroot/lib/wasm32-wasi/libc.a:devel/wasi-libc \ ${LOCALBASE}/llvm${LLVM_DEFAULT}/lib/clang/${LLVM_VERSION}/lib/wasi/libclang_rt.builtins-wasm32.a:devel/wasi-compiler-rt${LLVM_DEFAULT} 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 pre-configure: (cd ${WRKSRC} && ${LOCALBASE}/bin/autoconf-2.13) (cd ${WRKSRC}/js/src/ && ${LOCALBASE}/bin/autoconf-2.13) 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/distinfo b/www/firefox/distinfo index 80812f32573a..194f29549dad 100644 --- a/www/firefox/distinfo +++ b/www/firefox/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1647973707 -SHA256 (firefox-98.0.2.source.tar.xz) = c144b6016aaa8ceab8154b9f0b2bbeee6cbc22ab7f811fcece28d36e49565890 -SIZE (firefox-98.0.2.source.tar.xz) = 479907760 +TIMESTAMP = 1648503963 +SHA256 (firefox-99.0.source.tar.xz) = 440fdb7bf7c4a780e3b7a17a6f1f49cb1290d7e2cf009e24d35842136c74a1a6 +SIZE (firefox-99.0.source.tar.xz) = 481575776 diff --git a/www/firefox/files/patch-media_libcubeb_src_cubeb__oss.c b/www/firefox/files/patch-media_libcubeb_src_cubeb__oss.c deleted file mode 100644 index e3c51232a63f..000000000000 --- a/www/firefox/files/patch-media_libcubeb_src_cubeb__oss.c +++ /dev/null @@ -1,63 +0,0 @@ ---- media/libcubeb/src/cubeb_oss.c.orig 2021-12-18 20:36:16 UTC -+++ media/libcubeb/src/cubeb_oss.c -@@ -97,6 +97,7 @@ struct oss_stream { - int fd; - void * buf; - unsigned int bufframes; -+ unsigned int maxframes; - - struct stream_info { - int channels; -@@ -822,9 +823,9 @@ retry: - pfds[0].fd = s->play.fd; - pfds[1].fd = -1; - goto retry; -- } else if (tnfr > (long)s->play.bufframes) { -+ } else if (tnfr > (long)s->play.maxframes) { - /* too many frames available - limit */ -- tnfr = (long)s->play.bufframes; -+ tnfr = (long)s->play.maxframes; - } - if (nfr > tnfr) { - nfr = tnfr; -@@ -840,9 +841,9 @@ retry: - pfds[0].fd = -1; - pfds[1].fd = s->record.fd; - goto retry; -- } else if (tnfr > (long)s->record.bufframes) { -+ } else if (tnfr > (long)s->record.maxframes) { - /* too many frames available - limit */ -- tnfr = (long)s->record.bufframes; -+ tnfr = (long)s->record.maxframes; - } - if (nfr > tnfr) { - nfr = tnfr; -@@ -1146,8 +1147,19 @@ oss_stream_init(cubeb * context, cubeb_stream ** stream, - else { - s->play.bufframes = (bi.fragsize * bi.fragstotal) / s->play.frame_size; - } -+ int lw; - -- int lw = s->play.frame_size; -+ /* -+ * Force 32 ms service intervals at most, or when recording is -+ * active, use the recording service intervals as a reference. -+ */ -+ s->play.maxframes = (32 * output_stream_params->rate) / 1000; -+ if (s->record.fd != -1 || s->play.maxframes >= s->play.bufframes) { -+ lw = s->play.frame_size; /* Feed data when possible. */ -+ s->play.maxframes = s->play.bufframes; -+ } else { -+ lw = (s->play.bufframes - s->play.maxframes) * s->play.frame_size; -+ } - if (ioctl(s->play.fd, SNDCTL_DSP_LOW_WATER, &lw)) - LOG("Audio device \"%s\" (play) could not set trigger threshold", - s->play.name); -@@ -1166,6 +1178,7 @@ oss_stream_init(cubeb * context, cubeb_stream ** stream, - (bi.fragsize * bi.fragstotal) / s->record.frame_size; - } - -+ s->record.maxframes = s->record.bufframes; - int lw = s->record.frame_size; - if (ioctl(s->record.fd, SNDCTL_DSP_LOW_WATER, &lw)) - LOG("Audio device \"%s\" (record) could not set trigger threshold", diff --git a/www/firefox/files/patch-tools_profiler_core_patform.cpp b/www/firefox/files/patch-tools_profiler_core_patform.cpp new file mode 100644 index 000000000000..e07969fa8f41 --- /dev/null +++ b/www/firefox/files/patch-tools_profiler_core_patform.cpp @@ -0,0 +1,48 @@ +commit 913cfc8ce77818fa44f9086ee44538337930a9ef +Author: Christoph Moench-Tegeder +Date: Mon Mar 28 21:54:35 2022 +0200 + + FreeBSD can use sched_getcpu() from 1400046/1300524 on + +diff --git tools/profiler/core/platform.cpp tools/profiler/core/platform.cpp +index 92bcc1100687..77285f67b62c 100644 +--- tools/profiler/core/platform.cpp ++++ tools/profiler/core/platform.cpp +@@ -111,6 +111,17 @@ + # include + #endif + ++#if defined(GP_OS_freebsd) ++#include ++// "after making CPU_SET macros compatible with glibc" ++# if __FreeBSD_version > 1400045 || (__FreeBSD_version > 1300523 && __FreeBSD_version < 1400000) ++# include ++# else ++// similar cpuid_count() trick as on Darwin, using LLVM ++# include ++# endif ++#endif ++ + #if defined(GP_OS_windows) + # include + +@@ -6368,6 +6379,19 @@ void profiler_mark_thread_awake() { + cpuId = ebx >> 24; + } + # endif ++#elif defined(GP_OS_freebsd) ++# if __FreeBSD_version > 1400045 || (__FreeBSD_version > 1300523 && __FreeBSD_version < 1400000) ++ cpuId = sched_getcpu(); ++# elif defined(__amd64__) ++ unsigned int eax, ebx, ecx, edx; ++ __cpuid_count(1, 0, eax, ebx, ecx, edx); ++ // Check if we have an APIC. ++ if ((edx & (1 << 9))) { ++ // APIC ID is bits 24-31 of EBX ++ cpuId = ebx >> 24; ++ } ++# endif ++// the fallthrough is cpuID = 0 + #else + cpuId = sched_getcpu(); + #endif