Commit Graph

266 Commits

Author SHA1 Message Date
Sean Bowe 3688f508d8
Make ed25519-zebra available via librustzcash. 2020-06-22 15:58:26 -06:00
Sean Bowe 55ac118e65
Pass DO_NOT_UPDATE_CONFIG_SCRIPTS=1 to autogen.sh in libsodium dependency, to avoid updating config scripts over the network. 2020-05-18 11:37:04 -06:00
ca333 61c4b6c432
fix dead openssl download path
updates openssl 1.1.1a download path analogue to 318ec36218

fyi: we are testing 1.1.1f in https://github.com/KomodoPlatform/komodo/pull/314
2020-04-05 02:41:59 +02:00
Homu c7f1ec471e Auto merge of #4401 - str4d:4397-rust-darwin-target, r=str4d
depends: Hard-code Rust target for all Darwin hosts

Closes #4397.
2020-03-13 17:28:53 +00:00
Jack Grigg 1ce96648ad depends: Hard-code Rust target for all Darwin hosts
GCC Darwin hosts include a version number, but Rust only has a single
Darwin target.
2020-03-13 22:27:14 +13:00
Jack Grigg 1bb543414a depends: Define Rust target in a single location 2020-03-13 22:27:14 +13: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 11d257bd72 depends: Use Rust 1.42.0 toolchain 2020-03-13 13:47:56 +13:00
Homu 4eb3dc7ec6 Auto merge of #4321 - str4d:internalise-rust, r=str4d
Bring the librustzcash crate into this repository

Rust dependencies are now canonically pinned within this repository by
`Cargo.lock`. We continue to use the depends system for vendoring the
dependencies, to ensure our Gitian builds continue to function (which have
no network access at build time, and fetch dependencies separately).

