diff options
| author | Henri Chain <[email protected]> | 2020-10-21 10:20:56 +0000 |
|---|---|---|
| committer | Henri Chain <[email protected]> | 2020-11-19 10:40:56 +0100 |
| commit | e36de310cbdc60434dd15efbb52e18266a566a28 (patch) | |
| tree | 79070e2af8232d5dd1c1fc918c6b087c02eb2221 | |
| parent | 154843406de7855f845534f3e13612d258558827 (diff) | |
D-Bus activation systemd service
Correctly scopes dolphin in systemd service `app-org.kde.dolphin.service` when dbus-activated (while still working if systemd is not present), as per https://systemd.io/DESKTOP_ENVIRONMENTS/
uses new ECM modules:
- https://invent.kde.org/frameworks/extra-cmake-modules/-/merge_requests/5 to simplify the systemd service templating + install
- https://invent.kde.org/frameworks/extra-cmake-modules/-/merge_requests/17 to generate the dbus service file automatically
needs https://invent.kde.org/frameworks/extra-cmake-modules/-/merge_requests/25
| -rw-r--r-- | CMakeLists.txt | 18 | ||||
| -rw-r--r-- | org.kde.dolphin.FileManager1.service.in | 3 | ||||
| -rw-r--r-- | plasma-dolphin.service.in | 8 |
3 files changed, 21 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 079575866..96291da51 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,7 @@ set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE project(Dolphin VERSION ${RELEASE_SERVICE_VERSION}) set(QT_MIN_VERSION "5.14.0") -set(KF5_MIN_VERSION "5.73.0") +set(KF5_MIN_VERSION "5.75.0") # ECM setup find_package(ECM ${KF5_MIN_VERSION} CONFIG REQUIRED) @@ -16,6 +16,8 @@ set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake) include(ECMSetupVersion) include(ECMGenerateHeaders) +include(ECMGenerateDBusServiceFile) +include(ECMConfiguredInstall) include(CMakePackageConfigHelpers) include(GenerateExportHeader) include(FeatureSummary) @@ -166,10 +168,16 @@ install(FILES COMPONENT Devel ) -configure_file(org.kde.dolphin.FileManager1.service.in - ${CMAKE_CURRENT_BINARY_DIR}/org.kde.dolphin.FileManager1.service) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.kde.dolphin.FileManager1.service - DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR}) +ecm_generate_dbus_service_file( + NAME org.freedesktop.FileManager1 + EXECUTABLE "${KDE_INSTALL_FULL_BINDIR}/dolphin --daemon" + SYSTEMD_SERVICE plasma-dolphin.service + DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR} + RENAME org.kde.dolphin.FileManager1.service +) + +ecm_install_configured_files(INPUT plasma-dolphin.service.in DESTINATION ${SYSTEMD_USER_UNIT_INSTALL_DIR}) + install(FILES dolphin.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}) feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/org.kde.dolphin.FileManager1.service.in b/org.kde.dolphin.FileManager1.service.in deleted file mode 100644 index c1258bb6b..000000000 --- a/org.kde.dolphin.FileManager1.service.in +++ /dev/null @@ -1,3 +0,0 @@ -[D-BUS Service] -Name=org.freedesktop.FileManager1 -Exec=@CMAKE_INSTALL_PREFIX@/bin/dolphin --daemon diff --git a/plasma-dolphin.service.in b/plasma-dolphin.service.in new file mode 100644 index 000000000..d4cdd694b --- /dev/null +++ b/plasma-dolphin.service.in @@ -0,0 +1,8 @@ +[Unit] +Description=Dolphin file manager +PartOf=graphical-session.target + +[Service] +ExecStart=@KDE_INSTALL_FULL_BINDIR@/dolphin --daemon +BusName=org.freedesktop.FileManager1 +Slice=background.slice |
