config 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. # vim: filetype=yaml sw=2
  2. filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
  3. version: '[% c("var/current_version") %]'
  4. var:
  5. current_version: 1.43.0
  6. previous_version: 1.42.0
  7. container:
  8. use_container: 1
  9. targets:
  10. ff91esr:
  11. var:
  12. current_version: 1.53.0
  13. previous_version: 1.52.0
  14. android:
  15. var:
  16. arch_deps:
  17. - libssl-dev
  18. - pkg-config
  19. - zlib1g-dev
  20. configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=x86_64-unknown-linux-gnu,armv7-linux-androideabi,thumbv7neon-linux-androideabi,aarch64-linux-android,i686-linux-android,x86_64-linux-android --set=target.armv7-linux-androideabi.cc=armv7a-linux-androideabi16-clang --set=target.armv7-linux-androideabi.ar=armv7a-linux-androideabi-ar --set=target.thumbv7neon-linux-androideabi.cc=armv7a-linux-androideabi16-clang --set=target.thumbv7neon-linux-androideabi.ar=armv7a-linux-androideabi-ar --set=target.aarch64-linux-android.cc=aarch64-linux-android21-clang --set=target.aarch64-linux-android.ar=aarch64-linux-android-ar --set=target.i686-linux-android.cc=i686-linux-android16-clang --set=target.i686-linux-android.ar=i686-linux-android-ar --set=target.x86_64-linux-android.cc=x86_64-linux-android21-clang --set=target.x86_64-linux-android.ar=x86_64-linux-android-ar
  21. linux:
  22. var:
  23. deps:
  24. - libc6-dev-i386
  25. - lib32stdc++6
  26. - build-essential
  27. - python
  28. - automake
  29. - libssl-dev
  30. - pkg-config
  31. - hardening-wrapper
  32. # We use
  33. # `--enable-local-rust` to avoid downloading the required compiler during
  34. # build time
  35. #
  36. # `--enable-vendor` to avoid downloading crates during build time and just
  37. # use the ones which are shipped with the source
  38. #
  39. # `--enable-extended` to build not only rustc but cargo as well
  40. #
  41. # `--enable-llvm-static-stdcpp` to take a libstdc++ on Jessie into account
  42. # which is too old and if used gives undefined reference errors
  43. #
  44. # `--release-channel=stable` to just include stable features in the
  45. # compiler
  46. #
  47. # `--sysconfdir=etc` to avoid install failures as |make install| wants to
  48. # write to /etc otherwise
  49. #
  50. # the `target` triple to explicitly specify the architecture and platform
  51. # for the compiler/std lib. Ideally, it should not be needed unless one is
  52. # cross-compiling, but compiling `alloc_jemalloc` fails without that in a
  53. # 32bit container. "--host=x86_64-unknown-linux-gnu" is used in its
  54. # configure script in this case.
  55. # `--set=` to explicitly specify the C compiler. We need to compile the
  56. # bundled LLVM and it wants to use `cc`. However, we don't have that in
  57. # our compiled GCC resulting in weird errors due to C and C++ compiler
  58. # version mismatch. We avoid that with this configure option.
  59. configure_opt: --enable-local-rust --enable-vendor --enable-extended --enable-llvm-static-stdcpp --release-channel=stable --sysconfdir=etc --target=x86_64-unknown-linux-gnu,i686-unknown-linux-gnu[% IF c("var/linux-cross") -%],[% c("var/rust_target") %][% END -%] --set=target.x86_64-unknown-linux-gnu.cc=gcc --set=target.i686-unknown-linux-gnu.cc=gcc
  60. linux-x86_64:
  61. var:
  62. rust_target: '[% c("arch") %]-unknown-linux-gnu'
  63. linux-i686:
  64. var:
  65. rust_target: '[% c("arch") %]-unknown-linux-gnu'
  66. linux-arm:
  67. var:
  68. rust_target: armv7-unknown-linux-gnueabihf
  69. osx-x86_64:
  70. var:
  71. arch_deps:
  72. - libssl-dev
  73. - pkg-config
  74. - zlib1g-dev
  75. configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=x86_64-apple-darwin --set=target.x86_64-apple-darwin.cc=x86_64-apple-darwin-clang
  76. windows:
  77. var:
  78. arch_deps:
  79. - libssl-dev
  80. - pkg-config
  81. - zlib1g-dev
  82. configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=[% c("arch") %]-pc-windows-gnu
  83. input_files:
  84. - project: container-image
  85. - project: cmake
  86. name: cmake
  87. - project: ninja
  88. name: ninja
  89. enable: '[% c("var/ff91esr") %]'
  90. - project: '[% c("var/compiler") %]'
  91. name: '[% c("var/compiler") %]'
  92. - name: gcc-host
  93. project: gcc
  94. enable: '[% c("var/linux-cross") %]'
  95. target:
  96. - '[% c("var/channel") %]'
  97. - 'torbrowser-linux-x86_64'
  98. - URL: 'https://static.rust-lang.org/dist/rustc-[% c("var/current_version") %]-src.tar.gz'
  99. name: rust
  100. sig_ext: asc
  101. file_gpg_id: 1
  102. gpg_keyring: rust.gpg
  103. - URL: 'https://static.rust-lang.org/dist/rust-[% c("var/previous_version") %]-x86_64-unknown-linux-gnu.tar.xz'
  104. name: previous_rust
  105. sig_ext: asc
  106. file_gpg_id: 1
  107. gpg_keyring: rust.gpg
  108. - filename: unwind.patch
  109. enable: '[% c("var/windows-i686") %]'
  110. - filename: 43909.patch
  111. name: 43909
  112. enable: '[% ! c("var/ff91esr") %]'
  113. # Fix for https://github.com/rust-lang/rust/issues/86436
  114. # Taken from https://github.com/rust-lang/rust/pull/86568 (merged it 1.54.0)
  115. - filename: fix-build-1.53.0.patch
  116. enable: '[% c("var/ff91esr") %]'