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
  • ----- 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
  • 19727 discussions
[Git][tpo/applications/tor-browser] Pushed new branch tor-browser-146.0a1-16.0-1
by brizental (@brizental) 27 Nov '25

27 Nov '25
brizental pushed new branch tor-browser-146.0a1-16.0-1 at The Tor Project / Applications / Tor Browser -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/tree/tor-brows… 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 41445: Better handle bugzilla "Web Compatibility" issues in generate-bugzilla-triage-csv
by morgan (@morgan) 27 Nov '25

27 Nov '25
morgan pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 58b81d4e by Morgan at 2025-11-27T14:41:58+00:00 Bug 41445: Better handle bugzilla "Web Compatibility" issues in generate-bugzilla-triage-csv - set component to "Web Compatibility" for git-scraped issues containing "webcompat" string in their summary - always use FIREFOX_NIGHTLY_xxx_END tags as git commits - - - - - 1 changed file: - tools/browser/generate-bugzilla-triage-csv Changes: ===================================== tools/browser/generate-bugzilla-triage-csv ===================================== @@ -4,7 +4,7 @@ browser_label="Apps::Product::TorBrowser" esr_label="esr-next" priority_label="Priority::Blocker" -impact_label="Impact::Unknown" +impact_label="Apps::Impact::Unknown" type_label="Apps::Type::Audit" # milestone for the next major Tor Browser release @@ -16,17 +16,15 @@ function echoerr() { echo "$@" 1>&2; } script_dir=$(dirname "${BASH_ARGV0:-$0}") # help dialog -if [ "$#" -ne 4 ]; then - echoerr "Usage: $0 <ff-version> <begin-commit> <end-commit> <gitlab-audit-issue>" +if [ "$#" -ne 2 ]; then + echoerr "Usage: $0 <ff-version> <gitlab-audit-issue>" echoerr echoerr "ff-version rapid-release Firefox version to audit" - echoerr "begin-commit starting firefox commit of this Firefox version" - echoerr "end-commit ending firefox commit of this Firefox version" echoerr "gitlab-audit-issue tor-browser GitLab issue number for this audit" echoerr "" echoerr "Example:" echoerr "" - echoerr "$0 129 FIREFOX_NIGHTLY_128_END FIREFOX_NIGHTLY_129_END 43303" + echoerr "$0 129 43303" exit 1 fi @@ -56,10 +54,10 @@ check_exists wget # Assign arguments to named variables firefox_version=$1 -git_begin=$2 -git_end=$3 -audit_issue=$4 -reviewers="${@:5}" +firefox_old_version=$((firefox_version - 1)) +audit_issue=$2 +git_begin="FIREFOX_NIGHTLY_${firefox_old_version}_END" +git_end="FIREFOX_NIGHTLY_${firefox_version}_END" # Check valid Firefox version if ! [[ "${firefox_version}" =~ ^[1-9][0-9]{2}$ ]]; then @@ -151,7 +149,12 @@ git log --format='%s' $git_begin..$git_end \ printf ",\n" >> "${git_json}" fi - printf " { \"component\": \"Unknown\", \"id\": %s, \"summary\": \"%s\" }" ${id} "${summary}" >> "${git_json}" + component="Unknown" + if [[ "${summary}" =~ webcompat ]]; then + component="Web Compatibility" + fi + + printf " { \"component\": \"%s\", \"id\": %s, \"summary\": \"%s\" }" "${component}" ${id} "${summary}" >> "${git_json}" done printf "\n]\n" >> "${git_json}" @@ -171,7 +174,6 @@ bugzilla_json_query="https://bugzilla.mozilla.org/rest/bug?include_fields=id,com wget "${bugzilla_json_query}" -O ${bugzilla_json} - # # Create Union of these two sets of issues # View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/5… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/5… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-145.0a1-16.0-1] 5 commits: fixup! [android] Modify build system
by brizental (@brizental) 27 Nov '25

