git: 59870de84954 - main - www/firefox: update to 98.0 (rc1)

From: Christoph Moench-Tegeder <cmt_at_FreeBSD.org>
Date: Mon, 28 Feb 2022 22:07:17 UTC
The branch main has been updated by cmt:

URL: https://cgit.FreeBSD.org/ports/commit/?id=59870de84954a5fa3ed01c7bb00dc4bd12aaad09

commit 59870de84954a5fa3ed01c7bb00dc4bd12aaad09
Author:     Christoph Moench-Tegeder <cmt@FreeBSD.org>
AuthorDate: 2022-02-28 22:06:43 +0000
Commit:     Christoph Moench-Tegeder <cmt@FreeBSD.org>
CommitDate: 2022-02-28 22:06:43 +0000

    www/firefox: update to 98.0 (rc1)
    
    Release Notes (soon):
      https://www.mozilla.org/en-US/firefox/98.0/releasenotes/
---
 www/firefox/Makefile               |   6 +-
 www/firefox/distinfo               |   6 +-
 www/firefox/files/patch-bug1664115 |  46 ++++---
 www/firefox/files/patch-bug1749604 | 249 -------------------------------------
 4 files changed, 32 insertions(+), 275 deletions(-)

diff --git a/www/firefox/Makefile b/www/firefox/Makefile
index 79b60a5d4133..dcba3eea57f5 100644
--- a/www/firefox/Makefile
+++ b/www/firefox/Makefile
@@ -1,7 +1,7 @@
 # Created by: Alan Eldridge <alane@FreeBSD.org>
 
 PORTNAME=	firefox
-DISTVERSION=	97.0.1
+DISTVERSION=	98.0
 PORTEPOCH=	2
 CATEGORIES=	www
 MASTER_SITES=	MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \
@@ -12,10 +12,10 @@ MAINTAINER=	gecko@FreeBSD.org
 COMMENT=	Web browser based on the browser portion of Mozilla
 
 BUILD_DEPENDS=	nspr>=4.32:devel/nspr \
-		nss>=3.74:security/nss \
+		nss>=3.75:security/nss \
 		icu>=70.1:devel/icu \
 		libevent>=2.1.8:devel/libevent \
-		harfbuzz>=2.9.1:print/harfbuzz \
+		harfbuzz>=3.1.2:print/harfbuzz \
 		graphite2>=1.3.14:graphics/graphite2 \
 		png>=1.6.37:graphics/png \
 		libvpx>=1.8.2:multimedia/libvpx \
diff --git a/www/firefox/distinfo b/www/firefox/distinfo
index b5818d3397ac..63d4e03b4fd3 100644
--- a/www/firefox/distinfo
+++ b/www/firefox/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1645044916
-SHA256 (firefox-97.0.1.source.tar.xz) = 3f2c87cf28645130777e875ddc9c67e8994c8d5c859f425f3ddced6fecb78d45
-SIZE (firefox-97.0.1.source.tar.xz) = 476866824
+TIMESTAMP = 1646080342
+SHA256 (firefox-98.0.source.tar.xz) = 4140c7002dafd1fa300857accbafcb92d4974795940e50887e8708023d346c91
+SIZE (firefox-98.0.source.tar.xz) = 484375888
diff --git a/www/firefox/files/patch-bug1664115 b/www/firefox/files/patch-bug1664115
index 86898c765f08..dce342a44b40 100644
--- a/www/firefox/files/patch-bug1664115
+++ b/www/firefox/files/patch-bug1664115
@@ -3,8 +3,8 @@ using any cubeb backends other than pulse-rust to play media. The loss of
 such change will be that users will not be able to do profiling on threads
 created by libcubeb.
 
---- dom/media/AudioStream.cpp.orig	2021-09-01 15:26:18.998745000 +0200
-+++ dom/media/AudioStream.cpp	2021-09-01 15:34:45.227435000 +0200
+--- dom/media/AudioStream.cpp.orig	2022-02-25 16:27:47.676236000 +0100
++++ dom/media/AudioStream.cpp	2022-02-25 16:54:21.223904000 +0100
 @@ -27,7 +27,6 @@
  #endif
  #include "Tracing.h"
@@ -13,18 +13,16 @@ created by libcubeb.
  #include "mozilla/StaticPrefs_media.h"
  
  // Use abort() instead of exception in SoundTouch.
-@@ -141,9 +140,7 @@ AudioStream::AudioStream(DataSource& aSource)
-       mTimeStretcher(nullptr),
+@@ -144,8 +143,6 @@
+       mAudioClock(aInRate),
        mState(INITIALIZED),
        mDataSource(aSource),
