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 -----
  • May
  • 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
  • 20450 discussions
[Git][tpo/applications/tor-browser][tor-browser-147.0a1-16.0-2] fixup! TB 43564: Modify ./mach bootstrap for Tor Browser
by brizental (@brizental) 26 Jan '26

26 Jan '26
brizental pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 2241fb56 by Beatriz Rizental at 2026-01-26T11:27:33-03:00 fixup! TB 43564: Modify ./mach bootstrap for Tor Browser Function name update and reformatting - - - - - 1 changed file: - python/mozbuild/mozbuild/backend/base.py Changes: ===================================== python/mozbuild/mozbuild/backend/base.py ===================================== @@ -282,23 +282,12 @@ class BuildBackend(LoggingMixin): if app == "mobile/android": # Set up NoScript extension # We put it in the srcdir... It will be moved to the APK in the gradle build. - if noscript_location: - noscript_target = ( - Path(config.topsrcdir) - / "mobile/android/fenix/app/src/main/assets/extensions" - / noscript_target_filename - ) - self.log( - logging.INFO, - "_setup_tor_browser_environment", - { - "noscript_location": noscript_location, - "noscript_target": str(noscript_target), - }, - "Creating symlink for NoScript from {noscript_location} to {noscript_target}", - ) - - _infallible_symlink(noscript_location, noscript_target) + self._setup_extension_symlink( + noscript_location, + noscript_target_filename, + Path(config.topsrcdir) + / "mobile/android/fenix/app/src/main/assets/extensions", + ) if app == "browser": tbdir = Path(config.topobjdir) / "dist" / "bin" @@ -362,13 +351,15 @@ class BuildBackend(LoggingMixin): paths["tor_config"].mkdir(parents=True, exist_ok=True) for file in ["geoip", "geoip6", "torrc-defaults"]: target = paths["tor_config"] / file - _infallible_symlink(expert_bundle_location / "data" / file, target) + self._create_or_replace_symlink( + expert_bundle_location / "data" / file, target + ) # Set up Conjure documentation conjust_docs_location = paths["docs"] / "conjure" conjust_docs_location.mkdir(parents=True, exist_ok=True) conjure_readme = conjust_docs_location / "README.CONJURE.md" - _infallible_symlink( + self._create_or_replace_symlink( expert_bundle_location / "tor/pluggable_transports/README.CONJURE.md", conjure_readme, @@ -385,21 +376,21 @@ class BuildBackend(LoggingMixin): # We only want the PT executables. if os.access(file, os.X_OK) or file.suffix.lower() == ".exe": target = pluggable_transports_target / file.name - _infallible_symlink(file, target) + self._create_or_replace_symlink(file, target) # Setup Tor binary for item in Path(expert_bundle_location / "tor").iterdir(): target = paths["tor_bin"] / item.name if item.is_file(): - _infallible_symlink(item, target) + self._create_or_replace_symlink(item, target) # Set up licenses licenses_location = paths["docs"] / "Licenses" licenses_location.mkdir(parents=True, exist_ok=True) for item in (expert_bundle_location / "docs").iterdir(): target = licenses_location / item.name - _infallible_symlink(item, target) + self._create_or_replace_symlink(item, target) def post_build(self, config, output, jobs, verbose, status): """Called late during 'mach build' execution, after `build(...)` has finished. View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/2241fb5… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/2241fb5… 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 43564: Modify ./mach bootstrap for Base Browser
by brizental (@brizental) 26 Jan '26

26 Jan '26
brizental pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: b447dfc5 by Beatriz Rizental at 2026-01-26T11:21:23-03:00 fixup! BB 43564: Modify ./mach bootstrap for Base Browser Generalize extension symlinking code. - - - - - 3 changed files: - build/moz.configure/basebrowser-resources.configure - build/moz.configure/bootstrap.configure - python/mozbuild/mozbuild/backend/base.py Changes: ===================================== build/moz.configure/basebrowser-resources.configure ===================================== @@ -27,7 +27,7 @@ option( "noscript", no_unpack=True, when=depends("--with-noscript")(lambda x: not x) ), ) -@checking("for noscript") +@checking("for noscript extension") @imports(_from="pathlib", _import="Path") def noscript(value, mozbuild_state_path, _bootstrapped): if value: ===================================== build/moz.configure/bootstrap.configure ===================================== @@ -197,8 +197,8 @@ def bootstrap_path(path, **kwargs): if path_parts[0] == "clang-tools": path_prefix = path_parts.pop(0) - # Small hack because noscript is inside the browser folder. - if path_parts[0] == "noscript": + # Small hack because extensions are inside the browser folder. + if path_parts[0] in ("noscript", ): path_prefix = "browser" def try_tbb_bootstrap(exists): ===================================== python/mozbuild/mozbuild/backend/base.py ===================================== @@ -243,29 +243,42 @@ class BuildBackend(LoggingMixin): with open(mozpath.join(dir, ".purgecaches"), "w") as f: f.write("\n") - def _setup_tor_browser_environment(self, config): + def _create_or_replace_symlink(self, src, dst): + try: + os.symlink(src, dst) + except OSError as e: + if e.errno == errno.EEXIST: + # If the symlink already exists, remove it and try again. + os.remove(dst) + os.symlink(src, dst) + else: + return + + def _setup_extension_symlink(self, location, target_filename, exts_path): + if not location: + return + + target = exts_path / target_filename + + self.log( + logging.INFO, + "_setup_extension_symlink", + { + "location": location, + "target": str(target), + }, + "Creating symlink for extension from {location} to {target}", + ) + + exts_path.mkdir(parents=True, exist_ok=True) + self._create_or_replace_symlink(location, target) + + def _setup_base_browser_environment(self, config): app = config.substs["MOZ_BUILD_APP"] noscript_target_filename = "{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi" noscript_location = config.substs.get("NOSCRIPT") - def _infallible_symlink(src, dst): - try: - os.symlink(src, dst) - except OSError as e: - if e.errno == errno.EEXIST: - # If the symlink already exists, remove it and try again. - os.remove(dst) - os.symlink(src, dst) - else: - self.log( - logging.ERROR, - "_setup_tor_browser_environment", - {}, - "Error creating symlink.", - ) - return - if app == "mobile/android": # Set up NoScript extension # We put it in the srcdir... It will be moved to the APK in the gradle build. @@ -312,7 +325,7 @@ class BuildBackend(LoggingMixin): if fonts_location: self.log( logging.INFO, - "_setup_tor_browser_environment", + "_setup_base_browser_environment", { "fonts_location": fonts_location, "fonts_target": str(paths["fonts"]), @@ -322,23 +335,13 @@ class BuildBackend(LoggingMixin): for file in Path(fonts_location).iterdir(): target = paths["fonts"] / file.name - _infallible_symlink(file, target) + self._create_or_replace_symlink(file, target) - # Set up NoScript extension - if noscript_location: - noscript_target = paths["exts"] / noscript_target_filename - self.log( - logging.INFO, - "_setup_tor_browser_environment", - { - "noscript_location": noscript_location, - "noscript_target": str(noscript_target), - }, - "Creating symlink for NoScript from {noscript_location} to {noscript_target}", - ) - - paths["exts"].mkdir(parents=True, exist_ok=True) - _infallible_symlink(noscript_location, noscript_target) + self._setup_extension_symlink( + noscript_location, + noscript_target_filename, + paths["exts"], + ) expert_bundle_location = config.substs.get("TOR_EXPERT_BUNDLE") if expert_bundle_location: @@ -417,7 +420,7 @@ class BuildBackend(LoggingMixin): self._write_purgecaches(config) if status == 0: - self._setup_tor_browser_environment(config) + self._setup_base_browser_environment(config) return status View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/b447dfc… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/b447dfc… 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) 26 Jan '26

