Hello community, here is the log from the commit of package kdebase4-workspace for openSUSE:Factory checked in at 2012-11-16 13:35:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kdebase4-workspace (Old) and /work/SRC/openSUSE:Factory/.kdebase4-workspace.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdebase4-workspace", Maintainer is "kde-maintain...@suse.de" Changes: -------- --- /work/SRC/openSUSE:Factory/kdebase4-workspace/kdebase4-workspace.changes 2012-11-08 07:42:53.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.kdebase4-workspace.new/kdebase4-workspace.changes 2012-11-16 13:35:55.000000000 +0100 @@ -1,0 +2,6 @@ +Thu Nov 15 10:13:44 UTC 2012 - tittiatc...@gmail.com + +- Activate systemd support for Factory only. This disables + ConsoleKit support !! + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kdebase4-workspace.spec ++++++ --- /var/tmp/diff_new_pack.6OzSZh/_old 2012-11-16 13:35:58.000000000 +0100 +++ /var/tmp/diff_new_pack.6OzSZh/_new 2012-11-16 13:35:58.000000000 +0100 @@ -16,7 +16,11 @@ # +%if 0%{?suse_version} > 1220 +%define with_systemd 1 +%else %define with_systemd 0 +%endif Name: kdebase4-workspace Version: 4.9.3 ++++++ workspace_systemd_initial_support.patch ++++++ --- /var/tmp/diff_new_pack.6OzSZh/_old 2012-11-16 13:35:58.000000000 +0100 +++ /var/tmp/diff_new_pack.6OzSZh/_new 2012-11-16 13:35:58.000000000 +0100 @@ -327,3 +327,115 @@ } } return false; +--- kde-workspace-4.9.2/libs/kworkspace/kdisplaymanager.cpp.moje 2012-10-08 15:27:57.172066523 +0200 ++++ kde-workspace-4.9.1/libs/kworkspace/kdisplaymanager.cpp 2012-10-08 15:28:42.494886559 +0200 +@@ -112,6 +112,19 @@ public: + path.path(), + QLatin1String("org.freedesktop.login1.Seat"), + QDBusConnection::systemBus()) {} ++ /* HACK to be able to extract a(so) type from QDBus, property doesn't do the trick */ ++ QList<NamedDBusObjectPath> getSessions() { ++ QDBusMessage message = QDBusMessage::createMethodCall(service(), path(), QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("Get")); ++ message << interface() << QLatin1String("Sessions"); ++ QDBusMessage reply = QDBusConnection::systemBus().call(message); ++ ++ QVariantList args = reply.arguments(); ++ if (!args.isEmpty()) { ++ QList<NamedDBusObjectPath> namedPathList = qdbus_cast< QList<NamedDBusObjectPath> >(args.at(0).value<QDBusVariant>().variant().value<QDBusArgument>()); ++ return namedPathList; ++ } ++ return QList<NamedDBusObjectPath>(); ++ } + }; + + class SystemdSession : public QDBusInterface +@@ -123,6 +136,33 @@ public: + path.path(), + QLatin1String("org.freedesktop.login1.Session"), + QDBusConnection::systemBus()) {} ++ /* HACK to be able to extract (so) type from QDBus, property doesn't do the trick */ ++ NamedDBusObjectPath getSeat() { ++ QDBusMessage message = QDBusMessage::createMethodCall(service(), path(), QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("Get")); ++ message << interface() << QLatin1String("Seat"); ++ QDBusMessage reply = QDBusConnection::systemBus().call(message); ++ ++ QVariantList args = reply.arguments(); ++ if (!args.isEmpty()) { ++ NamedDBusObjectPath namedPath; ++ args.at(0).value<QDBusVariant>().variant().value<QDBusArgument>() >> namedPath; ++ return namedPath; ++ } ++ return NamedDBusObjectPath(); ++ } ++ NumberedDBusObjectPath getUser() { ++ QDBusMessage message = QDBusMessage::createMethodCall(service(), path(), QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("Get")); ++ message << interface() << QLatin1String("User"); ++ QDBusMessage reply = QDBusConnection::systemBus().call(message); ++ ++ QVariantList args = reply.arguments(); ++ if (!args.isEmpty()) { ++ NumberedDBusObjectPath numberedPath; ++ args.at(0).value<QDBusVariant>().variant().value<QDBusArgument>() >> numberedPath; ++ return numberedPath; ++ } ++ return NumberedDBusObjectPath(); ++ } + }; + #else + class CKManager : public QDBusInterface +@@ -339,14 +379,11 @@ static bool getCurrentSeat(QDBusObjectPa + if (r.isValid()) { + SystemdSession sess(r.value()); + if (sess.isValid()) { +- QVariant p = sess.property("Seat"); +- if (p.canConvert<NamedDBusObjectPath>()) { +- NamedDBusObjectPath namedPath = p.value<NamedDBusObjectPath>(); +- if (currentSession) +- *currentSession = r.value(); +- *currentSeat = namedPath.path; +- return true; +- } ++ NamedDBusObjectPath namedPath = sess.getSeat(); ++ if (currentSession) ++ *currentSession = r.value(); ++ *currentSeat = namedPath.path; ++ return true; + } + } + #else +@@ -373,17 +410,14 @@ static QList<QDBusObjectPath> getSession + #ifdef KWORKSPACE_USE_SYSTEMD + SystemdSeat seat(path); + if (seat.isValid()) { +- QVariant p = seat.property("Sessions"); +- if (p.canConvert<QList<NamedDBusObjectPath> >()) { +- QList<NamedDBusObjectPath> r = p.value<QList<NamedDBusObjectPath> >(); +- QList<QDBusObjectPath> result; +- foreach (const NamedDBusObjectPath &namedPath, r) +- result.append(namedPath.path); +- // This will contain only local sessions: +- // - this is only ever called when isSwitchable() is true => local seat +- // - remote logins into the machine are assigned to other seats +- return result; +- } ++ QList<NamedDBusObjectPath> r = seat.getSessions(); ++ QList<QDBusObjectPath> result; ++ foreach (const NamedDBusObjectPath &namedPath, r) ++ result.append(namedPath.path); ++ // This will contain only local sessions: ++ // - this is only ever called when isSwitchable() is true => local seat ++ // - remote logins into the machine are assigned to other seats ++ return result; + } + #else + CKSeat seat(path); +@@ -633,8 +667,7 @@ KDisplayManager::localSessions(SessList + SessEnt se; + getSessionLocation(lsess, se); + if (lsess.property("Class").toString() != QLatin1String("greeter")) { +- QVariant p = lsess.property("User"); +- NumberedDBusObjectPath numberedPath = p.value<NumberedDBusObjectPath>(); ++ NumberedDBusObjectPath numberedPath = lsess.getUser(); + se.user = KUser(K_UID(numberedPath.num)).loginName(); + se.session = "<unknown>"; + } -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org