Hi On Fri, Jul 31, 2015 at 6:47 PM, Orion Poplawski <orion@xxxxxxxxxxxxx> wrote: > 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. This is UpdateActivationEnvironment() failing. This call definitely works and we use it on our machines. However, it returns an error if the argument-array is empty. I fixed this in -git now [1]. It sounds like you're hitting this. If the fix doesn't help, please let me know (should be in rawhide by tomorrow). Thanks a lot for the report! David [1] https://github.com/systemd/systemd/commit/b2a0ac5e5b29c73ca7c0da23369a4769d5a91ddd > 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@xxxxxxxx > Boulder, CO 80301 http://www.nwra.com > -- > devel mailing list > devel@xxxxxxxxxxxxxxxxxxxxxxx > https://admin.fedoraproject.org/mailman/listinfo/devel > Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct -- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct