lists.torproject.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

tbb-commits

Thread Start a new thread
Threads by month
  • ----- 2026 -----
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2021 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2020 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2019 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2018 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2017 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2016 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2015 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2014 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
tbb-commits@lists.torproject.org

  • 1 participants
  • 20241 discussions
[Git][tpo/applications/tor-browser][base-browser-147.0a1-16.0-2] fixup! Firefox preference overrides.
by henry (@henry) 10 Feb '26

10 Feb '26
henry pushed to branch base-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 08ba868e by henry at 2026-02-10T12:38:50+00:00 fixup! Firefox preference overrides. TB 44520: Disable Normandy rollout. This preference is added in Firefox 149 from bugzilla bug 2003350. (cherry picked from commit 2cccadc118b01d07ba00109b5ac082698d141332) Co-authored-by: Henry Wilkes <henry(a)torproject.org> - - - - - 1 changed file: - browser/app/profile/001-base-profile.js Changes: ===================================== browser/app/profile/001-base-profile.js ===================================== @@ -417,6 +417,9 @@ pref("browser.urlbar.dnsResolveSingleWordsAfterSearch", 0); pref("messaging-system.rsexperimentloader.enabled", false); // true means that you are *not* opting out. See its usage in various file. pref("app.shield.optoutstudies.enabled", false); +// Disable nimbus rollouts. +// See bugzilla bug 2003350. See tor-browser#44520. +pref("nimbus.rollouts.enabled", false); // Disable Normandy/Shield pref("app.normandy.enabled", false); pref("app.normandy.api_url", ""); View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/08ba868… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/08ba868… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-147.0a1-16.0-2] 2 commits: fixup! Firefox preference overrides.
by henry (@henry) 10 Feb '26

10 Feb '26
henry pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 2cccadc1 by Henry Wilkes at 2026-02-10T11:49:42+00:00 fixup! Firefox preference overrides. TB 44520: Disable Normandy rollout. This preference is added in Firefox 149 from bugzilla bug 2003350. - - - - - 7d6331a5 by Henry Wilkes at 2026-02-10T11:49:42+00:00 BB 44520: Disable Experiment API (Firefox Labs). - - - - - 2 changed files: - browser/app/profile/001-base-profile.js - toolkit/components/nimbus/ExperimentAPI.sys.mjs Changes: ===================================== browser/app/profile/001-base-profile.js ===================================== @@ -417,6 +417,9 @@ pref("browser.urlbar.dnsResolveSingleWordsAfterSearch", 0); pref("messaging-system.rsexperimentloader.enabled", false); // true means that you are *not* opting out. See its usage in various file. pref("app.shield.optoutstudies.enabled", false); +// Disable nimbus rollouts. +// See bugzilla bug 2003350. See tor-browser#44520. +pref("nimbus.rollouts.enabled", false); // Disable Normandy/Shield pref("app.normandy.enabled", false); pref("app.normandy.api_url", ""); ===================================== toolkit/components/nimbus/ExperimentAPI.sys.mjs ===================================== @@ -396,10 +396,19 @@ export const ExperimentAPI = new (class { } get enabled() { + if (AppConstants.BASE_BROWSER_VERSION) { + // Do not allow ExperimentsAPI (which covers either "labs", "studies" or + // "rollouts") in Base Browser. + return false; + } return this.studiesEnabled || this.labsEnabled; } get labsEnabled() { + if (AppConstants.BASE_BROWSER_VERSION) { + // Do not allow "Firefox Labs" in Base Browser. + return false; + } return Services.policies.isAllowed("FirefoxLabs"); } View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/7359f9… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/7359f9… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][main] 3 commits: Bug 41660: Add sections to doc/MAKEFILE.txt
by boklm (@boklm) 10 Feb '26

10 Feb '26
boklm pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 79c82022 by Nicolas Vigier at 2026-02-10T09:48:13+01:00 Bug 41660: Add sections to doc/MAKEFILE.txt - - - - - af4a83f0 by Nicolas Vigier at 2026-02-10T11:00:20+01:00 Bug 41660: Add makefile targets to build upstream firefox commit Based on patch started by @pierov in https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/4…. - - - - - ebef30b2 by Nicolas Vigier at 2026-02-10T11:00:22+01:00 Bug 41719: Enable network in geckoview build scripts when var/generate_gradle_dependencies_list is enabled - - - - - 14 changed files: - Makefile - doc/MAKEFILE.txt - projects/common/browser-localization - projects/firefox/build - projects/firefox/config - + projects/firefox/firefoxbrowser-BB-29320.patch - + projects/firefox/mozconfig-upstream-firefox.in - projects/firefox/mozconfig.in - projects/geckoview/build - projects/geckoview/build_common - projects/geckoview/config - + projects/geckoview/mozconfig-upstream-firefox.in - projects/geckoview/mozconfig.in - rbm.conf Changes: ===================================== Makefile ===================================== @@ -543,6 +543,31 @@ mullvadbrowser-compare-mar-signed-unsigned-release: submodule-update mullvadbrowser-compare-mar-signed-unsigned-alpha: submodule-update $(rbm) build release --step compare_mar_signed_unsigned --target alpha --target signed --target mullvadbrowser +############################# +# Building upstream firefox # +############################# + +firefox-linux-x86_64: submodule-update + $(rbm) build firefox --target alpha --target firefoxbrowser-linux-x86_64 + +firefox-linux-aarch64: submodule-update + $(rbm) build firefox --target alpha --target firefoxbrowser-linux-arch64 + +firefox-windows-x86_64: submodule-update + $(rbm) build firefox --target alpha --target firefoxbrowser-windows-x86_64 + +firefox-windows-i686: submodule-update + $(rbm) build firefox --target alpha --target firefoxbrowser-windows-i686 + +firefox-macos-aarch64: submodule-update + $(rbm) build firefox --target alpha --target firefoxbrowser-macos-aarch64 + +firefox-macos-x86_64: submodule-update + $(rbm) build firefox --target alpha --target firefoxbrowser-macos-x86_64 + +geckoview-android-aarch64: submodule-update + $(rbm) build geckoview --target testbuild --target alpha --target firefoxbrowser-android-aarch64 + ############################ # Toolchain Update Targets # ===================================== doc/MAKEFILE.txt ===================================== @@ -1,6 +1,11 @@ Description of makefile rules ============================= + +************************************ +* Building Tor and Mullvad Browser * +************************************ + torbrowser ---------- Build Tor Browser for the default channel, defined in @@ -92,11 +97,27 @@ fetch Fetch new commits from all components. This is useful when you want to build the nightly channel. -list-unused-projects --------------------- -List which projects are not being used by projects/release/build with -torbrowser and mullvadbrowser targets. Projects that are used outside -of normal builds can be added to projects/release/list_used_projects. +torbrowser-incrementals-{release,alpha} +--------------------------------------- +Create incremental mar files for an unsigned build in the release or +alpha channel. The list of versions we create incrementals from is +defined as var/torbrowser_incremental_from in rbm.conf. + +torbrowser-incrementals-nightly +------------------------------- +Create incremental mar files for the current nightly build. The number +of previous versions we should generate incremental mars from is defined +as var/max_torbrowser_incremental_from in rbm.conf. + +If you want to create incremental mars for a version that is not the +current one, you can define the environment variable +TORBROWSER_NIGHTLY_VERSION to the version you want to generate +incremental mars for. + + +************ +* Cleaning * +************ clean ----- @@ -115,28 +136,22 @@ clean-dry-run ------------- Print the files that would be removed when running 'make clean'. +list-unused-projects +-------------------- +List which projects are not being used by projects/release/build with +torbrowser and mullvadbrowser targets. Projects that are used outside +of normal builds can be added to projects/release/list_used_projects. + + +*********************************** +* Publishing and signing releases * +*********************************** + torbrowser-signtag-{release,alpha} ---------------------------------- Create a git signed tag for the selected channel, using the version and build number defined as var/torbrowser_version and var/torbrowser_build. -torbrowser-incrementals-{release,alpha} ---------------------------------------- -Create incremental mar files for an unsigned build in the release or -alpha channel. The list of versions we create incrementals from is -defined as var/torbrowser_incremental_from in rbm.conf. - -torbrowser-incrementals-nightly -------------------------------- -Create incremental mar files for the current nightly build. The number -of previous versions we should generate incremental mars from is defined -as var/max_torbrowser_incremental_from in rbm.conf. - -If you want to create incremental mars for a version that is not the -current one, you can define the environment variable -TORBROWSER_NIGHTLY_VERSION to the version you want to generate -incremental mars for. - torbrowser-dmg2mar-{release,alpha) ---------------------------------- Generate updated mar files for the OSX bundles, from the dmg files, then @@ -149,6 +164,11 @@ Create update responses xml files for a signed build in the release or alpha channel. The files can be found in a tar in the directory torbrowser/{release,alpha}/update-responses. + +**************************************** +* Comparing signed and unsigned builds * +**************************************** + torbrowser-compare-windows-signed-unsigned-{release,alpha} ---------------------------------------------------------- Unsign exe files from directory torbrowser/{release,alpha}/signed/$version @@ -159,3 +179,25 @@ torbrowser-compare-mar-signed-unsigned-{release,alpha} Unsign mar files from directory torbrowser/{release,alpha}/signed/$version and compare them with the checksum from sha256sums-unsigned-build.txt. + +********************* +* Toolchain updates * +********************* + +list_toolchain_updates-{application-services,firefox-linux,firefox-macos, + firefox-windows,geckoview} +------------------------------------------------------------------------- +List toolchain updates required for building selected component/platform. + + +firefox-{linux-x86_64,linux-aarch64,windows-x86_64,windows-i686, + macos-aarch64,macos-x86_64} +---------------------------------------------------------------- +Building upstream firefox commit for selected platform. This is useful +for testing toolchain updates for a new firefox version. + +geckoview-android-aarch64 +------------------------- +Building upstream firefox commit for android (aarch64 only). We currently +don't support the `build_apk` builds with all architectures, but the +single arch build should be enough for testing toolchain updates. ===================================== projects/common/browser-localization ===================================== @@ -1,4 +1,6 @@ -branding_dir=[% IF c('var/android') %]mobile/android[% ELSE %]browser[% END %]/branding/[% c("var/project_initials") %]-[% c("var/channel") %] +[% IF !c("var/firefox-browser") -%] + branding_dir=[% IF c('var/android') %]mobile/android[% ELSE %]browser[% END %]/branding/[% c("var/project_initials") %]-[% c("var/channel") %] +[% END -%] [% IF c("var/has_l10n") -%] [% IF !c("var/android") -%] ===================================== projects/firefox/build ===================================== @@ -106,16 +106,23 @@ mkdir "$HOME/.mozbuild" export LC_ALL=C.UTF-8 export LANG=C.UTF-8 +[% IF c("var/firefox-browser") && c("var/windows") -%] + patch -p1 < $rootdir/firefoxbrowser-BB-29320.patch +[% END -%] + echo "Starting ./mach configure $(date)" ./mach configure \ --with-distribution-id=org.torproject \ - --with-base-browser-version=[% c("var/torbrowser_version") %] \ + [% IF !c("var/firefox-browser") %]--with-base-browser-version=[% c("var/torbrowser_version") %][% END %] \ [% IF c("var/updater_enabled") -%]--enable-update-channel=[% c("var/channel") %][% END %] \ - [% IF !c("var/base-browser") -%]--with-branding="$branding_dir"[% END %] \ + [% IF !c("var/base-browser") && !c("var/firefox-browser") -%]--with-branding="$branding_dir"[% END %] \ [% IF !c("var/rlbox") -%]--without-wasm-sandboxed-libraries[% END %] echo "Starting ./mach build $(date)" ./mach build --verbose + +[% IF c("var/firefox-browser") && c("var/windows"); RETURN; END; -%] + [% IF c("var/has_l10n") -%] echo "Starting to merge locales $(date)" export MOZ_CHROME_MULTILOCALE="$supported_locales" @@ -160,6 +167,9 @@ echo "Starting ./mach build $(date)" [% IF c("var/base-browser") -%] mv "$distdir/Firefox.app" "$distdir/[% c('var/display_name') %].app" [% END -%] + [% IF c("var/firefox-browser") -%] + mv "$distdir/Nightly.app" "$distdir/[% c('var/display_name') %].app" + [% END -%] app_bundle="[% c('var/display_name') %].app" # Remove firefox-bin (we don't use it, see ticket #10126) rm -f "$distdir/$app_bundle/Contents/MacOS/[% c('var/exe_name') %]-bin" ===================================== projects/firefox/config ===================================== @@ -23,6 +23,7 @@ var: browser_rebase: 2 browser_branch: '[% c("var/browser_series") %]-[% c("var/browser_rebase") %]' browser_build: 2 + upstream_firefox_commit: FIREFOX_NIGHTLY_147_END copyright_year: '[% exec("git show -s --format=%ci " _ c("git_hash") _ "^{commit}", { exec_noco => 1 }).remove("-.*") %]' nightly_updates_publish_dir: '[% c("var/nightly_updates_publish_dir_prefix") %]nightly-[% c("var/osname") %]' gitlab_project: https://gitlab.torproject.org/tpo/applications/tor-browser @@ -90,13 +91,20 @@ steps: version: '[% c("abbrev") %]' list_toolchain_updates: - git_hash: FIREFOX_NIGHTLY_147_END + git_hash: '[% c("var/upstream_firefox_commit") %]' tag_gpg_id: 0 input_files: [] container: use_container: 0 targets: + firefoxbrowser: + git_hash: '[% c("var/upstream_firefox_commit") %]' + tag_gpg_id: 0 + var: + updater_url: '' + has_l10n: 0 + basebrowser: var: nightly_updates_publish_dir_prefix: basebrowser- @@ -240,3 +248,7 @@ input_files: - project: libdmg-hfsplus name: libdmg enable: '[% c("var/macos") && c("var/dev_artifacts") %]' + # When building upstream firefox we need this patch to be able to + # build for Windows + - filename: firefoxbrowser-BB-29320.patch + enable: '[% c("var/firefox-browser") && c("var/windows") %]' ===================================== projects/firefox/firefoxbrowser-BB-29320.patch ===================================== @@ -0,0 +1,45 @@ +commit df53f566fa75408c95f3f619e1eee30417449642 +Author: Pier Angelo Vendrame <pierov(a)torproject.org> +Date: Thu Jun 13 09:22:53 2024 +0200 + + BB 29320: Replace the gnu target with gnullvm for Rust. + +diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure +index d71d2fbe33b77..62ceec58677a2 100644 +--- a/build/moz.configure/init.configure ++++ b/build/moz.configure/init.configure +@@ -490,12 +490,16 @@ def split_triplet(triplet, allow_wasi=False): + canonical_kernel = "kFreeBSD" + elif os.startswith("gnu"): + canonical_os = canonical_kernel = "GNU" +- elif os.startswith("mingw") or os in ("windows-msvc", "windows-gnu"): ++ elif os.startswith("mingw") or os in ( ++ "windows-msvc", ++ "windows-gnu", ++ "windows-gnullvm", ++ ): + canonical_os = canonical_kernel = "WINNT" + if not os.startswith("mingw"): + if os == "windows-msvc": + abi = "msvc" +- elif os == "windows-gnu": ++ elif os == "windows-gnu" or os == "windows-gnullvm": + abi = "mingw" + # Many things down the line are looking for the string "mingw32" + # until they are all fixed, we pretend that's the raw os we had +diff --git a/build/moz.configure/rust.configure b/build/moz.configure/rust.configure +index 6c1c891817133..ee836b6060756 100644 +--- a/build/moz.configure/rust.configure ++++ b/build/moz.configure/rust.configure +@@ -310,9 +310,9 @@ def detect_rustc_target( + if host_or_target.abi == "msvc": + suffix = "windows-msvc" + elif host_or_target.abi == "mingw": +- suffix = "windows-gnu" ++ suffix = "windows-gnullvm" + elif compiler_info.type in ("gcc", "clang"): +- suffix = "windows-gnu" ++ suffix = "windows-gnullvm" + else: + suffix = "windows-msvc" + narrowed = [ ===================================== projects/firefox/mozconfig-upstream-firefox.in ===================================== @@ -0,0 +1,17 @@ +# The file mozconfig-upstream-firefox.in is used to set some options +# needed to build upstream firefox. In Tor/Mullvad Browser, those +# options are set in the specific mozconfig files in tor-browser.git. + +[% IF c("var/windows-x86_64") -%] + ac_add_options --target=x86_64-w64-mingw32 + ac_add_options --with-toolchain-prefix=x86_64-w64-mingw32- +[% END -%] +[% IF c("var/windows-i686") -%] + ac_add_options --target=i686-w64-mingw32 + ac_add_options --with-toolchain-prefix=i686-w64-mingw32- +[% END -%] +[% IF c("var/windows") -%] + ac_add_options --disable-notification-server + + ac_add_options --disable-webrtc +[% END -%] ===================================== projects/firefox/mozconfig.in ===================================== @@ -1,4 +1,8 @@ -. $topsrcdir/mozconfig-[% IF c("var/macos"); GET 'macos'; ELSE; GET c("var/osname"); END; %][% IF c("var/asan") %]-asan[% END %] +[% IF !c("var/firefox-browser") -%] + . $topsrcdir/mozconfig-[% IF c("var/macos"); GET 'macos'; ELSE; GET c("var/osname"); END; %][% IF c("var/asan") %]-asan[% END %] +[% ELSE; + INCLUDE 'mozconfig-upstream-firefox.in'; + END -%] [% IF c("var/linux") -%] # We want to build with clang now and point to the GCC toolchain until #29041 is @@ -81,7 +85,9 @@ [% END -%] ac_add_options --[% IF c("var/updater_enabled") %]enable[% ELSE %]disable[% END %]-updater -ac_add_options --[% IF c("var/updater_enabled") %]enable[% ELSE %]disable[% END %]-base-browser-update +[% IF !c("var/firefox-browser") -%] + ac_add_options --[% IF c("var/updater_enabled") %]enable[% ELSE %]disable[% END %]-base-browser-update +[% END -%] [% IF c("var/override_updater_url") -%] ac_add_options --with-updater-url=[% c("var/override_updater_url") %] [% ELSIF c("var/updater_url") -%] ===================================== projects/geckoview/build ===================================== @@ -18,8 +18,8 @@ cp $rootdir/mozconfig ./ echo "Starting ./mach configure $(date)" ./mach configure \ - --with-base-browser-version=[% c("var/torbrowser_version") %] \ - --with-branding=$branding_dir \ + [% IF !c("var/firefox-browser") %]--with-base-browser-version=[% c("var/torbrowser_version") %][% END %] \ + [% IF !c("var/firefox-browser") %]--with-branding=$branding_dir[% END %] \ [% IF !c("var/rlbox") -%]--without-wasm-sandboxed-libraries[% END %] echo "Starting ./mach build $(date)" ===================================== projects/geckoview/build_common ===================================== @@ -15,19 +15,28 @@ export PATH="/var/tmp/dist/node/bin:$PATH" export LC_ALL=C.UTF-8 export LANG=C.UTF-8 -# Normalize this path, as it will end up in buildconfig.html. -export TOR_EXPERT_BUNDLE_AAR=/var/tmp/dist/tor-expert-bundle.aar -mv $rootdir/[% c('input_files_by_name/tor-expert-bundle-aar') %]/tor-expert-bundle.aar $TOR_EXPERT_BUNDLE_AAR +[% IF c("var/tor-browser") -%] + # Normalize this path, as it will end up in buildconfig.html. + export TOR_EXPERT_BUNDLE_AAR=/var/tmp/dist/tor-expert-bundle.aar + mv $rootdir/[% c('input_files_by_name/tor-expert-bundle-aar') %]/tor-expert-bundle.aar $TOR_EXPERT_BUNDLE_AAR +[% END -%] -tar -C /var/tmp/dist -xf [% c('input_files_by_name/application-services') %] -export APPLICATION_SERVICES=/var/tmp/dist/application-services/maven -export NIMBUS_FML=/var/tmp/dist/application-services/nimbus-fml +[% IF !c("var/firefox-browser") -%] + tar -C /var/tmp/dist -xf [% c('input_files_by_name/application-services') %] + export APPLICATION_SERVICES=/var/tmp/dist/application-services/maven + export NIMBUS_FML=/var/tmp/dist/application-services/nimbus-fml +[% END -%] [% INCLUDE 'fake-git' %] tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %] -tar -C /var/tmp/build/[% project %]-*/tools/terser -xf [% c("input_files_by_name/terser") %] +# We disable terser for unpatched firefox since the directory +# tools/terser does not exist in 147. It will probably be needed for +# 148. +[% IF !c("var/firefox-browser") -%] + tar -C /var/tmp/build/[% project %]-*/tools/terser -xf [% c("input_files_by_name/terser") %] +[% END -%] [% c("var/set_MOZ_BUILD_DATE") %] ===================================== projects/geckoview/config ===================================== @@ -16,7 +16,8 @@ gpg_keyring: container: use_container: 1 disable_network: - build_apk: 1 + build: '[% !c("var/generate_gradle_dependencies_list") %]' + build_apk: '[% !c("var/generate_gradle_dependencies_list") %]' var: firefox_platform_version: '147.0a1' @@ -58,6 +59,12 @@ targets: tag_gpg_id: 0 var: variant: nightly + firefoxbrowser: + git_hash: '[% pc("firefox", "var/upstream_firefox_commit") %]' + tag_gpg_id: 0 + var: + generate_gradle_dependencies_list: 1 + has_l10n: 0 steps: build_apk: @@ -146,7 +153,7 @@ steps: enable: '[% c("var/generate_gradle_dependencies_list") %]' list_toolchain_updates: - git_hash: FIREFOX_NIGHTLY_147_END + git_hash: '[% pc("firefox", "var/upstream_firefox_commit") %]' tag_gpg_id: 0 input_files: [] container: @@ -178,6 +185,7 @@ input_files: enable: '[% c("var/rlbox") %]' - project: application-services name: application-services + enable: '[% !c("var/firefox-browser") %]' - filename: gradle-dependencies-list.txt name: gradle-dependencies-list - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]' @@ -189,13 +197,16 @@ input_files: sha256sum: '[% pc("glean-parser", "var/glean_wheels_sha256sum") %]' - project: glean name: glean + enable: '[% !c("var/generate_gradle_dependencies_list") %]' - project: oss-licenses-plugin name: oss-licenses-plugin enable: '[% !c("var/generate_gradle_dependencies_list") %]' - project: terser name: terser + enable: '[% !c("var/firefox-browser") %]' - name: tor-expert-bundle-aar project: tor-expert-bundle-aar + enable: '[% c("var/tor-browser") %]' - project: firefox-l10n name: firefox-l10n enable: '[% c("var/android_single_arch") && c("var/has_l10n") %]' ===================================== projects/geckoview/mozconfig-upstream-firefox.in ===================================== @@ -0,0 +1,17 @@ +# The file mozconfig-upstream-firefox.in is used to set some options +# needed to build upstream firefox. In Tor Browser, those options are +# set in the specific mozconfig files in tor-browser.git. + +ac_add_options --enable-application=mobile/android + +# Make sure to disable bootstrap also when running online builds for dependency +# updates. +ac_add_options --disable-bootstrap + +CC="clang" +CXX="clang++" +ac_add_options --enable-linker=lld + +ac_add_options --with-android-sdk=$ANDROID_HOME +ac_add_options --with-android-ndk=$ANDROID_NDK_HOME +ac_add_options --with-gradle=$GRADLE_HOME/bin/gradle ===================================== projects/geckoview/mozconfig.in ===================================== @@ -1,4 +1,8 @@ +[% IF !c("var/firefox-browser") -%] . $topsrcdir/[% c("var/mozconfig_file") %] +[% ELSE; + INCLUDE 'mozconfig-upstream-firefox.in'; + END -%] ac_add_options --with-java-bin-path=/usr/lib/jvm/java-1.17.0-openjdk-amd64/bin ===================================== rbm.conf ===================================== @@ -372,6 +372,18 @@ targets: ProjectName: BaseBrowser updater_enabled: '[% c("var/nightly") %]' + # Target to build upstream firefox commit (in projects/firefox and + # projects/geckoview) instead of our patched branch + firefoxbrowser: + var: + firefox-browser: 1 + project-name: firefox-browser + projectname: firefoxbrowser + Project_Name: 'Firefox Browser' + ProjectName: FirefoxBrowser + updater_enabled: 0 + android_single_arch: 1 + mullvadbrowser: var: mullvad-browser: 1 @@ -434,6 +446,10 @@ targets: - android-armv7 - android - basebrowser + firefoxbrowser-android-armv7: + - android-armv7 + - android + - firefoxbrowser android-armv7: arch: armv7 var: @@ -450,6 +466,10 @@ targets: - android-x86_64 - android - basebrowser + firefoxbrowser-android-x86_64: + - android-x86_64 + - android + - firefoxbrowser android-x86_64: arch: x86_64 var: @@ -466,6 +486,10 @@ targets: - android-aarch64 - android - basebrowser + firefoxbrowser-android-aarch64: + - android-aarch64 + - android + - firefoxbrowser android-aarch64: arch: aarch64 var: @@ -512,6 +536,10 @@ targets: - linux-x86_64 - linux - mullvadbrowser + firefoxbrowser-linux-x86_64: + - linux-x86_64 + - linux + - firefoxbrowser torbrowser-linux-x86_64-asan: - linux-asan - linux-x86_64 @@ -542,6 +570,10 @@ targets: - linux-aarch64 - linux - mullvadbrowser + firefoxbrowser-linux-aarch64: + - linux-aarch64 + - linux + - firefoxbrowser linux-x86_64: arch: x86_64 var: @@ -603,6 +635,10 @@ targets: - windows-i686 - windows - basebrowser + firefoxbrowser-windows-i686: + - windows-i686 + - windows + - firefoxbrowser torbrowser-windows-x86_64: - windows-x86_64 - windows @@ -615,6 +651,10 @@ targets: - windows-x86_64 - windows - mullvadbrowser + firefoxbrowser-windows-x86_64: + - windows-x86_64 + - windows + - firefoxbrowser windows-x86_64: arch: x86_64 var: @@ -690,6 +730,14 @@ targets: - macos-aarch64 - macos - mullvadbrowser + firefoxbrowser-macos-x86_64: + - macos-x86_64 + - macos + - firefoxbrowser + firefoxbrowser-macos-aarch64: + - macos-aarch64 + - macos + - firefoxbrowser macos-universal: var: macos_universal: 1 View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-147.0a1-16.0-2] fixup! Firefox preference overrides.
by Pier Angelo Vendrame (@pierov) 10 Feb '26

