[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

The necessity of gdomap and gdnc?

From: Leigh Smith
Subject: The necessity of gdomap and gdnc?
Date: Tue, 25 Oct 2005 16:37:19 +0800

I've been trying to use GNUstep & MinGW to produce a working Win32 application. One of the goals is to have the application behave as a first class Windows application, in particular to launch it from the Start menu without requiring MSYS and openapp to be running. Our target group of users will never accept a command line...

My application has no need to communicate to other running applications and processes and therefore has no need for distributed notifications or distributed objects.

If the GNUSTEP_SYSTEM_ROOT system environment variables are assigned correctly and the path set to point to GNUstep and MinGW binaries, the app does indeed load and run very well by simply executing the file from the Start menu without requiring openapp.

It does however produce annoying delays as gdomap and gdnc are started each time. If running the app using openapp, gdomap and gdnc are started once and then continue to run, such that subsequent restarts of the application reconnects to the servers already running in the background.

If instead the app is run by directly executing the file, the command.exe is started and displays GNUstep console messages and runs gdomap and gdnc as subprocesses. On terminating the application, command.exe continues to stay running after the application has exited, it seems because gdomap and gdnc continue to run. Quitting command.exe (with ^C or by closing it's window) then kills gdomap and gdnc, such that they are restarted on subsequent runs of the application.

There seem to be a number of solutions, one is to start gdomap and gdnc at boot time as instructed by the GNUstep warning messages. Apart from the work making some installer do this reliably to Windows systems, gdomap and gdnc then produce security alerts on XP systems with firewalls, asking for unblocking these cryptically named processes, adding to more user confusion.

In an application that indeed relies on distributed processes, this would be the price to pay, but after some review of the GNUstep base code, it seems the use of distributed notifications and distributed objects are tightly linked into the pasteboard server, application services and even deeper in the AppKit/gui, regardless of whether the application has any need for such functionality. Yet this functionality impacts the distribution and use of the platform for Windows applications, which is a shame, given how well the implementation operates!

So my question is the degree to which gdomap and gdnc are indeed necessary for an application not requiring explicit use of inter- process comms and if NSMessagePortNameServer would address this (since I see NSMessagePorts are explictly excluded on the MinGW port).

Is it, or would it be, possible to build GNUstep's gui with a ./ configure option or use an NSUserDefault to limit notifications and objects to the running GNUstep application and not attempt to connect to the gdomap & gdnc servers and if so, any hints on implementing this?

Many thanks for the great work
Leigh M. Smith

reply via email to

[Prev in Thread] Current Thread [Next in Thread]