Remove direct KInit dependency

KInit will be gone in KF6. However, we still need to update a KF5 KLauncher
for the time being, for KF5-based apps running in a Plasma 6 session. All
we need for that is a copy of the D-Bus interface definition though.
wilder-5.26
Volker Krause 4 years ago
parent 7f96e360c5
commit 502430d769
  1. 1
      .kde-ci.yml
  2. 2
      CMakeLists.txt
  3. 2
      libkworkspace/CMakeLists.txt
  4. 76
      libkworkspace/kf5_org.kde.KLauncher.xml
  5. 2
      libkworkspace/updatelaunchenvjob.cpp

@ -50,7 +50,6 @@ Dependencies:
'frameworks/kdesu': '@latest' 'frameworks/kdesu': '@latest'
'frameworks/kpeople': '@latest' 'frameworks/kpeople': '@latest'
'frameworks/prison': '@latest' 'frameworks/prison': '@latest'
'frameworks/kinit': '@latest'
'plasma/layer-shell-qt': '@same' 'plasma/layer-shell-qt': '@same'
'plasma/kscreenlocker': '@same' 'plasma/kscreenlocker': '@same'
'plasma/libkscreen': '@same' 'plasma/libkscreen': '@same'

@ -41,7 +41,7 @@ find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
Auth Plasma Runner Notifications NotifyConfig NewStuff Wallet IdleTime Auth Plasma Runner Notifications NotifyConfig NewStuff Wallet IdleTime
Declarative I18n KCMUtils TextWidgets Crash GlobalAccel DBusAddons Wayland Declarative I18n KCMUtils TextWidgets Crash GlobalAccel DBusAddons Wayland
CoreAddons People ActivitiesStats Activities KIO Prison PlasmaQuick Package CoreAddons People ActivitiesStats Activities KIO Prison PlasmaQuick Package
GuiAddons Archive ItemModels IconThemes UnitConversion ItemModels Init TextEditor GuiAddons Archive ItemModels IconThemes UnitConversion ItemModels TextEditor
OPTIONAL_COMPONENTS DocTools) OPTIONAL_COMPONENTS DocTools)
find_package(KDED CONFIG REQUIRED) find_package(KDED CONFIG REQUIRED)