The `--enable-online-rust` configure flag replicates the behaviour of the
`LIBRUSTZCASH_OVERRIDE` environment variable (enabling the build system to
use https://crates.io instead of vendored dependencies).

This pulls in the exact version of `librustzcash` that we currently depend on
(corresponding to the `0.1.0` tag in https://github.com/zcash/librustzcash).
The changes to the crate since then will be pulled in as a separate PR.

Part of zcash/librustzcash#155.
Part of #4230.
2020-03-11 14:20:17 +00:00
Homu dcd3614de4 Auto merge of #4359 - str4d:2872-upgrade-libsodium, r=str4d
Upgrade libsodium to 1.0.18

Includes patches that maintain consensus compatibility with libsodium 1.0.15 for Ed25519 pubkey and signature validation.

Replaces #4239. Closes #2872.
2020-03-10 03:10:01 +00: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 0f12f47f58 Patch libsodium 1.0.15 signature validation onto 1.0.18 2020-02-18 01:18:37 +00:00
Jack Grigg 4fe5969157 Patch libsodium 1.0.15 pubkey validation onto 1.0.18 2020-02-18 01:18:37 +00:00
ca333 d4644e7ed0 update libsodium to v1.0.18
according to changelogs backwards compatible and containing various optimizations:

https://github.com/jedisct1/libsodium/releases
https://fossies.org/diffs/libsodium/1.0.15_vs_1.0.16/ChangeLog-diff.html
https://fossies.org/diffs/libsodium/1.0.16_vs_1.0.17/ChangeLog-diff.html
https://fossies.org/diffs/libsodium/1.0.17_vs_1.0.18/ChangeLog-diff.html

(EDIT by str4d): The update is not in fact backwards-compatible; the
passing test cases added in the previous commit fail as of this commit.
2020-02-18 01:18:37 +00:00
Dimitris Apostolou 2d2b7a1be7
Fix Boost compilation on macOS 2020-02-07 21:41:02 +02:00
Jack Grigg 97ab74a887 depends: Add utfcpp to dependencies 2020-01-29 15:59:52 +00:00
Miles Manley 6f28ddc3a5
Update libsodium download-path
Fixes error 404 when building for macOS

Maybe update to 1.0.16?
2020-01-13 13:23:16 +09:00
Taylor Hornby a5affb11d1 Update proton from 0.26.0 to 0.30.0 2020-01-07 21:36:14 +00:00
Jack Grigg adb47482c8
Revert "depends: Explicitly set Boost toolchain during configuration"
This reverts commit 734e594c2c.

It appears that this was fixing a single issue with the FreeBSD build,
while b6d0996cec addressed the underlying
cause. However, the change in this commit overrides the underlying fix
when cross-compiling for Darwin.
2019-12-10 20:40:30 +00:00
Jack Grigg 97098c45cb
depends: Manually apply build_env to second half of googletest build
The build environment is applied to the entire configured build_cmds
section, but it doesn't carry over past the && between the gmock and
gtest builds. This causes problems when cross-compiling for darwin, as
the correctly-configured clang++ is provided in the build environment.
2019-12-10 20:40:29 +00:00
Jack Grigg 073f5b8f48
depends: Add Rust targets for cross-compiling darwin 2019-12-10 20:40:26 +00:00
Jack Grigg 576de307fe
depends: Compile bdb with --disable-atomics when cross-compiling darwin
This sidesteps the problem where the atomics check tries to run a test
binary, which cannot be performed during cross compilation. We should
replace this with a better solution in future.

Part of #3710.
2019-12-10 20:38:33 +00:00
Ulrich Kempken 2e5bb0a4a2
depends: switch to secure download of all dependencies
Some dependency sources were downloaded via http, even though https (SSL/TLS) options are available.
Even if we potentially check the integrity of the downloaded files via hash comparison, we should make
use of this additional security layer.

Zcash:
native_cctools.mk
2019-12-10 20:38:32 +00:00
Carl Dong 6dcba32cc4
depends: tar: Always extract as yourself
For normal users, --no-same-owner is default, but not so for root, where
it is assumed that root can change ownership willy-nilly. This is not
the case for privilege-limited container environments where we gaslight
the process into thinking it's root.

Zcash: Excludes QT changes
2019-12-10 20:38:31 +00:00
Cory Fields 8ae1b9ded1
depends: make osx output deterministic
ld64 is threaded, and uses a worker for each CPU to parse input files. But
there's a bug in the parser causing dependencies to be calculated differently
based on which files have already been parsed.

As a result, builders with more CPUs are more likely to see non-determinism.

This looks to have been fixed in a newer version of ld64, so just disable
threading for now. There's no noticible slowdown.
2019-12-10 20:38:30 +00:00
Cory Fields f7f7b1c557
depends: bump OSX toolchain
clang: 3.7.1
cctools: 877.8
ld64: 253.9

Zcash: Second part of f25209a3e1e6488d4d44de15b0f113d2302e9aee from
upstream (we merged the first part in #2697).
2019-12-10 20:38:29 +00:00
Cory Fields 4d59b8bdd1
depends: qt/cctools: fix checksum checksum tests
Checksums were being verified after download, but not again before extraction

Zcash: Only cctools changes
2019-12-10 20:38:28 +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
Homu f25d36b9e8 Auto merge of #4129 - str4d:librustzcash-dev-tooling, r=Eirik0
Developer tooling for librustzcash

Closes #4106.
2019-10-08 10:24:35 -07:00
Homu 961c0d58ec Auto merge of #4060 - str4d:remove-libsnark, r=daira
Remove libsnark

Closes #167. Closes #416. Closes #418. Closes #437.
Closes #521. Closes #743. Closes #750. Closes #894.
Closes #903. Closes #1125. Closes #1136. Closes #1240.
Closes #1264. Closes #1516. Closes #1517. Closes #1651.
Closes #2064. Closes #2158. Closes #3478. Closes #3652.
Closes #3744.
2019-09-26 11:21:40 -07:00
Jack Grigg 1822eb333f
depends: Add flag for building with a local librustzcash repo
Usage:
$ ./zcutil/build.sh LIBRUSTZCASH_OVERRIDE=/path/to/librustzcash
2019-09-07 04:05:56 -04:00
Jack Grigg 8c1f5fa729
depends: Helper for vendoring new crates 2019-09-07 04:04:45 -04:00
Jack Grigg 2a47986a00
Remove libgmp 2019-08-22 15:42:53 +01:00
Jack Grigg ae6cee2731 depends: Set PIC flags for FreeBSD 2019-05-22 16:56:45 +00:00
Jack Grigg b6d0996cec depends: Use project-config.jam to configure Boost instead of user-config.jam
Per the Boost.Build documentation, user-config.jam is supposed to only
be located in the user's home directory, and this appears to be enforced
on FreeBSD.
2019-05-22 16:56:22 +00:00
Jack Grigg dea27818e6 depends: Explicitly call Rust install script using bash
On FreeBSD 12, the bash package is not necessarily installed to /bin/bash,
which the install script assumes is the location. Since we depend on bash
for building anyway, we can just explicitly call it.
2019-05-22 12:09:43 +00:00
Jack Grigg 40d848dc04 depends: Add FreeBSD Rust binaries 2019-05-22 12:08:59 +00:00
Jack Grigg bfc997c32e depends: Patch libevent to detect arch4random_addrandom
See details in https://github.com/libevent/libevent/issues/615.
The patches can be dropped after we move to the next stable release.
2019-05-22 11:37:56 +00:00
Jack Grigg dc0c977906 depends: Add FreeBSD support to OpenSSL 2019-05-22 11:03:42 +00:00
Jack Grigg 734e594c2c depends: Explicitly set Boost toolchain during configuration 2019-05-22 10:53:53 +00:00
Homu 8a95ba235d Auto merge of #3951 - LarryRuane:3947-integer-log2-warn, r=ebfull
Update boost to v1.70.0 to eliminate build warning

Closes #3947.
2019-04-24 05:00:33 -07:00
Larry Ruane c17d828ffd Update boost from v1.69.0 to v1.70.0. #3947 2019-04-23 11:29:55 -06:00
Homu ab856294d9 Auto merge of #3505 - str4d:rust-targets, r=str4d
depends: Support additional cross-compilation targets in Rust

This will make it easier for third parties to cross-compile `zcashd` for other platforms. The third commit in this PR shows how to add a new target to the Rust dependency builder.

The default Rust target during cross-compilation is the canonical host, which is derived from `HOST` using `depends/config.sub`. If the canonical host differs from the required Rust target, add the necessary mapping in addition to the target itself.

Also includes fixes for cross-compiling aarch64 targets.
2019-04-23 08:33:40 -07:00
LongShao007 9c96affb0d
fix bug of bdb.mk 2019-04-14 18:16:55 +08:00
Homu 756e9246c3 Auto merge of #3919 - defuse:openssl-regression, r=bitcartel
Fix OpenSSL reproducible build regression
2019-03-26 00:02:32 -07:00
Taylor Hornby b85cd8891e Fix OpenSSL reproducible build regression 2019-03-25 14:27:14 -06:00
Taylor Hornby 8088476911 Fix proton patch regression. #3916 2019-03-25 11:46:37 -06:00
Jack Grigg 56df83d710
depends: Compile bdb with --disable-atomics on aarch64
This sidesteps the problem where the atomics check tries to run a test
binary, which cannot be performed during cross compilation. We should
replace this with a better solution in future.

Part of #3710.
2019-03-13 06:39:12 +00:00
Jack Grigg d2cd57c0f2
depends: Add rust-std hash for aarch64-unknown-linux-gnu
Usage on Debian / Ubuntu:

> $ sudo apt install g++-aarch64-linux-gnu
> $ HOST=aarch64-linux-gnu ./zcutil/build.sh

Currently fails to cross-compile due to later configuration issues in
the depends system that need to be worked around.
2019-03-13 04:55:52 +00:00
Jack Grigg d7ab954511
depends: Generalise the rust package cross-compilation functions 2019-03-13 04:40:57 +00:00
Jack Grigg 74de4ddc46
depends: Use full path to cargo binary
The native binaries generated in the depends system are available on the path,
but system binaries are still visible. This change ensures we use cargo from
the depends system rather than whatever might be installed locally.
2019-03-13 03:24:41 +00:00
Taylor Hornby 78c916eb2e Patch Proton for a minimal build. #3786 2019-02-06 13:18:53 -07:00
Taylor Hornby f3d99770b5 Update Proton from 0.17.0 to 0.26.0. #3816, #3786 2019-01-30 14:16:50 -07:00
Taylor Hornby 0a4cafa6df Update Rust from v1.28.0 to v1.32.0. #3786 2019-01-30 14:16:42 -07:00
Taylor Hornby 221ca965eb Update boost from v1.66.0 to v1.69.0. #3786 2019-01-30 14:16:34 -07:00
Taylor Hornby b41b316758 Update OpenSSL from 1.1.0h to 1.1.1a. #3786 2019-01-30 14:16:25 -07:00
Homu beb465dd2e Auto merge of #3789 - rex4539:update-zmq, r=str4d
Update zmq to 4.3.1

Closes https://github.com/zcash/zcash/issues/3785
2019-01-23 00:17:25 -08:00
Dimitris Apostolou 4d0aca70a0
Update zmq to 4.3.1 2019-01-17 17:15:44 +02:00
ca333 8eaa721dfd
update libsodium dl-path
the 1.0.15 was moved to https://download.libsodium.org/libsodium/releases/old/ which results in DL from zcashs fallback repo
2019-01-07 13:38:21 +01:00
Jack Grigg 262cf38712
Build librustzcash package without changing directory
This ensures that the depends system's custom PATH is applied correctly,
and the pre-build Rust binaries are accessible.
2018-10-28 06:41:53 +13:00
Jack Grigg ee3fa7020e
Pass parameter paths as native strings to librustzcash 2018-10-27 19:19:02 +13: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
Jack Grigg 7d65dcf4d9
depends: Pass correct compiler, linker, and flags into googletest 2018-08-17 16:47:03 +01:00
Jack Grigg 3d308c2232
depends: Fix BDB naming issue when cross-compiling
Co-authored-by: David Mercer <radix42@gmail.com>
2018-08-17 16:42:35 +01:00
Jack Grigg f77650a6ac
depends: Configure librustzcash for cross-compiling 2018-08-17 16:41:51 +01:00
Jack Grigg b57e4484ef
depends: Correctly configure Rust when cross-compiling 2018-08-17 16:41:40 +01:00
Jack Grigg e188723823
Upgrade Rust to 1.28.0 stable 2018-08-05 10:41:06 +01:00
Sean Bowe d9ef8f622e Check the hash of the (Sapling+) zk-SNARK parameters during initialization. 2018-08-02 12:18:13 -06:00
Sean Bowe b7b088c46b Update librustzcash and sapling-crypto. 2018-07-30 21:59:12 -06:00
Jack Grigg e691e21f40
TransactionBuilder with support for creating Sapling-only transactions 2018-07-25 11:35:10 +02:00
Sean Bowe 9e8e121c9f Update librustzcash 2018-06-13 15:18:23 -06:00
Simon 36e2e7cc32 Add SaplingNote class and test_sapling_note unit test. 2018-06-12 14:37:05 -07:00
Jay Graber 52d81ff794 Update librustzcash dependency, address comments 2018-06-01 01:48:28 -07:00
Jay Graber 84e3a2212f Change librustzcash dependency hash to work for new Sapling classes 2018-06-01 00:04:13 -07:00
Sean Bowe b9a5a116cd Update librustzcash 2018-05-18 13:26:37 -06:00
Homu 1063dfdeaa Auto merge of #3271 - ebfull:stable-rust, r=bitcartel
Switch Rust to 1.26 Stable
2018-05-15 21:27:53 -07:00
Sean Bowe 0dfb1d5e2c Switch Rust to 1.26 Stable. 2018-05-15 16:21:37 -06:00
Sean Bowe 31989317c9 Update librustzcash again 2018-05-14 16:29:00 -06:00
Sean Bowe b7a6c32178 Integrate Groth16 verification and proving. 2018-05-14 16:26:23 -06:00
Sean Bowe 531fcc88da Update to latest librustzcash 2018-05-08 14:30:26 -06:00
Sean Bowe fcbe7eef8d Update sapling-crypto and librustzcash 2018-05-07 18:56:55 -06:00
Sean Bowe 62ba80e766 Update librustzcash hash 2018-04-19 13:00:28 -06:00
Sean Bowe acfcdb94b9 Load Sapling testnet parameters into memory. 2018-04-17 15:04:46 -06:00
Homu ec6021950d Auto merge of #3176 - daira:use-https-for-bdb, r=daira
Use https: for BDB backup download URL.
2018-04-17 02:13:10 -07:00
ca333 2b0e6432fe
update proton.mk
use SSL/TLS secured URL
2018-04-16 15:24:42 +02:00
Daira Hopwood 7709c8a47e Use https: for BDB backup download URL. 2018-04-16 08:11:40 +01:00
ca333 d2f9e747d5
[fix] proton download path
resolves #3174
2018-04-16 00:19:33 +02:00
Sean Bowe 65dc30c5a1 Update librustzcash hash 2018-04-14 19:33:10 -06: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 b123b9bb79
depends: Upgrade Rust to 1.26.0-beta.3 2018-04-11 07:59:46 -06:00
Simon 09bf7d2d3c Upgrade OpenSSL to 1.1.0h 2018-03-29 23:05:17 -07:00
Homu 058efdbe0f Auto merge of #3124 - bitcartel:update_boost_url, r=str4d
Update boost package URL to match official download url on boost.org

Part of #3123.
2018-03-28 08:26:39 -07:00
Homu a08ad2b815 Auto merge of #3096 - str4d:2231-depends-vendor-rust-crates, r=str4d
depends: Explicitly download and vendor Rust dependencies

Closes #2231.
2018-03-28 07:01:39 -07:00
Jack Grigg 0adfdc99b2
depends: Explicitly download and vendor Rust dependencies
Closes #2231.
2018-03-28 15:46:51 +02:00
Homu 2c91e3ebc0 Auto merge of #3117 - charlieok:add_windows_rust_package, r=daira
Add filename and SHA256 hash for Windows Rust package

When running `make download` in the `depends` directory, the `download-win` target (which `download` depends on) generates an error when it runs the commands defined in `check_or_remove_sources`:

```Makefile
sha256sum: /home/vagrant/zcash/depends/work/download/rust-1.16.0/..hash: no properly formatted SHA256 checksum lines found
funcs.mk:242: recipe for target '/home/vagrant/gitian-builder/cache/common/download-stamps/.stamp_fetched-rust-.hash' failed
make[1]: *** [/home/vagrant/gitian-builder/cache/common/download-stamps/.stamp_fetched-rust-.hash] Error 1
make[1]: Leaving directory '/home/vagrant/zcash/depends'
Makefile:153: recipe for target 'download-win' failed
make: *** [download-win] Error 2
```

The reason for the error is that `depends/packages/rust.mk` defines `rust_file_name_linux` and `rust_file_name_darwin` but leaves `rust_file_name_mingw32` undefined.

A directory of available rust downloads is here: https://static.rust-lang.org/dist/index.html

The closest windows analog in that list (using the same version number as currently defined in `rust.mk`) appears to be `rust-mingw-1.16.0-x86_64-pc-windows-gnu.tar.gz`. A corresponding sha256 value is also given in `rust-mingw-1.16.0-x86_64-pc-windows-gnu.tar.gz.sha256`.

After adding these values to `rust.mk`, the rust-mingw tar package was downloaded along with the rest of the dependencies and the above error message went away.
2018-03-28 05:31:43 -07:00