27 Nov '25
brizental pushed to branch tor-browser-145.0a1-16.0-1 at The Tor Project / Applications / Tor Browser Commits: 0693577b by Beatriz Rizental at 2025-11-27T12:48:48+01:00 fixup! [android] Modify build system - - - - - fc0668a4 by Beatriz Rizental at 2025-11-27T12:48:48+01:00 fixup! TB 41878: [android] Add standalone Tor Bootstrap - - - - - 52aa72a6 by Beatriz Rizental at 2025-11-27T12:48:48+01:00 fixup! BB 43564: Modify ./mach bootstrap for Base Browser - - - - - 2bd95ead by Beatriz Rizental at 2025-11-27T12:48:48+01:00 fixup! BB 43564: Modify ./mach bootstrap for Tor Browser - - - - - 8e60c9e7 by Dan Ballard at 2025-11-27T12:48:48+01:00 fixup! [android] Modify build system add checks for empty env vars to not override mozconfig defaults in base-browser-android - - - - - 8 changed files: - browser/config/mozconfigs/base-browser-android - build/moz.configure/basebrowser-resources.configure - build/moz.configure/torbrowser-resources.configure - mobile/android/fenix/app/build.gradle - mobile/android/fenix/tools/tba-fetch-deps.sh - python/mozbuild/mozbuild/backend/base.py - python/mozbuild/mozbuild/tbbutils.py - python/mozbuild/mozbuild/test/test_tbbutils.py Changes: ===================================== browser/config/mozconfigs/base-browser-android ===================================== @@ -11,11 +11,22 @@ ac_add_options --enable-application=mobile/android CC="clang" CXX="clang++" ac_add_options --enable-linker=lld -ac_add_options --with-java-bin-path=$JAVA_HOME/bin -ac_add_options --with-android-sdk=$ANDROID_HOME -ac_add_options --with-android-ndk=$ANDROID_NDK_HOME + +if test -n "$ANDROID_HOME"; then + ac_add_options --with-android-sdk=$ANDROID_HOME +fi + +if test -n "$ANDROID_NDK_HOME"; then + ac_add_options --with-android-ndk=$ANDROID_NDK_HOME +fi + ac_add_options --with-android-min-sdk=21 -ac_add_options --with-gradle=$GRADLE_HOME/bin/gradle + +if test -n "$GRADLE_HOME"; then + ac_add_options --with-gradle=$GRADLE_HOME/bin/gradle +fi +# Otherwise (as per /mobile/android/gradle.config) a version will be downloaded by the gradle wrapper when needed +# so don't use this override, and let it do it's thing ac_add_options --enable-strip ac_add_options --enable-install-strip ===================================== build/moz.configure/basebrowser-resources.configure ===================================== @@ -55,6 +55,7 @@ option( nargs=1, default=None, help="Path to location of fonts directory.", + when=is_desktop_build, ) @@ -63,8 +64,11 @@ option( mozbuild_state_path, bootstrap_path( "fonts", - when=depends("--with-tor-browser-fonts")(lambda x: not x) & is_desktop_build, + when=depends("--with-tor-browser-fonts", when=is_desktop_build)( + lambda x: not x + ), ), + when=is_desktop_build, ) @checking("for tor-browser fonts directory") @imports(_from="pathlib", _import="Path") ===================================== build/moz.configure/torbrowser-resources.configure ===================================== @@ -4,6 +4,7 @@ option( nargs=1, default=None, help="Path to location of tor-expert-bundle directory.", + when=is_desktop_build, ) @@ -12,8 +13,11 @@ option( mozbuild_state_path, bootstrap_path( "tor-expert-bundle", - when=depends("--with-tor-expert-bundle")(lambda x: not x) & is_desktop_build, + when=depends("--with-tor-expert-bundle", when=is_desktop_build)( + lambda x: not x + ), ), + when=is_desktop_build, ) @checking("for tor-expert-bundle") @imports(_from="pathlib", _import="Path") @@ -34,4 +38,155 @@ def tor_expert_bundle(value, mozbuild_state_path, _bootstrapped): return None -set_config("TOR_EXPERT_BUNDLE", tor_expert_bundle) +set_config("TOR_EXPERT_BUNDLE", tor_expert_bundle, when=is_desktop_build) + + +# Android +# ------------------------------------------------- + + +@depends(build_project) +def is_android_build(build_project): + return build_project == "mobile/android" + + +@imports(_from="pathlib", _import="Path") +def maven_local_default(): + return str(Path.home() / ".m2/repository") + + +option( + "--with-maven-local", + nargs=1, + default=maven_local_default(), + help="Path the maven local directory. Defaults to $HOME/.m2/repository", +) + + +@depends("--with-maven-local") +def maven_local(value): + if value: + return value[0] + + +option( + "--with-tor-expert-bundle-aar", + env="TOR_EXPERT_BUNDLE_AAR", + nargs=1, + default=None, + help="Path to location of tor-expert-bundle.aar archive.", + when=is_android_build, +) + + +@depends( + "--with-tor-expert-bundle-aar", + mozbuild_state_path, + bootstrap_path( + "tor-expert-bundle-aar", + no_unpack=True, + when=depends("--with-tor-expert-bundle-aar", when=is_android_build)( + lambda x: not x + ), + ), + when=is_android_build, +) +@checking("for tor-expert-bundle.aar") +@imports(_from="pathlib", _import="Path") +def tor_expert_bundle_aar(value, mozbuild_state_path, _bootstrapped): + if value: + path = Path(value[0]) + if path.suffix.lower() == ".aar": + return value[0] + else: + die("--with-tor-expert-bundle-aar must point to a AAR archive.") + + bootstrapped_location = Path(mozbuild_state_path) / "tor-expert-bundle.aar" + if bootstrapped_location.is_file(): + return str(bootstrapped_location) + + die( + "tor-expert-bundle-aar not found. Either enable bootstrap, or provide a path with --with-tor-expert-bundle-aar." + ) + + +set_config("TOR_EXPERT_BUNDLE_AAR", tor_expert_bundle_aar) + + +option( + "--with-application-services", + env="APPLICATION_SERVICES", + nargs=1, + default=None, + help="Path to location of application-services gradle lib.", + when=is_android_build, +) + + +@depends( + maven_local, + "--with-application-services", + mozbuild_state_path, + bootstrap_path( + "application-services", + when=depends("--with-application-services", when=is_android_build)( + lambda x: not x + ), + ), + when=is_android_build, +) +@checking("for application-services") +@imports(_from="pathlib", _import="Path") +@imports("mozbuild.tbbutils") +def application_services(maven_local, value, mozbuild_state_path, _bootstrapped): + as_location = None + + if value: + path = Path(value[0]) + if path.is_dir(): + as_location = path + else: + die("--with-application-services must point to a directory.") + else: + bootstrapped_location = Path(mozbuild_state_path) / "application-services/maven" + if bootstrapped_location.is_dir(): + as_location = bootstrapped_location + + if not as_location: + # application-services is not required for building. + die( + "application-services not found. Either enable bootstrap, or provide a path with --with-application-services." + ) + + # Symlink a-s in the maven local repository. + # Note that this _overwrites_ whatever is already in there. + mozbuild.tbbutils.symlink_tree(as_location, maven_local) + return as_location + + +option( + "--with-nimbus-fml", + env="NIMBUS_FML", + nargs=1, + default=None, + help="Path to location of nimbus-fml executable.", + when=is_android_build, +) + + +@depends("--with-nimbus-fml", when=is_android_build) +@checking("for nimbus-fml") +@imports(_from="pathlib", _import="Path") +def nimbus_fml(value): + if value: + path = Path(value[0]) + if path.is_file(): + return value[0] + else: + die("--with-nimbus-fml must point to an existing file.") + + # a-s nimbus-gradle-plugin will download nimbus-fml itself if not provided. + return None + + +set_config("NIMBUS_FML", nimbus_fml) ===================================== mobile/android/fenix/app/build.gradle ===================================== @@ -327,13 +327,10 @@ android.applicationVariants.configureEach { variant -> def isDebugOrDCD = isDebug || isDataCollectionDisabled def useReleaseVersioning = variant.buildType.buildConfigFields['USE_RELEASE_VERSIONING']?.value ?: false - // env var NIMBUS_FML always overrides this in the tbb built patched application services - // https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/blob/mai… - // so safe to have always set so local builds and supply their expected location as fetched by - // fenix/tools/tba-fetch-deps.sh - // We normalize the path because it is valid to open/build from both tb and fenix roots - def normalizedTBPath = rootProject.projectDir.absolutePath.minus("mobile/android/fenix") - System.setProperty("nimbusFml", normalizedTBPath + "/mobile/android/fenix/tools/nimbus-fml") + // When this is set, a-s doesn't attempt to download NIMBUS_FML. + if (gradle.mozconfig.substs.NIMBUS_FML) { + System.setProperty("nimbusFml", gradle.mozconfig.substs.NIMBUS_FML) + } def disableTor = false if (project.hasProperty("disableTor")) { @@ -774,7 +771,7 @@ dependencies { lintChecks project(':components:tooling-lint') // Tor Expert Bundle - implementation files('tor-expert-bundle.aar') + implementation files(gradle.mozconfig.substs.TOR_EXPERT_BUNDLE_AAR) } protobuf { ===================================== mobile/android/fenix/tools/tba-fetch-deps.sh ===================================== @@ -1,124 +1,7 @@ #!/bin/bash -if [ $# -eq 0 ]; then - echo "Usage: ./tba-fetch-deps.sh --\$MODE" - echo " modes:" - echo " --nightly Downloads the needed assets from the nightlies build server. Use when local version matches nightly build server version." - echo " --tbb PATH Harvest most recently built assets from PATH assuming it points to a tor-browser-build dir. Use when local version does NOT match nightly build server version." - exit -1 -fi +echo -e "\033[1;33mThis file is deprecated.\033[0m" +echo "Run ./mach bootstrap and/or define options in your mozconfig from now on." +echo "See documentation at: https://gitlab.torproject.org/tpo/applications/wiki/-/wikis/Development-Inf…" -TBB_BUILD_06="https://tb-build-06.torproject.org/~tb-builder/tor-browser-build/out" - -if [[ $1 == "--tbb" && -z $2 ]]; then - echo "--tbb needs path to tor-browser-build dir" - exit -1 -fi -TBB_PATH=$2 - -cd "$(dirname $(realpath "$0"))/.." - -if [ -z "$TOR_BROWSER_BUILD" ]; then - TOR_BROWSER_BUILD=../../../../tor-browser-build -fi - -echo "Fetching tor-expert-bundle.aar..." - -if [[ $1 == "--tbb" ]]; then - tor_expert_bundle_aar="$(ls -1td "$TOR_BROWSER_BUILD/out/tor-expert-bundle-aar/"tor-expert-bundle-aar-* | head -1)" - cp "$tor_expert_bundle_aar"/* app/ -else - tor_expert_bundle_aar_dirname="$(curl -s $TBB_BUILD_06/tor-expert-bundle-aar/ | sed -nE 's/.*href=\"(tor-expert-bundle-aar-[0-9a-z\.\-]*).*/\1/p' | head -n 1)" - curl -o app/tor-expert-bundle.aar $TBB_BUILD_06/tor-expert-bundle-aar/$tor_expert_bundle_aar_dirname/tor-expert-bundle.aar -fi - -if [ -z app/tor_expert_bundle.aar ]; then - echo "Cannot find Tor Expert Bundle arr artifacts!" - exit 2 -fi -echo "" - -echo "Fetching noscript..." - -mkdir -p "app/src/main/assets/extensions" - -if [[ $1 == "--tbb" ]]; then - noscript="$(find "$TOR_BROWSER_BUILD/out/browser" -name 'noscript*.xpi' -print | sort | tail -1)" - cp "$noscript" "app/src/main/assets/extensions/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi" -else - noscript_fname="$(curl -s $TBB_BUILD_06/browser/ | sed -nE 's/.*href=\"(noscript-[0-9a-z\.\-]*).*/\1/p')" - curl -o "app/src/main/assets/extensions/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi" $TBB_BUILD_06/browser/$noscript_fname -fi -echo "" - -if [ -z "$GRADLE_MAVEN_REPOSITORIES" ]; then - GRADLE_MAVEN_REPOSITORIES="$HOME/.m2/repository" -fi - -os="$(uname -s)" -case "${os}" in - Linux*) os=unknown-linux;; - Darwin*) os=apple-darwin;; - # This is not quite correct, however the only option for the nimbus-fml - # build are these three... so if it's not Linux or Darwin it's very likely - # we are building from Windows. I apologize in advance to all the BSD users. - *) os="pc-windows";; -esac - -arch="$(uname -m)" -case "${arch}" in - # Also no quite correct, but again these are the only options for nimbus-fml. - aarch64) arch=aarch64;; - arm64) arch=aarch64;; - *) arch="x86_64";; -esac - -if [ "$os" = "unsupported" ] || [ "$arch" = "unsupported" ]; then - echo "Android builds from $os-$arch are not supported." - exit 2 -fi - -echo "Fetching application-services..." - -if [[ $1 == "--tbb" ]]; then - app_services="$(ls -1t "$TOR_BROWSER_BUILD/out/application-services/"application-services*.tar.zst | head -1)" - tar -C /tmp -xf "$app_services" -else - app_services_fname="$(curl -s $TBB_BUILD_06/application-services/ | sed -nE 's/.*href=\"(application-services-[0-9a-z\.\-]*).*/\1/p')" - app_services=/tmp/$app_services_fname - curl -o $app_services $TBB_BUILD_06/application-services/$app_services_fname - tar -C /tmp -xf "$app_services" - rm "$app_services" -fi -mkdir -p "$GRADLE_MAVEN_REPOSITORIES/org/mozilla" -if [ -d /tmp/application-services ]; then - cp -r /tmp/application-services/maven/org/mozilla/* "$GRADLE_MAVEN_REPOSITORIES/org/mozilla" - - # Over on tor-browser-build all build tools are built for x86_64-linux. - # If we are not building from that platform, we need to fetch the correct - # nimbus-fml binary. - # - # Even though we do modify nimbus-fml in tbb, all the changes are made to - # support reproducibility and are not necessary for development builds. - if [ "$os" != "unknown-linux" ] || [ "$arch" != "x86_64" ]; then - echo "Downloading nimbus-fml binary for $arch-$os" - app_services_version=$(echo "$app_services" | grep -oE 'application-services-[0-9]+\.[0-9]+(\.[0-9]{1,2})?' | grep -oE '[0-9]+\.[0-9]+(\.[0-9]{1,2})?') - - curl -L -o /tmp/nimbus-fml.zip "https://archive.mozilla.org/pub/app-services/releases/$app_services_version…" - unzip -d /tmp/nimbus-fml /tmp/nimbus-fml.zip - nimbus_fml="$(find "/tmp/nimbus-fml/" -name 'nimbus-fml*' | grep "$arch-$os")" - echo "Using nimbus-fml binary: $nimbus_fml" - cp $nimbus_fml tools/ - - rm -rf /tmp/nimbus-fml - rm /tmp/nimbus-fml.zip - else - cp /tmp/application-services/nimbus-fml tools/ - fi - chmod +x tools/nimbus-fml - - rm -rf /tmp/application-services -else - echo "Cannot find application-services artifacts!" - exit 2 -fi +exit 1 ===================================== python/mozbuild/mozbuild/backend/base.py ===================================== @@ -258,8 +258,35 @@ class BuildBackend(LoggingMixin): 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. + 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) + if app == "browser": tbdir = Path(config.topobjdir) / "dist" / "bin" ===================================== python/mozbuild/mozbuild/tbbutils.py ===================================== @@ -1,7 +1,37 @@ +import os import re +from pathlib import Path from urllib.request import Request, urlopen +def symlink_tree(src_dir, target_dir): + """ + Recursively mirror the directory tree from `src_dir` into `target_dir` + using symbolic links. + + Equivalent to: `cp -rs src_dir/* target_dir` + + Notes: + - If a file or symlink already exists in the destination, it overwritten. + - The symlinks created here use absolute paths i.e. not relocatable. + """ + src = Path(src_dir) + target = Path(target_dir) + + target.mkdir(parents=True, exist_ok=True) + + for root, _, files in os.walk(src): + target_path = target / Path(root).relative_to(src) + target_path.mkdir(parents=True, exist_ok=True) + + for file in files: + src_file = Path(root) / file + target_file = target_path / file + if target_file.exists() or target_file.is_symlink(): + target_file.unlink() + os.symlink(src_file, target_file) + + def list_files_http(url): try: req = Request(url, method="GET") @@ -17,7 +47,9 @@ def list_files_http(url): if href == "../": continue - if "tor-expert-bundle" in href: + if "tor-expert-bundle-aar" in href: + href = f"{href.rstrip('/')}/tor-expert-bundle.aar" + elif "tor-expert-bundle" in href: href = f"{href.rstrip('/')}/tor-expert-bundle.tar.gz" links.append(href) @@ -30,6 +62,8 @@ TOR_BROWSER_BUILD_ARTIFACTS = [ "noscript", "fonts", "tor-expert-bundle", + "tor-expert-bundle-aar", + "application-services", ] # Mapping of artifacts from taskcluster to tor-browser-build. ===================================== python/mozbuild/mozbuild/test/test_tbbutils.py ===================================== @@ -1,10 +1,98 @@ +import os +import shutil +import tempfile import unittest +from pathlib import Path from types import SimpleNamespace from unittest.mock import MagicMock, patch import mozunit -from mozbuild.tbbutils import get_artifact_index, get_artifact_path, list_files_http +from mozbuild.tbbutils import ( + get_artifact_index, + get_artifact_path, + list_files_http, + symlink_tree, +) + + +class TestSymlinkTree(unittest.TestCase): + def _create_sample_tree(self, base: Path): + (base / "subdir").mkdir() + (base / "file1.txt").write_text("content1") + (base / "subdir" / "file2.txt").write_text("content2") + + def setUp(self): + self.tmpdir = tempfile.mkdtemp() + self.src = Path(self.tmpdir) / "src" + self.dst = Path(self.tmpdir) / "dst" + self.src.mkdir() + self.dst.mkdir() + + def tearDown(self): + shutil.rmtree(self.tmpdir) + + def test_symlinks_created_correctly(self): + self._create_sample_tree(self.src) + + symlink_tree(self.src, self.dst) + + self.assertTrue((self.dst / "file1.txt").is_symlink()) + self.assertTrue((self.dst / "subdir" / "file2.txt").is_symlink()) + + self.assertEqual( + os.readlink(self.dst / "file1.txt"), + str(self.src / "file1.txt"), + ) + self.assertEqual( + os.readlink(self.dst / "subdir" / "file2.txt"), + str(self.src / "subdir" / "file2.txt"), + ) + + def test_overwrites_existing_files(self): + self._create_sample_tree(self.src) + + # Create a conflicting file in destination + (self.dst / "file1.txt").write_text("old") + + symlink_tree(self.src, self.dst) + + self.assertTrue((self.dst / "file1.txt").is_symlink()) + self.assertEqual( + os.readlink(self.dst / "file1.txt"), + str(self.src / "file1.txt"), + ) + + def test_nested_directories_are_mirrored(self): + (self.src / "a" / "b" / "c").mkdir(parents=True) + (self.src / "a" / "b" / "c" / "deep.txt").write_text("deep content") + + symlink_tree(self.src, self.dst) + + deep_link = self.dst / "a" / "b" / "c" / "deep.txt" + self.assertTrue(deep_link.is_symlink()) + self.assertEqual( + os.readlink(deep_link), + str(self.src / "a" / "b" / "c" / "deep.txt"), + ) + + def test_idempotence(self): + self._create_sample_tree(self.src) + + symlink_tree(self.src, self.dst) + symlink_tree(self.src, self.dst) # Run again + + self.assertTrue((self.dst / "file1.txt").is_symlink()) + self.assertTrue((self.dst / "subdir" / "file2.txt").is_symlink()) + + def test_symlinks_use_absolute_paths(self): + (self.src / "file.txt").write_text("absolute") + + symlink_tree(self.src, self.dst) + + link_target = os.readlink(self.dst / "file.txt") + self.assertTrue(Path(link_target).is_absolute()) + self.assertEqual(Path(link_target), self.src / "file.txt") class TestGetArtifactName(unittest.TestCase): @@ -152,6 +240,7 @@ class TestListFilesHttp(unittest.TestCase): def test_tor_expert_bundle_rewrites(self, mock_urlopen): html = """ <a href="tor-expert-bundle">bundle</a> + <a href="tor-expert-bundle-aar">bundle</a> """ mock_resp = MagicMock() mock_resp.status = 200 @@ -163,6 +252,7 @@ class TestListFilesHttp(unittest.TestCase): result, [ "tor-expert-bundle/tor-expert-bundle.tar.gz", + "tor-expert-bundle-aar/tor-expert-bundle.aar", ], ) View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/529b5c… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/529b5c… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-bundle-testsuite][main] Bug 40093: Remove openssl-nightly-linux-arm
by boklm (@boklm) 27 Nov '25