26 Jan '26
brizental pushed to branch base-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 9882c796 by Beatriz Rizental at 2026-01-26T11:13:37-03:00 fixup! BB 43564: Modify ./mach bootstrap for Base Browser Generalize extension symlinking code. - - - - - 3 changed files: - build/moz.configure/basebrowser-resources.configure - build/moz.configure/bootstrap.configure - python/mozbuild/mozbuild/backend/base.py Changes: ===================================== build/moz.configure/basebrowser-resources.configure ===================================== @@ -27,7 +27,7 @@ option( "noscript", no_unpack=True, when=depends("--with-noscript")(lambda x: not x) ), ) -@checking("for noscript") +@checking("for noscript extension") @imports(_from="pathlib", _import="Path") def noscript(value, mozbuild_state_path, _bootstrapped): if value: ===================================== build/moz.configure/bootstrap.configure ===================================== @@ -197,8 +197,8 @@ def bootstrap_path(path, **kwargs): if path_parts[0] == "clang-tools": path_prefix = path_parts.pop(0) - # Small hack because noscript is inside the browser folder. - if path_parts[0] == "noscript": + # Small hack because extensions are inside the browser folder. + if path_parts[0] in ("noscript", ): path_prefix = "browser" def try_tbb_bootstrap(exists): ===================================== python/mozbuild/mozbuild/backend/base.py ===================================== @@ -243,23 +243,42 @@ class BuildBackend(LoggingMixin): with open(mozpath.join(dir, ".purgecaches"), "w") as f: f.write("\n") - def _setup_tor_browser_environment(self, config): + def _create_or_replace_symlink(self, src, dst): + try: + os.symlink(src, dst) + except OSError as e: + if e.errno == errno.EEXIST: + # If the symlink already exists, remove it and try again. + os.remove(dst) + os.symlink(src, dst) + else: + return + + def _setup_extension_symlink(self, location, target_filename, exts_path): + if not location: + return + + target = exts_path / target_filename + + self.log( + logging.INFO, + "_setup_extension_symlink", + { + "location": location, + "target": str(target), + }, + "Creating symlink for extension from {location} to {target}", + ) + + exts_path.mkdir(parents=True, exist_ok=True) + self._create_or_replace_symlink(location, target) + + def _setup_base_browser_environment(self, config): app = config.substs["MOZ_BUILD_APP"] noscript_target_filename = "{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi" noscript_location = config.substs.get("NOSCRIPT") - def _infallible_symlink(src, dst): - try: - os.symlink(src, dst) - except OSError as e: - if e.errno == errno.EEXIST: - # If the symlink already exists, remove it and try again. - os.remove(dst) - os.symlink(src, dst) - else: - return - if app == "browser": tbdir = Path(config.topobjdir) / "dist" / "bin" @@ -281,7 +300,7 @@ class BuildBackend(LoggingMixin): if fonts_location: self.log( logging.INFO, - "_setup_tor_browser_environment", + "_setup_base_browser_environment", { "fonts_location": fonts_location, "fonts_target": str(paths["fonts"]), @@ -291,23 +310,13 @@ class BuildBackend(LoggingMixin): for file in Path(fonts_location).iterdir(): target = paths["fonts"] / file.name - _infallible_symlink(file, target) - - # Set up NoScript extension - if noscript_location: - noscript_target = paths["exts"] / noscript_target_filename - self.log( - logging.INFO, - "_setup_tor_browser_environment", - { - "noscript_location": noscript_location, - "noscript_target": str(noscript_target), - }, - "Creating symlink for NoScript from {noscript_location} to {noscript_target}", - ) + self._create_or_replace_symlink(file, target) - paths["exts"].mkdir(parents=True, exist_ok=True) - _infallible_symlink(noscript_location, noscript_target) + self._setup_extension_symlink( + noscript_location, + noscript_target_filename, + paths["exts"], + ) def post_build(self, config, output, jobs, verbose, status): """Called late during 'mach build' execution, after `build(...)` has finished. @@ -328,7 +337,7 @@ class BuildBackend(LoggingMixin): self._write_purgecaches(config) if status == 0: - self._setup_tor_browser_environment(config) + self._setup_base_browser_environment(config) return status View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/9882c79… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/9882c79… 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] 2 commits: fixup! BB 43564: Modify ./mach bootstrap for Base Browser
by brizental (@brizental) 26 Jan '26

26 Jan '26
brizental pushed to branch mullvad-browser-147.0a1-16.0-2 at The Tor Project / Applications / Mullvad Browser Commits: e913cc4c by Beatriz Rizental at 2026-01-26T10:35:04-03:00 fixup! BB 43564: Modify ./mach bootstrap for Base Browser Generalize extension symlinking code. - - - - - d3c6d733 by Beatriz Rizental at 2026-01-26T11:09:02-03:00 MB 43564: Modify ./mach bootstrap for Mullvad Browser - - - - - 5 changed files: - build/moz.configure/basebrowser-resources.configure - build/moz.configure/bootstrap.configure - python/mozboot/mozboot/bootstrap.py - python/mozbuild/mozbuild/backend/base.py - python/mozbuild/mozbuild/tbbutils.py Changes: ===================================== build/moz.configure/basebrowser-resources.configure ===================================== @@ -27,7 +27,7 @@ option( "noscript", no_unpack=True, when=depends("--with-noscript")(lambda x: not x) ), ) -@checking("for noscript") +@checking("for noscript extension") @imports(_from="pathlib", _import="Path") def noscript(value, mozbuild_state_path, _bootstrapped): if value: @@ -49,6 +49,84 @@ def noscript(value, mozbuild_state_path, _bootstrapped): set_config("NOSCRIPT", noscript) +option( + "--with-ublock", + env="UBLOCK", + nargs=1, + default=None, + help="Path to ublock .xpi extension archive.", +) + + +@depends( + "--with-ublock", + mozbuild_state_path, + bootstrap_path( + "ublock", no_unpack=True, when=depends("--with-ublock")(lambda x: not x) + ), +) +@checking("for ublock extension") +@imports(_from="pathlib", _import="Path") +def ublock(value, mozbuild_state_path, _bootstrapped): + if value: + path = Path(value[0]) + if path.is_file() and path.suffix == ".xpi": + return value[0] + else: + die("--with-ublock must be an existing .xpi file") + + bootstrapped_location = Path(mozbuild_state_path) / "browser" + for file in bootstrapped_location.glob(f"*.xpi"): + if "ublock" in file.name: + return str(bootstrapped_location / file) + + # ublock is not required for building. + return None + + +set_config("UBLOCK", ublock) + + +option( + "--with-mullvad-extension", + env="MULLVAD_EXTENSION", + nargs=1, + default=None, + help="Path to mullvad extension .xpi extension archive.", +) + + +@depends( + "--with-mullvad-extension", + mozbuild_state_path, + bootstrap_path( + "mullvad-browser-extension", + no_unpack=True, + when=depends("--with-mullvad-extension")(lambda x: not x), + ), +) +@checking("for mullvad extension") +@imports(_from="pathlib", _import="Path") +def mullvad_extension(value, mozbuild_state_path, _bootstrapped): + if value: + path = Path(value[0]) + if path.is_file() and path.suffix == ".xpi": + return value[0] + else: + die("--with-mullvad-extension must be an existing .xpi file") + + bootstrapped_location = Path(mozbuild_state_path) / "browser" + for file in bootstrapped_location.glob(f"*.xpi"): + if "mullvad-browser-extension" in file.name: + return str(bootstrapped_location / file) + + # mullvad extension is not required for building. + return None + + +set_config("MULLVAD_EXTENSION", mullvad_extension) + + option( "--with-tor-browser-fonts", env="TOR_BROWSER_FONTS", ===================================== build/moz.configure/bootstrap.configure ===================================== @@ -197,8 +197,12 @@ def bootstrap_path(path, **kwargs): if path_parts[0] == "clang-tools": path_prefix = path_parts.pop(0) - # Small hack because noscript is inside the browser folder. - if path_parts[0] == "noscript": + # Small hack because extensions are inside the browser folder. + if path_parts[0] in ( + "noscript", + "ublock", + "mullvad-browser-extension", + ): path_prefix = "browser" def try_tbb_bootstrap(exists): ===================================== python/mozboot/mozboot/bootstrap.py ===================================== @@ -49,28 +49,28 @@ Note on Artifact Mode: Artifact builds download prebuilt C++ components rather than building them locally. Artifact builds are faster! -Artifact builds are recommended for people working on Tor Browser or +Artifact builds are recommended for people working on Mullvad Browser or Base Browser for Android frontends, or the GeckoView Java API. They are unsuitable for those working on C++ code. For more information see: https://firefox-source-docs.mozilla.org/contributing/build/artifact_builds.…. -# Note to Base Browser developers +# Note to Mullvad Browser developers This is still highly experimental. Expect bugs! -Please choose the version of Base Browser you want to build (see note above): +Please choose the version of Mullvad Browser you want to build (see note above): %s Your choice: """ APPLICATIONS = OrderedDict( [ - ("Base Browser for Desktop Artifact Mode", "browser_artifact_mode"), - ("Base Browser for Desktop", "browser"), + ("Mullvad Browser for Desktop Artifact Mode", "browser_artifact_mode"), + ("Mullvad Browser for Desktop", "browser"), ( - "GeckoView/Base Browser for Android Artifact Mode", + "GeckoView/Mullvad Browser for Android Artifact Mode", "mobile_android_artifact_mode", ), - ("GeckoView/Base Browser for Android", "mobile_android"), + ("GeckoView/Mullvad Browser for Android", "mobile_android"), ("SpiderMonkey JavaScript engine", "js"), ] ) ===================================== python/mozbuild/mozbuild/backend/base.py ===================================== @@ -243,22 +243,47 @@ class BuildBackend(LoggingMixin): with open(mozpath.join(dir, ".purgecaches"), "w") as f: f.write("\n") - def _setup_tor_browser_environment(self, config): + def _create_or_replace_symlink(self, src, dst): + try: + os.symlink(src, dst) + except OSError as e: + if e.errno == errno.EEXIST: + # If the symlink already exists, remove it and try again. + os.remove(dst) + os.symlink(src, dst) + else: + return + + def _setup_extension_symlink(self, location, target_filename, exts_path): + if not location: + return + + target = exts_path / target_filename + + self.log( + logging.INFO, + "_setup_extension_symlink", + { + "location": location, + "target": str(target), + }, + "Creating symlink for extension from {location} to {target}", + ) + + exts_path.mkdir(parents=True, exist_ok=True) + self._create_or_replace_symlink(location, target) + + def _setup_base_browser_environment(self, config): app = config.substs["MOZ_BUILD_APP"] noscript_target_filename = "{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi" noscript_location = config.substs.get("NOSCRIPT") - def _infallible_symlink(src, dst): - try: - os.symlink(src, dst) - except OSError as e: - if e.errno == errno.EEXIST: - # If the symlink already exists, remove it and try again. - os.remove(dst) - os.symlink(src, dst) - else: - return + ublock_target_filename = "uBlock0(a)raymondhill.net.xpi" + ublock_location = config.substs.get("UBLOCK") + + mullvad_extension_target_filename = "{d19a89b9-76c1-4a61-bcd4-49e8de916403}.xpi" + mullvad_extension_location = config.substs.get("MULLVAD_EXTENSION") if app == "browser": tbdir = Path(config.topobjdir) / "dist" / "bin" @@ -281,7 +306,7 @@ class BuildBackend(LoggingMixin): if fonts_location: self.log( logging.INFO, - "_setup_tor_browser_environment", + "_setup_base_browser_environment", { "fonts_location": fonts_location, "fonts_target": str(paths["fonts"]), @@ -291,23 +316,25 @@ class BuildBackend(LoggingMixin): for file in Path(fonts_location).iterdir(): target = paths["fonts"] / file.name - _infallible_symlink(file, target) + self._create_or_replace_symlink(file, target) - # Set up NoScript extension - if noscript_location: - noscript_target = paths["exts"] / noscript_target_filename - self.log( - logging.INFO, - "_setup_tor_browser_environment", - { - "noscript_location": noscript_location, - "noscript_target": str(noscript_target), - }, - "Creating symlink for NoScript from {noscript_location} to {noscript_target}", - ) + self._setup_extension_symlink( + noscript_location, + noscript_target_filename, + paths["exts"], + ) - paths["exts"].mkdir(parents=True, exist_ok=True) - _infallible_symlink(noscript_location, noscript_target) + self._setup_extension_symlink( + ublock_location, + ublock_target_filename, + paths["exts"], + ) + + self._setup_extension_symlink( + mullvad_extension_location, + mullvad_extension_target_filename, + paths["exts"], + ) def post_build(self, config, output, jobs, verbose, status): """Called late during 'mach build' execution, after `build(...)` has finished. @@ -328,7 +355,7 @@ class BuildBackend(LoggingMixin): self._write_purgecaches(config) if status == 0: - self._setup_tor_browser_environment(config) + self._setup_base_browser_environment(config) return status ===================================== python/mozbuild/mozbuild/tbbutils.py ===================================== @@ -22,10 +22,12 @@ def list_files_http(url): return links -TOR_BROWSER_BUILD_ARTIFACTS = [ - # Tor Browser Build-only artifacts, these artifacts are not common with Firefox. +MULLVAD_BROWSER_BUILD_ARTIFACTS = [ + # Mullvad Browser Build-only artifacts, these artifacts are not common with Firefox. + "mullvad-browser-extension", "noscript", "fonts", + "ublock", ] # Mapping of artifacts from taskcluster to tor-browser-build. @@ -55,7 +57,7 @@ def get_artifact_index(artifact_path): def get_artifact_name(original_artifact_name, host): # These are not build artifacts, they are pre-built artifacts to be added to the final build, # therefore this check can come before the host check. - if original_artifact_name in TOR_BROWSER_BUILD_ARTIFACTS: + if original_artifact_name in MULLVAD_BROWSER_BUILD_ARTIFACTS: return original_artifact_name if host != "linux64": View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/58… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/58… 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 41699: Keep only arch-specifc prefs on Android.
by Pier Angelo Vendrame (@pierov) 26 Jan '26

