Opened 9 years ago

Last modified 8 years ago

#48233 closed defect

py34-cairo seems to expect x11 cairo, not quartz — at Version 1

Reported by: jenstroeger (Jens Troeger) Owned by: sean@…
Priority: Normal Milestone:
Component: ports Version: 2.3.3
Keywords: Cc: jeremyhu@…
Port: py-cairo

Description (last modified by ryandesign (Ryan Carsten Schmidt))

Might be related to #34889 or #34724.

My cairo @1.14.2_1+quartz is built without x11 support, and I added py34-cairo @1.10.0_3 just now. However, when I then try to load cairo from Python, loading the library fails with what I suspect is a missing x11 symbol:

>>> import cairo
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/cairo/__init__.py", line 18, in <module>
    from ._cairo import *
ImportError: dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/cairo/_cairo.so, 2): Symbol not found: _cairo_xlib_surface_get_depth
  Referenced from: /opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/cairo/_cairo.so
  Expected in: /opt/local/lib/libcairo.2.dylib
 in /opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/cairo/_cairo.so

Change History (1)

comment:1 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: jeremyhu@… added; sean openmaintainer removed
Description: modified (diff)
Owner: changed from macports-tickets@… to sean@…

Did you get a binary from our packages server, or build py34-cairo from source? I suspect you got a binary. I suspect py-cairo builds itself differently depending on whether cairo has x11 support or not. Therefore, py-cairo should have an x11 variant, and use the require_active_variants procedure in the active_variants 1.1 portgroup to ensure a match between the variants of the py-cairo subports and the cairo port. That is what was done in r100265 to fix #34889. It was undone in r129111; see #38606. The removal of this code appears to have been incorrect and it or something like it should be reinstated.

Note: See TracTickets for help on using tickets.