27 Nov '25
boklm pushed to branch main at The Tor Project / Applications / tor-browser-bundle-testsuite Commits: 7aec706a by Nicolas Vigier at 2025-11-27T10:34:36+01:00 Bug 40093: Remove openssl-nightly-linux-arm - - - - - 1 changed file: - TBBTestSuite/TestSuite/TorBrowserBuild.pm Changes: ===================================== TBBTestSuite/TestSuite/TorBrowserBuild.pm ===================================== @@ -280,18 +280,6 @@ sub set_tests { publish_dir => 'mullvadbrowser-nightly-macos', projectname => 'mullvadbrowser', }, - # openssl build for linux-arm (#40074) - { - name => 'openssl-nightly-linux-arm', - descr => 'build openssl nightly linux-arm', - type => 'rbm_build', - project => 'openssl', - targets => [ - 'nightly', - 'torbrowser-linux-arm', - ], - publish_dir => 'openssl-nightly-linux-arm', - }, ]; } View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-bundle-testsuite… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-bundle-testsuite… 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 41639: Remove linux-arm target
by boklm (@boklm) 27 Nov '25

27 Nov '25
boklm pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 57d4514a by Nicolas Vigier at 2025-11-27T10:22:47+01:00 Bug 41639: Remove linux-arm target - - - - - 5 changed files: - projects/gcc-cross/config - projects/go/config - projects/openssl/config - projects/tor/config - rbm.conf Changes: ===================================== projects/gcc-cross/config ===================================== @@ -26,11 +26,6 @@ var: - gawk - rsync -targets: - linux-arm: - var: - configure_opt: '--target=[% c("var/crosstarget") %] --disable-multilib --enable-languages=c,c++ --with-glibc-version=[% c("var/glibc_version") %] --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb' - input_files: - project: container-image - project: gcc-source ===================================== projects/go/config ===================================== @@ -62,9 +62,6 @@ targets: linux-aarch64: var: GOARCH: arm64 - linux-arm: - var: - GOARCH: arm android: var: GOOS: android ===================================== projects/openssl/config ===================================== @@ -11,9 +11,6 @@ targets: linux-aarch64: var: configure_opts: -shared --cross-compile-prefix=[% c("var/crosstarget") %]- enable-ec_nistp_64_gcc_128 linux-aarch64 - linux-arm: - var: - configure_opts: -shared --cross-compile-prefix=[% c("var/crosstarget") %]- linux-armv4 windows: var: flag_mwindows: '' ===================================== projects/tor/config ===================================== @@ -29,11 +29,6 @@ targets: libdir: lib64 arch_deps: - zlib1g-dev:arm64 - linux-arm: - var: - libdir: lib - arch_deps: - - zlib1g-dev:armhf android: var: ===================================== rbm.conf ===================================== @@ -529,16 +529,6 @@ targets: - linux-aarch64 - linux - mullvadbrowser - torbrowser-linux-arm: - - linux-cross - - linux-arm - - linux - - torbrowser - basebrowser-linux-arm: - - linux-cross - - linux-arm - - linux - - basebrowser linux-x86_64: arch: x86_64 var: @@ -554,14 +544,6 @@ targets: linux-cross: 1 arch_debian: arm64 crosstarget: aarch64-linux-gnu - linux-arm: - arch: arm - var: - linux-arm: 1 - osname: linux-arm - linux-cross: 1 - arch_debian: armhf - crosstarget: arm-linux-gnueabihf linux-cross: var: linux-cross: 1 View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/5… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/5… 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 41601: Fix Rust aarch64 configuration.
by Pier Angelo Vendrame (@pierov) 26 Nov '25

