Homebrew.jl icon indicating copy to clipboard operation
Homebrew.jl copied to clipboard

Cairo install fail on sierra

Open bluehope opened this issue 7 years ago • 13 comments

@staticfloat Hi, I recently got some error while installing "cairo". I've tried to install it manually by

               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: https://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.5.3-pre+5 (2017-05-16 09:15 UTC)
 _/ |\__'_|_|_|\__'_|  |  Commit c3b8ad0ba9* (0 days old release-0.5)
|__/                   |  x86_64-apple-darwin16.5.0

julia> versioninfo()
Julia Version 0.5.3-pre+5
Commit c3b8ad0ba9* (2017-05-16 09:15 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin16.5.0)
  CPU: Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
  WORD_SIZE: 64
  BLAS: libgfortblas
  LAPACK: liblapack
  LIBM: libopenlibm
  LLVM: libLLVM-3.7.1 (ORCJIT, haswell)

julia>
using Homebrew; Homebrew.add("cairo");

And I got such errors below. Thanks in advance!

julia> Homebrew.add("cairo");
==> Installing fontconfig from staticfloat/juliatranslated
==> Downloading https://homebrew.bintray.com/bottles/fontconfig-2.12.1_2.sierra.bottle.t
Already downloaded: /Users/bluehope/Library/Caches/Homebrew.jl/fontconfig-2.12.1_2.sierra.bottle.tar.gz
==> Pouring fontconfig-2.12.1_2.sierra.bottle.tar.gz
Error: No such file or directory - /Users/bluehope/.julia/v0.5/Homebrew/deps/usr/etc/fonts/conf.d/10-hinting-slight.conf
Warning: Bottle installation failed: building from source.
==> Downloading https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.12.
Already downloaded: /Users/bluehope/Library/Caches/Homebrew.jl/fontconfig-2.12.1.tar.bz2
==> Downloading https://raw.githubusercontent.com/Homebrew/formula-patches/3790bcd/fontc
Already downloaded: /Users/bluehope/Library/Caches/Homebrew.jl/fontconfig--patch-e7c074109a367bf3966578034b20d11f7e0b4a611785a040aef1fd11359af04d.diff
==> Patching
==> Applying patch-2.12.1-fccache.diff
patching file src/fccache.c
==> ./configure --disable-silent-rules --enable-static --with-add-fonts=/System/Library/
Last 15 lines from /Users/bluehope/Library/Logs/Homebrew/fontconfig/01.configure:
checking for struct statfs.f_flags... yes
checking for struct statfs.f_fstypename... yes
checking for struct dirent.d_type... yes
checking for FREETYPE... no
configure: error: in `/private/tmp/fontconfig-20170517-4279-fjffei/fontconfig-2.12.1':
configure: error: The pkg-config script could not be found or is too old.  Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.

Alternatively, you may set the environment variables FREETYPE_CFLAGS
and FREETYPE_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

To get pkg-config, see <http://pkg-config.freedesktop.org/>.
See `config.log' for more details

If reporting this issue please do so at (not Homebrew/brew or Homebrew/core):
https://github.com/staticfloat/homebrew-juliatranslated/issues

