Loading projects/cbindgen/build +3 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,9 @@ builddir=/var/tmp/build/[% project %] mkdir -p $distdir/[% project %] tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/rust') %] export PATH="/var/tmp/dist/rust/bin:$PATH" [% IF c("var/linux") -%] export LD_LIBRARY_PATH="/var/tmp/dist/rust/lib:$LD_LIBRARY_PATH" [% END -%] mkdir -p /var/tmp/build tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz Loading projects/rust/build +26 −6 Original line number Diff line number Diff line Loading @@ -4,16 +4,27 @@ distdir=/var/tmp/dist/[% project %] mkdir -p $distdir tar -C /var/tmp/dist -xf [% c('input_files_by_name/cmake') %] export PATH="/var/tmp/dist/cmake/bin:$PATH" tar -C /var/tmp/dist -xf [% c('input_files_by_name/ninja') %] export PATH=/var/tmp/dist/ninja:$PATH tar -C /var/tmp/dist -xf [% c('input_files_by_name/previous_rust') %] cd /var/tmp/dist/rust-[% c('var/previous_version') %]-x86_64-unknown-linux-gnu ./install.sh --prefix=$distdir-rust-old export PATH="$distdir-rust-old/bin:$PATH" tar -C /var/tmp/dist -xf [% c('input_files_by_name/binutils') %] export PATH=/var/tmp/dist/binutils/bin:$PATH tar -C /var/tmp/dist -xf [% c('input_files_by_name/rust_prebuilt') %] cd /var/tmp/dist/rust-[% c('version') %]-x86_64-unknown-linux-gnu ./install.sh --prefix=$distdir-rust-prebuilt export PATH="$distdir-rust-prebuilt/bin:$PATH" [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %] [% IF c("var/linux") || c("var/android") || c("var/windows") -%] # See the config file for more details on why we do that also on Windows tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/clang') %] export PATH=/var/tmp/dist/clang/bin:$PATH [% END -%] [% IF c("var/linux") -%] [% pc('python', 'var/setup', { python_tarfile => c('input_files_by_name/python') }) %] export LLVM_CONFIG="/var/tmp/dist/clang/bin/llvm-config" export CC=clang export CXX=clang++ export CFLAGS='--gcc-toolchain=/var/tmp/dist/gcc' export CXXFLAGS='--gcc-toolchain=/var/tmp/dist/gcc' export RUSTFLAGS="-L/var/tmp/dist/gcc/lib64" [% END -%] [% IF c("var/osx") %] Loading Loading @@ -48,6 +59,15 @@ cd build make -j[% c("num_procs") %] make install cd /var/tmp/dist [% IF c("var/linux") -%] # When we compile some Rust-only projects such as cbindgen, we do not include # the C/C++ compilers and their modern libstdc++ library. # For simplicity, we keep it also with Rust, and add it to LD_LIBRARY_PATH # if needed. cp gcc/lib64/libstdc++.so* rust/lib/ [% END -%] [% c('tar', { tar_src => [ project ], tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'), Loading projects/rust/config +29 −23 Original line number Diff line number Diff line # vim: filetype=yaml sw=2 filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz' version: '[% c("var/current_version") %]' version: '1.60.0' container: use_container: 1 var: current_version: 1.60.0 previous_version: 1.59.0 targets: android: var: current_version: 1.60.0 previous_version: 1.59.0 arch_deps: - libssl-dev - pkg-config - zlib1g-dev 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 configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --llvm-root=/var/tmp/dist/clang --set rust.jemalloc --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 linux: var: Loading @@ -39,25 +33,28 @@ targets: # # `--enable-extended` to build not only rustc but cargo as well # # `--enable-llvm-static-stdcpp` to take a libstdc++ on Jessie into account # which is too old and if used gives undefined reference errors # # `--release-channel=stable` to just include stable features in the # compiler # # `--sysconfdir=etc` to avoid install failures as |make install| wants to # write to /etc otherwise # # `--llvm-root=/var/tmp/dist/clang` to avoid building LLVM again while # building Rust # # --set rust.jemalloc to use jemalloc. This option is used also in the # prebuilt binaries, and without it the build never ends on Debian Jessie # (see tor-browser-build#40591) # # the `target` triple to explicitly specify the architecture and platform # for the compiler/std lib. Ideally, it should not be needed unless one is # cross-compiling, but compiling `alloc_jemalloc` fails without that in a # 32bit container. "--host=x86_64-unknown-linux-gnu" is used in its # configure script in this case. # `--set=` to explicitly specify the C compiler. We need to compile the # bundled LLVM and it wants to use `cc`. However, we don't have that in # our compiled GCC resulting in weird errors due to C and C++ compiler # version mismatch. We avoid that with this configure option. 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 --set=target.x86_64-unknown-linux-gnu.cc=gcc --set=target.i686-unknown-linux-gnu.cc=gcc # # Finally, we tell Rust to use some tools from LLVM, like the prebuilt # binaries do. configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --llvm-root=/var/tmp/dist/clang --set rust.jemalloc --target=x86_64-unknown-linux-gnu,i686-unknown-linux-gnu --set target.x86_64-unknown-linux-gnu.linker=clang --set target.x86_64-unknown-linux-gnu.ar=llvm-ar --set target.x86_64-unknown-linux-gnu.ranlib=llvm-ranlib --set target.i686-unknown-linux-gnu.linker=clang --set target.i686-unknown-linux-gnu.ar=llvm-ar --set target.i686-unknown-linux-gnu.ranlib=llvm-ranlib osx-x86_64: var: Loading @@ -65,7 +62,7 @@ targets: - libssl-dev - pkg-config - zlib1g-dev configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=x86_64-unknown-linux-gnu,x86_64-apple-darwin --set=target.x86_64-apple-darwin.cc=x86_64-apple-darwin-clang configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --llvm-root=/var/tmp/dist/macosx-toolchain/clang --set rust.jemalloc --target=x86_64-unknown-linux-gnu,x86_64-apple-darwin --set=target.x86_64-apple-darwin.cc=x86_64-apple-darwin-clang --set target.x86_64-unknown-linux-gnu.linker=clang --set target.x86_64-unknown-linux-gnu.ar=llvm-ar --set target.x86_64-unknown-linux-gnu.ranlib=llvm-ranlib windows: var: Loading @@ -73,23 +70,32 @@ targets: - libssl-dev - pkg-config - zlib1g-dev configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=x86_64-unknown-linux-gnu,[% c("arch") %]-pc-windows-gnu # See tor-browser-build#29320 compiler: mingw-w64 configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --llvm-root=/var/tmp/dist/clang --target=x86_64-unknown-linux-gnu,[% c("arch") %]-pc-windows-gnu --set target.x86_64-unknown-linux-gnu.linker=clang --set target.x86_64-unknown-linux-gnu.ar=llvm-ar --set target.x86_64-unknown-linux-gnu.ranlib=llvm-ranlib input_files: - project: container-image - name: binutils project: binutils - project: cmake name: cmake - project: ninja name: ninja - project: '[% c("var/compiler") %]' name: '[% c("var/compiler") %]' - URL: 'https://static.rust-lang.org/dist/rustc-[% c("var/current_version") %]-src.tar.gz' - project: clang name: clang # On Windows we the basic Clang without additional Windows stuff because we # want to be sure GCC is used to compile Rust (Rust has a hard depedency on # libgcc, and the GNU/LLVM is a tier 3 platform supported only for x86_64). # macOS does not need Clang because it comes already with its compiler. enable: '[% c("var/linux") || c("var/android") || c("var/windows") %]' - URL: 'https://static.rust-lang.org/dist/rustc-[% c("version") %]-src.tar.gz' name: rust sig_ext: asc file_gpg_id: 1 gpg_keyring: rust.gpg - URL: 'https://static.rust-lang.org/dist/rust-[% c("var/previous_version") %]-x86_64-unknown-linux-gnu.tar.xz' name: previous_rust - URL: 'https://static.rust-lang.org/dist/rust-[% c("version") %]-x86_64-unknown-linux-gnu.tar.xz' name: rust_prebuilt sig_ext: asc file_gpg_id: 1 gpg_keyring: rust.gpg Loading Loading
projects/cbindgen/build +3 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,9 @@ builddir=/var/tmp/build/[% project %] mkdir -p $distdir/[% project %] tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/rust') %] export PATH="/var/tmp/dist/rust/bin:$PATH" [% IF c("var/linux") -%] export LD_LIBRARY_PATH="/var/tmp/dist/rust/lib:$LD_LIBRARY_PATH" [% END -%] mkdir -p /var/tmp/build tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz Loading
projects/rust/build +26 −6 Original line number Diff line number Diff line Loading @@ -4,16 +4,27 @@ distdir=/var/tmp/dist/[% project %] mkdir -p $distdir tar -C /var/tmp/dist -xf [% c('input_files_by_name/cmake') %] export PATH="/var/tmp/dist/cmake/bin:$PATH" tar -C /var/tmp/dist -xf [% c('input_files_by_name/ninja') %] export PATH=/var/tmp/dist/ninja:$PATH tar -C /var/tmp/dist -xf [% c('input_files_by_name/previous_rust') %] cd /var/tmp/dist/rust-[% c('var/previous_version') %]-x86_64-unknown-linux-gnu ./install.sh --prefix=$distdir-rust-old export PATH="$distdir-rust-old/bin:$PATH" tar -C /var/tmp/dist -xf [% c('input_files_by_name/binutils') %] export PATH=/var/tmp/dist/binutils/bin:$PATH tar -C /var/tmp/dist -xf [% c('input_files_by_name/rust_prebuilt') %] cd /var/tmp/dist/rust-[% c('version') %]-x86_64-unknown-linux-gnu ./install.sh --prefix=$distdir-rust-prebuilt export PATH="$distdir-rust-prebuilt/bin:$PATH" [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %] [% IF c("var/linux") || c("var/android") || c("var/windows") -%] # See the config file for more details on why we do that also on Windows tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/clang') %] export PATH=/var/tmp/dist/clang/bin:$PATH [% END -%] [% IF c("var/linux") -%] [% pc('python', 'var/setup', { python_tarfile => c('input_files_by_name/python') }) %] export LLVM_CONFIG="/var/tmp/dist/clang/bin/llvm-config" export CC=clang export CXX=clang++ export CFLAGS='--gcc-toolchain=/var/tmp/dist/gcc' export CXXFLAGS='--gcc-toolchain=/var/tmp/dist/gcc' export RUSTFLAGS="-L/var/tmp/dist/gcc/lib64" [% END -%] [% IF c("var/osx") %] Loading Loading @@ -48,6 +59,15 @@ cd build make -j[% c("num_procs") %] make install cd /var/tmp/dist [% IF c("var/linux") -%] # When we compile some Rust-only projects such as cbindgen, we do not include # the C/C++ compilers and their modern libstdc++ library. # For simplicity, we keep it also with Rust, and add it to LD_LIBRARY_PATH # if needed. cp gcc/lib64/libstdc++.so* rust/lib/ [% END -%] [% c('tar', { tar_src => [ project ], tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'), Loading
projects/rust/config +29 −23 Original line number Diff line number Diff line # vim: filetype=yaml sw=2 filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz' version: '[% c("var/current_version") %]' version: '1.60.0' container: use_container: 1 var: current_version: 1.60.0 previous_version: 1.59.0 targets: android: var: current_version: 1.60.0 previous_version: 1.59.0 arch_deps: - libssl-dev - pkg-config - zlib1g-dev 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 configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --llvm-root=/var/tmp/dist/clang --set rust.jemalloc --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 linux: var: Loading @@ -39,25 +33,28 @@ targets: # # `--enable-extended` to build not only rustc but cargo as well # # `--enable-llvm-static-stdcpp` to take a libstdc++ on Jessie into account # which is too old and if used gives undefined reference errors # # `--release-channel=stable` to just include stable features in the # compiler # # `--sysconfdir=etc` to avoid install failures as |make install| wants to # write to /etc otherwise # # `--llvm-root=/var/tmp/dist/clang` to avoid building LLVM again while # building Rust # # --set rust.jemalloc to use jemalloc. This option is used also in the # prebuilt binaries, and without it the build never ends on Debian Jessie # (see tor-browser-build#40591) # # the `target` triple to explicitly specify the architecture and platform # for the compiler/std lib. Ideally, it should not be needed unless one is # cross-compiling, but compiling `alloc_jemalloc` fails without that in a # 32bit container. "--host=x86_64-unknown-linux-gnu" is used in its # configure script in this case. # `--set=` to explicitly specify the C compiler. We need to compile the # bundled LLVM and it wants to use `cc`. However, we don't have that in # our compiled GCC resulting in weird errors due to C and C++ compiler # version mismatch. We avoid that with this configure option. 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 --set=target.x86_64-unknown-linux-gnu.cc=gcc --set=target.i686-unknown-linux-gnu.cc=gcc # # Finally, we tell Rust to use some tools from LLVM, like the prebuilt # binaries do. configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --llvm-root=/var/tmp/dist/clang --set rust.jemalloc --target=x86_64-unknown-linux-gnu,i686-unknown-linux-gnu --set target.x86_64-unknown-linux-gnu.linker=clang --set target.x86_64-unknown-linux-gnu.ar=llvm-ar --set target.x86_64-unknown-linux-gnu.ranlib=llvm-ranlib --set target.i686-unknown-linux-gnu.linker=clang --set target.i686-unknown-linux-gnu.ar=llvm-ar --set target.i686-unknown-linux-gnu.ranlib=llvm-ranlib osx-x86_64: var: Loading @@ -65,7 +62,7 @@ targets: - libssl-dev - pkg-config - zlib1g-dev configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=x86_64-unknown-linux-gnu,x86_64-apple-darwin --set=target.x86_64-apple-darwin.cc=x86_64-apple-darwin-clang configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --llvm-root=/var/tmp/dist/macosx-toolchain/clang --set rust.jemalloc --target=x86_64-unknown-linux-gnu,x86_64-apple-darwin --set=target.x86_64-apple-darwin.cc=x86_64-apple-darwin-clang --set target.x86_64-unknown-linux-gnu.linker=clang --set target.x86_64-unknown-linux-gnu.ar=llvm-ar --set target.x86_64-unknown-linux-gnu.ranlib=llvm-ranlib windows: var: Loading @@ -73,23 +70,32 @@ targets: - libssl-dev - pkg-config - zlib1g-dev configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=x86_64-unknown-linux-gnu,[% c("arch") %]-pc-windows-gnu # See tor-browser-build#29320 compiler: mingw-w64 configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --llvm-root=/var/tmp/dist/clang --target=x86_64-unknown-linux-gnu,[% c("arch") %]-pc-windows-gnu --set target.x86_64-unknown-linux-gnu.linker=clang --set target.x86_64-unknown-linux-gnu.ar=llvm-ar --set target.x86_64-unknown-linux-gnu.ranlib=llvm-ranlib input_files: - project: container-image - name: binutils project: binutils - project: cmake name: cmake - project: ninja name: ninja - project: '[% c("var/compiler") %]' name: '[% c("var/compiler") %]' - URL: 'https://static.rust-lang.org/dist/rustc-[% c("var/current_version") %]-src.tar.gz' - project: clang name: clang # On Windows we the basic Clang without additional Windows stuff because we # want to be sure GCC is used to compile Rust (Rust has a hard depedency on # libgcc, and the GNU/LLVM is a tier 3 platform supported only for x86_64). # macOS does not need Clang because it comes already with its compiler. enable: '[% c("var/linux") || c("var/android") || c("var/windows") %]' - URL: 'https://static.rust-lang.org/dist/rustc-[% c("version") %]-src.tar.gz' name: rust sig_ext: asc file_gpg_id: 1 gpg_keyring: rust.gpg - URL: 'https://static.rust-lang.org/dist/rust-[% c("var/previous_version") %]-x86_64-unknown-linux-gnu.tar.xz' name: previous_rust - URL: 'https://static.rust-lang.org/dist/rust-[% c("version") %]-x86_64-unknown-linux-gnu.tar.xz' name: rust_prebuilt sig_ext: asc file_gpg_id: 1 gpg_keyring: rust.gpg Loading