Haskell:在FreeBSD上无法连接到DBus作为客户端

时间:2017-03-31 18:16:36

标签: haskell ghc freebsd dbus haskell-stack

我正在使用此库执行此操作:http://hackage.haskell.org/package/dbus。 这是一个重现它的最小例子:

#!/usr/bin/env stack
-- stack runghc --resolver lts-7.20 --install-ghc --package dbus
import DBus.Client
main = () <$ connectSession

当我尝试启动它时,我收到此错误:

SocketError {socketErrorMessage = "Authentication failed", socketErrorFatal = True, socketErrorAddress = Just (Address "unix:guid=53252465d2726f11957f8b9d58de79ab,path=/tmp/dbus-jUIv1mTBAV")}

但是使用dbus-send实用程序,我可以毫无错误地发出请求:

$ dbus-send --session --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames
method return time=1490977755.289281 sender=org.freedesktop.DBus -> destination=:1.44 serial=3 reply_serial=2
   array [
      string "org.freedesktop.DBus"
      string "org.gtk.vfs.mountpoint_14512"
      string ":1.7"
... rest of the list was removed ...

我正在~/.profile以这种方式启动DBus守护进程:

DBUS_SESSION_BUS_ADDRESS=`dbus-daemon --fork --session --print-address`
export DBUS_SESSION_BUS_ADDRESS

仅与 FreeBSD 相关,连接到DBus在GNU / Linux上运行良好。

0 个答案:

没有答案