26 Jan '26
Pier Angelo Vendrame pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: c89ca221 by Pier Angelo Vendrame at 2026-01-26T15:02:44+01:00 Bug 41699: Keep only arch-specifc prefs on Android. Currently, our APKs contain preference files for all the architectures. While they are not very big, they are completely useless and, in our situation, every saved byte matters. - - - - - 1 changed file: - projects/browser/build.android Changes: ===================================== projects/browser/build.android ===================================== @@ -70,6 +70,17 @@ function generate_apk { -name '*.js' -or -name '*.mjs' \ -exec /var/tmp/dist/uglifyjs/bin/uglifyjs --in-situ {} \; [% END -%] + [% IF !c("var/android-armv7") -%] + rm -rf armeabi-v7a + [% END -%] + [% IF !c("var/android-aarch64") -%] + rm -rf arm64-v8a + [% END -%] + [% IF !c("var/android-x86_64") -%] + rm -rf x86_64 + [% END -%] + # Notice: we take for granted we never rewrite on the source archive! + # Be sure to change any `rm` with the appropriate command, shall this change. [% c('zip', { zip_src => [ '.' ], zip_args => '-0 ../assets/omni.ja', View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/c… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/c… 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 41684: Move gradle setup back to projects/gradle/config.
by Pier Angelo Vendrame (@pierov) 26 Jan '26

26 Jan '26
Pier Angelo Vendrame pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 98e9c031 by Pier Angelo Vendrame at 2026-01-26T13:02:25+01:00 Bug 41684: Move gradle setup back to projects/gradle/config. - - - - - 5ea37387 by Pier Angelo Vendrame at 2026-01-26T13:02:28+01:00 Bug 41684: Minor cleanup in project configs. While working on this issue, I found that there were several minor changes that we could do to improve consistency with the rest of config files, therefore I thought of doing them in a separate commit first. - - - - - 88ad5449 by Pier Angelo Vendrame at 2026-01-26T15:00:03+01:00 Bug 41684: Use the NDK as Android compiler. We used to use a package with the full Android SDK+NDK. However, we have several projects that only need the NDK. Passing the SDK to them involved unneeded rebuilds for every SDK change, and longer iteration times for toolchain update as a consequence. Projects still needing the Android SDK will need to include both. - - - - - 22 changed files: - + projects/android-ndk/README.md - + projects/android-ndk/build - + projects/android-ndk/config - projects/android-toolchain/README.md → projects/android-sdk/README.md - projects/android-toolchain/build → projects/android-sdk/build - projects/android-toolchain/config → projects/android-sdk/config - projects/android-toolchain/platform-36.1-package.xml → projects/android-sdk/platform-36.1-package.xml - projects/application-services/build - projects/application-services/config - projects/application-services/list_toolchain_updates_checks - projects/browser/build.android - projects/browser/config - projects/geckoview/build_ac_fenix - projects/geckoview/build_common - projects/geckoview/config - projects/geckoview/list_toolchain_updates_checks - projects/glean/build - projects/glean/config - projects/gradle/config - projects/oss-licenses-plugin/build - rbm.conf - tools/signing/machines-setup/upload-tbb-to-signing-machine Changes: ===================================== projects/android-ndk/README.md ===================================== @@ -0,0 +1,8 @@ +This projects downloads and repacks the Android NDK, which we use as the +default compiler for Android. + +We used to set the `android-toolchain` project as `var/compiler`, but most of +the projects only need the NDK, so any error in `android-toolchain` would +trigger unneeded rebuilds, making iteration times longer. + +We keep the NDK version in sync with the version used by Mozilla. ===================================== projects/android-ndk/build ===================================== @@ -0,0 +1,9 @@ +#!/bin/bash +[% c("var/set_default_env") -%] + +unzip -qq $rootdir/[% c("input_files_by_name/ndk")%] +mv android-ndk-r[% c("var/release") %] [% project %] +[% c('tar', { + tar_src => [ project ], + tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'), + }) %] ===================================== projects/android-ndk/config ===================================== @@ -0,0 +1,18 @@ +# vim: filetype=yaml sw=2 +filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]' +version: 29.0.14206865 + +var: + release: 29 + setup: | + mkdir -p /var/tmp/dist + tar -C /var/tmp/dist -xf $rootdir/[% c("compiler_tarfile") %] + export ANDROID_NDK_HOME=/var/tmp/dist/android-ndk/ + export ANDROID_NDK_ROOT=$ANDROID_NDK_HOME + export NDK_HOST_TAG=linux-x86_64 + export PATH=$PATH:$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin + +input_files: + - URL: 'https://dl.google.com/android/repository/android-ndk-r[% c("var/release") %]-linux.zip' + name: ndk + sha256sum: 4abbbcdc842f3d4879206e9695d52709603e52dd68d3c1fff04b3b5e7a308ecf ===================================== projects/android-toolchain/README.md → projects/android-sdk/README.md ===================================== @@ -1,14 +1,14 @@ -This project is configured as `var/compiler` for Android. - -It contains a few versions of the Android SDK, build tools and the NDK. +This project contains some packages that would normally be installed with +`sdkmanager`, such as the build tools, platform tools and platforms. It defines several environment variables that various build systems look for, such as `ANDROID_HOME`. -Optionally, it also prepares gradle. -The output artifact includes only one version of the NDK, because of its huge -size, but the setup commands can use a custom version of the NDK, since some -projects need different versions (e.g., GeckoView and Application Services). +We used to have a single package for the SDK and the NDK. +However, most of native binaries need only the NDK. +Therefore, we decided to split the project, to possibly reduce the iteration +time when updating the toolchains, as it is much easier to get the NDK right at +the first attempt. # Known issues ===================================== projects/android-toolchain/build → projects/android-sdk/build ===================================== @@ -3,20 +3,13 @@ distdir=$rootdir/[% project %] mkdir -p $distdir - -mkdir $distdir/android-sdk-linux -cd $distdir/android-sdk-linux +cd $distdir # Command line tools mkdir -p cmdline-tools unzip -qq $rootdir/[% c("input_files_by_name/android_commandlinetools") %] -d cmdline-tools mv cmdline-tools/cmdline-tools cmdline-tools/[% c("var/commandlinetools_version_string") %] -# NDK -mkdir ndk -unzip -qq $rootdir/[% c("input_files_by_name/android_ndk_compiler")%] -d ndk -ln -s android-ndk-r[% c("var/android_ndk_release_name") %] ndk/[% c("var/android_ndk_revision") %] - # Build tools mkdir build-tools unzip -qq $rootdir/[% c("input_files_by_name/build_tools") %] -d build-tools @@ -38,6 +31,11 @@ mv $rootdir/platform-36.1-package.xml platforms/android-36.1/package.xml # Platform tools unzip -qq $rootdir/[% c("input_files_by_name/platform_tools") %] +# Placeholder for the NDK, as some projects expect the NDK to be in +# $ANDROID_HOME/ndk/<ndk-version>. +# We will add a symlink to the actual NDK in the setup when available. +mkdir ndk + # That's a quirk required by GeckoView but let's have it here instead of in the # project's build script mkdir emulator ===================================== projects/android-toolchain/config → projects/android-sdk/config ===================================== @@ -5,33 +5,12 @@ version: 36.1.0 var: setup: | mkdir -p /var/tmp/dist - tar -C /var/tmp/dist -xf $rootdir/[% c("compiler_tarfile") %] - export ANDROID_HOME=/var/tmp/dist/[% project %]/android-sdk-linux + tar -C /var/tmp/dist -xf $rootdir/[% c("sdk_tarfile") %] + export ANDROID_HOME=/var/tmp/dist/[% project %] + [[ -n "${ANDROID_NDK_HOME}" ]] && ln -s $ANDROID_NDK_HOME $ANDROID_HOME/ndk/[% pc("android-ndk", "version") %] export PATH=$PATH:$ANDROID_HOME/build-tools/[% c("version") %] - # By default we use the old NDK which is the one GeckoView is using. - # However, we can overwrite that per project if needed (e.g. - # application-services is currently on a newer NDK). - # But an NDK is more than 1.5GB, so it does not make sense to copy one that - # is not even used in all containers. Instead, we download the additional - # NDK only in application-services, and adjust the other variables here. - [% IF c("ndk_release") -%] - export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/android-ndk-r[% c("ndk_release") %] - [% ELSE -%] - export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/android-ndk-r[% c("var/android_ndk_release_name") %] - [% END -%] - export ANDROID_NDK_ROOT=$ANDROID_NDK_HOME - export NDK_HOST_TAG=linux-x86_64 - export PATH=$PATH:$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin - [% IF c("gradle_tarfile") -%] - tar -C /var/tmp/dist/[% project %] -xf $rootdir/[% c("gradle_tarfile") %] - export GRADLE_HOME=/var/tmp/dist/[% project %]/gradle - export GRADLE_USER_HOME=$GRADLE_HOME - export PATH=$PATH:$GRADLE_HOME/bin - [% END -%] google_repo: https://dl.google.com/android/repository android_release_dir: android-16 - android_ndk_release_name: '29' - android_ndk_revision: 29.0.14206865 # We need the following two variables for get_build_tools, used by signing # scripts. build_tools_version: 36.1 @@ -45,9 +24,6 @@ input_files: - URL: '[% c("var/google_repo") %]/commandlinetools-linux-[% c("var/commandlinetools_version") %]_latest.zip' name: android_commandlinetools sha256sum: 7ec965280a073311c339e571cd5de778b9975026cfcbe79f2b1cdcb1e15317ee - - URL: '[% c("var/google_repo") %]/android-ndk-r[% c("var/android_ndk_release_name") %]-linux.zip' - name: android_ndk_compiler - sha256sum: 4abbbcdc842f3d4879206e9695d52709603e52dd68d3c1fff04b3b5e7a308ecf - URL: '[% c("var/google_repo") %]/[% c("var/build_tools_filename") %]' name: build_tools sha256sum: '[% c("var/build_tools_sha256sum") %]' ===================================== projects/android-toolchain/platform-36.1-package.xml → projects/android-sdk/platform-36.1-package.xml ===================================== ===================================== projects/application-services/build ===================================== @@ -3,9 +3,10 @@ [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')), - gradle_tarfile => c("input_files_by_name/gradle"), }) %] -pushd /var/tmp/dist/android-toolchain/android-sdk-linux/build-tools/ +[% pc('android-sdk', 'var/setup', { sdk_tarfile => c("input_files_by_name/android-sdk") }) %] +[% pc('gradle', 'var/setup', { gradle_tarfile => c("input_files_by_name/gradle") }) %] +pushd /var/tmp/dist/android-sdk/build-tools/ unzip $rootdir/'[% c("input_files_by_name/build_tools_35") %]' mv android-15 35.0 popd ===================================== projects/application-services/config ===================================== @@ -48,25 +48,20 @@ steps: - gyp input_files: - project: container-image - pkg_type: build - project: '[% c("var/compiler") %]' name: '[% c("var/compiler") %]' - pkg_type: build + - project: android-sdk + name: android-sdk - project: gradle name: gradle - pkg_type: build - project: rust name: rust - pkg_type: build - project: ninja name: ninja - pkg_type: build - project: uniffi-rs name: uniffi-rs - pkg_type: build - project: glean name: glean - pkg_type: build enable: '[% !c("var/generate_gradle_dependencies_list") %]' # Only Application Services currently requires build tools 35. # So, download them only here, rather than adding them to the shared ===================================== projects/application-services/list_toolchain_updates_checks ===================================== @@ -8,7 +8,7 @@ if (m/^\\s*compileSdkVersion:\\s([^"]*),/) { } EOF needed=$(cat build.gradle | perl -ne "$p") -current='[% pc("android-toolchain", "var/android_api_level") %]' +current=$(echo [% pc("android-sdk", "version") %] | cut -f 1 -d '.') check_update_needed compileSdkVersion "$needed" "$current" ===================================== projects/browser/build.android ===================================== @@ -1,6 +1,7 @@ #!/bin/bash [% c("var/set_default_env") -%] -[% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %] + +[% pc('android-sdk', 'var/setup', { sdk_tarfile => c("input_files_by_name/android-sdk") }) %] [% IF c("var/android-x86_64") -%] tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/node') %] ===================================== projects/browser/config ===================================== @@ -69,9 +69,12 @@ targets: input_files: - project: container-image + - name: '[% c("var/compiler") %]' + project: '[% c("var/compiler") %]' + enable: '[% c("var/macos") %]' - project: firefox name: firefox - enable: '[% ! c("var/android") %]' + enable: '[% !c("var/android") %]' - project: firefox name: firefox-aarch64 enable: '[% c("var/macos_universal") %]' @@ -81,30 +84,11 @@ input_files: name: src-firefox pkg_type: src-tarballs enable: '[% c("var/macos") %]' - - project: geckoview - name: fenix - pkg_type: build_apk - enable: '[% c("var/android") && !c("var/android_single_arch") %]' - - project: geckoview - name: fenix - pkg_type: build - enable: '[% c("var/android") && c("var/android_single_arch") %]' - - project: tor-expert-bundle - name: tor-expert-bundle - enable: '[% c("var/tor-browser") %]' - - project: tor-expert-bundle - name: tor-expert-bundle-aarch64 - enable: '[% c("var/macos_universal") && c("var/tor-browser") %]' - target_replace: - '^torbrowser-macos.*': torbrowser-macos-aarch64 - - project: moat-settings - name: moat-settings - enable: '[% c("var/tor-browser") %]' - project: fonts name: fonts - enable: '[% ! c("var/android") %]' + enable: '[% !c("var/android") %]' - filename: Bundle-Data - enable: '[% ! c("var/android") %]' + enable: '[% !c("var/android") %]' - filename: dmg-root enable: '[% c("var/macos") %]' - URL: https://dist.torproject.org/torbrowser/noscript/noscript-13.5.1.90101984.xpi @@ -118,6 +102,20 @@ input_files: name: mullvad-extension sha256sum: 4597ee6fff6a2f19cbf78a6149d38d12ad8a9d6029b7e36f6c639dc3e07dd2c3 enable: '[% c("var/mullvad-browser") %]' + - project: manual + name: manual + enable: '[% !c("var/android") && c("var/tor-browser") %]' + - project: tor-expert-bundle + name: tor-expert-bundle + enable: '[% c("var/tor-browser") %]' + - project: tor-expert-bundle + name: tor-expert-bundle-aarch64 + enable: '[% c("var/macos_universal") && c("var/tor-browser") %]' + target_replace: + '^torbrowser-macos.*': torbrowser-macos-aarch64 + - project: moat-settings + name: moat-settings + enable: '[% c("var/tor-browser") %]' - filename: 'gtk3-settings.ini' enable: '[% c("var/linux") %]' - project: hfsplus-tools @@ -145,15 +143,20 @@ input_files: name: translation-mullvad-browser pkg_type: mullvad-browser enable: '[% c("var/mullvad-browser") && c("var/windows") && !c("var/testbuild") %]' + - project: geckoview + name: fenix + pkg_type: build_apk + enable: '[% c("var/android") && !c("var/android_single_arch") %]' + - project: geckoview + name: fenix + pkg_type: build + enable: '[% c("var/android") && c("var/android_single_arch") %]' # To generate a new keystore, see how-to-generate-keystore.txt - filename: android-qa.keystore enable: '[% c("var/android") %]' - - name: '[% c("var/compiler") %]' - project: '[% c("var/compiler") %]' - enable: '[% c("var/android") || c("var/macos") %]' - - project: manual - name: manual - enable: '[% ! c("var/android") && c("var/tor-browser") %]' + - project: android-sdk + name: android-sdk + enable: '[% c("var/android") %]' # tor-browser-build#40920 - filename: sort-baseline.py enable: '[% c("var/android") %]' ===================================== projects/geckoview/build_ac_fenix ===================================== @@ -12,7 +12,7 @@ gradle $GRADLE_FLAGS assembleGecko -x lint [% IF c('var/generate_gradle_dependen popd # The build might fail with "file exists" otherwise. -rm -rf /var/tmp/dist/android-toolchain/gradle/glean/pythonenv +rm -rf $GRADLE_HOME/glean/pythonenv echo "Building Fenix $(date)" pushd mobile/android/fenix ===================================== projects/geckoview/build_common ===================================== @@ -1,8 +1,9 @@ [% c("var/set_default_env") -%] [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')), - gradle_tarfile => c("input_files_by_name/gradle"), }) %] +[% pc('android-sdk', 'var/setup', { sdk_tarfile => c("input_files_by_name/android-sdk") }) %] +[% pc('gradle', 'var/setup', { gradle_tarfile => c("input_files_by_name/gradle") }) %] distdir=/var/tmp/dist builddir=/var/tmp/build outdir="[% dest_dir _ '/' _ c('filename') -%]" ===================================== projects/geckoview/config ===================================== @@ -78,6 +78,9 @@ steps: - name: '[% c("var/compiler") %]' project: '[% c("var/compiler") %]' pkg_type: build + - project: android-sdk + name: android-sdk + pkg_type: build - project: gradle name: gradle pkg_type: build @@ -156,6 +159,8 @@ input_files: refresh_input: 1 - name: '[% c("var/compiler") %]' project: '[% c("var/compiler") %]' + - project: android-sdk + name: android-sdk - project: gradle name: gradle - project: rust ===================================== projects/geckoview/list_toolchain_updates_checks ===================================== @@ -10,7 +10,7 @@ if (m/^\\s*NDK_VERSION\\s*=\\s*"(.+)"/) { } EOF needed=$(cat python/mozboot/mozboot/android.py | perl -ne "$p") -current='r[% pc("android-toolchain", "var/android_ndk_release_name") %]' +current='r[% pc("android-ndk", "var/release") %]' check_update_needed ndk_release_name "$needed" "$current" @@ -22,7 +22,7 @@ if (m/build-tools;(.+)$/) { } EOF needed=$(cat python/mozboot/mozboot/android-packages.txt | perl -ne "$p") -current='[% pc("android-toolchain", "version") %]' +current='[% pc("android-sdk", "version") %]' check_update_needed build_tools "$needed" "$current" @@ -43,7 +43,7 @@ while (<>) { } EOF needed=$(cat python/mozboot/mozboot/android.py | perl -e "$p") -current='[% pc("android-toolchain", "var/commandlinetools_version_string") %]-[% pc("android-toolchain", "var/commandlinetools_version") %]' +current='[% pc("android-sdk", "var/commandlinetools_version_string") %]-[% pc("android-sdk", "var/commandlinetools_version") %]' check_update_needed cmdline-tools "$needed" "$current" ===================================== projects/glean/build ===================================== @@ -3,10 +3,11 @@ [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')), - gradle_tarfile => c("input_files_by_name/gradle"), }) %] +[% pc('android-sdk', 'var/setup', { sdk_tarfile => c("input_files_by_name/android-sdk") }) %] +[% pc('gradle', 'var/setup', { gradle_tarfile => c("input_files_by_name/gradle") }) %] -pushd /var/tmp/dist/android-toolchain/android-sdk-linux/ +pushd /var/tmp/dist/android-sdk cd build-tools unzip $rootdir/'[% c("input_files_by_name/build_tools_35") %]' mv android-15 35.0.0 ===================================== projects/glean/config ===================================== @@ -23,9 +23,11 @@ steps: - project: container-image - project: '[% c("var/compiler") %]' name: '[% c("var/compiler") %]' + - project: android-sdk + name: android-sdk # These versions of build tools and platform are not the same version needed # by our other projects, therefore we download it only here instead of modifying - # the android-toolchain project. + # the android-sdk project. - URL: 'https://dl.google.com/android/repository/build-tools_r35_linux.zip' name: build_tools_35 sha256sum: bd3a4966912eb8b30ed0d00b0cda6b6543b949d5ffe00bea54c04c81e1561d88 ===================================== projects/gradle/config ===================================== @@ -5,6 +5,11 @@ container: use_container: 1 var: + setup: | + tar -C /var/tmp/dist -xf $rootdir/[% c("gradle_tarfile") %] + export GRADLE_HOME=/var/tmp/dist/gradle + export GRADLE_USER_HOME=$GRADLE_HOME + export PATH=$PATH:$GRADLE_HOME/bin gradle_sha256sum: 8.14.3: bd71102213493060956ec229d946beee57158dbd89d0e62b91bca0fa2c5f3531 ===================================== projects/oss-licenses-plugin/build ===================================== @@ -6,8 +6,7 @@ builddir=/var/tmp/build/[% project %]-[% c('version') %]/[% project %] mkdir -p $distdir $builddir tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %] -tar -C /var/tmp/dist -xf [% c('input_files_by_name/gradle') %] -export PATH=/var/tmp/dist/gradle/bin:$PATH +[% pc('gradle', 'var/setup', { gradle_tarfile => c("input_files_by_name/gradle") }) %] gradle_repo=/var/tmp/dist/gradle-dependencies mv $rootdir/[% c('input_files_by_name/gradle-dependencies') %] $gradle_repo ===================================== rbm.conf ===================================== @@ -473,7 +473,7 @@ targets: var: android: 1 platform: android - compiler: android-toolchain + compiler: android-ndk android_min_api: 26 CC: '[% c("var/cross_prefix") %][% c("var/android_min_api") %]-clang' CFLAGS: '-Oz -fvisibility=hidden' ===================================== tools/signing/machines-setup/upload-tbb-to-signing-machine ===================================== @@ -37,9 +37,9 @@ if ! test -f "./out/yubihsm-shell/$yubihsm_filename"; then echo "Fetched $yubihsm_filename" fi -android_build_tools_filename=$(./rbm/rbm showconf --step get_build_tools android-toolchain filename) -if ! test -f "./out/android-toolchain/$android_build_tools_filename"; then - ./rbm/rbm build --step get_build_tools android-toolchain +android_build_tools_filename=$(./rbm/rbm showconf --step get_build_tools android-sdk filename) +if ! test -f "./out/android-sdk/$android_build_tools_filename"; then + ./rbm/rbm build --step get_build_tools android-sdk echo "Fetched $android_build_tools_filename" fi @@ -63,8 +63,8 @@ chmod go+r "./out/yubihsm-shell/$yubihsm_filename" rsync -v "./out/yubihsm-shell/$yubihsm_filename" "$setup_user@$signing_machine:$signing_dir/$yubihsm_filename" echo "Uploading $android_build_tools_filename" -chmod go+r "./out/android-toolchain/$android_build_tools_filename" -rsync -v "./out/android-toolchain/$android_build_tools_filename" "$setup_user@$signing_machine:$signing_dir/$android_build_tools_filename" +chmod go+r "./out/android-sdk/$android_build_tools_filename" +rsync -v "./out/android-sdk/$android_build_tools_filename" "$setup_user@$signing_machine:$signing_dir/$android_build_tools_filename" echo "Extracting $android_build_tools_filename" ssh "$setup_user@$signing_machine" mkdir -p $signing_dir/android-build-tools ssh "$setup_user@$signing_machine" unzip -qo -d $signing_dir/android-build-tools "$signing_dir/$android_build_tools_filename" 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/tor-browser][tor-browser-147.0a1-16.0-2] 2 commits: fixup! Add CI for Tor Browser
by henry (@henry) 26 Jan '26

26 Jan '26
henry pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 30b4b8bb by Henry Wilkes at 2026-01-26T13:22:48+00:00 fixup! Add CI for Tor Browser TB 44492: Fix lint warnings. - - - - - bad52bb0 by Henry Wilkes at 2026-01-26T13:22:48+00:00 fixup! TB 43817: Add tests for Tor Browser TB 44492: Fix lint warnings. - - - - - 3 changed files: - .gitlab/ci/jobs/startup-test/startup-test.py - testing/tor/test_circuit_isolation.py - testing/tor/test_network_check.py Changes: ===================================== .gitlab/ci/jobs/startup-test/startup-test.py ===================================== @@ -97,5 +97,6 @@ subprocess.run( download_url, "--thing-to-run", binary, - ] + ], + check=True, ) ===================================== testing/tor/test_circuit_isolation.py ===================================== @@ -10,7 +10,7 @@ TOR_BOOTSTRAP_TIMEOUT = 30000 # 30s class TestCircuitIsolation(MarionetteTestCase): def tearDown(self): self.marionette.restart(in_app=False, clean=True) - super(TestCircuitIsolation, self).tearDown() + super().tearDown() def bootstrap(self): with self.marionette.using_context("chrome"): ===================================== testing/tor/test_network_check.py ===================================== @@ -16,7 +16,7 @@ class TestNetworkCheck(MarionetteTestCase): def tearDown(self): self.marionette.restart(in_app=False, clean=True) - super(TestNetworkCheck, self).tearDown() + super().tearDown() def attemptConnection(self, tries=1): if tries > 3: View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/f2fc0b… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/f2fc0b… 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 41687: Add single `make list_toolchain_updates` command to list all toolchain updates
by boklm (@boklm) 26 Jan '26

