wookay / H3.jl

H3.jl ⬡ provides a Julia version of H3, Hexagonal hierarchical geospatial indexing system. https://github.com/uber/h3
Other
25 stars 4 forks source link

Can't build package (v0.1.2, Julia 1.4.1) #8

Open evanfields opened 4 years ago

evanfields commented 4 years ago

I'm unable to build H3 on Julia 1.4.1 / macOS in a clean environment with nothing else. I didn't see any installation instructions in the readme, so I assume the package manager is the preferred installation method. Build error and versioninfo:

(justh3) pkg> add H3
   Updating registry at `~/.julia/registries/General`
   Updating git-repo `https://github.com/JuliaRegistries/General.git`
  Resolving package versions...
   Updating `~/Desktop/justh3/Project.toml`
  [f62fece2] + H3 v0.1.2
   Updating `~/Desktop/justh3/Manifest.toml`
  [b99e7846] + BinaryProvider v0.5.9
  [fa961155] + CEnum v0.2.0
  [f62fece2] + H3 v0.1.2
  [8f399da3] + Libdl
  [56ddb016] + Logging
  [ea8e919c] + SHA

(justh3) pkg> build
   Building H3 → `~/.julia/packages/H3/F4Z32/deps/build.log`
┌ Error: Error building `H3`:
│ ERROR: LoadError: LibraryProduct(nothing, ["libh3"], :libh3, "Prefix(/Users/evan/.julia/packages/H3/F4Z32/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] error(::String) at ./error.jl:33
│  [2] write_deps_file(::String, ::Array{LibraryProduct,1}; verbose::Bool, isolate::Bool) at /Users/evan/.julia/packages/BinaryProvider/GeAtj/src/Products.jl:419
│  [3] top-level scope at /Users/evan/.julia/packages/H3/F4Z32/deps/build.jl:48
│  [4] include(::String) at ./client.jl:439
│  [5] top-level scope at none:5
│ in expression starting at /Users/evan/.julia/packages/H3/F4Z32/deps/build.jl:48
└ @ Pkg.Operations /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:892

julia> versioninfo()
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin18.7.0)
  CPU: Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-8.0.1 (ORCJIT, skylake)
wookay commented 4 years ago

