[tbb-commits] [Git][tpo/applications/tor-browser-build][main] 5 commits: Bug 40745: Allow customizing MOZ_APP_BASENAME

Pier Angelo Vendrame (@pierov) git at gitlab.torproject.org
Thu Jan 26 16:43:33 UTC 2023



Pier Angelo Vendrame pushed to branch main at The Tor Project / Applications / tor-browser-build


Commits:
499e5d26 by Pier Angelo Vendrame at 2023-01-26T17:35:56+01:00
Bug 40745: Allow customizing MOZ_APP_BASENAME

MOZ_APP_BASENAME has direct effects on directory and file names, too.
So, we need to adjust the firefox project to use the custom names.

- - - - -
c8f30851 by Pier Angelo Vendrame at 2023-01-26T17:36:04+01:00
Bug 40742: Create placeholder files for Privacy Browser installers

Create placeholder files for the NSIS installer and for the DMG.

- - - - -
8b16afc6 by Pier Angelo Vendrame at 2023-01-26T17:37:41+01:00
Bug 40742: Add Privacy Browser targets

Add the needed targets needed to build privacy browser.

- - - - -
87db400a by Pier Angelo Vendrame at 2023-01-26T17:37:41+01:00
Bug 40753: Do not copy mar tools when the updater is disabled

In tor-browser#41587 we have disabled the updater for Base Browser.
However, this also disable the compilation of mar tools, so we should
make their copy conditional, which this commit does.

- - - - -
ba13fa7f by Pier Angelo Vendrame at 2023-01-26T17:37:41+01:00
Bug 40754: Provide uBlock Origin to Privacy Browser

- - - - -


19 changed files:

- .gitignore
- Makefile
- README
- doc/MAKEFILE.txt
- + projects/browser/Bundle-Data/PrivacyBrowser.dmg/.DS_Store
- + projects/browser/Bundle-Data/PrivacyBrowser.dmg/.VolumeIcon.icns
- + projects/browser/Bundle-Data/PrivacyBrowser.dmg/.background/background.png
- projects/browser/RelativeLink/start-browser
- projects/browser/build
- projects/browser/config
- projects/browser/windows-installer/basebrowser.nsi
- + projects/browser/windows-installer/privacybrowser.ico
- + projects/browser/windows-installer/privacybrowser.nsi
- projects/browser/windows-installer/torbrowser.nsi
- projects/firefox/build
- projects/firefox/config
- projects/firefox/start-firefox
- projects/release/config
- rbm.conf


Changes:

=====================================
.gitignore
=====================================
@@ -4,7 +4,13 @@
 /out
 /torbrowser
 /basebrowser
+/privacybrowser
 /testbuild
 /rbm.local.conf
 /logs
 /tmp
+
+# Old build directories, let's keep them anyway
+/release
+/alpha
+/nightly


=====================================
Makefile
=====================================
@@ -180,103 +180,43 @@ torbrowser-testbuild-macos-aarch64: submodule-update
 torbrowser-testbuild-src: submodule-update
 	$(rbm) build release --target testbuild --target browser-src-testbuild --target torbrowser
 
-signtag-release: submodule-update
-	$(rbm) build release --step signtag --target release --target torbrowser
-
-signtag-alpha: submodule-update
-	$(rbm) build release --step signtag --target alpha --target torbrowser
-
-incrementals-release: submodule-update
+torbrowser-incrementals-release: submodule-update
 	$(rbm) build release --step update_responses_config --target release --target create_unsigned_incrementals --target torbrowser
 	tools/update-responses/download_missing_versions release
 	tools/update-responses/gen_incrementals release
 	$(rbm) build release --step hash_incrementals --target release --target torbrowser
 
-incrementals-alpha: submodule-update
+torbrowser-incrementals-alpha: submodule-update
 	$(rbm) build release --step update_responses_config --target alpha --target create_unsigned_incrementals --target torbrowser
 	tools/update-responses/download_missing_versions alpha
 	tools/update-responses/gen_incrementals alpha
 	$(rbm) build release --step hash_incrementals --target alpha --target torbrowser
 
-incrementals-nightly: submodule-update
+torbrowser-incrementals-nightly: submodule-update
 	$(rbm) build release --step update_responses_config --target nightly --target torbrowser
 	NO_CODESIGNATURE=1 tools/update-responses/gen_incrementals nightly
 	$(rbm) build release --step hash_incrementals --target nightly --target torbrowser
 
-update_responses-release: submodule-update
+torbrowser-update_responses-release: submodule-update
 	$(rbm) build release --step update_responses_config --target release --target signed --target torbrowser
 	$(rbm) build release --step create_update_responses_tar --target release --target signed --target torbrowser
 
-update_responses-alpha: submodule-update
+torbrowser-update_responses-alpha: submodule-update
 	$(rbm) build release --step update_responses_config --target alpha --target signed --target torbrowser
 	$(rbm) build release --step create_update_responses_tar --target alpha --target signed --target torbrowser
 
-dmg2mar-release: submodule-update
+torbrowser-dmg2mar-release: submodule-update
 	$(rbm) build release --step update_responses_config --target release --target signed --target torbrowser
 	$(rbm) build release --step dmg2mar --target release --target signed --target torbrowser
 	tools/update-responses/download_missing_versions release
 	CHECK_CODESIGNATURE_EXISTS=1 MAR_SKIP_EXISTING=1 tools/update-responses/gen_incrementals release
 
-dmg2mar-alpha: submodule-update
+torbrowser-dmg2mar-alpha: submodule-update
 	$(rbm) build release --step update_responses_config --target alpha --target signed --target torbrowser
 	$(rbm) build release --step dmg2mar --target alpha --target signed --target torbrowser
 	tools/update-responses/download_missing_versions alpha
 	CHECK_CODESIGNATURE_EXISTS=1 MAR_SKIP_EXISTING=1 tools/update-responses/gen_incrementals alpha
 
-list_translation_updates-release:
-	$(rbm) showconf --target release --step list_updates translation list_updates
-
-list_translation_updates-alpha:
-	$(rbm) showconf --target alpha --step list_updates translation list_updates
-
-list_toolchain_updates-fenix: submodule-update
-	$(rbm) build fenix --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
-
-list_toolchain_updates-firefox-linux: submodule-update
-	$(rbm) build firefox --step list_toolchain_updates --target nightly --target torbrowser-linux-x86_64
-
-list_toolchain_updates-firefox-windows: submodule-update
-	$(rbm) build firefox --step list_toolchain_updates --target nightly --target torbrowser-windows-x86_64
-
-list_toolchain_updates-firefox-macos: submodule-update
-	$(rbm) build firefox --step list_toolchain_updates --target nightly --target torbrowser-macos
-
-list_toolchain_updates-android-components: submodule-update
-	$(rbm) build android-components --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
-
-list_toolchain_updates-application-services: submodule-update
-	$(rbm) build application-services --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
-
-list_toolchain_updates-geckoview: submodule-update
-	$(rbm) build geckoview --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
-
-create_glean_deps_tarball: submodule-update
-	 $(rbm) build glean --step create_glean_deps_tarball --target alpha --target torbrowser-android-armv7
-
-create_glean_deps_tarball-with_torsocks: submodule-update
-	$(rbm) build glean --step create_glean_deps_tarball --target alpha --target torbrowser-android-armv7 --target with_torsocks
-
-get_gradle_dependencies_list-fenix: submodule-update
-	$(rbm) build fenix --step get_gradle_dependencies_list --target nightly --target torbrowser-android-armv7
-
-get_gradle_dependencies_list-application-services: submodule-update
-	$(rbm) build application-services --step get_gradle_dependencies_list --target nightly --target torbrowser-android-armv7
-
-get_gradle_dependencies_list-android-components: submodule-update
-	$(rbm) build android-components --step get_gradle_dependencies_list --target nightly --target torbrowser-android-armv7
-
-cargo_vendor-application-services: submodule-update
-	$(rbm) build application-services --step cargo_vendor --target nightly --target torbrowser-android-armv7
-
-cargo_vendor-cbindgen-android: submodule-update
-	$(rbm) build cbindgen --step cargo_vendor --target nightly --target torbrowser-android-armv7
-
-cargo_vendor-cbindgen: submodule-update
-	$(rbm) build cbindgen --step cargo_vendor --target nightly --target torbrowser-linux-x86_64
-
-cargo_vendor-uniffi-rs: submodule-update
-	$(rbm) build uniffi-rs --step cargo_vendor --target nightly --target torbrowser-linux-x86_64
-
 
 ########################
 # Base Browser Targets #
