mingw-cross-env-list
[Top][All Lists]
Advanced

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

[Mingw-cross-env-list] Re: new package: dbus


From: René Berber
Subject: [Mingw-cross-env-list] Re: new package: dbus
Date: Thu, 06 Jan 2011 11:31:29 -0600
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081209 Lightning/0.9 Thunderbird/2.0.0.19 Mnenhy/0.7.6.0

Mark Brand wrote:

> Recently I learned that Windows support had been added to the main dbus 
> project, so I took on the challenge of adding dbus and enabled dbus 
> support in Qt in mingw-cross-env.
> 
> For me this is still very experimental, and it wasn't obvious how to get 
> connections working, so I thought I should post what seems to work for 
> me at this stage:
> 
> http://pastebin.com/1nLqpDrB
> 
> Please feel free to experiment. It's probably possible to add dbus 
> support to other packages too.

I've been used the cross-built DBUS since version 1.3.0, going to 1.3.1
both of which where "developer" releases, and 1.4.0 with Qt rebuilt to
enable DBUS support.

It works fine, but there are some notes missing from your message, from
memory:

 * DBUS 1.4.0 has a small error that prevents compilation, its trivial
and it has been fixed on their repository (I haven't used the fix, but
when I reported the error one of the developers said he had commited it).

 * The DBUS executables don't all work, I use mainly dbus-daemon.exe
which works fine most of the time.  dbus-launch doesn't do anything, and
its made that way for Windows (no shell in Windows).  The problem with
dbus-daemon is that some times it loops, taking 100% CPU and doing
nothing... my solution has been to kill it and start it again.

 * Qt with DBUS also works fine, but it has one detail (or several):
even when built with everything linked statically (as in normal with
this cross build environment), it requires the dynamic DBUS library.  I
haven't searched why, my guess is that one of the Qt "geniuses" thought
it was fine to always dynamically load the library on Windows, not by
linking, but by loading the library by name.  The name of the library is
also changed, Qt looks for dbus-1.dll (not libdbus-1-3.dll which is the
product of building DBUS).

 * One interesting point is that the DBUS library starts the dbus-daemon
if it doesn't find one already running.  That means I only need to put
dbus-daemon.exe and dbus-1.dll alongside the Qt application and it works
(but in the application I'm only using a session daemon, I don't know if
it is the same with a system daemon).

Regards.
-- 
René Berber




reply via email to

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