Error building package - Error: glib: undefined method
Hi @staticfloat ,
I receive the following error when trying to build Homebrew.jl on Julia 1.1.0 on a Macbook pro running High Sierra 10.13.6. Can you help me solve this? We're in the final stage of a development project so it's rather urgent.
Here's the error message:
(v1.1) pkg> build Homebrew
Building Homebrew → ~/.julia/packages/Homebrew/s09IX/deps/build.log
┌ Error: Error building Homebrew:
│ ==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
│ https://github.com/Homebrew/brew#donations
│ Already up-to-date.
│ Uninstalling icu4c... (254 files, 68.4MB)
│ ==> Installing icu4c from staticfloat/juliatranslated
│ ==> Downloading https://homebrew.bintray.com/bottles/icu4c-64.2.high_sierra.bottle.tar.gz
│ ==> Pouring icu4c-64.2.high_sierra.bottle.tar.gz
│ ==> Caveats
│ icu4c is keg-only, which means it was not symlinked into /Users/George/.julia/packages/Homebrew/s09IX/deps/usr,
│ because macOS provides libicucore.dylib (but nothing else).
│
│ If you need to have icu4c first in your PATH run:
│ echo 'export PATH="/Users/George/.julia/packages/Homebrew/s09IX/deps/usr/opt/icu4c/bin:$PATH"' >> ~/.bash_profile
│ echo 'export PATH="/Users/George/.julia/packages/Homebrew/s09IX/deps/usr/opt/icu4c/sbin:$PATH"' >> ~/.bash_profile
│
│ For compilers to find icu4c you may need to set:
│ export LDFLAGS="-L/Users/George/.julia/packages/Homebrew/s09IX/deps/usr/opt/icu4c/lib"
│ export CPPFLAGS="-I/Users/George/.julia/packages/Homebrew/s09IX/deps/usr/opt/icu4c/include"
│
│ For pkg-config to find icu4c you may need to set:
│ export PKG_CONFIG_PATH="/Users/George/.julia/packages/Homebrew/s09IX/deps/usr/opt/icu4c/lib/pkgconfig"
│
│ ==> Summary
│ 🍺 /Users/George/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/icu4c/64.2: 257 files, 69.5MB
│ Uninstalling harfbuzz... (180 files, 9.5MB)
│ Error: glib: undefined method uses_from_macos' for Formulary::FormulaNamespace4ff9cd134b033db5870ae4d7ca9f06e7::Glib:Class │ ERROR: LoadError: ArgumentError: brew info` failed for ["freetype", "glib", "graphite2"]!
│ Stacktrace:
│ [1] json(::Array{String,1}) at /Users/George/.julia/packages/Homebrew/s09IX/src/API.jl:192
│ [2] info(::Array{String,1}) at /Users/George/.julia/packages/Homebrew/s09IX/src/API.jl:229
│ [3] #direct_deps#10(::Bool, ::Function, ::String) at /Users/George/.julia/packages/Homebrew/s09IX/src/API.jl:285
│ [4] #direct_deps at ./none:0 [inlined]
│ [5] #deps_tree#17(::Bool, ::Function, ::String) at /Users/George/.julia/packages/Homebrew/s09IX/src/API.jl:306
│ [6] #deps_tree at ./tuple.jl:0 [inlined]
│ [7] #deps_sorted#24(::Bool, ::Function, ::String) at /Users/George/.julia/packages/Homebrew/s09IX/src/API.jl:379
│ [8] deps_sorted at /Users/George/.julia/packages/Homebrew/s09IX/src/API.jl:379 [inlined]
│ [9] #add#29(::Bool, ::Bool, ::Function, ::String) at /Users/George/.julia/packages/Homebrew/s09IX/src/API.jl:420
│ [10] #add at ./tuple.jl:0 [inlined]
│ [11] #add#36(::Bool, ::Bool, ::Function, ::Homebrew.BrewPkg) at /Users/George/.julia/packages/Homebrew/s09IX/src/API.jl:472
│ [12] #add at ./none:0 [inlined]
│ [13] #upgrade#8(::Bool, ::Function) at /Users/George/.julia/packages/Homebrew/s09IX/src/API.jl:144
│ [14] #upgrade at ./none:0 [inlined]
│ [15] #update#6(::Bool, ::Function) at /Users/George/.julia/packages/Homebrew/s09IX/src/API.jl:56
│ [16] update() at /Users/George/.julia/packages/Homebrew/s09IX/src/API.jl:50
│ [17] top-level scope at /Users/George/.julia/packages/Homebrew/s09IX/deps/build.jl:3
│ [18] include at ./boot.jl:326 [inlined]
│ [19] include_relative(::Module, ::String) at ./loading.jl:1038
│ [20] include(::Module, ::String) at ./sysimg.jl:29
│ [21] include(::String) at ./client.jl:403
│ [22] top-level scope at none:0
│ in expression starting at /Users/George/.julia/packages/Homebrew/s09IX/deps/build.jl:1
└ @ Pkg.Operations /Users/osx/buildbot/slave/package_osx64/build/usr/share/julia/stdlib/v1.1/Pkg/src/Operations.jl:1075
If you pkg> add Homebrew#master does that change anything?
@staticfloat that worked. Will we have to pin to a master version in our manifest.toml for our package to compile?
For now, until a new version of Homebrew.jl is released.
Does v0.7.2 fix this? Should we still pin to master?