Problem installing the grace port
Joshua Root
jmr at macports.org
Fri Nov 15 19:37:05 UTC 2019
> 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
More information about the macports-users
mailing list