26 Jan '26
boklm pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 610c0219 by Nicolas Vigier at 2026-01-26T12:04:07+01:00 Bug 41687: Add single `make list_toolchain_updates` command to list all toolchain updates - - - - - 2 changed files: - Makefile - + tools/list_toolchain_updates Changes: ===================================== Makefile ===================================== @@ -554,6 +554,9 @@ list_translation_updates-release: list_translation_updates-alpha: $(rbm) showconf --target alpha --step list_updates translation list_updates +list_toolchain_updates: + tools/list_toolchain_updates + list_toolchain_updates-firefox-linux: submodule-update $(rbm) build firefox --step list_toolchain_updates --target nightly --target torbrowser-linux-x86_64 ===================================== tools/list_toolchain_updates ===================================== @@ -0,0 +1,35 @@ +#!/bin/bash +# +# This script runs all `make list_toolchain_updates-*` commands, save +# their outputs to a file (tmp/toolchain_updates.txt) and print it +# (again) at the end. +# +set -e + +script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +cd "$script_dir"/.. + +output_file="$script_dir/../tmp/toolchain_updates.txt" + +rm -f "$output_file" + +function list_toolchain_updates { + for cmd in \ + list_toolchain_updates-firefox-linux \ + list_toolchain_updates-firefox-windows \ + list_toolchain_updates-firefox-macos \ + list_toolchain_updates-application-services \ + list_toolchain_updates-geckoview + do + line_title="** $cmd **" + line_size=$(echo "$line_title" | wc -m) + line_line=$(perl -e 'print "*" x ('$line_size' - 1), "\n"') + echo "$line_line"; echo "$line_title"; echo "$line_line"; echo + make -s $cmd + echo; echo; echo "$line_line"; echo "$line_line"; echo; echo + done +} + +list_toolchain_updates | tee -a "$output_file" + +echo "See also tmp/toolchain_updates.txt" 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/mullvad-browser][mullvad-browser-147.0a1-16.0-2] fixup! BB 32308: Use direct browser sizing for letterboxing.
by henry (@henry) 26 Jan '26