@@ -457,6 +397,197 @@ basebrowser-testbuild-src: submodule-update
 	$(rbm) build release --target testbuild --target browser-src-testbuild --target basebrowser
 
 
+###########################
+# Privacy Browser Targets #
+###########################
+
+privacybrowser-release: submodule-update
+	$(rbm) build release --target release --target browser-all-desktop --target privacybrowser
+
+privacybrowser-release-desktop: submodule-update
+	$(rbm) build release --target release --target browser-all-desktop --target privacybrowser
+
+privacybrowser-release-linux-x86_64: submodule-update
+	$(rbm) build release --target release --target browser-linux-x86_64 --target privacybrowser
+
+privacybrowser-release-linux-x86_64-asan: submodule-update
+	$(rbm) build release --target release --target browser-linux-x86_64-asan --target privacybrowser
+
+privacybrowser-release-windows-x86_64: submodule-update
+	$(rbm) build release --target release --target browser-windows-x86_64 --target privacybrowser
+
+privacybrowser-release-macos: submodule-update
+	$(rbm) build release --target release --target browser-macos --target privacybrowser
+
+privacybrowser-release-src: submodule-update
+	$(rbm) build release --target release --target browser-src --target privacybrowser
+
+privacybrowser-alpha: submodule-update
+	$(rbm) build release --target alpha --target browser-all-desktop --target privacybrowser
+
+privacybrowser-alpha-desktop: submodule-update
+	$(rbm) build release --target alpha --target browser-all-desktop --target privacybrowser
+
+privacybrowser-alpha-linux-x86_64: submodule-update
+	$(rbm) build release --target alpha --target browser-linux-x86_64 --target privacybrowser
+
+privacybrowser-alpha-linux-x86_64-asan: submodule-update
+	$(rbm) build release --target alpha --target browser-linux-x86_64-asan --target privacybrowser
+
+privacybrowser-alpha-windows-x86_64: submodule-update
+	$(rbm) build release --target alpha --target browser-windows-x86_64 --target privacybrowser
+
+privacybrowser-alpha-macos: submodule-update
+	$(rbm) build release --target alpha --target browser-macos --target privacybrowser
+
+privacybrowser-alpha-src: submodule-update
+	$(rbm) build release --target alpha --target browser-src --target privacybrowser
+
+privacybrowser-nightly: submodule-update
+	$(rbm) build release --target nightly --target browser-all-desktop --target privacybrowser
+
+privacybrowser-nightly-desktop: submodule-update
+	$(rbm) build release --target nightly --target browser-all-desktop --target privacybrowser
+
+privacybrowser-nightly-linux-x86_64: submodule-update
+	$(rbm) build release --target nightly --target browser-linux-x86_64 --target privacybrowser
+
+privacybrowser-nightly-linux-x86_64-asan: submodule-update
+	$(rbm) build release --target nightly --target browser-linux-x86_64-asan --target privacybrowser
+
+privacybrowser-nightly-windows-x86_64: submodule-update
+	$(rbm) build release --target nightly --target browser-windows-x86_64 --target privacybrowser
+
+privacybrowser-nightly-macos: submodule-update
+	$(rbm) build release --target nightly --target browser-macos --target privacybrowser
+
+privacybrowser-nightly-src: submodule-update
+	$(rbm) build release --target nightly --target browser-src --target privacybrowser
+
+privacybrowser-testbuild: submodule-update
+	$(rbm) build release --target testbuild --target browser-all-desktop --target privacybrowser
+
+privacybrowser-testbuild-desktop: submodule-update
+	$(rbm) build release --target testbuild --target browser-all-desktop --target privacybrowser
+
+privacybrowser-testbuild-linux-x86_64: submodule-update
+	$(rbm) build release --target testbuild --target browser-linux-x86_64 --target privacybrowser
+
+privacybrowser-testbuild-linux-x86_64-asan: submodule-update
+	$(rbm) build release --target testbuild --target browser-linux-x86_64-asan --target privacybrowser
+
+privacybrowser-testbuild-windows-x86_64: submodule-update
+	$(rbm) build release --target testbuild --target browser-windows-x86_64 --target privacybrowser
+
+privacybrowser-testbuild-macos: submodule-update
+	$(rbm) build release --target testbuild --target browser-macos --target privacybrowser
+
+privacybrowser-testbuild-macos-x86_64: submodule-update
+	$(rbm) build release --target testbuild --target browser-macos-x86_64 --target privacybrowser
+
+privacybrowser-testbuild-macos-aarch64: submodule-update
+	$(rbm) build release --target testbuild --target browser-macos-aarch64 --target privacybrowser
+
+privacybrowser-testbuild-src: submodule-update
+	$(rbm) build release --target testbuild --target browser-src-testbuild --target privacybrowser
+
+privacybrowser-incrementals-release: submodule-update
+	$(rbm) build release --step update_responses_config --target release --target create_unsigned_incrementals --target privacybrowser
+	tools/update-responses/download_missing_versions release
+	tools/update-responses/gen_incrementals release
+	$(rbm) build release --step hash_incrementals --target release --target privacybrowser
+
+privacybrowser-incrementals-alpha: submodule-update
+	$(rbm) build release --step update_responses_config --target alpha --target create_unsigned_incrementals --target privacybrowser
+	tools/update-responses/download_missing_versions alpha
+	tools/update-responses/gen_incrementals alpha
+	$(rbm) build release --step hash_incrementals --target alpha --target privacybrowser
+
+privacybrowser-incrementals-nightly: submodule-update
+	$(rbm) build release --step update_responses_config --target nightly --target privacybrowser
+	NO_CODESIGNATURE=1 tools/update-responses/gen_incrementals nightly
+	$(rbm) build release --step hash_incrementals --target nightly --target privacybrowser
+
+privacybrowser-update_responses-release: submodule-update
+	$(rbm) build release --step update_responses_config --target release --target signed --target privacybrowser
+	$(rbm) build release --step create_update_responses_tar --target release --target signed --target privacybrowser
+
+privacybrowser-update_responses-alpha: submodule-update
+	$(rbm) build release --step update_responses_config --target alpha --target signed --target privacybrowser
+	$(rbm) build release --step create_update_responses_tar --target alpha --target signed --target privacybrowser
+
+privacybrowser-dmg2mar-release: submodule-update
+	$(rbm) build release --step update_responses_config --target release --target signed --target privacybrowser
+	$(rbm) build release --step dmg2mar --target release --target signed --target privacybrowser
+	tools/update-responses/download_missing_versions release
+	CHECK_CODESIGNATURE_EXISTS=1 MAR_SKIP_EXISTING=1 tools/update-responses/gen_incrementals release
+
+privacybrowser-dmg2mar-alpha: submodule-update
+	$(rbm) build release --step update_responses_config --target alpha --target signed --target privacybrowser
+	$(rbm) build release --step dmg2mar --target alpha --target signed --target privacybrowser
+	tools/update-responses/download_missing_versions alpha
+	CHECK_CODESIGNATURE_EXISTS=1 MAR_SKIP_EXISTING=1 tools/update-responses/gen_incrementals alpha
+
+
+############################
+# Toolchain Update Targets #
+############################
+
+list_translation_updates-release:
+	$(rbm) showconf --target release --step list_updates translation list_updates
+
+list_translation_updates-alpha:
+	$(rbm) showconf --target alpha --step list_updates translation list_updates
+
+list_toolchain_updates-fenix: submodule-update
+	$(rbm) build fenix --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
+
+list_toolchain_updates-firefox-linux: submodule-update
+	$(rbm) build firefox --step list_toolchain_updates --target nightly --target torbrowser-linux-x86_64
+
+list_toolchain_updates-firefox-windows: submodule-update
+	$(rbm) build firefox --step list_toolchain_updates --target nightly --target torbrowser-windows-x86_64
+
+list_toolchain_updates-firefox-macos: submodule-update
+	$(rbm) build firefox --step list_toolchain_updates --target nightly --target torbrowser-macos
+
+list_toolchain_updates-android-components: submodule-update
+	$(rbm) build android-components --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
+
+list_toolchain_updates-application-services: submodule-update
+	$(rbm) build application-services --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
+
+list_toolchain_updates-geckoview: submodule-update
+	$(rbm) build geckoview --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
+
+create_glean_deps_tarball: submodule-update
+	 $(rbm) build glean --step create_glean_deps_tarball --target alpha --target torbrowser-android-armv7
+
+create_glean_deps_tarball-with_torsocks: submodule-update
+	$(rbm) build glean --step create_glean_deps_tarball --target alpha --target torbrowser-android-armv7 --target with_torsocks
+
+get_gradle_dependencies_list-fenix: submodule-update
+	$(rbm) build fenix --step get_gradle_dependencies_list --target nightly --target torbrowser-android-armv7
+
+get_gradle_dependencies_list-application-services: submodule-update
+	$(rbm) build application-services --step get_gradle_dependencies_list --target nightly --target torbrowser-android-armv7
+
+get_gradle_dependencies_list-android-components: submodule-update
+	$(rbm) build android-components --step get_gradle_dependencies_list --target nightly --target torbrowser-android-armv7
+
+cargo_vendor-application-services: submodule-update
+	$(rbm) build application-services --step cargo_vendor --target nightly --target torbrowser-android-armv7
+
+cargo_vendor-cbindgen-android: submodule-update
+	$(rbm) build cbindgen --step cargo_vendor --target nightly --target torbrowser-android-armv7
+
+cargo_vendor-cbindgen: submodule-update
+	$(rbm) build cbindgen --step cargo_vendor --target nightly --target torbrowser-linux-x86_64
+
+cargo_vendor-uniffi-rs: submodule-update
+	$(rbm) build uniffi-rs --step cargo_vendor --target nightly --target torbrowser-linux-x86_64
+
+
 ##################
 # Common Targets #
 ##################
