Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Release Notes (soon): https://www.mozilla.org/en-US/firefox/97.0/releasenotes/ PR: 261642
- Loading branch information
1 parent
b6643bf
commit a012dd6
Showing
11 changed files
with
20,249 additions
and
253,473 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.