10 Feb '26
Pier Angelo Vendrame pushed to branch mullvad-browser-147.0a1-16.0-2 at The Tor Project / Applications / Mullvad Browser Commits: f410b034 by june wilde at 2026-02-10T09:12:09+01:00 fixup! Firefox preference overrides. - - - - - 1 changed file: - browser/app/profile/001-base-profile.js Changes: ===================================== browser/app/profile/001-base-profile.js ===================================== @@ -560,6 +560,11 @@ pref("browser.display.use_system_colors", false); pref("widget.non-native-theme.use-theme-accent", false); // tor-browser#43236: Disable vsync on Wayland to prevent refresh rate leaks. pref("widget.wayland.vsync.enabled", false); +// tor-browser#44571: Disable HTML rating attribute for filtering web content. +// This could potentially be used as a fingerprinting vector based on if content +// marked with a specific rating is loaded or not. +pref("security.restrict_to_adults.always", false); +pref("security.restrict_to_adults.respect_platform", false); // tor-browser#41943: defense-in-depth, but do not lock anymore (enabled in Firefox 119, http://bugzil.la/1851162) pref("javascript.options.spectre.disable_for_isolated_content", false); @@ -738,6 +743,8 @@ pref("browser.menu.share_url.allow", false, locked); // Disable special URL bar behaviors pref("browser.urlbar.suggest.topsites", false); pref("browser.urlbar.quicksuggest.enabled", false); +pref("browser.urlbar.quicksuggest.online.available", false); +pref("browser.urlbar.quicksuggest.online.enabled", false); pref("browser.urlbar.richSuggestions.featureGate", false); pref("browser.urlbar.yelp.featureGate", false); pref("browser.urlbar.mdn.featureGate", false); View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/f41… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/f41… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][base-browser-147.0a1-16.0-2] fixup! Firefox preference overrides.
by Pier Angelo Vendrame (@pierov) 10 Feb '26

10 Feb '26
Pier Angelo Vendrame pushed to branch base-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 083b1843 by june wilde at 2026-02-10T09:11:42+01:00 fixup! Firefox preference overrides. - - - - - 1 changed file: - browser/app/profile/001-base-profile.js Changes: ===================================== browser/app/profile/001-base-profile.js ===================================== @@ -560,6 +560,11 @@ pref("browser.display.use_system_colors", false); pref("widget.non-native-theme.use-theme-accent", false); // tor-browser#43236: Disable vsync on Wayland to prevent refresh rate leaks. pref("widget.wayland.vsync.enabled", false); +// tor-browser#44571: Disable HTML rating attribute for filtering web content. +// This could potentially be used as a fingerprinting vector based on if content +// marked with a specific rating is loaded or not. +pref("security.restrict_to_adults.always", false); +pref("security.restrict_to_adults.respect_platform", false); // tor-browser#41943: defense-in-depth, but do not lock anymore (enabled in Firefox 119, http://bugzil.la/1851162) pref("javascript.options.spectre.disable_for_isolated_content", false); @@ -742,6 +747,8 @@ pref("browser.menu.share_url.allow", false, locked); // Disable special URL bar behaviors pref("browser.urlbar.suggest.topsites", false); pref("browser.urlbar.quicksuggest.enabled", false); +pref("browser.urlbar.quicksuggest.online.available", false); +pref("browser.urlbar.quicksuggest.online.enabled", false); pref("browser.urlbar.richSuggestions.featureGate", false); pref("browser.urlbar.yelp.featureGate", false); pref("browser.urlbar.mdn.featureGate", false); View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/083b184… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/083b184… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-147.0a1-16.0-2] fixup! Firefox preference overrides.
by Pier Angelo Vendrame (@pierov) 10 Feb '26

10 Feb '26
Pier Angelo Vendrame pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 7359f9f5 by june wilde at 2026-02-10T09:04:10+01:00 fixup! Firefox preference overrides. - - - - - 1 changed file: - browser/app/profile/001-base-profile.js Changes: ===================================== browser/app/profile/001-base-profile.js ===================================== @@ -560,6 +560,11 @@ pref("browser.display.use_system_colors", false); pref("widget.non-native-theme.use-theme-accent", false); // tor-browser#43236: Disable vsync on Wayland to prevent refresh rate leaks. pref("widget.wayland.vsync.enabled", false); +// tor-browser#44571: Disable HTML rating attribute for filtering web content. +// This could potentially be used as a fingerprinting vector based on if content +// marked with a specific rating is loaded or not. +pref("security.restrict_to_adults.always", false); +pref("security.restrict_to_adults.respect_platform", false); // tor-browser#41943: defense-in-depth, but do not lock anymore (enabled in Firefox 119, http://bugzil.la/1851162) pref("javascript.options.spectre.disable_for_isolated_content", false); @@ -742,6 +747,8 @@ pref("browser.menu.share_url.allow", false, locked); // Disable special URL bar behaviors pref("browser.urlbar.suggest.topsites", false); pref("browser.urlbar.quicksuggest.enabled", false); +pref("browser.urlbar.quicksuggest.online.available", false); +pref("browser.urlbar.quicksuggest.online.enabled", false); pref("browser.urlbar.richSuggestions.featureGate", false); pref("browser.urlbar.yelp.featureGate", false); pref("browser.urlbar.mdn.featureGate", false); View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/7359f9f… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/7359f9f… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-147.0a1-16.0-2] TB 43349 [android]: Add feedback for successful bootstrap
by Dan Ballard (@dan) 10 Feb '26

10 Feb '26
Dan Ballard pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 371573fc by clairehurst at 2026-02-09T18:08:52-08:00 TB 43349 [android]: Add feedback for successful bootstrap - - - - - 2 changed files: - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorControllerGV.kt - mobile/android/fenix/app/src/main/res/values/torbrowser_strings.xml Changes: ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorControllerGV.kt ===================================== @@ -3,6 +3,7 @@ package org.mozilla.fenix.tor import android.content.Context import android.util.Log +import android.widget.Toast import androidx.lifecycle.LifecycleCoroutineScope import mozilla.components.browser.engine.gecko.GeckoEngine import org.mozilla.fenix.ext.components @@ -191,6 +192,11 @@ class TorControllerGV( runOnceBootstrappedHandlers.remove(it) } } + Toast.makeText( + context, + context.getString(org.mozilla.fenix.R.string.connection_assist_bootstrap_succeeded_toast_message), + Toast.LENGTH_LONG, + ).show() } } ===================================== mobile/android/fenix/app/src/main/res/values/torbrowser_strings.xml ===================================== @@ -124,6 +124,8 @@ <string name="connection_assist_connect_to_tor_before_opening_links_confirmation">CONNECT</string> <!-- Connection assist. Content Description for back button. Button will start the connection assist process again --> <string name="connection_assist_back_button_content_description_start_again">Start again</string> + <!-- Connection assist. Bootstrap succeeded toast message--> + <string name="connection_assist_bootstrap_succeeded_toast_message">Connected to Tor</string> <!-- Notification title for closing browser tabs. "%s" will be replaced with the localised application name, such as "Tor Browser". --> <string name="notification_close_tor_browser_tabs">Close %s’s tabs?</string> View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/371573f… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/371573f… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-147.0a1-16.0-2] fixup! TB 42247: Android helpers for the TorProvider
by clairehurst (@clairehurst) 10 Feb '26