@@ -464,6 +595,12 @@ basebrowser-testbuild-src: submodule-update
 submodule-update:
 	git submodule update --init
 
+signtag-release: submodule-update
+	$(rbm) build release --step signtag --target release --target torbrowser
+
+signtag-alpha: submodule-update
+	$(rbm) build release --step signtag --target alpha --target torbrowser
+
 fetch: submodule-update
 	$(rbm) fetch
 


=====================================
README
=====================================
@@ -96,9 +96,9 @@ mar file will be created. If you want to base your testbuild on the latest
 nightly code insted, rename rbm.local.conf.example to rbm.local.conf
 and adapt the torbrowser-testbuild option accordingly.
 
-Similar makefile targets exist for building Base Browser instead of
-Tor Browser. To build Base Browser, replace `torbrowser` by `basebrowser`
-in the target name.
+Similar makefile targets exist for building Base Browser and Privacy Browser
+instead of Tor Browser. To build Base Browser, replace `torbrowser` by
+`basebrowser` in the target name. For Privacy Browser, use `privacybrowser`.
 
 
 Updating git sources


=====================================
doc/MAKEFILE.txt
=====================================
@@ -75,6 +75,11 @@ basebrowser-*
 The same rules for building Tor Browser also exist for building
 Base Browser.
 
+privacybrowser-*
+----------------
+The same rules for building Tor Browser also exist for building
+Privacy Browser.
+
 fetch
 -----
 Fetch new commits from all components. This is useful when you want to


=====================================
projects/browser/Bundle-Data/PrivacyBrowser.dmg/.DS_Store
=====================================
Binary files /dev/null and b/projects/browser/Bundle-Data/PrivacyBrowser.dmg/.DS_Store differ


=====================================
projects/browser/Bundle-Data/PrivacyBrowser.dmg/.VolumeIcon.icns
=====================================
Binary files /dev/null and b/projects/browser/Bundle-Data/PrivacyBrowser.dmg/.VolumeIcon.icns differ


=====================================
projects/browser/Bundle-Data/PrivacyBrowser.dmg/.background/background.png
=====================================
Binary files /dev/null and b/projects/browser/Bundle-Data/PrivacyBrowser.dmg/.background/background.png differ


