Skip to content

Commit

Permalink
www/firefox: update to 97.0 (rc1)
Browse files Browse the repository at this point in the history
  • Loading branch information
ekhramtsov authored and moench-tegeder committed Feb 1, 2022
1 parent b6643bf commit a012dd6
Show file tree
Hide file tree
Showing 11 changed files with 20,249 additions and 253,473 deletions.
3 changes: 3 additions & 0 deletions Mk/bsd.gecko.mk
Expand Up @@ -167,6 +167,9 @@ pixman_MOZ_OPTIONS= --enable-system-pixman

png_LIB_DEPENDS= libpng.so:graphics/png
png_MOZ_OPTIONS= --with-system-png=${LOCALBASE}
.if ${MOZILLA_VER:R:R} >= 97
png_MOZ_OPTIONS= --with-system-png
.endif

sqlite_LIB_DEPENDS= libsqlite3.so:databases/sqlite3
sqlite_MOZ_OPTIONS= --enable-system-sqlite
Expand Down
4 changes: 2 additions & 2 deletions www/firefox/Makefile
@@ -1,7 +1,7 @@
# Created by: Alan Eldridge <alane@FreeBSD.org>

PORTNAME= firefox
DISTVERSION= 96.0.3
DISTVERSION= 97.0
PORTEPOCH= 2
CATEGORIES= www
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \
Expand All @@ -12,7 +12,7 @@ MAINTAINER= gecko@FreeBSD.org
COMMENT= Web browser based on the browser portion of Mozilla

BUILD_DEPENDS= nspr>=4.32:devel/nspr \
nss>=3.73:security/nss \
nss>=3.74:security/nss \
icu>=70.1:devel/icu \
libevent>=2.1.8:devel/libevent \
harfbuzz>=2.9.1:print/harfbuzz \
Expand Down
6 changes: 3 additions & 3 deletions www/firefox/distinfo
@@ -1,3 +1,3 @@
TIMESTAMP = 1643336011
SHA256 (firefox-96.0.3.source.tar.xz) = 1a741d6fcf20e6833a90169f41d29141ea4610f58b848e06091a683af6304dea
SIZE (firefox-96.0.3.source.tar.xz) = 406721708
TIMESTAMP = 1643713139
SHA256 (firefox-97.0.source.tar.xz) = 7a98c83d552ffde2b858fa288778c6d44d0077c3a9488293280184ee856420ee
SIZE (firefox-97.0.source.tar.xz) = 487369236
2 changes: 0 additions & 2 deletions www/firefox/files/patch-bug1640982
Expand Up @@ -2,8 +2,6 @@ Unbreak build with Rust 1.45.0

error: options `-C embed-bitcode=no` and `-C lto` are incompatible

--- config/makefiles/rust.mk.orig 2020-05-12 09:36:22 UTC

diff --git config/makefiles/rust.mk config/makefiles/rust.mk
index 75570d3..94ec33f 100644
--- config/makefiles/rust.mk
Expand Down
4 changes: 2 additions & 2 deletions www/firefox/files/patch-bug1664115
Expand Up @@ -10,10 +10,10 @@ created by libcubeb.
#include "Tracing.h"
#include "webaudio/blink/DenormalDisabler.h"
-#include "AudioThreadRegistry.h"
#include "mozilla/StaticPrefs_media.h"

// Use abort() instead of exception in SoundTouch.
#define ST_NO_EXCEPTION_HANDLING 1
@@ -140,9 +139,7 @@
@@ -141,9 +140,7 @@ AudioStream::AudioStream(DataSource& aSource)
mTimeStretcher(nullptr),
mState(INITIALIZED),
mDataSource(aSource),
Expand Down
249 changes: 249 additions & 0 deletions www/firefox/files/patch-bug1749604
@@ -0,0 +1,249 @@
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"

14 changes: 7 additions & 7 deletions www/firefox/files/patch-bug847568
Expand Up @@ -28,9 +28,9 @@ diff --git dom/base/moz.build dom/base/moz.build
index d390adf..4508f19 100644
--- dom/base/moz.build
+++ dom/base/moz.build
@@ -567,6 +567,9 @@ FINAL_LIBRARY = "xul"
if CONFIG["MOZ_X11"]:
CXXFLAGS += CONFIG["TK_CFLAGS"]
@@ -576,6 +576,9 @@ FINAL_LIBRARY = "xul"
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"]

+if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
+ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
Expand Down Expand Up @@ -215,9 +215,9 @@ diff --git old-configure.in old-configure.in
index d147957..d332b34 100644
--- old-configure.in
+++ old-configure.in
@@ -2217,6 +2217,27 @@ dnl ========================================================

AC_SUBST(MOZ_LINUX_32_SSE2_STARTUP_ERROR)
@@ -1335,6 +1335,27 @@ fi
AC_DEFINE_UNQUOTED(MOZ_MACBUNDLE_ID,$MOZ_MACBUNDLE_ID)
AC_SUBST(MOZ_MACBUNDLE_ID)

+dnl ========================================================
+dnl Check for graphite2
Expand All @@ -241,7 +241,7 @@ index d147957..d332b34 100644
+fi
+
dnl ========================================================
dnl Check for pixman and cairo
dnl = Child Process Name for IPC
dnl ========================================================
diff --git toolkit/library/moz.build toolkit/library/moz.build
index 2c3f869..e8a9d23 100644
Expand Down

0 comments on commit a012dd6

Please sign in to comment.