10 Feb '26
clairehurst pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 5f102b4d by Pier Angelo Vendrame at 2026-02-09T15:32:21+01:00 fixup! TB 42247: Android helpers for the TorProvider TB 44620: Move the Android IPC directory. Move the the files we use to communicate with the tor process from the cache directory to the data directory, as some OEMs might be doing some strange things in the cache directory, which might result in proxy errors for users. - - - - - 1 changed file: - mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorAndroidIntegration.java Changes: ===================================== mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorAndroidIntegration.java ===================================== @@ -19,6 +19,8 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.InterruptedIOException; +import java.nio.file.Files; +import java.nio.file.attribute.PosixFilePermissions; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -100,7 +102,7 @@ public class TorAndroidIntegration implements BundleEventListener { /* package */ TorAndroidIntegration(Context context) { mLibraryDir = context.getApplicationInfo().nativeLibraryDir; mCacheDir = context.getCacheDir().getAbsolutePath(); - mIpcDirectory = mCacheDir + "/tor-private"; + mIpcDirectory = new File(context.getFilesDir(), "tor-ipc").getAbsolutePath(); mDataDir = new File(context.getFilesDir(), "tor"); registerListener(); } @@ -357,15 +359,8 @@ public class TorAndroidIntegration implements BundleEventListener { return; } try { - // First remove the permissions for everybody... - directory.setReadable(false, false); - directory.setWritable(false, false); - directory.setExecutable(false, false); - // ... then add them back, but only for the owner. - directory.setReadable(true, true); - directory.setWritable(true, true); - directory.setExecutable(true, true); - } catch (SecurityException e) { + Files.setPosixFilePermissions(directory.toPath(), PosixFilePermissions.fromString("rwx------")); + } catch (IOException | SecurityException e) { Log.e(TAG, "Could not set the permissions to the IPC directory.", e); } return; View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/5f102b4… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/5f102b4… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][main] Bug 41718 - Fix github URL for Pyidaungsu font
by Pier Angelo Vendrame (@pierov) 10 Feb '26

10 Feb '26
Pier Angelo Vendrame pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: e3b6c773 by june wilde at 2026-02-09T22:10:13+01:00 Bug 41718 - Fix github URL for Pyidaungsu font - - - - - 1 changed file: - projects/fonts/config Changes: ===================================== projects/fonts/config ===================================== @@ -196,6 +196,6 @@ input_files: sha256sum: 3a5f3f26f40d5698b3c62dd085d48d6663696a3f80825aab8b553d5097518e8c name: stix enable: '[% c("var/have_stix") %]' - - URL: 'https://github.com/mcfnlp/Pyidaungsu/raw/refs/heads/ff1cd8dfe8c451244329d7a…' + - URL: 'https://github.com/mcfnlp/Pyidaungsu/raw/ff1cd8dfe8c451244329d7a6181c83e769…' sha256sum: df7106c15da76f6a24c10821b43da51f54961f6bc6791fb1fcf21c6c60bb2e10 name: Pyidaungsu View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/e… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/e… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][maint-15.0] Bug 41720: Switch back from cp -l to mv.
by Pier Angelo Vendrame (@pierov) 09 Feb '26

09 Feb '26
Pier Angelo Vendrame pushed to branch maint-15.0 at The Tor Project / Applications / tor-browser-build Commits: 032c4cfd by Pier Angelo Vendrame at 2026-02-09T19:35:14+01:00 Bug 41720: Switch back from cp -l to mv. We switched to cp -l to avoid errors when trying to move an inode to itself (case we might enocunter when re-running projects/release/build, since we hard-link release files when possible). However, `cp -l` does not fall back to a copy when hard link is not possible, instead it fails. So, go back to `mv`, but run `rm -f` before running mv, to avoid the error when trying to move the file to itself. - - - - - 1 changed file: - projects/release/build Changes: ===================================== projects/release/build ===================================== @@ -5,53 +5,64 @@ destdir="[% dest_dir _ '/' _ c("var/publish_dir") %]" mkdir -p "$destdir" +function merge_directory { + pushd $1 + find -type d -exec mkdir -p $destdir/{} \; + # tor-browser-build#40338: Try to remove any existing destination, as it might + # be the same inode when re-running this script, which makes mv fail. + find -type f -exec rm -f $destdir/{} \; + find -type f -exec mv {} $destdir/{} \; + popd +} + [% IF c("var/browser_platforms/android-armv7") -%] - cp -alf "[% c('input_files_by_name/android-armv7') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/android-armv7') %]" [% END -%] [% IF c("var/browser_platforms/android-x86") -%] mv_files "[% c('input_files_by_name/android-x86') %]" [% END -%] [% IF c("var/browser_platforms/android-x86_64") -%] - cp -alf "[% c('input_files_by_name/android-x86_64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/android-x86_64') %]" [% END -%] [% IF c("var/browser_platforms/android-aarch64") -%] - cp -alf "[% c('input_files_by_name/android-aarch64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/android-aarch64') %]" [% END -%] [% IF c("var/browser_platforms/windows-i686") -%] - cp -alf "[% c('input_files_by_name/windows-i686') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/windows-i686') %]" [% END -%] [% IF c("var/browser_platforms/windows-x86_64") -%] - cp -alf "[% c('input_files_by_name/windows-x86_64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/windows-x86_64') %]" [% END -%] [% IF c("var/browser_platforms/macos") -%] - cp -alf "[% c('input_files_by_name/macos') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/macos') %]" [% END -%] [% IF c("var/browser_platforms/macos-x86_64") -%] - cp -alf "[% c('input_files_by_name/macos-x86_64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/macos-x86_64') %]" [% END -%] [% IF c("var/browser_platforms/macos-aarch64") -%] - cp -alf "[% c('input_files_by_name/macos-aarch64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/macos-aarch64') %]" [% END -%] [% IF c("var/browser_platforms/linux-i686") -%] mv_files "[% c('input_files_by_name/linux-i686') %]" [% END -%] [% IF c("var/browser_platforms/linux-x86_64") -%] - cp -alf "[% c('input_files_by_name/linux-x86_64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/linux-x86_64') %]" [% END -%] [% IF c("var/browser_platforms/linux-aarch64") -%] - cp -alf "[% c('input_files_by_name/linux-aarch64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/linux-aarch64') %]" [% END -%] [% IF c("var/linux-packages") || c("var/linux-packages-aarch64") -%] [% IF c("var/linux-packages") -%] - cp -alf "[% c('input_files_by_name/deb-packages') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/deb-packages') %]" [% END -%] [% IF c("var/linux-packages-aarch64") -%] - cp -alf "[% c('input_files_by_name/deb-packages-aarch64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/deb-packages-aarch64') %]" [% END -%] - cp -alf "[% c('input_files_by_name/rpm-packages') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/rpm-packages') %]" [% END -%] [% IF c("var/browser-src") -%] - cp -alf "[% c('input_files_by_name/src-firefox') %]" "$destdir"/ + rm -f "$destdir/[% c('input_files_by_name/src-firefox') %]" + mv [% c('input_files_by_name/src-firefox') %] "$destdir"/ [% END -%] cd "$destdir" cat > .htaccess <<'EOF' View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/0… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/0… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][main] Bug 41720: Switch back from cp -l to mv.
by boklm (@boklm) 09 Feb '26

09 Feb '26
boklm pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 6bb082cb by Pier Angelo Vendrame at 2026-02-09T19:24:54+01:00 Bug 41720: Switch back from cp -l to mv. We switched to cp -l to avoid errors when trying to move an inode to itself (case we might enocunter when re-running projects/release/build, since we hard-link release files when possible). However, `cp -l` does not fall back to a copy when hard link is not possible, instead it fails. So, go back to `mv`, but run `rm -f` before running mv, to avoid the error when trying to move the file to itself. - - - - - 1 changed file: - projects/release/build Changes: ===================================== projects/release/build ===================================== @@ -5,47 +5,58 @@ destdir="[% dest_dir _ '/' _ c("var/publish_dir") %]" mkdir -p "$destdir" +function merge_directory { + pushd $1 + find -type d -exec mkdir -p $destdir/{} \; + # tor-browser-build#40338: Try to remove any existing destination, as it might + # be the same inode when re-running this script, which makes mv fail. + find -type f -exec rm -f $destdir/{} \; + find -type f -exec mv {} $destdir/{} \; + popd +} + [% IF c("var/browser_platforms/android-armv7") -%] - cp -alf "[% c('input_files_by_name/android-armv7') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/android-armv7') %]" [% END -%] [% IF c("var/browser_platforms/android-x86_64") -%] - cp -alf "[% c('input_files_by_name/android-x86_64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/android-x86_64') %]" [% END -%] [% IF c("var/browser_platforms/android-aarch64") -%] - cp -alf "[% c('input_files_by_name/android-aarch64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/android-aarch64') %]" [% END -%] [% IF c("var/browser_platforms/windows-i686") -%] - cp -alf "[% c('input_files_by_name/windows-i686') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/windows-i686') %]" [% END -%] [% IF c("var/browser_platforms/windows-x86_64") -%] - cp -alf "[% c('input_files_by_name/windows-x86_64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/windows-x86_64') %]" [% END -%] [% IF c("var/browser_platforms/macos") -%] - cp -alf "[% c('input_files_by_name/macos') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/macos') %]" [% END -%] [% IF c("var/browser_platforms/macos-x86_64") -%] - cp -alf "[% c('input_files_by_name/macos-x86_64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/macos-x86_64') %]" [% END -%] [% IF c("var/browser_platforms/macos-aarch64") -%] - cp -alf "[% c('input_files_by_name/macos-aarch64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/macos-aarch64') %]" [% END -%] [% IF c("var/browser_platforms/linux-x86_64") -%] - cp -alf "[% c('input_files_by_name/linux-x86_64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/linux-x86_64') %]" [% END -%] [% IF c("var/browser_platforms/linux-aarch64") -%] - cp -alf "[% c('input_files_by_name/linux-aarch64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/linux-aarch64') %]" [% END -%] [% IF c("var/linux-packages") || c("var/linux-packages-aarch64") -%] [% IF c("var/linux-packages") -%] - cp -alf "[% c('input_files_by_name/deb-packages') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/deb-packages') %]" [% END -%] [% IF c("var/linux-packages-aarch64") -%] - cp -alf "[% c('input_files_by_name/deb-packages-aarch64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/deb-packages-aarch64') %]" [% END -%] - cp -alf "[% c('input_files_by_name/rpm-packages') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/rpm-packages') %]" [% END -%] [% IF c("var/browser-src") -%] - cp -alf "[% c('input_files_by_name/src-firefox') %]" "$destdir"/ + rm -f "$destdir/[% c('input_files_by_name/src-firefox') %]" + mv [% c('input_files_by_name/src-firefox') %] "$destdir"/ [% END -%] cd "$destdir" cat > .htaccess <<'EOF' View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/6… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/6… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][main] Bug 28595: Remove the need to update var/gradle_dependencies_version
by boklm (@boklm) 09 Feb '26

09 Feb '26
boklm pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 7c8ce499 by Nicolas Vigier at 2026-02-09T19:00:44+01:00 Bug 28595: Remove the need to update var/gradle_dependencies_version - - - - - 12 changed files: - doc/how-to-update-gradle-dependencies-list.md - projects/application-services/config - projects/application-services/gradle-dependencies-list.txt - projects/geckoview/config - projects/geckoview/gradle-dependencies-list.txt - projects/glean/config - projects/glean/gradle-dependencies-list.txt - projects/oss-licenses-plugin/config - projects/oss-licenses-plugin/gradle-dependencies-list.txt - rbm - rbm.conf - tools/fix_gradle_deps.py Changes: ===================================== doc/how-to-update-gradle-dependencies-list.md ===================================== @@ -13,8 +13,6 @@ 5. Extract it. 6. Move the `gradle-dependencies-list.txt` you just extracted to `projects/<project name>/`. -7. Bump `var/gradle_dependencies_version`. - The preferred format is `<project version>-<list version>`. Theoretically, it should be also possible to set `generate_gradle_dependencies_list: 1` in `rbm.local.conf`, run a full build and @@ -68,13 +66,8 @@ from the output artifact. New Android projects should be setup to do this. -> **Important**: dependencies are keyed and cached. So, after updating the list, -> you must also bump `var/gradle_dependencies_version`. - -This used to be an integer, but to avoid clashes between the main and -maintenance branches, we decided to switch to a -`<project version>-<list version>` format. -Usually, the list version will be `1`. +Dependencies are keyed and cached. The key is a checksum of the +gradle-dependencies-list.txt file. ## Consuming the list @@ -86,6 +79,8 @@ hashes of all the other artifacts. You can wire it in your project with code that looks like this: ```yaml +- filename: gradle-dependencies-list.txt + name: gradle-dependencies-list - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]' name: gradle-dependencies exec: '[% INCLUDE "fetch-gradle-dependencies" %]' ===================================== projects/application-services/config ===================================== @@ -20,8 +20,6 @@ container: var: build_number: 1 - # This should be updated when the list of gradle dependencies is changed. - gradle_dependencies_version: 147.0-1 gradle_version: 8.14.3 nss_version: '3.118.1' nspr_version: '4.37' @@ -73,6 +71,8 @@ steps: - URL: 'https://ftp.mozilla.org/pub/security/nss/releases/NSS_[% c("var/nss_version") | replace("\\.", "_") %]_RTM/src/nss-[% c("var/nss_version") %]-with-nspr-[% c("var/nspr_version") %].tar.gz' name: nss sha256sum: 9e1f7da9f4e5e3bdfd73f7dc2c618d6125a12354aadaeedbb35af3699bc03e15 + - filename: gradle-dependencies-list.txt + name: gradle-dependencies-list - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]' name: gradle-dependencies exec: '[% INCLUDE "fetch-gradle-dependencies" %]' ===================================== projects/application-services/gradle-dependencies-list.txt ===================================== @@ -1,4 +1,3 @@ -# Don't forget to update var/gradle_dependencies_version when modifying this file sha256sum | url 6bd4c7c7476f8260cd3bdbb81183583e93fc9f790c27dea7dc314181cbf87aa0 | https://dl.google.com/dl/android/maven2/androidx/annotation/annotation-expe… 2ac2f7106e12f263425b4a4dfc80989447fb895675fe902d86759aa74fd12b7d | https://dl.google.com/dl/android/maven2/androidx/annotation/annotation-expe… ===================================== projects/geckoview/config ===================================== @@ -36,9 +36,6 @@ var: - python3-zstandard - pkg-config - openjdk-17-jdk-headless - # this should be updated when the list of gradle dependencies is changed - # see doc/how-to-create-gradle-dependencies-list.txt - gradle_dependencies_version: 147-1 gradle_version: 8.14.3 glean_parser: 14.0.1 # python/mozboot/mozboot/android.py @@ -181,6 +178,8 @@ input_files: enable: '[% c("var/rlbox") %]' - project: application-services name: application-services + - filename: gradle-dependencies-list.txt + name: gradle-dependencies-list - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]' name: gradle-dependencies exec: '[% INCLUDE "fetch-gradle-dependencies" %]' ===================================== projects/geckoview/gradle-dependencies-list.txt ===================================== @@ -1,4 +1,3 @@ -# Don't forget to update var/gradle_dependencies_version when modifying this file sha256sum | url 1ed13a50edbb885962751e1bcb5b8a4207a20cb780ea248ffa653aab3fb10fe9 | https://maven.google.com/androidx/activity/activity-compose/1.10.1/activity… e64db6b7126fb512394bc3cf4332a38828009daa8dd56ecbe6c0c7300b2127f5 | https://maven.google.com/androidx/activity/activity-compose/1.10.1/activity… ===================================== projects/glean/config ===================================== @@ -10,8 +10,6 @@ container: build: '[% !c("var/generate_gradle_dependencies_list") %]' var: - # This should be updated when the list of gradle dependencies is changed. - gradle_dependencies_version: 66.1.1-1 gradle_version: 8.14.3 # Uncomment this to run an online build to grab an updated # gradle-dependencies-list.txt. @@ -49,6 +47,8 @@ steps: pkg_type: cargo_vendor norec: sha256sum: 417e8e09a7fbe3205827dfa518bfc4a7a08f1869e6d4fd9edf5d8f3f1f48061a + - filename: gradle-dependencies-list.txt + name: gradle-dependencies-list - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]' name: gradle-dependencies exec: '[% INCLUDE "fetch-gradle-dependencies" %]' ===================================== projects/glean/gradle-dependencies-list.txt ===================================== @@ -1,4 +1,3 @@ -# Don't forget to update var/gradle_dependencies_version when modifying this file sha256sum | url 6bd4c7c7476f8260cd3bdbb81183583e93fc9f790c27dea7dc314181cbf87aa0 | https://dl.google.com/dl/android/maven2/androidx/annotation/annotation-expe… 2ac2f7106e12f263425b4a4dfc80989447fb895675fe902d86759aa74fd12b7d | https://dl.google.com/dl/android/maven2/androidx/annotation/annotation-expe… ===================================== projects/oss-licenses-plugin/config ===================================== @@ -4,8 +4,6 @@ git_hash: 185216f8268f8b1f8bfe2377ed3e57aa73b1121c # oss-licenses-plugin-v0.10.7 git_url: https://github.com/google/play-services-plugins.git var: - # This should be updated when the list of gradle dependencies is changed. - gradle_dependencies_version: 2 gradle_version: 8.14.3 container: @@ -15,6 +13,8 @@ input_files: - project: container-image - project: gradle name: gradle + - filename: gradle-dependencies-list.txt + name: gradle-dependencies-list - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]' name: gradle-dependencies exec: '[% INCLUDE "fetch-gradle-dependencies" %]' ===================================== projects/oss-licenses-plugin/gradle-dependencies-list.txt ===================================== @@ -1,5 +1,4 @@ # On how to update dependencies see doc/how-to-create-gradle-dependencies-list.txt -# Don't forget to update var/gradle_dependencies_version when modifying this file sha256sum | url 33c839e4236eabde3896c154d120d651e72064f393e456297c92041d00cc058e | https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/7.1.… 67a8f20626121a8e4f48fc63a392c0459173a9992eb35cc9c9c3ec82b882862c | https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/7.1.… ===================================== rbm ===================================== @@ -1 +1 @@ -Subproject commit 36608a50ccf8feedcd03eb846c606718f5ef2d6b +Subproject commit 4c881eb45291e323dcf4e4f1ae7eabed045ea8a3 ===================================== rbm.conf ===================================== @@ -155,7 +155,7 @@ var: input_files: [% c("input_files_id") %] build: [% SET step = c("step") -%] - [% c(step, { filename => 'f', output_dir => '/out', norec => {} }) %] + [% c(step, { filename => 'f', getting_id => 1, norec => {} }) %] display_name: '[% c("var/Project_Name") %] [% c("var/channel") FILTER ucfirst %]' exe_name: firefox @@ -300,6 +300,8 @@ var: # be enabled in rbm.local.conf. dev_artifacts: 0 + gradle_dependencies_version: '[% c("input_files_ids_by_name/gradle-dependencies-list").split(":").1.substr(0, 15) %]' + targets: notarget: linux-x86_64 noint: ===================================== tools/fix_gradle_deps.py ===================================== @@ -14,13 +14,12 @@ import requests # See https://gitlab.torproject.org/tpo/tpa/team/-/issues/41654. requests.packages.urllib3.util.connection.HAS_IPV6 = False -if len(sys.argv) < 3: +if len(sys.argv) < 2: print( - f"Usage: {sys.argv[0]} project-name gradle-dep-num" + f"Usage: {sys.argv[0]} project-name" ) sys.exit(1) target = sys.argv[1] -target_ver = sys.argv[2] # We assume the script is in tor-browser-build/tools tbbuild = Path(__file__).parent.parent @@ -38,14 +37,18 @@ for p in java_projects: parser = re.compile(r"^([0-9a-fA-F]+)\s+\|\s+(\S+)\s*$") pairs = [] +h = hashlib.sha256() with open(tbbuild / "projects" / target / "gradle-dependencies-list.txt") as f: for line in f.readlines(): + h.update(line.encode("utf-8")) line = line.strip() if line[0] == '#' or line == 'sha256sum | url': continue m = parser.match(line) pairs.append((m.group(2), m.group(1))) +target_ver = h.hexdigest()[:15] + dest_dir = tbbuild / "out" / target / f"gradle-dependencies-{target_ver}" dest_dir.mkdir(parents=True, exist_ok=True) os.chdir(str(dest_dir)) View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/7… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/7… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/rbm][main] Bug 40093: Add option to get the checksum of an input file
by boklm (@boklm) 09 Feb '26

09 Feb '26
boklm pushed to branch main at The Tor Project / Applications / RBM Commits: 4c881eb4 by Nicolas Vigier at 2026-01-28T09:51:39+01:00 Bug 40093: Add option to get the checksum of an input file input_files_ids_by_name/$name can be used to get the id (sha256sum or sha512sum) of an input file. At the same time we remove the notmpl option for simplification, which we have not used. We can add it back later in case it is useful. - - - - - 5 changed files: - doc/rbm_config.asc - doc/rbm_input_files.asc - doc/rbm_templates.asc - lib/RBM.pm - lib/RBM/DefaultConfig.pm Changes: ===================================== doc/rbm_config.asc ===================================== @@ -246,8 +246,17 @@ input_files_by_name:: with their +name+ as index. The input files without a +name+ are not in this hash. +input_files_ids_by_name:: + This option contains the ids (hashes) of all the +input_files+, + with their +name+ as index. The id of an input file will be the + value of the option +input_file_id+ if it is defined, or + +filename:hash+, where +filename+ is the filename of the file, + and +hash+ is the sha512sum if the +sha512sum+ option is defined, + the sha256sum otherwise. This option does not work for input + files of type +project+, +exec+ or +content+. + input_files_id:: - The value of this option is an identifier of the input_files. + The value of this option is a single identifier of all the input_files. When any of the input files is changed, the identifier changes. This identifier is something that can be used in a project's filename to trigger a rebuild when any of its input files is @@ -280,11 +289,6 @@ timestamp:: commit time of the commit used. If set to 0 it will use the current time. -notmpl:: - An array containing a list of options that should not be - processed as template (see the +template+ section below for - details). - step:: The value of this option is the name of the build script we are going to be running (by default 'build', but you could have an ===================================== doc/rbm_input_files.asc ===================================== @@ -53,7 +53,7 @@ filename:: name:: Optionaly the input_file can have a name. This name is used as - key in the +input_files_by_name+ option. + key in the +input_files_by_name+ and +input_files_ids_by_name+ options. content:: The content of the file. ===================================== doc/rbm_templates.asc ===================================== @@ -15,10 +15,7 @@ however, for the options that are needed to process templates, so they can't be templated themself. The following options are not templated : - projects_dir - -If you want to make other options not templated, add them to the -+notmpl+ config option, which is an array. All the other options are -automatically processed as template. + - modules_dir The template are made using perl Template Toolkit. You can read more about the syntax on the http://www.template-toolkit.org/[Template ===================================== lib/RBM.pm ===================================== @@ -237,11 +237,8 @@ sub config { } sub notmpl { - my ($name, $project) = @_; - return 1 if $name eq 'notmpl'; - my @n = (@{$config->{default}{notmpl}}, - @{project_config($project, 'notmpl')}); - return grep { $name eq $_ } @n; + my ($name) = @_; + return grep { $name eq $_ } @{$config->{default}{notmpl}}; } sub confkey_str { @@ -282,9 +279,13 @@ sub project_config { ['run'], $project_path, ['local'], [], @modules, ['system'], ['default']); if (!$options->{no_tmpl} && defined($res) && !ref $res - && !notmpl(confkey_str($name), $project)) { - $res = process_template($project, $res, - confkey_str($name) eq 'output_dir' ? '.' : undef); + && !notmpl(confkey_str($name))) { + my $output_dir = undef; + if (confkey_str($name) eq 'output_dir' || + confkey_str($name) eq 'getting_id_value/output_dir') { + $output_dir = '.'; + } + $res = process_template($project, $res, $output_dir); } $config_cache{$project}{$step}{$name_str}{$cache_id} = $res; $config->{opt} = $opt_save; @@ -733,7 +734,7 @@ sub process_template { } return $res; } - $dest_dir //= rbm_path(project_config($project, 'output_dir')); + $dest_dir //= rbm_path(project_config($project, 'getting_id_value/output_dir')); my $project_dir = modules_project_dir($project); my $common_dirs = join(':', modules_common_dirs($project)); my $template = Template->new( @@ -823,7 +824,7 @@ sub input_file_need_dl { $fname = undef; } } - if ($action eq 'input_files_id') { + if ($action eq 'input_files_id' || $action eq 'getfids') { return undef if $input_file->{input_file_id}; for my $checksum (qw/sha512sum sha256sum/) { if ( ($input_file->{$checksum} || $input_file->{norec}{$checksum}) @@ -861,7 +862,7 @@ sub input_file_id { return $filename . ':' . $t->($checksum); } } - my $opts = { norec => { output_dir => '/out', getting_id => 1, }}; + my $opts = { norec => { getting_id => 1, }}; return $filename . ':' . sha256_hex($t->('exec', $opts)) if $input_file->{exec}; shafile('sha256sum', $fname, { remove_cache => 1 }) if $t->('refresh_input'); @@ -923,6 +924,7 @@ sub input_files { my @res_copy; my %res_getfnames; my @res_getfpaths; + my %res_getfids; my $getfnames_noname = 0; my $input_files_id = ''; $options = {$options ? %$options : ()}; @@ -1016,6 +1018,11 @@ sub input_files { }; next; } + if ($action eq 'getfids') { + next if $input_file->{project}; + next if $input_file->{exec}; + next if $input_file->{content}; + } my $proj_out_dir; if ($input_file->{project}) { $proj_out_dir = rbm_path(project_step_config($t->('project'), 'output_dir', @@ -1038,38 +1045,51 @@ sub input_files { my ($fname) = file_in_dir($name, $src_dir, $proj_out_dir, @modules_common_dirs); my $file_gpg_id = gpg_id($t->('file_gpg_id')); + my $dl_file = sub {}; if (input_file_need_dl($input_file, $t, $fname, $action)) { - if ($t->('content')) { - my $dname = dirname("$proj_out_dir/$name"); - make_path($dname) unless -d $dname; - path("$proj_out_dir/$name")->spew_utf8($t->('content')); - } elsif ($t->('URL')) { - urlget($project, {%$options, %$input_file, filename => $name}, 1); - } elsif ($t->('exec')) { - my $exec_script = project_config($project, 'exec', - { $options ? %$options : (), %$input_file }); - if (run_script($project, $exec_script, - sub { system(@_) }) != 0) { - exit_error "Error creating $name"; + $dl_file = sub { + if ($t->('content')) { + my $dname = dirname("$proj_out_dir/$name"); + make_path($dname) unless -d $dname; + path("$proj_out_dir/$name")->spew_utf8($t->('content')); + } elsif ($t->('URL')) { + urlget($project, {%$options, %$input_file, filename => $name}, 1); + } elsif ($t->('exec')) { + my $exec_script = project_config($project, 'exec', + { $options ? %$options : (), %$input_file }); + if (run_script($project, $exec_script, + sub { system(@_) }) != 0) { + exit_error "Error creating $name"; + } + } elsif ($input_file->{project} && $t->('project')) { + my $p = $t->('project'); + print "Building project $p - $name\n"; + my $run_save = $config->{run}; + $config->{run} = { target => $input_file->{target} }; + $config->{run}{target} //= $run_save->{target}; + build_pkg($p, {%$options, origin_project => $project, + %$input_file}); + $config->{run} = $run_save; + print "Finished build of project $p - $name\n"; + } else { + dd $input_file; + exit_error "Missing file $name"; } - } elsif ($input_file->{project} && $t->('project')) { - my $p = $t->('project'); - print "Building project $p - $name\n"; - my $run_save = $config->{run}; - $config->{run} = { target => $input_file->{target} }; - $config->{run}{target} //= $run_save->{target}; - build_pkg($p, {%$options, origin_project => $project, - %$input_file}); - $config->{run} = $run_save; - print "Finished build of project $p - $name\n"; - } else { - dd $input_file; - exit_error "Missing file $name"; + ($fname) = file_in_dir($name, $src_dir, $proj_out_dir, + @modules_common_dirs); + exit_error "Error getting file $name" unless $fname; } - ($fname) = file_in_dir($name, $src_dir, $proj_out_dir, - @modules_common_dirs); - exit_error "Error getting file $name" unless $fname; } + if ($action eq 'getfids') { + my $if_name = $t->('name') if $input_file->{name}; + next unless $if_name; + $res_getfids{$if_name} = sub { + $dl_file->(); + return input_file_id($input_file, $t, $fname, $name); + }; + next; + } + $dl_file->(); if ($action eq 'input_files_id') { $input_files_id .= input_file_id($input_file, $t, $fname, $name); $input_files_id .= "\n"; @@ -1145,6 +1165,7 @@ sub input_files { return @res_copy if ($action eq 'copy' || $action eq 'link'); return \%res_getfnames if $action eq 'getfnames'; return \@res_getfpaths if $action eq 'getfpaths'; + return \%res_getfids if $action eq 'getfids'; } sub system_log { ===================================== lib/RBM/DefaultConfig.pm ===================================== @@ -114,6 +114,12 @@ our %default_config = ( projects_dir => 'projects', modules_dir => 'modules', output_dir => 'out', + # `getting_id_value/output_dir` is used as `output_dir` when processing + # template. To avoid having ids being affected by changing `output_dir`, + # a fixed value is returned when `getting_id` is set. + getting_id_value => { + output_dir => '[% IF c("getting_id"); GET "/out"; ELSE; GET c("output_dir"); END %]', + }, git_clone_dir => 'git_clones', hg_clone_dir => 'hg_clones', hg_clone_subdir => '.', @@ -122,7 +128,7 @@ our %default_config = ( build => '[% INCLUDE build -%]', build_log => '-', build_log_append => '1', - notmpl => [ qw(projects_dir modules_dir) ], + notmpl => [ qw(projects_dir modules_dir getting_id) ], abbrev_length => '12', abbrev => '[% IF c("git_url"); @@ -626,6 +632,7 @@ ZIP_END touch => "[% USE date %]touch -m -t [% date.format(c('timestamp'), format = '%Y%m%d%H%M') %]", arch => \&get_arch, input_files_by_name => sub { RBM::input_files('getfnames', @_); }, + input_files_ids_by_name => sub { RBM::input_files('getfids', @_); }, input_files_id => sub { RBM::input_files('input_files_id', @_); }, input_files_paths => sub { RBM::input_files('getfpaths', @_); }, link_input_files => '[% IF c("remote_exec") %]1[% END %]', View it on GitLab: https://gitlab.torproject.org/tpo/applications/rbm/-/commit/4c881eb45291e32… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/rbm/-/commit/4c881eb45291e32… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][main] Bug 41718: Updated Noto Emoji to v2.051.
by Pier Angelo Vendrame (@pierov) 09 Feb '26

09 Feb '26
Pier Angelo Vendrame pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 04871e60 by Pier Angelo Vendrame at 2026-02-05T14:53:57+01:00 Bug 41718: Updated Noto Emoji to v2.051. Also, cleaned up a few URLs of other fonts. Since we check the hash of the downloaded files, we can include the tag in GitHub URLs. - - - - - 1 changed file: - projects/fonts/config Changes: ===================================== projects/fonts/config ===================================== @@ -1,12 +1,14 @@ # vim: filetype=yaml sw=2 +# Version needs to be updated whenever we change the list of Noto fonts without +# changing var/noto_git_hash. version: '4' filename: "[% project %]-[% c('version') %]-[% c('var/platform') %]-[% c('var/build_id') %].tar.[% c('compress_tar') %]" container: # We just copy files around, no need to use a container. use_container: 0 var: - # noto-monthly-release-24.9.1 - noto_git_hash: eeb71fdda20300eb0891badeed5e64850e2cbc64 + # noto-monthly-release-2026.02.01 + noto_git_hash: 0dd6225462349adf863bf50d1a69ead98342e14d # Use this way so that the script that downloads the fonts can access the # lists of all the targets. noto_fonts_common: @@ -175,26 +177,25 @@ input_files: - URL: https://github.com/notofonts/noto-fonts/raw/71d0a9e78ae4257499cabd4a8ad3e5e… sha256sum: cf264a22292950ca1679b2ade07e9e6ecb26c649ab70975d0e113f979efa827a enable: '[% c("var/linux") %]' - # Noto Sans CJK Version 2.004 - - URL: https://github.com/googlefonts/noto-cjk/raw/523d033d6cb47f4a80c58a35753646f… + - URL: https://github.com/googlefonts/noto-cjk/raw/Sans2.004/Sans/SubsetOTF/JP/Not… sha256sum: dff723ba59d57d136764a04b9b2d03205544f7cd785a711442d6d2d085ac5073 enable: '[% c("var/linux") %]' - - URL: https://github.com/googlefonts/noto-cjk/raw/523d033d6cb47f4a80c58a35753646f… + - URL: https://github.com/googlefonts/noto-cjk/raw/Sans2.004/Sans/SubsetOTF/KR/Not… sha256sum: 69975a0ac8472717870aefeab0a4d52739308d90856b9955313b2ad5e0148d68 enable: '[% c("var/linux") %]' - - URL: https://github.com/googlefonts/noto-cjk/raw/523d033d6cb47f4a80c58a35753646f… + - URL: https://github.com/googlefonts/noto-cjk/raw/Sans2.004/Sans/SubsetOTF/SC/Not… sha256sum: faa6c9df652116dde789d351359f3d7e5d2285a2b2a1f04a2d7244df706d5ea9 enable: '[% c("var/linux") %]' - - URL: https://github.com/googlefonts/noto-cjk/raw/523d033d6cb47f4a80c58a35753646f… + - URL: https://github.com/googlefonts/noto-cjk/raw/Sans2.004/Sans/SubsetOTF/TC/Not… sha256sum: 5bab0cb3c1cf89dde07c4a95a4054b195afbcfe784d69d75c340780712237537 enable: '[% c("var/linux") %]' - - URL: https://github.com/googlefonts/noto-emoji/raw/b3e3051a088047d19fd4d49b1c3ac… - sha256sum: 3ed77810c203e1a67735dc19d395f32c23f2d7c0c3696690f4f78e15e57ab816 + - URL: https://github.com/googlefonts/noto-emoji/raw/v2.051/fonts/NotoColorEmoji.t… + sha256sum: 72a635cb3d2f3524c51620cdde406b217204e8a6a06c6a096ff8ed4b5fd6e27b enable: '[% c("var/linux") %]' - URL: https://github.com/stipub/stixfonts/raw/v2.13b171/fonts/static_otf/STIXTwoM… sha256sum: 3a5f3f26f40d5698b3c62dd085d48d6663696a3f80825aab8b553d5097518e8c name: stix enable: '[% c("var/have_stix") %]' - - URL: 'https://github.com/mcfnlp/Pyidaungsu/raw/refs/heads/master/Pyidaungsu2.5.3/…' + - URL: 'https://github.com/mcfnlp/Pyidaungsu/raw/refs/heads/ff1cd8dfe8c451244329d7a…' sha256sum: df7106c15da76f6a24c10821b43da51f54961f6bc6791fb1fcf21c6c60bb2e10 name: Pyidaungsu View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/0… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/0… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][base-browser-147.0a1-16.0-2] fixup! BB 43564: Modify ./mach bootstrap for Base Browser
by brizental (@brizental) 06 Feb '26

06 Feb '26
brizental pushed to branch base-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: f5d1594c by Beatriz Rizental at 2026-02-06T17:10:35-03:00 fixup! BB 43564: Modify ./mach bootstrap for Base Browser - - - - - 1 changed file: - build/moz.configure/bootstrap.configure Changes: ===================================== build/moz.configure/bootstrap.configure ===================================== @@ -198,7 +198,7 @@ def bootstrap_path(path, **kwargs): path_prefix = path_parts.pop(0) # Small hack because extensions are inside the browser folder. - if path_parts[0] in ("noscript", ): + if path_parts[0] in ("noscript",): path_prefix = "browser" def try_tbb_bootstrap(exists): View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/f5d1594… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/f5d1594… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-147.0a1-16.0-2] 2 commits: fixup! TB 42247: Android helpers for the TorProvider
by clairehurst (@clairehurst) 06 Feb '26

06 Feb '26
clairehurst pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 5eb4ba41 by Dan Ballard at 2026-02-05T13:09:54-07:00 fixup! TB 42247: Android helpers for the TorProvider Bug 43645: wiring in proper call to shutdown the tor process - - - - - c9a70495 by Dan Ballard at 2026-02-05T13:09:54-07:00 fixup! TB 41878: [android] Add standalone Tor Bootstrap Bug 43645: wire in call to shutdown tor process onDestroy - - - - - 4 changed files: - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorController.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorControllerGV.kt - mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorAndroidIntegration.java Changes: ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt ===================================== @@ -184,6 +184,7 @@ import mozilla.components.browser.engine.gecko.GeckoEngine import org.mozilla.fenix.compose.core.Action import org.mozilla.fenix.compose.snackbar.SnackbarState import org.mozilla.fenix.compose.snackbar.Snackbar +import org.mozilla.fenix.tor.TorController import org.mozilla.fenix.tor.UrlQuickLoadViewModel import org.mozilla.geckoview.TorAndroidIntegration.BootstrapStateChangeListener import org.mozilla.geckoview.TorConnectStage @@ -1586,6 +1587,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { // If we don't manually stop the service, the persistent "close tabs" notification sometimes does not clear applicationContext.stopService(Intent(applicationContext, PrivateNotificationService::class.java)) finishAndRemoveTask() + components.torController.shutdown() exitProcess(0) } } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorController.kt ===================================== @@ -38,4 +38,5 @@ interface TorController { fun initiateTorBootstrap(lifecycleScope: LifecycleCoroutineScope? = null, withDebugLogging: Boolean = false) fun stopTor() + fun shutdown() } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorControllerGV.kt ===================================== @@ -176,6 +176,10 @@ class TorControllerGV( getTorIntegration().cancelBootstrap() } + override fun shutdown() { + getTorIntegration().shutdown() + } + // TorEventsBootstrapStateChangeListener override fun onBootstrapStageChange(stage: TorConnectStage) { Log.d(TAG, "onBootstrapStageChange(stage = $stage)") ===================================== mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorAndroidIntegration.java ===================================== @@ -105,8 +105,8 @@ public class TorAndroidIntegration implements BundleEventListener { registerListener(); } - /* package */ synchronized void shutdown() { - // FIXME: It seems this never gets called + // To be called when the app is shutting down only + public synchronized void shutdown() { if (mTorProcess != null) { mTorProcess.shutdown(); mTorProcess = null; @@ -332,7 +332,7 @@ public class TorAndroidIntegration implements BundleEventListener { Log.i(TAG, "[tor-" + mHandle + "] " + line); } } catch (IOException e) { - Log.e(TAG, "Failed to read stdout of the tor process " + mHandle, e); + Log.e(TAG, "Failed to read stdout of the tor process " + mHandle + " (expected when program is exiting)", e); } Log.d(TAG, "Exiting the stdout loop for process " + mHandle); final GeckoBundle data = new GeckoBundle(2); View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/cd8bcb… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/cd8bcb… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-147.0a1-16.0-2] 2 commits: fixup! Temporary changes to about:torconnect for Android.
by clairehurst (@clairehurst) 05 Feb '26

05 Feb '26
clairehurst pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 12387757 by clairehurst at 2026-02-05T12:20:55-07:00 fixup! Temporary changes to about:torconnect for Android. This reverts commit aed2663396d9fe060829290ac9e64774131ac1c3. - - - - - cd8bcb6e by clairehurst at 2026-02-05T12:20:55-07:00 fixup! [android] Implement Android-native Connection Assist UI - - - - - 9 changed files: - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt - mobile/android/fenix/app/src/main/res/values/preference_keys.xml - mobile/android/fenix/app/src/main/res/xml/preferences.xml - toolkit/components/torconnect/content/aboutTorConnect.css - toolkit/components/torconnect/content/aboutTorConnect.html - toolkit/components/torconnect/content/aboutTorConnect.js Changes: ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt ===================================== @@ -185,7 +185,6 @@ import org.mozilla.fenix.compose.core.Action import org.mozilla.fenix.compose.snackbar.SnackbarState import org.mozilla.fenix.compose.snackbar.Snackbar import org.mozilla.fenix.tor.UrlQuickLoadViewModel -import org.mozilla.geckoview.TorAndroidIntegration import org.mozilla.geckoview.TorAndroidIntegration.BootstrapStateChangeListener import org.mozilla.geckoview.TorConnectStage import kotlin.system.exitProcess @@ -197,7 +196,7 @@ import kotlin.system.exitProcess * - browser screen */ @SuppressWarnings("TooManyFunctions", "LargeClass", "LongMethod") -open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAndroidIntegration.BootstrapStateChangeListener { +open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { @VisibleForTesting internal lateinit var binding: ActivityHomeBinding lateinit var themeManager: ThemeManager @@ -611,14 +610,6 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn onBackPressedCallback = onBackPressedCallback, ) - if (settings().useHtmlConnectionUi) { - val engine = components.core.engine - if (engine is GeckoEngine) { - val torIntegration = engine.getTorIntegrationController() - torIntegration.registerBootstrapStateChangeListener(this) - } - } - StartupTimeline.onActivityCreateEndHome(this) // DO NOT MOVE ANYTHING BELOW HERE. } @@ -1388,20 +1379,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn @VisibleForTesting internal fun navigateToHome(navController: NavController) { - // if (this is ExternalAppBrowserActivity) { - // return - // } - - if (!settings().useHtmlConnectionUi) { - navController.navigate(NavGraphDirections.actionStartupTorConnectionAssist()) - } else { - navController.navigate(NavGraphDirections.actionStartupHome()) - openToBrowserAndLoad( - searchTermOrURL = "about:torconnect", - newTab = true, - from = BrowserDirection.FromHome, - ) - } + navController.navigate(NavGraphDirections.actionStartupTorConnectionAssist()) } final override fun attachBaseContext(base: Context) { @@ -1610,14 +1588,4 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn finishAndRemoveTask() exitProcess(0) } - - override fun onBootstrapStageChange(stage: TorConnectStage) { - if (stage.isBootstrapped) { - if (settings().useHtmlConnectionUi) { - components.useCases.tabsUseCases.removeAllTabs() - navHost.navController.navigate(NavGraphDirections.actionStartupHome()) - } - } - } - override fun onBootstrapProgress(progress: Double, hasWarnings: Boolean) = Unit } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt ===================================== @@ -1954,10 +1954,6 @@ abstract class BaseBrowserFragment : @Suppress("DEPRECATION") it.announceForAccessibility(selectedTab.toDisplayTitle()) - if (getCurrentTab()?.content?.url == "about:torconnect") { - // FIXME: view is not available anymore. - // browserToolbarView.view.visibility = View.GONE - } } } else { view?.let { view -> initializeUI(view) } @@ -1991,26 +1987,6 @@ abstract class BaseBrowserFragment : ), ) } - - handleBetaHtmlTorConnect() - } - - private fun handleBetaHtmlTorConnect() { - val currentTab = getCurrentTab() ?: return - if (currentTab.content.url == "about:torconnect") { - if (!requireActivity().settings().useHtmlConnectionUi) { - requireContext().components.useCases.tabsUseCases.removeTab(currentTab.id) - (requireActivity() as HomeActivity).navigateToHome( - findNavController(), - ) - } else { - // This just makes it not flash (be visible for a split second) before handleTabSelected() hides it again - // FIXME: view is not available anymore. - // browserToolbarView.view.visibility = View.GONE - } - } else if (currentTab.content.url == "about:tor") { - requireContext().components.useCases.tabsUseCases.removeTab(currentTab.id) - } } private fun evaluateMessagesForMicrosurvey(components: Components) = ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt ===================================== @@ -10,7 +10,6 @@ import android.os.Bundle import android.os.Handler import android.os.Looper import android.os.StrictMode -import android.util.Log import android.view.LayoutInflater import android.view.View import android.widget.Toast @@ -31,7 +30,6 @@ import androidx.preference.SwitchPreference import androidx.recyclerview.widget.RecyclerView import com.google.android.material.dialog.MaterialAlertDialogBuilder import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.launch import mozilla.components.browser.state.state.selectedOrDefaultSearchEngine @@ -732,20 +730,6 @@ class SettingsFragment : PreferenceFragmentCompat(), UserInteractionHandler { @VisibleForTesting internal fun setupHomepagePreference(settings: Settings) { - /*with(requirePreference<Preference>(R.string.pref_key_home)) { - summary = when { - settings.alwaysOpenTheHomepageWhenOpeningTheApp -> - getString(R.string.opening_screen_homepage_summary) - - settings.openHomepageAfterFourHoursOfInactivity -> - getString(R.string.opening_screen_after_four_hours_of_inactivity_summary) - - settings.alwaysOpenTheLastTabWhenOpeningTheApp -> - getString(R.string.opening_screen_last_tab_summary) - - else -> null - } - }*/ } @VisibleForTesting @@ -804,11 +788,6 @@ class SettingsFragment : PreferenceFragmentCompat(), UserInteractionHandler { } } - requirePreference<Preference>(R.string.pref_key_use_html_connection_ui).apply { - onPreferenceChangeListener = object : SharedPreferenceUpdater() {} - isVisible = Config.channel != ReleaseChannel.Release - } - requirePreference<Preference>(R.string.pref_key_tor_logs).apply { setOnPreferenceClickListener { val directions = ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt ===================================== @@ -2899,11 +2899,6 @@ class Settings( return sharedPreferences.getBoolean(cleanupPreferenceKey, false) } - var useHtmlConnectionUi by booleanPreference( - key = appContext.getPreferenceKey(R.string.pref_key_use_html_connection_ui), - default = false, - ) - var quickStart by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_quick_start), default = false, ===================================== mobile/android/fenix/app/src/main/res/values/preference_keys.xml ===================================== @@ -538,7 +538,6 @@ <string name="pref_key_tor_network_settings_explanation" translatable="false">pref_key_tor_network_settings_explanation</string> <string name="pref_key_tor_network_settings_bridge_config" translatable="false">pref_key_tor_network_settings_bridge_config</string> <string name="pref_key_tor_logs" translatable="false">pref_key_tor_logs</string> - <string name="pref_key_use_html_connection_ui" translatable="false">pref_key_use_html_connection_ui</string> <!-- Changing the pref_key should reset it to off for users that had it enabled --> <string name="pref_key_about_config_shortcut" translatable="false">pref_key_about_config_shortcut</string> <string name="pref_key_tor_network_settings_bridge_config_explanation" translatable="false">pref_key_tor_network_settings_bridge_config_explanation</string> <string name="pref_key_tor_network_settings_bridge_config_toggle" translatable="false">pref_key_tor_network_settings_bridge_config_toggle</string> ===================================== mobile/android/fenix/app/src/main/res/xml/preferences.xml ===================================== @@ -181,13 +181,6 @@ android:title="@string/tor_connect_automatically_label" app:iconSpaceReserved="false" /> - <SwitchPreference - android:defaultValue="false" - android:key="@string/pref_key_use_html_connection_ui" - android:summary="Recommended only for debugging" - android:title="Enable HTML connection UI" - app:iconSpaceReserved="false" /> - <Preference android:key="@string/pref_key_tor_logs" app:iconSpaceReserved="false" ===================================== toolkit/components/torconnect/content/aboutTorConnect.css ===================================== @@ -4,11 +4,6 @@ @import url("chrome://global/skin/tor-colors.css"); @import url("chrome://global/skin/onion-pattern.css"); -html { - width: 100%; - height: 100%; -} - body:not(.loaded) { /* Keep blank whilst loading. */ display: none; @@ -275,147 +270,3 @@ body.aboutTorConnect .title.location { background-image: url("chrome://global/content/torconnect/connection-location.svg"); stroke: var(--icon-color-warning); } - -/* Android-specific CSS, to be removed when we use only the native UI. */ -:root { - --android-dark-accents-buttons: #9059ff; - --android-dark-background-secondary: #e1e0e7; - --android-dark-text-primary: #fbfbfe; - --android-light-text-primary: #15141a; -} - -[hidden="true"] { - display: none !important; -} - -body.android { - width: 100%; - height: 100%; - box-sizing: border-box; - margin: 0; - padding: 0 24px !important; - color: var(--android-dark-text-primary); - background: linear-gradient(194deg, #692e9d -0.93%, #393270 48.91%); - font: menu; - font-size: var(--font-size-small); - display: flex; -} - -.android #connectPageContainer { - max-width: none; - display: flex; - flex-direction: column; - flex: 1; -} - -.android #breadcrumbs { - display: none; -} - -.android #text-container { - display: flex; - flex-direction: column; - flex: 1; -} - -.android .title { - background-position: left 0; - background-repeat: no-repeat; - background-size: 40px; - padding-top: 64px; - font-size: var(--font-size-xlarge); - line-height: 28px; -} - -.android h1 { - font-weight: var(--font-weight); - font-size: inherit; - margin: 0 0 16px 0; -} - -.android p { - margin: 0; - padding-bottom: 8px; - line-height: 20px; -} - -.android #quickstartContainer { - margin-top: 24px; -} - -.android .button-container { - display: flex; - flex: 1; - flex-direction: column; -} - -.android #locationDropdown { - width: 100%; - max-width: none; - margin: 0; -} - -.android select { - background: transparent; - border: none; - /* stylelint-disable-next-line stylelint-plugin-mozilla/use-border-color-tokens */ - border-bottom: 1px solid var(--android-dark-text-primary); - color: var(--android-dark-text-primary); - display: block; - width: 100%; - margin-top: 10px; - padding: 8px; -} - -.android #buttonPadding { - flex: 1; -} - -body:not(.android) #connectButtonContainer { - /* Use the .button-container context */ - display: contents; -} - -.android #connectButtonContainer { - width: 100%; - padding-bottom: 18px; - display: grid; -} - -/* Be sure not to match the togglee */ -.android #connectButtonContainer button { - display: block; - width: 100%; - margin: 4px 0; - padding: 11px 30px; - font-size: var(--font-size-small); - font-weight: var(--font-weight); - border: none; - border-radius: var(--border-radius-small); -} - -.android #connectButton, -.android #tryBridgeButton, -.android #configureButton.primary { - color: var(--android-dark-text-primary); - background-color: var(--android-dark-accents-buttons); -} - -.android #configureButton { - order: 1; -} - -.android #restartButton { - order: 2; -} - -.android #restartButton, -.android #cancelButton, -.android #configureButton { - color: var(--android-light-text-primary); - background-color: var(--android-dark-background-secondary); -} - -.android .onion-pattern-container { - display: none; -} ===================================== toolkit/components/torconnect/content/aboutTorConnect.html ===================================== @@ -6,7 +6,6 @@ http-equiv="Content-Security-Policy" content="default-src chrome:; object-src 'none'" /> - <meta name="viewport" content="width=device-width" /> <link rel="stylesheet" href="chrome://global/content/torconnect/aboutTorConnect.css" @@ -65,7 +64,11 @@ <moz-toggle id="quickstartToggle"></moz-toggle> </div> - <div class="button-container"> + <div id="connectButtonContainer" class="button-container"> + <button id="restartButton" hidden="true"></button> + <button id="configureButton" hidden="true"></button> + <button id="cancelButton" hidden="true"></button> + <button id="connectButton" hidden="true" class="tor-button"></button> <label id="locationDropdownLabel" for="countries"></label> <form id="locationDropdown" hidden="true"> <select id="regions-select"> @@ -74,22 +77,11 @@ <optgroup id="full-regions-option-group"></optgroup> </select> </form> - <span id="buttonPadding"></span> - <span id="connectButtonContainer"> - <button id="restartButton" hidden="true"></button> - <button id="configureButton" hidden="true"></button> - <button id="cancelButton" hidden="true"></button> - <button - id="connectButton" - hidden="true" - class="tor-button" - ></button> - <button - id="tryBridgeButton" - hidden="true" - class="tor-button" - ></button> - </span> + <button + id="tryBridgeButton" + hidden="true" + class="tor-button" + ></button> </div> </div> </div> ===================================== toolkit/components/torconnect/content/aboutTorConnect.js ===================================== @@ -66,7 +66,7 @@ class AboutTorConnect { connect: "button#connectButton", tryBridge: "button#tryBridgeButton", locationDropdownLabel: "#locationDropdownLabel", - locationDropdown: "#locationDropdown", + locationDropdown: "form#locationDropdown", locationDropdownSelect: "#regions-select", }, }); @@ -757,9 +757,6 @@ class AboutTorConnect { } initElements(direction) { - const isAndroid = navigator.userAgent.includes("Android"); - document.body.classList.toggle("android", isAndroid); - document.documentElement.setAttribute("dir", direction); this.elements.connectToTorLink.addEventListener("click", () => { View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/e2e816… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/e2e816… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-147.0a1-16.0-2] 2 commits: Bug 2013390: Test file extension before testing zip and tarfiles.r=ahal
by brizental (@brizental) 05 Feb '26

05 Feb '26
brizental pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: bd2b83d9 by Beatriz Rizental at 2026-02-05T19:38:10+01:00 Bug 2013390: Test file extension before testing zip and tarfiles.r=ahal The tarfile check specifically has been returning false positives on DMG files. Differential Revision: https://phabricator.services.mozilla.com/D281070 - - - - - e2e81683 by Beatriz Rizental at 2026-02-05T19:38:10+01:00 Bug 2013358: Drop Python <3.13 requirement from manifestparser.r=ahal Differential Revision: https://phabricator.services.mozilla.com/D281036 - - - - - 2 changed files: - testing/mozbase/manifestparser/setup.py - testing/mozbase/mozinstall/mozinstall/mozinstall.py Changes: ===================================== testing/mozbase/manifestparser/setup.py ===================================== @@ -25,6 +25,7 @@ setup( "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", ], # Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers keywords="mozilla manifests", @@ -39,5 +40,5 @@ setup( [console_scripts] manifestparser = manifestparser.cli:main """, - python_requires=">=3.8, <3.13", + python_requires=">=3.8", ) ===================================== testing/mozbase/mozinstall/mozinstall/mozinstall.py ===================================== @@ -121,12 +121,12 @@ def install(src, dest): if src.lower().endswith(".msix"): # MSIX packages _are_ ZIP files, so we need to look for them first. install_dir = _install_msix(src) - elif zipfile.is_zipfile(src) or tarfile.is_tarfile(src): - install_dir = mozfile.extract(src, dest)[0] elif src.lower().endswith(".dmg"): install_dir = _install_dmg(src, dest) elif src.lower().endswith(".exe"): install_dir = _install_exe(src, dest) + elif zipfile.is_zipfile(src) or tarfile.is_tarfile(src): + install_dir = mozfile.extract(src, dest)[0] else: raise InvalidSource(f"{src} is not a valid installer file") View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/ffe41b… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/ffe41b… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][base-browser-147.0a1-16.0-2] fixup! BB 42683: Create script to generate issue triage csv file from bugzilla query and git logs
by Pier Angelo Vendrame (@pierov) 05 Feb '26

05 Feb '26
Pier Angelo Vendrame pushed to branch base-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: f54e79d0 by Pier Angelo Vendrame at 2026-02-05T19:14:32+01:00 fixup! BB 42683: Create script to generate issue triage csv file from bugzilla query and git logs Delete the script that has been moved to tor-browser-build:tools/browser. - - - - - 1 changed file: - − tools/torbrowser/generate-bugzilla-triage-csv.sh Changes: ===================================== tools/torbrowser/generate-bugzilla-triage-csv.sh deleted ===================================== @@ -1,239 +0,0 @@ -#!/usr/bin/env bash - -# prints to stderr -function echoerr() { echo "$@" 1>&2; } - -# help dialog -if [ "$#" -lt 5 ]; then - echoerr "Usage: $0 ff-version begin-commit end-commit gitlab-audit-issue reviewers..." - echoerr "" - echoerr "Writes a CSV to stdout of Bugzilla issues to triage for a particular Firefox version. This" - echoerr "script performs a union of the labeled Bugzilla issues in Mozilla's issue tracker and the" - echoerr "labeled commits in the provided commit range" - echoerr - echoerr " ff-version rapid-release Firefox version to audit" - echoerr " begin-commit starting gecko-dev commit of this Firefox version" - echoerr " end-commit ending gecko-dev commit of this Firefox version" - echoerr " gitlab-audit-issue tor-browser-spec Gitlab issue number for this audit" - echoerr " reviewers... space-separated list of reviewers responsible for this audit" - echoerr "" - echoerr "Example:" - echoerr "" - echoerr "$0 116 FIREFOX_ESR_115_BASE FIREFOX_116_0_3_RELEASE 40064 richard pierov henry" - exit 1 -fi - -# set -x -set -e - - -# Ensure various required tools are available -function check_exists() { - local cmd=$1 - if ! which ${cmd} > /dev/null ; then - echoerr "missing ${cmd} dependency" - exit 1 - fi -} - -check_exists git -check_exists jq -check_exists mktemp -check_exists perl -check_exists printf -check_exists sed -check_exists sort -check_exists touch -check_exists uniq -check_exists wget - -# Assign arguments to named variables -firefox_version=$1 -git_begin=$2 -git_end=$3 -audit_issue=$4 -reviewers="${@:5}" - -# Check valid Firefox version -if ! [[ "${firefox_version}" =~ ^[1-9][0-9]{2}$ ]]; then - echoerr "invalid Firefox version (probably)" - exit 1 -fi - -# Check valid Gitlab issue number -if ! [[ "${audit_issue}" =~ ^[1-9][0-9]{4}$ ]]; then - echoerr "invalid gitlab audit issue number (probably)" - exit 1 -fi - -# -# Encoding/Decoding Functions -# - -# escape " and \ -function json_escape() { - local input="$1" - echo "${input}" | sed 's/["\]/\\"/g' -} - - -# un-escape \" -function jq_unescape() { - local input="$1" - echo "${input}" | sed 's/\\"/"/g' -} - -# change quotes to double-quotes -function csv_escape() { - local input="$1" - echo "${input}" | sed 's/"/""/g' -} - -# we need to urlencode the strings used in the new issue link -function url_encode() { - local input="$1" - echo "${input}" | perl -MURI::Escape -wlne 'print uri_escape $_' -} - - -# -# Create temp json files -# -git_json=$(mktemp -t git-audit-${firefox_version}-XXXXXXXXXXX.json) -bugzilla_json=$(mktemp -t bugzilla-audit-${firefox_version}-XXXXXXXXXXX.json) -union_json=$(mktemp -t union-audit-${firefox_version}-XXXXXXXXXXX.json) -touch "${git_json}" -touch "${bugzilla_json}" -touch "${union_json}" - -function json_cleanup { - rm -f "${git_json}" - rm -f "${bugzilla_json}" - rm -f "${union_json}" -} -trap json_cleanup EXIT - -# -# Generate Git Commit Triage List -# - -# Try and extract bug id and summary from git log -# Mozilla's commits are not always 100% consistently named, so this -# regex is a bit flexible to handle various inputs such as: -# "Bug 1234 -", "Bug 1234:", "Bug Bug 1234 -", "[Bug 1234] -", " bug 1234 -". -sed_extract_id_summary="s/^[[ ]*[bug –-]+ ([1-9][0-9]*)[]:\., –-]*(.*)\$/\\1 \\2/pI" - -# Generate a json array of objects in the same format as bugzilla: {id: number, summary: string} -printf "[\n" >> "${git_json}" - -first_object=true -git log --format='%s' $git_begin..$git_end \ -| sed -En "${sed_extract_id_summary}" \ -| sort -h \ -| uniq \ -| while IFS= read -r line; do - read -r id summary <<< "${line}" - summary=$(json_escape "${summary}") - - # json does not allow trailing commas - if [[ "${first_object}" = true ]]; then - first_object=false - else - printf ",\n" >> "${git_json}" - fi - - printf " { \"id\": %s, \"summary\": \"%s\" }" ${id} "${summary}" >> "${git_json}" -done -printf "\n]\n" >> "${git_json}" - -# -# Download Bugzilla Triage List -# - -# search for: -# + Product is NOT "Thunderbird,Calander,Chat Core,MailNews Core" (&f1=product&n1=1&o1=anyexact&v1=Thunderbird%2CCalendar%2CChat%20Core%2CMailNews%20Core). AND -# + Target Milestone contains "${firefox_version}" (115 Branch or Firefox 115) (&f2=target_milestone&o2=substring&v2=${firefox_version}). -# "&limit=0" shows all matching bugs. - -query_tail="&f1=product&n1=1&o1=anyexact&v1=Thunderbird%2CCalendar%2CChat%20Core%2CMailNews%20Core&f2=target_milestone&o2=substring&v2=${firefox_version}&limit=0" - -bugzilla_query="https://bugzilla.mozilla.org/buglist.cgi?${query_tail}" -bugzilla_json_query="https://bugzilla.mozilla.org/rest/bug?include_fields=id,component,summary${…" - -wget "${bugzilla_json_query}" -O ${bugzilla_json} - - -# -# Create Union of these two sets of issues -# - -# bugzilla array is actually on a root object: { bugs: [...] } -jq -s '[ (.[0].bugs)[], (.[1])[] ] | group_by(.id) | map(.[0])' "${bugzilla_json}" "${git_json}" > "${union_json}" - -# -# Generate Triage CSV -# - -echo "\"Review\",,\"Bugzilla Component\",\"Bugzilla Bug\"" - -jq '. | sort_by([.component, .id])[] | "\(.id)|\(.component)|\(.summary)"' ${union_json} \ -| while IFS='|' read -r id component summary; do - - # bugzilla info - id="${id:1}" - component="${component:0}" - summary="${summary:0:-1}" - summary=$(jq_unescape "${summary}") - # short summary for gitlab issue title - [[ ${#summary} -gt 80 ]] && summary_short="${summary:0:77}..." || summary_short="${summary}" - - # filter out some issue types that we never care about - skip_issue=false - - # skip `[wpt-sync] Sync PR` - if [[ "${summary}" =~ ^\[wpt-sync\]\ Sync\ PR.*$ ]]; then - skip_issue=true - # skip `Crash in [@` and variants - elif [[ "${summary}" =~ ^Crash[esin\ ]*\ \[\@.*$ ]]; then - skip_issue=true - # skip `Assertion failuire: ` - elif [[ "${summary}" =~ ^Assertion\ failure:\ .*$ ]]; then - skip_issue=true - # skip `Hit MOZ_CRASH` - elif [[ "${summary}" =~ ^Hit\ MOZ_CRASH.*$ ]]; then - skip_issue=true - fi - - if [[ "${skip_issue}" = true ]]; then - echoerr "Skipped Bugzilla ${id}: ${summary_short}" - else - csv_summary=$(csv_escape "${summary}") - csv_component=$(csv_escape "${component}") - - # parent issue - bugzilla_url="https://bugzilla.mozilla.org/show_bug.cgi?id=${id}" - # review issue title - new_issue_title=$(url_encode "Review Mozilla ${id}: ${summary_short}") - # review issue description + labeling (14.0 stable, FF128-esr, Next) - new_issue_description=$(url_encode "### Bugzilla: ${bugzilla_url}")%0A$(url_encode "/label ~\"14.0 stable\" ~FF128-esr ~Next")%0A$(url_encode "/relate tpo/applications/tor-browser-spec#${audit_issue}")%0A%0A$(url_encode "<!-- briefly describe why this issue needs further review -->")%0A - # url which create's new issue with title and description pre-populated - new_issue_url="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/new?iss…" - - # this link will start the creation of a new gitlab issue to review - create_issue=$(csv_escape "=HYPERLINK(\"${new_issue_url}\", \"New Issue\")") - bugzilla_link=$(csv_escape "=HYPERLINK(\"${bugzilla_url}\", \"Bugzilla ${id}: ${csv_summary}\")") - - echo "FALSE,\"${create_issue}\",\"${csv_component}\",\"${bugzilla_link}\"," - fi -done - -echo -echo "\"Triaged by:\"" -for reviewer in $reviewers; do - reviewer=$(csv_escape "${reviewer}") - echo "\"FALSE\",\"${reviewer}\"" -done -echo - -bugzilla_query="=HYPERLINK(\"${bugzilla_query}\", \"Bugzilla query\")" -echo \"$(csv_escape "${bugzilla_query}")\" View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/f54e79d… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/f54e79d… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-147.0a1-16.0-2] fixup! BB 42683: Create script to generate issue triage csv file from bugzilla query and git logs
by Pier Angelo Vendrame (@pierov) 05 Feb '26

05 Feb '26
Pier Angelo Vendrame pushed to branch mullvad-browser-147.0a1-16.0-2 at The Tor Project / Applications / Mullvad Browser Commits: 6e6f9b68 by Pier Angelo Vendrame at 2026-02-05T19:13:47+01:00 fixup! BB 42683: Create script to generate issue triage csv file from bugzilla query and git logs Delete the script that has been moved to tor-browser-build:tools/browser. - - - - - 1 changed file: - − tools/torbrowser/generate-bugzilla-triage-csv.sh Changes: ===================================== tools/torbrowser/generate-bugzilla-triage-csv.sh deleted ===================================== @@ -1,239 +0,0 @@ -#!/usr/bin/env bash - -# prints to stderr -function echoerr() { echo "$@" 1>&2; } - -# help dialog -if [ "$#" -lt 5 ]; then - echoerr "Usage: $0 ff-version begin-commit end-commit gitlab-audit-issue reviewers..." - echoerr "" - echoerr "Writes a CSV to stdout of Bugzilla issues to triage for a particular Firefox version. This" - echoerr "script performs a union of the labeled Bugzilla issues in Mozilla's issue tracker and the" - echoerr "labeled commits in the provided commit range" - echoerr - echoerr " ff-version rapid-release Firefox version to audit" - echoerr " begin-commit starting gecko-dev commit of this Firefox version" - echoerr " end-commit ending gecko-dev commit of this Firefox version" - echoerr " gitlab-audit-issue tor-browser-spec Gitlab issue number for this audit" - echoerr " reviewers... space-separated list of reviewers responsible for this audit" - echoerr "" - echoerr "Example:" - echoerr "" - echoerr "$0 116 FIREFOX_ESR_115_BASE FIREFOX_116_0_3_RELEASE 40064 richard pierov henry" - exit 1 -fi - -# set -x -set -e - - -# Ensure various required tools are available -function check_exists() { - local cmd=$1 - if ! which ${cmd} > /dev/null ; then - echoerr "missing ${cmd} dependency" - exit 1 - fi -} - -check_exists git -check_exists jq -check_exists mktemp -check_exists perl -check_exists printf -check_exists sed -check_exists sort -check_exists touch -check_exists uniq -check_exists wget - -# Assign arguments to named variables -firefox_version=$1 -git_begin=$2 -git_end=$3 -audit_issue=$4 -reviewers="${@:5}" - -# Check valid Firefox version -if ! [[ "${firefox_version}" =~ ^[1-9][0-9]{2}$ ]]; then - echoerr "invalid Firefox version (probably)" - exit 1 -fi - -# Check valid Gitlab issue number -if ! [[ "${audit_issue}" =~ ^[1-9][0-9]{4}$ ]]; then - echoerr "invalid gitlab audit issue number (probably)" - exit 1 -fi - -# -# Encoding/Decoding Functions -# - -# escape " and \ -function json_escape() { - local input="$1" - echo "${input}" | sed 's/["\]/\\"/g' -} - - -# un-escape \" -function jq_unescape() { - local input="$1" - echo "${input}" | sed 's/\\"/"/g' -} - -# change quotes to double-quotes -function csv_escape() { - local input="$1" - echo "${input}" | sed 's/"/""/g' -} - -# we need to urlencode the strings used in the new issue link -function url_encode() { - local input="$1" - echo "${input}" | perl -MURI::Escape -wlne 'print uri_escape $_' -} - - -# -# Create temp json files -# -git_json=$(mktemp -t git-audit-${firefox_version}-XXXXXXXXXXX.json) -bugzilla_json=$(mktemp -t bugzilla-audit-${firefox_version}-XXXXXXXXXXX.json) -union_json=$(mktemp -t union-audit-${firefox_version}-XXXXXXXXXXX.json) -touch "${git_json}" -touch "${bugzilla_json}" -touch "${union_json}" - -function json_cleanup { - rm -f "${git_json}" - rm -f "${bugzilla_json}" - rm -f "${union_json}" -} -trap json_cleanup EXIT - -# -# Generate Git Commit Triage List -# - -# Try and extract bug id and summary from git log -# Mozilla's commits are not always 100% consistently named, so this -# regex is a bit flexible to handle various inputs such as: -# "Bug 1234 -", "Bug 1234:", "Bug Bug 1234 -", "[Bug 1234] -", " bug 1234 -". -sed_extract_id_summary="s/^[[ ]*[bug –-]+ ([1-9][0-9]*)[]:\., –-]*(.*)\$/\\1 \\2/pI" - -# Generate a json array of objects in the same format as bugzilla: {id: number, summary: string} -printf "[\n" >> "${git_json}" - -first_object=true -git log --format='%s' $git_begin..$git_end \ -| sed -En "${sed_extract_id_summary}" \ -| sort -h \ -| uniq \ -| while IFS= read -r line; do - read -r id summary <<< "${line}" - summary=$(json_escape "${summary}") - - # json does not allow trailing commas - if [[ "${first_object}" = true ]]; then - first_object=false - else - printf ",\n" >> "${git_json}" - fi - - printf " { \"id\": %s, \"summary\": \"%s\" }" ${id} "${summary}" >> "${git_json}" -done -printf "\n]\n" >> "${git_json}" - -# -# Download Bugzilla Triage List -# - -# search for: -# + Product is NOT "Thunderbird,Calander,Chat Core,MailNews Core" (&f1=product&n1=1&o1=anyexact&v1=Thunderbird%2CCalendar%2CChat%20Core%2CMailNews%20Core). AND -# + Target Milestone contains "${firefox_version}" (115 Branch or Firefox 115) (&f2=target_milestone&o2=substring&v2=${firefox_version}). -# "&limit=0" shows all matching bugs. - -query_tail="&f1=product&n1=1&o1=anyexact&v1=Thunderbird%2CCalendar%2CChat%20Core%2CMailNews%20Core&f2=target_milestone&o2=substring&v2=${firefox_version}&limit=0" - -bugzilla_query="https://bugzilla.mozilla.org/buglist.cgi?${query_tail}" -bugzilla_json_query="https://bugzilla.mozilla.org/rest/bug?include_fields=id,component,summary${…" - -wget "${bugzilla_json_query}" -O ${bugzilla_json} - - -# -# Create Union of these two sets of issues -# - -# bugzilla array is actually on a root object: { bugs: [...] } -jq -s '[ (.[0].bugs)[], (.[1])[] ] | group_by(.id) | map(.[0])' "${bugzilla_json}" "${git_json}" > "${union_json}" - -# -# Generate Triage CSV -# - -echo "\"Review\",,\"Bugzilla Component\",\"Bugzilla Bug\"" - -jq '. | sort_by([.component, .id])[] | "\(.id)|\(.component)|\(.summary)"' ${union_json} \ -| while IFS='|' read -r id component summary; do - - # bugzilla info - id="${id:1}" - component="${component:0}" - summary="${summary:0:-1}" - summary=$(jq_unescape "${summary}") - # short summary for gitlab issue title - [[ ${#summary} -gt 80 ]] && summary_short="${summary:0:77}..." || summary_short="${summary}" - - # filter out some issue types that we never care about - skip_issue=false - - # skip `[wpt-sync] Sync PR` - if [[ "${summary}" =~ ^\[wpt-sync\]\ Sync\ PR.*$ ]]; then - skip_issue=true - # skip `Crash in [@` and variants - elif [[ "${summary}" =~ ^Crash[esin\ ]*\ \[\@.*$ ]]; then - skip_issue=true - # skip `Assertion failuire: ` - elif [[ "${summary}" =~ ^Assertion\ failure:\ .*$ ]]; then - skip_issue=true - # skip `Hit MOZ_CRASH` - elif [[ "${summary}" =~ ^Hit\ MOZ_CRASH.*$ ]]; then - skip_issue=true - fi - - if [[ "${skip_issue}" = true ]]; then - echoerr "Skipped Bugzilla ${id}: ${summary_short}" - else - csv_summary=$(csv_escape "${summary}") - csv_component=$(csv_escape "${component}") - - # parent issue - bugzilla_url="https://bugzilla.mozilla.org/show_bug.cgi?id=${id}" - # review issue title - new_issue_title=$(url_encode "Review Mozilla ${id}: ${summary_short}") - # review issue description + labeling (14.0 stable, FF128-esr, Next) - new_issue_description=$(url_encode "### Bugzilla: ${bugzilla_url}")%0A$(url_encode "/label ~\"14.0 stable\" ~FF128-esr ~Next")%0A$(url_encode "/relate tpo/applications/tor-browser-spec#${audit_issue}")%0A%0A$(url_encode "<!-- briefly describe why this issue needs further review -->")%0A - # url which create's new issue with title and description pre-populated - new_issue_url="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/new?iss…" - - # this link will start the creation of a new gitlab issue to review - create_issue=$(csv_escape "=HYPERLINK(\"${new_issue_url}\", \"New Issue\")") - bugzilla_link=$(csv_escape "=HYPERLINK(\"${bugzilla_url}\", \"Bugzilla ${id}: ${csv_summary}\")") - - echo "FALSE,\"${create_issue}\",\"${csv_component}\",\"${bugzilla_link}\"," - fi -done - -echo -echo "\"Triaged by:\"" -for reviewer in $reviewers; do - reviewer=$(csv_escape "${reviewer}") - echo "\"FALSE\",\"${reviewer}\"" -done -echo - -bugzilla_query="=HYPERLINK(\"${bugzilla_query}\", \"Bugzilla query\")" -echo \"$(csv_escape "${bugzilla_query}")\" View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/6e6… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/6e6… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-147.0a1-16.0-2] fixup! BB 42683: Create script to generate issue triage csv file from bugzilla query and git logs
by Pier Angelo Vendrame (@pierov) 05 Feb '26

05 Feb '26
Pier Angelo Vendrame pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: ffe41bf4 by Pier Angelo Vendrame at 2026-02-05T19:11:01+01:00 fixup! BB 42683: Create script to generate issue triage csv file from bugzilla query and git logs Delete the script that has been moved to tor-browser-build:tools/browser. - - - - - 1 changed file: - − tools/torbrowser/generate-bugzilla-triage-csv.sh Changes: ===================================== tools/torbrowser/generate-bugzilla-triage-csv.sh deleted ===================================== @@ -1,239 +0,0 @@ -#!/usr/bin/env bash - -# prints to stderr -function echoerr() { echo "$@" 1>&2; } - -# help dialog -if [ "$#" -lt 5 ]; then - echoerr "Usage: $0 ff-version begin-commit end-commit gitlab-audit-issue reviewers..." - echoerr "" - echoerr "Writes a CSV to stdout of Bugzilla issues to triage for a particular Firefox version. This" - echoerr "script performs a union of the labeled Bugzilla issues in Mozilla's issue tracker and the" - echoerr "labeled commits in the provided commit range" - echoerr - echoerr " ff-version rapid-release Firefox version to audit" - echoerr " begin-commit starting gecko-dev commit of this Firefox version" - echoerr " end-commit ending gecko-dev commit of this Firefox version" - echoerr " gitlab-audit-issue tor-browser-spec Gitlab issue number for this audit" - echoerr " reviewers... space-separated list of reviewers responsible for this audit" - echoerr "" - echoerr "Example:" - echoerr "" - echoerr "$0 116 FIREFOX_ESR_115_BASE FIREFOX_116_0_3_RELEASE 40064 richard pierov henry" - exit 1 -fi - -# set -x -set -e - - -# Ensure various required tools are available -function check_exists() { - local cmd=$1 - if ! which ${cmd} > /dev/null ; then - echoerr "missing ${cmd} dependency" - exit 1 - fi -} - -check_exists git -check_exists jq -check_exists mktemp -check_exists perl -check_exists printf -check_exists sed -check_exists sort -check_exists touch -check_exists uniq -check_exists wget - -# Assign arguments to named variables -firefox_version=$1 -git_begin=$2 -git_end=$3 -audit_issue=$4 -reviewers="${@:5}" - -# Check valid Firefox version -if ! [[ "${firefox_version}" =~ ^[1-9][0-9]{2}$ ]]; then - echoerr "invalid Firefox version (probably)" - exit 1 -fi - -# Check valid Gitlab issue number -if ! [[ "${audit_issue}" =~ ^[1-9][0-9]{4}$ ]]; then - echoerr "invalid gitlab audit issue number (probably)" - exit 1 -fi - -# -# Encoding/Decoding Functions -# - -# escape " and \ -function json_escape() { - local input="$1" - echo "${input}" | sed 's/["\]/\\"/g' -} - - -# un-escape \" -function jq_unescape() { - local input="$1" - echo "${input}" | sed 's/\\"/"/g' -} - -# change quotes to double-quotes -function csv_escape() { - local input="$1" - echo "${input}" | sed 's/"/""/g' -} - -# we need to urlencode the strings used in the new issue link -function url_encode() { - local input="$1" - echo "${input}" | perl -MURI::Escape -wlne 'print uri_escape $_' -} - - -# -# Create temp json files -# -git_json=$(mktemp -t git-audit-${firefox_version}-XXXXXXXXXXX.json) -bugzilla_json=$(mktemp -t bugzilla-audit-${firefox_version}-XXXXXXXXXXX.json) -union_json=$(mktemp -t union-audit-${firefox_version}-XXXXXXXXXXX.json) -touch "${git_json}" -touch "${bugzilla_json}" -touch "${union_json}" - -function json_cleanup { - rm -f "${git_json}" - rm -f "${bugzilla_json}" - rm -f "${union_json}" -} -trap json_cleanup EXIT - -# -# Generate Git Commit Triage List -# - -# Try and extract bug id and summary from git log -# Mozilla's commits are not always 100% consistently named, so this -# regex is a bit flexible to handle various inputs such as: -# "Bug 1234 -", "Bug 1234:", "Bug Bug 1234 -", "[Bug 1234] -", " bug 1234 -". -sed_extract_id_summary="s/^[[ ]*[bug –-]+ ([1-9][0-9]*)[]:\., –-]*(.*)\$/\\1 \\2/pI" - -# Generate a json array of objects in the same format as bugzilla: {id: number, summary: string} -printf "[\n" >> "${git_json}" - -first_object=true -git log --format='%s' $git_begin..$git_end \ -| sed -En "${sed_extract_id_summary}" \ -| sort -h \ -| uniq \ -| while IFS= read -r line; do - read -r id summary <<< "${line}" - summary=$(json_escape "${summary}") - - # json does not allow trailing commas - if [[ "${first_object}" = true ]]; then - first_object=false - else - printf ",\n" >> "${git_json}" - fi - - printf " { \"id\": %s, \"summary\": \"%s\" }" ${id} "${summary}" >> "${git_json}" -done -printf "\n]\n" >> "${git_json}" - -# -# Download Bugzilla Triage List -# - -# search for: -# + Product is NOT "Thunderbird,Calander,Chat Core,MailNews Core" (&f1=product&n1=1&o1=anyexact&v1=Thunderbird%2CCalendar%2CChat%20Core%2CMailNews%20Core). AND -# + Target Milestone contains "${firefox_version}" (115 Branch or Firefox 115) (&f2=target_milestone&o2=substring&v2=${firefox_version}). -# "&limit=0" shows all matching bugs. - -query_tail="&f1=product&n1=1&o1=anyexact&v1=Thunderbird%2CCalendar%2CChat%20Core%2CMailNews%20Core&f2=target_milestone&o2=substring&v2=${firefox_version}&limit=0" - -bugzilla_query="https://bugzilla.mozilla.org/buglist.cgi?${query_tail}" -bugzilla_json_query="https://bugzilla.mozilla.org/rest/bug?include_fields=id,component,summary${…" - -wget "${bugzilla_json_query}" -O ${bugzilla_json} - - -# -# Create Union of these two sets of issues -# - -# bugzilla array is actually on a root object: { bugs: [...] } -jq -s '[ (.[0].bugs)[], (.[1])[] ] | group_by(.id) | map(.[0])' "${bugzilla_json}" "${git_json}" > "${union_json}" - -# -# Generate Triage CSV -# - -echo "\"Review\",,\"Bugzilla Component\",\"Bugzilla Bug\"" - -jq '. | sort_by([.component, .id])[] | "\(.id)|\(.component)|\(.summary)"' ${union_json} \ -| while IFS='|' read -r id component summary; do - - # bugzilla info - id="${id:1}" - component="${component:0}" - summary="${summary:0:-1}" - summary=$(jq_unescape "${summary}") - # short summary for gitlab issue title - [[ ${#summary} -gt 80 ]] && summary_short="${summary:0:77}..." || summary_short="${summary}" - - # filter out some issue types that we never care about - skip_issue=false - - # skip `[wpt-sync] Sync PR` - if [[ "${summary}" =~ ^\[wpt-sync\]\ Sync\ PR.*$ ]]; then - skip_issue=true - # skip `Crash in [@` and variants - elif [[ "${summary}" =~ ^Crash[esin\ ]*\ \[\@.*$ ]]; then - skip_issue=true - # skip `Assertion failuire: ` - elif [[ "${summary}" =~ ^Assertion\ failure:\ .*$ ]]; then - skip_issue=true - # skip `Hit MOZ_CRASH` - elif [[ "${summary}" =~ ^Hit\ MOZ_CRASH.*$ ]]; then - skip_issue=true - fi - - if [[ "${skip_issue}" = true ]]; then - echoerr "Skipped Bugzilla ${id}: ${summary_short}" - else - csv_summary=$(csv_escape "${summary}") - csv_component=$(csv_escape "${component}") - - # parent issue - bugzilla_url="https://bugzilla.mozilla.org/show_bug.cgi?id=${id}" - # review issue title - new_issue_title=$(url_encode "Review Mozilla ${id}: ${summary_short}") - # review issue description + labeling (14.0 stable, FF128-esr, Next) - new_issue_description=$(url_encode "### Bugzilla: ${bugzilla_url}")%0A$(url_encode "/label ~\"14.0 stable\" ~FF128-esr ~Next")%0A$(url_encode "/relate tpo/applications/tor-browser-spec#${audit_issue}")%0A%0A$(url_encode "<!-- briefly describe why this issue needs further review -->")%0A - # url which create's new issue with title and description pre-populated - new_issue_url="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/new?iss…" - - # this link will start the creation of a new gitlab issue to review - create_issue=$(csv_escape "=HYPERLINK(\"${new_issue_url}\", \"New Issue\")") - bugzilla_link=$(csv_escape "=HYPERLINK(\"${bugzilla_url}\", \"Bugzilla ${id}: ${csv_summary}\")") - - echo "FALSE,\"${create_issue}\",\"${csv_component}\",\"${bugzilla_link}\"," - fi -done - -echo -echo "\"Triaged by:\"" -for reviewer in $reviewers; do - reviewer=$(csv_escape "${reviewer}") - echo "\"FALSE\",\"${reviewer}\"" -done -echo - -bugzilla_query="=HYPERLINK(\"${bugzilla_query}\", \"Bugzilla query\")" -echo \"$(csv_escape "${bugzilla_query}")\" View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/ffe41bf… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/ffe41bf… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-147.0a1-16.0-2] fixup! MB 1: Mullvad Browser branding
by Pier Angelo Vendrame (@pierov) 05 Feb '26

05 Feb '26
Pier Angelo Vendrame pushed to branch mullvad-browser-147.0a1-16.0-2 at The Tor Project / Applications / Mullvad Browser Commits: a6a3a657 by Pier Angelo Vendrame at 2026-02-03T12:03:21+01:00 fixup! MB 1: Mullvad Browser branding BB 44050: Use net.mullvad rather than org.mozilla for D-bus. - - - - - 2 changed files: - toolkit/components/remote/nsDBusRemoteClient.cpp - toolkit/components/remote/nsDBusRemoteServer.cpp Changes: ===================================== toolkit/components/remote/nsDBusRemoteClient.cpp ===================================== @@ -77,7 +77,7 @@ bool nsDBusRemoteClient::GetRemoteDestinationName(const char* aProgram, mozilla::XREAppData::SanitizeNameForDBus(profileName); aDestinationName = - nsPrintfCString("org.mozilla.%s.%s", aProgram, profileName.get()); + nsPrintfCString("net.mullvad.%s.%s", aProgram, profileName.get()); if (aDestinationName.Length() > DBUS_MAXIMUM_NAME_LENGTH) aDestinationName.Truncate(DBUS_MAXIMUM_NAME_LENGTH); @@ -91,7 +91,7 @@ bool nsDBusRemoteClient::GetRemoteDestinationName(const char* aProgram, if (!sDBusValidateBusName(aDestinationName.get(), nullptr)) { // We don't have a valid busName yet - try to create a default one. aDestinationName = - nsPrintfCString("org.mozilla.%s.%s", aProgram, "default"); + nsPrintfCString("net.mullvad.%s.%s", aProgram, "default"); if (!sDBusValidateBusName(aDestinationName.get(), nullptr)) { // We failed completelly to get a valid bus name - just quit // to prevent crash at dbus_bus_request_name(). @@ -122,7 +122,7 @@ nsresult nsDBusRemoteClient::DoSendDBusCommandLine(const char* aProfile, } nsAutoCString pathName; - pathName = nsPrintfCString("/org/mozilla/%s/Remote", appName.get()); + pathName = nsPrintfCString("/net/mullvad/%s/Remote", appName.get()); static auto sDBusValidatePathName = (bool (*)(const char*, DBusError*))dlsym( RTLD_DEFAULT, "dbus_validate_path"); @@ -133,7 +133,7 @@ nsresult nsDBusRemoteClient::DoSendDBusCommandLine(const char* aProfile, } nsAutoCString remoteInterfaceName; - remoteInterfaceName = nsPrintfCString("org.mozilla.%s", appName.get()); + remoteInterfaceName = nsPrintfCString("net.mullvad.%s", appName.get()); LOG(" DBus destination: %s\n", destinationName.get()); LOG(" DBus path: %s\n", pathName.get()); ===================================== toolkit/components/remote/nsDBusRemoteServer.cpp ===================================== @@ -28,7 +28,7 @@ static const char* introspect_template = "1.0//EN\"\n" "\"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">\n" "<node>\n" - " <interface name=\"org.mozilla.%s\">\n" + " <interface name=\"net.mullvad.%s\">\n" " <method name=\"OpenURL\">\n" " <arg name=\"url\" direction=\"in\" type=\"ay\"/>\n" " </method>\n" @@ -38,7 +38,7 @@ static const char* introspect_template = bool nsDBusRemoteServer::HandleOpenURL(const gchar* aInterfaceName, const gchar* aMethodName, Span<const gchar> aParam) { - nsPrintfCString ourInterfaceName("org.mozilla.%s", mAppName.get()); + nsPrintfCString ourInterfaceName("net.mullvad.%s", mAppName.get()); if ((strcmp("OpenURL", aMethodName) != 0) || (strcmp(ourInterfaceName.get(), aInterfaceName) != 0)) { @@ -131,7 +131,7 @@ static const GDBusInterfaceVTable gInterfaceVTable = { HandleMethodCall, HandleGetProperty, HandleSetProperty}; void nsDBusRemoteServer::OnBusAcquired(GDBusConnection* aConnection) { - mPathName = nsPrintfCString("/org/mozilla/%s/Remote", mAppName.get()); + mPathName = nsPrintfCString("/net/mullvad/%s/Remote", mAppName.get()); static auto sDBusValidatePathName = (bool (*)(const char*, DBusError*))dlsym( RTLD_DEFAULT, "dbus_validate_path"); if (!sDBusValidatePathName || @@ -205,7 +205,7 @@ nsresult nsDBusRemoteServer::Startup(const char* aAppName, mozilla::XREAppData::SanitizeNameForDBus(profileName); - nsPrintfCString busName("org.mozilla.%s.%s", mAppName.get(), + nsPrintfCString busName("net.mullvad.%s.%s", mAppName.get(), profileName.get()); if (busName.Length() > DBUS_MAXIMUM_NAME_LENGTH) { busName.Truncate(DBUS_MAXIMUM_NAME_LENGTH); @@ -220,7 +220,7 @@ nsresult nsDBusRemoteServer::Startup(const char* aAppName, // We don't have a valid busName yet - try to create a default one. if (!sDBusValidateBusName(busName.get(), nullptr)) { - busName = nsPrintfCString("org.mozilla.%s.%s", mAppName.get(), "default"); + busName = nsPrintfCString("net.mullvad.%s.%s", mAppName.get(), "default"); if (!sDBusValidateBusName(busName.get(), nullptr)) { // We failed completelly to get a valid bus name - just quit // to prevent crash at dbus_bus_request_name(). View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/a6a… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/a6a… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-147.0a1-16.0-2] fixup! TB 2176: Rebrand Firefox to TorBrowser
by Pier Angelo Vendrame (@pierov) 05 Feb '26

05 Feb '26
Pier Angelo Vendrame pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 1d7f3225 by Pier Angelo Vendrame at 2026-02-05T14:41:51+00:00 fixup! TB 2176: Rebrand Firefox to TorBrowser BB 44050: Use org.torproject rather than org.mozilla for D-bus. - - - - - 2 changed files: - toolkit/components/remote/nsDBusRemoteClient.cpp - toolkit/components/remote/nsDBusRemoteServer.cpp Changes: ===================================== toolkit/components/remote/nsDBusRemoteClient.cpp ===================================== @@ -77,7 +77,7 @@ bool nsDBusRemoteClient::GetRemoteDestinationName(const char* aProgram, mozilla::XREAppData::SanitizeNameForDBus(profileName); aDestinationName = - nsPrintfCString("org.mozilla.%s.%s", aProgram, profileName.get()); + nsPrintfCString("org.torproject.%s.%s", aProgram, profileName.get()); if (aDestinationName.Length() > DBUS_MAXIMUM_NAME_LENGTH) aDestinationName.Truncate(DBUS_MAXIMUM_NAME_LENGTH); @@ -91,7 +91,7 @@ bool nsDBusRemoteClient::GetRemoteDestinationName(const char* aProgram, if (!sDBusValidateBusName(aDestinationName.get(), nullptr)) { // We don't have a valid busName yet - try to create a default one. aDestinationName = - nsPrintfCString("org.mozilla.%s.%s", aProgram, "default"); + nsPrintfCString("org.torproject.%s.%s", aProgram, "default"); if (!sDBusValidateBusName(aDestinationName.get(), nullptr)) { // We failed completelly to get a valid bus name - just quit // to prevent crash at dbus_bus_request_name(). @@ -122,7 +122,7 @@ nsresult nsDBusRemoteClient::DoSendDBusCommandLine(const char* aProfile, } nsAutoCString pathName; - pathName = nsPrintfCString("/org/mozilla/%s/Remote", appName.get()); + pathName = nsPrintfCString("/org/torproject/%s/Remote", appName.get()); static auto sDBusValidatePathName = (bool (*)(const char*, DBusError*))dlsym( RTLD_DEFAULT, "dbus_validate_path"); @@ -133,7 +133,7 @@ nsresult nsDBusRemoteClient::DoSendDBusCommandLine(const char* aProfile, } nsAutoCString remoteInterfaceName; - remoteInterfaceName = nsPrintfCString("org.mozilla.%s", appName.get()); + remoteInterfaceName = nsPrintfCString("org.torproject.%s", appName.get()); LOG(" DBus destination: %s\n", destinationName.get()); LOG(" DBus path: %s\n", pathName.get()); ===================================== toolkit/components/remote/nsDBusRemoteServer.cpp ===================================== @@ -28,7 +28,7 @@ static const char* introspect_template = "1.0//EN\"\n" "\"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">\n" "<node>\n" - " <interface name=\"org.mozilla.%s\">\n" + " <interface name=\"org.torproject.%s\">\n" " <method name=\"OpenURL\">\n" " <arg name=\"url\" direction=\"in\" type=\"ay\"/>\n" " </method>\n" @@ -38,7 +38,7 @@ static const char* introspect_template = bool nsDBusRemoteServer::HandleOpenURL(const gchar* aInterfaceName, const gchar* aMethodName, Span<const gchar> aParam) { - nsPrintfCString ourInterfaceName("org.mozilla.%s", mAppName.get()); + nsPrintfCString ourInterfaceName("org.torproject.%s", mAppName.get()); if ((strcmp("OpenURL", aMethodName) != 0) || (strcmp(ourInterfaceName.get(), aInterfaceName) != 0)) { @@ -131,7 +131,7 @@ static const GDBusInterfaceVTable gInterfaceVTable = { HandleMethodCall, HandleGetProperty, HandleSetProperty}; void nsDBusRemoteServer::OnBusAcquired(GDBusConnection* aConnection) { - mPathName = nsPrintfCString("/org/mozilla/%s/Remote", mAppName.get()); + mPathName = nsPrintfCString("/org/torproject/%s/Remote", mAppName.get()); static auto sDBusValidatePathName = (bool (*)(const char*, DBusError*))dlsym( RTLD_DEFAULT, "dbus_validate_path"); if (!sDBusValidatePathName || @@ -205,7 +205,7 @@ nsresult nsDBusRemoteServer::Startup(const char* aAppName, mozilla::XREAppData::SanitizeNameForDBus(profileName); - nsPrintfCString busName("org.mozilla.%s.%s", mAppName.get(), + nsPrintfCString busName("org.torproject.%s.%s", mAppName.get(), profileName.get()); if (busName.Length() > DBUS_MAXIMUM_NAME_LENGTH) { busName.Truncate(DBUS_MAXIMUM_NAME_LENGTH); @@ -220,7 +220,8 @@ nsresult nsDBusRemoteServer::Startup(const char* aAppName, // We don't have a valid busName yet - try to create a default one. if (!sDBusValidateBusName(busName.get(), nullptr)) { - busName = nsPrintfCString("org.mozilla.%s.%s", mAppName.get(), "default"); + busName = + nsPrintfCString("org.torproject.%s.%s", mAppName.get(), "default"); if (!sDBusValidateBusName(busName.get(), nullptr)) { // We failed completelly to get a valid bus name - just quit // to prevent crash at dbus_bus_request_name(). View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/1d7f322… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/1d7f322… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-update-responses][main] 6 commits: alpha: new version, 16.0a2 (linux-aarch64)
by ma1 (@ma1) 04 Feb '26

04 Feb '26
ma1 pushed to branch main at The Tor Project / Applications / Tor Browser update responses Commits: ed405516 by hackademix at 2026-02-04T14:13:09+01:00 alpha: new version, 16.0a2 (linux-aarch64) - - - - - a8ed7442 by hackademix at 2026-02-04T14:13:09+01:00 alpha: new version, 16.0a2 (linux-x86_64) - - - - - 3082ced9 by hackademix at 2026-02-04T14:13:09+01:00 alpha: new version, 16.0a2 (macos) - - - - - a304a9a4 by hackademix at 2026-02-04T14:13:10+01:00 alpha: new version, 16.0a2 (windows-i686) - - - - - fecba34e by hackademix at 2026-02-04T14:13:10+01:00 alpha: new version, 16.0a2 (windows-x86_64) - - - - - 47986c6f by hackademix at 2026-02-04T14:13:10+01:00 alpha: new version, 16.0a2 - - - - - 49 changed files: - update_3/alpha/download-android-aarch64.json - update_3/alpha/download-android-armv7.json - update_3/alpha/download-android-x86_64.json - update_3/alpha/download-linux-aarch64.json - update_3/alpha/download-linux-x86_64.json - update_3/alpha/download-macos.json - update_3/alpha/download-windows-i686.json - update_3/alpha/download-windows-x86_64.json - update_3/alpha/downloads.json - update_3/alpha/linux-aarch64/.htaccess - + update_3/alpha/linux-aarch64/update-16.0a1-16.0a2-linux-aarch64.xml - − update_3/alpha/linux-aarch64/update-16.0a1-linux-aarch64.xml - + update_3/alpha/linux-aarch64/update-16.0a2-linux-aarch64.xml - update_3/alpha/linux-x86_64/.htaccess - − update_3/alpha/linux-x86_64/update-15.0a2-16.0a1-linux-x86_64.xml - − update_3/alpha/linux-x86_64/update-15.0a3-16.0a1-linux-x86_64.xml - + update_3/alpha/linux-x86_64/update-15.0a3-16.0a2-linux-x86_64.xml - − update_3/alpha/linux-x86_64/update-15.0a4-16.0a1-linux-x86_64.xml - + update_3/alpha/linux-x86_64/update-15.0a4-16.0a2-linux-x86_64.xml - + update_3/alpha/linux-x86_64/update-16.0a1-16.0a2-linux-x86_64.xml - − update_3/alpha/linux-x86_64/update-16.0a1-linux-x86_64.xml - + update_3/alpha/linux-x86_64/update-16.0a2-linux-x86_64.xml - update_3/alpha/macos/.htaccess - − update_3/alpha/macos/update-15.0a2-16.0a1-macos.xml - − update_3/alpha/macos/update-15.0a3-16.0a1-macos.xml - + update_3/alpha/macos/update-15.0a3-16.0a2-macos.xml - − update_3/alpha/macos/update-15.0a4-16.0a1-macos.xml - + update_3/alpha/macos/update-15.0a4-16.0a2-macos.xml - + update_3/alpha/macos/update-16.0a1-16.0a2-macos.xml - − update_3/alpha/macos/update-16.0a1-macos.xml - + update_3/alpha/macos/update-16.0a2-macos.xml - update_3/alpha/windows-i686/.htaccess - − update_3/alpha/windows-i686/update-15.0a2-16.0a1-windows-i686.xml - − update_3/alpha/windows-i686/update-15.0a3-16.0a1-windows-i686.xml - + update_3/alpha/windows-i686/update-15.0a3-16.0a2-windows-i686.xml - − update_3/alpha/windows-i686/update-15.0a4-16.0a1-windows-i686.xml - + update_3/alpha/windows-i686/update-15.0a4-16.0a2-windows-i686.xml - + update_3/alpha/windows-i686/update-16.0a1-16.0a2-windows-i686.xml - − update_3/alpha/windows-i686/update-16.0a1-windows-i686.xml - + update_3/alpha/windows-i686/update-16.0a2-windows-i686.xml - update_3/alpha/windows-x86_64/.htaccess - − update_3/alpha/windows-x86_64/update-15.0a2-16.0a1-windows-x86_64.xml - − update_3/alpha/windows-x86_64/update-15.0a3-16.0a1-windows-x86_64.xml - + update_3/alpha/windows-x86_64/update-15.0a3-16.0a2-windows-x86_64.xml - − update_3/alpha/windows-x86_64/update-15.0a4-16.0a1-windows-x86_64.xml - + update_3/alpha/windows-x86_64/update-15.0a4-16.0a2-windows-x86_64.xml - + update_3/alpha/windows-x86_64/update-16.0a1-16.0a2-windows-x86_64.xml - − update_3/alpha/windows-x86_64/update-16.0a1-windows-x86_64.xml - + update_3/alpha/windows-x86_64/update-16.0a2-windows-x86_64.xml The diff was not included because it is too large. View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-update-responses… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-update-responses… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][maint-15.0] Bug 40338: Use cp -al instead of mv in projects/release.
by Pier Angelo Vendrame (@pierov) 04 Feb '26

04 Feb '26
Pier Angelo Vendrame pushed to branch maint-15.0 at The Tor Project / Applications / tor-browser-build Commits: 2c9daf78 by Pier Angelo Vendrame at 2026-02-04T11:59:09+01:00 Bug 40338: Use cp -al instead of mv in projects/release. Currently, we use mv in projects/release/build. However, since we also use hard links, re-running the release project might fail (because we end up trying to mv the same inode). Rather than checking stat, we can just use `cp -al`, which simplifies also the current mechanism we have to handle subdirectories. RBM will take care of deleting the temporary directory where the script runs, so we do not even need to remove the files after the copy. - - - - - 1 changed file: - projects/release/build Changes: ===================================== projects/release/build ===================================== @@ -5,65 +5,53 @@ destdir="[% dest_dir _ '/' _ c("var/publish_dir") %]" mkdir -p "$destdir" -function mv_files { - inputfile="$1" - if test -d "$inputfile"/artifacts - then - mkdir -p "$destdir"/artifacts - mv "$inputfile"/artifacts/* "$destdir"/artifacts - rmdir "$inputfile"/artifacts - fi - mv "$inputfile"/* "$destdir"/ -} - [% IF c("var/browser_platforms/android-armv7") -%] - mv_files "[% c('input_files_by_name/android-armv7') %]" + cp -alf "[% c('input_files_by_name/android-armv7') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/android-x86") -%] mv_files "[% c('input_files_by_name/android-x86') %]" [% END -%] [% IF c("var/browser_platforms/android-x86_64") -%] - mv_files "[% c('input_files_by_name/android-x86_64') %]" + cp -alf "[% c('input_files_by_name/android-x86_64') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/android-aarch64") -%] - mv_files "[% c('input_files_by_name/android-aarch64') %]" + cp -alf "[% c('input_files_by_name/android-aarch64') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/windows-i686") -%] - mv_files "[% c('input_files_by_name/windows-i686') %]" + cp -alf "[% c('input_files_by_name/windows-i686') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/windows-x86_64") -%] - mv_files "[% c('input_files_by_name/windows-x86_64') %]" + cp -alf "[% c('input_files_by_name/windows-x86_64') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/macos") -%] - mv_files "[% c('input_files_by_name/macos') %]" + cp -alf "[% c('input_files_by_name/macos') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/macos-x86_64") -%] - mv_files "[% c('input_files_by_name/macos-x86_64') %]" + cp -alf "[% c('input_files_by_name/macos-x86_64') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/macos-aarch64") -%] - mv_files "[% c('input_files_by_name/macos-aarch64') %]" + cp -alf "[% c('input_files_by_name/macos-aarch64') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/linux-i686") -%] mv_files "[% c('input_files_by_name/linux-i686') %]" [% END -%] [% IF c("var/browser_platforms/linux-x86_64") -%] - mv_files "[% c('input_files_by_name/linux-x86_64') %]" + cp -alf "[% c('input_files_by_name/linux-x86_64') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/linux-aarch64") -%] - mv_files "[% c('input_files_by_name/linux-aarch64') %]" + cp -alf "[% c('input_files_by_name/linux-aarch64') %]"/* "$destdir"/ [% END -%] [% IF c("var/linux-packages") || c("var/linux-packages-aarch64") -%] [% IF c("var/linux-packages") -%] - mv_files "[% c('input_files_by_name/deb-packages') %]" + cp -alf "[% c('input_files_by_name/deb-packages') %]"/* "$destdir"/ [% END -%] [% IF c("var/linux-packages-aarch64") -%] - mv_files "[% c('input_files_by_name/deb-packages-aarch64') %]" + cp -alf "[% c('input_files_by_name/deb-packages-aarch64') %]"/* "$destdir"/ [% END -%] - mv_files "[% c('input_files_by_name/rpm-packages') %]" + cp -alf "[% c('input_files_by_name/rpm-packages') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser-src") -%] - mv [% c('input_files_by_name/src-firefox') %] \ - "$destdir"/ + cp -alf "[% c('input_files_by_name/src-firefox') %]" "$destdir"/ [% END -%] cd "$destdir" cat > .htaccess <<'EOF' View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/2… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/2… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • ...
  • 810
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.