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
<[email protected]<mailto:[email protected]>> 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
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------