Dear Joshua,

thank you for your detailed answer.
In fact, looking at the content of my DYLD_LIBRARY_PATH variable:

> echo $DYLD_LIBRARY_PATH
/usr/local/qt/lib:/usr/local/psh/lib:/usr/local/dt/lib:/usr/local/netpbm/lib:/opt/lib

and trying to remove each path separately, I found that the offended path 
preventing xmgrace to start was:

/usr/local/dt/lib

Removing that path from DYLD_LIBRARY_PATH xmgrace opens normally. So, problem 
solved. Thank you!

Then, I looked for when that path is added to DYLD_LIBRARY_PATH in the 
interactive login session, and I figured out it happens in my ~/.profile 
configuration file, where there is the line:

export 
DYLD_LIBRARY_PATH=${QTDIR}/lib:/usr/local/psh/lib:/usr/local/dt/lib:/usr/local/netpbm/lib:/opt/lib

Really, I could not remember when or if I edit this file in order to add that 
path to the DYLD_LIBRARY_PATH. Maybe this was done in the installation 
procedure of some program.

For what I could understand, /usr/local/dt contains an openmotif client:

> ls /usr/local/dt/bin/
mwm    uil    xmbind

> ls /usr/local/dt/lib
X11                libMrm.4.dylib     libMrm.dylib       libUil.4.0.2.dylib 
libUil.a           libUil.la<http://libUil.la>          libXm.4.dylib       
libXm.dylib libMrm.4.0.2.dylib libMrm.a           libMrm.la<http://libMrm.la>   
       libUil.4.dylib     libUil.dylib       libXm.4.0.2.dylib  libXm.a         
   libXm.la<http://libXm.la>

but it is not yet clear to me if this program is still relevant or employed by 
some other software or if I can remove it.

Thank you again for your valuable help.

All the best,
Emy


On 15. Nov 2019, at 20:37, Joshua Root 
<j...@macports.org<mailto:j...@macports.org>> wrote:

Dear Macports users,

I have a MacBook Pro with MacOS 10.13.6 on which I installed several programs 
through Macports. However, when I installed the grace package in order to use 
plotting program xmgrace, the following message error pops up:

Warning: Widget must be a VendorShell.
Error: attempt to add non-widget child "dsm" to parent "xmgrace" which supports 
only widgets

Notice that I have successfully installed the grace port on other older and 
newer machines without any problem.
Googling the error, I found several old posts, which provided various possible 
solutions, including installing a version of XQuartz older then 2.7.9, but none 
of them worked for me.

Therefore, I decided to remove completely Macports (and its ports) from this 
laptop by the procedure found here:

https://guide.macports.org/chunked/installing.macports.uninstalling.html

together with XQuartz. Then, after a reboot, I reinstalled Macports, XQuartz 
and just the grace package. In spite this reinstallation I keep having the same 
message error.
Finally, I tried to create another account on the same laptop, installing 
Macports, the last available version of XQuartz (2.7.11) and the grace port in 
there, and this time the xmgrace programs opens like a charm.

I therefore guess that the problem in the original account is caused by some 
user configuration, which is not removed while uninstalling Macports and 
XQuartz. As last attempt I tried to remove also the hidden account folder 
~/Library, and reinstall again Macports and XQuartz but also this time the 
xmgrace command outputs the usual error message.

Do you have any suggestion what I could try in order to identify the 
configuration file that triggers the above error? Since the original account 
has a lot of important data, I cannot simply remove it and create a new account 
in order to use xmgrace. I would really like to find the source of the error.

To the best of my knowledge, this is a problem caused by using an older
version of motif with a recent version of libXt. The solution is to use
the current version of motif. That means rebuilding existing
applications against the new motif.

To go into more detail, old versions of motif relied on libXt being
built with a flat namespace so they could override some of its symbols
with their own versions. This was a hack, and libXt switched to a
two-level namespace on Darwin quite a while ago. It took a little while
for openmotif to catch up and stop requiring this, but it has also been
fixed for quite some time now.

If you google this error message, you'll find a lot of people saying to
rename libraries or set DYLD_LIBRARY_PATH. That may have been somewhat
reasonable before motif was fixed, but now it will cause many more
problems than it fixes. If you previously set DYLD_LIBRARY_PATH in your
environment, that would explain why a new account didn't have the issue.

- Josh






------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
Forschungszentrum Juelich GmbH
52425 Juelich
Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzender des Aufsichtsrats: MinDir Volker Rieke
Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender),
Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt,
Prof. Dr. Sebastian M. Schmidt
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------

Reply via email to