--      mPrefillQuirk(false),
 -      mAudioThreadId(ProfilerThreadId{}),
--      mSandboxed(CubebUtils::SandboxEnabled()) {}
-+      mPrefillQuirk(false) {}
- 
- AudioStream::~AudioStream() {
-   LOG("deleted, state %d", mState);
-@@ -582,19 +579,7 @@
+-      mSandboxed(CubebUtils::SandboxEnabled()),
+       mPlaybackComplete(false),
+       mPlaybackRate(1.0f),
+       mPreservesPitch(true) {}
+@@ -551,17 +548,6 @@
        aWriter.Available());
  }
  
@@ -32,19 +30,27 @@ created by libcubeb.
 -  ProfilerThreadId id = profiler_current_thread_id();
 -  if (id != mAudioThreadId) {
 -    mAudioThreadId = id;
+-    mAudioThreadChanged = true;
 -    return true;
 -  }
+-  mAudioThreadChanged = false;
 -  return false;
 -}
 -
+ void AudioStream::AssertIsOnAudioThread() const {
+   // This can be called right after CheckThreadIdChanged, because the audio
+   // thread can change when not sandboxed.
+@@ -590,9 +576,6 @@
+ }
+ 
  long AudioStream::DataCallback(void* aBuffer, long aFrames) {
--  if (!mSandboxed && CheckThreadIdChanged()) {
+-  if (CheckThreadIdChanged() && !mSandboxed) {
 -    CubebUtils::GetAudioThreadRegistry()->Register(mAudioThreadId);
 -  }
    WebCore::DenormalDisabler disabler;
  
    TRACE_AUDIO_CALLBACK_BUDGET(aFrames, mAudioClock.GetInputRate());
-@@ -650,9 +635,6 @@
+@@ -647,9 +630,6 @@
    mDumpFile.Write(static_cast<const AudioDataValue*>(aBuffer),
                    aFrames * mOutChannels);
  
@@ -54,17 +60,17 @@ created by libcubeb.
    return aFrames - writer.Available();
  }
  
---- dom/media/AudioStream.h.orig	2021-09-01 15:26:35.926655000 +0200
-+++ dom/media/AudioStream.h	2021-09-01 15:35:53.435096000 +0200
-@@ -297,7 +297,6 @@
+--- dom/media/AudioStream.h.orig	2022-02-25 16:27:53.316210000 +0100
++++ dom/media/AudioStream.h	2022-02-25 16:55:18.967535000 +0100
+@@ -323,7 +323,6 @@
  
    template <typename Function, typename... Args>
    int InvokeCubeb(Function aFunction, Args&&... aArgs);
 -  bool CheckThreadIdChanged();
+   void AssertIsOnAudioThread() const;
  
-   // The monitor is held to protect all access to member variables.
-   Monitor mMonitor;
-@@ -331,9 +330,6 @@
+   soundtouch::SoundTouch* mTimeStretcher;
+@@ -357,9 +356,6 @@
    // the default device is used. It is set
    // during the Init() in decoder thread.
    RefPtr<AudioDeviceInfo> mSinkInfo;
@@ -73,4 +79,4 @@ created by libcubeb.
 -  const bool mSandboxed = false;
  
    MozPromiseHolder<MediaSink::EndedPromise> mEndedPromise;
-   Atomic<bool> mPlaybackComplete;
+   std::atomic<bool> mPlaybackComplete;
diff --git a/www/firefox/files/patch-bug1749604 b/www/firefox/files/patch-bug1749604
deleted file mode 100644
index a0195b8d00c9..000000000000
--- a/www/firefox/files/patch-bug1749604
+++ /dev/null
@@ -1,249 +0,0 @@
-https://bugzilla.mozilla.org/show_bug.cgi?id=1749604
-https://hg.mozilla.org/mozilla-central/rev/f6031b5927f5
-https://hg.mozilla.org/mozilla-central/rev/c7440a6eb545
-https://github.com/mozilla/gecko-dev/commit/e6f459cd77e3
-(Avoid ~13 GB clone of moz-libwebrtc for libwebrtc regen)
-(To be dropped for 98)
-
-Updated README.md to reflect simplified setup for generation.
-Updated generate-gn-build-files.sh:
-  - remove dependencies on MOZ_LIBWEBRTC environment variable
-  - add checking for GN environment variable
----
-
-diff --git a/dom/media/webrtc/third_party_build/gn-configs/README.md b/dom/media/webrtc/third_party_build/gn-configs/README.md
-index bc54ba183d016..09dea1ae87833 100644
---- dom/media/webrtc/third_party_build/gn-configs/README.md
-+++ dom/media/webrtc/third_party_build/gn-configs/README.md
-@@ -1,9 +1,10 @@
- # Generate new gn json files and moz.build files for building libwebrtc in our tree
- 
--1. If generating on macOS for Apple Silicon (cross-compiling), make sure to have at least
--[Xcode 12.2](https://download.developer.apple.com/Developer_Tools/Xcode_12.2/Xcode_12.2.xip).
-+1. If generating on macOS for Apple Silicon (cross-compiling), make sure to have
-+   at least [Xcode 12.2](https://download.developer.apple.com/Developer_Tools/Xcode_12.2/Xcode_12.2.xip).
- 
--   In addition the aarch64 Rust target will need to be installed via: `rustup target add aarch64-apple-darwin`
-+   The aarch64 Rust target will need to be installed via:
-+   `rustup target add aarch64-apple-darwin`
- 
- 2. If generating on Windows 10, Visual Studio 2019 is required.  Please follow
-    the install instructions from [here](https://firefox-source-docs.mozilla.org/setup/windows_build.html)
-@@ -14,86 +15,85 @@
-    - MSVC v142 - VS2019 C++ ARM64 build tools
- 
-    "Debugging Tools for Windows" is also required.
--   - Under `Settings -> Apps` search for "Windows Software Development Kit" with the version
--   number 10.0.19041.685.
-+   - Under `Settings -> Apps` search for "Windows Software Development Kit" with
-+     the version number 10.0.19041.685.
-    - select Modify (and allow the installer to modify)
-    - select Change and then click Next
-    - select "Debugging Tools for Windows" and then click Change.
- 
--   And the aarch64 Rust target will need to be installed via: `rustup target add aarch64-pc-windows-msvc`
-+   The aarch64 Rust target will need to be installed via:
-+   `rustup target add aarch64-pc-windows-msvc`
- 
--3. See information in `third_party/libwebrtc/README.mozilla` for the proper revision of libwebrtc
-+3. See information in `third_party/libwebrtc/README.mozilla` for the proper
-+   revision of libwebrtc
- 
-         libwebrtc updated from commit https://github.com/mozilla/libwebrtc/archive/149d693483e9055f574d9d65b01fe75a186b654b.tar.gz on 2020-11-30T15:48:48.472088.
-         third_party updated from commit https://chromium.googlesource.com/chromium/src/third_party/+archive/5dc5a4a45df9592baa8e8c5f896006d9193d8e45.tar.gz on 2020-11-30T17:00:15.612630.
- 
--   In our current case, the revision is `149d693483e9055f574d9d65b01fe75a186b654b` which
--   corresponds to:
-+   In our current case, the revision is `149d693483e9055f574d9d65b01fe75a186b654b`
-+   which corresponds to:
- 
-         mozilla-modifications-rel86
- 
--4. Clone Mozilla's version of libwebrtc from [libwebrtc](https://github.com/mozilla/libwebrtc)
-+   This commit was made on `Thu Nov 19 14:14:00 2020`.
- 
--        git clone https://github.com/mozilla/libwebrtc moz-libwebrtc
--        export MOZ_LIBWEBRTC=`pwd`/moz-libwebrtc
--        (cd moz-libwebrtc ; git checkout mozilla-modifications-rel86)
-+4. Download a version of the `gn` executable that corresponds to
-+    `Thu Nov 19 14:14:00 2020`.  In our case, that is version `1889 (8fe02009)`.
-+   
-+   - [Win](https://chrome-infra-packages.appspot.com/p/gn/gn/windows-amd64/+/e_UmTHedzuu4zJ2gdpW8jrFFNnzIhThljx3jn3RMlVsC)
-+   - [Linux](https://chrome-infra-packages.appspot.com/p/gn/gn/linux-amd64/+/bvBFKgehaepiKy_YhFnbiOpF38CK26N2OyE1R1jXof0C)
-+   - [macOS](https://chrome-infra-packages.appspot.com/p/gn/gn/mac-amd64/+/nXvMRpyJhLhisAcnRmU5s9UZqovzMAhKAvWjax-swioC)
- 
--   Note that branch was made on `Thu Nov 19 14:14:00 2020`
-+   Find the downloaded `.zip` file, unzip and export the location of the
-+   executable:
- 
--5. Clone `depot_tools` from [depot_tools](https://chromium.googlesource.com/chromium/tools/depot_tools.git)
-+        unzip gn-mac-amd64.zip && export GN=`pwd`/gn
-+        unzip gn-windows-amd64.zip && export GN=`pwd`/gn.exe
-+        unzip gn-linux-amd64.zip && export GN=`pwd`/gn
- 
--        git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
--        export DEPOT_TOOLS=`pwd`/depot_tools
-+   On platforms that don't have pre-built `gn` executables, `ninja` and `gn` can
-+   be easily built:
- 
--   If generating files on Windows, the following steps must be completed
--   from a traditional Windows Cmd prompt (cmd.exe) launched from the start
--   menu or search bar.  This allows `gclient` to properly bootstrap the
--   required python setup.
-+        git clone https://github.com/ninja-build/ninja.git
-+        git clone https://gn.googlesource.com/gn
-+        (cd gn && git checkout 8fe02009)
-+        (cd ninja && ./configure.py --bootstrap)
-+        (export NINJA=`pwd`/ninja/ninja ; cd gn && python build/gen.py && $NINJA -C out)
-+        export GN=`pwd`/gn/out/gn
- 
--        cd {depot_tools directory}
--        set PATH=%CD%;%PATH%
--        set DEPOT_TOOLS_WIN_TOOLCHAIN=0
--        set vs2019_install="c:\Program Files (x86)\Microsoft Visual Studio\2019\Community"
--        gclient
--        exit
-+   On OpenBSD, a slightly newer version of `gn` is needed in order to build:
- 
--   Now, we need to checkout a revision of `depot_tools` that corresponds to the date of
--   our libwebrtc branch.  The closest `depot_tools` commit to `Thu Nov 19 14:14:00 2020` is
--   `e7d1862b155ac3ccbef72c4d70629b5c88ffcb32`.  There is additional information on how to
--   more automatically determine this [here](https://chromium.googlesource.com/chromium/src/+/master/docs/building_old_revisions.md).
-+        (cd gn && git checkout 31f2bba8)
- 
--        (cd depot_tools ; git checkout e7d1862b155ac3ccbef72c4d70629b5c88ffcb32 )
-+5. Clone `depot_tools` from [depot_tools](https://chromium.googlesource.com/chromium/tools/depot_tools.git)
- 
--6. It is necessary to let `depot_tools` pull information into the `libwebrtc` tree as well.  This can take a while.
-+        git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
-+        export DEPOT_TOOLS=`pwd`/depot_tools
- 
--        (cd moz-libwebrtc ; \
--         export PATH=$DEPOT_TOOLS:$PATH ; \
--         export DEPOT_TOOLS_UPDATE=0 ; \
--         export DEPOT_TOOLS_WIN_TOOLCHAIN=0 ; \
--         gclient config https://github.com/mozilla/libwebrtc && \
--         gclient sync -D --force --reset --with_branch_heads \
--        )
--  
--    Note that if one uses `gclient` sync with a different output directory `$MOZ_LIBWEBRTC_GIT`
--    must be set to the original clone directory, and `$MOZ_LIBWEBRTC` needs to be set to the
--    directory created by `gclient sync`.
-+   Now, we need to checkout a revision of `depot_tools` that corresponds to the
-+   date of our libwebrtc branch.  The closest `depot_tools` commit to
-+   `Thu Nov 19 14:14:00 2020` is `e7d1862b155ac3ccbef72c4d70629b5c88ffcb32`.
-+   There is additional information on how to more automatically determine this
-+   [here](https://chromium.googlesource.com/chromium/src/+/master/docs/building_old_revisions.md).
-+
-+        (cd depot_tools ; git checkout e7d1862b155ac3ccbef72c4d70629b5c88ffcb32 )
- 
--7. Now it is time to generate the build files.  The script should be run from the top
--directory of our firefox tree.
-+6. It is time to generate the build files.  The script should be run from the
-+   top directory of our firefox tree.
- 
--        ./dom/media/webrtc/third_party_build/gn-configs/generate-gn-build-files.sh
-+        bash ./dom/media/webrtc/third_party_build/gn-configs/generate-gn-build-files.sh
- 
--   Debugging the generate script itself may prove useful, and one can do this by setting the DEBUG_GEN environment
--   variable to a non-empty value. This will print everything that the script executes.
-+   Debugging the generate script itself may prove useful, and one can do this by
-+   setting the DEBUG_GEN environment variable to a non-empty value. This will 
-+   print everything that the script executes.
- 
--8. Checkin all the generated/modified files and try your build!
-+7. Checkin all the generated/modified files and try your build!
- 
- # Adding new configurations to the build
- 
--- Each new platform/architecture will require 2 new mozconfig files,
--  one for the debug build and one for the non-debug build.  The
--  filenames follow the same pattern as the generated json files,
--  `a-b-c-d.mozconfig` where:
-+- Each new platform/architecture will require 2 new mozconfig files, one for the
-+  debug build and one for the non-debug build.  The filenames follow the same
-+  pattern as the generated json files, `a-b-c-d.mozconfig` where:
-   - a = generating cpu (example: x64)
-   - b = debug (True / False)
-   - c = target cpu (example: x64 / arm64)
-@@ -103,9 +103,9 @@ directory of our firefox tree.
- - The new configs must be added to the appropriate platform section in
-   `generate-gn-build-files.sh`.
- 
--**Note:** when adding new mozconfig files, especially for linux/android
--configs, it is important to include the `ac_add_options
----enable-bootstrap`.  This ensures switching archtectures for
--"cross-compiled" generation works properly.  For example, when generating
--`x86` or `arm64` linux json files, it would be necessary to install additional
--libraries in order for the configure step to complete.
-+**Note:** when adding new mozconfig files, especially for linux/android configs,
-+it is important to include the `ac_add_options --enable-bootstrap`.  This
-+ensures switching archtectures for "cross-compiled" generation works properly.
-+For example, when generating `x86` or `arm64` linux json files, it would be
-+necessary to install additional libraries in order for the configure step to
-+complete.
-diff --git a/dom/media/webrtc/third_party_build/gn-configs/generate-gn-build-files.sh b/dom/media/webrtc/third_party_build/gn-configs/generate-gn-build-files.sh
-index 4452b0ce76aeb..8d1acbf783514 100755
---- dom/media/webrtc/third_party_build/gn-configs/generate-gn-build-files.sh
-+++ dom/media/webrtc/third_party_build/gn-configs/generate-gn-build-files.sh
-@@ -8,33 +8,15 @@ if [ ! "x$DEBUG_GEN" = "x" ]; then
-   set -x
- fi
- 
--if [ "x$MOZ_LIBWEBRTC" = "x" ]; then
--  echo "MOZ_LIBWEBRTC is not defined, see README.md"
-+if [ "x$GN" = "x" ]; then
-+  echo "GN is not defined, see README.md"
-   exit
- fi
- 
--if [ -d $MOZ_LIBWEBRTC ]; then
--  echo "MOZ_LIBWEBRTC is $MOZ_LIBWEBRTC"
-+if [ -f $GN ]; then
-+  echo "GN is $GN"
- else
--  echo "Path $MOZ_LIBWEBRTC is not found, see README.md"
--  exit
--fi
--
--# git clone and gclient checkout may be in different places 
--if [ "x$MOZ_LIBWEBRTC_GIT" = "x" ]; then
--  MOZ_LIBWEBRTC_GIT=$MOZ_LIBWEBRTC
--fi
--
--if [ ! -d $MOZ_LIBWEBRTC_GIT/.git ]; then
--  echo "No .git directory is found in the libwebrtc checkout, see README.md"
--  exit
--fi
--
--if [ ! -d $MOZ_LIBWEBRTC/src/buildtools ]; then
--  echo "Path $MOZ_LIBWEBRTC/src/buildtools is not found, see README.md"
--  echo "Please run the following commands from inside $MOZ_LIBWEBRTC:"
--  echo "\tgclient config https://github.com/mozilla/libwebrtc"
--  echo "\tgclient sync -D --force --reset --with_branch_heads # this make take a while"
-+  echo "Path $GN is not found, see README.md"
-   exit
- fi
- 
-@@ -115,21 +97,6 @@ fi
- export PATH=$DEPOT_TOOLS:$PATH
- export DEPOT_TOOLS_UPDATE=0
- 
--# Symlink in the buildtools and .git directories from our copy of libwebrtc.
--if [ -L ./third_party/libwebrtc/buildtools ]; then
--  rm ./third_party/libwebrtc/buildtools
--elif [ -d ./third_party/libwebrtc/buildtools ]; then
--  rm -rf ./third_party/libwebrtc/buildtools
--fi
--ln -s $MOZ_LIBWEBRTC/src/buildtools ./third_party/libwebrtc/
--
--if [ -L ./third_party/libwebrtc/.git ]; then
--  rm ./third_party/libwebrtc/.git
--elif [ -d ./third_party/libwebrtc/.git ]; then
--  rm -rf ./third_party/libwebrtc/.git
--fi
--ln -s $MOZ_LIBWEBRTC_GIT/.git ./third_party/libwebrtc/
--
- CONFIG_DIR=dom/media/webrtc/third_party_build/gn-configs
- echo "CONFIG_DIR is $CONFIG_DIR"
-