summary refs log tree commit diff
path: root/pkgs/tools/wayland/ydotool
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/wayland/ydotool')
-rw-r--r--pkgs/tools/wayland/ydotool/default.nix24
-rw-r--r--pkgs/tools/wayland/ydotool/fixup-cmakelists.patch58
2 files changed, 74 insertions, 8 deletions
diff --git a/pkgs/tools/wayland/ydotool/default.nix b/pkgs/tools/wayland/ydotool/default.nix
index 76ebd225006..4a75eac8c57 100644
--- a/pkgs/tools/wayland/ydotool/default.nix
+++ b/pkgs/tools/wayland/ydotool/default.nix
@@ -1,26 +1,34 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, boost, libevdevplus, libuinputplus }:
+{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, boost, libevdevplus, libuinputplus, iodash, cxxopts}:
 
 stdenv.mkDerivation rec {
   pname = "ydotool";
-  version = "0.1.8";
+  version = "unstable-2021-01-20";
 
   src = fetchFromGitHub {
     owner = "ReimuNotMoe";
     repo = "ydotool";
-    rev = "v${version}";
-    sha256 = "0mx3636p0f8pznmwm4rlbwq7wrmjb2ygkf8b3a6ps96a7j1fw39l";
+    rev = "b1d041f52f7bac364d6539b1251d29c3b77c0f37";
+    sha256 = "1gzdbx6fv0dbcyia3yyzhv93az2gf90aszb9kcj5cnxywfpv9w9g";
   };
 
-  # disable static linking
+  # upstream decided to use a cpp package manager called cpm.
+  # we need to disable that because it wants networking, furthermore,
+  # it does some system folder creating which also needs to be disabled.
+  # Both changes are to respect the sandbox.
+  patches = [ ./fixup-cmakelists.patch ];
+
+
+  # cxxopts is a header only library.
+  # See pull request: https://github.com/ReimuNotMoe/ydotool/pull/105
   postPatch = ''
     substituteInPlace CMakeLists.txt --replace \
-      "-static" \
-      ""
+      "PUBLIC cxxopts" \
+      "PUBLIC"
   '';
 
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [
-    boost libevdevplus libuinputplus
+    boost libevdevplus libuinputplus iodash cxxopts
   ];
 
   meta = with lib; {
diff --git a/pkgs/tools/wayland/ydotool/fixup-cmakelists.patch b/pkgs/tools/wayland/ydotool/fixup-cmakelists.patch
new file mode 100644
index 00000000000..965d5c38d83
--- /dev/null
+++ b/pkgs/tools/wayland/ydotool/fixup-cmakelists.patch
@@ -0,0 +1,58 @@
+From bb8bc44d22060cd1215712117cf30eae09f4f6ba Mon Sep 17 00:00:00 2001
+From: Jappie Klooster <jappieklooster@hotmail.com>
+Date: Fri, 2 Apr 2021 14:04:14 -0400
+Subject: [PATCH] Fixup cmaklists
+
+We remove cpm, which is a package manager for c++,
+which requires networking, so it's better just deleted.
+
+Furthermore we delete the adddirectory statements.
+These want to modify directories outside of the sandbox.
+---
+ CMakeLists.txt | 26 --------------------------
+ 1 file changed, 26 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b5e8789..b797538 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -13,30 +13,6 @@ endif()
+ 
+ include(${CPM_DOWNLOAD_LOCATION})
+ 
+-CPMAddPackage(
+-        NAME IODash
+-        GITHUB_REPOSITORY YukiWorkshop/IODash
+-        VERSION 0.1.0
+-)
+-
+-CPMAddPackage(
+-        NAME libevdevPlus
+-        GITHUB_REPOSITORY YukiWorkshop/libevdevPlus
+-        VERSION 0.2.1
+-)
+-
+-CPMAddPackage(
+-        NAME libuInputPlus
+-        GITHUB_REPOSITORY YukiWorkshop/libuInputPlus
+-        VERSION 0.2.1
+-)
+-
+-CPMAddPackage(
+-        NAME cxxopts
+-        GITHUB_REPOSITORY jarro2783/cxxopts
+-        VERSION 3.0.0
+-        GIT_TAG 2d8e17c4f88efce80e274cb03eeb902e055a91d3
+-)
+ 
+ set(SOURCE_FILES_LIBRARY
+         CommonIncludes.hpp
+@@ -74,5 +50,3 @@ add_executable(ydotool ${SOURCE_FILES_CLIENT})
+ target_link_libraries(ydotool ydotool_library dl pthread uInputPlus evdevPlus)
+ install(TARGETS ydotool DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+-add_subdirectory(Daemon)
+-add_subdirectory(manpage)
+-- 
+2.29.2
+