X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-1.2 required=5.0 tests=AWL,BAYES_05,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org From: Michael Albinus To: cygwin AT cygwin DOT com Subject: Re: Emacs and DBUS References: <847hjvdyr9 DOT fsf AT aol DOT com> <4C667099 DOT 2020103 AT cornell DOT edu> <87mxsj69st DOT fsf AT gmx DOT de> <4C6C2D11 DOT 8020003 AT cornell DOT edu> <87d3tf685q DOT fsf AT gmx DOT de> <4C6C4BC8 DOT 9010400 AT cornell DOT edu> <87lj7vokyt DOT fsf AT gmx DOT de> <4C74648F DOT 2030203 AT cornell DOT edu> <87d3t7nzez DOT fsf AT gmx DOT de> <4C75226F DOT 9030005 AT cornell DOT edu> <4C752AAB DOT 9000304 AT cornell DOT edu> <4C752F4F DOT 60203 AT cornell DOT edu> <8762yyovon DOT fsf AT gmx DOT de> <4C76C254 DOT 4040802 AT cornell DOT edu> Date: Thu, 26 Aug 2010 22:16:10 +0200 In-Reply-To: <4C76C254.4040802@cornell.edu> (Ken Brown's message of "Thu, 26 Aug 2010 15:36:52 -0400") Message-ID: <87occpyvsl.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Ken Brown writes: >> I'm confused: do you mean, the problem is happening when the system bus >> is running, or when it is *not* running? I suspect the latter case. > > I really meant it the way I said it: The problem occurs if the system > bus *is* running. I've done some further testing, and here are the > results, all with a build of emacs from the trunk, starting in the > emacs src directory. Oops. > 1. With the system bus not running, I start Emacs via 'dbus-launch > ./emacs.exe -Q&' and load dbus.el. In the *scratch* buffer I evaluate > some of the expressions that you suggested in your earlier email: > > (dbus-get-unique-name :session) > ":1.0" > (defun my-dbus-signal-handler (&rest args) > (message "Signal from bus %s received: %s" > (dbus-event-bus-name last-input-event) args)) > my-dbus-signal-handler > (dbus-register-signal > :session dbus-service-dbus dbus-path-dbus dbus-interface-dbus > "NameOwnerChanged" 'my-dbus-signal-handler) > ((:session "org.freedesktop.DBus" "NameOwnerChanged") > ("org.freedesktop.DBus" "/org/freedesktop/DBus" > my-dbus-signal-handler)) > > Now I try 'dbus-monitor --session' in the xterm window from which I > started emacs. This produces output in the xterm window, but I don't > see anything in Emacs. No surprise. You have started an own session bus for Emacs, which is not known to dbus-monitor. You shall do # eval `dbus-launch --auto-syntax` dbus-launch returns some environment variables to be set, which is done by the eval command. The most interesting one is $DBUS_SESSION_BUS_ADDRESS # emacs & Emacs will find the session bus via $DBUS_SESSION_BUS_ADDRESS. Load dbus.el, and eval the expressions as suggested. # dbus-monitor --session This is also a D-Bus client, which connects to the *same* session bus as Emacs did due to $DBUS_SESSION_BUS_ADDRESS. Now you should see the signal sent by dbus-monitor in Emacs. > Back to *scratch*: > > (dbus-get-unique-name :system) > > This throws me into the lisp debugger with the error (dbus-error > "Failed to connect to socket /var/run/dbus/system_bus_socket: > Connection refused"). I guess this is to be expected, since the > system bus is not running. I now start the system bus via 'net start > messagebus' in a shell, and I try again: > > (dbus-get-unique-name :system) > ":1.0" > > Is this to be expected, that I get the same name for :system that I > got for :session? It is not "the same name", it simply looks like :-) Any D-bus daemon counts the registered clients. In both cases, Emacs has been the first one, so you've got the same identity name. The good message is that dbusbind.c is able to speak to both buses under Cygwin! > 2. With the system bus running, I start Emacs as above and load > dbus.el. The cursor stops blinking, and Emacs becomes unresponsive. I > can type C-g and hear a bell, and I can type C-x C-c to exit, but I > can't get a response to any other key presses. That I need to debug. Hmm, no system available next days. Maybe you can compile dbusbind.c with the compiler flag DBUS_DEBUG, something like this in the Emacs source tree: # MYCPPFLAGS='-DDBUS_DEBUG' make This enables test traces sent to Emacs' stdout (the shell where you have started it). I've introduced this flag while testing dbusbind.c, when it has blocked Emacs, and I didn't want to start gdb ... Maybe I can see something suspicious in the traces. > I'm willing to try anything else you suggest. Otherwise, I hope > you're able to debug this when you return from your travels. The > unstripped emacs-X11.exe binary (Emacs 23.2) is at > > http://www.math.cornell.edu/~kbrown/emacs-X11.exe.bz2 > > and the binary for my build from the trunk is at > > http://www.math.cornell.edu/~kbrown/emacs.exe.bz2 > > Ken Thanks, and best regards, Michael. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple