diff --git a/pkgs/desktops/plasma-5/kwin/0001-follow-symlinks.patch b/pkgs/desktops/plasma-5/kwin/0001-follow-symlinks.patch new file mode 100644 index 00000000000..4861df46ca6 --- /dev/null +++ b/pkgs/desktops/plasma-5/kwin/0001-follow-symlinks.patch @@ -0,0 +1,25 @@ +From 449896c45b23f50c168d8d2789832024c906ec36 Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel +Date: Mon, 27 Jan 2020 05:31:13 -0600 +Subject: [PATCH 1/2] follow symlinks + +--- + plugins/kdecorations/aurorae/src/aurorae.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/kdecorations/aurorae/src/aurorae.cpp b/plugins/kdecorations/aurorae/src/aurorae.cpp +index fd723a8..fb95633 100644 +--- a/plugins/kdecorations/aurorae/src/aurorae.cpp ++++ b/plugins/kdecorations/aurorae/src/aurorae.cpp +@@ -211,7 +211,7 @@ void Helper::init() + // so let's try to locate our plugin: + QString pluginPath; + for (const QString &path : m_engine->importPathList()) { +- QDirIterator it(path, QDirIterator::Subdirectories); ++ QDirIterator it(path, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks); + while (it.hasNext()) { + it.next(); + QFileInfo fileInfo = it.fileInfo(); +-- +2.23.1 + diff --git a/pkgs/desktops/plasma-5/kwin/xwayland.patch b/pkgs/desktops/plasma-5/kwin/0002-xwayland.patch similarity index 50% rename from pkgs/desktops/plasma-5/kwin/xwayland.patch rename to pkgs/desktops/plasma-5/kwin/0002-xwayland.patch index 9d405b3bbb8..0505810abe6 100644 --- a/pkgs/desktops/plasma-5/kwin/xwayland.patch +++ b/pkgs/desktops/plasma-5/kwin/0002-xwayland.patch @@ -1,8 +1,17 @@ -Index: kwin-5.15.5/xwl/xwayland.cpp -=================================================================== ---- kwin-5.15.5.orig/xwl/xwayland.cpp -+++ kwin-5.15.5/xwl/xwayland.cpp -@@ -143,7 +143,7 @@ void Xwayland::init() +From d584b075d71c4486710c0bbed6d44038f2ff5075 Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel +Date: Mon, 27 Jan 2020 05:31:23 -0600 +Subject: [PATCH 2/2] xwayland + +--- + xwl/xwayland.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xwl/xwayland.cpp b/xwl/xwayland.cpp +index 5f17d39..b4b69ba 100644 +--- a/xwl/xwayland.cpp ++++ b/xwl/xwayland.cpp +@@ -145,7 +145,7 @@ void Xwayland::init() m_xwaylandProcess = new Process(this); m_xwaylandProcess->setProcessChannelMode(QProcess::ForwardedErrorChannel); @@ -11,3 +20,6 @@ Index: kwin-5.15.5/xwl/xwayland.cpp QProcessEnvironment env = m_app->processStartupEnvironment(); env.insert("WAYLAND_SOCKET", QByteArray::number(wlfd)); env.insert("EGL_PLATFORM", QByteArrayLiteral("DRM")); +-- +2.23.1 + diff --git a/pkgs/desktops/plasma-5/kwin/default.nix b/pkgs/desktops/plasma-5/kwin/default.nix index b8f381e9714..0e1709d8245 100644 --- a/pkgs/desktops/plasma-5/kwin/default.nix +++ b/pkgs/desktops/plasma-5/kwin/default.nix @@ -14,6 +14,9 @@ plasma-framework, qtsensors, libcap, libdrm }: +# TODO (ttuegel): investigate qmlplugindump failure +# TODO (ttuegel): investigate gbm dependency + mkDerivation { name = "kwin"; nativeBuildInputs = [ extra-cmake-modules kdoctools ]; @@ -30,7 +33,10 @@ mkDerivation { libcap libdrm ]; outputs = [ "bin" "dev" "out" ]; - patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); + patches = [ + ./0001-follow-symlinks.patch + ./0002-xwayland.patch + ]; CXXFLAGS = [ ''-DNIXPKGS_XWAYLAND=\"${lib.getBin xwayland}/bin/Xwayland\"'' ]; diff --git a/pkgs/desktops/plasma-5/kwin/follow-symlinks.patch b/pkgs/desktops/plasma-5/kwin/follow-symlinks.patch deleted file mode 100644 index 60b8f5ef541..00000000000 --- a/pkgs/desktops/plasma-5/kwin/follow-symlinks.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: kwin-5.7.3/plugins/kdecorations/aurorae/src/aurorae.cpp -=================================================================== ---- kwin-5.7.3.orig/plugins/kdecorations/aurorae/src/aurorae.cpp -+++ kwin-5.7.3/plugins/kdecorations/aurorae/src/aurorae.cpp -@@ -211,7 +211,7 @@ void Helper::init() - // so let's try to locate our plugin: - QString pluginPath; - for (const QString &path : m_engine->importPathList()) { -- QDirIterator it(path, QDirIterator::Subdirectories); -+ QDirIterator it(path, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks); - while (it.hasNext()) { - it.next(); - QFileInfo fileInfo = it.fileInfo(); diff --git a/pkgs/desktops/plasma-5/kwin/no-setcap-install.patch b/pkgs/desktops/plasma-5/kwin/no-setcap-install.patch deleted file mode 100644 index 80aacacc6ca..00000000000 --- a/pkgs/desktops/plasma-5/kwin/no-setcap-install.patch +++ /dev/null @@ -1,24 +0,0 @@ -Dont set capabilities on kwin_wayland executable at build time - -This is handled by security.wrappers on NixOS - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 48cbcdbfe..93b410ed8 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -674,15 +674,6 @@ if (HAVE_LIBCAP) - endif() - - install(TARGETS kwin_wayland ${INSTALL_TARGETS_DEFAULT_ARGS} ) --if (HAVE_LIBCAP) -- install( -- CODE "execute_process( -- COMMAND -- ${SETCAP_EXECUTABLE} -- CAP_SYS_NICE=+ep -- \$ENV{DESTDIR}${CMAKE_INSTALL_FULL_BINDIR}/kwin_wayland)" -- ) --endif() - - add_subdirectory(platformsupport) - add_subdirectory(plugins) diff --git a/pkgs/desktops/plasma-5/kwin/series b/pkgs/desktops/plasma-5/kwin/series deleted file mode 100644 index 8efb74eabd6..00000000000 --- a/pkgs/desktops/plasma-5/kwin/series +++ /dev/null @@ -1,3 +0,0 @@ -follow-symlinks.patch -xwayland.patch -no-setcap-install.patch