Verified Commit b7d80c1d authored by Pier Angelo Vendrame's avatar Pier Angelo Vendrame 🎃
Browse files

Bug 40867: Add a project for firefox-android.

This project replaces Android Components and Fenix.
parent 301a540c
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -544,9 +544,6 @@ list_translation_updates-release:
list_translation_updates-alpha:
	$(rbm) showconf --target alpha --step list_updates translation list_updates

list_toolchain_updates-fenix: submodule-update
	$(rbm) build fenix --step list_toolchain_updates --target nightly --target torbrowser-android-armv7

list_toolchain_updates-firefox-linux: submodule-update
	$(rbm) build firefox --step list_toolchain_updates --target nightly --target torbrowser-linux-x86_64

@@ -556,15 +553,15 @@ list_toolchain_updates-firefox-windows: submodule-update
list_toolchain_updates-firefox-macos: submodule-update
	$(rbm) build firefox --step list_toolchain_updates --target nightly --target torbrowser-macos

list_toolchain_updates-android-components: submodule-update
	$(rbm) build android-components --step list_toolchain_updates --target nightly --target torbrowser-android-armv7

list_toolchain_updates-application-services: submodule-update
	$(rbm) build application-services --step list_toolchain_updates --target nightly --target torbrowser-android-armv7

list_toolchain_updates-geckoview: submodule-update
	$(rbm) build geckoview --step list_toolchain_updates --target nightly --target torbrowser-android-armv7

list_toolchain_updates-firefox-android: submodule-update
	$(rbm) build firefox-android --step list_toolchain_updates --target nightly --target torbrowser-android-armv7

create_glean_deps_tarball: submodule-update
	 $(rbm) build glean --step create_glean_deps_tarball --target alpha --target torbrowser-android-armv7

projects/android-components/build

deleted100755 → 0
+0 −84
Original line number Diff line number Diff line
#!/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/[% project %]
mkdir $distdir/[% project %]
mkdir /var/tmp/build

