[R-SIG-Mac] Compiling Cairo

O'Hanlon, Simon J simon.ohanlon at imperial.ac.uk
Thu Apr 9 11:35:31 CEST 2015


Dear Simon,
Thanks for the fast reply. I did not compile R from source. Also I was
trying to compile Cairo myself because if I used the pre-built binary from
CRAN I get the error: "Failed to create Cairo backend!² when trying to use
the postscript device.

I completely removed all Homebrew packages and Homebrew itself. I also
removed X11 using this gist:
https://gist.github.com/TonyMtz/714e73ccb79e21c4fc9c.

I then removed any installations I had made of the libraries cario,
freetype and pixman using sudo make uninstall.

I tried to install Cairo from source again and unsurprisingly it could not
compile because no working installation of cairo or it¹s dependencies
could be found. Great! I then reinstalled Homebrew and cairo, pkg-config,
and X11 (via Homebrew) and their various dependencies.

I realised that pkg-config was not looking in the right place for my
installed libraries so I set the correct path using:

    Sys.setnev( 
PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig²)

I then get the following output from the configure script which seems to
indicate I am now entirely compiling against Homebrew installed packages
(I think - sorry, I am relatively inexperienced at this):

    checking for pkg-config... /usr/local/bin/pkg-config
checking whether pkg-config knows about cairo... yes
checking for configurable backends... cairo cairo-ft cairo-pdf cairo-png
cairo-ps cairo-xlib cairo-xlib-xrender
configure: CAIRO_CFLAGS=-I/usr/local/Cellar/cairo/1.14.2/include/cairo
-I/usr/local/Cellar/glib/2.44.0/include/glib-2.0
-I/usr/local/Cellar/glib/2.44.0/lib/glib-2.0/include
-I/usr/local/opt/gettext/include
-I/usr/local/Cellar/pixman/0.32.6/include/pixman-1
-I/usr/local/Cellar/fontconfig/2.11.1/include
-I/usr/local/Cellar/freetype/2.5.3_1/include/freetype2
-I/usr/local/Cellar/freetype/2.5.5/include/freetype2
-I/usr/local/Cellar/libpng/1.6.16/include/libpng16 -I/opt/X11/include
checking if R was compiled with the RConn patch... no
checking cairo.h usability... yes
checking cairo.h presence... yes
checking for cairo.h... yes
checking for PNG support in Cairo... yes
checking for ATS font support in Cairo... no
configure: CAIRO_LIBS=-L/usr/local/Cellar/freetype/2.5.5/lib
-L/usr/local/Cellar/libpng/1.6.16/lib -L/usr/local/Cellar/cairo/1.14.2/lib
-L/opt/X11/lib -lfreetype -lz -lpng16 -lz -lcairo -lXext -lXrender -lX11


However, the exact same error persists. I also tried to compile using
gcc-4.9 rather than clang, but same difference. So would your
recommendation would be to attempt to compile R myself?

Many thanks,

Simon


On 09/04/2015 02:31, "Simon Urbanek" <simon.urbanek at r-project.org> wrote:

>
>On Apr 8, 2015, at 7:27 PM, O'Hanlon, Simon J
><simon.ohanlon at imperial.ac.uk> wrote:
>
>> I'm trying to compile Cairo on OS X 10.10.2 and R 3.1.3. ./configure
>>seems to run ok, but I get a compilation error about a symbol not being
>>found, namely _FT_Done_Face. The details are:
>> 
>> Error : .onLoad failed in loadNamespace() for 'Cairo', details:
>>  call: dyn.load(file, DLLpath = DLLpath, ...)
>>  error: unable to load shared object
>>'/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Cairo/lib
>>s/Cairo.so':
>>  
>>dlopen(/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Cai
>>ro/libs/Cairo.so, 6): Symbol not found: _FT_Done_Face
>>  Referenced from:
>>/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Cairo/libs
>>/Cairo.so
>>  Expected in: flat namespace
>> in 
>>/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Cairo/libs
>>/Cairo.so
>> Error: loading failed
>> Execution halted
>> 
>
>That's not a compilation error but rather a run-time error.
>
>
>> Am I missing some dependency or something?
>> 
>
>My guess would be that you have multiple versions of FreeType and the
>wrong one is picked up. It seems as if you have an odd mix of homebrew
>and X11 which may be the problem. Did you compile everything from source
>(including R)? If not, you'll have a hard time cleaning things up to work
>with the system libraries, R and homebrew -- I'd recommend staying away
>from trying to mix all three together (i.e., use either CRAN or homebrew
>but not both).
>
>Cheers,
>Simon
>
>
>> So as not to clog the post, my sessionInfo() is available at:
>>http://pastebin.com/raw.php?i=kQFiY699
>> And the output of ./configure is available at:
>>http://pastebin.com/raw.php?i=wCUGtbBZ
>> 
>> Thanks,
>> 
>> Simon
>> 
>> 
>> 
>> 	[[alternative HTML version deleted]]
>> 
>> _______________________________________________
>> R-SIG-Mac mailing list
>> R-SIG-Mac at r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>



More information about the R-SIG-Mac mailing list