Pier Angelo Vendrame pushed to branch main at The Tor Project / Applications / tor-browser-build

Commits:

9 changed files:

Changes:

  • projects/browser/config
    ... ... @@ -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") %]'
    

  • projects/geckoview/build
    ... ... @@ -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)"
    

  • projects/geckoview/build_ac_fenix
    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
    +

  • projects/geckoview/build_apk
    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', {
    

  • projects/geckoview/build_common
    ... ... @@ -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
     
    

  • projects/geckoview/config
    ... ... @@ -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") %]'

  • projects/geckoview/gradle-dependencies-list.txt
    ... ... @@ -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

  • projects/tor-expert-bundle-aar/build
    ... ... @@ -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 *

  • projects/tor-expert-bundle-aar/config
    ... ... @@ -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") %]'