Commit Graph

56 Commits

Author SHA1 Message Date
Jack Grigg 21f1bbf4aa depends: Add `rust/cxx.h` header as a dependency
We could also generate this in the main build with `cxxbridge --header`,
but we have the source from vendoring `cxxbridge`, and this simplifies
the automake integration slightly.
2022-05-27 20:15:05 +00:00
Jack Grigg ee23587268 depends: Add cxxbridge command to dependencies 2022-05-27 20:15:05 +00:00
sasha 077f5550d4 remove superfluous space at end of native_packages line 2022-02-25 14:43:13 -08:00
sasha 2d6dcd4750 on Arch only, use Debian's libtinfo5_6.0 to satisfy clang 2022-02-21 20:28:03 -08:00
Taylor Hornby a2c647d4bf Untested, not working yet, use libtinfo from the debian packages 2022-02-15 14:01:54 -07:00
Carl Dong d5dfbe016d depends: boost: Split into non-/native packages 2021-01-15 17:29:37 +00:00
Jack Grigg 1b96347867 depends: Add libc++ as a dependency
For mingw32:

- We use the binaries provided by MSYS2, which do not go back as far as
  libc++ 8. We use libc++ 9 here, matching the LLVM version we will be
  switching to in a subsequent commit (to match the LLVM version used by
  Rust 1.44). We manually specify the path to the libc++ headers,
  because they don't match the headers used by Clang itself.

- We now require at least mingw-w64 6.0.0, which fixes two Clang
  compilation bugs:
  - 1bd66b53be
  - 82b169c573

Darwin is ignored, as the Xcode SDK includes libc++.

For all other targets, we use the static libraries included in Clang
releases. We reuse the files we downloaded in native_clang for native
compilation, instead of fetching the archive twice.
2020-10-13 14:12:41 +01:00
Jack Grigg d071e316e5 depends: Add Clang 8.0.0
We vendor only the subset of the Clang tarball that we require.
2020-10-12 17:55:12 +01:00
fanquake f477932d38 depends: remove OpenSSL package 2020-09-30 00:40:12 +01:00
Jack Grigg 549bf2dfa8 depends: Switch to `cargo vendor` for Rust dependencies
When we first integrated Rust into our build system, we had two
limitations:

- We were building the `librustzcash` FFI library as a dependency, and
  therefore needed access to its crate dependencies in the depends
  system.
- Gitian builds happen offline, so we needed to fetch any crate
  dependencies ahead of time, and then configure cargo to use these in
  an offline environment.

At the time, `cargo` already had support for "Source Replacement", but
there was no easy way to package the dependencies in the necessary way.
What we implemented was effectively the `cargo-vendor` tool, built using
Makefiles. A noticeable downside was that we were pinning dependencies
twice: once in the `Cargo.lock` for the FFI library, and again in our
depends system.

Since then, `cargo-vendor` has been upstreamed into `cargo` itself, and
we have moved `librustzcash` into this repository. We can therefore use
`cargo vendor` directly from our pinned Rust compiler to fetch the
dependencies, and rely on our local `Cargo.lock` to pin the specific
crates we are relying on.
2020-09-18 22:55:57 +01:00
Jack Grigg f0babb8356 depends: cargo update 2020-08-25 13:07:22 +01:00
Jack Grigg c10ba7da41 depends: Migrate to zcash_* 0.3.0 Rust crates 2020-08-25 13:07:22 +01:00
Jack Grigg 2a3770cfbf depends: Rework Rust integration
The Rust toolchain is now a native dependency, and the vendored crates
no longer depend on the native toolchain.
2020-08-10 22:52:23 +01:00
Jack Grigg 2b7d824714 Use a tracing EnvFilter directive for -debug flags 2020-08-07 15:08:10 +01:00
Jack Grigg e6a52fa9c8 Add tracing to librustzcash dependencies 2020-08-07 15:07:44 +01:00
Kris Nuttycombe 0391809da1 Remove amqp code and Proton library depenencies & flags. 2020-07-31 13:08:18 -06:00
Sean Bowe 14bdf7e811
Remove bincode crate. 2020-06-23 15:38:59 -06:00
Sean Bowe 3688f508d8
Make ed25519-zebra available via librustzcash. 2020-06-22 15:58:26 -06:00
Jack Grigg c7b2fc101d Bring in updates to librustzcash crate
Source: https://github.com/zcash/librustzcash.git
Revision: 53bd5d4724c96374c4bf94068207fcc362b01ac7
2020-03-13 14:16:45 +13:00
Jack Grigg a04acde970 depends: Remove unused vendored crates 2020-03-06 16:49:03 +13:00
Jack Grigg 90f7234136 Replace librustzcash from depends system with src/rust
The --enable-online-rust configure flag replicates the behaviour of the
LIBRUSTZCASH_OVERRIDE environment variable (enabling the build system to
use crates.io instead of vendored dependencies).
2020-03-06 16:49:03 +13:00
Homu 27c04c8f9c Auto merge of #4146 - str4d:z_viewtransaction, r=str4d
z_viewtransaction

This RPC method returns all decryptable information for any transaction in the wallet.