@ -15,7 +15,7 @@ set(kworkspace_LIB_SRCS kdisplaymanager.cpp
add_definitions(-DTRANSLATION_DOMAIN=\"libkworkspace\") add_definitions(-DTRANSLATION_DOMAIN=\"libkworkspace\")
qt_add_dbus_interface(kworkspace_LIB_SRCS ${KINIT_DBUS_INTERFACES_DIR}/kf5_org.kde.KLauncher.xml klauncher_interface) qt_add_dbus_interface(kworkspace_LIB_SRCS kf5_org.kde.KLauncher.xml klauncher_interface)
qt_add_dbus_interface(kworkspace_LIB_SRCS ${KSCREENLOCKER_DBUS_INTERFACES_DIR}/kf5_org.freedesktop.ScreenSaver.xml screenlocker_interface ) qt_add_dbus_interface(kworkspace_LIB_SRCS ${KSCREENLOCKER_DBUS_INTERFACES_DIR}/kf5_org.freedesktop.ScreenSaver.xml screenlocker_interface )
qt_add_dbus_interface(kworkspace_LIB_SRCS ${KSCREENLOCKER_DBUS_INTERFACES_DIR}/org.kde.screensaver.xml kscreenlocker_interface ) qt_add_dbus_interface(kworkspace_LIB_SRCS ${KSCREENLOCKER_DBUS_INTERFACES_DIR}/org.kde.screensaver.xml kscreenlocker_interface )
qt_add_dbus_interface(kworkspace_LIB_SRCS ${plasma-workspace_SOURCE_DIR}/ksmserver/org.kde.LogoutPrompt.xml logoutprompt_interface) qt_add_dbus_interface(kworkspace_LIB_SRCS ${plasma-workspace_SOURCE_DIR}/ksmserver/org.kde.LogoutPrompt.xml logoutprompt_interface)

@ -0,0 +1,76 @@
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
<interface name="org.kde.KLauncher">
<method name="exec_blind">
<arg name="name" type="s" direction="in"/>
<arg name="arg_list" type="as" direction="in"/>
</method>
<method name="exec_blind">
<arg name="name" type="s" direction="in"/>
<arg name="arg_list" type="as" direction="in"/>
<arg name="envs" type="as" direction="in"/>
<arg name="startup_id" type="s" direction="in"/>
</method>
<method name="kdeinit_exec">
<arg type="i" direction="out"/>
<arg name="app" type="s" direction="in"/>
<arg name="args" type="as" direction="in"/>
<arg name="env" type="as" direction="in"/>
<arg name="startup_id" type="s" direction="in"/>
<arg name="dbusServiceName" type="s" direction="out"/>
<arg name="error" type="s" direction="out"/>
<arg name="pid" type="i" direction="out"/>
</method>
<method name="kdeinit_exec_wait">
<arg type="i" direction="out"/>
<arg name="app" type="s" direction="in"/>
<arg name="args" type="as" direction="in"/>
<arg name="env" type="as" direction="in"/>
<arg name="startup_id" type="s" direction="in"/>
<arg name="dbusServiceName" type="s" direction="out"/>
<arg name="error" type="s" direction="out"/>
<arg name="pid" type="i" direction="out"/>
</method>
<method name="kdeinit_exec_with_workdir">
<arg type="i" direction="out"/>
<arg name="app" type="s" direction="in"/>
<arg name="args" type="as" direction="in"/>
<arg name="workdir" type="s" direction="in"/>
<arg name="env" type="as" direction="in"/>
<arg name="startup_id" type="s" direction="in"/>
<arg name="dbusServiceName" type="s" direction="out"/>
<arg name="error" type="s" direction="out"/>
<arg name="pid" type="i" direction="out"/>
</method>
<method name="reparseConfiguration">
</method>
<method name="setLaunchEnv">
<arg name="name" type="s" direction="in"/>
<arg name="value" type="s" direction="in"/>
</method>
<method name="start_service_by_desktop_name">
<arg type="i" direction="out"/>
<arg name="serviceName" type="s" direction="in"/>
<arg name="urls" type="as" direction="in"/>
<arg name="envs" type="as" direction="in"/>
<arg name="startup_id" type="s" direction="in"/>
<arg name="blind" type="b" direction="in"/>
<arg name="dbusServiceName" type="s" direction="out"/>
<arg name="error" type="s" direction="out"/>
<arg name="pid" type="i" direction="out"/>
</method>
<method name="start_service_by_desktop_path">
<arg type="i" direction="out"/>
<arg name="serviceName" type="s" direction="in"/>
<arg name="urls" type="as" direction="in"/>
<arg name="envs" type="as" direction="in"/>
<arg name="startup_id" type="s" direction="in"/>
<arg name="blind" type="b" direction="in"/>
<arg name="dbusServiceName" type="s" direction="out"/>
<arg name="error" type="s" direction="out"/>
<arg name="pid" type="i" direction="out"/>
</method>
<method name="terminate_kdeinit">
</method>
</interface>
</node>

@ -76,7 +76,7 @@ void UpdateLaunchEnvJob::start()
} }
const QString value = d->environment.value(varName); const QString value = d->environment.value(varName);
// KLauncher; remove this in KF6 (by then KInit will be gone) // KLauncher (for backward compatibility with KF5 only, can be removed in Plasma 7)
org::kde::KLauncher klauncher(QStringLiteral("org.kde.klauncher5"), QStringLiteral("/KLauncher"), QDBusConnection::sessionBus()); org::kde::KLauncher klauncher(QStringLiteral("org.kde.klauncher5"), QStringLiteral("/KLauncher"), QDBusConnection::sessionBus());
auto klauncherReply = klauncher.setLaunchEnv(varName, value); auto klauncherReply = klauncher.setLaunchEnv(varName, value);
d->monitorReply(klauncherReply); d->monitorReply(klauncherReply);

Loading…
Cancel
Save