[PATCH]: adapt to new DBusWatch api

Dan Williams dcbw at redhat.com
Mon Nov 5 17:46:42 EST 2007


On Tue, 2007-11-06 at 07:51 +1000, Kel Modderman wrote:
> On Tue, 6 Nov 2007 12:44:20 am Dan Williams wrote:
> > On Sun, 2007-11-04 at 18:11 -0800, Jouni Malinen wrote:
> > > On Sun, Nov 04, 2007 at 08:26:19AM +1000, Kel Modderman wrote:
> > > > Concerning the following compile warnings:
> > > > ctrl_iface_dbus.c: In function 'connection_setup_add_watch':
> > > > ctrl_iface_dbus.c:86: warning: 'dbus_watch_get_fd' is deprecated
> > > > (declared at /usr/include/dbus-1.0/dbus/dbus-connection.h:357)
> > > >
> > > > The DBusWatch api has tagged dbus_watch_get_fd as deprecated in favour
> > > > of dbus_watch_get_unix_fd [0].
> > > > [0] http://dbus.freedesktop.org/doc/api/html/group__DBusWatch.html
> > >
> > > When was this deprecated? The header files I have on my system (dbus
> > > 1.0.2) do not have any notes on it being deprecated. The web page is
> > > stating that it is deprecated, but that would not show up in compilation
> > > results.. Based on NEWS file from dbus-1.1.2, this was done in D-Bus
> > > 1.1.1 which is a development release. Is that version (or 1.1.2 for that
> > > matter) being deployed in some distros already?
> >
> > Fedora 8 will have 1.1.2 at least.  The patch _looks_ OK, but I'll ask
> > around a bit about the expected changes here.
> 
> Debian Lenny will have >= 1.1.2.
> 
> >
> > > > Attached patch directly changes to this api, as I cannot think of sane
> > > > way to add compile time test of DBUS_VERSION_* or the like.
> > > >
> > > > -       fd = dbus_watch_get_fd(watch);
> > > > +       fd = dbus_watch_get_unix_fd(watch);
> > >
> > > dbus_watch_get_unix_fd() does not seem to be available in dbus 0.90
> > > ("API/ABI freeze for 1.0" in change log), 1.0.0, or even 1.0.2. In other
> > > words, I don't think it is available in any stable dbus release and as
> > > such, this patch would break a lot (most?) of existing systems and I
> > > don't think I can apply this change at this point.
> > >
> > > If there is no DBUS_VERSION_* macro that changes between dbus 1.0.x and
> > > 1.1.x (or well, 1.2.x, once the stable release becomes available) and
> > > the API is changes, someone better try to get dbus maintainers to fix
> > > this.. There really needs to be a compile time mechanism for #ifdef'ing
> > > this properly.
> >
> > I'll look into that too; I've been using some configure.ac magic in
> > NetworkManager to detect the version, but it certainly would be better
> > to have dbus upstream have the version macros themselves.
> 
> Most other projects around that adjusted to this new stuff used
> DBUS_VERSION_MAJOR, DBUS_VERSION_MINOR, DBUS_VERSION_MICRO that were
> generated by `pkg-config --modversion dbus-1` + script somewhere in the build system.
> 
> eg:
> 
> #if (DBUS_VERSION_MAJOR == 1 && DBUS_VERSION_MINOR == 1 && DBUS_VERSION_MICRO >= 1) || (DBUS_VERSION_MAJOR == 1 && DBUS_VERSION_MINOR > 1) || (DBUS_VERSION_MAJOR > 1)
>     int fd = dbus_watch_get_unix_fd(watch);
> #else
>     int fd = dbus_watch_get_fd(watch);
> #endif

Yeah, that's pretty much what is done in NetworkManager.  I guess we
have to add these bits to the wpa_supplicant build system.  The build
bits already should be checking for the dbus .pc file anyway, if they
aren't then I should add that.

Dan





More information about the HostAP mailing list