tezedge / tezedge-client

Tezos Client/Wallet written in Rust.
MIT License
14 stars 4 forks source link

Problems building on Fedora Linux #2

Open vivekvpandya opened 3 years ago

vivekvpandya commented 3 years ago

Please provide detailed steps to build on Fedora.

binier commented 3 years ago

Please add cargo build's output to the issue.

vivekvpandya commented 3 years ago

I have installed all dependencies

_udev.c:303: undefined reference to `udev_enumerate_unref'
          /usr/bin/ld: /home/vivek/dev/tezedge-client/target/debug/deps/liblibusb1_sys-724435d239aa5bbb.rlib(linux_udev.o):
 in function `linux_udev_hotplug_poll':
          /home/vivek/.cargo/registry/src/github.com-1ecc6299db9ec823/libusb1-sys-0.5.0/libusb/libusb/os/linux_udev.c:314: 
undefined reference to `udev_monitor_receive_device'
          collect2: error: ld returned 1 exit status                                                                       

  = help: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path spec
ified                                                                                                                      
  = note: use the `-l` flag to specify native libraries to link                                                            
  = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust
-lang.org/cargo/reference/build-scripts.html#cargorustc-link-libkindname)                                                  

error: could not compile `cli` due to previous error; 1 warning emitted                                                    
[vivek@fedora tezedge-client]$ echo $LD_LIBRARY_PATH                                                                       
:/usr/lib64:/usr/lib64/:/usr/lib64/:/usr/lib/:/usr/share/lib
binier commented 3 years ago

I built this package with fedora:latest docker, steps:

dnf install git curl clang pkg-config libsodium-devel hidapi-devel libudev-devel
curl https://sh.rustup.rs -sSf | sh
git clone https://github.com/tezedge/tezedge-client
cd tezedge-client
source $HOME/.cargo/env
rustup override set 1.52.1
export SODIUM_USE_PKG_CONFIG=1
cargo build --release

You sure you haven't missed a dependency/step?

vivekvpandya commented 3 years ago
[vivek@fedora tezos]$ sudo dnf install git curl clang pkg-config libsodium-devel hidapi-devel libudev-devel
[sudo] password for vivek: 
Last metadata expiration check: 5:06:38 ago on Thu 29 Jul 2021 12:38:38 PM IST.
Package git-2.31.1-1.fc34.x86_64 is already installed.
Package curl-7.76.0-1.fc34.x86_64 is already installed.
Package clang-12.0.0-2.fc34.x86_64 is already installed.
Package pkgconf-pkg-config-1.7.3-6.fc34.x86_64 is already installed.
Package libsodium-devel-1.0.18-7.fc34.x86_64 is already installed.
Package hidapi-devel-0.10.1-3.fc34.x86_64 is already installed.
Package systemd-devel-248.6-1.fc34.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

On release build I am getting │ = note: /usr/bin/ld: /home/vivek/dev/tezedge-client/target/release/deps/libhidapi-35739db60fe9f713.rlib(hid.o): undefined │ reference to symbol 'udev_list_entry_get_next@@LIBUDEV_183' │ /usr/bin/ld: /usr/lib64/libudev.so.1: error adding symbols: DSO missing from command line │ collect2: error: ld returned 1 exit status │
│ = help: some extern functions couldn't be found; some native libraries may need to be installed or have their path spec │ified │ = note: use the -l flag to specify native libraries to link │ = note: use the cargo:rustc-link-lib directive to specify the native libraries to link with Cargo (see https://doc.rust │-lang.org/cargo/reference/build-scripts.html#cargorustc-link-libkindname)