=====================================
projects/browser/RelativeLink/start-browser
=====================================
@@ -94,8 +94,8 @@ fi
 
 print_usage () {
     printf "\n[% c('var/Project_Name') %] Script Options\n"
-    printf "  --verbose         Display Tor and Firefox output in the terminal\n"
-    printf "  --log [file]      Record Tor and Firefox output in file (default: [% c('var/project-name') %].log)\n"
+    printf "  --verbose         Display [% IF c("var/tor-browser") -%]Tor and [% END -%]the browser output in the terminal\n"
+    printf "  --log [file]      Record [% IF c("var/tor-browser") -%]Tor and [% END -%]the browser output in file (default: [% c('var/project-name') %].log)\n"
     printf "  --detach          Detach from terminal and run [% c('var/Project_Name') %] in the background.\n"
     printf "  --register-app    Register [% c('var/Project_Name') %] as a desktop app for this user\n"
     printf "  --unregister-app  Unregister [% c('var/Project_Name') %] as a desktop app for this user\n"
@@ -356,22 +356,22 @@ cd "${HOME}"
 
 if [ "$show_usage" -eq 1 ]; then
     # Display Firefox help, then our help
-    [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./firefox \
+    [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./[% c('var/exe_name') %] \
         --class "[% c('var/Project_Name') %]" --name "[% c('var/Project_Name') %]" --help 2>/dev/null
     print_usage
 elif [ "$detach" -eq 1 ] ; then
-    [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./firefox \
+    [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./[% c('var/exe_name') %] \
         --class "[% c('var/Project_Name') %]" --name "[% c('var/Project_Name') %]" "${@}" > "$logfile" 2>&1 </dev/null &
     disown "$!"
 elif [ "$log_output" -eq 1 -a "$show_output" -eq 1 ]; then
-    [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./firefox \
+    [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./[% c('var/exe_name') %] \
         --class "[% c('var/Project_Name') %]" --name "[% c('var/Project_Name') %]" "${@}" 2>&1 </dev/null | \
         tee "$logfile"
 elif [ "$show_output" -eq 1 ]; then
-    [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./firefox \
+    [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./[% c('var/exe_name') %] \
         --class "[% c('var/Project_Name') %]" --name "[% c('var/Project_Name') %]" "${@}" < /dev/null
 else
-    [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./firefox \
+    [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./[% c('var/exe_name') %] \
         --class "[% c('var/Project_Name') %]" --name "[% c('var/Project_Name') %]" "${@}" > "$logfile" 2>&1 </dev/null
 fi
 


=====================================
projects/browser/build
=====================================
@@ -56,12 +56,17 @@ do
   mkdir -p "$tbdir/$EXTSPATH"
 done
 
-# Extract the MAR tools.
-unzip -d $rootdir $rootdir/[% c('input_files_by_name/firefox') %]/mar-tools-*.zip
-MARTOOLS=$rootdir/mar-tools
+[% IF c("var/updater_enabled") -%]
+  # Extract the MAR tools.
+  unzip -d $rootdir $rootdir/[% c('input_files_by_name/firefox') %]/mar-tools-*.zip
+  MARTOOLS=$rootdir/mar-tools
+[% END -%]
 
 mv [% c('input_files_by_name/noscript') %] "$TBDIR/$EXTSPATH/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi"
-[% IF !c("var/macos") -%]
+[% IF c("var/privacy-browser") -%]
+  mv [% c('input_files_by_name/ublock-origin') %] "$TBDIR/$EXTSPATH/uBlock0 at raymondhill.net.xpi"
+[% END -%]
+[% IF !c("var/macos") && c("var/tor-browser") -%]
   cp "$TBDIR/$EXTSPATH/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi" "$TBDIR/$PROFILEPATH/"
 [% END %]
 
@@ -291,10 +296,11 @@ done
   # mozpack.mozjar.JarReaderError: Central directory and file header mismatch. Corrupted archive?
   #
   # See https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/40439#note_2838724
-  mv "$TBDIR/$EXTSPATH/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi" $rootdir/ns.xpi
+  mkdir $rootdir/extensions
+  mv "$TBDIR/$EXTSPATH/"* $rootdir/extensions
   MOZ_AUTOMATION=1 $firefox_src/mach python $firefox_src/toolkit/mozapps/installer/unify.py "$TBDIR" "$TBDIR_AARCH64"
   mkdir -p "$TBDIR/$EXTSPATH"
-  mv $rootdir/ns.xpi "$TBDIR/$EXTSPATH/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi"
+  mv $rootdir/extensions/* "$TBDIR/$EXTSPATH/"
   rm -Rf "$TBDIR_AARCH64"
 [% END -%]
 
@@ -311,14 +317,15 @@ cat > "$scripts_dir/create-$PKG_DIR" << SCRIPT_EOF
 set -e
 cp -a ${TB_STAGE_DIR} $distdir/$PKG_DIR
 
-pushd "$TBDIR[% IF c("var/macos") %]/Contents/Resources/[% END %]"
-rm -f precomplete
-python $MARTOOLS/createprecomplete.py
-popd
-
+[% IF c("var/updater_enabled") -%]
+  pushd "$TBDIR[% IF c("var/macos") %]/Contents/Resources/[% END %]"
+  rm -f precomplete
+  python $MARTOOLS/createprecomplete.py
+  popd
+[% END -%]
 cd $distdir
 
-[% IF c("var/build_mar") -%]
+[% IF c("var/build_mar") && c("var/updater_enabled") -%]
   # Create full MAR file and compressed package.
   [% SET mar_file = c("var/project-name") _ '-' _ c("var/mar_osname") _ '-' _ c("var/torbrowser_version") _ '_${PKG_LOCALE}.mar' %]
   MAR=$MARTOOLS/mar \
@@ -352,7 +359,9 @@ cd $distdir
 rm -rf $distdir/${PKG_DIR}
 SCRIPT_EOF
 
-cp $rootdir/[% c('input_files_by_name/firefox') %]/mar-tools-*.zip "$OUTDIR"/
+[% IF c("var/updater_enabled") -%]
+  cp $rootdir/[% c('input_files_by_name/firefox') %]/mar-tools-*.zip "$OUTDIR"/
+[% END -%]
 [% IF c("var/linux-x86_64") -%]
   [% IF c("var/tor-browser") -%]
     cp $rootdir/[% c('input_files_by_name/firefox') %]/browser-debug.tar.xz "$OUTDIR"/[% c("var/project-name") %]-[% c("var/mar_osname") %]-debug.tar.xz


=====================================
projects/browser/config
=====================================
@@ -67,6 +67,9 @@ targets:
   basebrowser:
     var:
       prefs_file: 001-base-profile.js
+  privacybrowser:
+    var:
+      prefs_file: 001-base-profile.js
 
 input_files:
   - project: container-image
@@ -103,6 +106,10 @@ input_files:
   - URL: https://addons.mozilla.org/firefox/downloads/file/4050735/noscript-11.4.14.xpi
     name: noscript
     sha256sum: 14af6a3cbc269c045f2d950e1e4f7c29981b35a7abc61d2413f5bb8bd7311857
+  - URL: https://addons.mozilla.org/firefox/downloads/file/4047353/ublock_origin-1.46.0.xpi
+    name: ublock-origin
+    sha256sum: 6bf8af5266353fab5eabdc7476de026e01edfb7901b0430c5e539f6791f1edc8
+    enable: '[% c("var/privacy-browser") %]'
   - filename: 'gtk3-settings.ini'
     enable: '[% c("var/linux") %]'
   - project: hfsplus-tools


=====================================
projects/browser/windows-installer/basebrowser.nsi
=====================================
@@ -3,7 +3,7 @@
 ;released under Public Domain
 
 ;--------------------------------
-;Modern" UI
+;Modern UI
 
   !include "MUI2.nsh"
   !include "LogicLib.nsh"
@@ -11,16 +11,16 @@
 
 ;--------------------------------
 ;General
- 
+
   ; location of Base Browser bundle to put into installer
-  !define TBBSOURCE ".\Base Browser\"  
+  !define TBBSOURCE ".\Base Browser\"
 
   Name "Base Browser"
   OutFile "basebrowser-install.exe"
 
   ;Default installation folder
   InstallDir "$DESKTOP\Base Browser"
-  
+
   ;Best (but slowest) compression
   SetCompressor /SOLID lzma
   SetCompressorDictSize 32
@@ -117,11 +117,11 @@
 
 ;--------------------------------
 ;Reserve Files
-  
+
   ;If you are using solid compression, files that are required before
   ;the actual installation should be stored first in the data block,
   ;because this will make your installer start faster.
-  
+
   !insertmacro MUI_RESERVEFILE_LANGDLL
 
 ;--------------------------------
@@ -138,7 +138,7 @@ SectionEnd
 
 Function CreateShortcuts
 
-  CreateShortCut "$SMPROGRAMS\Start Base Browser.lnk" "$INSTDIR\Browser\firefox.exe" 
+  CreateShortCut "$SMPROGRAMS\Start Base Browser.lnk" "$INSTDIR\Browser\firefox.exe"
   CreateShortCut "$DESKTOP\Start Base Browser.lnk" "$INSTDIR\Browser\firefox.exe"
 
 FunctionEnd


=====================================
projects/browser/windows-installer/privacybrowser.ico
=====================================
Binary files /dev/null and b/projects/browser/windows-installer/privacybrowser.ico differ


=====================================
projects/browser/windows-installer/privacybrowser.nsi
=====================================
@@ -0,0 +1,180 @@
+;NSIS Installer for Privacy Browser
+;Written by Moritz Bartl
+;released under Public Domain
+
+;--------------------------------
+;Modern UI
+
+  !include "MUI2.nsh"
+  !include "LogicLib.nsh"
+  !include "WinVer.nsh"
+
+;--------------------------------
+;General
+
+  ; location of Privacy Browser bundle to put into installer
+  !define TBBSOURCE ".\Privacy Browser\"
+
+  Name "Privacy Browser"
+  OutFile "privacybrowser-install.exe"
+
+  ;Default installation folder
+  InstallDir "$DESKTOP\Privacy Browser"
+
+  ;Best (but slowest) compression
+  SetCompressor /SOLID lzma
+  SetCompressorDictSize 32
+
+  ;Request application privileges for Windows Vista
+  RequestExecutionLevel user
+
+;--------------------------------
+;Interface Configuration
+
+  !define MUI_ICON   "privacybrowser.ico"
+  !define MUI_ABORTWARNING
+
+;--------------------------------
+;Modern UI settings
+  !define MUI_FINISHPAGE_NOREBOOTSUPPORT     ; we don't require a reboot
+  !define MUI_FINISHPAGE_RUN
+  !define MUI_FINISHPAGE_RUN_FUNCTION "StartPrivacyBrowser"
+  !define MUI_FINISHPAGE_SHOWREADME ; misuse for option to create shortcut; less ugly than MUI_PAGE_COMPONENTS
+  !define MUI_FINISHPAGE_SHOWREADME_TEXT "&Add Start Menu && Desktop shortcuts"
+  !define MUI_FINISHPAGE_SHOWREADME_FUNCTION "CreateShortCuts"
+;--------------------------------
+;Pages
+
+  !define MUI_PAGE_CUSTOMFUNCTION_LEAVE CheckIfTargetDirectoryExists
+  !insertmacro MUI_PAGE_DIRECTORY
+  !insertmacro MUI_PAGE_INSTFILES
+  !insertmacro MUI_PAGE_FINISH
+
+;--------------------------------
+;Languages
+
+  !insertmacro MUI_LANGUAGE "English" ;first language is the default language
+  !insertmacro MUI_LANGUAGE "French"
+  !insertmacro MUI_LANGUAGE "German"
+  !insertmacro MUI_LANGUAGE "Spanish"
+  !insertmacro MUI_LANGUAGE "SpanishInternational"
+  !insertmacro MUI_LANGUAGE "SimpChinese"
+  !insertmacro MUI_LANGUAGE "TradChinese"
+  !insertmacro MUI_LANGUAGE "Japanese"
+  !insertmacro MUI_LANGUAGE "Korean"
+  !insertmacro MUI_LANGUAGE "Italian"
+  !insertmacro MUI_LANGUAGE "Dutch"
+  !insertmacro MUI_LANGUAGE "Danish"
+  !insertmacro MUI_LANGUAGE "Swedish"
+  !insertmacro MUI_LANGUAGE "Norwegian"
+  !insertmacro MUI_LANGUAGE "NorwegianNynorsk"
+  !insertmacro MUI_LANGUAGE "Finnish"
+  !insertmacro MUI_LANGUAGE "Greek"
+  !insertmacro MUI_LANGUAGE "Russian"
+  !insertmacro MUI_LANGUAGE "Portuguese"
+  !insertmacro MUI_LANGUAGE "PortugueseBR"
+  !insertmacro MUI_LANGUAGE "Polish"
+  !insertmacro MUI_LANGUAGE "Ukrainian"
+  !insertmacro MUI_LANGUAGE "Czech"
+  !insertmacro MUI_LANGUAGE "Slovak"
+  !insertmacro MUI_LANGUAGE "Croatian"
+  !insertmacro MUI_LANGUAGE "Bulgarian"
+  !insertmacro MUI_LANGUAGE "Hungarian"
+  !insertmacro MUI_LANGUAGE "Thai"
+  !insertmacro MUI_LANGUAGE "Romanian"
+  !insertmacro MUI_LANGUAGE "Latvian"
+  !insertmacro MUI_LANGUAGE "Macedonian"
+  !insertmacro MUI_LANGUAGE "Estonian"
+  !insertmacro MUI_LANGUAGE "Turkish"
+  !insertmacro MUI_LANGUAGE "Lithuanian"
+  !insertmacro MUI_LANGUAGE "Slovenian"
+  !insertmacro MUI_LANGUAGE "Serbian"
+  !insertmacro MUI_LANGUAGE "SerbianLatin"
+  !insertmacro MUI_LANGUAGE "Arabic"
+  !insertmacro MUI_LANGUAGE "Farsi"
+  !insertmacro MUI_LANGUAGE "Hebrew"
+  !insertmacro MUI_LANGUAGE "Indonesian"
+  !insertmacro MUI_LANGUAGE "Mongolian"
+  !insertmacro MUI_LANGUAGE "Luxembourgish"
+  !insertmacro MUI_LANGUAGE "Albanian"
+  !insertmacro MUI_LANGUAGE "Breton"
+  !insertmacro MUI_LANGUAGE "Belarusian"
+  !insertmacro MUI_LANGUAGE "Icelandic"
+  !insertmacro MUI_LANGUAGE "Malay"
+  !insertmacro MUI_LANGUAGE "Bosnian"
+  !insertmacro MUI_LANGUAGE "Kurdish"
+  !insertmacro MUI_LANGUAGE "Irish"
+  !insertmacro MUI_LANGUAGE "Uzbek"
+  !insertmacro MUI_LANGUAGE "Galician"
+  !insertmacro MUI_LANGUAGE "Afrikaans"
+  !insertmacro MUI_LANGUAGE "Catalan"
+  !insertmacro MUI_LANGUAGE "Esperanto"
+
+;--------------------------------
+;Reserve Files
+
+  ;If you are using solid compression, files that are required before
+  ;the actual installation should be stored first in the data block,
+  ;because this will make your installer start faster.
+
+  !insertmacro MUI_RESERVEFILE_LANGDLL
+
+;--------------------------------
+;Installer Sections
+
+Section "Privacy Browser" SecPB
+
+  SetOutPath "$INSTDIR"
+  File /r "${TBBSOURCE}\*.*"
+  SetOutPath "$INSTDIR\Browser"
+  CreateShortCut "$INSTDIR\Start Privacy Browser.lnk" "$INSTDIR\Browser\privacybrowser.exe"
+
+SectionEnd
+
+Function CreateShortcuts
+
+  CreateShortCut "$SMPROGRAMS\Start Privacy Browser.lnk" "$INSTDIR\Browser\privacybrowser.exe"
+  CreateShortCut "$DESKTOP\Start Privacy Browser.lnk" "$INSTDIR\Browser\privacybrowser.exe"
+
+FunctionEnd
+;--------------------------------
+;Installer Functions
+
+Function .onInit
+
+  ${IfNot} ${AtLeastWin7}
+    MessageBox MB_USERICON|MB_OK "Privacy Browser requires at least Windows 7"
+    SetErrorLevel 1
+    Quit
+  ${EndIf}
+
+  ; Don't install on systems that don't support SSE2. The parameter value of
+  ; 10 is for PF_XMMI64_INSTRUCTIONS_AVAILABLE which will check whether the
+  ; SSE2 instruction set is available.
+  System::Call "kernel32::IsProcessorFeaturePresent(i 10)i .R7"
+
+  ${If} "$R7" == "0"
+    MessageBox MB_OK|MB_ICONSTOP "Sorry, Privacy Browser can't be installed. This version of Privacy Browser requires a processor with SSE2 support."
+    Abort
+  ${EndIf}
+
+  !insertmacro MUI_LANGDLL_DISPLAY
+
+FunctionEnd
+
+;--------------------------------
+;Helper Functions
+
+Function CheckIfTargetDirectoryExists
+${If} ${FileExists} "$INSTDIR\*.*"
+  MessageBox MB_YESNO "The destination directory already exists. You can try to upgrade Privacy Browser, but if you run into any problems, use a new directory instead. Continue?" IDYES NoAbort
+    Abort
+  NoAbort:
+${EndIf}
+FunctionEnd
+
+
+Function StartPrivacyBrowser
+ExecShell "open" "$INSTDIR/Start Privacy Browser.lnk"
+FunctionEnd
+


=====================================
projects/browser/windows-installer/torbrowser.nsi
=====================================
@@ -3,7 +3,7 @@
 ;released under Public Domain
 
 ;--------------------------------
-;Modern" UI
+;Modern UI
 
   !include "MUI2.nsh"
   !include "LogicLib.nsh"
@@ -11,16 +11,16 @@
 
 ;--------------------------------
 ;General
- 
+
   ; location of Tor Browser bundle to put into installer
-  !define TBBSOURCE ".\Tor Browser\"  
+  !define TBBSOURCE ".\Tor Browser\"
 
   Name "Tor Browser"
   OutFile "torbrowser-install.exe"
 
   ;Default installation folder
   InstallDir "$DESKTOP\Tor Browser"
-  
+
   ;Best (but slowest) compression
   SetCompressor /SOLID lzma
   SetCompressorDictSize 32
@@ -117,11 +117,11 @@
 
 ;--------------------------------
 ;Reserve Files
-  
+
   ;If you are using solid compression, files that are required before
   ;the actual installation should be stored first in the data block,
   ;because this will make your installer start faster.
-  
+
   !insertmacro MUI_RESERVEFILE_LANGDLL
 
 ;--------------------------------
@@ -138,7 +138,7 @@ SectionEnd
 
 Function CreateShortcuts
 
-  CreateShortCut "$SMPROGRAMS\Start Tor Browser.lnk" "$INSTDIR\Browser\firefox.exe" 
+  CreateShortCut "$SMPROGRAMS\Start Tor Browser.lnk" "$INSTDIR\Browser\firefox.exe"
   CreateShortCut "$DESKTOP\Start Tor Browser.lnk" "$INSTDIR\Browser\firefox.exe"
 
 FunctionEnd


=====================================
projects/firefox/build
=====================================
@@ -175,8 +175,8 @@ export LANG=C.UTF-8
   [% IF c("var/tor-browser") -%]
         --with-tor-browser-version=[% c("var/torbrowser_version") %] \
         --enable-update-channel=[% c("var/channel") %] \
-        --with-branding=[% c("var/branding_directory") %] \
   [% END %] \
+  [% IF !c("var/base-browser") -%]--with-branding=browser/branding/[% c("var/branding_directory_prefix") %]-[% c("var/channel") %][% END %] \
   [% IF !c("var/rlbox") -%]--without-wasm-sandboxed-libraries[% END %]
 
 ./mach build --verbose
@@ -190,12 +190,12 @@ export LANG=C.UTF-8
 [% END %]
 
 [% IF c("var/macos") %]
-  cp -a obj-*/dist/firefox/* $distdir
+  cp -a obj-*/dist/[% c('var/exe_name') %]/* $distdir
   [% IF c("var/base-browser") -%]
     mv "$distdir/Firefox.app" "$distdir/[% c('var/Project_Name') %].app"
   [% END -%]
   # Remove firefox-bin (we don't use it, see ticket #10126)
-  rm -f "$distdir/[% c('var/Project_Name') %].app/Contents/MacOS/firefox-bin"
+  rm -f "$distdir/[% c('var/Project_Name') %].app/Contents/MacOS/[% c('var/exe_name') %]-bin"
 
   # Adjust the Info.plist file
   INFO_PLIST="$distdir/[% c('var/Project_Name') %].app/Contents/Info.plist"
@@ -208,21 +208,23 @@ export LANG=C.UTF-8
   [% IF c("var/linux-x86_64") && !c("var/asan") %]
     cp obj-*/testing/geckodriver/x86_64-unknown-linux-gnu/release/geckodriver $distdir
   [% END %]
-  cp -a obj-*/dist/firefox/* $distdir/Browser/
+  cp -a obj-*/dist/[% c('var/exe_name') %]/* $distdir/Browser/
   # Remove firefox-bin (we don't use it, see ticket #10126)
-  rm -f $distdir/Browser/firefox-bin
+  rm -f "$distdir/Browser/[% c('var/exe_name') %]-bin"
   # TODO: There goes FIPS-140.. We could upload these somewhere unique and
   # subsequent builds could test to see if they've been uploaded before...
   # But let's find out if it actually matters first..
   rm -f $distdir/Browser/*.chk
-  # Replace firefox by a wrapper script (#25485)
-  mv $distdir/Browser/firefox $distdir/Browser/firefox.real
-  mv $rootdir/start-firefox $distdir/Browser/firefox
-  chmod 755 $distdir/Browser/firefox
+  # Replace $exe_name by a wrapper script (#25485)
+  mv "$distdir/Browser/[% c('var/exe_name') %]" "$distdir/Browser/[% c('var/exe_name') %].real"
+  cat > "$distdir/Browser/[% c('var/exe_name') %]" << 'RBM_TB_EOF'
+[% INCLUDE 'start-firefox' -%]
+RBM_TB_EOF
+  chmod 755 "$distdir/Browser/[% c('var/exe_name') %]"
 [% END %]
 
 [% IF c("var/windows") %]
-  cp -a obj-*/dist/firefox/* $distdir/Browser/
+  cp -a obj-*/dist/[% c('var/exe_name') %]/* $distdir/Browser/
   [% IF c("var/windows-i686") %]
     cp -a /var/tmp/dist/fxc2/bin/d3dcompiler_47_32.dll $distdir/Browser/d3dcompiler_47.dll
   [% ELSE %]
@@ -230,46 +232,48 @@ export LANG=C.UTF-8
   [% END %]
 [% END %]
 
-# Make MAR-based update tools available for use during the bundle phase.
-# Note that mar and mbsdiff are standalone tools, compiled for the build
-# host's architecture.  We also include signmar, certutil, and the libraries
-# they require; these utilities and libraries are built for the target
-# architecture.
-MARTOOLS=$distdir/mar-tools
-mkdir -p $MARTOOLS
-cp -p config/createprecomplete.py $MARTOOLS/
-cp -p tools/update-packaging/*.sh $MARTOOLS/
-cp -p obj-*/dist/host/bin/mar $MARTOOLS/
-cp -p obj-*/dist/host/bin/mbsdiff $MARTOOLS/
-[% IF c("var/linux") || c("var/macos") %]
-  cp -p obj-*/dist/bin/signmar $MARTOOLS/
-  cp -p obj-*/dist/bin/certutil $MARTOOLS/
-  cp -p obj-*/dist/bin/modutil $MARTOOLS/
-  cp -p obj-*/dist/bin/pk12util $MARTOOLS/
-  cp -p obj-*/dist/bin/shlibsign $MARTOOLS/
-  [% IF c("var/linux") %]
-    NSS_LIBS="libfreeblpriv3.so libmozsqlite3.so libnss3.so libnssckbi.so libnssutil3.so libsmime3.so libsoftokn3.so libssl3.so"
-    NSPR_LIBS="libnspr4.so libplc4.so libplds4.so"
-  [% ELSE %]
-    NSS_LIBS="libfreebl3.dylib libmozglue.dylib libnss3.dylib libnssckbi.dylib libsoftokn3.dylib"
-    # No NSPR_LIBS for macOS
-    NSPR_LIBS=""
-  [% END %]
-  for LIB in $NSS_LIBS $NSPR_LIBS; do
-    cp -p obj-*/dist/bin/$LIB $MARTOOLS/
-  done
-[% END %]
-[% IF c("var/windows") %]
-  cp -p obj-*/dist/bin/signmar.exe $MARTOOLS/
-  cp -p obj-*/dist/bin/certutil.exe $MARTOOLS/
-  cp -p obj-*/dist/bin/modutil.exe $MARTOOLS/
-  cp -p obj-*/dist/bin/pk12util.exe $MARTOOLS/
-  cp -p obj-*/dist/bin/shlibsign.exe $MARTOOLS/
-  NSS_LIBS="freebl3.dll mozglue.dll nss3.dll nssckbi.dll softokn3.dll"
-  for LIB in $NSS_LIBS; do
+[% IF c("var/updater_enabled") -%]
+  # Make MAR-based update tools available for use during the bundle phase.
+  # Note that mar and mbsdiff are standalone tools, compiled for the build
+  # host's architecture.  We also include signmar, certutil, and the libraries
+  # they require; these utilities and libraries are built for the target
+  # architecture.
+  MARTOOLS=$distdir/mar-tools
+  mkdir -p $MARTOOLS
+  cp -p config/createprecomplete.py $MARTOOLS/
+  cp -p tools/update-packaging/*.sh $MARTOOLS/
+  cp -p obj-*/dist/host/bin/mar $MARTOOLS/
+  cp -p obj-*/dist/host/bin/mbsdiff $MARTOOLS/
+  [% IF c("var/linux") || c("var/macos") %]
+    cp -p obj-*/dist/bin/signmar $MARTOOLS/
+    cp -p obj-*/dist/bin/certutil $MARTOOLS/
+    cp -p obj-*/dist/bin/modutil $MARTOOLS/
+    cp -p obj-*/dist/bin/pk12util $MARTOOLS/
+    cp -p obj-*/dist/bin/shlibsign $MARTOOLS/
+    [% IF c("var/linux") %]
+      NSS_LIBS="libfreeblpriv3.so libmozsqlite3.so libnss3.so libnssckbi.so libnssutil3.so libsmime3.so libsoftokn3.so libssl3.so"
+      NSPR_LIBS="libnspr4.so libplc4.so libplds4.so"
+    [% ELSE %]
+      NSS_LIBS="libfreebl3.dylib libmozglue.dylib libnss3.dylib libnssckbi.dylib libsoftokn3.dylib"
+      # No NSPR_LIBS for macOS
+      NSPR_LIBS=""
+    [% END %]
+    for LIB in $NSS_LIBS $NSPR_LIBS; do
       cp -p obj-*/dist/bin/$LIB $MARTOOLS/
-  done
-[% END %]
+    done
+  [% END %]
+  [% IF c("var/windows") %]
+    cp -p obj-*/dist/bin/signmar.exe $MARTOOLS/
+    cp -p obj-*/dist/bin/certutil.exe $MARTOOLS/
+    cp -p obj-*/dist/bin/modutil.exe $MARTOOLS/
+    cp -p obj-*/dist/bin/pk12util.exe $MARTOOLS/
+    cp -p obj-*/dist/bin/shlibsign.exe $MARTOOLS/
+    NSS_LIBS="freebl3.dll mozglue.dll nss3.dll nssckbi.dll softokn3.dll"
+    for LIB in $NSS_LIBS; do
+        cp -p obj-*/dist/bin/$LIB $MARTOOLS/
+    done
+  [% END %]
+[% END -%]
 
 cd $distdir
 
@@ -281,7 +285,7 @@ cd $distdir
   mkdir -p $distdir/Debug/Browser
   # Strip and generate debuginfo for the firefox binary that we keep, all *.so
   # files, the plugin-container, and the updater (see ticket #10126)
-  for LIB in Browser/*.so Browser/firefox.real Browser/plugin-container Browser/updater
+  for LIB in Browser/*.so "Browser/[% c('var/exe_name') %].real" Browser/plugin-container [% IF c("var/updater_enabled") -%]Browser/updater[% END %]
   do
       objcopy --only-keep-debug $LIB Debug/$LIB
       strip $LIB
@@ -311,6 +315,16 @@ END;
 
 [% IF c("var/linux") %]
   /var/tmp/dist/gcc/bin/g++ $rootdir/abicheck.cc -o Browser/abicheck -std=c++17
+  [% IF !c("var/torbrowser") %]
+    libdest=Browser/libstdc++
+    mkdir -p "$libdest"
+    # FIXME: tor-browser-build#40749
+    cp /var/tmp/dist/gcc/[% c("var/libdir") %]/libstdc++.so.* "$libdest"
+    [% IF c("var/asan") -%]
+      cp /var/tmp/dist/gcc/[% c("var/libdir") %]/libasan.so.* "$libdest"
+      cp /var/tmp/dist/gcc/[% c("var/libdir") %]/libubsan.so.* "$libdest"
+    [% END -%]
+  [% END %]
 [% END %]
 
 [% c('tar', {
@@ -331,10 +345,12 @@ END;
   [% END %]
 [% END %]
 
-[% c('zip', {
-        zip_src => [ 'mar-tools' ],
-        zip_args => dest_dir _ '/' _ c('filename') _ '/' _ c('var/martools_filename'),
-    }) %]
+[% IF c("var/updater_enabled") -%]
+  [% c('zip', {
+          zip_src => [ 'mar-tools' ],
+          zip_args => dest_dir _ '/' _ c('filename') _ '/' _ c('var/martools_filename'),
+      }) %]
+[% END -%]
 
 [% IF c("var/build_infos_json") -%]
   cat > "[% dest_dir _ '/' _ c('filename') _ '/build-infos.json' %]" << EOF_BUILDINFOS


=====================================
projects/firefox/config
=====================================
@@ -15,7 +15,7 @@ var:
   firefox_version: '[% c("var/firefox_platform_version") %]esr'
   browser_branch: '12.5-1'
   browser_build: 1
-  branding_directory: 'browser/branding/tb-alpha'
+  branding_directory_prefix: 'tb'
   copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
   nightly_updates_osname: '[% c("var/osname") %]'
   deps:
@@ -65,15 +65,15 @@ targets:
     # basebrowser tag always has a -build1 suffix
     git_hash: '[% c("var/project-name") %]-[% c("var/firefox_version") %]-[% c("var/browser_branch") %]-build1'
 
-  release:
-    var:
-      branding_directory: 'browser/branding/tb-release'
-
   nightly:
     git_hash: '[% c("var/project-name") %]-[% c("var/firefox_version") %]-[% c("var/browser_branch") %]'
     tag_gpg_id: 0
+
+  privacybrowser:
+    git_url: git at gitlab.torproject.org:tpo/applications/privacy-browser.git
     var:
-      branding_directory: 'browser/branding/tb-nightly'
+      branding_directory_prefix: 'pb'
+      browser_branch: '12.0-1'
 
   linux-x86_64:
     var:
@@ -92,6 +92,7 @@ targets:
         - libasound2-dev
         # To support Wayland mode
         - libdrm-dev
+      libdir: lib64
 
   linux-i686:
     var:
@@ -111,6 +112,7 @@ targets:
         - libasound2-dev:i386
         # To support Wayland mode
         - libdrm-dev:i386
+      libdir: lib32
 
   macos:
     var:
@@ -175,8 +177,6 @@ input_files:
       - torbrowser-windows-x86_64
   - filename: abicheck.cc
     enable: '[% c("var/linux") %]'
-  - filename: start-firefox
-    enable: '[% c("var/linux") %]'
   - project: translation
     name: translation-base-browser
     pkg_type: base-browser


=====================================
projects/firefox/start-firefox
=====================================
@@ -15,9 +15,11 @@ add_LD_LIBRARY_PATH() {
 # that instead of the bundled version.
 "$basedir/abicheck" >/dev/null 2>&1
 if [ $? -ne 0 ]; then
-  add_LD_LIBRARY_PATH "$basedir/TorBrowser/Tor/libstdc++/"
+  add_LD_LIBRARY_PATH "$basedir/[% IF c("var/tor-browser") -%]TorBrowser/Tor/[% END -%]libstdc++/"
 fi
+[% IF c("var/tor-browser") -%]
 add_LD_LIBRARY_PATH "$basedir/TorBrowser/Tor/"
+[% END -%]
 export LD_LIBRARY_PATH
 
-exec "$basedir/firefox.real" "$@"
+exec "$basedir/[% c("var/exe_name") %].real" "$@"


=====================================
projects/release/config
=====================================
@@ -53,10 +53,10 @@ targets:
       asan-build: '-asan'
   browser-linux-i686:
     var:
-      browser-linux-i686: 1
+      browser-linux-i686: '[% c("var/browser_type") != "privacybrowser" %]'
   browser-windows-i686:
     var:
-      browser-windows-i686: 1
+      browser-windows-i686: '[% c("var/browser_type") != "privacybrowser" %]'
   browser-windows-x86_64:
     var:
       browser-windows-x86_64: 1
@@ -93,6 +93,9 @@ targets:
   basebrowser:
     var:
       browser_type: basebrowser
+  privacybrowser:
+    var:
+      browser_type: privacybrowser
 
   release:
     var:


=====================================
rbm.conf
=====================================
@@ -75,6 +75,7 @@ var:
   torbrowser_build: 'build1'
   torbrowser_incremental_from:
     - 12.5a1
+  updater_enabled: 1
   build_mar: 1
   # By default, we sort the list of installed packages. This allows sharing
   # containers with identical list of packages, even if they are not listed
@@ -94,6 +95,7 @@ var:
     [% SET step = c("step") -%]
     [% c(step, { filename => 'f', output_dir => '/out', norec => {} }) %]
 
+  exe_name: firefox
   locale_ja: ja
   locales:
     - ar
@@ -234,6 +236,17 @@ targets:
       projectname: basebrowser
       Project_Name: 'Base Browser'
       ProjectName: BaseBrowser
+      updater_enabled: 0
+
+  privacybrowser:
+    var:
+      privacy-browser: 1
+      project-name: privacy-browser
+      projectname: privacybrowser
+      Project_Name: 'Privacy Browser'
+      ProjectName: PrivacyBrowser
+      exe_name: privacybrowser
+      updater_enabled: 0
 
   torbrowser-testbuild:
     - testbuild
@@ -243,6 +256,10 @@ targets:
     - testbuild
     - alpha
     - basebrowser
+  privacybrowser-testbuild:
+    - testbuild
+    - alpha
+    - privacybrowser
   testbuild:
     var:
       testbuild: 1
@@ -368,6 +385,10 @@ targets:
     - linux-x86_64
     - linux
     - basebrowser
+  privacybrowser-linux-x86_64:
+    - linux-x86_64
+    - linux
+    - privacybrowser
   torbrowser-linux-x86_64-asan:
     - linux-asan
     - linux-x86_64
@@ -378,6 +399,11 @@ targets:
     - linux-x86_64
     - linux
     - basebrowser
+  privacybrowser-linux-x86_64-asan:
+    - linux-asan
+    - linux-x86_64
+    - linux
+    - privacybrowser
   torbrowser-linux-i686:
     - linux-i686
     - linux
@@ -474,6 +500,10 @@ targets:
     - windows-x86_64
     - windows
     - basebrowser
+  privacybrowser-windows-x86_64:
+    - windows-x86_64
+    - windows
+    - privacybrowser
   windows-x86_64:
     arch: x86_64
     var:
@@ -537,6 +567,19 @@ targets:
     - macos-aarch64
     - macos
     - basebrowser
+  privacybrowser-macos:
+    - macos-universal
+    - macos-x86_64
+    - macos
+    - privacybrowser
+  privacybrowser-macos-x86_64:
+    - macos-x86_64
+    - macos
+    - privacybrowser
+  privacybrowser-macos-aarch64:
+    - macos-aarch64
+    - macos
+    - privacybrowser
   macos-universal:
     var:
       macos_universal: 1



View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/49221734ee4ab041fc6f59e0f49417b02002b395...ba13fa7f4379a8a3c03d161544ff05eceeba40b8

-- 
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/49221734ee4ab041fc6f59e0f49417b02002b395...ba13fa7f4379a8a3c03d161544ff05eceeba40b8
You're receiving this email because of your account on gitlab.torproject.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.torproject.org/pipermail/tbb-commits/attachments/20230126/cef29239/attachment-0001.htm>


More information about the tbb-commits mailing list