[% IF !c("var/fetch_gradle_dependencies") %]
  tar -C $distdir -xf [% c('input_files_by_name/geckoview') %]
  gradle_repo=$rootdir/[% c('input_files_by_name/gradle-dependencies') %]
  # This overwrites the release, beta, and nightly geckoview .aar files in our
  # gradle-dependencies directory to be sure that only the one we provide is
  # getting used when building beta/release code.
  find $gradle_repo -type f -name geckoview*omni*.aar -exec cp -f $distdir/geckoview/geckoview*omni*.aar {} \;
  cp -r $gradle_repo/dl/android/maven2/* $gradle_repo
  cp -r $gradle_repo/maven2/* $gradle_repo
  cp -r $gradle_repo/m2/* $gradle_repo
  mkdir /home/rbm/.m2
  ln -s $gradle_repo /home/rbm/.m2/repository
  # Put the Kotlin/Native compiler at the right place, see:
  # tor-browser-build#40217.
  kotlin_dir=/home/rbm/.konan
  mkdir $kotlin_dir
  find $gradle_repo -type f -name kotlin-native-prebuilt-linux*tar.gz -exec tar -C $kotlin_dir -xaf {} \;
  tar -C $distdir -xf [% c('input_files_by_name/application-services') %]
  # XXX: We could be smarter and just copy over the projects that are needed
  # according to the Gradle dependencies list.
  cp -rf $distdir/application-services/maven/org $gradle_repo
[% END %]
tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]

cd $builddir-[% c('version') %]

# Avoid call to `getGitHash()`, which will fail b/c it invokes git, which is absent in
# the build container. Instead just inject the commit hash, which we know!
sed -i 's/getGitHash()/\"[% c('abbrev') %]\"/' components/support/base/build.gradle
sed -i 's/tag = getGitHash()/tag = \"[% c('abbrev') %]\"/' publish.gradle

[% IF c("var/fetch_gradle_dependencies") %]
  # XXX: fetching deps for `assembleGeckoBeta -x lint` by using that same target
  # results in some missing dependencies for yet unknown reasons. Thus, we use
  # `assemble` instead for now.
  gradle --debug --no-daemon assemble > gradle.log 2>&1 || ( cat gradle.log; exit 1 )
  $rootdir/gen_gradle_deps_file.sh gradle.log
  mv gradle-dependencies-list.txt '[% dest_dir _ "/" _ c("filename") %]'
[% ELSE %]
  # Prepare Glean dependencies for offline build
  tar -xf $rootdir/[% c('input_files_by_name/glean') %]
  # We need to set `LC_ALL` and `LANG` to something that is not ASCII as encoding
  # otherwise `click` barfs. See: https://click.palletsprojects.com/python3/
  export LC_ALL=C.UTF-8
  export LANG=C.UTF-8
  patch -p1 < $rootdir/mavenLocal.patch

  [% c("var/set_MOZ_BUILD_DATE") %]

  # Increase the maximum memory usage, for when compiling with --disable-install-strip
  gradle_args="--offline --no-daemon -Dmaven.repo.local=$gradle_repo -Dorg.gradle.jvmargs=-Xmx8g"

  # See taskcluster/scripts/toolchain/android-gradle-dependencies.sh at line 36.
  # We hit the same problem when we run online to discover dependencies, but
  # since it works also for offline builds, we just leave it here
  gradle $gradle_args support-sync-telemetry:assemble

  gradle $gradle_args assembleGecko -x lint
  gradle $gradle_args publish

  # We only need the archives and .pom files for now.
  find components -regex '.*[% c('var/android_components_version') %].\(aar\|jar\|pom\)' -exec cp --parents {} $distdir \;

  # Package
  cd $distdir
  # Package just the maven directory structure for easier replacement of
  # Mozilla's android-components.
  find components -type d -name maven -exec cp -rf {} [% project %] \;
  [% c('tar', {
        tar_src => [ project ],
        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
    }) %]
[% END %]
+0 −92
Original line number Diff line number Diff line
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
git_hash: '[% project %]-[% c("var/android_components_version") %]-[% c("var/browser_branch") %]-build[% c("var/android_components_build") %]'
git_url: https://gitlab.torproject.org/tpo/applications/android-components.git
tag_gpg_id: 1
gpg_keyring:
  - boklm.gpg
  - dan_b.gpg
  - ma1.gpg
  - pierov.gpg
  - richard.gpg
variant: '[% IF c("var/release") %]Release[% ELSE %]Beta[% END %]'
container:
  use_container: 1

var:
  android_components_version: 102.0.14
  browser_branch: 12.5-1
  android_components_build: 2
  # This should be updated when the list of gradle dependencies is changed.
  gradle_dependencies_version: 37
  gradle_version: 7.0.2
  glean_parser: 5.0.1
  git_branch: '[% project %]-[% c("var/android_components_version") %]-[% c("var/browser_branch") %]'

targets:
  nightly:
    git_hash: '[% c("var/git_branch") %]'
    tag_gpg_id: 0

input_files:
  - project: container-image
    pkg_type: build
  - name: '[% c("var/compiler") %]'
    project: '[% c("var/compiler") %]'
    pkg_type: build
  - project: gradle
    name: gradle
    pkg_type: build
  - name: geckoview
    project: geckoview
    enable: '[% !c("var/fetch_gradle_dependencies") && c("var/android_single_arch") %]'
  - name: geckoview
    project: geckoview
    pkg_type: merge_aars
    enable: '[% !c("var/fetch_gradle_dependencies") && !c("var/android_single_arch") %]'
  - name: application-services
    project: application-services
    enable: '[% !c("var/fetch_gradle_dependencies") %]'
  - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]'
    name: gradle-dependencies
    exec: '[% INCLUDE "fetch-gradle-dependencies" %]'
    enable: '[% !c("var/fetch_gradle_dependencies") %]'
  - filename: mavenLocal.patch
    enable: '[% !c("var/fetch_gradle_dependencies") %]'
  - URL: '[% pc("glean", "var/glean_wheels_url/" _ c("var/glean_parser"), { error_if_undef => 1 }) %]'
    name: glean
    sha256sum: '[% pc("glean", "var/glean_wheels_sha256sum/" _ c("var/glean_parser"), { error_if_undef => 1 }) %]'
    enable: '[% !c("var/fetch_gradle_dependencies") %]'
  - filename: gen_gradle_deps_file.sh
    enable: '[% c("var/fetch_gradle_dependencies") %]'

steps:
  list_toolchain_updates:
    git_url: https://github.com/mozilla-mobile/android-components.git
    git_hash: releases/102.0
    #tag_gpg_id: 0
    container:
      use_container: 0
    var:
      get_glean_version: |
        #!/bin/bash
        read -d '' p << 'EOF' || true
        if (m/const\\sval\\smozilla_glean\\s=\\s"([^"]+)"/) {
          print $1;
          exit;
        }
        EOF
        perl -ne "$p" < buildSrc/src/main/java/Dependencies.kt
      glean_version: '[% exec(c("var/get_glean_version")) %]'
    input_files:
      - name: glean
        project: glean
        pkg_type: src

  get_gradle_dependencies_list:
    filename: 'gradle-dependencies-list-[% c("var/android_components_version") %].txt'
    get_gradle_dependencies_list: '[% INCLUDE build %]'
    git_hash: '[% c("var/git_branch") %]^{/Bug 40023: Stop PrivateNotificationService}'
    var:
      fetch_gradle_dependencies: 1
+0 −1294

File deleted.

Preview size limit exceeded, changes collapsed.

+0 −85
Original line number Diff line number Diff line
#!/bin/bash

# compileSdkVersion
read -d '' p << 'EOF' || true
if (m/compileSdkVersion:\\s+(.*)$/) {
  print $1;
  exit;
}
EOF
needed=$(cat .config.yml | perl -ne "$p")
current=31
check_update_needed compileSdkVersion "$needed" "$current"


# targetSdkVersion
read -d '' p << 'EOF' || true
if (m/targetSdkVersion:\\s+(.*)$/) {
  print $1;
  exit;
}
EOF
needed=$(cat .config.yml | perl -ne "$p")
current=30
check_update_needed targetSdkVersion "$needed" "$current"


# minSdkVersion
read -d '' p << 'EOF' || true
if (m/minSdkVersion:\\s+(.*)$/) {
  print $1;
  exit;
}
EOF
needed=$(cat .config.yml | perl -ne "$p")
current=21
check_update_needed minSdkVersion "$needed" "$current"


# application-services
read -d '' p << 'EOF' || true
if (m/const\\sval\\smozilla_appservices\\s=\\s"([^"]+)"/) {
  print $1;
  exit;
}
EOF
needed=$(cat buildSrc/src/main/java/Dependencies.kt | perl -ne "$p")
current='[% pc("application-services", "version") %]'
check_update_needed application-services "$needed" "$current"


# glean_parser
read -d '' p << 'EOF' || true
if (m/^\\s*"glean_parser==([^"]+)",/) {
  print $1;
  exit;
}
EOF
tar xf $rootdir/[% c('input_files_by_name/glean') %]
needed=$(cat glean-[% c("var/glean_version") %]/glean-core/python/setup.py | perl -ne "$p")
current='[% c("var/glean_parser") %]'
check_update_needed glean_parser "$needed" "$current"


# gradle
read -d '' p << 'EOF' || true
if (m|distributionUrl=https\\\\://services.gradle.org/distributions/gradle-(.*)-bin.zip|) {
  print $1;
  exit;
}
EOF
needed=$(cat gradle/wrapper/gradle-wrapper.properties | perl -ne "$p")
current='[% c("var/gradle_version") %]'
check_update_needed gradle "$needed" "$current"


# android-gradle-plugin
read -d '' p << 'EOF' || true
if (m/const\\s+val\\s+android_gradle_plugin\\s+=\\s+"([^"]+)"/) {
  print $1;
  exit;
}
EOF
needed=$(cat buildSrc/src/main/java/Dependencies.kt | perl -ne "$p")
current='7.0.0'
check_update_needed android-gradle-plugin "$needed" "$current"
Loading