On Fri, Jan 23, 2015 at 3:45 PM, Pierre Abbat
<p...@leaf.dragonflybsd.org> wrote:
> On Tuesday, January 20, 2015 20:21:32 karu.pruun wrote:
>> I am using 64 bit machines in both cases. It's a puzzling situation
>> since the relevant ports all seem to be identical on both machines.
>>
>> Tested with your com.mycompany.Test1 and got the same result.
>>
>> Thanks for mentioning the dbus webpage, I'll try and see if I can get
>> more info how the dbus EXTERNAL authentication mechanism is supposed
>> to work: what the strings 30 (FreeBSD) vs 34323934393637323935
>> (DragonFly) stand for.
>
> 34323934393637323935 is obviously 4294967295 (2^32-1) in ASCII hex. What it
> means in the protocol, I don't know.


Turns out it was supposed to be a UID. In the end, the error was with
credentials passing in devel/glib20 that polkitd uses. The attached
patch fixes it:

- copy the patch to /usr/dports/devel/glib20/dragonfly/
- make install

All the problems listed above go away:

-upowerd crashes
-ConsoleKit can't make a session active
-X login is freezing a minute or two
-The session menu of xfce is freezing also for some time
-any logoff from xfve is freezing temporarilly and leaves some
applications opened.

I haven't tested xdm etc though.

I'll try to get it to dports on github.

Peeter

--
--- gio/gcredentialsprivate.h.orig	2015-01-25 13:11:55.000000000 +0900
+++ gio/gcredentialsprivate.h	2015-01-25 13:14:07.000000000 +0900
@@ -39,6 +39,14 @@
 #define G_CREDENTIALS_UNIX_CREDENTIALS_MESSAGE_SUPPORTED 1
 #define G_CREDENTIALS_SPOOFING_SUPPORTED 1
 
+#elif defined(__DragonFly__)
+#define G_CREDENTIALS_SUPPORTED 1
+#define G_CREDENTIALS_USE_FREEBSD_CMSGCRED 1
+#define G_CREDENTIALS_NATIVE_TYPE G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED
+#define G_CREDENTIALS_NATIVE_SIZE (sizeof (struct cmsgcred))
+#define G_CREDENTIALS_UNIX_CREDENTIALS_MESSAGE_SUPPORTED 1
+#define G_CREDENTIALS_SPOOFING_SUPPORTED 1
+
 #elif defined(__NetBSD__)
 #define G_CREDENTIALS_SUPPORTED 1
 #define G_CREDENTIALS_USE_NETBSD_UNPCBID 1

Reply via email to