Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot build Cairo.jl on macOS Mojave #271

Closed
ronisbr opened this issue Mar 8, 2019 · 94 comments · Fixed by #292
Closed

Cannot build Cairo.jl on macOS Mojave #271

ronisbr opened this issue Mar 8, 2019 · 94 comments · Fixed by #292

Comments

@ronisbr
Copy link

ronisbr commented Mar 8, 2019

Hi guys!

I am trying to build Cairo.jl on macOS Mojave (clean Julia installation) and I am getting the following error:

┌ Error: Error building `Cairo`:
│ ==> Installing graphite2 from staticfloat/juliatranslated
│ ==> Downloading https://homebrew.bintray.com/bottles/graphite2-1.3.13.mojave.bottle.tar.gz
│ Already downloaded: /Users/ronan.arraes/Library/Caches/Homebrew.jl/downloads/36f9054572b26853c4726b48a48041476190c6e2069d088be488bd9489445ade--graphite2-1.3.13.mojave.bottle.tar.gz
│ ==> Pouring graphite2-1.3.13.mojave.bottle.tar.gz
│ 🍺  /Users/ronan.arraes/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/graphite2/1.3.13: 18 files, 232.2KB
│ Warning: Already linked: /Users/ronan.arraes/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/graphite2/1.3.13
│ ==> Installing gettext from staticfloat/juliatranslated
│ ==> Downloading https://homebrew.bintray.com/bottles/gettext-0.19.8.1.mojave.bottle.tar.gz
│ Already downloaded: /Users/ronan.arraes/Library/Caches/Homebrew.jl/downloads/20fb183d8882abab5874937646456a6d73fcd3510ec65a0b2a54fdfeb0174519--gettext-0.19.8.1.mojave.bottle.tar.gz
│ ==> Pouring gettext-0.19.8.1.mojave.bottle.tar.gz
│ ==> Caveats
│ gettext is keg-only, which means it was not symlinked into /Users/ronan.arraes/.julia/packages/Homebrew/s09IX/deps/usr,
│ because macOS provides the BSD gettext library & some software gets confused if both are in the library path.
│
│ If you need to have gettext first in your PATH run:
│   echo 'export PATH="/Users/ronan.arraes/.julia/packages/Homebrew/s09IX/deps/usr/opt/gettext/bin:$PATH"' >> ~/.zshrc
│
│ For compilers to find gettext you may need to set:
│   export LDFLAGS="-L/Users/ronan.arraes/.julia/packages/Homebrew/s09IX/deps/usr/opt/gettext/lib"
│   export CPPFLAGS="-I/Users/ronan.arraes/.julia/packages/Homebrew/s09IX/deps/usr/opt/gettext/include"
│
│ ==> Summary
│ 🍺  /Users/ronan.arraes/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/gettext/0.19.8.1: 1,935 files, 16.9MB
│
│ signal (11): Segmentation fault: 11
│ in expression starting at /Users/ronan.arraes/.julia/packages/Cairo/CXPG1/deps/build.jl:165
│ _platform_strcmp at /usr/lib/system/libsystem_platform.dylib (unknown line)
│ Allocations: 20714313 (Pool: 20711314; Big: 2999); GC: 46
└ @ Pkg.Operations /Users/osx/buildbot/slave/package_osx64/build/usr/share/julia/stdlib/v1.1/Pkg/src/Operations.jl:1075

Trying to build manually Cairo leads to:

julia> Pkg.build("Cairo")
  Building LibCURL ─→ `~/.julia/packages/LibCURL/OoXMv/deps/build.log`
  Building WinRPM ──→ `~/.julia/packages/WinRPM/Y9QdZ/deps/build.log`
  Building Homebrew → `~/.julia/packages/Homebrew/s09IX/deps/build.log`
  Building Cairo ───→ `~/.julia/packages/Cairo/CXPG1/deps/build.log`
┌ Error: Error building `Cairo`:
│
│ signal (11): Segmentation fault: 11
│ in expression starting at /Users/ronan.arraes/.julia/packages/Cairo/CXPG1/deps/build.jl:165
│ _platform_strcmp at /usr/lib/system/libsystem_platform.dylib (unknown line)
│ Allocations: 19803997 (Pool: 19801167; Big: 2830); GC: 44
└ @ Pkg.Operations /Users/osx/buildbot/slave/package_osx64/build/usr/share/julia/stdlib/v1.1/Pkg/src/Operations.jl:1075
@mcmcgrath13
Copy link

I am also getting this error, both locally and on Travis

@aramirezreyes
Copy link

Me as well.
Using Julia Version 1.0.2 (2018-11-08)
Mac Os Mojave 10.14.3

@cormullion
Copy link
Member

cormullion commented Mar 9, 2019

I can now see this error on Travis, which looks to have been introduced since I last ran it (which was 5 days ago, Tuesday):

https://travis-ci.org/JuliaGraphics/Luxor.jl/jobs/503554126

(Although Travis builds on the previous macOS release rather than the latest Mojave, I think.)

It might be a fontconfig/pango problem?

@lobingera
Copy link
Contributor

@cormullion It's obviously a homebrew/brew problem in the first place. Do you have a build log with homebrew version output available?

@cormullion
Copy link
Member

Only the Travis logs I limked to... I've not had the problem locally (i've pinned a few things to avoid these productivity-ruining issues.. :).

@sdanthine
Copy link

Get similar tasting error:
┌ Error: Error building Cairo:

│ signal (11): Segmentation fault: 11
│ in expression starting at /Users/sdanthine/.julia/packages/Cairo/CXPG1/deps/build.jl:165
│ _platform_strcmp at /usr/lib/system/libsystem_platform.dylib (unknown line)
│ Allocations: 19234553 (Pool: 19231774; Big: 2779); GC: 42

Funny thing is, managed to build it on one computer, not on the other. Both are Mac Mojave, both times initially Queryverse needed Cairo.

Below is the message I get from initial install of Queryverse. Any ideas where to go? Thanks

