config 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. # vim: filetype=yaml sw=2
  2. version: '[% c("abbrev") %]'
  3. filename: 'geckoview-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
  4. git_hash: 'tor-browser-[% c("var/geckoview_version") %]-[% c("var/torbrowser_branch") %]-build[% c("var/browser_build") %]'
  5. tag_gpg_id: 1
  6. git_url: https://gitlab.torproject.org/tpo/applications/tor-browser.git
  7. git_submodule: 1
  8. gpg_keyring:
  9. - pierov.gpg
  10. - richard.gpg
  11. container:
  12. use_container: 1
  13. var:
  14. geckoview_version: 102.6.0esr
  15. torbrowser_branch: 12.0-1
  16. browser_build: 2
  17. copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
  18. deps:
  19. - build-essential
  20. - unzip
  21. - zip
  22. - autoconf2.13
  23. - yasm
  24. - python3
  25. - python3-distutils
  26. - pkg-config
  27. - openjdk-11-jdk-headless
  28. # this should be updated when the list of gradle dependencies is changed
  29. # see doc/how-to-create-gradle-dependencies-list.txt
  30. gradle_dependencies_version: 11
  31. gradle_version: 7.3
  32. steps:
  33. merge_aars:
  34. filename: 'geckoview-[% c("version") %]-[% c("var/build_id") %].tar.gz'
  35. version: '[% c("abbrev") %]'
  36. merge_aars: |
  37. #!/bin/bash
  38. [% c("var/set_default_env") -%]
  39. [% pc(c('var/compiler'), 'var/setup', {
  40. compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')),
  41. gradle_tarfile => c("input_files_by_name/gradle"),
  42. }) %]
  43. distdir=/var/tmp/dist
  44. builddir=/var/tmp/build
  45. mkdir -p /var/tmp/build
  46. mkdir -p $distdir/[% project %]
  47. cat > get-moz-build-date << "EOF"
  48. [% INCLUDE "get-moz-build-date" %]
  49. EOF
  50. tar -C $distdir -xf [% c('input_files_by_name/node') %]
  51. export PATH="/var/tmp/dist/node/bin:$PATH"
  52. tar -C $builddir -xf [% c('input_files_by_name/geckoview_armv7') %]
  53. tar -C $builddir -xf [% c('input_files_by_name/geckoview_aarch64') %]
  54. tar -C $builddir -xf [% c('input_files_by_name/geckoview_x86') %]
  55. tar -C $builddir -xf [% c('input_files_by_name/geckoview_x86_64') %]
  56. tar -C $builddir -xf [% project %]-[% c('version') %].tar.gz
  57. # Specify the architectures we want to merge
  58. export MOZ_ANDROID_FAT_AAR_ARCHITECTURES=armeabi-v7a,arm64-v8a,x86,x86_64
  59. export MOZ_ANDROID_FAT_AAR_ARMEABI_V7A=$builddir/geckoview/*armeabi-v7a*.aar
  60. export MOZ_ANDROID_FAT_AAR_ARM64_V8A=$builddir/geckoview/*arm64-v8a*.aar
  61. # Specifying just "x86" is not differentiating enough
  62. export MOZ_ANDROID_FAT_AAR_X86=$builddir/geckoview/*x86-*.aar
  63. export MOZ_ANDROID_FAT_AAR_X86_64=$builddir/geckoview/*x86_64*.aar
  64. cd $builddir/[% project %]-[% c("version") %]
  65. ln -s mozconfig-android-all .mozconfig
  66. echo 'mk_add_options MOZ_PARALLEL_BUILD=[% c("num_procs") %]' >> .mozconfig
  67. eval $(perl $rootdir/get-moz-build-date [% c("var/copyright_year") %] [% c("var/torbrowser_version") %])
  68. if [ -z $MOZ_BUILD_DATE ]
  69. then
  70. echo "MOZ_BUILD_DATE is not set"
  71. exit 1
  72. fi
  73. export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
  74. gradle_repo=/var/tmp/dist/gradle-dependencies
  75. export GRADLE_MAVEN_REPOSITORIES="file://$gradle_repo","file://$gradle_repo/maven2"
  76. export GRADLE_FLAGS="--no-daemon --offline"
  77. mv $rootdir/[% c('input_files_by_name/gradle-dependencies') %] $gradle_repo
  78. cp -r $gradle_repo/m2/* $gradle_repo
  79. # We unbreak mach, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1656993.
  80. export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system
  81. # Create .mozbuild to avoid interactive prompt in configure
  82. mkdir "$HOME/.mozbuild"
  83. # We still need to specify --tor-browser-version due to bug 34005.
  84. ./mach configure \
  85. --with-tor-browser-version=[% c("var/torbrowser_version") %] \
  86. [% IF !c("var/rlbox") -%]--without-wasm-sandboxed-libraries[% END %]
  87. ./mach build --verbose
  88. find obj-* -regex '.*geckoview.*omni.*\(aar\|pom\)' -exec cp {} $distdir/[% project %] \;
  89. cd $distdir/
  90. [% c('tar', {
  91. tar_src => [ project ],
  92. tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
  93. }) %]
  94. input_files:
  95. - project: container-image
  96. pkg_type: build
  97. - name: '[% c("var/compiler") %]'
  98. project: '[% c("var/compiler") %]'
  99. pkg_type: build
  100. - project: gradle
  101. name: gradle
  102. pkg_type: build
  103. - project: node
  104. name: node
  105. pkg_type: build
  106. - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]'
  107. name: gradle-dependencies
  108. exec: '[% INCLUDE "fetch-gradle-dependencies" %]'
  109. - name: geckoview_armv7
  110. project: geckoview
  111. pkg_type: build
  112. target_prepend:
  113. - torbrowser-android-armv7
  114. - name: geckoview_aarch64
  115. project: geckoview
  116. pkg_type: build
  117. target_prepend:
  118. - torbrowser-android-aarch64
  119. - name: geckoview_x86
  120. project: geckoview
  121. pkg_type: build
  122. target_prepend:
  123. - torbrowser-android-x86
  124. - name: geckoview_x86_64
  125. project: geckoview
  126. pkg_type: build
  127. target_prepend:
  128. - torbrowser-android-x86_64
  129. list_toolchain_updates:
  130. git_url: https://github.com/mozilla/gecko-dev.git
  131. git_hash: esr102
  132. tag_gpg_id: 0
  133. input_files: []
  134. container:
  135. use_container: 0
  136. targets:
  137. nightly:
  138. git_hash: 'tor-browser-[% c("var/geckoview_version") %]-[% c("var/torbrowser_branch") %]-1'
  139. tag_gpg_id: 0
  140. input_files:
  141. - project: container-image
  142. - name: '[% c("var/compiler") %]'
  143. project: '[% c("var/compiler") %]'
  144. - project: gradle
  145. name: gradle
  146. - project: binutils
  147. name: binutils
  148. - project: rust
  149. name: rust
  150. - project: cbindgen
  151. name: cbindgen
  152. - project: node
  153. name: node
  154. - project: nasm
  155. name: nasm
  156. - project: clang
  157. name: clang
  158. - project: 'compiler-rt'
  159. name: 'compiler-rt'
  160. - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]'
  161. name: gradle-dependencies
  162. exec: '[% INCLUDE "fetch-gradle-dependencies" %]'