26 Nov '25
Pier Angelo Vendrame pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 9e2bd54d by Pier Angelo Vendrame at 2025-11-26T16:40:26+01:00 Bug 41601: Fix Rust aarch64 configuration. We thought we could share linux-x86_64 and linux-aarch64 Rust artifacts, but this introduces an inconvenient dependency on aarch64 GCC, so restore to the previous state. - - - - - 1 changed file: - projects/rust/config Changes: ===================================== projects/rust/config ===================================== @@ -14,7 +14,7 @@ targets: target: armv7-linux-androideabi,thumbv7neon-linux-androideabi,aarch64-linux-android,i686-linux-android,x86_64-linux-android target_flags: --set=target.armv7-linux-androideabi.cc=armv7a-linux-androideabi21-clang --set=target.armv7-linux-androideabi.ar=llvm-ar --set=target.thumbv7neon-linux-androideabi.cc=armv7a-linux-androideabi21-clang --set=target.thumbv7neon-linux-androideabi.ar=llvm-ar --set=target.aarch64-linux-android.cc=aarch64-linux-android21-clang --set=target.aarch64-linux-android.ar=llvm-ar --set=target.i686-linux-android.cc=i686-linux-android21-clang --set=target.i686-linux-android.ar=llvm-ar --set=target.x86_64-linux-android.cc=x86_64-linux-android21-clang --set=target.x86_64-linux-android.ar=llvm-ar - linux: + linux-aarch64: var: target: aarch64-unknown-linux-gnu target_flags: --set target.aarch64-unknown-linux-gnu.linker=aarch64-linux-gnu-gcc --set target.aarch64-unknown-linux-gnu.ar=llvm-ar --set target.aarch64-unknown-linux-gnu.ranlib=llvm-ranlib View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/9… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/9… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-140.5.0esr-15.0-1] Bug 1985996 - Check spoof english in XMLPrettyPrinter. r=eemeli,smaug
by Pier Angelo Vendrame (@pierov) 26 Nov '25

