git: 65f70bb54dbb - main - www/firefox: update to 99.0 (rc1)

From: Christoph Moench-Tegeder <cmt_at_FreeBSD.org>
Date: Tue, 29 Mar 2022 07:21:31 UTC
The branch main has been updated by cmt:

URL: https://cgit.FreeBSD.org/ports/commit/?id=65f70bb54dbb613ca719cd1589339f2f3b41aeb4

commit 65f70bb54dbb613ca719cd1589339f2f3b41aeb4
Author:     Christoph Moench-Tegeder <cmt@FreeBSD.org>
AuthorDate: 2022-03-29 07:20:50 +0000
Commit:     Christoph Moench-Tegeder <cmt@FreeBSD.org>
CommitDate: 2022-03-29 07:20:50 +0000

    www/firefox: update to 99.0 (rc1)
    
    Release Notes (soon):
      https://www.mozilla.org/en-US/firefox/99.0/releasenotes/
---
 www/firefox/Makefile                               |  8 +--
 www/firefox/distinfo                               |  6 +--
 .../files/patch-media_libcubeb_src_cubeb__oss.c    | 63 ----------------------
 .../files/patch-tools_profiler_core_patform.cpp    | 48 +++++++++++++++++
 4 files changed, 55 insertions(+), 70 deletions(-)

diff --git a/www/firefox/Makefile b/www/firefox/Makefile
index 8148d7c5bb70..78a8929d4137 100644
--- a/www/firefox/Makefile
+++ b/www/firefox/Makefile
@@ -1,21 +1,21 @@
 # Created by: Alan Eldridge <alane@FreeBSD.org>
 
 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 \
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 <cmt@FreeBSD.org>
+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 <cpuid.h>
+ #endif
+ 
++#if defined(GP_OS_freebsd)
++#include <sys/param.h>
++// "after making CPU_SET macros compatible with glibc"
++#  if __FreeBSD_version > 1400045 || (__FreeBSD_version > 1300523 && __FreeBSD_version < 1400000)
++#  include <sched.h>
++#  else
++// similar cpuid_count() trick as on Darwin, using LLVM
++#  include <cpuid.h>
++#  endif
++#endif
++
+ #if defined(GP_OS_windows)
+ #  include <processthreadsapi.h>
+ 
+@@ -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