LibraryProduct(nothing, ... seems to be strange.

could you build with master branch?

pkg> dev H3
evanfields commented 4 years ago

I'm afraid it's the same:

Status `~/Desktop/justh3/Project.toml`
  (empty environment)

(justh3) pkg> dev H3
    Cloning git-repo `https://github.com/wookay/H3.jl.git`
  Resolving package versions...
   Updating `~/Desktop/justh3/Project.toml`
  [f62fece2] + H3 v0.1.3-DEV [`~/.julia/dev/H3`]
   Updating `~/Desktop/justh3/Manifest.toml`
  [b99e7846] + BinaryProvider v0.5.9
  [fa961155] + CEnum v0.2.0
  [f62fece2] + H3 v0.1.3-DEV [`~/.julia/dev/H3`]
  [8f399da3] + Libdl
  [56ddb016] + Logging
  [ea8e919c] + SHA
   Building H3 → `~/.julia/dev/H3/deps/build.log`
┌ Error: Error building `H3`:
│ [ Info: Downloading https://github.com/wookay/H3Builder/releases/download/v3.6.3/H3.v3.6.3.x86_64-apple-darwin14.tar.gz to /Users/evan/.julia/dev/H3/deps/usr/downloads/H3.v3.6.3.x86_64-apple-darwin14.tar.gz...
│ ERROR: LoadError: LibraryProduct(nothing, ["libh3"], :libh3, "Prefix(/Users/evan/.julia/dev/H3/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] error(::String) at ./error.jl:33
│  [2] write_deps_file(::String, ::Array{LibraryProduct,1}; verbose::Bool, isolate::Bool) at /Users/evan/.julia/packages/BinaryProvider/GeAtj/src/Products.jl:419
│  [3] top-level scope at /Users/evan/.julia/dev/H3/deps/build.jl:58
│  [4] include(::String) at ./client.jl:439
│  [5] top-level scope at none:5
│ in expression starting at /Users/evan/.julia/dev/H3/deps/build.jl:58
[15:25:32] ######################################################################## 100.0%##O#- #
└ @ Pkg.Operations /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:892

(Thanks for looking into this, by the way)

wookay commented 4 years ago

It is difficult to be sure, try again please. thanks

evanfields commented 4 years ago

If I'm trying this right, the result seems unchanged. Definitely let me know if I'm not doing the right test here!

(justh3) pkg> st
Status `~/Desktop/justh3/Project.toml`
  (empty environment)

(justh3) pkg> add H3#master
   Updating git-repo `https://github.com/wookay/H3.jl.git`
   Updating registry at `~/.julia/registries/General`
   Updating git-repo `https://github.com/JuliaRegistries/General.git`
  Resolving package versions...
   Updating `~/Desktop/justh3/Project.toml`
  [f62fece2] + H3 v0.1.3-DEV #master (https://github.com/wookay/H3.jl.git)
   Updating `~/Desktop/justh3/Manifest.toml`
  [b99e7846] + BinaryProvider v0.5.9
  [fa961155] + CEnum v0.2.0
  [f62fece2] + H3 v0.1.3-DEV #master (https://github.com/wookay/H3.jl.git)
  [8f399da3] + Libdl
  [56ddb016] + Logging
  [ea8e919c] + SHA

(justh3) pkg> build
   Building H3 → `~/.julia/packages/H3/aRArW/deps/build.log`
┌ Error: Error building `H3`:
│ [ Info: Found a valid dl path libh3.1.dylib while looking for libh3
│ [ Info: /Users/evan/.julia/packages/H3/aRArW/deps/usr/lib/libh3.1.dylib matches our search criteria of libh3
│ [ Info: Found a valid dl path libh3.1.dylib while looking for libh3
│ [ Info: /Users/evan/.julia/packages/H3/aRArW/deps/usr/lib/libh3.1.dylib matches our search criteria of libh3
│ [ Info: Found a valid dl path libh3.dylib while looking for libh3
│ [ Info: /Users/evan/.julia/packages/H3/aRArW/deps/usr/lib/libh3.dylib matches our search criteria of libh3
│ [ Info: Could not locate libh3 inside /Users/evan/.julia/packages/H3/aRArW/deps/usr/lib
│ ERROR: LoadError: LibraryProduct(nothing, ["libh3"], :libh3, "Prefix(/Users/evan/.julia/packages/H3/aRArW/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] error(::String) at ./error.jl:33
│  [2] write_deps_file(::String, ::Array{LibraryProduct,1}; verbose::Bool, isolate::Bool) at /Users/evan/.julia/packages/BinaryProvider/GeAtj/src/Products.jl:419
│  [3] top-level scope at /Users/evan/.julia/packages/H3/aRArW/deps/build.jl:58
│  [4] include(::String) at ./client.jl:439
│  [5] top-level scope at none:5
│ in expression starting at /Users/evan/.julia/packages/H3/aRArW/deps/build.jl:58
└ @ Pkg.Operations /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:892

If I first remove H3 from ~/.julia/compiled and ~/.julia/packages the result is slightly different:

(justh3) pkg> add H3#master
   Updating git-repo `https://github.com/wookay/H3.jl.git`
   Updating registry at `~/.julia/registries/General`
   Updating git-repo `https://github.com/JuliaRegistries/General.git`
  Resolving package versions...
   Updating `~/Desktop/justh3/Project.toml`
  [f62fece2] + H3 v0.1.3-DEV #master (https://github.com/wookay/H3.jl.git)
   Updating `~/Desktop/justh3/Manifest.toml`
  [b99e7846] + BinaryProvider v0.5.9
  [fa961155] + CEnum v0.2.0
  [f62fece2] + H3 v0.1.3-DEV #master (https://github.com/wookay/H3.jl.git)
  [8f399da3] + Libdl
  [56ddb016] + Logging
  [ea8e919c] + SHA
   Building H3 → `~/.julia/packages/H3/aRArW/deps/build.log`
┌ Error: Error building `H3`:
│ [ Info: Directory /Users/evan/.julia/packages/H3/aRArW/deps/usr/lib does not exist!
│ [ Info: Downloading https://github.com/wookay/H3Builder/releases/download/v3.6.3/H3.v3.6.3.x86_64-apple-darwin14.tar.gz to /Users/evan/.julia/packages/H3/aRArW/deps/usr/downloads/H3.v3.6.3.x86_64-apple-darwin14.tar.gz...
│ [ Info: No hash cache found
│ [ Info: Calculated hash 3f2d8270cff2a8065244c729a913a571b83dfdb4455e5b1cc97aafd322d727d3 for file /Users/evan/.julia/packages/H3/aRArW/deps/usr/downloads/H3.v3.6.3.x86_64-apple-darwin14.tar.gz
│ [ Info: Installing /Users/evan/.julia/packages/H3/aRArW/deps/usr/downloads/H3.v3.6.3.x86_64-apple-darwin14.tar.gz into /Users/evan/.julia/packages/H3/aRArW/deps/usr
│ [ Info: Found a valid dl path libh3.1.dylib while looking for libh3
│ [ Info: /Users/evan/.julia/packages/H3/aRArW/deps/usr/lib/libh3.1.dylib matches our search criteria of libh3
│ [ Info: Found a valid dl path libh3.dylib while looking for libh3
│ [ Info: /Users/evan/.julia/packages/H3/aRArW/deps/usr/lib/libh3.dylib matches our search criteria of libh3
│ [ Info: Could not locate libh3 inside /Users/evan/.julia/packages/H3/aRArW/deps/usr/lib
│ ERROR: LoadError: LibraryProduct(nothing, ["libh3"], :libh3, "Prefix(/Users/evan/.julia/packages/H3/aRArW/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] error(::String) at ./error.jl:33
│  [2] write_deps_file(::String, ::Array{LibraryProduct,1}; verbose::Bool, isolate::Bool) at /Users/evan/.julia/packages/BinaryProvider/GeAtj/src/Products.jl:419
│  [3] top-level scope at /Users/evan/.julia/packages/H3/aRArW/deps/build.jl:58
│  [4] include(::String) at ./client.jl:439
│  [5] top-level scope at none:5
│ in expression starting at /Users/evan/.julia/packages/H3/aRArW/deps/build.jl:58
[09:33:30] ######################################################################## 100.0%##O#- #
└ @ Pkg.Operations /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:892
wookay commented 4 years ago

what is result of Libdl.dlopen this file? /Users/evan/.julia/packages/H3/aRArW/deps/usr/lib/libh3.dylib

in my case,

~/.julia/dev/H3/deps/usr/lib$ julia

julia> using Libdl

julia> dlopen_e("libh3.dylib")
Ptr{Nothing} @0x00007fc5c4d23260

julia> dlopen("libh3.dylib")
Ptr{Nothing} @0x00007fc5c4d23260
evanfields commented 4 years ago
"/Users/evan/.julia/packages/H3/aRArW/deps/usr/lib"

julia> using Libdl

julia> dlopen_e("libh3.dylib")
Ptr{Nothing} @0x00007fd1ca8200d0

julia> dlopen("libh3.dylib")
Ptr{Nothing} @0x00007fd1ca8200d0
evanfields commented 4 years ago

One thing I should have already mentioned which seems probably not relevant to Julia build steps but just in case: on this machine I do have a conda environment with Python h3 installed.

wookay commented 4 years ago

I don't know why it happens, no more idea here. so I just let it generate the deps.jl file in this case. please build again . thank you very much.

evanfields commented 4 years ago

Like a charm!

(justh3) pkg> st
Status `~/Desktop/justh3/Project.toml`
  (empty environment)

(justh3) pkg> add H3#master
   Updating git-repo `https://github.com/wookay/H3.jl.git`
   Updating registry at `~/.julia/registries/General`
   Updating git-repo `https://github.com/JuliaRegistries/General.git`
  Resolving package versions...
   Updating `~/Desktop/justh3/Project.toml`
  [f62fece2] + H3 v0.1.3-DEV #master (https://github.com/wookay/H3.jl.git)
   Updating `~/Desktop/justh3/Manifest.toml`
  [b99e7846] + BinaryProvider v0.5.9
  [fa961155] + CEnum v0.2.0
  [f62fece2] + H3 v0.1.3-DEV #master (https://github.com/wookay/H3.jl.git)
  [8f399da3] + Libdl
  [56ddb016] + Logging
  [ea8e919c] + SHA
   Building H3 → `~/.julia/packages/H3/YC79B/deps/build.log`

(justh3) pkg>

(tests pass as well.) The log is

[ Info: Downloading https://github.com/wookay/H3Builder/releases/download/v3.6.3/H3.v3.6.3.x86_64-apple-darwin14.tar.gz to /Users/evan/.julia/packages/H3/YC79B/deps/usr/downloads/H3.v3.6.3.x86_64-apple-darwin14.tar.gz...
[12:10:21] #=#=#                                                                         ^M[12:10:21] ^M[12:10:22] ######################################################################## 100.0%^M[12:10:22]                                                                            0.0%^M[12:10:22] ######################################################################## 100.0%
wookay commented 4 years ago

good!

evanfields commented 4 years ago

Thank you for your swift help with this issue :)