richard pushed to branch main at The Tor Project / Applications / tor-browser-build

Commits:

6 changed files:

Changes:

  • Makefile
    ... ... @@ -583,9 +583,6 @@ cargo_vendor-application-services: submodule-update
    583 583
     cargo_vendor-cbindgen: submodule-update
    
    584 584
     	$(rbm) build cbindgen --step cargo_vendor --target alpha --target torbrowser-linux-x86_64
    
    585 585
     
    
    586
    -cargo_vendor-uniffi-rs: submodule-update
    
    587
    -	$(rbm) build uniffi-rs --step cargo_vendor --target nightly --target torbrowser-linux-x86_64
    
    588
    -
    
    589 586
     go_vendor-snowflake-alpha: submodule-update
    
    590 587
     	$(rbm) build snowflake --step go_vendor --target alpha --target torbrowser-linux-x86_64
    
    591 588
     
    

  • projects/application-services/build
    ... ... @@ -21,8 +21,7 @@ mkdir /var/tmp/build
    21 21
     cd /var/tmp/dist
    
    22 22
     tar -xf $rootdir/[% c('input_files_by_name/rust') %]
    
    23 23
     tar -xf $rootdir/[% c('input_files_by_name/ninja') %]
    
    24
    -tar -xf $rootdir/[% c('input_files_by_name/uniffi-rs') %]
    
    25
    -export PATH=/var/tmp/dist/rust/bin:/var/tmp/dist/ninja:/var/tmp/dist/uniffi-rs:$PATH
    
    24
    +export PATH=/var/tmp/dist/rust/bin:/var/tmp/dist/ninja:$PATH
    
    26 25
     export RUST_ANDROID_GRADLE_PYTHON_COMMAND=python3
    
    27 26
     cd $rootdir
    
    28 27
     
    

  • projects/application-services/config
    ... ... @@ -46,9 +46,6 @@ steps:
    46 46
           - project: ninja
    
    47 47
             name: ninja
    
    48 48
             pkg_type: build
    
    49
    -      - project: uniffi-rs
    
    50
    -        name: uniffi-rs
    
    51
    -        pkg_type: build
    
    52 49
           # See libs/build-all.sh to update these!
    
    53 50
           # Also, build them with application-services, since they need the NDK and
    
    54 51
           # we are using a different one from the other projects.
    

  • projects/uniffi-rs/btreeset.patch deleted
    1
    -diff --git a/uniffi_bindgen/src/interface/types.rs b/uniffi_bindgen/src/interface/types.rs
    
    2
    -index 6448d58..b7efd22 100644
    
    3
    ---- a/uniffi_bindgen/src/interface/types.rs
    
    4
    -+++ b/uniffi_bindgen/src/interface/types.rs
    
    5
    -@@ -26,7 +26,7 @@
    
    6
    - use anyhow::bail;
    
    7
    - use anyhow::Result;
    
    8
    - use std::convert::TryFrom;
    
    9
    --use std::{collections::hash_map::Entry, collections::HashMap, collections::HashSet};
    
    10
    -+use std::{collections::hash_map::Entry, collections::HashMap, collections::BTreeSet};
    
    11
    - 
    
    12
    - use super::Attributes;
    
    13
    - 
    
    14
    -@@ -71,7 +71,7 @@ pub enum FFIType {
    
    15
    - /// Represents all the different high-level types that can be used in a component interface.
    
    16
    - /// At this level we identify user-defined types by name, without knowing any details
    
    17
    - /// of their internal structure apart from what type of thing they are (record, enum, etc).
    
    18
    --#[derive(Debug, Clone, Eq, PartialEq, Hash)]
    
    19
    -+#[derive(Debug, Clone, Eq, PartialEq, Hash, PartialOrd, Ord)]
    
    20
    - pub enum Type {
    
    21
    -     // Primitive types.
    
    22
    -     UInt8,
    
    23
    -@@ -195,7 +195,7 @@ pub(crate) struct TypeUniverse {
    
    24
    -     // Named type definitions (including aliases).
    
    25
    -     type_definitions: HashMap<String, Type>,
    
    26
    -     // All the types in the universe, by canonical type name.
    
    27
    --    all_known_types: HashSet<Type>,
    
    28
    -+    all_known_types: BTreeSet<Type>,
    
    29
    - }
    
    30
    - 
    
    31
    - impl TypeUniverse {

  • projects/uniffi-rs/build deleted
    1
    -#!/bin/bash
    
    2
    -[% c("var/set_default_env") -%]
    
    3
    -distdir=/var/tmp/dist
    
    4
    -builddir=/var/tmp/build/[% project %]
    
    5
    -mkdir -p $distdir/[% project %]
    
    6
    -tar -C $distdir -xf $rootdir/[% c('input_files_by_name/rust') %]
    
    7
    -export PATH="/var/tmp/dist/rust/bin:$PATH"
    
    8
    -mkdir -p /var/tmp/build
    
    9
    -tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
    
    10
    -
    
    11
    -# Now prepare the offline build
    
    12
    -# Move the directory for hardcoding the path in .cargo/config
    
    13
    -mv /var/tmp/build/[% project %]-[% c('version') %] $builddir
    
    14
    -tar -C $builddir -xjf uniffi-rs-vendor-[% c('version') %].tar.bz2
    
    15
    -cd $builddir
    
    16
    -mkdir .cargo
    
    17
    -cat > .cargo/config << 'EOF'
    
    18
    -[source.crates-io]
    
    19
    -replace-with = "vendored-sources"
    
    20
    -
    
    21
    -[source.vendored-sources]
    
    22
    -directory = "/var/tmp/build/uniffi-rs/vendor"
    
    23
    -EOF
    
    24
    -
    
    25
    -# We change the data type of the `all_known_types` Set from HashSet to BTreeSet.
    
    26
    -# Uniffi iterates over the elements of this set, and iteration over a HashSet occurs
    
    27
    -# in an arbitrary order, while iteration over a BTreeSet orders in a defined (and
    
    28
    -# deterministic) order. This patch solves a build reproducibility issue, see
    
    29
    -# tor-browser-build#40208.
    
    30
    -#
    
    31
    -# Upstream bug: https://github.com/mozilla/uniffi-rs/issues/374
    
    32
    -patch -p1 < $rootdir/btreeset.patch
    
    33
    -# We usually use --frozen but there is no Cargo.lock file available. Thus resort
    
    34
    -# to --offline.
    
    35
    -cargo build --release --offline --target x86_64-unknown-linux-gnu
    
    36
    -mv target/x86_64-unknown-linux-gnu/release/uniffi-bindgen $distdir/[% project %]
    
    37
    -
    
    38
    -cd $distdir
    
    39
    -[% c('tar', {
    
    40
    -        tar_src => [ project ],
    
    41
    -        tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
    
    42
    -    }) %]

  • projects/uniffi-rs/config deleted
    1
    -# vim: filetype=yaml sw=2
    
    2
    -version: 0.7.0
    
    3
    -git_url: https://github.com/mozilla/uniffi-rs
    
    4
    -git_hash: ea3ff0402438ef1ebceda4c5fbbbd2ed6a9be227
    
    5
    -filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
    
    6
    -
    
    7
    -container:
    
    8
    -  use_container: 1
    
    9
    -
    
    10
    -input_files:
    
    11
    -  - project: container-image
    
    12
    -  - name: rust
    
    13
    -    project: rust
    
    14
    -  # Use `make cargo_vendor-uniffi-rs` to re-generate the vendor tarball
    
    15
    -  - URL: https://people.torproject.org/~boklm/mirrors/sources/uniffi-rs-vendor-[% c('version') %].tar.bz2
    
    16
    -    sha256sum: 8f201df618b3e7bcaaf01a87e0d55171605b80abeb1b660fe4dd0b9bfc10a0d8
    
    17
    -  - filename: btreeset.patch
    
    18
    -
    
    19
    -steps:
    
    20
    -  cargo_vendor:
    
    21
    -    filename: '[% project %]-vendor-[% c("version") %].tar.bz2'
    
    22
    -    input_files:
    
    23
    -      - project: container-image
    
    24
    -        pkg_type: build
    
    25
    -      - project: rust
    
    26
    -        name: rust
    
    27
    -        pkg_type: build