Commits:
-
64cb7b18
by Pier Angelo Vendrame at 2023-08-10T16:26:11+00:00
Bug 40917: Remove the uniffi-rs project.
We build an old version of uniffi-rs which is consumed only by
application-services.
However, AS includes a newer version in its Cargo.lock and it is
automatically added to the vendor archive, so it can build completely
fine also without this project.
So, we can remove it.
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 |
|