config 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. # vim: filetype=yaml sw=2
  2. version: '[% c("abbrev") %]'
  3. filename: 'firefox-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %]'
  4. git_hash: 'tor-browser-[% c("var/firefox_version") %]-[% c("var/torbrowser_branch") %]-1-build2'
  5. tag_gpg_id: 1
  6. git_url: https://git.torproject.org/tor-browser.git
  7. git_submodule: 1
  8. gpg_keyring: torbutton.gpg
  9. var:
  10. firefox_platform_version: 91.8.0
  11. firefox_version: '[% c("var/firefox_platform_version") %]esr'
  12. torbrowser_branch: 11.5
  13. branding_directory: 'browser/branding/alpha'
  14. copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
  15. deps:
  16. - build-essential
  17. - unzip
  18. - zip
  19. - autoconf2.13
  20. - yasm
  21. - pkg-config
  22. container:
  23. use_container: 1
  24. steps:
  25. src-tarballs:
  26. filename: 'src-[% project %]-[% c("version") %].tar.xz'
  27. version: '[% c("git_hash") %]'
  28. input_files: []
  29. var:
  30. container:
  31. use_container: 0
  32. targets:
  33. nightly:
  34. version: '[% c("abbrev") %]'
  35. list_toolchain_updates:
  36. git_url: https://github.com/mozilla/gecko-dev.git
  37. git_hash: esr91
  38. tag_gpg_id: 0
  39. input_files: []
  40. var:
  41. container:
  42. use_container: 0
  43. targets:
  44. release:
  45. var:
  46. branding_directory: 'browser/branding/official'
  47. nightly:
  48. git_hash: 'tor-browser-[% c("var/firefox_version") %]-[% c("var/torbrowser_branch") %]-1'
  49. tag_gpg_id: 0
  50. var:
  51. branding_directory: 'browser/branding/nightly'
  52. linux-x86_64:
  53. var:
  54. martools_filename: mar-tools-linux64.zip
  55. arch_deps:
  56. - libgtk2.0-dev
  57. - libgtk-3-dev
  58. - libdbus-glib-1-dev
  59. - libxt-dev
  60. - hardening-wrapper
  61. # To pass configure since ESR 31.
  62. - libpulse-dev
  63. # To pass configure since ESR 52
  64. - libx11-xcb-dev
  65. # To support Wayland mode
  66. - libdrm-dev
  67. linux-i686:
  68. var:
  69. martools_filename: mar-tools-linux32.zip
  70. sort_deps: 0
  71. arch_deps:
  72. - libgtk2.0-dev:i386
  73. - libgtk-3-dev:i386
  74. - libdbus-glib-1-dev:i386
  75. - libxt-dev:i386
  76. - hardening-wrapper
  77. # To pass configure since ESR 31.
  78. - libpulse-dev:i386
  79. # To pass configure since ESR 52
  80. - libx11-xcb-dev:i386
  81. # To support Wayland mode
  82. - libdrm-dev:i386
  83. linux-arm:
  84. var:
  85. martools_filename: mar-tools-linuxarm.zip
  86. linux-ppc64le:
  87. var:
  88. martools_filename: mar-tools-linuxppc64le.zip
  89. linux-ppc64:
  90. var:
  91. martools_filename: mar-tools-linuxppc64.zip
  92. post_pkginst: |
  93. export DEBIAN_FRONTEND=noninteractive
  94. # Host arch package required by Firefox configure script
  95. apt-get -y install --no-install-suggests --no-install-recommends libsqlite3-0
  96. # We need the ports keyring to download ppc64 packages.
  97. # Faketime is needed on gpgv since we use an old ports snapshot with an expired key.
  98. # Faketime on apt-get itself produces "invalid signature" errors.
  99. # The old ports snapshot is to minimize our glibc requirement (glibc 2.28).
  100. apt-get install -y debian-ports-archive-keyring faketime
  101. echo "deb http://snapshot.debian.org/archive/debian-ports/20190905/ sid main" > /etc/apt/sources.list.d/ports.list
  102. mv /usr/bin/gpgv /usr/bin/gpgv.orig
  103. echo 'faketime 2019-09-05 gpgv.orig $*' > /usr/bin/gpgv
  104. chmod +x /usr/bin/gpgv
  105. apt-get update -y -q
  106. # debian-ports is sid, which conflicts with our buster container. We
  107. # work around it by using apt-download to only download a subset of the
  108. # packages, and then install them with dpkg --force-depends to ignore
  109. # the conflicting package dependencies. Yes, this is stupid.
  110. PACKAGES='libgtk2.0-dev:[% c("var/arch_debian") %] libgtk-3-dev:[% c("var/arch_debian") %] libdbus-glib-1-dev:[% c("var/arch_debian") %] libxt-dev:[% c("var/arch_debian") %] libpulse-dev:[% c("var/arch_debian") %] libx11-xcb-dev:[% c("var/arch_debian") %] libgcc-8-dev:[% c("var/arch_debian") %] libstdc++-8-dev:[% c("var/arch_debian") %]'
  111. apt-get -y download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --no-pre-depends ${PACKAGES} | grep "^\w" | grep -E "^(lib|uuid|wayland|x11|zlib)" | grep -E '(x11|wayland|:[% c("var/arch_debian") %])' | grep -v -E '(sqlite|systemd)')
  112. mv /usr/bin/gpgv.orig /usr/bin/gpgv
  113. dpkg --abort-after=500 --force-depends -i *.deb || true
  114. linux-cross:
  115. var:
  116. container:
  117. use_container: 1
  118. suite: buster
  119. arch: amd64
  120. post_pkginst: |
  121. export DEBIAN_FRONTEND=noninteractive
  122. # The recommended packages produce a package conflict.
  123. apt-get -y install --no-install-suggests --no-install-recommends libgtk2.0-dev:[% c("var/arch_debian") %]
  124. apt-get -y install --no-install-suggests --no-install-recommends libgtk-3-dev:[% c("var/arch_debian") %]
  125. apt-get -y install --no-install-suggests --no-install-recommends libdbus-glib-1-dev:[% c("var/arch_debian") %]
  126. apt-get -y install --no-install-suggests --no-install-recommends libxt-dev:[% c("var/arch_debian") %]
  127. apt-get -y install --no-install-suggests --no-install-recommends libpulse-dev:[% c("var/arch_debian") %]
  128. apt-get -y install --no-install-suggests --no-install-recommends libx11-xcb-dev:[% c("var/arch_debian") %]
  129. apt-get -y install --no-install-suggests --no-install-recommends libgcc-8-dev:[% c("var/arch_debian") %]
  130. apt-get -y install --no-install-suggests --no-install-recommends libstdc++-8-dev:[% c("var/arch_debian") %]
  131. # TODO: Build gcc+stdlib from source.
  132. arch_deps:
  133. - yasm
  134. osx-x86_64:
  135. var:
  136. martools_filename: mar-tools-mac64.zip
  137. arch_deps:
  138. - python3
  139. - python3-distutils
  140. - rsync
  141. windows:
  142. var:
  143. arch_deps:
  144. - python3
  145. - python3-distutils
  146. - wine
  147. compiler: mingw-w64-clang
  148. windows-i686:
  149. var:
  150. martools_filename: mar-tools-win32.zip
  151. windows-x86_64:
  152. var:
  153. martools_filename: mar-tools-win64.zip
  154. input_files:
  155. - project: container-image
  156. - name: '[% c("var/compiler") %]'
  157. project: '[% c("var/compiler") %]'
  158. enable: '[% ! c("var/linux-cross") || c("var/linux-ppc64le") || c("var/linux-ppc64") %]'
  159. - filename: get-moz-build-date
  160. - filename: 'mozconfig-[% c("var/osname") %][% IF c("var/asan") %]-asan[% END %]'
  161. name: mozconfig
  162. - project: binutils
  163. name: binutils
  164. enable: '[% c("var/linux") %]'
  165. - filename: fix-info-plist.py
  166. enable: '[% c("var/osx") %]'
  167. - filename: linux-arm-neon.patch
  168. enable: '[% c("var/linux-arm") %]'
  169. - filename: nsis-uninstall.patch
  170. enable: '[% c("var/windows") %]'
  171. - project: rust
  172. name: rust
  173. - project: cbindgen
  174. name: cbindgen
  175. - project: wasi-sysroot
  176. name: wasi-sysroot
  177. enable: '[% c("var/rlbox") %]'
  178. - project: lucetc
  179. name: lucetc
  180. enable: '[% c("var/rlbox") %]'
  181. - project: node
  182. name: node
  183. enable: '[% ! c("var/linux-cross") %]'
  184. - project: node
  185. name: node
  186. enable: '[% c("var/linux-cross") %]'
  187. target:
  188. - '[% c("var/channel") %]'
  189. - 'torbrowser-linux-x86_64'
  190. - project: nasm
  191. name: nasm
  192. enable: '[% ! c("var/linux-cross") %]'
  193. - project: nasm
  194. name: nasm
  195. enable: '[% c("var/linux-cross") %]'
  196. target:
  197. - '[% c("var/channel") %]'
  198. - 'torbrowser-linux-x86_64'
  199. - project: python
  200. name: python
  201. enable: '[% c("var/linux") %]'
  202. - project: clang
  203. name: clang
  204. enable: '[% ! c("var/linux-cross") %]'
  205. - project: clang
  206. name: clang
  207. enable: '[% c("var/linux-cross") %]'
  208. target:
  209. - '[% c("var/channel") %]'
  210. - 'torbrowser-linux-x86_64'
  211. - project: gcc
  212. name: gcc-host
  213. enable: '[% c("var/linux-cross") %]'
  214. target:
  215. - '[% c("var/channel") %]'
  216. - 'torbrowser-linux-x86_64'
  217. - project: fxc2
  218. name: fxc2
  219. enable: '[% c("var/windows") %]'
  220. target_prepend:
  221. - torbrowser-windows-x86_64
  222. - name: mingw-w64
  223. project: mingw-w64
  224. enable: '[% c("var/windows") %]'
  225. - filename: abicheck.cc
  226. enable: '[% c("var/linux") %]'
  227. - filename: start-firefox
  228. enable: '[% c("var/linux") %]'
  229. - project: tor-launcher
  230. name: tor-launcher
  231. - filename: namecoin-torbutton.patch
  232. enable: '[% c("var/namecoin") %]'
  233. # TorButton patch authored by Arthur Edelstein, from https://github.com/arthuredelstein/torbutton/ branch 2.1.10-namecoin
  234. - filename: namecoin-etld.patch
  235. enable: '[% c("var/namecoin") %]'