FEATURE: 405302
FIXED-IN: 19.08.0
Details
- Reviewers
elvisangelaccio davidedmundson - Group Reviewers
Dolphin - Commits
- R318:b303e3c93a93: Re-implement Meta-E global launch shortcut using KGlobalAccel
- Apply patch
- Reboot (didn't work until I rebooted or logged out and back in again)
- Hit Meta+E
- Dolphin Launches
Diff Detail
- Repository
- R318 Dolphin
- Lint
Automatic diff as part of commit; lint not applicable. - Unit
Automatic diff as part of commit; unit tests not applicable.
Too late for 19.04, please push to master (after replacing BUG: with FEATURE: in the commit message :D)
src/CMakeLists.txt | ||
---|---|---|
391 | Is there a way to do this that does not break a sandboxed (as in: packaging) build? It will also break Windows builds if anyone is doing those. * --------------------------- ACCESS VIOLATION SUMMARY --------------------------- * LOG FILE: "/var/log/sandbox/sandbox-7242.log" * VERSION 1.0 FORMAT: F - Function called FORMAT: S - Access Status FORMAT: P - Path as passed to function FORMAT: A - Absolute Path (not canonical) FORMAT: R - Canonical Path FORMAT: C - Command Line F: symlink S: deny P: /usr/share/kglobalaccel/org.kde.dolphin.desktop A: /usr/share/kglobalaccel/org.kde.dolphin.desktop R: /usr/share/kglobalaccel/org.kde.dolphin.desktop C: /usr/bin/cmake -E create_symlink /usr/share/applications/org.kde.dolphin.desktop /usr/share/kglobalaccel/org.kde.dolphin.desktop * -------------------------------------------------------------------------------- |
The problem is that cmake symlink command tries to execute on the root filesystem.
So during first build, ${IMAGEDIR}/usr/share/kglobalaccel is created, the symlink command simply fails non-fatally, the empty directory is then installed to the root file system.
-- Installing: /var/tmp/portage/kde-apps/dolphin-9999/image/usr/share/kglobalaccel failed to create symbolic link '/usr/share/kglobalaccel/org.kde.dolphin.desktop': No such file or directory
Then on second build, the directory already exists on the root file system so that the symlink command fails with the aforementioned sandbox error.
This fix just got sent my way:
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 63de0932..e8a7c807 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -387,7 +387,7 @@ install( PROGRAMS org.kde.dolphin.desktop DESTINATION ${KDE_INSTALL_APPDIR} ) install( DIRECTORY DESTINATION "${KDE_INSTALL_FULL_DATAROOTDIR}/kglobalaccel" ) install( - CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E create_symlink ${KDE_INSTALL_FULL_APPDIR}/org.kde.dolphin.desktop ${KDE_INSTALL_FULL_DATAROOTDIR}/kglobalaccel/org.kde.dolphin.desktop)" + CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E create_symlink \"${KDE_INSTALL_FULL_APPDIR}/org.kde.dolphin.desktop\" \"\$ENV{DESTDIR}${KDE_INSTALL_FULL_DATAROOTDIR}/kglobalaccel/org.kde.dolphin.desktop\")" ) install( FILES settings/dolphin_directoryviewpropertysettings.kcfg
@asturmlechner Is Spectacle also affected then? This cmake code was copied from there.