When I heard about the heartbleed bug, I updated my CentOS 6.3 server’s openssl library. The next day, I tried to run meld. Here’s the traceback (emphasis added):
Traceback (most recent call last):
File "/usr/local/bin/meld", line 138, in <module>
main()
File "/usr/local/bin/meld", line 129, in main
from meld.meldapp import app
File "/usr/local/lib/meld/meld/meldapp.py", line 199, in <module>
app = MeldApp()
File "/usr/local/lib/meld/meld/meldapp.py", line 113, in __init__
self.prefs = preferences.MeldPreferences()
File "/usr/local/lib/meld/meld/preferences.py", line 265, in __init__
super(MeldPreferences, self).__init__("/apps/meld", self.defaults)
File "/usr/local/lib/meld/meld/util/prefs.py", line 93, in __init__
self._gconf.add_dir(rootkey, gconf.CLIENT_PRELOAD_NONE)
glib.GError: Failed to contact configuration server; some possible causes are that you need to enable TCP/IP networking for ORBit, or you have stale NFS locks due to a system crash. See http://projects.gnome.org/gconf/ for information. (Details - 1: Failed to get connection to session: /bin/dbus-launch terminated abnormally without any error message)
What I found after a great deal of research (and the usual head-banging) is that the error means exactly what it says.
Almost.
It turned out that /bin/dbus-launch did not exist, not that it terminated abnormally. “Why not?” I asked.
I finally found the answer in Redhat bug 172231. They moved it. Back in 2005 (or before).
Meld, installed and working on my system for years (well, for a minimum of 444 days, to be exact, which was when I finally dumped the frustrating SuSE distro and installed CentOS 6.3), suddenly stopped working by throwing the above exception, after openssl was updated. And they moved a file it depends upon in 2005?
Where does it live now? Inside the dbus-x11 package, which I didn’t have (the server can compile and run X programs, but the display is on a different system, and I don’t have a desktop installed—thus, no Gnome, no KDE). To fix the problem, I did the following:
$ yum install dbus-x11
Then,
$ whence dbus-launch
$ /usr/bin/dbus-launch
Finally,
$ ln -s /usr/bin/dbus-launch /bin/dbus-launch
$ meld
God N is happy. Or as happy as he gets. Until the next problem.
One does wonder: where did /bin/dbus-launch go? When I updated openssl, there was a long list of dependencies that would be installed and updated—and possibly deleted—which I, like everyone else, never read. I suspect that the dbus package was updated, which removed /bin/dbus-launch. The lesson is, always read the list of dependencies before hitting the Y key.
Will I learn from this mistake? Maybe. At least this time I wrote down the answer.
Note: In case you’re wondering, “ORBit” is is a CORBA 2.4 compliant Object Request Broker (ORB), originally written to serve as middleware for the GNOME project.

No comments:
Post a Comment