[tor-commits] [Git][tpo/applications/tor-browser-build][main] 3 commits: Bug 41211: Share parts of the GeckoView build files.

morgan (@morgan) git at gitlab.torproject.org
Mon Aug 19 18:44:09 UTC 2024



morgan pushed to branch main at The Tor Project / Applications / tor-browser-build


Commits:
a38be5d2 by Pier Angelo Vendrame at 2024-08-19T15:47:08+02:00
Bug 41211: Share parts of the GeckoView build files.

GeckoView is built in two steps (build to create the arch-specific
.aars and build_apk to build the Kotlin code).
However, they share big chunks of build code, therefore we always risk
to forget to update one of the two.
So, in this commit we move the duplicate parts in a shared preamble
file.

- - - - -
27c27ac6 by Pier Angelo Vendrame at 2024-08-19T15:47:10+02:00
Bug 41211: Build the oss-licenses Gradle plugin.

After we updated our toolchains for Firefox 128, we encountered
reproducibility problems in the license files.
Therefore, we build a patched plugin to resolve them.

- - - - -
7c687f29 by Pier Angelo Vendrame at 2024-08-19T16:56:20+02:00
Bug 41211: Use our oss-licenses-plugin in GeckoView.

- - - - -


10 changed files:

- projects/geckoview/build
- projects/geckoview/build_apk
- + projects/geckoview/build_common
- projects/geckoview/config
- projects/geckoview/gradle-dependencies-list.txt
- + projects/oss-licenses-plugin/build
- + projects/oss-licenses-plugin/build-customization.diff
- + projects/oss-licenses-plugin/config
- + projects/oss-licenses-plugin/gradle-dependencies-list.txt
- + projects/oss-licenses-plugin/sort-dependencies.diff


Changes:

=====================================
projects/geckoview/build
=====================================
@@ -1,23 +1,15 @@
 #!/bin/bash
-[% 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"),
-  }) %]
-distdir=/var/tmp/dist
-mkdir -p /var/tmp/build
-mkdir -p $distdir
+[% INCLUDE 'build_common' %]
 
 tar -C /var/tmp/dist -xf [% c('input_files_by_name/rust') %]
 tar -C /var/tmp/dist -xf [% c('input_files_by_name/cbindgen') %]
 tar -C /var/tmp/dist -xf [% c('input_files_by_name/nasm') %]
