Bug 97926

Summary: use of symlink for libXt.7.dylib breaks binaries linked to libXt created under Xquartz 2.7.10-rc2
Product: XQuartz Reporter: Jack Howarth <howarth.at.macports>
Component: OtherAssignee: Jeremy Huddleston Sequoia <jeremyhu>
Status: RESOLVED FIXED QA Contact: Jeremy Huddleston Sequoia <jeremyhu>
Severity: blocker    
Priority: high    
Version: development (betas, rcs, git)   
Hardware: x86-64 (AMD64)   
OS: Mac OS X (All)   
Whiteboard: milestone:xquartz-2.7.10
i915 platform: i915 features:
Attachments: libXt.7.dylib

Description Jack Howarth 2016-09-25 18:12:28 UTC
The replacement of the libXt.7.dylib shared library (which was added in the Xquartz 2.7.9 release) with a symlink pointing at the libXt.6.dylib shared library in the Quartz 2.7.10-rc2 release breaks binaries linked against libXt that were built under the prior 2.7.9 release.

dyld: Library not loaded: /opt/X11/lib/libXt.7.dylib
 Referenced from: /sw/bin/gs
 Reason: Incompatible library version: gs requires version 8.0.0 or
later, but libXt.7.dylib provides version 7.0.0

The symlink needs to be replaced with a stub shared library for libXt.7.dylib, linked against libXt.6.dylib, which provides the proper compatibility version of 8.0.0.
Comment 1 Jeremy Huddleston Sequoia 2016-09-26 07:13:15 UTC
Created attachment 126783 [details]
libXt.7.dylib

Can you give this libXt.7.dylib a whirl?
Comment 2 Jack Howarth 2016-09-26 11:53:49 UTC
(In reply to Jeremy Huddleston Sequoia from comment #1)
> Created attachment 126783 [details]
> libXt.7.dylib
> 
> Can you give this libXt.7.dylib a whirl?

Replacing the symlink for libXt.7.dylib in the installed Xquartz 2.7.10-rc2 with this file restores functionality to previous binaries like gs built against the libXt.7.dylib from Xquartz 2.7.9. Thanks.
Comment 3 Jeremy Huddleston Sequoia 2016-09-27 07:22:38 UTC
Thanks for testing.  I've included this in 2.7.10_rc3.  Please also verify that everything works as expected there as well.
Comment 4 Jack Howarth 2016-09-27 12:12:27 UTC
(In reply to Jeremy Huddleston Sequoia from comment #3)
> Thanks for testing.  I've included this in 2.7.10_rc3.  Please also verify
> that everything works as expected there as well.

2.7.10-rc3 doesn't seem to be what it claims. After installing, I ended up with...

$ ls -l /opt/X11/lib/libXt.7.dylib
-rwxr-xr-x@ 1 root  wheel  698896 Sep 27 01:45 /opt/X11/lib/libXt.7.dylib
$ otool -L /opt/X11/lib/libXt.7.dylib
/opt/X11/lib/libXt.7.dylib:
	/opt/X11/lib/libXt.7.dylib (compatibility version 8.0.0, current version 8.0.0)
	/opt/X11/lib/libSM.6.dylib (compatibility version 7.0.0, current version 7.1.0)
	/opt/X11/lib/libICE.6.dylib (compatibility version 10.0.0, current version 10.0.0)
	/opt/X11/lib/libX11.6.dylib (compatibility version 10.0.0, current version 10.0.0)
	/opt/X11/lib/libxcb.1.dylib (compatibility version 3.0.0, current version 3.0.0)
	/opt/X11/lib/libXau.6.dylib (compatibility version 7.0.0, current version 7.0.0)
	/opt/X11/lib/libXdmcp.6.dylib (compatibility version 7.0.0, current version 7.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.1.1)

instead of the expected...

$ otool -L libXt.7.dylib
libXt.7.dylib:
	/opt/X11/lib/libXt.7.dylib (compatibility version 8.0.0, current version 8.0.0)
	/opt/X11/lib/libXt.6.dylib (compatibility version 7.0.0, current version 7.0.0)
	/opt/X11/lib/libX11.6.dylib (compatibility version 10.0.0, current version 10.0.0)
	/opt/X11/lib/libxcb.1.dylib (compatibility version 3.0.0, current version 3.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0)
Comment 5 Jack Howarth 2016-09-27 12:50:15 UTC
Not only does the 2.7.10-rc3 release not contain the promised stub shared library for /opt/X11/lib/libXt.7.dylib, it also is missing the /opt/X11/lib/libXt.6.dylib shared library which will break legacy binaries built against Xquartz 2.7.8 or earlier.
Comment 6 Jeremy Huddleston Sequoia 2016-09-27 16:14:43 UTC
Yeah, there was an issue with the 2.7.10_rc3 build separate from this issue.  This fix got obliterated by that.  I identified the source of the problem (an old patch on my build machine which bumped libXt's soname, sorry), and I'm rolling up an rc4 which will properly contain this fix.

Thanks,
Jeremy
Comment 7 Jack Howarth 2016-09-27 18:49:06 UTC
(In reply to Jeremy Huddleston Sequoia from comment #6)
> Yeah, there was an issue with the 2.7.10_rc3 build separate from this issue.
> This fix got obliterated by that.  I identified the source of the problem
> (an old patch on my build machine which bumped libXt's soname, sorry), and
> I'm rolling up an rc4 which will properly contain this fix.
> 
> Thanks,
> Jeremy

Xquartz 2,7.10-rc4 properly installs the expected files for libXt. Thanks.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.