On Sun, 2009-07-19 at 01:24 -0500, Bob Jamison wrote:
On 7/18/2009 10:23 PM, Ted Gould wrote:
I think that he is meaning only for Windows. At least I hope so. Please Bob correct me if I'm wrong there.
Well, yes and no. Of course I am thinking first of Windows and OSX, and how they should remain first-class citizens of the Inkscape environment, and not poor stepchildren.
Well, yes, but, we can't expect them to be exactly the same all the time. If nothing else, the number of developers contributing on win32 is smaller than the number contributing on win32. Just by that ratio I would always expect win32 to lag a little bit with new features. Not a 'dis to the people doing the work; it's just a numbers game.
-But- it will certainly happen often where Linux people will have enough GTK stuff to run Inkscape, but will -NOT- be running Gnome. Either a non-Gnome, or a non-recent Gnome, environment will lack dbus. A KDE environment may likely not have dbus running.
The Linux desktop today won't really run without DBus. Infact, most distro's won't boot without DBus. It's really become a critical service that we can count on withing the Linux Desktop.
Also I'll have to make sure that a user level DBus daemon could provide the default session bus. Otherwise users would have to look for the interface on two separate buses (The session bus, or our own private bus if that's not running.)
I would be surprised if a dbus daemon would start up correctly if another were already running. If a root dbus daemon is running, then of course you don't need another one. We only would want to run one if it's not already there. It's like if you have an electric generator for your home lighting in case of a storm. Normally you would just use the power mains.
On a typical desktop linux system there are two running. A system bus and a session bus. But there can be as many session buses as there are users logged in. It's also possible to have more than that. For instance we create custom buses for our test harnesses to ensure there isn't any interference on the bus for the tests executing.
In most cases there is very little reason to run more than on session bus. And I think that we should check for the session bus, and if it doesn't exist, assume the user doesn't want to use DBus.
My plan was to have it be Unix only at first and add windows support when windows DBus has been hammered out a bit more. It may always take a little effort to get DBus running on Windows, so I doubt that this API will ever be the default on that platform, but it should work in native Windows eventually.
We have resisted for a long time the temptation to treat non-Unix boxes as limited-capability ports. An --ENORMOUS-- amount of work has been expended to prevent that from happening. Please let's not surrender now.
Heh, remember the Alamo! Oh, wait, probably not a good reference ;)
--Ted