┌ Error: Error building Cairo, showing the last 100 of log:
│ See: https://docs.brew.sh/Homebrew-and-Python
│ ==> Summary
│ 🍺 /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/python/3.7.2_2: 3,861 files, 59.7MB
│ Warning: Already linked: /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/python/3.7.2_2
│ ==> Installing libffi from staticfloat/juliatranslated
│ ==> Downloading https://homebrew.bintray.com/bottles/libffi-3.2.1.mojave.bottle.tar.gz
│ Already downloaded: /Users/sdanthine/Library/Caches/Homebrew.jl/downloads/89b4ef328be250153e7a2b39982ac446e0b3bbfe7f3e2708912ba1976862c302--libffi-3.2.1.mojave.bottle.tar.gz
│ ==> Pouring libffi-3.2.1.mojave.bottle.tar.gz
│ ==> Caveats
│ libffi is keg-only, which means it was not symlinked into /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr,
│ because some formulae require a newer version of libffi.

│ For compilers to find libffi you may need to set:
│ export LDFLAGS="-L/Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/opt/libffi/lib"

│ For pkg-config to find libffi you may need to set:
│ export PKG_CONFIG_PATH="/Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/opt/libffi/lib/pkgconfig"

│ ==> Summary
│ 🍺 /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/libffi/3.2.1: 16 files, 297.0KB
│ ==> Installing glib from staticfloat/juliatranslated
│ ==> Downloading https://homebrew.bintray.com/bottles/glib-2.60.0_1.mojave.bottle.tar.gz
│ ==> Pouring glib-2.60.0_1.mojave.bottle.tar.gz
│ 🍺 /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/glib/2.60.0_1: 432 files, 15.3MB
│ Warning: Already linked: /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/glib/2.60.0_1
│ ==> Installing libpng from staticfloat/juliatranslated
│ ==> Downloading https://homebrew.bintray.com/bottles/libpng-1.6.36.mojave.bottle.tar.gz
│ Already downloaded: /Users/sdanthine/Library/Caches/Homebrew.jl/downloads/b401f5b07a537975da7de448c4bbdaf0c2112d5dc7d8e0955e0d4fb938909010--libpng-1.6.36.mojave.bottle.tar.gz
│ ==> Pouring libpng-1.6.36.mojave.bottle.tar.gz
│ 🍺 /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/libpng/1.6.36: 27 files, 1.2MB
│ Warning: Already linked: /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/libpng/1.6.36
│ ==> Installing freetype from staticfloat/juliatranslated
│ ==> Downloading https://homebrew.bintray.com/bottles/freetype-2.9.1.mojave.bottle.tar.gz
│ Already downloaded: /Users/sdanthine/Library/Caches/Homebrew.jl/downloads/89f20f0e2fae652cad0bf2c354912f65951b055050a0cf525f6a67939cb6e682--freetype-2.9.1.mojave.bottle.tar.gz
│ ==> Pouring freetype-2.9.1.mojave.bottle.tar.gz
│ 🍺 /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/freetype/2.9.1: 60 files, 2.6MB
│ Warning: Already linked: /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/freetype/2.9.1
│ ==> Installing fontconfig from staticfloat/juliatranslated
│ ==> Downloading https://homebrew.bintray.com/bottles/fontconfig-2.13.1.mojave.bottle.tar.gz
│ Already downloaded: /Users/sdanthine/Library/Caches/Homebrew.jl/downloads/b7ad94d49bcdca22738f50b570efc07c7a20f98a469b3c4b32198b7318b8af5a--fontconfig-2.13.1.mojave.bottle.tar.gz
│ ==> Pouring fontconfig-2.13.1.mojave.bottle.tar.gz
│ ==> Regenerating font cache, this may take a while
│ ==> /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/fontconfig/2.13.1/bin/fc-cache -frv
│ 🍺 /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/fontconfig/2.13.1: 531 files, 3.3MB
│ Warning: Already linked: /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/fontconfig/2.13.1
│ ==> Installing pixman from staticfloat/juliatranslated
│ ==> Downloading https://homebrew.bintray.com/bottles/pixman-0.38.0.mojave.bottle.tar.gz
│ Already downloaded: /Users/sdanthine/Library/Caches/Homebrew.jl/downloads/0c26d4c3daf0b26cd91366caf1df3eca0bad5611e9742a0f8b409d6b80fc6a53--pixman-0.38.0.mojave.bottle.tar.gz
│ ==> Pouring pixman-0.38.0.mojave.bottle.tar.gz
│ 🍺 /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/pixman/0.38.0: 13 files, 1.3MB
│ Warning: Already linked: /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/pixman/0.38.0
│ ==> Installing cairo from staticfloat/juliatranslated
│ ==> Downloading https://homebrew.bintray.com/bottles/cairo-1.16.0.mojave.bottle.tar.gz
│ Already downloaded: /Users/sdanthine/Library/Caches/Homebrew.jl/downloads/fafc9fd181a939883ef055697994edea57d091a35299109bf774fc91092fbae7--cairo-1.16.0.mojave.bottle.tar.gz
│ ==> Pouring cairo-1.16.0.mojave.bottle.tar.gz
│ 🍺 /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/cairo/1.16.0: 117 files, 5.5MB
│ Warning: Already linked: /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/cairo/1.16.0
│ ==> Installing icu4c from staticfloat/juliatranslated
│ ==> Downloading https://homebrew.bintray.com/bottles/icu4c-63.1.mojave.bottle.tar.gz
│ Already downloaded: /Users/sdanthine/Library/Caches/Homebrew.jl/downloads/88108185da55bf1af475d5e191e97f633514bd24c1c70bb89029af6cf5cc5185--icu4c-63.1.mojave.bottle.tar.gz
│ ==> Pouring icu4c-63.1.mojave.bottle.tar.gz
│ ==> Caveats
│ icu4c is keg-only, which means it was not symlinked into /Users/sdanthine/.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/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/opt/icu4c/bin:$PATH"' >> ~/.bash_profile
│ echo 'export PATH="/Users/sdanthine/.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/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/opt/icu4c/lib"
│ export CPPFLAGS="-I/Users/sdanthine/.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/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/opt/icu4c/lib/pkgconfig"