26 Jan '26
henry pushed to branch mullvad-browser-147.0a1-16.0-2 at The Tor Project / Applications / Mullvad Browser Commits: 58b599ef by henry at 2026-01-26T09:36:32+00:00 fixup! BB 32308: Use direct browser sizing for letterboxing. TB 44535: Make --tabpanel-background-color transparent when letterboxing is enabled. (cherry picked from commit f2fc0bea56d10004f773e2d3c3efe46b8f77e72c) Co-authored-by: Henry Wilkes <henry(a)torproject.org> - - - - - 1 changed file: - toolkit/components/resistfingerprinting/content/letterboxing.css Changes: ===================================== toolkit/components/resistfingerprinting/content/letterboxing.css ===================================== @@ -80,13 +80,9 @@ outline-width: var(--letterboxing-outline-width); } - #tabbrowser-tabpanels { - /* Override the --tabpanel-background-color. - * Also, make sure this remains transparent, otherwise it will overlap the - * parent's corner's border-radius due to it's "position: relative" rule. */ - /* TODO: FIX this for newtab pages. tor-browser#44085 */ - background: transparent; - } + /* Override the --tabpanel-background-color. */ + /* TODO: FIX this for newtab pages. tor-browser#44085 */ + --tabpanel-background-color: transparent; /* stylelint-disable-next-line media-query-no-invalid */ @media -moz-pref("sidebar.revamp") { View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/58b… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/58b… 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 32308: Use direct browser sizing for letterboxing.
by henry (@henry) 26 Jan '26

