application-research / estuary

A custom IPFS/Filecoin node that makes it easy to pin IPFS content and make Filecoin deals.
https://docs.estuary.tech
Other
240 stars 66 forks source link

Build fails on Mac machine #407

Closed tjayrush closed 2 years ago

tjayrush commented 2 years ago

Describe the bug Build of repo on Mac fails

To Reproduce Steps to reproduce the behavior:

  1. Clone the repo
  2. Cd into the folder and do make clean all
  3. Te build fails

Expected behavior Expect the build not to fail

Actual behavior Fails

Additional context The build fails with the following error

jrush@web3:~/D/estuary|master✓➤ make clean all
rm -rf  build/.filecoin-install build/.update-modules  estuary estuary-shuttle benchest bsget
git submodule update --init --recursive
git submodule update --init --recursive && cd extern/filecoin-ffi/ && git checkout -q
touch build/.update-modules
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C extern/filecoin-ffi/ .install-filcrypto
make[1]: `.install-filcrypto' is up to date.
go build  -ldflags="-X=main.appVersion=v0.1.8-18-ga157e8f"
# github.com/zondax/hid
In file included from ../../go/pkg/mod/github.com/zondax/hid@v0.9.0/hid_enabled.go:38:
../../go/pkg/mod/github.com/zondax/hid@v0.9.0/hidapi/mac/hid.c:693:34: warning: 'kIOMasterPortDefault' is deprecated: first deprecated in macOS 12.0 [-Wdeprecated-declarations]
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/IOKit.framework/Headers/IOKitLib.h:123:19: note: 'kIOMasterPortDefault' has been explicitly marked deprecated here
# github.com/filecoin-project/filecoin-ffi/cgo
ld: library not found for -lhwloc
clang: error: linker command failed with exit code 1 (use -v to see invocation)
# github.com/filecoin-project/filecoin-ffi/generated
ld: library not found for -lhwloc
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [estuary] Error 2

I found a few references to it on the web, and it seems to be a single, one line change, but I don't know GoLang dependencies well enough to figure out how to fix it. Here's a change to some other repo that I think is the same issue. It looks like it might be a one-liner.

https://github.com/elixir-circuits/circuits_uart/pull/128/files

Hope this helps.

mvjq commented 2 years ago

Hello @tjayrush, did you install the lhwloc package? You could try with sudo apt install libhwloc-dev (or https://www.open-mpi.org/projects/hwloc/) and see if works.

tjayrush commented 2 years ago

apt doesn't appear to work on a mac. I tried brew install lhwloc and got this:

jrush@web3:~/D/estuary|master✓➤ brew install hwloc
Warning: hwloc 2.8.0 is already installed and up-to-date.
To reinstall 2.8.0, run:
  brew reinstall hwloc
jrush@web3:~/D/estuary|master✓➤ brew reinstall hwloc
==> Downloading https://ghcr.io/v2/homebrew/core/hwloc/manifests/2.8.0-1
Already downloaded: /Users/jrush/Library/Caches/Homebrew/downloads/15cdd0d92a80f95a6be4420b79243c5d9b1c899c9df6640c5a2894bef9c282b7--hwloc-2.8.0-1.bottle_manifest.json
==> Downloading https://ghcr.io/v2/homebrew/core/hwloc/blobs/sha256:5a490d201828781f1d09be139c066761c8a21da6fe94eaeeb7833afeae694855
Already downloaded: /Users/jrush/Library/Caches/Homebrew/downloads/647f96629ec3f95d1c0ec4257ca13f45c809a14ca9941a6c1952748c3e8319fd--hwloc--2.8.0.arm64_monterey.bottle.1.tar.gz
==> Reinstalling hwloc
==> Pouring hwloc--2.8.0.arm64_monterey.bottle.1.tar.gz
🍺  /opt/homebrew/Cellar/hwloc/2.8.0: 968 files, 10.6MB
==> Running `brew cleanup hwloc`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
jrush@web3:~/D/estuary|master✓➤ make clean all
rm -rf  build/.filecoin-install build/.update-modules  estuary estuary-shuttle benchest bsget
git submodule update --init --recursive
git submodule update --init --recursive && cd extern/filecoin-ffi/ && git checkout -q
touch build/.update-modules
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C extern/filecoin-ffi/ .install-filcrypto
make[1]: `.install-filcrypto' is up to date.
go build  -ldflags="-X=main.appVersion=v0.1.8-18-ga157e8f"
# github.com/zondax/hid
In file included from ../../go/pkg/mod/github.com/zondax/hid@v0.9.0/hid_enabled.go:38:
../../go/pkg/mod/github.com/zondax/hid@v0.9.0/hidapi/mac/hid.c:693:34: warning: 'kIOMasterPortDefault' is deprecated: first deprecated in macOS 12.0 [-Wdeprecated-declarations]
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/IOKit.framework/Headers/IOKitLib.h:123:19: note: 'kIOMasterPortDefault' has been explicitly marked deprecated here
# github.com/filecoin-project/filecoin-ffi/cgo
ld: library not found for -lhwloc
clang: error: linker command failed with exit code 1 (use -v to see invocation)
# github.com/filecoin-project/filecoin-ffi/generated
ld: library not found for -lhwloc
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [estuary] Error 2

Same result.

Sorry I didn't previously read the README.md. It's a disease I have -- not reading :-)

tjayrush commented 2 years ago

This is on a Mac.

alvin-reyes commented 2 years ago

Have you tried the troubleshooting guide instructions?

https://github.com/application-research/estuary#guide-for-missing-hwloc-on-m1-macs

alvin-reyes commented 2 years ago

@tjayrush please let us know if you need more info. There is an instruction guide on how to build estuary on M1 Macs. Feel free to re-open this github issue if you're still encountering installation issues. You can also reach out to us on slack.