│ ==> Summary
│ 🍺 /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/icu4c/63.1: 254 files, 68.4MB
│ ==> Installing fribidi from staticfloat/juliatranslated
│ ==> Downloading https://homebrew.bintray.com/bottles/fribidi-1.0.5.mojave.bottle.tar.gz
│ Already downloaded: /Users/sdanthine/Library/Caches/Homebrew.jl/downloads/b966c6f589c81500014b64f8e15ff29e9b70f3e7ee8e0b0b5851f700c2ad0fa4--fribidi-1.0.5.mojave.bottle.tar.gz
│ ==> Pouring fribidi-1.0.5.mojave.bottle.tar.gz
│ 🍺 /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/fribidi/1.0.5: 66 files, 581.4KB
│ Warning: Already linked: /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/fribidi/1.0.5
│ ==> Installing harfbuzz from staticfloat/juliatranslated
│ ==> Downloading https://homebrew.bintray.com/bottles/harfbuzz-2.3.1.mojave.bottle.tar.gz
│ Already downloaded: /Users/sdanthine/Library/Caches/Homebrew.jl/downloads/784a181552c10546bdab9595d963a36fa65d6e17cc04609285349cb81be623b9--harfbuzz-2.3.1.mojave.bottle.tar.gz
│ ==> Pouring harfbuzz-2.3.1.mojave.bottle.tar.gz
│ 🍺 /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/harfbuzz/2.3.1: 180 files, 9.5MB
│ Warning: Already linked: /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/harfbuzz/2.3.1
│ ==> Installing pango from staticfloat/juliatranslated
│ ==> Downloading https://homebrew.bintray.com/bottles/pango-1.42.4_1.mojave.bottle.tar.gz
│ Already downloaded: /Users/sdanthine/Library/Caches/Homebrew.jl/downloads/f7d576fd30d48fab15ea38e97c79854a517864b3a64199be1550eb79e1143cf3--pango-1.42.4_1.mojave.bottle.tar.gz
│ ==> Pouring pango-1.42.4_1.mojave.bottle.tar.gz
│ 🍺 /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/pango/1.42.4_1: 106 files, 4.4MB
│ Warning: Already linked: /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/pango/1.42.4_1

│ signal (11): Segmentation fault: 11
│ in expression starting at /Users/sdanthine/.julia/packages/Cairo/CXPG1/deps/build.jl:165
│ _platform_strcmp at /usr/lib/system/libsystem_platform.dylib (unknown line)
│ Allocations: 20858472 (Pool: 20855284; Big: 3188); GC: 46

│ Full log at /Users/sdanthine/.julia/packages/Cairo/CXPG1/deps/build.log

@lobingera
Copy link
Contributor

I can see the same thing on a recent build in travis. My first (and only) guess is, something changed in brew,

@cormullion
Copy link
Member

It's confusing me that Travis is running:

ProductName:	Mac OS X
ProductVersion:	10.13.3

(which is High Sierra, not Mojave).

@jonathanBieler
Copy link
Contributor

jonathanBieler commented Mar 14, 2019

Can this be reproduced using brew alone :

brew install cairo

/Users/username/.julia/packages/Homebrew/s09IX/deps/usr/bin/brew install cairo

?

@sdanthine
Copy link

sdanthine commented Mar 14, 2019

I did /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/bin/brew reinstall cairo

then tried using Queryverse with error as below once more. Really puzzing to me.

