[tbb-commits] [tor-browser-build/master] Bug 40058: Build Fenix with tor-android-service and topl
gk at torproject.org
gk at torproject.org
Wed Sep 2 11:49:44 UTC 2020
commit 6bb6ec3650e28c07d9076ffa1f72099393f9e44a
Author: Alex Catarineu <acat at torproject.org>
Date: Fri Aug 28 19:32:52 2020 +0200
Bug 40058: Build Fenix with tor-android-service and topl
With this tor-onion-proxy-library and tor-android-service will build fat
aars with all the archs we support. We copy those over the fenix/app/
folder so that the Fenix build system picks them up for the final apks.
---
projects/fenix/build | 5 ++++
projects/fenix/config | 6 ++++-
projects/fenix/gradle-dependencies-list.txt | 10 +++++---
projects/tor-android-service/build | 4 ++-
projects/tor-android-service/config | 16 +++++++++++-
projects/tor-onion-proxy-library/build | 38 ++++++++++++++++++-----------
projects/tor-onion-proxy-library/config | 32 ++++++++++++++++++++++--
7 files changed, 89 insertions(+), 22 deletions(-)
diff --git a/projects/fenix/build b/projects/fenix/build
index 9726bc4..fdc6499 100644
--- a/projects/fenix/build
+++ b/projects/fenix/build
@@ -24,6 +24,11 @@ mkdir -p /var/tmp/build
tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
cd $builddir-[% c("version") %]
+
+# Move Android library dependencies so they will be included in the apk during the build
+cp $rootdir/[% c('input_files_by_name/topl') %]/* app/
+cp $rootdir/[% c('input_files_by_name/tor-android-service') %]/* app/
+
[% IF c("var/fetch_gradle_dependencies") %]
gradle --debug --no-daemon app:assemble[% c('build_flavor') %] -x lint
[% ELSE %]
diff --git a/projects/fenix/config b/projects/fenix/config
index 2f8ae66..7a8b2f9 100644
--- a/projects/fenix/config
+++ b/projects/fenix/config
@@ -16,7 +16,7 @@ var:
container:
use_container: 1
# This should be updated when the list of gradle dependencies is changed.
- gradle_dependencies_version: 1
+ gradle_dependencies_version: 2
# Switch to make it easier to grab all dependencies during a dry-run.
fetch_gradle_dependencies: 0
@@ -47,3 +47,7 @@ input_files:
exec: '[% INCLUDE "fetch-gradle-dependencies" %]'
- filename: mavenLocal.patch
enable: '[% !c("var/fetch_gradle_dependencies") %]'
+ - project: tor-android-service
+ name: tor-android-service
+ - project: tor-onion-proxy-library
+ name: topl
diff --git a/projects/fenix/gradle-dependencies-list.txt b/projects/fenix/gradle-dependencies-list.txt
index 86c4be0..f8a97a9 100644
--- a/projects/fenix/gradle-dependencies-list.txt
+++ b/projects/fenix/gradle-dependencies-list.txt
@@ -462,6 +462,8 @@ f014af749024c57989ca2aa51b0a986f9d86d2669d074c1dee068a8f8da19562 | https://jcent
943e12b100627804638fa285805a0ab788a680266531e650921ebfe4621a8bfa | https://jcenter.bintray.com/javax/inject/javax.inject/1/javax.inject-1.pom
b5e60cd8b7b5ff01ce4a74c5dd008f4fbd14ced3495d0b47b85cfedc182211f2 | https://jcenter.bintray.com/javax/xml/bind/jaxb-api/2.2.12-b140109.1041/jaxb-api-2.2.12-b140109.1041.jar
2092a7d8d9bc5698c59b094bdea46622915c48c83ae66d5b5ad549c7bf16155b | https://jcenter.bintray.com/javax/xml/bind/jaxb-api/2.2.12-b140109.1041/jaxb-api-2.2.12-b140109.1041.pom
+ec3a75bebddbf19ff56a281cf5d1ad146169dcaa0e69d7b14f4aaba2e7775f34 | https://jcenter.bintray.com/net/freehaven/tor/control/jtorctl/0.2/jtorctl-0.2.jar
+3369726ca2b0e3736c741ff3c22e06f707a1007ff20ccc5b5ba5d0d9a01ead30 | https://jcenter.bintray.com/net/freehaven/tor/control/jtorctl/0.2/jtorctl-0.2.pom
c83a9c71358d781539c34b38d76a88e3ec8e2d587c7f04b611acc9041919b310 | https://jcenter.bintray.com/net/java/dev/jna/jna/5.2.0/jna-5.2.0.aar
aafe6935d6bedb89a6aa32563d441fbe305da1de193d6f71a45a0212acf9b756 | https://jcenter.bintray.com/net/java/dev/jna/jna/5.2.0/jna-5.2.0.pom
281440811268e65d9e266b3cc898297e214e04f09740d0386ceeb4a8923d63bf | https://jcenter.bintray.com/net/java/jvnet-parent/1/jvnet-parent-1.pom
@@ -645,9 +647,11 @@ c0e82b220b0a52c71c7ca2a58c99a2530696c7b58b173052b9d48fe3efb10073 | https://jcent
0f8a1b116e760b8fe6389c51b84e4b07a70fc11082d4f936e453b583dd50b43b | https://jcenter.bintray.com/org/ow2/ow2/1.5/ow2-1.5.pom
6e58dad0b8565b95c6fb14b4bfbf570523d1c5290244cfb33822789fa53b1d25 | https://jcenter.bintray.com/org/python/jython-installer/2.7.1/jython-installer-2.7.1.jar
2a42db37f9a565f1baa833b7cb7e9f901bd9fd750d10b9bd7ca76b2385b22387 | https://jcenter.bintray.com/org/python/jython-installer/2.7.1/jython-installer-2.7.1.pom
-baf3c7fe15fefeaf9e5b000d94547379dc48370f22a8797e239c127e7d7756ec | https://jcenter.bintray.com/org/slf4j/slf4j-api/1.7.24/slf4j-api-1.7.24.jar
-d7a15266d22fadc1c81bbc3b62637801d116e484eb6c831217dc36c537be48d2 | https://jcenter.bintray.com/org/slf4j/slf4j-api/1.7.24/slf4j-api-1.7.24.pom
-36367d127a586d502b60bf54db2d7397ec94573620eff523873ec12a12e54839 | https://jcenter.bintray.com/org/slf4j/slf4j-parent/1.7.24/slf4j-parent-1.7.24.pom
+fbd7b254e02d8aef60c418a5f0e14a783b38a16162caffb2d2a16ccd5d2c09b4 | https://jcenter.bintray.com/org/slf4j/slf4j-android/1.7.25/slf4j-android-1.7.25.jar
+bd9b9cb1a3987b1427f7a18babe7f92078e32bbe2e1dca6dced00cc0e3a077a9 | https://jcenter.bintray.com/org/slf4j/slf4j-android/1.7.25/slf4j-android-1.7.25.pom
+18c4a0095d5c1da6b817592e767bb23d29dd2f560ad74df75ff3961dbde25b79 | https://jcenter.bintray.com/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar
+7cd9d7a0b5d93dfd461a148891b43509cf403a9c7f9fb49060d3554df1c81e1e | https://jcenter.bintray.com/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.pom
+18f5c52120db036e88d6136f8839c832d074bdda95c756c6f429249d2db54ac6 | https://jcenter.bintray.com/org/slf4j/slf4j-parent/1.7.25/slf4j-parent-1.7.25.pom
b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454 | https://jcenter.bintray.com/org/sonatype/oss/oss-parent/7/oss-parent-7.pom
fb40265f982548212ff82e362e59732b2187ec6f0d80182885c14ef1f982827a | https://jcenter.bintray.com/org/sonatype/oss/oss-parent/9/oss-parent-9.pom
d3f7f09989d5b0ce5c4791818ef937ee7663f1e359c2ef2d312f938aad0763da | https://jcenter.bintray.com/org/yaml/snakeyaml/1.24/snakeyaml-1.24.jar
diff --git a/projects/tor-android-service/build b/projects/tor-android-service/build
index 4fb41bc..df83673 100644
--- a/projects/tor-android-service/build
+++ b/projects/tor-android-service/build
@@ -17,7 +17,9 @@ cd /var/tmp/build/[% project %]-[% c('version') %]
# Replace pre-packaged tor library with the latest build
rm -fR service/src/main/jniLibs/*
-tar -C service/src/main -xf $rootdir/[% c('input_files_by_name/tor') %]/tor.tar.gz
+[% FOREACH arch = ['armv7', 'aarch64', 'x86', 'x86_64'] -%]
+ tar -C service/src/main -xf $rootdir/[% c('input_files_by_name/tor-' _ arch) %]/tor.tar.gz
+[% END -%]
# Replace libraries with the config dependencies
rm service/libs/*
diff --git a/projects/tor-android-service/config b/projects/tor-android-service/config
index 1f833ba..e2bb2db 100644
--- a/projects/tor-android-service/config
+++ b/projects/tor-android-service/config
@@ -23,4 +23,18 @@ input_files:
- project: tor-onion-proxy-library
name: topl
- project: tor
- name: tor
+ name: tor-armv7
+ target_prepend:
+ - torbrowser-android-armv7
+ - project: tor
+ name: tor-aarch64
+ target_prepend:
+ - torbrowser-android-aarch64
+ - project: tor
+ name: tor-x86
+ target_prepend:
+ - torbrowser-android-x86
+ - project: tor
+ name: tor-x86_64
+ target_prepend:
+ - torbrowser-android-x86_64
diff --git a/projects/tor-onion-proxy-library/build b/projects/tor-onion-proxy-library/build
index 3e02fb4..edeb8ae 100644
--- a/projects/tor-onion-proxy-library/build
+++ b/projects/tor-onion-proxy-library/build
@@ -23,20 +23,30 @@ patch -p1 < $rootdir/gradle.patch
patch -p1 < $rootdir/0001-Bug-33931-Filter-bridges-in-stream-by-type.patch
patch -p1 < $rootdir/0001-Bug-30318-Add-snowflake-support.patch
-# Extract obfs4proxy from TorBrowser/Tor/PluggableTransports/obfs4proxy
-tar --strip-components=4 -xf $rootdir/[% c('input_files_by_name/obfs4') %]
-
-# Extract snowflake from TorBrowser/Tor/PluggableTransports/snowflake
-tar --strip-components=4 -xf $rootdir/[% c('input_files_by_name/snowflake') %]
-
-# Overwrite the obfs4proxy binary provided by Pluto and add Snowflake
-for d in external/pluto/bin/*; do
- cp obfs4proxy $d/
- cp snowflake-client $d/
-done
-
-rm obfs4proxy
-rm snowflake-client
+[% FOREACH arch = ['armv7', 'aarch64', 'x86', 'x86_64'] -%]
+ # Extract obfs4proxy from TorBrowser/Tor/PluggableTransports/obfs4proxy
+ tar --strip-components=4 -xf $rootdir/[% c('input_files_by_name/obfs4-' _ arch) %]
+
+ # Extract snowflake from TorBrowser/Tor/PluggableTransports/snowflake
+ tar --strip-components=4 -xf $rootdir/[% c('input_files_by_name/snowflake-' _ arch) %]
+
+ # Overwrite the obfs4proxy binary provided by Pluto and add Snowflake
+ [% IF arch == "armv7" -%]
+ cp obfs4proxy external/pluto/bin/armeabi-v7a/
+ cp obfs4proxy external/pluto/bin/armeabi/
+ cp snowflake-client external/pluto/bin/armeabi-v7a/
+ cp snowflake-client external/pluto/bin/armeabi/
+ [% ELSIF arch == "aarch64" -%]
+ cp obfs4proxy external/pluto/bin/arm64-v8a/
+ cp snowflake-client external/pluto/bin/arm64-v8a/
+ [% ELSE -%]
+ cp obfs4proxy external/pluto/bin/[% arch %]/
+ cp snowflake-client external/pluto/bin/[% arch %]/
+ [% END -%]
+
+ rm obfs4proxy
+ rm snowflake-client
+[% END -%]
# Build Android Libraries and Apps
gradle --offline --no-daemon -P androidplugin=3.6.0 -Dmaven.repo.local=$gradle_repo assembleRelease -x lint
diff --git a/projects/tor-onion-proxy-library/config b/projects/tor-onion-proxy-library/config
index 58aa4f6..671e988 100644
--- a/projects/tor-onion-proxy-library/config
+++ b/projects/tor-onion-proxy-library/config
@@ -20,9 +20,37 @@ input_files:
- name: '[% c("var/compiler") %]'
project: '[% c("var/compiler") %]'
- project: obfs4
- name: obfs4
+ name: obfs4-armv7
+ target_prepend:
+ - torbrowser-android-armv7
+ - project: obfs4
+ name: obfs4-aarch64
+ target_prepend:
+ - torbrowser-android-aarch64
+ - project: obfs4
+ name: obfs4-x86
+ target_prepend:
+ - torbrowser-android-x86
+ - project: obfs4
+ name: obfs4-x86_64
+ target_prepend:
+ - torbrowser-android-x86_64
+ - project: snowflake
+ name: snowflake-armv7
+ target_prepend:
+ - torbrowser-android-armv7
+ - project: snowflake
+ name: snowflake-aarch64
+ target_prepend:
+ - torbrowser-android-aarch64
+ - project: snowflake
+ name: snowflake-x86
+ target_prepend:
+ - torbrowser-android-x86
- project: snowflake
- name: snowflake
+ name: snowflake-x86_64
+ target_prepend:
+ - torbrowser-android-x86_64
- filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]'
name: gradle-dependencies
exec: '[% INCLUDE "fetch-gradle-dependencies" %]'
More information about the tbb-commits
mailing list