Commit Graph

195 Commits

Author SHA1 Message Date
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
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