[ Info: Precompiling Queryverse [612083be-0b0f-5412-89c1-4e7c75506a58]
ERROR: LoadError: Cairo not properly installed. Please run
Pkg.build("Cairo")
Stacktrace:
 [1] error(::String, ::String) at ./error.jl:42
 [2] top-level scope at none:0
 [3] include at ./boot.jl:326 [inlined]
 [4] include_relative(::Module, ::String) at ./loading.jl:1038
 [5] include(::Module, ::String) at ./sysimg.jl:29
 [6] top-level scope at none:2
 [7] eval at ./boot.jl:328 [inlined]
 [8] eval(::Expr) at ./client.jl:404
 [9] top-level scope at ./none:3
in expression starting at /Users/sdanthine/.julia/packages/Cairo/CXPG1/src/Cairo.jl:9
ERROR: LoadError: Failed to precompile Cairo [159f3aea-2a34-519c-b102-8c37f9878175] to /Users/sdanthine/.julia/compiled/v1.1/Cairo/l6vnT.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1197
 [3] _require(::Base.PkgId) at ./loading.jl:960
 [4] require(::Base.PkgId) at ./loading.jl:858
 [5] require(::Module, ::Symbol) at ./loading.jl:853
 [6] include at ./boot.jl:326 [inlined]
 [7] include_relative(::Module, ::String) at ./loading.jl:1038
 [8] include(::Module, ::String) at ./sysimg.jl:29
 [9] top-level scope at none:2
 [10] eval at ./boot.jl:328 [inlined]
 [11] eval(::Expr) at ./client.jl:404
 [12] top-level scope at ./none:3
in expression starting at /Users/sdanthine/.julia/packages/Rsvg/uwc9D/src/Rsvg.jl:8
ERROR: LoadError: Failed to precompile Rsvg [c4c386cf-5103-5370-be45-f3a111cca3b8] to /Users/sdanthine/.julia/compiled/v1.1/Rsvg/aWLhH.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1197
 [3] _require(::Base.PkgId) at ./loading.jl:960
 [4] require(::Base.PkgId) at ./loading.jl:858
 [5] require(::Module, ::Symbol) at ./loading.jl:853
 [6] include at ./boot.jl:326 [inlined]
 [7] include_relative(::Module, ::String) at ./loading.jl:1038
 [8] include(::Module, ::String) at ./sysimg.jl:29
 [9] top-level scope at none:2
 [10] eval at ./boot.jl:328 [inlined]
 [11] eval(::Expr) at ./client.jl:404
 [12] top-level scope at ./none:3
in expression starting at /Users/sdanthine/.julia/packages/VegaLite/5UYyY/src/VegaLite.jl:3
ERROR: LoadError: Failed to precompile VegaLite [112f6efa-9a02-5b7d-90c0-432ed331239a] to /Users/sdanthine/.julia/compiled/v1.1/VegaLite/lrJqi.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1197
 [3] _require(::Base.PkgId) at ./loading.jl:960
 [4] require(::Base.PkgId) at ./loading.jl:858
 [5] require(::Module, ::Symbol) at ./loading.jl:853
 [6] include at ./boot.jl:326 [inlined]
 [7] include_relative(::Module, ::String) at ./loading.jl:1038
 [8] include(::Module, ::String) at ./sysimg.jl:29
 [9] top-level scope at none:2
 [10] eval at ./boot.jl:328 [inlined]
 [11] eval(::Expr) at ./client.jl:404
 [12] top-level scope at ./none:3
in expression starting at /Users/sdanthine/.julia/packages/Queryverse/BmZo1/src/Queryverse.jl:16
ERROR: Failed to precompile Queryverse [612083be-0b0f-5412-89c1-4e7c75506a58] to /Users/sdanthine/.julia/compiled/v1.1/Queryverse/hLJnW.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1197
 [3] _require(::Base.PkgId) at ./loading.jl:960
 [4] require(::Base.PkgId) at ./loading.jl:858
 [5] require(::Module, ::Symbol) at ./loading.jl:853


@sdanthine
Copy link

sdanthine commented Mar 14, 2019

And when I then try building Cairo from Julia: Pkg.build("Cairo"):

.............
  Building LibCURL ─→ `~/.julia/packages/LibCURL/OoXMv/deps/build.log`
  Building WinRPM ──→ `~/.julia/packages/WinRPM/Y9QdZ/deps/build.log`
  Building Homebrew → `~/.julia/packages/Homebrew/s09IX/deps/build.log`
  Building Cairo ───→ `~/.julia/packages/Cairo/CXPG1/deps/build.log`
┌ Error: Error building `Cairo`: 
│ 
│ signal (11): Segmentation fault: 11
│ in expression starting at /Users/sdanthine/.julia/packages/Cairo/CXPG1/deps/build.jl:165
│ _platform_strcmp at /usr/lib/system/libsystem_platform.dylib (unknown line)
│ Allocations: 19333078 (Pool: 19330283; Big: 2795); GC: 43
└ @ Pkg.Operations /Users/osx/buildbot/slave/package_osx64/build/usr/share/julia/stdlib/v1.1/Pkg/src/Operations.jl:1075
..............

so seems like it can't find libsystem_platform.dylib

@jonathanBieler
Copy link
Contributor

So brew alone works, correct ? I'm just trying to understand if we should open an issue on homebrew-core or not.

@sdanthine
Copy link

sdanthine commented Mar 14, 2019 via email

@sdanthine
Copy link

sdanthine commented Mar 15, 2019

Hello
The puzzling thing to me is that all works fine on my desktop but I cannot get Queryverse due to Cairo to work on my laptop. Tried using the Homebrew julia package directly to add Cairo. Results in this change in error message:

Homebrew.add("Cairo")

julia> Pkg.build("Cairo")
  Building LibCURL ─→ `~/.julia/packages/LibCURL/OoXMv/deps/build.log`
  Building WinRPM ──→ `~/.julia/packages/WinRPM/Y9QdZ/deps/build.log`
  Building Homebrew → `~/.julia/packages/Homebrew/s09IX/deps/build.log`
  Building Cairo ───→ `~/.julia/packages/Cairo/CXPG1/deps/build.log`
┌ Error: Error building `Cairo`: 
│ Error: No such file or directory @ realpath_rec - /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/cairo
│ Error: No such file or directory @ realpath_rec - /Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/cairo
│ 
│ signal (11): Segmentation fault: 11
│ in expression starting at /Users/sdanthine/.julia/packages/Cairo/CXPG1/deps/build.jl:165
│ _platform_strcmp at /usr/lib/system/libsystem_platform.dylib (unknown line)
│ Allocations: 19754140 (Pool: 19751304; Big: 2836); GC: 44
└ @ Pkg.Operations /Users/osx/buildbot/slave/package_osx64/build/usr/share/julia/stdlib/v1.1/Pkg/src/Operations.jl:1075

@jonathanBieler
Copy link
Contributor

What about :

using Libdl

l = "/Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/cairo/1.16.0/lib/libcairo.dylib"
h = Libdl.dlopen_e(l, Libdl.RTLD_LAZY)

? (the path might not be correct)

That's how BinDeps tests that the libraries work, maybe it crashes at that point.

@sdanthine
Copy link

sdanthine commented Mar 15, 2019

Like such? Doesn't seem to work (but I might not have done it properly).... Thanks for your inputs!

julia> using Libdl

julia> l = "/Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/cairo/1.16.0/lib/libcairo.dylib"
"/Users/sdanthine/.julia/packages/Homebrew/s09IX/deps/usr/Cellar/cairo/1.16.0/lib/libcairo.dylib"

julia> h = Libdl.dlopen_e(l, Libdl.RTLD_LAZY)
Ptr{Nothing} @0x00007fac2cc5b2c0

julia> Pkg.build("Cairo")
  Building LibCURL ─→ `~/.julia/packages/LibCURL/OoXMv/deps/build.log`
  Building WinRPM ──→ `~/.julia/packages/WinRPM/Y9QdZ/deps/build.log`
  Building Homebrew → `~/.julia/packages/Homebrew/s09IX/deps/build.log`
  Building Cairo ───→ `~/.julia/packages/Cairo/CXPG1/deps/build.log`
┌ Error: Error building `Cairo`: 
│ 
│ signal (11): Segmentation fault: 11
│ in expression starting at /Users/sdanthine/.julia/packages/Cairo/CXPG1/deps/build.jl:165
│ _platform_strcmp at /usr/lib/system/libsystem_platform.dylib (unknown line)
│ Allocations: 19243692 (Pool: 19240876; Big: 2816); GC: 42
└ @ Pkg.Operations /Users/osx/buildbot/slave/package_osx64/build/usr/share/julia/stdlib/v1.1/Pkg/src/Operations.jl:1075

julia> 

`

@jonathanBieler
Copy link
Contributor

jonathanBieler commented Mar 15, 2019

The fact that it returns a non-null pointer means the library exists (homebrew managed to install it) and Julia manages to open it. It maybe crashes when trying to do something with it. There's also other libraries in that folder.

@jonathanBieler
Copy link
Contributor

I tried to setup a package to test this (can't reproduce on my laptop):

https://github.com/jonathanBieler/TestCairo.jl/blob/master/test/runtests.jl

But that fails with a :

Error: No available formula with the name "staticfloat/juliatranslated/gettext"

https://travis-ci.org/jonathanBieler/TestCairo.jl/jobs/508454006#L232

I'm pretty sure I've seen this error somewhere, any idea what the fix is ?

@sdanthine
Copy link

No change for me, still the signal (11) segmentation fault : 11 when building Cairo

@lobingera
Copy link
Contributor

i see test of travis ci failing with signal11. I think, that Makie isn't using Cairo.jl but an own cairo adaptation (excluding the features not needed).

@mjs2600
Copy link

mjs2600 commented Mar 21, 2019

I'm still seeing this issue too:

(v1.1) pkg> build Cairo
  Building LibCURL ─ `~/.julia/packages/LibCURL/khRkY/deps/build.log`
  Building WinRPM ── `~/.julia/packages/WinRPM/Y9QdZ/deps/build.log`
  Building Homebrew  `~/.julia/packages/Homebrew/s09IX/deps/build.log`
  Building Cairo ─── `~/.julia/packages/Cairo/CXPG1/deps/build.log`
┌ Error: Error building `Cairo`:
│
│ signal (11): Segmentation fault: 11in expression starting at ~/.julia/packages/Cairo/CXPG1/deps/build.jl:165
│ _platform_strcmp at /usr/lib/system/libsystem_platform.dylib (unknown line)
│ Allocations: 19355595 (Pool: 19352771; Big: 2824); GC: 43
└ @ Pkg.Operations /Users/osx/buildbot/slave/package_osx64/build/usr/share/julia/stdlib/v1.1/Pkg/src/Operations.jl:1075

@jonathanBieler
Copy link
Contributor

I managed to get my test package going and I tested installing cairo and pango, opening each library and make some basic call in libcairo and libpango, everything works fine.

https://github.com/jonathanBieler/TestCairo.jl/blob/master/test/runtests.jl

I think that all what BinDeps does when installing Cairo, so I don't get what causes the crash.

@cormullion
Copy link
Member

@jonathanBieler I ran your runtests.jl file, it didn't error. But then after build Cairo I saw the usual segmentation fault.

@Animadversio
Copy link

Getting the same issue with my macOS Mojave 10.14.2
Julia version 1.1.0
The output is likewise.
julia> Pkg.build("Cairo")
Updating registry at ~/.julia/registries/General
Updating git-repo https://github.com/JuliaRegistries/General.git
Building LibCURL ─→ ~/.julia/packages/LibCURL/OoXMv/deps/build.log
Building WinRPM ──→ ~/.julia/packages/WinRPM/Y9QdZ/deps/build.log
Building Homebrew → ~/.julia/packages/Homebrew/s09IX/deps/build.log
Building Cairo ───→ ~/.julia/packages/Cairo/CXPG1/deps/build.log
┌ Error: Error building Cairo:

│ signal (11): Segmentation fault: 11
│ in expression starting at /Users/binxu/.julia/packages/Cairo/CXPG1/deps/build.jl:165
│ _platform_strcmp at /usr/lib/system/libsystem_platform.dylib (unknown line)
│ Allocations: 19242699 (Pool: 19239919; Big: 2780); GC: 42
└ @ Pkg.Operations /Users/osx/buildbot/slave/package_osx64/build/usr/share/julia/stdlib/v1.1/Pkg/src/Operations.jl:1075

Seems this problem is specific to macOS system, everything goes fine on Windows 10 and Ubuntu 16 with same Julia and same installation sequence.

@jonathanBieler
Copy link
Contributor

Could someone try to add this to their Cairo/deps/build.jl (after using/import) and try to build again. It adds a bunch of print statements in BinDeps and should tells us which library crashes (assuming it crashes at this point):

@eval BinDeps begin

    function _find_library(dep::LibraryDependency; provider = Any)
        println("test print")
        ret = Any[]
        # Same as find_library, but with extra check defined by dep
        libnames = [dep.name;get(dep.properties,:aliases,String[])]
        # Make sure we keep the defaults first, but also look in the other directories
        providers = unique([reduce(vcat,[getallproviders(dep,p) for p in defaults]);dep.providers])
        for (p,opts) in providers
            (p !== nothing && can_use(typeof(p)) && can_provide(p,opts,dep)) || continue
            paths = AbstractString[]
    
            # Allow user to override installation path
            if haskey(opts,:installed_libpath) && isdir(opts[:installed_libpath])
                pushfirst!(paths,opts[:installed_libpath])
            end
    
            ppaths = libdir(p,dep)
            append!(paths,isa(ppaths,Array) ? ppaths : [ppaths])
    
            if haskey(opts,:unpacked_dir)
                dir = opts[:unpacked_dir]
                if dir == "." && isdir(joinpath(depsdir(dep), dep.name))
                    # the archive unpacks into the root, so we created a subdir with the dep name
                    push!(paths, joinpath(depsdir(dep), dep.name))
                elseif isdir(joinpath(depsdir(dep),dir))
                    push!(paths,joinpath(depsdir(dep),dir))
                end
            end
    
            # Windows, do you know what `lib` stands for???
            if Compat.Sys.iswindows()
                push!(paths,bindir(p,dep))
            end
            (isempty(paths) || all(map(isempty,paths))) && continue
            for lib in libnames, path in paths
                @info "testing $lib"
                l = joinpath(path, lib)
                @show h = Libdl.dlopen_e(l, Libdl.RTLD_LAZY)
                if h != C_NULL
                    @info "validating $lib"
                    works = dep.libvalidate(l,h)
                    @info "done validating $lib"
                    l = Libdl.dlpath(h)
                    Libdl.dlclose(h)
                    if works
                        push!(ret, ((p, opts), l))
                    else
                        # We tried to load this providers' library, but it didn't satisfy
                        # the requirements, so tell it to force a rebuild since the requirements
                        # have most likely changed
                        opts[:force_rebuild] = true
                    end
                end
                @info "done testing $lib"
            end
        end
        # Now check system libraries
        for lib in libnames
            # We don't want to use regular dlopen, because we want to get at
            # system libraries even if one of our providers is higher in the
            # DL_LOAD_PATH
            for path in Libdl.DL_LOAD_PATH
                for ext in EXTENSIONS
                    opath = string(joinpath(path,lib),ext)
                    check_path!(ret,dep,opath)
                end
            end
            for ext in EXTENSIONS
                opath = string(lib,ext)
                check_path!(ret,dep,opath)
            end
            soname = lookup_soname(lib)
            isempty(soname) || check_path!(ret, dep, soname)
        end
        return ret
    end

end

@daviehh
Copy link
Contributor

daviehh commented Mar 25, 2019

@jonathanBieler Thanks for this troubleshooting script! full output:

julia> Pkg.build("Cairo",verbose=true)
  Building LibCURL ─→ `~/.julia/packages/LibCURL/khRkY/deps/build.log`
  Building WinRPM ──→ `~/.julia/packages/WinRPM/Y9QdZ/deps/build.log`
  Building Homebrew → `~/.julia/packages/Homebrew/s09IX/deps/build.log`
Already up-to-date.
  Building Cairo ───→ `~/.julia/packages/Cairo/CXPG1/deps/build.log`
[ Info: BUILDING --- 
test print

...


[ Info: testing gobject
h = Libdl.dlopen_e(l, Libdl.RTLD_LAZY) = Ptr{Nothing} @0x0000000000000000
[ Info: done testing gobject
[ Info: testing libgobject-2.0-0
h = Libdl.dlopen_e(l, Libdl.RTLD_LAZY) = Ptr{Nothing} @0x0000000000000000
[ Info: done testing libgobject-2.0-0
[ Info: testing libgobject-2.0

signal (11): Segmentation fault: 11
in expression starting at /Users/david/.julia/packages/Cairo/CXPG1/deps/build.jl:248
_platform_strcmp at /usr/lib/system/libsystem_platform.dylib (unknown line)
Allocations: 20389559 (Pool: 20386564; Big: 2995); GC: 45

@AshtonSBradley
Copy link

AshtonSBradley commented Jul 17, 2019

I am on High Sierra 10.13.6, get

  Building Cairo ─── `~/.julia/packages/Cairo/p68X8/deps/build.log`
┌ Error: Error building `Cairo`: 
│ WARNING: redefining constant DEBIAN_VERSION_REGEX
│ WARNING: redefining constant have_sonames
│ WARNING: redefining constant sonames
│ WARNING: redefining constant EXTENSIONS
│ Error: glib: undefined method `uses_from_macos' for Formulary::FormulaNamespace4eb6f3b02951643dc38adb936658d948::Glib:Class
│ Error: glib: undefined method `uses_from_macos' for Formulary::FormulaNamespace4eb6f3b02951643dc38adb936658d948::Glib:Class
│ Error: glib: undefined method `uses_from_macos' for Formulary::FormulaNamespace4eb6f3b02951643dc38adb936658d948::Glib:Class
│ 
│ signal (11): Segmentation fault: 11in expression starting at /Users/abradley/.julia/packages/Cairo/p68X8/deps/build.jl:176
│ _platform_strcmp at /usr/lib/system/libsystem_platform.dylib (unknown line)
│ Allocations: 20112496 (Pool: 20109614; Big: 2882); GC: 44
└ @ Pkg.Operations /Users/osx/buildbot/slave/package_osx64/build/usr/share/julia/stdlib/v1.1/Pkg/src/Operations.jl:1075

with

julia> versioninfo()
Julia Version 1.1.0
Commit 80516ca202 (2019-01-21 21:24 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin14.5.0)
  CPU: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, skylake)
