summary refs log tree commit diff
path: root/pkgs/tools/wayland/ydotool
diff options
context:
space:
mode:
authorJappie Klooster <jappieklooster@hotmail.com>2021-04-02 16:47:34 -0400
committerJappie Klooster <jappieklooster@hotmail.com>2021-04-03 11:02:15 -0400
commita0d817b48f151ef7877e921ed490771ae56bf283 (patch)
tree6896ce7740319cf1e0341279a96f76ca86f70c46 /pkgs/tools/wayland/ydotool
parent584490f6809daa3d68c7200e95d9ebf714d60e0a (diff)
downloadnixpkgs-a0d817b48f151ef7877e921ed490771ae56bf283.tar
nixpkgs-a0d817b48f151ef7877e921ed490771ae56bf283.tar.gz
nixpkgs-a0d817b48f151ef7877e921ed490771ae56bf283.tar.bz2
nixpkgs-a0d817b48f151ef7877e921ed490771ae56bf283.tar.lz
nixpkgs-a0d817b48f151ef7877e921ed490771ae56bf283.tar.xz
nixpkgs-a0d817b48f151ef7877e921ed490771ae56bf283.tar.zst
nixpkgs-a0d817b48f151ef7877e921ed490771ae56bf283.zip
ydotool: 0.1.8 -> 2021-01-20
Upgrading ydotool gives two big features:
1. support for sleep, making it easier to combine with sway
2. recording support. Allowing you to record macros!

This does however make the daemon a bit unstable, I had it crash
on my when trying to type.
However the daemon is optional, and this is an upstream issue.
So I think it's a good change.

Furthermore several libraries are upgraded with this change as well,
they all seem to be used and maintained by the same authors.

readd rec block  to ydotool

Update pkgs/tools/wayland/ydotool/default.nix

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>

Update pkgs/tools/wayland/ydotool/default.nix

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>

Update pkgs/tools/wayland/ydotool/default.nix

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
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
+