Pier Angelo Vendrame pushed to branch main at The Tor Project / Applications / tor-browser-build
Commits:
-
fe08aea2
by Pier Angelo Vendrame at 2024-09-10T09:54:59+02:00
-
d057d3b5
by Pier Angelo Vendrame at 2024-09-10T09:55:04+02:00
9 changed files:
- projects/browser/config
- projects/geckoview/build
- + projects/geckoview/build_ac_fenix
- projects/geckoview/build_apk
- projects/geckoview/build_common
- projects/geckoview/config
- projects/geckoview/gradle-dependencies-list.txt
- projects/tor-expert-bundle-aar/build
- projects/tor-expert-bundle-aar/config
Changes:
... | ... | @@ -90,7 +90,11 @@ input_files: |
90 | 90 | - project: geckoview
|
91 | 91 | name: fenix
|
92 | 92 | pkg_type: build_apk
|
93 | - enable: '[% c("var/android") %]'
|
|
93 | + enable: '[% c("var/android") && !c("var/android_single_arch") %]'
|
|
94 | + - project: geckoview
|
|
95 | + name: fenix
|
|
96 | + pkg_type: build
|
|
97 | + enable: '[% c("var/android") && c("var/android_single_arch") %]'
|
|
94 | 98 | - project: tor-expert-bundle
|
95 | 99 | name: tor-expert-bundle
|
96 | 100 | enable: '[% c("var/tor-browser") %]'
|
... | ... | @@ -43,29 +43,14 @@ echo "Starting ./mach configure $(date)" |
43 | 43 | echo "Starting ./mach build $(date)"
|
44 | 44 | ./mach build --verbose
|
45 | 45 | |
46 | +echo "Build finished, copying the AAR to the to the destination directory $(date)"
|
|
47 | + |
|
46 | 48 | [% IF !c("var/android_single_arch") -%]
|
47 | 49 | mkdir "$distdir/[% project %]"
|
48 | 50 | # We don't want the debug or "exoplayer" .aars, but the .aar that has `omni` in its name.
|
49 | 51 | find obj-* -type f -name geckoview*omni*.aar -exec cp {} $distdir/[% project %] \;
|
50 | 52 | [% ELSE -%]
|
51 | - # For single-arch builds, we want to fake a fat aar anyway, to avoid having
|
|
52 | - # arch suffixes in filenames, or having to rename files.
|
|
53 | - cat >> mozconfig-android-all << 'MOZCONFIG_EOF'
|
|
54 | -ac_add_options --enable-update-channel=[% c("var/variant") %]
|
|
55 | -ac_add_options --with-base-browser-version=[% c("var/torbrowser_version") %]
|
|
56 | -export MOZ_INCLUDE_SOURCE_INFO=1
|
|
57 | -export MOZ_SOURCE_REPO="[% c('var/gitlab_project') %]"
|
|
58 | -export MOZ_SOURCE_CHANGESET=[% c("var/git_commit") %]
|
|
59 | -MOZCONFIG_EOF
|
|
60 | - |
|
61 | - echo "Starting the creation of the fake fat AAR $(date)"
|
|
62 | - pushd tools/geckoview
|
|
63 | - touch android-env.sh
|
|
64 | - make fataar ARCHS="[% c('arch') %]"
|
|
65 | - popd
|
|
66 | - MOZCONFIG=mozconfig-android-all ./mach gradle \
|
|
67 | - geckoview:publishWithGeckoBinariesDebugPublicationToMavenLocal \
|
|
68 | - exoplayer2:publishDebugPublicationToMavenLocal
|
|
53 | +[% INCLUDE 'build_ac_fenix' %]
|
|
69 | 54 | [% END -%]
|
70 | 55 | |
71 | 56 | echo "Starting to package artifacts $(date)"
|
1 | +[% IF c('var/has_l10n') -%]
|
|
2 | + echo "Injecting the Firefox's localization to GV $(date)"
|
|
3 | + supported_locales="[% tmpl(c('var/locales_mobile').join(' ')).replace('-r', '-').replace('in', 'id').replace('iw', 'he') %]"
|
|
4 | + l10ncentral="$HOME/.mozbuild/l10n-central"
|
|
5 | + mkdir "$l10ncentral"
|
|
6 | + for tarball in $rootdir/[% c('input_files_by_name/firefox-l10n') %]/*; do
|
|
7 | + tar -C "$l10ncentral" -xf "$tarball"
|
|
8 | + done
|
|
9 | + |
|
10 | + # Do not setup our localization files, as we do not provide any frontend
|
|
11 | + # through GeckoView.
|
|
12 | + |
|
13 | + # No quotes on purpose, to pass each locale as an additional argument.
|
|
14 | + ./mach package-multi-locale --locales en-US $supported_locales
|
|
15 | +[% END -%]
|
|
16 | + |
|
17 | +echo "Building Android Components $(date)"
|
|
18 | +pushd mobile/android/android-components
|
|
19 | +gradle $GRADLE_FLAGS assembleGecko -x lint
|
|
20 | +popd
|
|
21 | + |
|
22 | +# The build might fail with "file exists" otherwise.
|
|
23 | +rm -rf /var/tmp/dist/android-toolchain/gradle/glean/pythonenv
|
|
24 | + |
|
25 | +echo "Building Fenix $(date)"
|
|
26 | +pushd mobile/android/fenix
|
|
27 | + |
|
28 | +cp -a $rootdir/[% c('input_files_by_name/tor-expert-bundle-aar') %]/tor-expert-bundle.aar app/
|
|
29 | + |
|
30 | +# Use the Android Components we have just built
|
|
31 | +echo autoPublish.android-components.dir=../android-components > local.properties
|
|
32 | + |
|
33 | +[% IF c('var/has_l10n') -%]
|
|
34 | + tar -C $distdir -xf $rootdir/[% c('input_files_by_name/translation-fenix') %]
|
|
35 | + # Add our localized strings
|
|
36 | + supported_locales="[% tmpl(c('var/locales_mobile').join(' ')) %]"
|
|
37 | + for lang in $supported_locales; do
|
|
38 | + cp "/var/tmp/dist/translation-fenix/$lang/torbrowser_strings.xml" "app/src/main/res/values-$lang/"
|
|
39 | + done
|
|
40 | +[% END -%]
|
|
41 | + |
|
42 | +# Bug 40485: Inject deterministic build date into Glean.
|
|
43 | +echo 'ext.gleanBuildDate = "0"' >> app/build.gradle
|
|
44 | + |
|
45 | +variant='[% c("var/variant") %]'
|
|
46 | +version_name="[% c('var/torbrowser_version') %] ([% c('var/geckoview_version') %])"
|
|
47 | + |
|
48 | +gradle $GRADLE_FLAGS -PversionName="$version_name" "assemble$variant"
|
|
49 | + |
|
50 | +echo "Build finished, copying the APK(s) to the destination directory $(date)"
|
|
51 | + |
|
52 | +mkdir $distdir/[% project %]
|
|
53 | +cp app/build/outputs/apk/fenix/$variant/*.apk $distdir/[% project %]
|
|
54 | + |
|
55 | +popd
|
|
56 | + |
1 | 1 | #!/bin/bash
|
2 | 2 | [% INCLUDE 'build_common' %]
|
3 | 3 | |
4 | -tar -C $distdir -xf $rootdir/[% c('input_files_by_name/translation-fenix') %]
|
|
5 | - |
|
6 | -tar -xf [% c('input_files_by_name/glean-wheels') %]
|
|
7 | -export GLEAN_PYTHON_WHEELS_DIR=$rootdir/glean-wheels
|
|
4 | +echo "Starting the creation of the fat AAR $(date)"
|
|
8 | 5 | |
9 | 6 | tar -C $builddir -xf [% c('input_files_by_name/geckoview_armv7') %]
|
10 | 7 | tar -C $builddir -xf [% c('input_files_by_name/geckoview_aarch64') %]
|
... | ... | @@ -29,18 +26,6 @@ export MOZ_SOURCE_REPO="[% c('var/gitlab_project') %]" |
29 | 26 | export MOZ_SOURCE_CHANGESET=[% c("var/git_commit") %]
|
30 | 27 | MOZCONFIG_EOF
|
31 | 28 | |
32 | -[% IF c("var/has_l10n") -%]
|
|
33 | - supported_locales="[% tmpl(c('var/locales_mobile').join(' ')).replace('-r', '-').replace('in', 'id').replace('iw', 'he') %]"
|
|
34 | - l10ncentral="$HOME/.mozbuild/l10n-central"
|
|
35 | - mkdir "$l10ncentral"
|
|
36 | - for tarball in $rootdir/[% c('input_files_by_name/firefox-l10n') %]/*; do
|
|
37 | - tar -C "$l10ncentral" -xf "$tarball"
|
|
38 | - done
|
|
39 | - |
|
40 | - # Do not setup our localization files, as we do not provide any frontend
|
|
41 | - # through GeckoView.
|
|
42 | -[% END -%]
|
|
43 | - |
|
44 | 29 | # We still need to specify --tor-browser-version due to bug 34005.
|
45 | 30 | ./mach configure \
|
46 | 31 | --with-base-browser-version=[% c("var/torbrowser_version") %] \
|
... | ... | @@ -49,43 +34,7 @@ MOZCONFIG_EOF |
49 | 34 | |
50 | 35 | ./mach build --verbose
|
51 | 36 | |
52 | -[% IF c('var/has_l10n') -%]
|
|
53 | - # No quotes on purpose, to pass each locale as an additional argument.
|
|
54 | - ./mach package-multi-locale --locales en-US $supported_locales
|
|
55 | -[% END -%]
|
|
56 | - |
|
57 | -pushd mobile/android/android-components
|
|
58 | -gradle $GRADLE_FLAGS assembleGecko -x lint
|
|
59 | -popd
|
|
60 | - |
|
61 | -# The build might fail with "file exists" otherwise.
|
|
62 | -rm -rf /var/tmp/dist/android-toolchain/gradle/glean/pythonenv
|
|
63 | - |
|
64 | -pushd mobile/android/fenix
|
|
65 | - |
|
66 | -cp -a $rootdir/[% c('input_files_by_name/tor-expert-bundle-aar') %]/tor-expert-bundle.aar app/
|
|
67 | - |
|
68 | -# Use the Android Components we have just built
|
|
69 | -echo autoPublish.android-components.dir=../android-components > local.properties
|
|
70 | - |
|
71 | -# Add our localized strings
|
|
72 | -supported_locales="[% tmpl(c('var/locales_mobile').join(' ')) %]"
|
|
73 | -for lang in $supported_locales; do
|
|
74 | - cp "/var/tmp/dist/translation-fenix/$lang/torbrowser_strings.xml" "app/src/main/res/values-$lang/"
|
|
75 | -done
|
|
76 | - |
|
77 | -# Bug 40485: Inject deterministic build date into Glean.
|
|
78 | -echo 'ext.gleanBuildDate = "0"' >> app/build.gradle
|
|
79 | - |
|
80 | -variant='[% c("var/variant") %]'
|
|
81 | -version_name="[% c('var/torbrowser_version') %] ([% c('var/geckoview_version') %])"
|
|
82 | - |
|
83 | -gradle $GRADLE_FLAGS -PversionName="$version_name" "assemble$variant"
|
|
84 | - |
|
85 | -mkdir $distdir/[% project %]
|
|
86 | -cp app/build/outputs/apk/fenix/$variant/*.apk $distdir/[% project %]
|
|
87 | - |
|
88 | -popd
|
|
37 | +[% INCLUDE 'build_ac_fenix' %]
|
|
89 | 38 | |
90 | 39 | cd $distdir/
|
91 | 40 | [% c('tar', {
|
... | ... | @@ -37,6 +37,9 @@ cp -rl $gradle_repo/dl/android/maven2/* $gradle_repo || true |
37 | 37 | cp -rl $gradle_repo/m2/* $gradle_repo || true
|
38 | 38 | cp -rl $gradle_repo/maven2/* $gradle_repo || true
|
39 | 39 | |
40 | +tar -xf [% c('input_files_by_name/glean-wheels') %]
|
|
41 | +export GLEAN_PYTHON_WHEELS_DIR=$rootdir/glean-wheels
|
|
42 | + |
|
40 | 43 | tar -xf [% c('input_files_by_name/oss-licenses-plugin') %]
|
41 | 44 | cp -rl oss-licenses-plugin/. $gradle_repo
|
42 | 45 |
... | ... | @@ -36,7 +36,7 @@ var: |
36 | 36 | - openjdk-17-jdk-headless
|
37 | 37 | # this should be updated when the list of gradle dependencies is changed
|
38 | 38 | # see doc/how-to-create-gradle-dependencies-list.txt
|
39 | - gradle_dependencies_version: 14
|
|
39 | + gradle_dependencies_version: 15
|
|
40 | 40 | gradle_version: 8.8
|
41 | 41 | glean_parser: 14.0.1
|
42 | 42 | variant: beta
|
... | ... | @@ -105,6 +105,7 @@ steps: |
105 | 105 | - name: translation-fenix
|
106 | 106 | project: translation
|
107 | 107 | pkg_type: fenix
|
108 | + enable: '[% c("var/has_l10n") %]'
|
|
108 | 109 | - URL: '[% pc("glean", "var/glean_wheels_url/" _ c("var/glean_parser"), { error_if_undef => 1 }) %]'
|
109 | 110 | name: glean-wheels
|
110 | 111 | sha256sum: '[% pc("glean", "var/glean_wheels_sha256sum/" _ c("var/glean_parser"), { error_if_undef => 1 }) %]'
|
... | ... | @@ -150,5 +151,18 @@ input_files: |
150 | 151 | - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]'
|
151 | 152 | name: gradle-dependencies
|
152 | 153 | exec: '[% INCLUDE "fetch-gradle-dependencies" %]'
|
154 | + - URL: '[% pc("glean", "var/glean_wheels_url/" _ c("var/glean_parser"), { error_if_undef => 1 }) %]'
|
|
155 | + name: glean-wheels
|
|
156 | + sha256sum: '[% pc("glean", "var/glean_wheels_sha256sum/" _ c("var/glean_parser"), { error_if_undef => 1 }) %]'
|
|
153 | 157 | - project: oss-licenses-plugin
|
154 | 158 | name: oss-licenses-plugin
|
159 | + - name: tor-expert-bundle-aar
|
|
160 | + project: tor-expert-bundle-aar
|
|
161 | + enable: '[% c("var/android_single_arch") %]'
|
|
162 | + - project: firefox-l10n
|
|
163 | + name: firefox-l10n
|
|
164 | + enable: '[% c("var/android_single_arch") && c("var/has_l10n") %]'
|
|
165 | + - name: translation-fenix
|
|
166 | + project: translation
|
|
167 | + pkg_type: fenix
|
|
168 | + enable: '[% c("var/android_single_arch") && c("var/has_l10n") %]' |
... | ... | @@ -2907,3 +2907,25 @@ fd64e97234d4c056018ed5ab1e22932bfe5a31b8d80ab9375b6b7b9dfa7ed031 | https://maven |
2907 | 2907 | 9f40ab0b8cf4e7cb0f593493c2ed96e7155d0e91eb592407597ecd61e2d5a054 | https://maven.google.com/androidx/compose/runtime/runtime/1.6.7/runtime-1.6.7.jar
|
2908 | 2908 | 3018ecf7ef0302f1c2492e4c627ae36b763167779b4595fa89331553f5b0c51a | https://maven.google.com/androidx/compose/material/material-ripple/1.6.7/material-ripple-1.6.7.jar
|
2909 | 2909 | 4e75469751c9d4c464c7d06af283b9737693c20bc4aaf657630bb294c27bbff1 | https://maven.google.com/androidx/compose/foundation/foundation-layout/1.6.7/foundation-layout-1.6.7.jar
|
2910 | +74c0e3f8c3df0b1d32ab9d839448c914586d3e8479611e4386fecfa6b3f0a26b | https://repo1.maven.org/maven2/com/squareup/okhttp3/okhttp-urlconnection/4.12.0/okhttp-urlconnection-4.12.0.jar
|
|
2911 | +a99cf993825e5a2ff12f50973398e7c9fc570055368bdf1026a79efcfb5e6d72 | https://repo1.maven.org/maven2/com/squareup/okhttp3/okhttp-urlconnection/4.12.0/okhttp-urlconnection-4.12.0.pom
|
|
2912 | +b88186fde75edc3871c5e785c112006dfdd670abba1bb50cdb669fd32291f411 | https://repo1.maven.org/maven2/com/squareup/leakcanary/leakcanary-android-instrumentation/2.14/leakcanary-android-instrumentation-2.14.aar
|
|
2913 | +db2f190ebcb2d5d2d5fdb535907df5ab0df0854db49186409ba51c7942441d96 | https://repo1.maven.org/maven2/com/squareup/leakcanary/leakcanary-android-instrumentation/2.14/leakcanary-android-instrumentation-2.14.pom
|
|
2914 | +15848fb56db32f4c7cdc72b324003183d52a4884d6bf09be708ac7f587d139b5 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-common/2.3.1/lifecycle-common-2.3.1.jar
|
|
2915 | +8cd23d889a14095c6ce16840d29b1a6388fa5e115144c1309d4d6d469c1bc351 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-common/2.3.1/lifecycle-common-2.3.1.pom
|
|
2916 | +67359f609dfc2bf65da1270b23033f856064ec279f058e0a70c715f7c9003031 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-livedata/2.6.2/lifecycle-livedata-2.6.2.aar
|
|
2917 | +d7c9e019cf68779387481877878f6c499d1786b85f2c0480e9264dd5097c51c0 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-livedata/2.6.2/lifecycle-livedata-2.6.2.pom
|
|
2918 | +0157de61a2064047896a058080f3fd67ba57ad9a94857b3f7a363660243e3f90 | https://maven.google.com/androidx/annotation/annotation-experimental/1.1.0/annotation-experimental-1.1.0.aar
|
|
2919 | +550a6601e1af47cf99501cc6cc15d1ebe9cef17b51e5dd58b6ab6c23568ef7a9 | https://maven.google.com/androidx/annotation/annotation-experimental/1.1.0/annotation-experimental-1.1.0.pom
|
|
2920 | +9029262bddce116e6d02be499e4afdba21f24c239087b76b3b57d7e98b490a36 | https://maven.google.com/androidx/annotation/annotation/1.2.0/annotation-1.2.0.jar
|
|
2921 | +62fb6dca2777efe08e7077d6b872d69110619df7fc21c99a6f54066499cc0383 | https://maven.google.com/androidx/annotation/annotation/1.2.0/annotation-1.2.0.pom
|
|
2922 | +4867fd5279742fba8388821930cb2affe06d81a52814e7e41e70392ea0ef887c | https://maven.google.com/androidx/lifecycle/lifecycle-runtime/2.6.2/lifecycle-runtime-2.6.2.aar
|
|
2923 | +8175255546e2a5f510865f84ace680660954730240b1905d9175b4345beda977 | https://maven.google.com/androidx/lifecycle/lifecycle-runtime/2.6.2/lifecycle-runtime-2.6.2.pom
|
|
2924 | +7bc7dcbab17636ec076f12afe4d02671265c389457b1b366b37a0e8cb91e2da0 | https://maven.google.com/androidx/lifecycle/lifecycle-viewmodel-savedstate/2.6.2/lifecycle-viewmodel-savedstate-2.6.2.aar
|
|
2925 | +7fc854440644cf52c35894d58d946b208e42769e8517d71a5efcba17865432de | https://maven.google.com/androidx/lifecycle/lifecycle-viewmodel-savedstate/2.6.2/lifecycle-viewmodel-savedstate-2.6.2.pom
|
|
2926 | +2256780a3cff4a1e57fbb3d442557c17dc363ab8af105bcaf5261d8e2d5db949 | https://maven.google.com/androidx/lifecycle/lifecycle-livedata-core/2.6.2/lifecycle-livedata-core-2.6.2.aar
|
|
2927 | +1faf8ebf53f28b2f0ae2c2095371ae67d0ca16ac328fce7f163609a43214b5a4 | https://maven.google.com/androidx/lifecycle/lifecycle-livedata-core/2.6.2/lifecycle-livedata-core-2.6.2.pom
|
|
2928 | +e4ff4338999e1c6c9c724719f5d4aa7dd61bf6f545d5256a27a9d375df9f2330 | https://maven.google.com/androidx/lifecycle/lifecycle-viewmodel/2.6.2/lifecycle-viewmodel-2.6.2.aar
|
|
2929 | +a9fb0b39a8360beef7bdc8f3953d4d78f3d85304fc80adac3c8eaf530d758050 | https://maven.google.com/androidx/lifecycle/lifecycle-viewmodel/2.6.2/lifecycle-viewmodel-2.6.2.pom
|
|
2930 | +f34831b6c71cd844e1d35d1be49d5e79447c5ab856346531b1e8676fda7374b1 | https://maven.google.com/androidx/lifecycle/lifecycle-common/2.6.2/lifecycle-common-2.6.2.jar
|
|
2931 | +57304cdac4da289a6ecdd0738e16b1d8858f1ef8e9fabe2d65a963719fd81dba | https://maven.google.com/androidx/lifecycle/lifecycle-common/2.6.2/lifecycle-common-2.6.2.pom |
... | ... | @@ -7,8 +7,12 @@ mkdir -p /var/tmp/build $distdir |
7 | 7 | mkdir tor-expert-bundle-aar
|
8 | 8 | cd tor-expert-bundle-aar
|
9 | 9 | |
10 | -[% FOREACH arch = ['armv7', 'aarch64', 'x86', 'x86_64'] -%]
|
|
11 | - unzip -o $rootdir/[% c('input_files_by_name/tor-expert-bundle-' _ arch) %]/tor-expert-bundle-[% arch %].aar
|
|
10 | +[% IF c("var/android_single_arch") -%]
|
|
11 | + unzip -o $rootdir/[% c('input_files_by_name/tor-expert-bundle') %]/tor-expert-bundle-[% c("arch") %].aar
|
|
12 | +[% ELSE -%]
|
|
13 | + [% FOREACH arch = ['armv7', 'aarch64', 'x86', 'x86_64'] -%]
|
|
14 | + unzip -o $rootdir/[% c('input_files_by_name/tor-expert-bundle-' _ arch) %]/tor-expert-bundle-[% arch %].aar
|
|
15 | + [% END -%]
|
|
12 | 16 | [% END -%]
|
13 | 17 | |
14 | -jar -cvf $distdir/tor-expert-bundle.aar * |
|
\ No newline at end of file | ||
18 | +jar -cvf $distdir/tor-expert-bundle.aar * |
... | ... | @@ -12,15 +12,22 @@ input_files: |
12 | 12 | name: tor-expert-bundle-armv7
|
13 | 13 | target_replace:
|
14 | 14 | '^torbrowser-(?!testbuild).*': 'torbrowser-android-armv7'
|
15 | + enable: '[% !c("var/android_single_arch") %]'
|
|
15 | 16 | - project: tor-expert-bundle
|
16 | 17 | name: tor-expert-bundle-aarch64
|
17 | 18 | target_replace:
|
18 | 19 | '^torbrowser-(?!testbuild).*': 'torbrowser-android-aarch64'
|
20 | + enable: '[% !c("var/android_single_arch") %]'
|
|
19 | 21 | - project: tor-expert-bundle
|
20 | 22 | name: tor-expert-bundle-x86
|
21 | 23 | target_replace:
|
22 | 24 | '^torbrowser-(?!testbuild).*': 'torbrowser-android-x86'
|
25 | + enable: '[% !c("var/android_single_arch") %]'
|
|
23 | 26 | - project: tor-expert-bundle
|
24 | 27 | name: tor-expert-bundle-x86_64
|
25 | 28 | target_replace:
|
26 | 29 | '^torbrowser-(?!testbuild).*': 'torbrowser-android-x86_64'
|
30 | + enable: '[% !c("var/android_single_arch") %]'
|
|
31 | + - project: tor-expert-bundle
|
|
32 | + name: tor-expert-bundle
|
|
33 | + enable: '[% c("var/android_single_arch") %]' |