26 Nov '25
Pier Angelo Vendrame pushed to branch mullvad-browser-140.5.0esr-15.0-1 at The Tor Project / Applications / Mullvad Browser Commits: d20043d4 by Pier Angelo Vendrame at 2025-11-26T17:30:13+01:00 Bug 1985996 - Check spoof english in XMLPrettyPrinter. r=eemeli,smaug Differential Revision: https://phabricator.services.mozilla.com/D263100 - - - - - 7 changed files: - dom/l10n/DOMLocalization.cpp - dom/l10n/DOMLocalization.h - dom/l10n/DocumentL10n.cpp - dom/l10n/DocumentL10n.h - dom/xml/nsXMLPrettyPrinter.cpp - intl/l10n/Localization.cpp - intl/l10n/Localization.h Changes: ===================================== dom/l10n/DOMLocalization.cpp ===================================== @@ -47,6 +47,12 @@ DOMLocalization::DOMLocalization(nsIGlobalObject* aGlobal, bool aIsSync, mMutations = new L10nMutations(this); } +DOMLocalization::DOMLocalization(nsIGlobalObject* aGlobal, bool aIsSync, + const nsTArray<nsCString>& aLocales) + : Localization(aGlobal, aIsSync, aLocales) { + mMutations = new L10nMutations(this); +} + already_AddRefed<DOMLocalization> DOMLocalization::Constructor( const GlobalObject& aGlobal, const Sequence<dom::OwningUTF8StringOrResourceId>& aResourceIds, ===================================== dom/l10n/DOMLocalization.h ===================================== @@ -118,6 +118,8 @@ class DOMLocalization : public intl::Localization { DOMLocalization(nsIGlobalObject* aGlobal, bool aSync); DOMLocalization(nsIGlobalObject* aGlobal, bool aIsSync, const intl::ffi::LocalizationRc* aRaw); + DOMLocalization(nsIGlobalObject* aGlobal, bool aSync, + const nsTArray<nsCString>& aLocales); protected: virtual ~DOMLocalization(); ===================================== dom/l10n/DocumentL10n.cpp ===================================== @@ -47,6 +47,19 @@ RefPtr<DocumentL10n> DocumentL10n::Create(Document* aDocument, bool aSync) { return l10n.forget(); } +RefPtr<DocumentL10n> DocumentL10n::Create(Document* aDocument, bool aSync, + const nsTArray<nsCString>& aLocales) { + RefPtr<DocumentL10n> l10n = new DocumentL10n(aDocument, aSync, aLocales); + + IgnoredErrorResult rv; + l10n->mReady = Promise::Create(l10n->mGlobal, rv); + if (NS_WARN_IF(rv.Failed())) { + return nullptr; + } + + return l10n.forget(); +} + DocumentL10n::DocumentL10n(Document* aDocument, bool aSync) : DOMLocalization(aDocument->GetScopeObject(), aSync), mDocument(aDocument), @@ -54,6 +67,14 @@ DocumentL10n::DocumentL10n(Document* aDocument, bool aSync) mContentSink = do_QueryInterface(aDocument->GetCurrentContentSink()); } +DocumentL10n::DocumentL10n(Document* aDocument, bool aSync, + const nsTArray<nsCString>& aLocales) + : DOMLocalization(aDocument->GetScopeObject(), aSync, aLocales), + mDocument(aDocument), + mState(DocumentL10nState::Constructed) { + mContentSink = do_QueryInterface(aDocument->GetCurrentContentSink()); +} + JSObject* DocumentL10n::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) { return DocumentL10n_Binding::Wrap(aCx, this, aGivenProto); ===================================== dom/l10n/DocumentL10n.h ===================================== @@ -47,9 +47,13 @@ class DocumentL10n final : public DOMLocalization { NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(DocumentL10n, DOMLocalization) static RefPtr<DocumentL10n> Create(Document* aDocument, bool aSync); + static RefPtr<DocumentL10n> Create(Document* aDocument, bool aSync, + const nsTArray<nsCString>& aLocales); protected: explicit DocumentL10n(Document* aDocument, bool aSync); + explicit DocumentL10n(Document* aDocument, bool aSync, + const nsTArray<nsCString>& aLocales); virtual ~DocumentL10n() = default; RefPtr<Document> mDocument; ===================================== dom/xml/nsXMLPrettyPrinter.cpp ===================================== @@ -100,7 +100,13 @@ nsresult nsXMLPrettyPrinter::PrettyPrint(Document* aDocument, // Create a DocumentL10n, as the XML document is not allowed to have one. // Make it sync so that the test for bug 590812 does not require a setTimeout. - RefPtr<DocumentL10n> l10n = DocumentL10n::Create(aDocument, true); + RefPtr<DocumentL10n> l10n; + if (aDocument->ShouldResistFingerprinting(RFPTarget::JSLocale)) { + AutoTArray<nsCString, 1> langs = {nsRFPService::GetSpoofedJSLocale()}; + l10n = DocumentL10n::Create(aDocument, true, langs); + } else { + l10n = DocumentL10n::Create(aDocument, true); + } NS_ENSURE_TRUE(l10n, NS_ERROR_UNEXPECTED); l10n->AddResourceId("dom/XMLPrettyPrint.ftl"_ns); ===================================== intl/l10n/Localization.cpp ===================================== @@ -164,6 +164,14 @@ Localization::Localization(nsIGlobalObject* aGlobal, bool aIsSync, RegisterObservers(); } +Localization::Localization(nsIGlobalObject* aGlobal, bool aIsSync, + const nsTArray<nsCString>& aLocales) + : mGlobal(aGlobal) { + nsTArray<ffi::GeckoResourceId> resIds; + ffi::localization_new_with_locales(&resIds, aIsSync, nullptr, &aLocales, + getter_AddRefs(mRaw)); +} + /* static */ bool Localization::IsAPIEnabled(JSContext* aCx, JSObject* aObject) { JS::Rooted<JSObject*> obj(aCx, aObject); ===================================== intl/l10n/Localization.h ===================================== @@ -156,6 +156,9 @@ class Localization : public nsIObserver, Localization(nsIGlobalObject* aGlobal, bool aIsSync, const ffi::LocalizationRc* aRaw); + Localization(nsIGlobalObject* aGlobal, bool aIsSync, + const nsTArray<nsCString>& aLocales); + virtual ~Localization(); void RegisterObservers(); View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/d20… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/d20… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][base-browser-140.5.0esr-15.0-1] Bug 1985996 - Check spoof english in XMLPrettyPrinter. r=eemeli,smaug
by Pier Angelo Vendrame (@pierov) 26 Nov '25