ERROR: failed process: Process(`/Users/bluehope/.julia/v0.5/Homebrew/deps/usr/bin/brew install --ignore-dependencies staticfloat/juliatranslated/fontconfig`, ProcessExited(1)) [1]
 in pipeline_error(::Base.Process) at ./process.jl:616
 in run(::Cmd) at ./process.jl:592
 in #brew#4(::Bool, ::Bool, ::Bool, ::Bool, ::Bool, ::Function, ::Cmd) at /Users/bluehope/.julia/v0.5/Homebrew/src/API.jl:19
 in (::Homebrew.#kw##brew)(::Array{Any,1}, ::Homebrew.#brew, ::Cmd) at ./<missing>:0
 in #install_and_link#42 at /Users/bluehope/.julia/v0.5/Homebrew/src/API.jl:492 [inlined]
 in (::Homebrew.#kw##install_and_link)(::Array{Any,1}, ::Homebrew.#install_and_link, ::String) at ./<missing>:0
 in #add#33(::Bool, ::Bool, ::Function, ::String) at /Users/bluehope/.julia/v0.5/Homebrew/src/API.jl:462
 in add(::String) at /Users/bluehope/.julia/v0.5/Homebrew/src/API.jl:412

julia>

bluehope avatar May 16 '17 15:05 bluehope

And this issue is also related with https://github.com/JuliaGraphics/Cairo.jl/issues/165.

bluehope avatar May 16 '17 15:05 bluehope

I'm not sure why this would happen, can you try installing it again? Do a using Homebrew; Homebrew.cleanup() first.

staticfloat avatar May 17 '17 01:05 staticfloat

I've cleared Homebrew like below.

julia> Pkg.rm("Homebrew")
INFO: Removing Homebrew (unregistered)

julia> Pkg.rm("Homebrew")
INFO: Nothing to be done

Add Cairo

julia> Pkg.add("Cairo")
INFO: Installing Cairo v0.3.0
INFO: Installing Homebrew v0.5.6
INFO: Building Homebrew
Updated 2 taps (homebrew/core, homebrew/science).
==> New Formulae
cockroach
==> Updated Formulae
arangodb                            homebrew/science/lastz              miniupnpc                           tiger-vnc                           ykpers
ffmpeg                              homebrew/science/vips               rrdtool                             traildb
homebrew/science/getdp              homebrew/science/xmgredit           tee-clc                             weechat
INFO: Building Cairo
WARNING: BinDeps.shlib_ext is deprecated.
  likely near /Users/bluehope/.julia/v0.5/Cairo/deps/build.jl:112
INFO: Package database updated
INFO: METADATA is out-of-date — you may not have the latest version of Cairo
INFO: Use `Pkg.update()` to get the latest versions of your packages

(Pkg.update() was finished.) And, I got error like below (_jl_libcairo not defined).

julia> using Cairo
INFO: Precompiling module Cairo.
ERROR: LoadError: UndefVarError: _jl_libcairo not defined
 in anonymous at ./<missing>:?
 in include_from_node1(::String) at ./loading.jl:488
 in include_from_node1(::String) at /usr/local/opt.user/julia_0.5/usr/lib/julia/sys.dylib:?
 in macro expansion; at ./none:2 [inlined]
 in anonymous at ./<missing>:?
 in eval(::Module, ::Any) at ./boot.jl:234
 in eval(::Module, ::Any) at /usr/local/opt.user/julia_0.5/usr/lib/julia/sys.dylib:?
 in process_options(::Base.JLOptions) at ./client.jl:242
 in _start() at ./client.jl:321
 in _start() at /usr/local/opt.user/julia_0.5/usr/lib/julia/sys.dylib:?
while loading /Users/bluehope/.julia/v0.5/Cairo/src/Cairo.jl, in expression starting on line 16
ERROR: Failed to precompile Cairo to /Users/bluehope/.julia/lib/v0.5/Cairo.ji.
 in compilecache(::String) at ./loading.jl:593
 in require(::Symbol) at ./loading.jl:422
 in require(::Symbol) at /usr/local/opt.user/julia_0.5/usr/lib/julia/sys.dylib:?

bluehope avatar May 17 '17 08:05 bluehope

You need to run Pkg.build("Cairo"), not Pkg.add("Cairo") again. -E

On Wed, May 17, 2017 at 1:12 AM, Hongkee Yoon [email protected] wrote:

I've cleared Homebrew like below.

julia> Pkg.rm("Homebrew") INFO: Removing Homebrew (unregistered)

julia> Pkg.rm("Homebrew") INFO: Nothing to be done

Add Cairo

julia> Pkg.add("Cairo") INFO: Installing Cairo v0.3.0 INFO: Installing Homebrew v0.5.6 INFO: Building Homebrew Updated 2 taps (homebrew/core, homebrew/science).==> New Formulae cockroach==> Updated Formulae arangodb homebrew/science/lastz miniupnpc tiger-vnc ykpers ffmpeg homebrew/science/vips rrdtool traildb homebrew/science/getdp homebrew/science/xmgredit tee-clc weechat INFO: Building Cairo WARNING: BinDeps.shlib_ext is deprecated. likely near /Users/bluehope/.julia/v0.5/Cairo/deps/build.jl:112 INFO: Package database updated INFO: METADATA is out-of-date — you may not have the latest version of Cairo INFO: Use Pkg.update() to get the latest versions of your packages

(Pkg.update() was finished.) And, I got error like below (_jl_libcairo not defined).

julia> using Cairo INFO: Precompiling module Cairo. ERROR: LoadError: UndefVarError: _jl_libcairo not defined in anonymous at ./:? in include_from_node1(::String) at ./loading.jl:488 in include_from_node1(::String) at /usr/local/opt.user/julia_0.5/usr/lib/julia/sys.dylib:? in macro expansion; at ./none:2 [inlined] in anonymous at ./:? in eval(::Module, ::Any) at ./boot.jl:234 in eval(::Module, ::Any) at /usr/local/opt.user/julia_0.5/usr/lib/julia/sys.dylib:? in process_options(::Base.JLOptions) at ./client.jl:242 in _start() at ./client.jl:321 in _start() at /usr/local/opt.user/julia_0.5/usr/lib/julia/sys.dylib:?while loading /Users/bluehope/.julia/v0.5/Cairo/src/Cairo.jl, in expression starting on line 16 ERROR: Failed to precompile Cairo to /Users/bluehope/.julia/lib/v0.5/Cairo.ji. in compilecache(::String) at ./loading.jl:593 in require(::Symbol) at ./loading.jl:422 in require(::Symbol) at /usr/local/opt.user/julia_0.5/usr/lib/julia/sys.dylib:?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/JuliaPackaging/Homebrew.jl/issues/189#issuecomment-302018639, or mute the thread https://github.com/notifications/unsubscribe-auth/AAH_aMIcK8lD_JnWQz1inLUntH5_7Nd7ks5r6qwIgaJpZM4NctdF .

staticfloat avatar May 17 '17 08:05 staticfloat

Thanks, I've tried

Pkg.build("Cairo");

and then

using Cairo

The result is as below. This gives the same error...

[bluehope:~] % julia
               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: https://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.5.3-pre+5 (2017-05-16 09:15 UTC)
 _/ |\__'_|_|_|\__'_|  |  Commit c3b8ad0ba9* (1 day old release-0.5)
|__/                   |  x86_64-apple-darwin16.5.0

julia> Pkg.build("Cairo")
INFO: Building Homebrew
Updated 2 taps (homebrew/core, homebrew/science).
==> New Formulae
allure                              audacious                           bdsup2sub                           dcos-cli                            moodbar
==> Updated Formulae
aws-sdk-cpp                   certbot                       gist                          homebrew/science/hypre        pre-commit                    winetricks
awscli                        coffeescript                  [email protected]                    leaps                         tcpreplay
bluepill                      firebase-cli                  homebrew/science/gmsh         monax                         tcptraceroute
INFO: Building Cairo
WARNING: BinDeps.shlib_ext is deprecated.
  likely near /Users/bluehope/.julia/v0.5/Cairo/deps/build.jl:112

julia> using Cairo
INFO: Precompiling module Cairo.
ERROR: LoadError: UndefVarError: _jl_libcairo not defined
 in anonymous at ./<missing>:?
 in include_from_node1(::String) at ./loading.jl:488
 in include_from_node1(::String) at /usr/local/opt.user/julia_0.5/usr/lib/julia/sys.dylib:?
 in macro expansion; at ./none:2 [inlined]
 in anonymous at ./<missing>:?
 in eval(::Module, ::Any) at ./boot.jl:234
 in eval(::Module, ::Any) at /usr/local/opt.user/julia_0.5/usr/lib/julia/sys.dylib:?
 in process_options(::Base.JLOptions) at ./client.jl:242
 in _start() at ./client.jl:321
 in _start() at /usr/local/opt.user/julia_0.5/usr/lib/julia/sys.dylib:?
while loading /Users/bluehope/.julia/v0.5/Cairo/src/Cairo.jl, in expression starting on line 16
ERROR: Failed to precompile Cairo to /Users/bluehope/.julia/lib/v0.5/Cairo.ji.
 in compilecache(::String) at ./loading.jl:593
 in require(::Symbol) at ./loading.jl:422
 in require(::Symbol) at /usr/local/opt.user/julia_0.5/usr/lib/julia/sys.dylib:?

bluehope avatar May 17 '17 12:05 bluehope

Hmmm, Pkg.build() thinks that libcairo is available. That's weird. Try the following:

using Homebrew
Homebrew.rm("cairo")
Homebrew.add("cairo")
Pkg.build("Cairo")

staticfloat avatar May 17 '17 16:05 staticfloat

Hi, I've tried as you suggested (only added using Cairo).

using Homebrew
Homebrew.rm("cairo")
Homebrew.add("cairo")
Pkg.build("Cairo")
using Cairo

I've still got the same error...

               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: https://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.5.3-pre+5 (2017-05-16 09:15 UTC)
 _/ |\__'_|_|_|\__'_|  |  Commit c3b8ad0ba9* (1 day old release-0.5)
|__/                   |  x86_64-apple-darwin16.5.0

julia> using Homebrew

julia> Homebrew.rm("cairo")

julia> Homebrew.add("cairo")

julia> Pkg.build("Cairo")
INFO: Building Homebrew
Updated 1 tap (homebrew/core).
==> Updated Formulae
gofabric8              libphonenumber         openshift-cli          pyenv                  tth
kops                   minizinc               prometheus             syncthing
INFO: Building Cairo
WARNING: BinDeps.shlib_ext is deprecated.
  likely near /Users/bluehope/.julia/v0.5/Cairo/deps/build.jl:112

julia> using Cairo
INFO: Precompiling module Cairo.
ERROR: LoadError: UndefVarError: _jl_libcairo not defined
 in anonymous at ./<missing>:?
 in include_from_node1(::String) at ./loading.jl:488
 in include_from_node1(::String) at /usr/local/opt.user/julia_0.5/usr/lib/julia/sys.dylib:?
 in macro expansion; at ./none:2 [inlined]
 in anonymous at ./<missing>:?
 in eval(::Module, ::Any) at ./boot.jl:234
 in eval(::Module, ::Any) at /usr/local/opt.user/julia_0.5/usr/lib/julia/sys.dylib:?
 in process_options(::Base.JLOptions) at ./client.jl:242
 in _start() at ./client.jl:321
 in _start() at /usr/local/opt.user/julia_0.5/usr/lib/julia/sys.dylib:?
while loading /Users/bluehope/.julia/v0.5/Cairo/src/Cairo.jl, in expression starting on line 16
ERROR: Failed to precompile Cairo to /Users/bluehope/.julia/lib/v0.5/Cairo.ji.
 in compilecache(::String) at ./loading.jl:593
 in require(::Symbol) at ./loading.jl:422
 in require(::Symbol) at /usr/local/opt.user/julia_0.5/usr/lib/julia/sys.dylib:?

bluehope avatar May 17 '17 17:05 bluehope

Wait, Homebrew.add("cairo") didn't do anything? try Homebrew.rm("cairo"; force=true, verbose=true) and Homebrew.add("cairo"; verbose=true)

staticfloat avatar May 17 '17 17:05 staticfloat

Hi, verbose option gave me more info. Still I get "UndefVarError: _jl_libcairo not defined" message.

julia> using Homebrew

julia> Homebrew.rm("cairo"; force=true, verbose=true)

julia> Homebrew.add("cairo"; verbose=true)
runtime_deps: String["pixman","pcre","libpng","freetype","fontconfig","gettext","libffi","glib"]
translation: beginning for pkg-config
translation: successfully finished for pkg-config
translation: beginning for pixman
translation: replacing dependency pkg-config because it's been translated before
translation: successfully finished for pixman
translation: beginning for libpng
translation: successfully finished for libpng
translation: beginning for freetype
translation: replacing dependency libpng because it's been translated before
translation: successfully finished for freetype
translation: beginning for fontconfig
translation: using staticfloat/juliadeps/fontconfig for the source of our translation
translation: replacing dependency pkg-config because it's been translated before
translation: replacing dependency freetype because it's been translated before
translation: successfully finished for staticfloat/juliadeps/fontconfig
translation: beginning for autoconf
translation: successfully finished for autoconf
translation: beginning for automake
translation: replacing dependency autoconf because it's been translated before
translation: successfully finished for automake
translation: beginning for libffi
translation: replacing dependency autoconf because it's been translated before
translation: replacing dependency automake because it's been translated before
translation: successfully finished for libffi
translation: beginning for pcre
translation: replacing dependency automake because it's been translated before
translation: replacing dependency autoconf because it's been translated before
translation: successfully finished for pcre
translation: beginning for gettext
translation: successfully finished for gettext
translation: beginning for libtool
translation: successfully finished for libtool
translation: beginning for glib
translation: replacing dependency pkg-config because it's been translated before
translation: replacing dependency autoconf because it's been translated before
translation: replacing dependency automake because it's been translated before
translation: replacing dependency libtool because it's been translated before
translation: replacing dependency gettext because it's been translated before
translation: replacing dependency libffi because it's been translated before
translation: replacing dependency pcre because it's been translated before
translation: successfully finished for glib
sorted_deps: AbstractString["staticfloat/juliatranslated/pixman","staticfloat/juliatranslated/libpng","staticfloat/juliatranslated/freetype","staticfloat/juliatranslated/fontconfig","staticfloat/juliatranslated/libffi","staticfloat/juliatranslated/pcre","staticfloat/juliatranslated/gettext","staticfloat/juliatranslated/glib"]
build_deps only: AbstractString["staticfloat/juliatranslated/pkg-config","staticfloat/juliatranslated/autoconf","staticfloat/juliatranslated/automake","staticfloat/juliatranslated/libtool"]
translation: beginning for cairo
translation: replacing dependency automake because it's been translated before
translation: replacing dependency autoconf because it's been translated before
translation: replacing dependency libtool because it's been translated before
translation: replacing dependency pkg-config because it's been translated before
translation: replacing dependency freetype because it's been translated before
translation: replacing dependency fontconfig because it's been translated before
translation: replacing dependency libpng because it's been translated before
translation: replacing dependency pixman because it's been translated before
translation: replacing dependency glib because it's been translated before
translation: successfully finished for cairo

julia> Pkg.build("Cairo")
INFO: Building Homebrew
Updated 2 taps (homebrew/core, homebrew/science).
==> Updated Formulae
minicom
INFO: Building Cairo
WARNING: BinDeps.shlib_ext is deprecated.
  likely near /Users/bluehope/.julia/v0.5/Cairo/deps/build.jl:112

julia> using Cairo
INFO: Precompiling module Cairo.
ERROR: LoadError: UndefVarError: _jl_libcairo not defined
 in anonymous at ./<missing>:?
 in include_from_node1(::String) at ./loading.jl:488
 in include_from_node1(::String) at /usr/local/opt.user/julia_0.5/usr/lib/julia/sys.dylib:?
 in macro expansion; at ./none:2 [inlined]
 in anonymous at ./<missing>:?
 in eval(::Module, ::Any) at ./boot.jl:234
 in eval(::Module, ::Any) at /usr/local/opt.user/julia_0.5/usr/lib/julia/sys.dylib:?
 in process_options(::Base.JLOptions) at ./client.jl:242
 in _start() at ./client.jl:321
 in _start() at /usr/local/opt.user/julia_0.5/usr/lib/julia/sys.dylib:?
while loading /Users/bluehope/.julia/v0.5/Cairo/src/Cairo.jl, in expression starting on line 16
ERROR: Failed to precompile Cairo to /Users/bluehope/.julia/lib/v0.5/Cairo.ji.
 in compilecache(::String) at ./loading.jl:593
 in require(::Symbol) at ./loading.jl:422
 in require(::Symbol) at /usr/local/opt.user/julia_0.5/usr/lib/julia/sys.dylib:?

bluehope avatar May 18 '17 01:05 bluehope

This is very strange, because it is not installing cairo, it gets through the translation routines, but doesn't actually install it.

Please run mv ~/.julia/v0.5/Homebrew/deps/usr mv ~/.julia/v0.5/Homebrew/deps/usr2. This will move your entire Homebrew.jl Homebrew installation to the side, and allow it to start over from scratch. Once you've done that, open up Julia and run Pkg.build(). This will reinstall every Homebrew package you've ever installed, but is a good way to check to see if your Homebrew installation has somehow gotten itself into some inconsistent state.

staticfloat avatar May 18 '17 16:05 staticfloat

@staticfloat Hi, Hmm I've also tried to remove everything under ~/.julia/v0.5/Homebrew/ and install everything new. However, this still gave me the same error.

I may try on the clean new user account...

bluehope avatar May 22 '17 14:05 bluehope

Can you post the output of Pkg.build() after you remove the ~/.julia/v0.5/Homebrew/deps/usr directory?

staticfloat avatar May 22 '17 17:05 staticfloat

@staticfloat I'm also having troubles building Cairo (anything it seems) on OS X 10.11.16/v0.6 on a clean package directory. I Tried to fix things by hand but I always run into new errors, it seems there's something wrong with the overall setup. I also got the PKG_CONFIG error sometimes, but now the error comes from autoreconf (running brew install glib with verbose on):

==> autoreconf -i -f
Failed to execute: autoreconf

See here for the log https://github.com/JuliaGraphics/Cairo.jl/issues/194.

This might be relevant: https://github.com/Homebrew/legacy-homebrew/issues/24468

Note that if I remove the --ignore-dependencies then it works.

jonathanBieler avatar Jul 12 '17 10:07 jonathanBieler