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