Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#29327 closed defect (fixed)

glew-1.6.0 breaks pymol

Reported by: howarth@… Owned by: jmroot (Joshua Root)
Priority: Normal Milestone:
Component: ports Version: 1.9.2
Keywords: graphics Cc:
Port: glew

Description (last modified by ryandesign (Ryan Schmidt))

The update to flew 1.6.0 breaks pymol which now depends on it. After updating glew to 1.6.0, the pre-existing pymol package fails with the error...

[MacPro:~] howarth% pymol
Traceback (most recent call last):
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pymol/__init__.py", line 184, in <module>
    import pymol
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pymol/__init__.py", line 472, in <module>
    import _cmd
ImportError: dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pymol/_cmd.so, 2): Library not loaded: /opt/local/lib/libGLEW.1.5.8.dylib
  Referenced from: /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pymol/_cmd.so
  Reason: image not found

The trivial fix is to force pymol to be rebuilt with a revision bump...

[MacPro:python2.6/site-packages/pymol] howarth% otool -L _cmd.so
_cmd.so:
	/opt/local/lib/libpng14.14.dylib (compatibility version 22.0.0, current version 22.0.0)
	/opt/local/lib/libGL.1.dylib (compatibility version 1.2.0, current version 1.2.0)
	/opt/local/lib/libglut.3.dylib (compatibility version 3.7.0, current version 3.7.0)
	/opt/local/lib/libGLEW.1.6.0.dylib (compatibility version 0.0.0, current version 0.0.0)
	/opt/local/lib/libfreetype.6.dylib (compatibility version 13.0.0, current version 13.2.0)
	/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 52.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.0.0)

however the glew package also seems flawed. The installed libraries have no settings for the compatibility and current versions on the shared library...

[MacPro:/opt/local/lib] howarth% otool -L libGLEW.1.6.0.dylib
libGLEW.1.6.0.dylib:
	/opt/local/lib/libGLEW.1.6.0.dylib (compatibility version 0.0.0, current version 0.0.0)
	/System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.0.0)

Also it is unclear if we should be installing a libGLEW.1.6.dylib only or also a libGLEW.1.dylib to have everything using glew linked to libGLEW.1.dylib and ease the transition to future 1.x releases. Fink takes this approach with...

[MacPro:/sw/lib] howarth% otool -L libGLEW.1.5.8.dylib
libGLEW.1.5.8.dylib:
	/sw/lib/libGLEW.1.dylib (compatibility version 1.5.0, current version 1.5.8)
	/usr/X11/lib/libXmu.6.dylib (compatibility version 9.0.0, current version 9.0.0)
	/usr/X11/lib/libXi.6.dylib (compatibility version 8.0.0, current version 8.0.0)
	/usr/X11/lib/libGLU.1.dylib (compatibility version 1.3.0, current version 1.3.0)
	/usr/X11/lib/libGL.1.dylib (compatibility version 1.2.0, current version 1.2.0)
	/usr/X11/lib/libXext.6.dylib (compatibility version 11.0.0, current version 11.0.0)
	/usr/X11/lib/libX11.6.dylib (compatibility version 10.0.0, current version 10.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.0.0)

Attachments (2)

Portfile.diff (849 bytes) - added by howarth@… 7 years ago.
Portfile diff to implement fink approach to libGLEW soname
soname_linkage.diff (748 bytes) - added by howarth@… 7 years ago.
soname linkage patch to adopt fink approach

Download all attachments as: .zip

Change History (6)

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

Cc: jmr removed
Description: modified (diff)
Owner: changed from macports-tickets@… to jmr@…

Fixed WikiFormatting and Cc.

Changed 7 years ago by howarth@…

Attachment: Portfile.diff added

Portfile diff to implement fink approach to libGLEW soname

Changed 7 years ago by howarth@…

Attachment: soname_linkage.diff added

soname linkage patch to adopt fink approach

comment:2 Changed 7 years ago by howarth@…

The attached packaging introduces a so name_linkage.diff patch to build libGLEW as...

[MacPro:/opt/local/lib] root# otool -L libGLEW.1.6.0.dylib
libGLEW.1.6.0.dylib:

/opt/local/lib/libGLEW.1.dylib (compatibility version 1.6.0, current version 1.6.0)
/System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.0.0)

so that the installed named for libGLEW.1.6.0.dylib is actually /opt/local/lib/libGLEW.1.dylib. An explicit creation of the /opt/local/lib/libGLEW.1.6.dylib symlink is added to the Portfile.

comment:3 Changed 7 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: newclosed

Rev bumped in r78272. I think the versioning issue should be raised upstream.

Note: See TracTickets for help on using tickets.