[HEADS-UP] Please test kdbus in Rawhide!

Orion Poplawski orion at cora.nwra.com
Fri Jul 31 16:47:59 UTC 2015


On 07/30/2015 11:57 AM, Lennart Poettering wrote:
> Heya!
> 
> I'd like to ask everybody to test kdbus on Rawhide. Josh thankfully
> added it to the Rawhide kernel packages, and our systemd RPMs come
> with built-in support, too now. If you are running an up-to-date
> Rawhide system adding "kdbus=1" to your kernel command line is hence
> everything you need to run kdbus instead of dbus-daemon. (No
> additional RPMs need to be installed.) If you do, things should just
> work the same way as before, if we did everything right. By adding or
> dropping "kdbus=1" to/from the command line you can enable kdbus or
> revert back to dbus1 on each individual boot.
> 
> This stuff is opt-in, and we are very keen on getting feedback and
> testing for this. The version of kdbus in Rawhide we consider API
> stable, there is a complete client side available now in systemd, with
> a client API in sd-bus. Compatibility with good old dbus1 is provided
> by the "systemd-bus-proxy" service.
> 
> The folks involved in kdbus development have been running this code on
> their systems for more than half a year now. There were occasional
> hiccups, but we fixed everything we ran into, and it works pretty well
> now. Our focus was specifically on providing the best possible
> compatibility with dbus1. Now we'd like to increase the testing
> audience and added this to Rawhide because of this.
> 

Cannot log into KDE with kdbus, I get:

$ cat .xsession-errors
startkde: Starting up...
startkde: Could not sync environment to dbus.

Code is:

# At this point all environment variables are set, let's send it to the DBus
session server to update the activation environment
/usr/libexec/ksyncdbusenv
if test $? -ne 0; then
  # Startup error
  echo 'startkde: Could not sync environment to dbus.'  1>&2
  test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null
  message "Could not sync environment to dbus."
  exit 1
fi

./plasma-workspace-5.3.2/startkde/ksyncdbusenv/ksyncdbusenv.cpp:

int main(int argc, char **argv)
{
    QCoreApplication app(argc, argv);

    QProcessEnvironment env = QProcessEnvironment::systemEnvironment();

    EnvMap envMap;
    for (const QString &key : env.keys()) {
        envMap.insert(key, env.value(key));
    }

    QDBusMessage msg =
QDBusMessage::createMethodCall(QStringLiteral("org.freedesktop.DBus"),

QStringLiteral("/org/freedesktop/DBus"),

QStringLiteral("org.freedesktop.DBus"),

QStringLiteral("UpdateActivationEnvironment"));
    qDBusRegisterMetaType<EnvMap>();
    msg.setArguments(QList<QVariant>({QVariant::fromValue(envMap)}));

    QDBusPendingCall reply = QDBusConnection::sessionBus().asyncCall(msg);
    reply.waitForFinished();
    if (reply.isError()) {
        qDebug() << reply.error().name() << reply.error().message();
    }
    return reply.isError() ? 1 : 0;
}

-- 
Orion Poplawski
Technical Manager                     303-415-9701 x222
NWRA, Boulder/CoRA Office             FAX: 303-415-9702
3380 Mitchell Lane                       orion at nwra.com
Boulder, CO 80301                   http://www.nwra.com


More information about the devel mailing list