Environment:
  JULIA_NUM_THREADS = 4

@mirestrepo
Copy link

Has anybody been able to get over the libffi issue?

@montyvesselinov
Copy link

montyvesselinov commented Jul 25, 2019 via email

@cmey
Copy link

cmey commented Aug 21, 2019

About the problem of segfault:

  1. brew reinstall cairo works!

  2. /Users/cmeyer/.julia/packages/Homebrew/s09IX/deps/usr/bin/brew install cairo fails with:

Error: glib: undefined method `uses_from_macos' for Formulary::FormulaNamespacef3877cf90a113fb2305c53ebb4f59672::Glib:Class
  1. /Users/cmeyer/.julia/packages/Homebrew/SvXTp/deps/usr/bin/brew install cairo works!

  2. pkg> build Cairo fails with:

Building LibCURL ─→ `~/.julia/packages/LibCURL/lWJxD/deps/build.log`
  Building WinRPM ──→ `~/.julia/packages/WinRPM/Y9QdZ/deps/build.log`
  Building Homebrew → `~/.julia/packages/Homebrew/SvXTp/deps/build.log`
  Building Cairo ───→ `~/.julia/packages/Cairo/p68X8/deps/build.log`
┌ Error: Error building `Cairo`:
│ WARNING: redefining constant DEBIAN_VERSION_REGEX
│ WARNING: redefining constant have_sonames
│ WARNING: redefining constant sonames
│ WARNING: redefining constant EXTENSIONS
│
│ signal (11): Segmentation fault: 11
│ in expression starting at /Users/cmeyer/.julia/packages/Cairo/p68X8/deps/build.jl:176
│ _platform_strcmp at /usr/lib/system/libsystem_platform.dylib (unknown line)
│ Allocations: 26160723 (Pool: 26155607; Big: 5116); GC: 57
└ @ Pkg.Operations /Users/sabae/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.2/Pkg/src/backwards_compatible_isolation.jl:647

Notice Homebrew used the SvXTp version, which worked when called from outside (see point 3 above).

Why does it fail when called from inside Julia? 🤔

The log (~/.julia/packages/Cairo/p68X8/deps/build.log) contains the exact same error message, nothing more to learn from there.

The error:

│ signal (11): Segmentation fault: 11
│ in expression starting at /Users/cmeyer/.julia/packages/Cairo/p68X8/deps/build.jl:176

seems to be from this code:

@BinDeps.install Dict([(:gobject, :_jl_libgobject),
                       (:cairo, :_jl_libcairo),
                       (:pango, :_jl_libpango),
                       (:pangocairo, :_jl_libpangocairo)])

Not sure how to proceed from here, does anyone know how to call these BinDeps installs manually in order to see which one is failing, and maybe get a better error message?

@scottstanie
Copy link

Just checking- is there even an older version of this that can build successfully on mac for julia v1.1+ ? Or has it been broken for newest mac OS?

@timholy
Copy link
Member

timholy commented Aug 23, 2019

There's been a lot of recent discussion of TTFP as a Julia problem, but I'd like to remind some of the folks worried about such things that TTFP is also a Cairo.jl and Gtk.jl problem because of this issue. Currently, the TTFP is infinite for some people using certain applications, and that's much worse than waiting a few minutes.

Would love it if there were some effort to get BinaryBuilder working for both Cairo.jl & Gtk.jl, then we could move past this. Otherwise we'll just have to abandon Cairo/Gtk.

@cormullion
Copy link
Member

Otherwise we'll just have to abandon Cairo/Gtk.

Yikes. That's a "goodbye Julia" scenario (for me)... ☹️

@timholy
Copy link
Member

timholy commented Aug 23, 2019

Definitely don't want that! By "we" I meant "my group and my applications": ImageView, ProfileView, and my lab's entire GUI toolkit.

But really, it's not OK for this to drag out for months while also complaining that other hard problems aren't getting enough attention.

@cormullion
Copy link
Member

Oh, OK :) I thought you might be speaking on behalf of Julia in general. But isn't this mainly a macOS problem - Cairo seems to still run on Linux/Travis and Windows/Travis (the two most popular OSs according to Viral's 2019 survey)? Or is it a deeper problem?

@timholy
Copy link
Member

timholy commented Aug 23, 2019

I thought you might be speaking on behalf of Julia in general.

Sorry for the confusion. I can't really do that 😄.

But isn't this mainly a macOS

I think that's right. And I don't personally use macOS, and AFAICT neither do the primary maintainers of this package and Gtk.jl. However, it's a serious problem to have a package that doesn't work for one of the most popular platforms. I've spent an awful lot of time fixing problems that only show up on platforms I don't use. (Most recent example dating from approximately 2min ago: timholy/Revise.jl#336 😄.)

The purpose of this message is to point out that those who are expressing concerns about a different problem (TTFP) might instead consider investing some time fixing this one. There is an obvious if difficult path: get BinaryBuilder working all the way through Gtk.jl. Then we don't rely on Homebrew anymore, and IIUC the differences between platforms are almost eliminated.

@ghost
Copy link

ghost commented Aug 23, 2019

There is an obvious if difficult path: get BinaryBuilder working all the way through Gtk.jl. Then we don't rely on Homebrew anymore, and IIUC the differences between platforms are almost eliminated.

Ideally one would use native libraries, especially for creating anything that has any actual interface components instead of just displaying an image. Gtk interfaces are… clunky… compared to Mac native ones. Also see JuliaGraphics/Gtk.jl#437 and JuliaImages/ImageView.jl#178 for serious problems with trying to use Gtk —which wants to take complete control of everything—from Julia. I think the real solution is to have an "interface/graphics server" running in a different system thread that the backend library has full control of. A simple protocol for accessing that server (I don't think we need full-fledged GUI libraries) which can then be implemented using native libraries.

Or use Qt, which is much better at integrating with the native GUI framework than Gtk (which along with everything Gnome-related, I'd personally not touch with a long stick; they destroyed Linux for me, creeping into everything, hiding the unix under layers of something undescribable).

@jonathanBieler
Copy link
Contributor

@timholy I'm a mac user, I've tried a couple times to use BinaryBuilder but never managed to do anything with it. Last time I got stuck on this issue, so there's not much I can do to help.

JuliaPackaging/BinaryBuilder.jl#380

@giordano
Copy link
Contributor

giordano commented Aug 26, 2019

Note that I've just updated CairoBuilder to latest BinaryBuilder version: JuliaGraphics/CairoBuilder#5. I'm also working on building Pango (see JuliaGraphics/CairoBuilder#5) but it'll take time (and some changes to BinaryBuilder itself, too)

@jkrumbiegel
Copy link

jkrumbiegel commented Aug 31, 2019

I think I've gone through all the threads I could find about the topic but still can't get Cairo.jl to work on my Mac Mojave system.. So far I've tried:

  • use both Homebrew and Cairo master branches
  • revert to glib 2.58.3 in both local julia homebrew and system wide
  • install Cairo manually in local homebrew
  • install harfbuzz manually into local homebrew
  • try to install pango locally too, doesn't work because it wants to uninstall glib 2.58.3

if I try to build Cairo now I get this

Building Cairo ───→ `~/.julia/packages/Cairo/QBbmo/deps/build.log`
┌ Error: Error building `Cairo`: 
│ WARNING: redefining constant DEBIAN_VERSION_REGEX
│ WARNING: redefining constant have_sonames
│ WARNING: redefining constant sonames
│ WARNING: redefining constant EXTENSIONS
│ ==> Installing pango from staticfloat/juliatranslated
│ Error: Operation already in progress for libpng.formula
│ Another active Homebrew process is already using libpng.formula.
│ Please wait for it to finish or terminate it to continue.
│ ERROR: LoadError: failed process: Process(`/Users/jkrumbiegel/.julia/packages/Homebrew/SvXTp/deps/usr/bin/brew install staticfloat/juliatranslated/pango`, ProcessExited(1)) [1]
│ 
│ Stacktrace:
│  [1] pipeline_error at ./process.jl:813 [inlined]
│  [2] #run#536(::Bool, ::typeof(run), ::Cmd) at ./process.jl:728
│  [3] run at ./process.jl:726 [inlined]
│  [4] #brew#4(::Bool, ::Bool, ::Bool, ::Bool, ::Bool, ::typeof(Homebrew.brew), ::Cmd) at /Users/jkrumbiegel/.julia/packages/Homebrew/SvXTp/src/API.jl:19
│  [5] #brew at ./tuple.jl:0 [inlined]
│  [6] #install_and_link#38(::Bool, ::typeof(Homebrew.install_and_link), ::String) at /Users/jkrumbiegel/.julia/packages/Homebrew/SvXTp/src/API.jl:492
│  [7] (::getfield(Homebrew, Symbol("#kw##install_and_link")))(::NamedTuple{(:verbose,),Tuple{Bool}}, ::typeof(Homebrew.install_and_link), ::String) at ./none:0
│  [8] #add#29(::Bool, ::Bool, ::typeof(Homebrew.add), ::String) at /Users/jkrumbiegel/.julia/packages/Homebrew/SvXTp/src/API.jl:462
│  [9] add at /Users/jkrumbiegel/.julia/packages/Homebrew/SvXTp/src/API.jl:412 [inlined]
│  [10] install(::Array{String,1}) at /Users/jkrumbiegel/.julia/packages/Homebrew/SvXTp/src/bindeps_integration.jl:50
│  [11] (::getfield(Homebrew, Symbol("##80#81")))() at /Users/jkrumbiegel/.julia/packages/Homebrew/SvXTp/src/bindeps_integration.jl:45
│  [12] run(::getfield(Homebrew, Symbol("##80#81"))) at /Users/jkrumbiegel/.julia/packages/BinDeps/ZEval/src/BinDeps.jl:478
│  [13] run(::BinDeps.SynchronousStepCollection) at /Users/jkrumbiegel/.julia/packages/BinDeps/ZEval/src/BinDeps.jl:521
│  [14] satisfy!(::BinDeps.LibraryDependency, ::Array{DataType,1}) at ./string:944
│  [15] satisfy!(::BinDeps.LibraryGroup, ::Array{DataType,1}) at ./string:910
│  [16] satisfy!(::BinDeps.LibraryGroup) at ./string:874
│  [17] top-level scope at string:977
│  [18] include at ./boot.jl:328 [inlined]
│  [19] include_relative(::Module, ::String) at ./loading.jl:1094
│  [20] include(::Module, ::String) at ./Base.jl:31
│  [21] include(::String) at ./client.jl:431
│  [22] top-level scope at none:5
│ in expression starting at /Users/jkrumbiegel/.julia/packages/Cairo/QBbmo/deps/build.jl:176
│ ignored: dlclose()
│ ignored: dlclose()
│ ignored: dlclose()
│ ignored: dlclose()
│ ignored: dlclose()
│ ignored: dlclose()
│ ignored: dlclose()
│ ignored: dlclose()
│ ignored: dlclose()
│ ignored: dlclose()
│ ignored: dlclose()
│ ignored: dlclose()
│ ignored: dlclose()
│ ignored: dlclose()
│ ignored: dlclose()
│ ignored: dlclose()
│ ignored: dlclose()
│ ignored: dlclose()
│ ignored: dlclose()
│ ignored: dlclose()

I feel like I'm going in circles here, there are several threads about interrelated problems and too many workarounds to try that I don't know what the order of steps is I need to take. I don't understand why installing cairo through homebrew works, but then building Cairo.jl doesn't. What is there left to build after brew has done its job? If someone on Mojave has managed to get their system to work, could they be so kind to post a short sequence of steps going from a clean julia environment?

@giordano
Copy link
Contributor

If you can please wait just a few days more, we're trying to deliver an hopefully working solution for everyone 🙂

@jkrumbiegel
Copy link

Of course, thank you for putting in the effort to fix this! You're talking about your previous post using CairoBuilder? Once it's done I'll be glad to test it on my system and report back

@giordano
Copy link
Contributor

giordano commented Aug 31, 2019

Yes, I'm talking about that. There is actually a preview in #289, if you're able to test that branch on macOS it would be awesome. For the time being Travis tells us that Cairo basic features are working, Pango is disabled on that branch but there is the possibility that it's working for macOS (I can't check right now)

@montyvesselinov
Copy link

montyvesselinov commented Sep 2, 2019

I had to rebuild Cairo on a new machine. The step I proposed before fixed it again:

#271 (comment)

  1. quit julia
  2. execute the following (replace user)
/Users/**user**/.julia/packages/Homebrew/s09IX/deps/usr/bin/brew update-reset
/Users/**user**/.julia/packages/Homebrew/s09IX/deps/usr/bin/brew config 
/Users/**user**/.julia/packages/Homebrew/s09IX/deps/usr/bin/brew install cairo
rm -fR /Users/**user**/.julia/packages/Cairo
  1. start julia
  2. Pkg.add("Cairo)

@giordano
Copy link
Contributor

giordano commented Sep 2, 2019

Folks, I think you may want to check out #292 🙂.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.