brizental pushed to branch tor-browser-140.4.0esr-15.0-1 at The Tor Project / Applications / Tor Browser Commits: 5a5ae016 by Beatriz Rizental at 2025-10-14T15:56:06+02:00 fixup! BB 43564: Modify ./mach bootstrap for Base Browser - - - - - 8118ce43 by Beatriz Rizental at 2025-10-14T15:56:33+02:00 fixup! TB 43564: Modify ./mach bootstrap for Tor Browser - - - - - 4 changed files: - build/moz.configure/bootstrap.configure - python/mozbuild/mozbuild/backend/base.py - python/mozbuild/mozbuild/tbbutils.py - python/mozbuild/mozbuild/test/test_tbbutils.py Changes: ===================================== build/moz.configure/bootstrap.configure ===================================== @@ -221,11 +221,9 @@ def bootstrap_path(path, **kwargs): log.info("no path found in tbb/out for %s", artifact) return False - # We will use the name of the artifact as the index. - # - # It's usually unique to the artifact version, but each artifact follows - # a different naming convention, so we can't really get more specific here. - artifact_index = artifact_path.rsplit("/", 1)[-1] + artifact_index = mozbuild.tbbutils.get_artifact_index( + artifact_path, artifact + ) index_file = os.path.join(toolchains_base_dir, "indices", artifact) try: with open(index_file) as fh: ===================================== python/mozbuild/mozbuild/backend/base.py ===================================== @@ -329,7 +329,7 @@ class BuildBackend(LoggingMixin): # Set up Tor configuration files paths["tor_config"].mkdir(parents=True, exist_ok=True) - for file in ["geoip", "geoip6"]: + for file in ["geoip", "geoip6", "torrc-defaults"]: target = paths["tor_config"] / file _infallible_symlink(expert_bundle_location / "data" / file, target) ===================================== python/mozbuild/mozbuild/tbbutils.py ===================================== @@ -18,7 +18,7 @@ def list_files_http(url): continue if "tor-expert-bundle" in href: - href = f"{href}/tor-expert-bundle.tar.gz" + href = f"{href.rstrip('/')}/tor-expert-bundle.tar.gz" links.append(href) @@ -45,6 +45,22 @@ ARTIFACT_NAME_MAP = { } +def get_artifact_index(artifact_path, artifact): + """ + Return a unique identifier for the given artifact based on its path. + + In most cases, artifacts built by tor-browser-build include part of their + SHA sum or version in the filename, so the file name itself serves as a unique + identifier. However, some artifacts are stored within subfolders where the file + name alone is not unique — in those cases, the name of the parent directory + provides the unique identifier instead. + """ + if artifact in ["tor-expert-bundle"]: + return artifact_path.rsplit("/", 2)[-2] + + return artifact_path.rsplit("/", 1)[-1] + + 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. ===================================== python/mozbuild/mozbuild/test/test_tbbutils.py ===================================== @@ -4,7 +4,7 @@ from unittest.mock import MagicMock, patch import mozunit -from mozbuild.tbbutils import get_artifact_path, list_files_http +from mozbuild.tbbutils import get_artifact_index, get_artifact_path, list_files_http class TestGetArtifactName(unittest.TestCase): @@ -34,6 +34,20 @@ class TestGetArtifactName(unittest.TestCase): self.assertEqual(result, self.artifact[::-1]) +class TestGetArtifactIndex(unittest.TestCase): + def test_regular_artifact(self): + artifact = "tor" + path = "https://tb-build-06.torproject.org/~tb-builder/tor-browser-build/out/tor/tor..." + expected = "tor-b1f9824464dc-linux-x86_64-b0ffe2.tar.gz" + self.assertEqual(get_artifact_index(path, artifact), expected) + + def test_expert_bundle_artifact(self): + artifact = "tor-expert-bundle" + path = "https://tb-build-06.torproject.org/~tb-builder/tor-browser-build/out/tor-exp..." + expected = "tor-expert-bundle-linux-x86_64-tbb-nightly.2025.10.14-d9aa09" + self.assertEqual(get_artifact_index(path, artifact), expected) + + class TestGetArtifactPath(unittest.TestCase): def setUp(self): self.url = "http://example.com" View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/385a963... -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/385a963... You're receiving this email because of your account on gitlab.torproject.org.
participants (1)
-
brizental (@brizental)