26 Nov '25
Pier Angelo Vendrame pushed to branch base-browser-140.5.0esr-15.0-1 at The Tor Project / Applications / Tor Browser Commits: bcc4aa22 by Pier Angelo Vendrame at 2025-11-26T17:28:28+01:00 Bug 1985996 - Check spoof english in XMLPrettyPrinter. r=eemeli,smaug Differential Revision: https://phabricator.services.mozilla.com/D263100 - - - - - 7 changed files: - dom/l10n/DOMLocalization.cpp - dom/l10n/DOMLocalization.h - dom/l10n/DocumentL10n.cpp - dom/l10n/DocumentL10n.h - dom/xml/nsXMLPrettyPrinter.cpp - intl/l10n/Localization.cpp - intl/l10n/Localization.h Changes: ===================================== dom/l10n/DOMLocalization.cpp ===================================== @@ -47,6 +47,12 @@ DOMLocalization::DOMLocalization(nsIGlobalObject* aGlobal, bool aIsSync, mMutations = new L10nMutations(this); } +DOMLocalization::DOMLocalization(nsIGlobalObject* aGlobal, bool aIsSync, + const nsTArray<nsCString>& aLocales) + : Localization(aGlobal, aIsSync, aLocales) { + mMutations = new L10nMutations(this); +} + already_AddRefed<DOMLocalization> DOMLocalization::Constructor( const GlobalObject& aGlobal, const Sequence<dom::OwningUTF8StringOrResourceId>& aResourceIds, ===================================== dom/l10n/DOMLocalization.h ===================================== @@ -118,6 +118,8 @@ class DOMLocalization : public intl::Localization { DOMLocalization(nsIGlobalObject* aGlobal, bool aSync); DOMLocalization(nsIGlobalObject* aGlobal, bool aIsSync, const intl::ffi::LocalizationRc* aRaw); + DOMLocalization(nsIGlobalObject* aGlobal, bool aSync, + const nsTArray<nsCString>& aLocales); protected: virtual ~DOMLocalization(); ===================================== dom/l10n/DocumentL10n.cpp ===================================== @@ -47,6 +47,19 @@ RefPtr<DocumentL10n> DocumentL10n::Create(Document* aDocument, bool aSync) { return l10n.forget(); } +RefPtr<DocumentL10n> DocumentL10n::Create(Document* aDocument, bool aSync, + const nsTArray<nsCString>& aLocales) { + RefPtr<DocumentL10n> l10n = new DocumentL10n(aDocument, aSync, aLocales); + + IgnoredErrorResult rv; + l10n->mReady = Promise::Create(l10n->mGlobal, rv); + if (NS_WARN_IF(rv.Failed())) { + return nullptr; + } + + return l10n.forget(); +} + DocumentL10n::DocumentL10n(Document* aDocument, bool aSync) : DOMLocalization(aDocument->GetScopeObject(), aSync), mDocument(aDocument), @@ -54,6 +67,14 @@ DocumentL10n::DocumentL10n(Document* aDocument, bool aSync) mContentSink = do_QueryInterface(aDocument->GetCurrentContentSink()); } +DocumentL10n::DocumentL10n(Document* aDocument, bool aSync, + const nsTArray<nsCString>& aLocales) + : DOMLocalization(aDocument->GetScopeObject(), aSync, aLocales), + mDocument(aDocument), + mState(DocumentL10nState::Constructed) { + mContentSink = do_QueryInterface(aDocument->GetCurrentContentSink()); +} + JSObject* DocumentL10n::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) { return DocumentL10n_Binding::Wrap(aCx, this, aGivenProto); ===================================== dom/l10n/DocumentL10n.h ===================================== @@ -47,9 +47,13 @@ class DocumentL10n final : public DOMLocalization { NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(DocumentL10n, DOMLocalization) static RefPtr<DocumentL10n> Create(Document* aDocument, bool aSync); + static RefPtr<DocumentL10n> Create(Document* aDocument, bool aSync, + const nsTArray<nsCString>& aLocales); protected: explicit DocumentL10n(Document* aDocument, bool aSync); + explicit DocumentL10n(Document* aDocument, bool aSync, + const nsTArray<nsCString>& aLocales); virtual ~DocumentL10n() = default; RefPtr<Document> mDocument; ===================================== dom/xml/nsXMLPrettyPrinter.cpp ===================================== @@ -100,7 +100,13 @@ nsresult nsXMLPrettyPrinter::PrettyPrint(Document* aDocument, // Create a DocumentL10n, as the XML document is not allowed to have one. // Make it sync so that the test for bug 590812 does not require a setTimeout. - RefPtr<DocumentL10n> l10n = DocumentL10n::Create(aDocument, true); + RefPtr<DocumentL10n> l10n; + if (aDocument->ShouldResistFingerprinting(RFPTarget::JSLocale)) { + AutoTArray<nsCString, 1> langs = {nsRFPService::GetSpoofedJSLocale()}; + l10n = DocumentL10n::Create(aDocument, true, langs); + } else { + l10n = DocumentL10n::Create(aDocument, true); + } NS_ENSURE_TRUE(l10n, NS_ERROR_UNEXPECTED); l10n->AddResourceId("dom/XMLPrettyPrint.ftl"_ns); ===================================== intl/l10n/Localization.cpp ===================================== @@ -164,6 +164,14 @@ Localization::Localization(nsIGlobalObject* aGlobal, bool aIsSync, RegisterObservers(); } +Localization::Localization(nsIGlobalObject* aGlobal, bool aIsSync, + const nsTArray<nsCString>& aLocales) + : mGlobal(aGlobal) { + nsTArray<ffi::GeckoResourceId> resIds; + ffi::localization_new_with_locales(&resIds, aIsSync, nullptr, &aLocales, + getter_AddRefs(mRaw)); +} + /* static */ bool Localization::IsAPIEnabled(JSContext* aCx, JSObject* aObject) { JS::Rooted<JSObject*> obj(aCx, aObject); ===================================== intl/l10n/Localization.h ===================================== @@ -156,6 +156,9 @@ class Localization : public nsIObserver, Localization(nsIGlobalObject* aGlobal, bool aIsSync, const ffi::LocalizationRc* aRaw); + Localization(nsIGlobalObject* aGlobal, bool aIsSync, + const nsTArray<nsCString>& aLocales); + virtual ~Localization(); void RegisterObservers(); View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/bcc4aa2… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/bcc4aa2… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-145.0a1-16.0-1] fixup! Tweaks to the build system
by Pier Angelo Vendrame (@pierov) 26 Nov '25