-tar -C /var/tmp/dist -xf [% c('input_files_by_name/node') %]
 tar -C /var/tmp/dist -xf [% c('input_files_by_name/clang') %]
 export LLVM_CONFIG="/var/tmp/dist/clang/bin/llvm-config"
 tar -C /var/tmp/dist -xf [% c('input_files_by_name/llvm-runtimes') %]
 cp -r /var/tmp/dist/llvm-runtimes/* /var/tmp/dist/clang/
 tar -C /var/tmp/dist -xf [% c('input_files_by_name/binutils') %]
-export PATH="/var/tmp/dist/rust/bin:/var/tmp/dist/cbindgen:/var/tmp/dist/nasm/bin:/var/tmp/dist/node/bin:/var/tmp/dist/clang/bin:/var/tmp/dist/binutils/bin:$PATH"
+export PATH="/var/tmp/dist/rust/bin:/var/tmp/dist/cbindgen:/var/tmp/dist/nasm/bin:/var/tmp/dist/clang/bin:/var/tmp/dist/binutils/bin:$PATH"
 
 [% IF c("var/rlbox") -%]
   tar -C /var/tmp/dist -xf [% c('input_files_by_name/wasi-sysroot') %]
@@ -31,13 +23,6 @@ export PATH="/var/tmp/dist/rust/bin:/var/tmp/dist/cbindgen:/var/tmp/dist/nasm/bi
   export WASI_SYSROOT=/var/tmp/dist/wasi-sysroot/share/wasi-sysroot
 [% END -%]
 
-tar -xf [% c('input_files_by_name/application-services') %]
-export NIMBUS_FML=$rootdir/application-services/nimbus-fml
-
-[% INCLUDE 'fake-git' %]
-
-tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
-
 cd /var/tmp/build/[% project %]-[% c("version") %]
 cat > .mozconfig << 'MOZCONFIG_EOF'
 . $topsrcdir/mozconfig-[% c("var/osname") %]
@@ -50,28 +35,6 @@ export MOZ_SOURCE_CHANGESET=[% c("var/git_commit") %]
 ac_add_options --enable-update-channel=[% c("var/variant") %]
 MOZCONFIG_EOF
 
-[% c("var/set_MOZ_BUILD_DATE") %]
-
-export JAVA_HOME=/usr/lib/jvm/java-1.17.0-openjdk-amd64
-gradle_repo=/var/tmp/dist/gradle-dependencies
-export GRADLE_MAVEN_REPOSITORIES="file://$gradle_repo","file://$gradle_repo/maven2"
-# Set the Maven local repository because Gradle ignores our overriding of $HOME.
-# It is only used for the local pubblication of single-arch AARs.
-export GRADLE_FLAGS="--no-daemon --offline -Dmaven.repo.local=$distdir/[% project %]"
-# Move the Gradle repo to a hard-coded location. The location is embedded in
-# the file chrome/toolkit/content/global/buildconfig.html so it needs to be
-# standardized for reproducibility.
-mv $rootdir/[% c('input_files_by_name/gradle-dependencies') %] $gradle_repo
-cp -rl $rootdir/application-services/maven/* $gradle_repo
-cp -rl $gradle_repo/dl/android/maven2/* $gradle_repo || true
-cp -rl $gradle_repo/m2/* $gradle_repo || true
-cp -rl $gradle_repo/maven2/* $gradle_repo || true
-
-# We unbreak mach, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1656993 and https://bugzilla.mozilla.org/show_bug.cgi?id=1755516
-export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system
-# Create .mozbuild to avoid interactive prompt in configure
-mkdir "$HOME/.mozbuild"
-
 echo "Starting ./mach configure $(date)"
 ./mach configure \
   --with-base-browser-version=[% c("var/torbrowser_version") %] \


=====================================
projects/geckoview/build_apk
=====================================
@@ -1,26 +1,11 @@
 #!/bin/bash
-[% 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"),
-}) %]
-distdir=/var/tmp/dist
-builddir=/var/tmp/build
-mkdir -p $builddir $distdir
-
-tar -C $distdir -xf [% c('input_files_by_name/node') %]
-export PATH="/var/tmp/dist/node/bin:$PATH"
+[% INCLUDE 'build_common' %]
 
 tar -C $distdir -xf $rootdir/[% c('input_files_by_name/translation-fenix') %]
 
 tar -xf [% c('input_files_by_name/glean-wheels') %]
 export GLEAN_PYTHON_WHEELS_DIR=$rootdir/glean-wheels
 
-tar -xf [% c('input_files_by_name/application-services') %]
-export NIMBUS_FML=$rootdir/application-services/nimbus-fml
-
-[% INCLUDE 'fake-git' %]
-
 tar -C $builddir -xf [% c('input_files_by_name/geckoview_armv7') %]
 tar -C $builddir -xf [% c('input_files_by_name/geckoview_aarch64') %]
 tar -C $builddir -xf [% c('input_files_by_name/geckoview_x86') %]
@@ -44,23 +29,6 @@ export MOZ_SOURCE_REPO="[% c('var/gitlab_project') %]"
 export MOZ_SOURCE_CHANGESET=[% c("var/git_commit") %]
 MOZCONFIG_EOF
 
-[% c("var/set_MOZ_BUILD_DATE") %]
-
-export JAVA_HOME=/usr/lib/jvm/java-1.17.0-openjdk-amd64
-gradle_repo=/var/tmp/dist/gradle-dependencies
-export GRADLE_MAVEN_REPOSITORIES="file://$gradle_repo","file://$gradle_repo/maven2"
-export GRADLE_FLAGS="--no-daemon --offline -Dmaven.repo.local=$distdir/[% project %]"
-mv $rootdir/[% c('input_files_by_name/gradle-dependencies') %] $gradle_repo
-cp -rl $rootdir/application-services/maven/* $gradle_repo
-cp -rl $gradle_repo/dl/android/maven2/* $gradle_repo || true
-cp -rl $gradle_repo/m2/* $gradle_repo || true
-cp -rl $gradle_repo/maven2/* $gradle_repo || true
-
-# We unbreak mach, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1656993.
-export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system
-# Create .mozbuild to avoid interactive prompt in configure
-mkdir "$HOME/.mozbuild"
-
 [% IF c("var/has_l10n") -%]
   supported_locales="[% tmpl(c('var/locales_mobile').join(' ')).replace('-r', '-').replace('in', 'id').replace('iw', 'he') %]"
   l10ncentral="$HOME/.mozbuild/l10n-central"
@@ -73,9 +41,6 @@ mkdir "$HOME/.mozbuild"
   # through GeckoView.
 [% END -%]
 
-export LC_ALL=C.UTF-8
-export LANG=C.UTF-8
-
 # We still need to specify --tor-browser-version due to bug 34005.
 ./mach configure \
   --with-base-browser-version=[% c("var/torbrowser_version") %] \


=====================================
projects/geckoview/build_common
=====================================
@@ -0,0 +1,46 @@
+[% 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"),
+}) %]
+distdir=/var/tmp/dist
+builddir=/var/tmp/build
+mkdir -p $builddir $distdir
+
+tar -C $distdir -xf [% c('input_files_by_name/node') %]
+export PATH="/var/tmp/dist/node/bin:$PATH"
+
+export LC_ALL=C.UTF-8
+export LANG=C.UTF-8
+
+tar -xf [% c('input_files_by_name/application-services') %]
+export NIMBUS_FML=$rootdir/application-services/nimbus-fml
+
+[% INCLUDE 'fake-git' %]
+
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
+
+[% c("var/set_MOZ_BUILD_DATE") %]
+
+export JAVA_HOME=/usr/lib/jvm/java-1.17.0-openjdk-amd64
+gradle_repo=/var/tmp/dist/gradle-dependencies
+export GRADLE_MAVEN_REPOSITORIES="file://$gradle_repo","file://$gradle_repo/maven2"
+# Set the Maven local repository because Gradle ignores our overriding of $HOME.
+# It is only used for the local pubblication of single-arch AARs.
+export GRADLE_FLAGS="--no-daemon --offline -Dmaven.repo.local=$distdir/[% project %]"
+# Move the Gradle repo to a hard-coded location. The location is embedded in
+# the file chrome/toolkit/content/global/buildconfig.html so it needs to be
+# standardized for reproducibility.
+mv $rootdir/[% c('input_files_by_name/gradle-dependencies') %] $gradle_repo
+cp -rl $rootdir/application-services/maven/* $gradle_repo
+cp -rl $gradle_repo/dl/android/maven2/* $gradle_repo || true
+cp -rl $gradle_repo/m2/* $gradle_repo || true
+cp -rl $gradle_repo/maven2/* $gradle_repo || true
+
+tar -xf [% c('input_files_by_name/oss-licenses-plugin') %]
+cp -rl oss-licenses-plugin/. $gradle_repo
+
+# We unbreak mach, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1656993.
+export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system
+# Create .mozbuild to avoid interactive prompt in configure
+mkdir "$HOME/.mozbuild"


=====================================
projects/geckoview/config
=====================================
@@ -36,7 +36,7 @@ var:
     - openjdk-17-jdk-headless
   # this should be updated when the list of gradle dependencies is changed
   # see doc/how-to-create-gradle-dependencies-list.txt
-  gradle_dependencies_version: 13
+  gradle_dependencies_version: 14
   gradle_version: 8.8
   glean_parser: 14.0.1
   variant: beta
@@ -111,6 +111,9 @@ steps:
       - name: tor-expert-bundle-aar
         project: tor-expert-bundle-aar
         pkg_type: build
+      - project: oss-licenses-plugin
+        name: oss-licenses-plugin
+        pkg_type: build
 
   list_toolchain_updates:
     git_hash: tor-browser-128.0b1-14.0-1
@@ -147,3 +150,5 @@ input_files:
   - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]'
     name: gradle-dependencies
     exec: '[% INCLUDE "fetch-gradle-dependencies" %]'
+  - project: oss-licenses-plugin
+    name: oss-licenses-plugin


=====================================
projects/geckoview/gradle-dependencies-list.txt
=====================================
@@ -961,8 +961,6 @@ bc787098a208e6bdc8d93720a162bbea01df1b26394d1c1ef5ec523b1d604e8b | https://maven
 d6ff762251fb35594afe5efe860b5871064e18c0bd1bdb77084e3573f90e4e8f | https://maven.google.com/com/google/android/datatransport/transport-runtime/3.1.8/transport-runtime-3.1.8.pom
 41745c5b8f427d24439015b84f651ad420718991867d2afc262c264009b802c1 | https://maven.google.com/com/google/android/datatransport/transport-runtime/3.1.9/transport-runtime-3.1.9.aar
 86f452b74551062623fad0b0bb6bc4dc2a6ba9f44a99834d0e50fb047051357b | https://maven.google.com/com/google/android/datatransport/transport-runtime/3.1.9/transport-runtime-3.1.9.pom
-a2625e5f849e9d03a564cd85a08caa4266cd89c25af4298aad86c276f9efbc42 | https://maven.google.com/com/google/android/gms/oss-licenses-plugin/0.10.4/oss-licenses-plugin-0.10.4.jar
-7e782a6e268910e89a0549f4a559385042d17dcf42f70c1031c02b3db5ba5bd0 | https://maven.google.com/com/google/android/gms/oss-licenses-plugin/0.10.4/oss-licenses-plugin-0.10.4.pom
 380b09bfc5389fff93b5719c04e57c99678c9c3af0402a91e26d89734babcc49 | https://maven.google.com/com/google/android/gms/play-services-ads-identifier/16.0.0/play-services-ads-identifier-16.0.0.aar
 d851ae0d9232951d36b1060eb8a3dc07ac5fcf668cb741b0a5a165c60519c898 | https://maven.google.com/com/google/android/gms/play-services-ads-identifier/16.0.0/play-services-ads-identifier-16.0.0.pom
 eb1a063e5f2bccfc0568957d6699b6efbe741eb7ca785d8dcc9fac4de5d092bc | https://maven.google.com/com/google/android/gms/play-services-base/18.4.0/play-services-base-18.4.0.aar


=====================================
projects/oss-licenses-plugin/build
=====================================
@@ -0,0 +1,28 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+
+distdir=/var/tmp/dist/[% project %]
+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
+
+gradle_repo=/var/tmp/dist/gradle-dependencies
+mv $rootdir/[% c('input_files_by_name/gradle-dependencies') %] $gradle_repo
+cp -rl $gradle_repo/m2/* $gradle_repo || true
+
+cd $builddir
+patch -p2 < $rootdir/sort-dependencies.diff
+patch -p2 < $rootdir/build-customization.diff
+gradle --no-daemon --offline -Dmaven.repo.local=$gradle_repo assemble publish
+cd build/repo
+cp -a . $distdir/
+
+cd /var/tmp/dist
+
+[% c('tar', {
+    tar_src => [ project ],
+    tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
+  }) %]


=====================================
projects/oss-licenses-plugin/build-customization.diff
=====================================
@@ -0,0 +1,51 @@
+diff --git a/oss-licenses-plugin/build.gradle b/oss-licenses-plugin/build.gradle
+index 2a7dd74..f9368e1 100644
+--- a/oss-licenses-plugin/build.gradle
++++ b/oss-licenses-plugin/build.gradle
+@@ -15,34 +15,25 @@ dependencies {
+ group = 'com.google.android.gms'
+ version = '0.10.4'
+ 
+-apply plugin: 'maven'
++apply plugin: 'maven-publish'
+ 
+ repositories {
+     google()
+     jcenter()
++    mavenLocal()
+ }
+ 
+-// upload and build in local
+-uploadArchives {
+-    repositories {
+-        mavenDeployer {
+-            repository(url: uri('../repo'))
+-            pom.project {
+-                licenses {
+-                    license {
+-                        name 'The Apache Software License, Version 2.0'
+-                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+-                        distribution 'repo'
+-                    }
+-                }
+-
+-            }
++publishing {
++    publications {
++        customLibrary(MavenPublication) {
++            from components.java
+         }
+     }
+-}
+ 
+-// generate zip file for android maven release tool
+-task packageFiles(type: Zip, dependsOn: 'uploadArchives') {
+-    def groupDir = rootProject.group.replaceAll('\\.', '/')
+-    from("../repo/$groupDir/$rootProject.name/$rootProject.version/")
++    repositories {
++        maven {
++            name = 'sampleRepo'
++            url = layout.buildDirectory.dir("repo")
++        }
++    }
+ }


=====================================
projects/oss-licenses-plugin/config
=====================================
@@ -0,0 +1,22 @@
+version: 0.10.4
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
+git_url: https://github.com/google/play-services-plugins.git
+git_hash: c9ed0e48abe2c55dd67f2c2224988d1d690cecc9 # oss-licenses-plugin-v0.10.4
+
+var:
+  # This should be updated when the list of gradle dependencies is changed.
+  gradle_dependencies_version: 1
+  gradle_version: 8.8
+
+container:
+  use_container: 1
+
+input_files:
+  - project: container-image
+  - project: gradle
+    name: gradle
+  - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]'
+    name: gradle-dependencies
+    exec: '[% INCLUDE "fetch-gradle-dependencies" %]'
+  - filename: build-customization.diff
+  - filename: sort-dependencies.diff


=====================================
projects/oss-licenses-plugin/gradle-dependencies-list.txt
=====================================
@@ -0,0 +1,207 @@
+# On how to update dependencies see doc/how-to-create-gradle-dependencies-list.txt
+# Don't forget to update var/gradle_dependencies_version when modifying this file
+sha256sum | url
+408d8ed48da2b7b2c8f7216906c1b76a1ecdb9c165cdb52c9eeb32af0cc67f0f | https://maven.google.com/androidx/databinding/databinding-common/3.5.1/databinding-common-3.5.1.jar
+008e3641392787bd3f6e5fe3a56457379cbba8be62ae5a91ba982b7e534a2b37 | https://maven.google.com/androidx/databinding/databinding-common/3.5.1/databinding-common-3.5.1.pom
+b6235dd4ff7457f517e30479fe050a2ae27a2b3ef8ae33d44d9a3d2197911779 | https://maven.google.com/androidx/databinding/databinding-compiler-common/3.5.1/databinding-compiler-common-3.5.1.jar
+4a3bfe5d22a4df2490f6180ef1e22a2ea189f42676532d6d7d6ece9b57a2c506 | https://maven.google.com/androidx/databinding/databinding-compiler-common/3.5.1/databinding-compiler-common-3.5.1.pom
+4b698a77c578215a7f746e93422757a8e4d6ee9c8a29fdd9f994712f723604ed | https://maven.google.com/com/android/databinding/baseLibrary/3.5.1/baseLibrary-3.5.1.jar
+6659dd657846c519b12ad701815f2009f8d9991c798ca3a5a628e163987aecab | https://maven.google.com/com/android/databinding/baseLibrary/3.5.1/baseLibrary-3.5.1.pom
+9e9618ed7f1d24df2a4365e1719d630d8ac9c2dd31bea3343157a4ae5efa7fb9 | https://maven.google.com/com/android/tools/analytics-library/crash/26.5.1/crash-26.5.1.jar
+215d75a04ddcfa897e12f3c4d204f24e94214385f1f11ddcea4ddcd56ddb5243 | https://maven.google.com/com/android/tools/analytics-library/crash/26.5.1/crash-26.5.1.pom
+8dde1130725461fe827f2a343d353f2b51e8870661fc860d7d5ebddb097ead4e | https://maven.google.com/com/android/tools/analytics-library/protos/26.5.1/protos-26.5.1.jar
+7b042861662b26a41e8f71a093cffc78dd8eb746e5ab98a645e1dcf49612bd0a | https://maven.google.com/com/android/tools/analytics-library/protos/26.5.1/protos-26.5.1.pom
+ccc2f3b00ec17b11401610ba68553544fc8fc517120e84439ac6eb86b875e18d | https://maven.google.com/com/android/tools/analytics-library/shared/26.5.1/shared-26.5.1.jar
+727842ddf56dbf158091a4f113005ec0e2d04ae2c066d7ede9b65ce6a9131aa8 | https://maven.google.com/com/android/tools/analytics-library/shared/26.5.1/shared-26.5.1.pom
+3a76984c0fe2e847ca7a8b35b4780ef0447a9d1666946cb8e60466318e0ab5ae | https://maven.google.com/com/android/tools/analytics-library/tracker/26.5.1/tracker-26.5.1.jar
+6327d446e6c59adacad78265fc61ac09ddcb751fe4e62b3697dc9d6534c0c451 | https://maven.google.com/com/android/tools/analytics-library/tracker/26.5.1/tracker-26.5.1.pom
+2c43c82f8c59d8f7a61e3239e1a2dc9f69dc342ec09af9b7c9f69b25337c0b6e | https://maven.google.com/com/android/tools/annotations/26.5.1/annotations-26.5.1.jar
+3caa859d7b198f9f429f50874921f5e05f105112400eed666d5e56a0e8417e09 | https://maven.google.com/com/android/tools/annotations/26.5.1/annotations-26.5.1.pom
+fac0435e08898f89eeeb9ca236bea707155ff816c12205ced285ad53604133ca | https://maven.google.com/com/android/tools/build/aapt2-proto/0.4.0/aapt2-proto-0.4.0.jar
+a24bdd4e8e374fdcd8cef8d77ea723f147ccd0f25dc6de4fbe290039be904339 | https://maven.google.com/com/android/tools/build/aapt2-proto/0.4.0/aapt2-proto-0.4.0.pom
+1fd33e7f009a2a0da766cfeec4211a09f548034b015c289a66d75dd8a9302f4a | https://maven.google.com/com/android/tools/build/apksig/3.5.1/apksig-3.5.1.jar
+4c9f03d9fbc5accffafd56b0ae677d41ea0a395980a2cc052a7bcefccb2483a9 | https://maven.google.com/com/android/tools/build/apksig/3.5.1/apksig-3.5.1.pom
+9f330167cbe973b7db407692f74f4f6453b7ffa5f2048934b06280c2ceee60fa | https://maven.google.com/com/android/tools/build/apkzlib/3.5.1/apkzlib-3.5.1.jar
+f299c423220ae47404b9013e54caec84ea64f45f69885e4dc0e2e66b7095e33e | https://maven.google.com/com/android/tools/build/apkzlib/3.5.1/apkzlib-3.5.1.pom
+39ea3c82b76b6e0c9f9fa88d93e0edc1dd4a0f1dfae0ef6fbf2d451da47e5450 | https://maven.google.com/com/android/tools/build/builder-model/3.5.1/builder-model-3.5.1.jar
+466e5005cf0a7c7bad8991b14c70b04457b77d28195ec04ec2baf6495e88f4a2 | https://maven.google.com/com/android/tools/build/builder-model/3.5.1/builder-model-3.5.1.pom
+a1b59305584cbcaa078fdc9cfb80871012755b822dd32e8da19add6f7bbcb762 | https://maven.google.com/com/android/tools/build/builder-test-api/3.5.1/builder-test-api-3.5.1.jar
+704e2ad557e5659b98bb8955fbab20977cddb09c06e72825cf2516635424b8cb | https://maven.google.com/com/android/tools/build/builder-test-api/3.5.1/builder-test-api-3.5.1.pom
+e3a8d382434c5f60990730c4719fc814e85a898a33a1e96c1df8d627d3c6eea6 | https://maven.google.com/com/android/tools/build/builder/3.5.1/builder-3.5.1.jar
+aa0092dd227856f6a9c42df1f6ae14ba8a5bde16ea77d760e48c25e575d31668 | https://maven.google.com/com/android/tools/build/builder/3.5.1/builder-3.5.1.pom
+50c44557ca75b068e364ac35a648b81eeba7639ab5eb04036e390c727ad2fa3d | https://maven.google.com/com/android/tools/build/bundletool/0.9.0/bundletool-0.9.0.jar
+124e124227803689b71da7440f0dbdff71cbb4c661a18e0f4e2e0d3a80d367c2 | https://maven.google.com/com/android/tools/build/bundletool/0.9.0/bundletool-0.9.0.pom
+be9b41859bace11998f66b04ed944f87e413f3ad6da3c4665587699da125addc | https://maven.google.com/com/android/tools/build/gradle-api/3.5.1/gradle-api-3.5.1.jar
+e977170f2bf4fdf335d924f8bf94eea54c54422f74f8915fc8d592dc9a226eb8 | https://maven.google.com/com/android/tools/build/gradle-api/3.5.1/gradle-api-3.5.1.pom
+fe188188002bbb2e51c7db6da1ed03fc82af8f3be1a33991d38381837bc6708a | https://maven.google.com/com/android/tools/build/gradle/3.5.1/gradle-3.5.1.jar
+b4a5b3db612b70ad8ba1b22bc469444d946bcd60e399f97ee6e498d195239c84 | https://maven.google.com/com/android/tools/build/gradle/3.5.1/gradle-3.5.1.pom
+c9f8b016144cfb31c5aee92d47f34de23289167cac5e8ef68365b2dd05766f11 | https://maven.google.com/com/android/tools/build/jetifier/jetifier-core/1.0.0-beta04/jetifier-core-1.0.0-beta04.jar
+db025ad1bbc6896edf0f67cda1222ba9b7ec9a0187df7f4fd0a318475c758e4e | https://maven.google.com/com/android/tools/build/jetifier/jetifier-core/1.0.0-beta04/jetifier-core-1.0.0-beta04.pom
+1dd481e7606ccb30868908d9ae80f27d1c5ba882f792532bd91ed731c54f4efb | https://maven.google.com/com/android/tools/build/jetifier/jetifier-processor/1.0.0-beta04/jetifier-processor-1.0.0-beta04.jar
+4973a6c6d7f89297a1cfea56c623cea72b3db3b4a49992afa00dd77ac052b89f | https://maven.google.com/com/android/tools/build/jetifier/jetifier-processor/1.0.0-beta04/jetifier-processor-1.0.0-beta04.pom
+dcad9ecb967251f4d750f55a4204a2b400e8fbfe5cb930a1d0d5dbe10ae8bdfc | https://maven.google.com/com/android/tools/build/manifest-merger/26.5.1/manifest-merger-26.5.1.jar
+0dfcac2f9fa87c1742945875ef1e6f9fbade2149426502323c40eb01c05a7e36 | https://maven.google.com/com/android/tools/build/manifest-merger/26.5.1/manifest-merger-26.5.1.pom
+4de4a3d05e1c534c2db9e4588bf34082bb2bd232d8abb9727c430290ce225740 | https://maven.google.com/com/android/tools/build/transform-api/2.0.0-deprecated-use-gradle-api/transform-api-2.0.0-deprecated-use-gradle-api.jar
+7c62f3856e8abca1d79257925f26c12668693f5d95904056bbac88605cfd8575 | https://maven.google.com/com/android/tools/build/transform-api/2.0.0-deprecated-use-gradle-api/transform-api-2.0.0-deprecated-use-gradle-api.pom
+eccfa54486ed54c4e3123cc42195d023bd0dd21bcd2f0e4868e8c6fc70f8ef6b | https://maven.google.com/com/android/tools/common/26.5.1/common-26.5.1.jar
+4492eb509dc784ca5e1600a2b0505ad1468bed4d116220fca67f34b49ac18ffb | https://maven.google.com/com/android/tools/common/26.5.1/common-26.5.1.pom
+b081aef2a4ed3f4d47cae4cdb128469735f25a114e026d37123bf9ffdec742a8 | https://maven.google.com/com/android/tools/ddms/ddmlib/26.5.1/ddmlib-26.5.1.jar
+a6e4693d05779c25cbfbbf4e67f96150c4de3d398ae3ed6a38f786971eb89634 | https://maven.google.com/com/android/tools/ddms/ddmlib/26.5.1/ddmlib-26.5.1.pom
+46f93ad498b4756e7d867d2fe38c38890a80e7407a4ae459e4a8c8d5c5aeacfe | https://maven.google.com/com/android/tools/dvlib/26.5.1/dvlib-26.5.1.jar
+1d5f88a4eb1c76901bc7b19af2311418a3f259d0f68756b058df850b1e8f913f | https://maven.google.com/com/android/tools/dvlib/26.5.1/dvlib-26.5.1.pom
+88732f11396c427273e515d23042e35633f4fe4295528a99b866aa2adf0efd9c | https://maven.google.com/com/android/tools/layoutlib/layoutlib-api/26.5.1/layoutlib-api-26.5.1.jar
+63832aa426428edb1a9ad7b1fc06c8ecf8f38b98041c13bfe433ac46688e5ed8 | https://maven.google.com/com/android/tools/layoutlib/layoutlib-api/26.5.1/layoutlib-api-26.5.1.pom
+82453fd98a8394cc84ed995c04d2cd744abd1d6589403427ba7eef53115406f3 | https://maven.google.com/com/android/tools/lint/lint-gradle-api/26.5.1/lint-gradle-api-26.5.1.jar
+2ddefa31501b320b366a0d18ba169118be7073d04c9337dd77bdc4ebd4ced959 | https://maven.google.com/com/android/tools/lint/lint-gradle-api/26.5.1/lint-gradle-api-26.5.1.pom
+2b3ee791aa4c3e8ce60498c161a27ca7228816fc630eed4d9f25f2f36a106dce | https://maven.google.com/com/android/tools/repository/26.5.1/repository-26.5.1.jar
+8312471ec5165d599404e2225157c5639bdd9ad5c6980f79b1c1c4b517ff93b3 | https://maven.google.com/com/android/tools/repository/26.5.1/repository-26.5.1.pom
+365f749676c3574676fd465177c8a492f340816db2b520d6ed114d3b6e77bea7 | https://maven.google.com/com/android/tools/sdk-common/26.5.1/sdk-common-26.5.1.jar
+33b0649ae6e3dd95340123c462f6ef32992ee858e6e132f45bb7dec332627d59 | https://maven.google.com/com/android/tools/sdk-common/26.5.1/sdk-common-26.5.1.pom
+007da104afb27c8c682a1628023fe9ec438249c8d15ef0fd6624c5bb8e23b696 | https://maven.google.com/com/android/tools/sdklib/26.5.1/sdklib-26.5.1.jar
+3f5ee952ea6a07767688a464c545354fbbce296419973397e65280142914b2a4 | https://maven.google.com/com/android/tools/sdklib/26.5.1/sdklib-26.5.1.pom
+feab9191311c3d7aeef2b66d6064afc80d3d1d52d980fb07ae43c78c987ba93a | https://plugins.gradle.org/m2/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom
+766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7 | https://plugins.gradle.org/m2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
+19889dbdf1b254b2601a5ee645b8147a974644882297684c798afe5d63d78dfe | https://plugins.gradle.org/m2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.pom
+8f1fec72b91a71ea39ec39f5f778c4d1124b6b097c6d55b3a50b554a52237b27 | https://plugins.gradle.org/m2/com/google/code/gson/gson-parent/2.8.5/gson-parent-2.8.5.pom
+233a0149fc365c9f6edbd683cfe266b19bdc773be98eabdaf6b3c924b48e7d81 | https://plugins.gradle.org/m2/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar
+b8308557a7fccc92d9fe7c8cd0599258b361285d2ecde7689eda98843255a092 | https://plugins.gradle.org/m2/com/google/code/gson/gson/2.8.5/gson-2.8.5.pom
+6ebd22ca1b9d8ec06d41de8d64e0596981d9607b42035f9ed374f9de271a481a | https://plugins.gradle.org/m2/com/google/errorprone/error_prone_annotations/2.2.0/error_prone_annotations-2.2.0.jar
+5e0258ea1ba4e51a133742680bc22448f7ab214be4073e8619f645ef1be42dd5 | https://plugins.gradle.org/m2/com/google/errorprone/error_prone_annotations/2.2.0/error_prone_annotations-2.2.0.pom
+c460902ddf5ece68832c6b271ce52a0928b05cf3a6ac81a8f548c73cbd541138 | https://plugins.gradle.org/m2/com/google/errorprone/error_prone_parent/2.2.0/error_prone_parent-2.2.0.pom
+cd6db17a11a31ede794ccbd1df0e4d9750f640234731f21cff885a9997277e81 | https://plugins.gradle.org/m2/com/google/google/1/google-1.pom
+a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26 | https://plugins.gradle.org/m2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar
+e96042ce78fecba0da2be964522947c87b40a291b5fd3cd672a434924103c4b9 | https://plugins.gradle.org/m2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.pom
+f8698ab46ca996ce889c1afc8ca4f25eb8ac6b034dc898d4583742360016cc04 | https://plugins.gradle.org/m2/com/google/guava/guava-parent/26.0-android/guava-parent-26.0-android.pom
+317e88291262e0cf2805e956c18850f1d4565c85c2e1112f5d9d08ab1732e696 | https://plugins.gradle.org/m2/com/google/guava/guava-parent/27.0.1-jre/guava-parent-27.0.1-jre.pom
+e1c814fd04492a27c38e0317eabeaa1b3e950ec8010239e400fe90ad6c9107b4 | https://plugins.gradle.org/m2/com/google/guava/guava/27.0.1-jre/guava-27.0.1-jre.jar
+6a8dd041f23a6bb14a86e440fccb993537b62271357a0dac0a3cb0ff39158f36 | https://plugins.gradle.org/m2/com/google/guava/guava/27.0.1-jre/guava-27.0.1-jre.pom
+b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99 | https://plugins.gradle.org/m2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
+18d4b1db26153d4e55079ce1f76bb1fe05cdb862ef9954a88cbcc4ff38b8679b | https://plugins.gradle.org/m2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.pom
+2994a7eb78f2710bd3d3bfb639b2c94e219cedac0d4d084d516e78c16dddecf6 | https://plugins.gradle.org/m2/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar
+f0c98c571e93a7cb4dd18df0fa308f0963e7a0620ac2d4244e61e709d03ad6be | https://plugins.gradle.org/m2/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.pom
+c71555751e57e0ef912870e8ac9625ae782502a6a5b9c19ccf83b2a97d8b26bd | https://plugins.gradle.org/m2/com/google/jimfs/jimfs-parent/1.1/jimfs-parent-1.1.pom
+c4828e28d7c0a930af9387510b3bada7daa5c04d7c25a75c7b8b081f1c257ddd | https://plugins.gradle.org/m2/com/google/jimfs/jimfs/1.1/jimfs-1.1.jar
+efa86e5cd922f17b472fdfcae57234d8d4ac3e148b6250737dfce454af7a7a44 | https://plugins.gradle.org/m2/com/google/jimfs/jimfs/1.1/jimfs-1.1.pom
+4189e0be5ab15cf2330f70b24fbdc75ca37514f188388fce8580ce16a9a68052 | https://plugins.gradle.org/m2/com/google/protobuf/protobuf-java-util/3.4.0/protobuf-java-util-3.4.0.jar
+89c43073e7eaa0eaba72a4a36ae1b6bfdfe5d81bb9d0e156aee05e4a72de3cb8 | https://plugins.gradle.org/m2/com/google/protobuf/protobuf-java-util/3.4.0/protobuf-java-util-3.4.0.pom
+dce7e66b32456a1b1198da0caff3a8acb71548658391e798c79369241e6490a4 | https://plugins.gradle.org/m2/com/google/protobuf/protobuf-java/3.4.0/protobuf-java-3.4.0.jar
+83f17ba86c5fa1a15a3a3c8030d4ce42ef21c1d39b65db6cc004a8eeb2c59406 | https://plugins.gradle.org/m2/com/google/protobuf/protobuf-java/3.4.0/protobuf-java-3.4.0.pom
+24909c552842c0eb7a4c769d631a43cbef5a9a10c1640f2bdbd1ea149c573a47 | https://plugins.gradle.org/m2/com/google/protobuf/protobuf-parent/3.4.0/protobuf-parent-3.4.0.pom
+2d9484f4c649f708f47f9a479465fc729770ee65617dca3011836602264f6439 | https://plugins.gradle.org/m2/com/googlecode/json-simple/json-simple/1.1/json-simple-1.1.jar
+47a89be0fa0fedd476db5fd2c83487654d2a119c391f83a142be876667cf7dab | https://plugins.gradle.org/m2/com/googlecode/json-simple/json-simple/1.1/json-simple-1.1.pom
+757bfe906193b8b651e79dc26cd67d6b55d0770a2cdfb0381591504f779d4a76 | https://plugins.gradle.org/m2/com/googlecode/juniversalchardet/juniversalchardet/1.0.3/juniversalchardet-1.0.3.jar
+7846399b35c7cd642a9b3a000c3e2d62d04eb37a4547b6933cc8b18bcc2f086b | https://plugins.gradle.org/m2/com/googlecode/juniversalchardet/juniversalchardet/1.0.3/juniversalchardet-1.0.3.pom
+8e108c92027bb428196f10fa11cffbe589f7648a6af2016d652279385fdfd789 | https://plugins.gradle.org/m2/com/squareup/javapoet/1.8.0/javapoet-1.8.0.jar
+b3760f40f19e735b2cd418f7656335d926d1d9413e10982a1c9695b64edbb647 | https://plugins.gradle.org/m2/com/squareup/javapoet/1.8.0/javapoet-1.8.0.pom
+fcfb09fb0ea0aa97d3cfe7ea792398081348e468f126b3603cb3803f240197f0 | https://plugins.gradle.org/m2/com/squareup/javawriter/2.5.0/javawriter-2.5.0.jar
+e1abd7f1116cf5e0c59947693e2189208ec94296b2a3394c959e3511d399a7b0 | https://plugins.gradle.org/m2/com/squareup/javawriter/2.5.0/javawriter-2.5.0.pom
+1d8518e3ac7532a104e4f7be77def37c982e530723c6bdb3d67708cce2b0c2c4 | https://plugins.gradle.org/m2/com/sun/activation/all/1.2.0/all-1.2.0.pom
+993302b16cd7056f21e779cc577d175a810bb4900ef73cd8fbf2b50f928ba9ce | https://plugins.gradle.org/m2/com/sun/activation/javax.activation/1.2.0/javax.activation-1.2.0.jar
+f879b6e945854c6900b0dbee1c8384d7ab3de7e157fd7ac84937405c416d2a5e | https://plugins.gradle.org/m2/com/sun/activation/javax.activation/1.2.0/javax.activation-1.2.0.pom
+c33e67a0807095f02a0e2da139412dd7c4f9cc1a4c054b3e434f96831ba950f4 | https://plugins.gradle.org/m2/com/sun/istack/istack-commons-runtime/2.21/istack-commons-runtime-2.21.jar
+ebe7137b5fbfd050545f9a7f3f339ae55beb0b53755071b4fd62aa024c626d1c | https://plugins.gradle.org/m2/com/sun/istack/istack-commons-runtime/2.21/istack-commons-runtime-2.21.pom
+c3071277f89b162982606b4e65c92077212efb6cbf1bdc365c51bd0b57ac818c | https://plugins.gradle.org/m2/com/sun/istack/istack-commons/2.21/istack-commons-2.21.pom
+b25e0693de21cb92b039a2e4608f396590fb8773108f10d6dc9f1465f03b5be9 | https://plugins.gradle.org/m2/com/sun/xml/bind/jaxb-bom-ext/2.2.11/jaxb-bom-ext-2.2.11.pom
+b5301b711c01547e571b615f9a0832ee525d34a4ce3372f53907a87cf20b0480 | https://plugins.gradle.org/m2/com/sun/xml/bind/mvn/jaxb-parent/2.2.11/jaxb-parent-2.2.11.pom
+21918cb8e4eda67f24251e909a5d81672201d93604c4ffbf33522ad836a58e90 | https://plugins.gradle.org/m2/com/sun/xml/bind/mvn/jaxb-runtime-parent/2.2.11/jaxb-runtime-parent-2.2.11.pom
+9a398c699a5d3f3b56f1056c68890ede25d94a12d98eabc2a473733e6ab2362c | https://plugins.gradle.org/m2/com/sun/xml/bind/mvn/jaxb-txw-parent/2.2.11/jaxb-txw-parent-2.2.11.pom
+27a77db909f3c2833c0b1a37c55af1db06045118ad2eed96ce567b6632bce038 | https://plugins.gradle.org/m2/com/sun/xml/fastinfoset/FastInfoset/1.2.13/FastInfoset-1.2.13.jar
+b7505e0ecf7d495b4daa3e6569f71611d1a789dc531cbd92a2025922ff2655d3 | https://plugins.gradle.org/m2/com/sun/xml/fastinfoset/FastInfoset/1.2.13/FastInfoset-1.2.13.pom
+fd0857899f1067e0287c2ffd91e38f967a26bd405b83a34650c2742cee9fc261 | https://plugins.gradle.org/m2/com/sun/xml/fastinfoset/fastinfoset-project/1.2.13/fastinfoset-project-1.2.13.pom
+4241dfa94e711d435f29a4604a3e2de5c4aa3c165e23bd066be6fc1fc4309569 | https://plugins.gradle.org/m2/commons-codec/commons-codec/1.10/commons-codec-1.10.jar
+bdb8db7012d112a6e3ea8fdb7c510b300d99eff0819d27dddba9c43397ea4cfb | https://plugins.gradle.org/m2/commons-codec/commons-codec/1.10/commons-codec-1.10.pom
+cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581 | https://plugins.gradle.org/m2/commons-io/commons-io/2.4/commons-io-2.4.jar
+b2b5dd46cf998fa626eb6f8a1c114f6167c8d392694164e62533e5898e9b31f2 | https://plugins.gradle.org/m2/commons-io/commons-io/2.4/commons-io-2.4.pom
+daddea1ea0be0f56978ab3006b8ac92834afeefbd9b7e4e6316fca57df0fa636 | https://plugins.gradle.org/m2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
+c91ab5aa570d86f6fd07cc158ec6bc2c50080402972ee9179fe24100739fbb20 | https://plugins.gradle.org/m2/commons-logging/commons-logging/1.2/commons-logging-1.2.pom
+74fa208043740642f7e6eb09faba15965218ad2f50ce3020efb100136e4b591c | https://plugins.gradle.org/m2/it/unimi/dsi/fastutil/7.2.0/fastutil-7.2.0.jar
+953b116521a73575eee990e3f2c36a892fb088bb2d9a3027c82193cb7a013ef7 | https://plugins.gradle.org/m2/it/unimi/dsi/fastutil/7.2.0/fastutil-7.2.0.pom
+91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff | https://plugins.gradle.org/m2/javax/inject/javax.inject/1/javax.inject-1.jar
+943e12b100627804638fa285805a0ab788a680266531e650921ebfe4621a8bfa | https://plugins.gradle.org/m2/javax/inject/javax.inject/1/javax.inject-1.pom
+b5e60cd8b7b5ff01ce4a74c5dd008f4fbd14ced3495d0b47b85cfedc182211f2 | https://plugins.gradle.org/m2/javax/xml/bind/jaxb-api/2.2.12-b140109.1041/jaxb-api-2.2.12-b140109.1041.jar
+2092a7d8d9bc5698c59b094bdea46622915c48c83ae66d5b5ad549c7bf16155b | https://plugins.gradle.org/m2/javax/xml/bind/jaxb-api/2.2.12-b140109.1041/jaxb-api-2.2.12-b140109.1041.pom
+281440811268e65d9e266b3cc898297e214e04f09740d0386ceeb4a8923d63bf | https://plugins.gradle.org/m2/net/java/jvnet-parent/1/jvnet-parent-1.pom
+30f5789efa39ddbf96095aada3fc1260c4561faf2f714686717cb2dc5049475a | https://plugins.gradle.org/m2/net/java/jvnet-parent/3/jvnet-parent-3.pom
+471395735549495297c8ff939b9a32e08b91302020ff773586d27e497abb8fbb | https://plugins.gradle.org/m2/net/java/jvnet-parent/4/jvnet-parent-4.pom
+26c5856e954b5f864db76f13b86919b59c6eecf9fd930b96baa8884626baf2f5 | https://plugins.gradle.org/m2/net/sf/jopt-simple/jopt-simple/4.9/jopt-simple-4.9.jar
+7af7e2d8b24b4798f04c2b7da24c9fbd1b7557b4e017c2054481565916079092 | https://plugins.gradle.org/m2/net/sf/jopt-simple/jopt-simple/4.9/jopt-simple-4.9.pom
+f264dd9f79a1fde10ce5ecc53221eff24be4c9331c830b7d52f2f08a7b633de2 | https://plugins.gradle.org/m2/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.jar
+31ce606f4e9518936299bb0d27c978fa61e185fd1de7c9874fe959a53e34a685 | https://plugins.gradle.org/m2/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.pom
+75bc89695fa66e75374ecda439b802406f0ab1d826dd386eed0a23b1f0a9d264 | https://plugins.gradle.org/m2/net/sf/proguard/proguard-base/6.0.3/proguard-base-6.0.3.jar
+2a823d79f2675582a988d539466d1b175e939782efbe0f6e61f06cb165ed4907 | https://plugins.gradle.org/m2/net/sf/proguard/proguard-base/6.0.3/proguard-base-6.0.3.pom
+cc12b1168e521491dd0e687cfebec11a4af874b22af70e10cf2a05b47ca00c8f | https://plugins.gradle.org/m2/net/sf/proguard/proguard-gradle/6.0.3/proguard-gradle-6.0.3.jar
+5a5c7317d68ce80d1d40c9d8bd4e38814d42d1b16c265146e333634833a35a57 | https://plugins.gradle.org/m2/net/sf/proguard/proguard-gradle/6.0.3/proguard-gradle-6.0.3.pom
+d87266bfd2312c3b036c4ac709310afa35c448ceb18027c3b87a33d03c6de0a0 | https://plugins.gradle.org/m2/net/sf/proguard/proguard-parent/6.0.3/proguard-parent-6.0.3.pom
+401877d5e70ad599e9b6cff18434ea0332f637b51f8ec68352646c836f9bb2a4 | https://plugins.gradle.org/m2/org/antlr/antlr4-master/4.5.3/antlr4-master-4.5.3.pom
+a32de739cfdf515774e696f91aa9697d2e7731e5cb5045ca8a4b657f8b1b4fb4 | https://plugins.gradle.org/m2/org/antlr/antlr4/4.5.3/antlr4-4.5.3.jar
+8a4e4b32eedaa72976a757e12cf1dfe742725db0b7311bf176dd937ba4236384 | https://plugins.gradle.org/m2/org/antlr/antlr4/4.5.3/antlr4-4.5.3.pom
+ff513db0361fd41237bef4784968bc15aae478d4ec0a9496f811072ccaf3841d | https://plugins.gradle.org/m2/org/apache/apache/13/apache-13.pom
+36c2f2f979ac67b450c0cb480e4e9baf6b40f3a681f22ba9692287d1139ad494 | https://plugins.gradle.org/m2/org/apache/apache/15/apache-15.pom
+9f85ff2fd7d6cb3097aa47fb419ee7f0ebe869109f98aba9f4eca3f49e74a40e | https://plugins.gradle.org/m2/org/apache/apache/16/apache-16.pom
+7831307285fd475bbc36b20ae38e7882f11c3153b1d5930f852d44eda8f33c17 | https://plugins.gradle.org/m2/org/apache/apache/18/apache-18.pom
+4946e60a547c8eda69f3bc23c5b6f0dadcf8469ea49b1d1da7de34aecfcf18dd | https://plugins.gradle.org/m2/org/apache/apache/9/apache-9.pom
+2c1542faf343185b7cab9c3d55c8ae5471d6d095d3887a4adefdbdf2984dc0b6 | https://plugins.gradle.org/m2/org/apache/commons/commons-compress/1.12/commons-compress-1.12.jar
+b787d574c851505e76212968b9ae1641ea79804aef7f5a2cee2a01cd4055213a | https://plugins.gradle.org/m2/org/apache/commons/commons-compress/1.12/commons-compress-1.12.pom
+467ae650442e876867379094e7518dfdd67d22c5352ebd39808c84259e9790ba | https://plugins.gradle.org/m2/org/apache/commons/commons-parent/25/commons-parent-25.pom
+3a2e69d06d641d1f3b293126dc9e2e4ea6563bf8c36c87e0ab6fa4292d04b79c | https://plugins.gradle.org/m2/org/apache/commons/commons-parent/34/commons-parent-34.pom
+7098a1ab8336ecd4c9dc21cbbcac869f82c66f64b8ac4f7988d41b4fcb44e49a | https://plugins.gradle.org/m2/org/apache/commons/commons-parent/35/commons-parent-35.pom
+87cd27e1a02a5c3eb6d85059ce98696bb1b44c2b8b650f0567c86df60fa61da7 | https://plugins.gradle.org/m2/org/apache/commons/commons-parent/39/commons-parent-39.pom
+c03f813195e7a80e3608d0ddd8da80b21696a4c92a6a2298865bf149071551c7 | https://plugins.gradle.org/m2/org/apache/httpcomponents/httpclient/4.5.6/httpclient-4.5.6.jar
+7efc1241e73e7fbb268bfd33242d11ebd3ca07061d7d85f2962dc32a0f0b8855 | https://plugins.gradle.org/m2/org/apache/httpcomponents/httpclient/4.5.6/httpclient-4.5.6.pom
+b042b41f2391edb00d35f7f4e509aed2123648c1d246ce58d0f7b905c9fe1f73 | https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcomponents-client/4.5.6/httpcomponents-client-4.5.6.pom
+61e9427d4be326c307a7f16ba828d1cb3b14713c9b04fc8ba992a58f376c3136 | https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcomponents-core/4.4.10/httpcomponents-core-4.4.10.pom
+caaf967d94afb21753f36082c6086206bd1f48825ff596932cceba72b65d39fa | https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcomponents-parent/10/httpcomponents-parent-10.pom
+78ba1096561957db1b55200a159b648876430342d15d461277e62360da19f6fd | https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcore/4.4.10/httpcore-4.4.10.jar
+c5c12066df2b3b88a89a2c8602b81ea9a61627e976e5129eea1899ebbaea392b | https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcore/4.4.10/httpcore-4.4.10.pom
+0b2b1102c18d3c7e05a77214b9b7501a6f6056174ae5604e0e256776eda7553e | https://plugins.gradle.org/m2/org/apache/httpcomponents/httpmime/4.5.6/httpmime-4.5.6.jar
+dfbfd6ffe2a784ca9817c46365aa7f8a578320b805bde39d6f55a0b09d8aa8ca | https://plugins.gradle.org/m2/org/apache/httpcomponents/httpmime/4.5.6/httpmime-4.5.6.pom
+7043dee4e9e7175e93e0b36f45b1ec1ecb893c5f755667e8b916eb8dd201c6ca | https://plugins.gradle.org/m2/org/bouncycastle/bcpkix-jdk15on/1.56/bcpkix-jdk15on-1.56.jar
+321668fc474a73140eb9cc73c779f1ebb9f60948aade3beddee082ecefcf0259 | https://plugins.gradle.org/m2/org/bouncycastle/bcpkix-jdk15on/1.56/bcpkix-jdk15on-1.56.pom
+963e1ee14f808ffb99897d848ddcdb28fa91ddda867eb18d303e82728f878349 | https://plugins.gradle.org/m2/org/bouncycastle/bcprov-jdk15on/1.56/bcprov-jdk15on-1.56.jar
+8fdc3336e7b01873193ba9c48b87de7d788dc0954d1eb45c322492627a4b5c6e | https://plugins.gradle.org/m2/org/bouncycastle/bcprov-jdk15on/1.56/bcprov-jdk15on-1.56.pom
+64b02691c8b9d4e7700f8ee2e742dce7ea2c6e81e662b7522c9ee3bf568c040a | https://plugins.gradle.org/m2/org/checkerframework/checker-qual/2.5.2/checker-qual-2.5.2.jar
+dc4cd438a36462d013c2338c8e206d102a322a00f33729e8955ee219859c9ede | https://plugins.gradle.org/m2/org/checkerframework/checker-qual/2.5.2/checker-qual-2.5.2.pom
+92654f493ecfec52082e76354f0ebf87648dc3d5cec2e3c3cdb947c016747a53 | https://plugins.gradle.org/m2/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar
+e956ab5d2eb48fabae12300d0cd2d3294d4a2a41abc2068c23cb4d60ad76cbe5 | https://plugins.gradle.org/m2/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.pom
+18a03df16e2a184c582db7b125633c15fb7714027a84c1b532d72933dc08b81f | https://plugins.gradle.org/m2/org/codehaus/mojo/animal-sniffer-parent/1.17/animal-sniffer-parent-1.17.pom
+fc648dcdc404f8bf66e0583914ecf980176618201227bea114fae85043cb755e | https://plugins.gradle.org/m2/org/codehaus/mojo/mojo-parent/40/mojo-parent-40.pom
+a52e6850f070dc9f7a2a51d0b25dfaafd49b0b9bf8196db6c0b3c5b7c94d8d38 | https://plugins.gradle.org/m2/org/glassfish/jaxb/jaxb-bom/2.2.11/jaxb-bom-2.2.11.pom
+37bcaee8ebb04362c8352a5bf6221b86967ecdab5164c696b10b9a2bb587b2aa | https://plugins.gradle.org/m2/org/glassfish/jaxb/jaxb-core/2.2.11/jaxb-core-2.2.11.jar
+ec31409f203bcabf99534f59231ec0576d875d4d4b7349b09566a7a8c8179b24 | https://plugins.gradle.org/m2/org/glassfish/jaxb/jaxb-core/2.2.11/jaxb-core-2.2.11.pom
+a874f2351cfba8e2946be3002d10c18a6da8f21b52ba2acf52f2b85d5520ed70 | https://plugins.gradle.org/m2/org/glassfish/jaxb/jaxb-runtime/2.2.11/jaxb-runtime-2.2.11.jar
+e5327b31b595ab8143e97836d5ccdf85feb91e7ff5666f7b26913632facca4aa | https://plugins.gradle.org/m2/org/glassfish/jaxb/jaxb-runtime/2.2.11/jaxb-runtime-2.2.11.pom
+272a3ccad45a4511351920cd2a8633c53cab8d5220c7a92954da5526bb5eafea | https://plugins.gradle.org/m2/org/glassfish/jaxb/txw2/2.2.11/txw2-2.2.11.jar
+8514cb724b4fca59a5cf272b632e539bd0a0f3cacf1844082d0a173a86406bd8 | https://plugins.gradle.org/m2/org/glassfish/jaxb/txw2/2.2.11/txw2-2.2.11.pom
+1345f11ba606d15603d6740551a8c21947c0215640770ec67271fe78bea97cf5 | https://plugins.gradle.org/m2/org/jdom/jdom2/2.0.6/jdom2-2.0.6.jar
+47b23a79fe336b741b82434c6e049d68165256e405e75c10921fd72fa8a65d8d | https://plugins.gradle.org/m2/org/jdom/jdom2/2.0.6/jdom2-2.0.6.pom
+ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478 | https://plugins.gradle.org/m2/org/jetbrains/annotations/13.0/annotations-13.0.jar
+965aeb2bedff369819bdde1bf7a0b3b89b8247dd69c88b86375d76163bb8c397 | https://plugins.gradle.org/m2/org/jetbrains/annotations/13.0/annotations-13.0.pom
+64583199ea5a54aefd1bd1595288925f784226ee562d1dd279011c6075b3d7a4 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-reflect/1.3.50/kotlin-reflect-1.3.50.jar
+8745181e5a3e0bafefd46309c6b810df7253f379feb985131eaf8d4d9c302635 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-reflect/1.3.50/kotlin-reflect-1.3.50.pom
+8ce678e88e4ba018b66dacecf952471e4d7dfee156a8a819760a5a5ff29d323c | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50.jar
+b6396fe802d7bc76a381485e266cb975f3b2f2d3dd9bf7213aab6ca27a561fc1 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50.pom
+9a026639e76212f8d57b86d55b075394c2e009f1979110751d34c05c5f75d57b | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.50/kotlin-stdlib-jdk7-1.3.50.jar
+a3aef46388ee96e975110db51df3ab794c87d892bdbc6d5a49bf926e4779438b | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.50/kotlin-stdlib-jdk7-1.3.50.pom
+1b351fb6e09c14b55525c74c1f4cf48942eae43c348b7bc764a5e6e423d4da0c | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.50/kotlin-stdlib-jdk8-1.3.50.jar
+8674b002f66a2948981c4f6cb5987ec62ff3d54b6a2799a6d2cd23afb83f2ad3 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.50/kotlin-stdlib-jdk8-1.3.50.pom
+e6f05746ee0366d0b52825a090fac474dcf44082c9083bbb205bd16976488d6c | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50.jar
+704fd78960ae046428f69bcd5b951c122e4c180c9400238a866e12cb18494a61 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50.pom
+1917871c8deb468307a584680c87a44572f5a8b0b98c6d397fc0f5f86596dbe7 | https://plugins.gradle.org/m2/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.jar
+c94b0b73790c70c709bcd445a01247908888211e38cc59e946ff6fe900785ae9 | https://plugins.gradle.org/m2/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.pom
+a31ff7d77163c0deb09e7fee59ad35ae44c2cee2cc8552a116ccd1583d813fb4 | https://plugins.gradle.org/m2/org/jvnet/staxex/stax-ex/1.7.7/stax-ex-1.7.7.jar
+27cb450b6c367a00bd8362519907f84defac7b12086c64d4d6e97e33ab873ead | https://plugins.gradle.org/m2/org/jvnet/staxex/stax-ex/1.7.7/stax-ex-1.7.7.pom
+2f1a6387219c3a6cc4856481f221b03bd9f2408a326d416af09af5d6f608c1f4 | https://plugins.gradle.org/m2/org/ow2/asm/asm-analysis/6.0/asm-analysis-6.0.jar
+d3aaf42e40e3e24aabda53b5de4de5e17cb78e06549bf37312dca6c77e251054 | https://plugins.gradle.org/m2/org/ow2/asm/asm-analysis/6.0/asm-analysis-6.0.pom
+f1bce5c648a96a017bdcd01fe5d59af9845297fd7b79b81c015a6fbbd9719abf | https://plugins.gradle.org/m2/org/ow2/asm/asm-commons/6.0/asm-commons-6.0.jar
+90f4f29473afb957229016eb5741954976cc1b67bc049b3981c0d1e653ad5cdd | https://plugins.gradle.org/m2/org/ow2/asm/asm-commons/6.0/asm-commons-6.0.pom
+791d064bb9ecc9a46d43bc9efecd74c91464dfc451f321b802d2261e2ccd7d14 | https://plugins.gradle.org/m2/org/ow2/asm/asm-parent/6.0/asm-parent-6.0.pom
+887998fb69727c8759e4d253f856822801e33f9fd4caa566b3ac58ee92106215 | https://plugins.gradle.org/m2/org/ow2/asm/asm-tree/6.0/asm-tree-6.0.jar
+36887e0d7fdb185a92378a38ea45e596a97f10f385c5d050eb6252454ee701b4 | https://plugins.gradle.org/m2/org/ow2/asm/asm-tree/6.0/asm-tree-6.0.pom
+356afebdb0f870175262e5188f8709a3b17aa2a5a6a4b0340b04d4b449bca5f6 | https://plugins.gradle.org/m2/org/ow2/asm/asm-util/6.0/asm-util-6.0.jar
+3cdfc61f988d167b97503419da82a5808b20f4205aeb46c394e6e7ffd3211f12 | https://plugins.gradle.org/m2/org/ow2/asm/asm-util/6.0/asm-util-6.0.pom
+dd8971c74a4e697899a8e95caae4ea8760ea6c486dc6b97b1795e75760420461 | https://plugins.gradle.org/m2/org/ow2/asm/asm/6.0/asm-6.0.jar
+c2bc497e197112e699085426bbb45b1ab0be8002da68267a3b1f450a0312c32e | https://plugins.gradle.org/m2/org/ow2/asm/asm/6.0/asm-6.0.pom
+51215c67d2c068d8b7d2f6f80f51372a098075deccc448d4bdd7b987ba8328fb | https://plugins.gradle.org/m2/org/ow2/ow2/1.3/ow2-1.3.pom
+b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454 | https://plugins.gradle.org/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom
+fb40265f982548212ff82e362e59732b2187ec6f0d80182885c14ef1f982827a | https://plugins.gradle.org/m2/org/sonatype/oss/oss-parent/9/oss-parent-9.pom
+


=====================================
projects/oss-licenses-plugin/sort-dependencies.diff
=====================================
@@ -0,0 +1,40 @@
+diff --git a/oss-licenses-plugin/src/main/groovy/com/google/android/gms/oss/licenses/plugin/ArtifactInfo.groovy b/oss-licenses-plugin/src/main/groovy/com/google/android/gms/oss/licenses/plugin/ArtifactInfo.groovy
+index d6d854d..622072d 100644
+--- a/oss-licenses-plugin/src/main/groovy/com/google/android/gms/oss/licenses/plugin/ArtifactInfo.groovy
++++ b/oss-licenses-plugin/src/main/groovy/com/google/android/gms/oss/licenses/plugin/ArtifactInfo.groovy
+@@ -16,7 +16,7 @@
+ 
+ package com.google.android.gms.oss.licenses.plugin
+ 
+-class ArtifactInfo {
++class ArtifactInfo implements Comparable<ArtifactInfo> {
+     private String group
+     private String name
+     private String fileLocation
+@@ -47,4 +47,13 @@ class ArtifactInfo {
+     String getVersion() {
+         return version
+     }
++
++    String toString() {
++        return "$group:$name:$version"
++    }
++
++    @Override
++    int compareTo(ArtifactInfo other) {
++        return toString().compareTo(other.toString())
++    }
+ }
+diff --git a/oss-licenses-plugin/src/main/groovy/com/google/android/gms/oss/licenses/plugin/DependencyTask.groovy b/oss-licenses-plugin/src/main/groovy/com/google/android/gms/oss/licenses/plugin/DependencyTask.groovy
+index 75f6527..26a9bf7 100644
+--- a/oss-licenses-plugin/src/main/groovy/com/google/android/gms/oss/licenses/plugin/DependencyTask.groovy
++++ b/oss-licenses-plugin/src/main/groovy/com/google/android/gms/oss/licenses/plugin/DependencyTask.groovy
+@@ -47,7 +47,7 @@ import org.slf4j.LoggerFactory
+  */
+ class DependencyTask extends DefaultTask {
+     protected Set<String> artifactSet = []
+-    protected Set<ArtifactInfo> artifactInfos = []
++    protected TreeSet<ArtifactInfo> artifactInfos = []
+     protected static final String LOCAL_LIBRARY_VERSION = "unspecified"
+     private static final String TEST_PREFIX = "test"
+     private static final String ANDROID_TEST_PREFIX = "androidTest"



View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/2fb90e5f74eccbb3cc7131f4748f8fed47930555...7c687f291b84381381caa87a755252db219ea518

-- 
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/2fb90e5f74eccbb3cc7131f4748f8fed47930555...7c687f291b84381381caa87a755252db219ea518
You're receiving this email because of your account on gitlab.torproject.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.torproject.org/pipermail/tor-commits/attachments/20240819/b0aea094/attachment-0001.htm>


More information about the tor-commits mailing list