26 Jan '26
henry pushed to branch base-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 018d2bf1 by henry at 2026-01-26T09:33:20+00:00 fixup! BB 32308: Use direct browser sizing for letterboxing. TB 44535: Make --tabpanel-background-color transparent when letterboxing is enabled. (cherry picked from commit f2fc0bea56d10004f773e2d3c3efe46b8f77e72c) Co-authored-by: Henry Wilkes <henry(a)torproject.org> - - - - - 1 changed file: - toolkit/components/resistfingerprinting/content/letterboxing.css Changes: ===================================== toolkit/components/resistfingerprinting/content/letterboxing.css ===================================== @@ -80,13 +80,9 @@ outline-width: var(--letterboxing-outline-width); } - #tabbrowser-tabpanels { - /* Override the --tabpanel-background-color. - * Also, make sure this remains transparent, otherwise it will overlap the - * parent's corner's border-radius due to it's "position: relative" rule. */ - /* TODO: FIX this for newtab pages. tor-browser#44085 */ - background: transparent; - } + /* Override the --tabpanel-background-color. */ + /* TODO: FIX this for newtab pages. tor-browser#44085 */ + --tabpanel-background-color: transparent; /* stylelint-disable-next-line media-query-no-invalid */ @media -moz-pref("sidebar.revamp") { View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/018d2bf… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/018d2bf… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • ...
  • 2045
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.