foundry-rs / foundry

Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust.
https://getfoundry.sh
Apache License 2.0
8.21k stars 1.71k forks source link

Unable to compile `foundry` under Ubuntu 20.04 #229

Closed nikitastupin closed 2 years ago

nikitastupin commented 2 years ago

Hey πŸ‘‹

I tried to compile foundry under Ubuntu 20.04 but got the error:

...
   Compiling git2 v0.13.23
   Compiling foundry-cli v0.1.0 (/home/ubuntu/.cargo/git/checkouts/foundry-f45668fa08523154/9a0065a/cli)
error: failed to compile `foundry-cli v0.1.0 (https://github.com/gakonst/foundry#9a0065a8)`, intermediate artifacts can be found at `/tmp/cargo-installMHUHx6`

Caused by:
  could not compile `foundry-cli`

Caused by:
  process didn't exit successfully: `rustc --crate-name forge --edition=2021 cli/src/forge.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C opt-level=z -C panic=abort -C lto -C codegen-units=1 -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="evmodin"' --cfg 'feature="evmodin-evm"' --cfg 'feature="sputnik"' --cfg 'feature="sputnik-evm"' -C metadata=79d0ca3efcc4f462 -C extra-filename=-79d0ca3efcc4f462 --out-dir /tmp/cargo-installMHUHx6/release/deps -L dependency=/tmp/cargo-installMHUHx6/release/deps --extern ansi_term=/tmp/cargo-installMHUHx6/release/deps/libansi_term-abfc243c59e31b54.rlib --extern cast=/tmp/cargo-installMHUHx6/release/deps/libcast-9a961db16375c07d.rlib --extern color_eyre=/tmp/cargo-installMHUHx6/release/deps/libcolor_eyre-dae24897a6e3c221.rlib --extern ethers=/tmp/cargo-installMHUHx6/release/deps/libethers-0f64581b63a2027e.rlib --extern ethers_etherscan=/tmp/cargo-installMHUHx6/release/deps/libethers_etherscan-8b91d53797ec0c29.rlib --extern sputnik=/tmp/cargo-installMHUHx6/release/deps/libevm-a94493ac2f327f77.rlib --extern evm_adapters=/tmp/cargo-installMHUHx6/release/deps/libevm_adapters-f36370e54801529a.rlib --extern evmodin=/tmp/cargo-installMHUHx6/release/deps/libevmodin-1456b7f58e63db9f.rlib --extern eyre=/tmp/cargo-installMHUHx6/release/deps/libeyre-f915eb62fce0b51c.rlib --extern forge=/tmp/cargo-installMHUHx6/release/deps/libforge-eae485acf9aa9e3f.rlib --extern foundry_utils=/tmp/cargo-installMHUHx6/release/deps/libfoundry_utils-50b7edc94aa37d23.rlib --extern git2=/tmp/cargo-installMHUHx6/release/deps/libgit2-149e336192049e57.rlib --extern glob=/tmp/cargo-installMHUHx6/release/deps/libglob-2891208a71eaa488.rlib --extern once_cell=/tmp/cargo-installMHUHx6/release/deps/libonce_cell-809dfe7b8cfa2707.rlib --extern proptest=/tmp/cargo-installMHUHx6/release/deps/libproptest-72c82e5a185305a0.rlib --extern regex=/tmp/cargo-installMHUHx6/release/deps/libregex-5486510d57bddce9.rlib --extern rpassword=/tmp/cargo-installMHUHx6/release/deps/librpassword-608f808e137a9366.rlib --extern rustc_hex=/tmp/cargo-installMHUHx6/release/deps/librustc_hex-bbd86676ea8ea11a.rlib --extern semver=/tmp/cargo-installMHUHx6/release/deps/libsemver-d9ae0dbedf959d4c.rlib --extern serde_json=/tmp/cargo-installMHUHx6/release/deps/libserde_json-f1016826d8cb7a91.rlib --extern structopt=/tmp/cargo-installMHUHx6/release/deps/libstructopt-ca0f1d34528425c8.rlib --extern tokio=/tmp/cargo-installMHUHx6/release/deps/libtokio-8647ee04f6c65e37.rlib --extern tracing=/tmp/cargo-installMHUHx6/release/deps/libtracing-323e2f839ec433b8.rlib --extern tracing_subscriber=/tmp/cargo-installMHUHx6/release/deps/libtracing_subscriber-3d34f187b73e8e6e.rlib -L native=/tmp/cargo-installMHUHx6/release/build/sha2-asm-6a519c16d82d0965/out -L native=/tmp/cargo-installMHUHx6/release/build/sha2-asm-6a519c16d82d0965/out -L native=/tmp/cargo-installMHUHx6/release/build/ring-36ad2de4e207c249/out -L native=/lib/x86_64-linux-gnu -L native=/tmp/cargo-installMHUHx6/release/build/hidapi-7067154515d2e4b4/out -L native=/lib/x86_64-linux-gnu -L native=/tmp/cargo-installMHUHx6/release/build/libusb1-sys-224b0175d5a3bb7d/out -L native=/tmp/cargo-installMHUHx6/release/build/secp256k1-sys-73182ce49dbe34dc/out -L native=/tmp/cargo-installMHUHx6/release/build/libgit2-sys-a21c51fe2b184b49/out/build -L native=/tmp/cargo-installMHUHx6/release/build/libssh2-sys-eafb0812f21c8896/out/build -L native=/tmp/cargo-installMHUHx6/release/build/libz-sys-f448db7891fdc682/out/lib -L native=/tmp/cargo-installMHUHx6/release/build/libz-sys-f448db7891fdc682/out/lib` (signal: 9, SIGKILL: kill)

I'm running Ubuntu VM under MacOS using https://github.com/canonical/multipass. It's a fresh instance. The command history:

    1  curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    2  source $HOME/.cargo/env
    3  cargo install --git https://github.com/gakonst/foundry --bin forge --locked
    4  sudo apt-get install build-essential
    5  cargo install --git https://github.com/gakonst/foundry --bin forge --locked
    6  sudo apt-get install pkg-config
    7  cargo install --git https://github.com/gakonst/foundry --bin forge --locked
    8  sudo apt-get install pkg-config
    9  sudo apt-get install libssl-dev
   10  sudo apt-get install openssl libssl-dev
   11  sudo apt-get install libssl-dev
   12  sudo apt-get update
   13  sudo apt-get install -y libssl-dev
   14  cargo install --git https://github.com/gakonst/foundry --bin forge --locked
   15  sudo apt-get install libudev
   16  sudo apt-get install libudev-dev
   17  cargo install --git https://github.com/gakonst/foundry --bin forge --locked

Anyways, thanks for the project, it has a lot of potential!

dnoishi commented 2 years ago

Same error on macOS Monterey 12.0 with M1 chip

error: failed to compile foundry-cli v0.1.0 (https://github.com/gakonst/foundry#5d38938b), intermediate artifacts can be found at /var/folders/ym/vzm1n75s7gd4h58r_6jg6l880000gn/T/cargo-installOpN0sh

Caused by: build failed

gakonst commented 2 years ago

I wonder how much of these incompatibilities come from openssl/libssl and the libudev/libusb requirements that originate from ethers-rs...

nikitastupin commented 2 years ago

Hi @gakonst,

Thank you for the fix! I tried to build it once again but now it crashes earlier while building trezor-client with for the same reason signal: 9, SIGKILL: kill.

~ $ multipass launch --disk 10G
Launched: precocious-mallard                                                    
~ $ multipass shell precocious-mallard
ubuntu@precocious-mallard:~$ history 
    1  sudo apt-get update && sudo apt-get install -y build-essential pkg-config libssl-dev libudev-dev
    2  curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    3  source $HOME/.cargo/env
    4  cargo install --git https://github.com/gakonst/foundry --bin forge --locked
    5  history
ubuntu@precocious-mallard:~$ cargo install --git https://github.com/gakonst/foundry --bin forge --locked
    Updating git repository `https://github.com/gakonst/foundry`
  Installing foundry-cli v0.1.0 (https://github.com/gakonst/foundry#ba143e04)
    Updating crates.io index
    Updating git repository `https://github.com/gakonst/ethers-rs`
    Updating git repository `https://github.com/vorot93/evmodin`
    Updating git repository `https://github.com/rust-blockchain/evm`
    Updating git repository `https://github.com/cuviper/genawaiter`
    Updating git repository `https://github.com/vorot93/rust-i256`
    Updating git repository `https://github.com/rust-ethereum/ethabi`
    Updating git repository `https://github.com/roynalnaruto/svm-rs`
warning: package `const-oid v0.6.1` in Cargo.lock is yanked in registry `crates-io`, consider running without --locked
warning: package `const-oid v0.7.0` in Cargo.lock is yanked in registry `crates-io`, consider running without --locked
warning: package `der v0.4.3` in Cargo.lock is yanked in registry `crates-io`, consider running without --locked
warning: package `futures-channel v0.3.18` in Cargo.lock is yanked in registry `crates-io`, consider running without --locked
warning: package `futures-core v0.3.18` in Cargo.lock is yanked in registry `crates-io`, consider running without --locked
warning: package `futures-executor v0.3.18` in Cargo.lock is yanked in registry `crates-io`, consider running without --locked
warning: package `futures-io v0.3.18` in Cargo.lock is yanked in registry `crates-io`, consider running without --locked
warning: package `futures-sink v0.3.18` in Cargo.lock is yanked in registry `crates-io`, consider running without --locked
warning: package `futures-task v0.3.18` in Cargo.lock is yanked in registry `crates-io`, consider running without --locked
warning: package `futures-util v0.3.18` in Cargo.lock is yanked in registry `crates-io`, consider running without --locked
  Downloaded aes v0.6.0
  Downloaded crypto-mac v0.11.1
  Downloaded dunce v1.0.2
  Downloaded digest v0.9.0
  Downloaded block-modes v0.7.0
  Downloaded glob v0.3.0
  Downloaded hashbrown v0.11.2
  Downloaded color-spantrace v0.1.6
  Downloaded heck v0.3.3
  Downloaded crypto-bigint v0.3.2
  Downloaded tinyvec v1.5.0
  Downloaded ansi_term v0.11.0
  Downloaded arrayref v0.3.6
  Downloaded backtrace v0.3.63
  Downloaded http v0.2.5
  Downloaded base64 v0.12.3
  Downloaded console v0.14.1
  Downloaded bech32 v0.7.3
  Downloaded bincode v1.3.3
  Downloaded tracing-futures v0.2.5
  Downloaded atty v0.2.14
  Downloaded block-buffer v0.9.0
  Downloaded arrayvec v0.5.2
  Downloaded base64 v0.13.0
  Downloaded aho-corasick v0.7.18
  Downloaded tracing v0.1.29
  Downloaded tracing-core v0.1.21
  Downloaded block-padding v0.2.1
  Downloaded Inflector v0.11.4
  Downloaded addr2line v0.17.0
  Downloaded ahash v0.4.7
  Downloaded anyhow v1.0.44
  Downloaded async-trait v0.1.51
  Downloaded bit-set v0.5.2
  Downloaded arrayvec v0.7.2
  Downloaded bit-vec v0.6.3
  Downloaded autocfg v1.0.1
  Downloaded adler v1.0.2
  Downloaded ansi_term v0.12.1
  Downloaded bitflags v1.3.2
  Downloaded aes v0.7.5
  Downloaded autocfg v0.1.7
  Downloaded tracing-error v0.1.2
  Downloaded base58check v0.1.0
  Downloaded aes-soft v0.6.4
  Downloaded auto_impl v0.5.0
  Downloaded base64ct v1.1.0
  Downloaded base58 v0.1.0
  Downloaded aes-ctr v0.6.0
  Downloaded ethereum-types v0.12.1
  Downloaded bitvec v0.17.4
  Downloaded blake2b_simd v0.5.11
  Downloaded gimli v0.26.1
  Downloaded http-body v0.4.3
  Downloaded indexmap v1.7.0
  Downloaded cfg-if v0.1.10
  Downloaded cargo_metadata v0.14.1
  Downloaded hyper-rustls v0.23.0
  Downloaded matchers v0.0.1
  Downloaded mime v0.3.16
  Downloaded clap v2.33.3
  Downloaded block-buffer v0.10.0
  Downloaded colored v2.0.0
  Downloaded bitvec v0.20.4
  Downloaded cfg-if v1.0.0
  Downloaded byteorder v1.4.3
  Downloaded cargo-platform v0.1.2
  Downloaded crypto-mac v0.8.0
  Downloaded tracing-attributes v0.1.18
  Downloaded mio v0.7.13
  Downloaded byte-tools v0.3.1
  Downloaded convert_case v0.4.0
  Downloaded constant_time_eq v0.1.5
  Downloaded block-padding v0.1.5
  Downloaded block-buffer v0.7.3
  Downloaded pbkdf2 v0.6.0
  Downloaded crypto-mac v0.10.1
  Downloaded borsh-schema-derive-internal v0.9.1
  Downloaded num-rational v0.4.0
  Downloaded digest v0.8.1
  Downloaded opaque-debug v0.3.0
  Downloaded itoa v0.4.8
  Downloaded borsh-derive-internal v0.9.1
  Downloaded cc v1.0.70
  Downloaded futures-executor v0.3.18
  Downloaded cipher v0.2.5
  Downloaded pin-utils v0.1.0
  Downloaded blake2 v0.9.2
  Downloaded miniz_oxide v0.4.4
  Downloaded ctr v0.6.0
  Downloaded proc-macro-crate v1.1.0
  Downloaded proc-macro-error v1.0.4
  Downloaded proc-macro-error-attr v1.0.4
  Downloaded proc-macro-crate v0.1.5
  Downloaded radium v0.6.2
  Downloaded rand_chacha v0.2.2
  Downloaded rand_chacha v0.3.1
  Downloaded rand_core v0.5.1
  Downloaded rand_core v0.6.3
  Downloaded remove_dir_all v0.5.3
  Downloaded indenter v0.3.3
  Downloaded bs58 v0.4.0
  Downloaded byte-slice-cast v1.1.0
  Downloaded borsh-derive v0.9.1
  Downloaded const-oid v0.6.1
  Downloaded const-oid v0.7.0
  Downloaded borsh v0.9.1
  Downloaded digest v0.10.0
  Downloaded coins-bip39 v0.3.0
  Downloaded ethbloom v0.11.1
  Downloaded dialoguer v0.8.0
  Downloaded ethereum v0.10.0
  Downloaded coins-bip32 v0.3.0
  Downloaded crunchy v0.2.2
  Downloaded chrono v0.2.25
  Downloaded regex-syntax v0.6.25
  Downloaded crypto-common v0.1.0
  Downloaded num v0.1.42
  Downloaded password-hash v0.1.4
  Downloaded opaque-debug v0.2.3
  Downloaded impl-rlp v0.3.0
  Downloaded proptest v1.0.0
  Downloaded crypto-bigint v0.2.10
  Downloaded pbkdf2 v0.7.5
  Downloaded password-hash v0.2.3
  Downloaded coins-ledger v0.4.2
  Downloaded pkcs8 v0.7.6
  Downloaded rand_core v0.4.2
  Downloaded rand_isaac v0.1.1
  Downloaded rand_xorshift v0.1.1
  Downloaded rand_core v0.3.1
  Downloaded nix v0.13.1
  Downloaded elliptic-curve v0.11.5
  Downloaded ctr v0.7.0
  Downloaded eth-keystore v0.3.0
  Downloaded environmental v1.1.3
  Downloaded rand v0.6.5
  Downloaded eyre v0.6.5
  Downloaded coins-core v0.2.2
  Downloaded ecdsa v0.12.4
  Downloaded der v0.5.1
  Downloaded fnv v1.0.7
  Downloaded elliptic-curve v0.10.6
  Downloaded getrandom v0.1.16
  Downloaded primitive-types v0.10.1
  Downloaded group v0.10.0
  Downloaded reqwest v0.11.7
  Downloaded tap v1.0.1
  Downloaded rusty-fork v0.3.0
  Downloaded rustls-pemfile v0.2.1
  Downloaded ryu v1.0.5
  Downloaded object v0.27.1
  Downloaded secp256k1 v0.20.3
  Downloaded serde v1.0.130
  Downloaded sct v0.7.0
  Downloaded sharded-slab v0.1.3
  Downloaded scopeguard v1.1.0
  Downloaded rustc-demangle v0.1.21
  Downloaded signal-hook-registry v1.4.0
  Downloaded parity-scale-codec-derive v2.3.1
  Downloaded serde_derive v1.0.130
  Downloaded static_assertions v1.1.0
  Downloaded strsim v0.8.0
  Downloaded tempfile v3.2.0
  Downloaded subtle v2.4.1
  Downloaded textwrap v0.11.0
  Downloaded tracing-serde v0.1.2
  Downloaded tracing-log v0.1.2
  Downloaded try-lock v0.2.3
  Downloaded terminal_size v0.1.17
  Downloaded unicode-bidi v0.3.6
  Downloaded radium v0.3.0
  Downloaded cipher v0.3.0
  Downloaded jobserver v0.1.24
  Downloaded rand_xorshift v0.3.0
  Downloaded futures-io v0.3.18
  Downloaded form_urlencoded v1.0.1
  Downloaded parity-crypto v0.9.0
  Downloaded salsa20 v0.7.2
  Downloaded futures-sink v0.3.18
  Downloaded pin-project-internal v1.0.8
  Downloaded once_cell v1.8.0
  Downloaded unicode-segmentation v1.8.0
  Downloaded num_cpus v1.13.0
  Downloaded unicode-width v0.1.9
  Downloaded rustc-hex v2.1.0
  Downloaded impl-codec v0.5.1
  Downloaded hashbrown v0.9.1
  Downloaded spin v0.5.2
  Downloaded untrusted v0.7.1
  Downloaded unicode-xid v0.2.2
  Downloaded ipnet v2.3.1
  Downloaded openssl-sys v0.9.67
  Downloaded url v2.2.2
  Downloaded sha2 v0.8.2
  Downloaded memchr v2.4.1
  Downloaded uuid v0.8.2
  Downloaded tiny-keccak v2.0.2
  Downloaded vec_map v0.8.2
  Downloaded void v1.0.2
  Downloaded rpassword v5.0.1
  Downloaded wait-timeout v0.2.0
  Downloaded scrypt v0.5.0
  Downloaded want v0.3.0
  Downloaded scrypt v0.7.0
  Downloaded webpki v0.21.4
  Downloaded syn v1.0.82
  Downloaded rlp-derive v0.1.0
  Downloaded wyz v0.2.0
  Downloaded hex v0.4.3
  Downloaded fixed-hash v0.7.0
  Downloaded fake-simd v0.1.2
  Downloaded httpdate v1.0.1
  Downloaded rand_hc v0.1.0
  Downloaded funty v1.1.0
  Downloaded rand_chacha v0.1.1
  Downloaded tinyvec_macros v0.1.0
  Downloaded serde_json v1.0.72
  Downloaded generic-array v0.12.4
  Downloaded getrandom v0.2.3
  Downloaded typenum v1.14.0
  Downloaded version_check v0.9.3
  Downloaded regex-automata v0.1.10
  Downloaded webpki v0.22.0
  Downloaded number_prefix v0.4.0
  Downloaded hash256-std-hasher v0.15.2
  Downloaded git2 v0.13.23
  Downloaded tracing-subscriber v0.2.24
  Downloaded impl-trait-for-tuples v0.2.1
  Downloaded cpufeatures v0.2.1
  Downloaded unicode-normalization v0.1.19
  Downloaded walkdir v2.3.2
  Downloaded utf-8 v0.7.6
  Downloaded substrate-bn v0.6.0
  Downloaded chrono v0.4.19
  Downloaded rusb v0.8.1
  Downloaded triehash v0.8.4
  Downloaded rustls v0.20.2
  Downloaded uint v0.9.1
  Downloaded webpki-roots v0.21.1
  Downloaded scale-info-derive v1.0.0
  Downloaded owo-colors v1.3.0
  Downloaded tungstenite v0.16.0
  Downloaded generic-array v0.14.4
  Downloaded hmac v0.10.1
  Downloaded hash-db v0.15.2
  Downloaded webpki-roots v0.22.1
  Downloaded pin-project v1.0.8
  Downloaded k256 v0.9.6
  Downloaded hidapi v1.3.0
  Downloaded revm_precompiles v0.1.0
  Downloaded impl-serde v0.3.1
  Downloaded time v0.1.43
  Downloaded matches v0.1.9
  Downloaded instant v0.1.12
  Downloaded md-5 v0.10.0
  Downloaded percent-encoding v2.1.0
  Downloaded toml v0.5.8
  Downloaded signature v1.3.1
  Downloaded bytes v1.1.0
  Downloaded num v0.4.0
  Downloaded rlp v0.5.1
  Downloaded smallvec v1.7.0
  Downloaded num-integer v0.1.44
  Downloaded num-bigint v0.4.2
  Downloaded parking_lot v0.11.2
  Downloaded camino v1.0.5
  Downloaded salsa20 v0.8.1
  Downloaded scale-info v1.0.0
  Downloaded serde-aux v3.0.1
  Downloaded num-iter v0.1.42
  Downloaded sha-1 v0.9.8
  Downloaded itertools v0.10.1
  Downloaded parking_lot_core v0.8.5
  Downloaded tokio-macros v1.4.1
  Downloaded proc-macro2 v1.0.33
  Downloaded lock_api v0.4.5
  Downloaded tokio-tungstenite v0.16.1
  Downloaded rand_jitter v0.1.4
  Downloaded rand_os v0.1.3
  Downloaded libusb1-sys v0.5.0
  Downloaded secp256k1-sys v0.4.1
  Downloaded futures-util v0.3.18
  Downloaded futures-task v0.3.18
  Downloaded futures v0.3.17
  Downloaded hmac v0.11.0
  Downloaded lazy_static v1.4.0
  Downloaded structopt-derive v0.4.16
  Downloaded openssl-probe v0.1.4
  Downloaded structopt v0.3.23
  Downloaded httparse v1.5.1
  Downloaded rand_pcg v0.1.2
  Downloaded keccak v0.1.0
  Downloaded semver v1.0.4
  Downloaded indicatif v0.16.2
  Downloaded num-complex v0.4.0
  Downloaded pin-project-lite v0.2.7
  Downloaded futures-timer v3.0.2
  Downloaded ff v0.10.1
  Downloaded num-traits v0.2.14
  Downloaded log v0.4.14
  Downloaded tower-service v0.3.1
  Downloaded thiserror-impl v1.0.30
  Downloaded home v0.5.3
  Downloaded derive_more v0.99.16
  Downloaded serde_urlencoded v0.7.0
  Downloaded ppv-lite86 v0.2.10
  Downloaded either v1.6.1
  Downloaded socket2 v0.4.2
  Downloaded slab v0.4.4
  Downloaded zeroize v1.4.2
  Downloaded h2 v0.3.6
  Downloaded spki v0.4.1
  Downloaded quick-error v1.2.3
  Downloaded trezor-client v0.0.3
  Downloaded futures-channel v0.3.18
  Downloaded pbkdf2 v0.8.0
  Downloaded quick-error v2.0.1
  Downloaded protobuf v2.25.2
  Downloaded sha3 v0.9.1
  Downloaded quote v1.0.9
  Downloaded hyper v0.14.13
  Downloaded futures-macro v0.3.18
  Downloaded futures-core v0.3.18
  Downloaded rand v0.7.3
  Downloaded sha2 v0.9.8
  Downloaded parity-scale-codec v2.3.1
  Downloaded pkg-config v0.3.20
  Downloaded encoding_rs v0.8.28
  Downloaded rand v0.8.4
  Downloaded thread_local v1.1.3
  Downloaded same-file v1.0.6
  Downloaded thiserror v1.0.30
  Downloaded tokio-util v0.6.8
  Downloaded ripemd160 v0.9.1
  Downloaded regex v1.5.4
  Downloaded tokio-rustls v0.23.1
  Downloaded color-eyre v0.5.11
  Downloaded libgit2-sys v0.12.24+1.3.0
  Downloaded idna v0.2.3
  Downloaded tokio v1.12.0
  Downloaded sha3 v0.8.2
  Downloaded libssh2-sys v0.2.23
  Downloaded libc v0.2.103
  Downloaded libz-sys v1.1.3
  Downloaded ring v0.16.20
  Downloaded der v0.4.3
  Downloaded 347 crates (31.6 MB) in 2m 16s (largest was `ring` at 5.1 MB)
   Compiling libc v0.2.103
   Compiling proc-macro2 v1.0.33
   Compiling unicode-xid v0.2.2
   Compiling syn v1.0.82
   Compiling serde_derive v1.0.130
   Compiling serde v1.0.130
   Compiling version_check v0.9.3
   Compiling typenum v1.14.0
   Compiling cfg-if v1.0.0
   Compiling autocfg v1.0.1
   Compiling memchr v2.4.1
   Compiling spin v0.5.2
   Compiling log v0.4.14
   Compiling radium v0.6.2
   Compiling crunchy v0.2.2
   Compiling ppv-lite86 v0.2.10
   Compiling opaque-debug v0.3.0
   Compiling byteorder v1.4.3
   Compiling subtle v2.4.1
   Compiling ryu v1.0.5
   Compiling block-padding v0.2.1
   Compiling futures-core v0.3.18
   Compiling once_cell v1.8.0
   Compiling parking_lot_core v0.8.5
   Compiling serde_json v1.0.72
   Compiling itoa v0.4.8
   Compiling futures-channel v0.3.18
   Compiling futures-task v0.3.18
   Compiling pin-project-lite v0.2.7
   Compiling cpufeatures v0.2.1
   Compiling hex v0.4.3
   Compiling tiny-keccak v2.0.2
   Compiling futures-util v0.3.18
   Compiling rustc-hex v2.1.0
   Compiling tap v1.0.1
   Compiling wyz v0.2.0
   Compiling pkg-config v0.3.20
   Compiling funty v1.1.0
   Compiling byte-slice-cast v1.1.0
   Compiling arrayvec v0.7.2
   Compiling static_assertions v1.1.0
   Compiling keccak v0.1.0
   Compiling zeroize v1.4.2
   Compiling httparse v1.5.1
   Compiling smallvec v1.7.0
   Compiling semver v1.0.4
   Compiling untrusted v0.7.1
   Compiling futures-sink v0.3.18
   Compiling camino v1.0.5
   Compiling matches v0.1.9
   Compiling slab v0.4.4
   Compiling scopeguard v1.1.0
   Compiling fnv v1.0.7
   Compiling pin-utils v0.1.0
   Compiling futures-io v0.3.18
   Compiling const-oid v0.6.1
   Compiling regex-syntax v0.6.25
   Compiling encoding_rs v0.8.28
   Compiling tinyvec_macros v0.1.0
   Compiling base64 v0.13.0
   Compiling percent-encoding v2.1.0
   Compiling unicode-bidi v0.3.6
   Compiling byte-tools v0.3.1
   Compiling hashbrown v0.11.2
   Compiling opaque-debug v0.2.3
   Compiling const-oid v0.7.0
   Compiling try-lock v0.2.3
   Compiling base64ct v1.1.0
   Compiling rand_core v0.4.2
   Compiling anyhow v1.0.44
   Compiling httpdate v1.0.1
   Compiling autocfg v0.1.7
   Compiling bitflags v1.3.2
   Compiling tower-service v0.3.1
   Compiling convert_case v0.4.0
   Compiling mime v0.3.16
   Compiling ipnet v2.3.1
   Compiling unicode-width v0.1.9
   Compiling fake-simd v0.1.2
   Compiling either v1.6.1
   Compiling async-trait v0.1.51
   Compiling getrandom v0.1.16
   Compiling base58 v0.1.0
   Compiling utf-8 v0.7.6
   Compiling remove_dir_all v0.5.3
   Compiling nix v0.13.1
   Compiling protobuf v2.25.2
   Compiling rusb v0.8.1
   Compiling base64 v0.12.3
   Compiling bech32 v0.7.3
   Compiling constant_time_eq v0.1.5
   Compiling radium v0.3.0
   Compiling cfg-if v0.1.10
   Compiling arrayref v0.3.6
   Compiling arrayvec v0.5.2
   Compiling bs58 v0.4.0
   Compiling void v1.0.2
   Compiling unicode-segmentation v1.8.0
   Compiling ansi_term v0.11.0
   Compiling futures-timer v3.0.2
   Compiling vec_map v0.8.2
   Compiling strsim v0.8.0
   Compiling dunce v1.0.2
   Compiling eyre v0.6.5
   Compiling number_prefix v0.4.0
   Compiling indenter v0.3.3
   Compiling home v0.5.3
   Compiling same-file v1.0.6
   Compiling ansi_term v0.12.1
   Compiling hash-db v0.15.2
   Compiling environmental v1.1.3
   Compiling ahash v0.4.7
   Compiling quick-error v1.2.3
   Compiling glob v0.3.0
   Compiling bit-vec v0.6.3
   Compiling quick-error v2.0.1
   Compiling adler v1.0.2
   Compiling gimli v0.26.1
   Compiling rustc-demangle v0.1.21
   Compiling owo-colors v1.3.0
   Compiling openssl-probe v0.1.4
   Compiling generic-array v0.14.4
   Compiling proc-macro-error-attr v1.0.4
   Compiling proc-macro-error v1.0.4
   Compiling instant v0.1.12
   Compiling tokio v1.12.0
   Compiling indexmap v1.7.0
   Compiling num-traits v0.2.14
   Compiling num-integer v0.1.44
   Compiling num-iter v0.1.42
   Compiling num-bigint v0.4.2
   Compiling num-rational v0.4.0
   Compiling miniz_oxide v0.4.4
   Compiling lazy_static v1.4.0
   Compiling thread_local v1.1.3
   Compiling lock_api v0.4.5
   Compiling der v0.4.3
   Compiling regex-automata v0.1.10
   Compiling tinyvec v1.5.0
   Compiling rustls-pemfile v0.2.1
   Compiling form_urlencoded v1.0.1
   Compiling block-padding v0.1.5
   Compiling der v0.5.1
   Compiling rand_core v0.3.1
   Compiling rand_jitter v0.1.4
   Compiling rand_chacha v0.1.1
   Compiling rand_pcg v0.1.2
   Compiling rand v0.6.5
   Compiling textwrap v0.11.0
   Compiling itertools v0.10.1
   Compiling bitvec v0.17.4
   Compiling blake2b_simd v0.5.11
   Compiling heck v0.3.3
   Compiling walkdir v2.3.2
   Compiling hashbrown v0.9.1
   Compiling bit-set v0.5.2
   Compiling addr2line v0.17.0
   Compiling tracing-core v0.1.21
   Compiling sharded-slab v0.1.3
   Compiling spki v0.4.1
   Compiling matchers v0.0.1
   Compiling unicode-normalization v0.1.19
   Compiling rand_isaac v0.1.1
   Compiling rand_xorshift v0.1.1
   Compiling rand_hc v0.1.0
   Compiling getrandom v0.2.3
   Compiling num_cpus v1.13.0
   Compiling signal-hook-registry v1.4.0
   Compiling socket2 v0.4.2
   Compiling atty v0.2.14
   Compiling terminal_size v0.1.17
   Compiling rand_os v0.1.3
   Compiling wait-timeout v0.2.0
   Compiling time v0.1.43
   Compiling rpassword v5.0.1
   Compiling jobserver v0.1.24
   Compiling quote v1.0.9
   Compiling generic-array v0.12.4
   Compiling aho-corasick v0.7.18
   Compiling object v0.27.1
   Compiling mio v0.7.13
   Compiling want v0.3.0
   Compiling tracing-log v0.1.2
   Compiling bitvec v0.20.4
   Compiling uint v0.9.1
   Compiling hash256-std-hasher v0.15.2
   Compiling pkcs8 v0.7.6
   Compiling idna v0.2.3
   Compiling rand_core v0.6.3
   Compiling parking_lot v0.11.2
   Compiling rand_core v0.5.1
   Compiling clap v2.33.3
   Compiling colored v2.0.0
   Compiling cc v1.0.70
   Compiling digest v0.9.0
   Compiling block-buffer v0.9.0
   Compiling crypto-mac v0.11.1
   Compiling cipher v0.2.5
   Compiling cipher v0.3.0
   Compiling crypto-mac v0.8.0
   Compiling crypto-mac v0.10.1
   Compiling crypto-common v0.1.0
   Compiling block-buffer v0.10.0
   Compiling block-buffer v0.7.3
   Compiling digest v0.8.1
   Compiling num-complex v0.4.0
   Compiling regex v1.5.4
   Compiling url v2.2.2
   Compiling rand_chacha v0.3.1
   Compiling ff v0.10.1
   Compiling crypto-bigint v0.2.10
   Compiling crypto-bigint v0.3.2
   Compiling password-hash v0.2.3
   Compiling password-hash v0.1.4
   Compiling rand_xorshift v0.3.0
   Compiling rand_chacha v0.2.2
   Compiling ring v0.16.20
   Compiling libusb1-sys v0.5.0
   Compiling hidapi v1.3.0
   Compiling openssl-sys v0.9.67
   Compiling libz-sys v1.1.3
   Compiling secp256k1-sys v0.4.1
   Compiling libssh2-sys v0.2.23
   Compiling backtrace v0.3.63
   Compiling libgit2-sys v0.12.24+1.3.0
   Compiling borsh-schema-derive-internal v0.9.1
   Compiling borsh-derive-internal v0.9.1
   Compiling thiserror-impl v1.0.30
   Compiling impl-trait-for-tuples v0.2.1
   Compiling derive_more v0.99.16
   Compiling tokio-macros v1.4.1
   Compiling futures-macro v0.3.18
   Compiling tracing-attributes v0.1.18
   Compiling rlp-derive v0.1.0
   Compiling pin-project-internal v1.0.8
   Compiling signature v1.3.1
   Compiling sha2 v0.9.8
   Compiling sha3 v0.9.1
   Compiling ripemd160 v0.9.1
   Compiling sha-1 v0.9.8
   Compiling hmac v0.11.0
   Compiling aes-soft v0.6.4
   Compiling ctr v0.6.0
   Compiling salsa20 v0.7.2
   Compiling block-modes v0.7.0
   Compiling salsa20 v0.8.1
   Compiling aes v0.7.5
   Compiling ctr v0.7.0
   Compiling blake2 v0.9.2
   Compiling hmac v0.10.1
   Compiling pbkdf2 v0.6.0
   Compiling digest v0.10.0
   Compiling sha2 v0.8.2
   Compiling sha3 v0.8.2
   Compiling chrono v0.4.19
   Compiling console v0.14.1
   Compiling Inflector v0.11.4
   Compiling rand v0.8.4
   Compiling group v0.10.0
   Compiling elliptic-curve v0.11.5
   Compiling rand v0.7.3
   Compiling thiserror v1.0.30
   Compiling tracing v0.1.29
   Compiling pin-project v1.0.8
   Compiling auto_impl v0.5.0
   Compiling structopt-derive v0.4.16
   Compiling pbkdf2 v0.8.0
   Compiling aes v0.6.0
   Compiling aes-ctr v0.6.0
   Compiling pbkdf2 v0.7.5
   Compiling md-5 v0.10.0
   Compiling base58check v0.1.0
   Compiling num v0.1.42
   Compiling indicatif v0.16.2
   Compiling fixed-hash v0.7.0
   Compiling tempfile v3.2.0
   Compiling substrate-bn v0.6.0
   Compiling elliptic-curve v0.10.6
   Compiling scrypt v0.5.0
   Compiling toml v0.5.8
   Compiling bytes v1.1.0
   Compiling impl-serde v0.3.1
   Compiling cargo-platform v0.1.2
   Compiling serde_urlencoded v0.7.0
   Compiling bincode v1.3.3
   Compiling uuid v0.8.2
   Compiling tracing-serde v0.1.2
   Compiling futures-executor v0.3.18
   Compiling tracing-futures v0.2.5
   Compiling structopt v0.3.23
   Compiling scrypt v0.7.0
   Compiling coins-core v0.2.2
   Compiling chrono v0.2.25
   Compiling num v0.4.0
   Compiling dialoguer v0.8.0
   Compiling rusty-fork v0.3.0
   Compiling ecdsa v0.12.4
   Compiling webpki v0.22.0
   Compiling sct v0.7.0
   Compiling webpki v0.21.4
   Compiling secp256k1 v0.20.3
   Compiling proc-macro-crate v1.1.0
   Compiling proc-macro-crate v0.1.5
   Compiling rlp v0.5.1
   Compiling http v0.2.5
   Compiling cargo_metadata v0.14.1
   Compiling serde-aux v3.0.1
   Compiling tracing-subscriber v0.2.24
   Compiling futures v0.3.17
   Compiling eth-keystore v0.3.0
   Compiling proptest v1.0.0
   Compiling k256 v0.9.6
   Compiling webpki-roots v0.22.1
   Compiling rustls v0.20.2
   Compiling webpki-roots v0.21.1
   Compiling parity-scale-codec-derive v2.3.1
   Compiling scale-info-derive v1.0.0
   Compiling borsh-derive v0.9.1
   Compiling impl-rlp v0.3.0
   Compiling tokio-util v0.6.8
   Compiling http-body v0.4.3
   Compiling triehash v0.8.4
   Compiling tracing-error v0.1.2
   Compiling coins-ledger v0.4.2
   Compiling coins-bip32 v0.3.0
   Compiling tokio-rustls v0.23.1
   Compiling tungstenite v0.16.0
   Compiling parity-scale-codec v2.3.1
   Compiling borsh v0.9.1
   Compiling h2 v0.3.6
   Compiling color-spantrace v0.1.6
   Compiling coins-bip39 v0.3.0
   Compiling tokio-tungstenite v0.16.1
   Compiling impl-codec v0.5.1
   Compiling scale-info v1.0.0
   Compiling hyper v0.14.13
   Compiling color-eyre v0.5.11
   Compiling primitive-types v0.10.1
   Compiling ethbloom v0.11.1
   Compiling hyper-rustls v0.23.0
   Compiling evm-core v0.33.0 (https://github.com/rust-blockchain/evm#9ac4d47b)
   Compiling ethereum-types v0.12.1
   Compiling reqwest v0.11.7
   Compiling evm-runtime v0.33.0 (https://github.com/rust-blockchain/evm#9ac4d47b)
   Compiling ethabi v16.0.0 (https://github.com/rust-ethereum/ethabi?branch=master#7f4bb3d6)
   Compiling parity-crypto v0.9.0
   Compiling ethereum v0.10.0
   Compiling svm-rs v0.2.1 (https://github.com/roynalnaruto/svm-rs#4dd8d3f9)
   Compiling evm-gasometer v0.33.0 (https://github.com/rust-blockchain/evm#9ac4d47b)
   Compiling ethers-core v0.6.0 (https://github.com/gakonst/ethers-rs#0d2fc535)
   Compiling revm_precompiles v0.1.0
   Compiling evm v0.33.0 (https://github.com/rust-blockchain/evm#9ac4d47b)
   Compiling ethers-providers v0.6.0 (https://github.com/gakonst/ethers-rs#0d2fc535)
   Compiling ethers-contract-abigen v0.6.0 (https://github.com/gakonst/ethers-rs#0d2fc535)
   Compiling ethers-etherscan v0.2.0 (https://github.com/gakonst/ethers-rs#0d2fc535)
   Compiling ethers-solc v0.1.0 (https://github.com/gakonst/ethers-rs#0d2fc535)
   Compiling foundry-utils v0.1.0 (/home/ubuntu/.cargo/git/checkouts/foundry-f45668fa08523154/ba143e0/utils)
   Compiling ethers-contract-derive v0.6.0 (https://github.com/gakonst/ethers-rs#0d2fc535)
   Compiling ethers-contract v0.6.0 (https://github.com/gakonst/ethers-rs#0d2fc535)
   Compiling trezor-client v0.0.3
error: could not compile `trezor-client`

Caused by:
  process didn't exit successfully: `rustc --crate-name trezor_client /home/ubuntu/.cargo/registry/src/github.com-1ecc6299db9ec823/trezor-client-0.0.3/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=z -C panic=abort -C linker-plugin-lto -C codegen-units=1 -C debuginfo=2 --cfg 'feature="f_ethereum"' --cfg 'feature="primitive-types"' -C metadata=2efe84037483bfb2 -C extra-filename=-2efe84037483bfb2 --out-dir /tmp/cargo-installUlZC2F/release/deps -L dependency=/tmp/cargo-installUlZC2F/release/deps --extern byteorder=/tmp/cargo-installUlZC2F/release/deps/libbyteorder-df6cf91b39636208.rmeta --extern hex=/tmp/cargo-installUlZC2F/release/deps/libhex-6f6da113d2c18b19.rmeta --extern hidapi=/tmp/cargo-installUlZC2F/release/deps/libhidapi-a4b0681873e5e401.rmeta --extern log=/tmp/cargo-installUlZC2F/release/deps/liblog-37b812f234130393.rmeta --extern primitive_types=/tmp/cargo-installUlZC2F/release/deps/libprimitive_types-533903f22b8ee854.rmeta --extern protobuf=/tmp/cargo-installUlZC2F/release/deps/libprotobuf-bbf1f5bbcef930e1.rmeta --extern rusb=/tmp/cargo-installUlZC2F/release/deps/librusb-0563354e0ed72915.rmeta --cap-lints allow -L native=/lib/x86_64-linux-gnu -L native=/tmp/cargo-installUlZC2F/release/build/hidapi-7067154515d2e4b4/out -L native=/lib/x86_64-linux-gnu -L native=/tmp/cargo-installUlZC2F/release/build/libusb1-sys-224b0175d5a3bb7d/out` (signal: 9, SIGKILL: kill)
warning: build failed, waiting for other jobs to finish...
error: failed to compile `foundry-cli v0.1.0 (https://github.com/gakonst/foundry#ba143e04)`, intermediate artifacts can be found at `/tmp/cargo-installUlZC2F`

Caused by:
  build failed
gakonst commented 2 years ago

@nikitastupin can you give this another try? We bumped trezor-client in the latest commit #277 which should remove any weird runtime requirements

gakonst commented 2 years ago

Can you maybe try with higher memory on multipass? Sigkill is a weird error, I wonder if it's OOM https://github.com/rust-lang/rust/issues/51309

gakonst commented 2 years ago

OK so this works:

multipass launch --disk 10G --mem 8G
multipass shell <...>
sudo apt update && sudo apt install build-essential libssl-dev pkg-config
git clone https://github.com/gakonst/foundry
cd foundry
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
cargo b

So it's indeed a memory issue.

nikitastupin commented 2 years ago

Thank you very much! I should have guessed that SIGKILL may be a symptom of an out of memory issue.

I was able to build foundry. Now I'll give it a try πŸš€

nikitastupin commented 2 years ago

It is also successfully compiled on aarch64 Ubuntu 20.04 VM (multipass under Apple M1) πŸ‘