26 Nov '25
Pier Angelo Vendrame pushed to branch mullvad-browser-145.0a1-16.0-1 at The Tor Project / Applications / Mullvad Browser Commits: 329541f5 by Pier Angelo Vendrame at 2025-11-26T17:27:09+01:00 fixup! Tweaks to the build system TB 44370: Always create target.maven.zip on Android. - - - - - 1 changed file: - mobile/android/mach_commands.py Changes: ===================================== mobile/android/mach_commands.py ===================================== @@ -197,8 +197,7 @@ def android_archive_geckoview(command_context, args): if ret != 0: return ret - if "MOZ_AUTOMATION" in os.environ: - create_maven_archive(command_context.topobjdir) + create_maven_archive(command_context.topobjdir) return 0 View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/329… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/329… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][base-browser-145.0a1-16.0-1] fixup! Tweaks to the build system
by Pier Angelo Vendrame (@pierov) 26 Nov '25

26 Nov '25
Pier Angelo Vendrame pushed to branch base-browser-145.0a1-16.0-1 at The Tor Project / Applications / Tor Browser Commits: a4067c6f by Pier Angelo Vendrame at 2025-11-26T17:26:22+01:00 fixup! Tweaks to the build system TB 44370: Always create target.maven.zip on Android. - - - - - 1 changed file: - mobile/android/mach_commands.py Changes: ===================================== mobile/android/mach_commands.py ===================================== @@ -197,8 +197,7 @@ def android_archive_geckoview(command_context, args): if ret != 0: return ret - if "MOZ_AUTOMATION" in os.environ: - create_maven_archive(command_context.topobjdir) + create_maven_archive(command_context.topobjdir) return 0 View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/a4067c6… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/a4067c6… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • ...
  • 1973
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.