Yes, openmotif is buggy here and needs to be fixed.  libXt used to build with 
-flat_namespace in order to support buggy coding paradigms used by OpenMotif 
and libXaw.  libXt was fixed to use proper namspacing and libXaw and libXaw3d 
were updated as well to not require that buggy hack (eg: 
https://cgit.freedesktop.org/xorg/lib/libXaw/commit/?id=b3049d9b13333c0e67f1f23959227020741f486b).
  Openmotif needs to follow suit with a similar change.


Note that XQuartz continues to ship libXt.6.dylib built with 
-Wl,-flat_namespace in order to maintain binary compatibility with existing 
openmotif binaries.  The 2-level-namespace version was shipped as 
libXt.7.dylib.  Unfortunately, executables that make use of openmotif and 
libXaw sometimes don't work at all because they pull in both versions of libXt 
and end up with library cross-talk.  I really regret that wasn't discovered in 
the months of beta and rc testing in which this change was available.  Had it 
been known before release, I probably would've scrapped the version bump and 
stayed with a single libXt version (the one with the 2-level namespace), 
informing OpenMotif users to stay on an older version of XQuartz until 
OpenMotif released a fix.

This was discussed in IRC back in January (see 
https://echelog.com/logs/browse/macports/1452121200) and do some other google 
searches for vendorShellClassRec and vendorShellWidgetClass.  Here's a snippit 
of that conversation that is relevant:

[08:32:38] <jeremyhu_> howarth: FWIW, you should spend your effort trying to 
fix openmotif instead.
[08:32:41] <howarth> doesn't force the replacement of the existing tcl/tk ports 
that are installed when building pymol
[08:32:59] <jeremyhu_> See 
http://pastebin.com/vdaq1gwD
as a suggested starting point.  It looks like it needs additional work though 
because nedit doesn't launch with it.
[08:35:45] <jeremyhu_> howarth: A quick look through looks like there are a 
bunch of vendorShellClassRec references that I need to get pointed at 
_XmVendorShellClassRec instead.



> On Sep 7, 2016, at 14:37, Tom Roberts <[email protected]> wrote:
> 
> This is Mac OS X 10.11.6 (El Capitan) with XQuartz 2.7.9. I installed 
> OpenMotif 2.3.4 using HomeBrew (so it's in /usr/local). I have a very large 
> program that uses Motif, which fails now, but worked when built on Mavericks 
> with an older XQuartz; I traced its problem to Motif, and Motif's problem 
> seems to be related to libXt.
> 
> I found a simple Motif example here (attached, after fixing two trivial 
> warnings in this old code)
>    https://www.cs.cf.ac.uk/Dave/X_lecture/node5.html
> 
> It builds in the usual way:
>    gcc  -I/usr/local/include  -I/opt/X11/include  push.c  
> /usr/local/lib/libXm.dylib  \
>           /opt/X11/lib/libXt.dylib
> 
> But it does not run, with an error similar to my large program:
>    a.out
>    Error: attempt to add non-widget child "dsm" to parent "a.out" which 
> supports only widgets
> 
> BTW I have also seen these error messages from my large program when trying 
> different combinations:
>    Error: Couldn't find per display information
>    Warning: XmManager ClassInitialize: XmeTraitSet failed
>    Error: attempt to add non-widget child "DropSiteManager" to parent "main" 
> which \
>            supports only widgets
>    _XmGetDefaultDisplay cannot be used prior to VendorS.Initialize, returns 
> NULL
>            (I believe this last is from incorrectly linking libXt before 
> libXm.)
> 
> In desperation I went back to the old versions of libXm and libXt (that work 
> in my large program, built on Mavericks and runs now on El Capitan; 
> libXm.2.dylib came from its bundle):
>    gcc -I/usr/local/include -I/opt/X11/include push.c 
> /usr/local/lib/libXm.2.dylib \
>          /opt/X11/lib/libXt.6.dylib
>    a.out
>    Warning: Cannot find callback list in XtAddCallback
> A window pops up with the push button, but pushing the button does not print 
> the message (as the warning suggests). That's why I suspect the problem is in 
> XQuartz and not OpenMotif. (It's possible my large program does not use this 
> feature of libXt.)
> 
> Help, please!
> 
> (I also have an inquiry in homebrew-discuss with subject "openmotif fails to 
> run".)
> <push.c> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> X11-users mailing list      ([email protected])
> Help/Unsubscribe/Update your Subscription: 
> https://lists.apple.com/mailman/options/x11-users/jeremyhu%40freedesktop.org
> 
> This email sent to [email protected]

Attachment: smime.p7s
Description: S/MIME cryptographic signature

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
X11-users mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription: 
https://lists.apple.com/mailman/options/x11-users/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to