Several values are conditionally included in the output for convenience:
- `recovered`: True if an output is not for a Sapling address in the wallet.
- `memoStr`: The text form of an output's memo, if it is valid UTF-8.
- Values are provided both in decimal currency units, and integer zatoshis.
2020-02-19 20:52:47 +00:00
Jack Grigg 97ab74a887 depends: Add utfcpp to dependencies 2020-01-29 15:59:52 +00:00
Jack Grigg be43fb5e98
Revert "Remove insecurely-downloaded dependencies that we don't currently use."
This partially reverts commit 86551dcb18
to bring back native_cctools for cross-compiling macOS.
2019-12-10 20:38:27 +00:00
Jack Grigg be2fdeaaf3
Upgrade librustzcash to 0.2.0
librustzcash now requires a minimum of Rust 1.36.0.

The proc-macro2, quote, syn, and unicode-xid dependencies are pulled in
because we moved to using ff_derive inside pairing to derive the
BLS12-381 fields. We will be going back to explicit implementations with
the jubjub and bls12_381 crates, so these dependencies will disappear
once that is done.

The autocfg crate is pulled in by the upgraded num-integer crate, which
is transitively used by fpe. Rewriting fpe to not use num-bigint would
drop:

- autocfg
- num-bigint
- num-integer
- num-traits

We primarily depend on rand_core in our crates. The rand crate, and its
other dependencies, are pulled in for two reasons:

- The group crate exposes testing helper functions in its public API
  that use distribution sampling APIs in the rand crate.

- zcash_primitives::transaction::Builder uses rand::seq::SliceRandom to
  shuffle the order of Sapling spends and outputs.

Refactoring these in order to drop rand would additionally drop:

- c2-chacha
- rand_chacha
- rand_hc
- rand_xorshift
2019-10-20 19:10:34 +13:00
Jack Grigg 2a47986a00
Remove libgmp 2019-08-22 15:42:53 +01:00
Jack Grigg eff2938e46
Migrate to current librustzcash
The only upstream change relative to the previous commit is that the
various Zcash-specific dependencies have been pulled into a cargo
workspace. The dependecies in the workspace use the same commits as the
crates we had previously vendored.

The patches are necessary to handle the fact that cargo requires that
dev dependencies are available even if not used, and we would otherwise
need to vendor all the underlying crates.
2018-10-27 17:03:47 +13:00
Jack Grigg f8d65e8f03
Update librustzcash with ZIP 32 APIs 2018-09-03 10:27:52 +01:00
Sean Bowe e6bbd8481e Switch to latest librustzcash 2018-04-12 18:52:00 -06:00
Jack Grigg a560c24d6b
depends: Update to latest librustzcash with sapling-crypto dependencies 2018-04-11 08:06:40 -06:00
Jack Grigg 0adfdc99b2
depends: Explicitly download and vendor Rust dependencies
Closes #2231.
2018-03-28 15:46:51 +02:00
syd 24902602f2 Upgrade googletest to 1.8.0 2017-11-19 14:08:17 -05:00
Sean Bowe 26a8f68ea8
Remove libsnark from depends system and integrate it into build system. 2017-08-02 15:49:30 +01:00
Daira Hopwood 506a21850a Remove UPnP support. fixes #2500
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2017-07-03 08:57:05 +01:00
Simon f493d3e044 Add --disable-proton flag to build.sh. Proton has build/linker issues with gcc 4.9.2 and requires gcc 5.x. 2017-03-25 09:41:54 -07:00
Simon 99eb947a98 Add AMQP 1.0 support via Apache Qpid Proton C++ API 0.17.0 2017-03-25 08:51:40 -07:00
Cory Fields 505b30ff01
libevent: add depends 2017-03-24 09:03:59 +13:00
Sean Bowe 802ea76b3a Allow Rust-language related assets to be disabled with `--disable-rust`. 2017-03-18 07:47:40 -06:00
Sean Bowe 6a0c7ceae9 Introduce librustzcash and Rust to depends system. 2017-03-17 11:46:41 -06:00
fanquake 00bcf2230d
[depends] ZeroMQ 4.1.5 2017-02-08 22:11:53 +00:00
Jonas Schnelli 0388c23a76
depends: fix platform specific packages variable
prefix instead of postfix
2017-02-08 22:10:42 +00:00
Cory Fields cce7754eb8
Depends: Add ZeroMQ package 2017-02-08 22:10:42 +00:00
Taylor Hornby 86551dcb18 Remove insecurely-downloaded dependencies that we don't currently use. 2016-07-19 16:42:58 -06:00
Taylor Hornby 4e117b63c6 Rename zerocash_packages to zcash_packages in packages.mk 2016-07-11 19:30:18 -06:00
Nathan Wilcox b6aa043d1f Add googlemock 1.7.0 dependency. 2016-05-03 13:46:09 -07:00
Sean Bowe 6c36a9fe03 NoteEncryption implementation and integration, removal of ECIES and crypto++ dependencies. 2016-04-28 16:25:12 -06:00
Nathan Wilcox 0ee1d5d133 Add a depends description for googletest. 2016-04-18 11:13:05 -07:00
Taylor Hornby abbab2cc4f Add libsodium to the depends system. 2016-03-17 16:29:37 -06:00
Sean Bowe 1e62bba762 Remove ate-pairing, xbyak and libzerocash dependencies from the depends tree.
The ALT_BN128 curve does not need ate-pairing or xbyak.

Also, remove crypto++ dependency from libsnark.
2016-02-15 15:27:59 -07:00
Nathan Wilcox c4da097069 Pull over depends and build changes from zc.v0.10.0.latest. Fails to build due to new ./configure dependency for serialization stuff. 2015-12-22 09:20:42 -08:00