if you use D-Bus on non-Linux Unix, please try new DBusSocket code

Rick Mann rmann at latencyzero.com
Wed Apr 8 14:10:44 PDT 2015


Attempting to build with cmake resulted in errors during the cmake stage. I followed the linux instructions in README.cmake.

CMakeErrors.log:	http://pastebin.com/KMYutyDv
CMakeOutput.log:	http://pastebin.com/mP7d6ZFt

> On Mar 31, 2015, at 05:35 , Simon McVittie <simon.mcvittie at collabora.co.uk> wrote:
> 
> On <https://bugs.freedesktop.org/show_bug.cgi?id=89444> we've been
> working on fixing the distinction between file descriptors and sockets,
> which are the same thing on Unix, but unfortunately not on Windows
> (where a SOCKET is basically a uintptr_t, if done correctly).
> 
> The solution we're trying is to introduce an internal DBusSocket struct
> containing an int (on Unix) or a SOCKET (on Windows), to force APIs to
> distinguish between the native thing and the abstraction.
> 
> If you use D-Bus on non-Linux Unix platforms (*BSD, Solaris, etc.) it's
> possible that this will cause compilation failures, if I missed code
> paths that are not compiled on Linux. So, please try compiling, and
> preferably testing, this branch on your favourite Unix platform:
> 
>    git clone -b dbussocket git://people.freedesktop.org/~smcv/dbus
>    web: http://cgit.freedesktop.org/~smcv/dbus/log/?h=dbussocket
> 
> and report any problems on #89444, ideally with patches. The fix for any
> compilation errors will probably be something quite simple, like
> replacing "getsomesocketthing (s)" with "getsomesocketthing (s.fd)".
> 
> The intention is:
> 
> * non-Unix-specific code consistently uses DBusSocket (if the thing
>  is definitely a socket) or DBusPollable (if it's an arbitrary
>  pollable thing, i.e. a socket on Windows but any fd on Unix),
>  and does not assume that either of those is an integer
> 
> * Unix-specific socket handling (dbus-sysdeps-*unix.c etc.) passes s.fd,
>  which is an int, to platform APIs
> 
> * Unix-specific pollable handling may rely on the fact that DBusPollable
>  is really an int
> 
> * for the moment, public APIs are still in terms of int, although
>  we should probably add dbus_watch_get_windows_socket() eventually
> 
> -- 
> Simon McVittie
> Collabora Ltd. <http://www.collabora.com/>
> _______________________________________________
> dbus mailing list
> dbus at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dbus


-- 
Rick Mann
rmann at latencyzero.com




More information about the dbus mailing list