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

Bug 40855: Update toolchains for Firefox 115 (common part)

Toolchain updates needed for all platforms.

Bug 31588 (partially): Create cargo vendor archives locally for
cbindgen.

The Rust crates we use provide a Cargo.lock. That should be enough to
make sure they always use a certain version of a dependency.
Therefore, with 115, we could try stop hosting vendor archives on
people.tpo and build them locally.
In this commit we do that for cbindgen.
In next commit we could try to do so for also other projects.
parent 34d9e212
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -583,11 +583,8 @@ get_gradle_dependencies_list-android-components: submodule-update
cargo_vendor-application-services: submodule-update
	$(rbm) build application-services --step cargo_vendor --target nightly --target torbrowser-android-armv7

cargo_vendor-cbindgen-android: submodule-update
	$(rbm) build cbindgen --step cargo_vendor --target nightly --target torbrowser-android-armv7

cargo_vendor-cbindgen: submodule-update
	$(rbm) build cbindgen --step cargo_vendor --target nightly --target torbrowser-linux-x86_64
	$(rbm) build cbindgen --step cargo_vendor --target alpha --target torbrowser-linux-x86_64

cargo_vendor-uniffi-rs: submodule-update
	$(rbm) build uniffi-rs --step cargo_vendor --target nightly --target torbrowser-linux-x86_64
+1 −1
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@ tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
# Now prepare the offline build
# Move the directory for hardcoding the path in .cargo/config
mv /var/tmp/build/[% project %]-[% c('version') %] $builddir
tar -C $builddir -xf $rootdir/[% c('input_files_by_name/cbindgen_vendor') %]
tar -C $builddir -xf $rootdir/[% c('input_files_by_name/cargo_vendor') %]
cd $builddir
mkdir .cargo
cat > .cargo/config << 'EOF'
+11 −26
Original line number Diff line number Diff line
# vim: filetype=yaml sw=2
version: '[% c("var/cbindgen_version") %]'
version: 0.24.3
git_url: https://github.com/eqrion/cbindgen
git_hash: '[% c("var/cbindgen_git_hash") %]'
filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
git_hash: f43ccfc047a1a160267f32355c5e5e7154a2665a
container:
  use_container: 1

var:
  cbindgen_version: 0.23.0
  cbindgen_git_hash: 798cfab52bced65a749443faa16990ec3a8e0cfe
  cbindgen_vendor_hash: 90fc3483753d296c6fc1a406f5cae412f7f74cd6719e9c800a2ffc6cd18b6e69
  cbindgen_vendor_people_tpo_user: pierov

steps:
  build:
    filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
    input_files:
      - project: container-image
      - name: rust
        project: rust
  # `cargo vendor vendor` in the `cbindgen` directory has vendored the sources.
  # Use `make cargo_vendor-cbindgen` or `make cargo_vendor-cbindgen-android`
  # (for the Android version) to re-generate the vendor tarball
  - name: cbindgen_vendor
    URL: https://people.torproject.org/~[% c('var/cbindgen_vendor_people_tpo_user') %]/mirrors/sources/cbindgen-vendor-[% c('version') %].tar.xz
    sha256sum: '[% c("var/cbindgen_vendor_hash") %]'

steps:
  cargo_vendor:
    filename: '[% project %]-vendor-[% c("version") %].tar.xz'
    input_files:
      - project: container-image
        pkg_type: build
      - project: rust
        name: rust
        pkg_type: build
      - name: cargo_vendor
        project: cbindgen
        pkg_type: cargo_vendor
        norec:
          sha256sum: 96057adf58cd75b968d2209a86de3ff8bf52a5024bac2f677673b388cb26475e
+1 −1
Original line number Diff line number Diff line
# vim: filetype=yaml sw=2
version: 3.15.3
version: 3.26.3
git_url: https://gitlab.kitware.com/cmake/cmake.git
git_hash: 'v[% c("version") %]'
tag_gpg_id: 1
+4 −12
Original line number Diff line number Diff line
@@ -45,11 +45,11 @@ export PATH="/var/tmp/dist/rust/bin:/var/tmp/dist/cbindgen:/var/tmp/dist/nasm/bi
  # https://searchfox.org/mozilla-central/source/build/build-clang/build-clang.py#890,
  # include it directly in our clang
  [% IF c("var/macos") -%]
    rtdir=/var/tmp/dist/macosx-toolchain/clang/lib/clang/[% pc("clang", "version") %]/lib/wasi
    rtdir=/var/tmp/dist/macosx-toolchain/clang/lib/clang/[% pc("llvm-project", "var/llvm_major") %]/lib/wasi
  [% ELSIF c("var/windows") -%]
    rtdir=/var/tmp/dist/mingw-w64-clang/lib/clang/[% pc("clang", "version") %]/lib/wasi
    rtdir=/var/tmp/dist/mingw-w64-clang/lib/clang/[% pc("llvm-project", "var/llvm_major") %]/lib/wasi
  [% ELSE -%]
    rtdir=/var/tmp/dist/clang/lib/clang/[% pc("clang", "version") %]/lib/wasi
    rtdir=/var/tmp/dist/clang/lib/clang/[% pc("llvm-project", "var/llvm_major") %]/lib/wasi
  [% END -%]
  mkdir -p $rtdir
  cp /var/tmp/dist/wasi-sysroot/lib/clang/*/lib/wasi/libclang_rt.builtins-wasm32.a $rtdir
@@ -98,10 +98,6 @@ MOZCONFIG_EOF
  sed -i 's|^URL=https://aus1\.torproject\.org/.*|URL=https://nightlies.tbb.torproject.org/nightly-updates/updates/[% c("var/nightly_updates_publish_dir") %]/%CHANNEL%/%BUILD_TARGET%/%VERSION%/ALL|' build/application.ini.in
[% END -%]


rm -f configure
rm -f js/src/configure

export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system

# Create .mozbuild to avoid interactive prompt in configure
@@ -206,7 +202,7 @@ export LANG=C.UTF-8

[% IF c("var/linux") %]
  [% IF c("var/linux-x86_64") && !c("var/asan") %]
    cp obj-*/testing/geckodriver/x86_64-unknown-linux-gnu/release/geckodriver $distdir
    cp obj-*/x86_64-unknown-linux-gnu/release/geckodriver $distdir
  [% END %]
  cp -a obj-*/dist/[% c('var/exe_name') %]/* $distdir/Browser/
  # Remove firefox-bin (we don't use it, see ticket #10126)
@@ -247,9 +243,7 @@ RBM_TB_EOF
  [% IF c("var/linux") || c("var/macos") %]
    cp -p obj-*/dist/bin/signmar $MARTOOLS/
    cp -p obj-*/dist/bin/certutil $MARTOOLS/
    cp -p obj-*/dist/bin/modutil $MARTOOLS/
    cp -p obj-*/dist/bin/pk12util $MARTOOLS/
    cp -p obj-*/dist/bin/shlibsign $MARTOOLS/
    [% IF c("var/linux") %]
      NSS_LIBS="libfreeblpriv3.so libmozsqlite3.so libnss3.so libnssckbi.so libnssutil3.so libsmime3.so libsoftokn3.so libssl3.so"
      NSPR_LIBS="libnspr4.so libplc4.so libplds4.so"
@@ -265,9 +259,7 @@ RBM_TB_EOF
  [% IF c("var/windows") %]
    cp -p obj-*/dist/bin/signmar.exe $MARTOOLS/
    cp -p obj-*/dist/bin/certutil.exe $MARTOOLS/
    cp -p obj-*/dist/bin/modutil.exe $MARTOOLS/
    cp -p obj-*/dist/bin/pk12util.exe $MARTOOLS/
    cp -p obj-*/dist/bin/shlibsign.exe $MARTOOLS/
    NSS_LIBS="freebl3.dll mozglue.dll nss3.dll nssckbi.dll softokn3.dll"
    for LIB in $NSS_LIBS; do
        cp -p obj-*/dist/bin/$LIB $MARTOOLS/
Loading