diff --git a/nixos/tests/opentabletdriver.nix b/nixos/tests/opentabletdriver.nix index b7583f6dd264..a71a007c4110 100644 --- a/nixos/tests/opentabletdriver.nix +++ b/nixos/tests/opentabletdriver.nix @@ -20,9 +20,11 @@ in { '' machine.start() machine.wait_for_x() + + machine.wait_for_unit('graphical.target') machine.wait_for_unit("opentabletdriver.service", "${testUser}") - machine.succeed("cat /etc/udev/rules.d/99-opentabletdriver.rules") + machine.succeed("cat /etc/udev/rules.d/70-opentabletdriver.rules") # Will fail if service is not running # Needs to run as the same user that started the service machine.succeed("su - ${testUser} -c 'otd detect'") diff --git a/pkgs/tools/X11/opentabletdriver/default.nix b/pkgs/tools/X11/opentabletdriver/default.nix index 82d9a6d65a31..9f39fb7fb5c0 100644 --- a/pkgs/tools/X11/opentabletdriver/default.nix +++ b/pkgs/tools/X11/opentabletdriver/default.nix @@ -1,7 +1,6 @@ { lib , buildDotnetModule , fetchFromGitHub -, fetchurl , gtk3 , libX11 , libXrandr @@ -13,24 +12,24 @@ , makeDesktopItem , nixosTests , wrapGAppsHook -, dpkg +, jq +, coreutils }: buildDotnetModule rec { pname = "OpenTabletDriver"; - version = "0.6.3.0"; + version = "0.6.4.0"; src = fetchFromGitHub { owner = "OpenTabletDriver"; repo = "OpenTabletDriver"; rev = "v${version}"; - hash = "sha256-v41qYNBgOXcFnDOJpQYitql1IZP3p8b3may5Pr04dbg="; + hash = "sha256-zK+feU96JOXjmkTndM9VyUid3z+MZFxJGH+MXaB6kzk="; }; - debPkg = fetchurl { - url = "https://github.com/OpenTabletDriver/OpenTabletDriver/releases/download/v${version}/OpenTabletDriver.deb"; - hash = "sha256-zWSJlkn7K/meTycWNTinC0hp0JubF22dJNOJeEIfGtI="; - }; + patches = [ + ./remove-git-from-generate-rules.patch + ]; dotnetInstallFlags = [ "--framework=net6.0" ]; @@ -42,7 +41,8 @@ buildDotnetModule rec { nativeBuildInputs = [ copyDesktopItems wrapGAppsHook - dpkg + # Dependency of generate-rules.sh + jq ]; runtimeDeps = [ @@ -76,8 +76,14 @@ buildDotnetModule rec { "OpenTabletDriver.Tests.ConfigurationTest.Configurations_DeviceIdentifier_IsNotConflicting" # Depends on processor load "OpenTabletDriver.Tests.TimerTests.TimerAccuracy" + # Can't find Configurations directory + "OpenTabletDriver.Tests.ConfigurationTest.Configurations_Verify_Configs_With_Schema" ]; + preBuild = '' + patchShebangs generate-rules.sh + ''; + postFixup = '' # Give a more "*nix" name to the binaries mv $out/bin/OpenTabletDriver.Console $out/bin/otd @@ -86,9 +92,10 @@ buildDotnetModule rec { install -Dm644 $src/OpenTabletDriver.UX/Assets/otd.png -t $out/share/pixmaps - # TODO: Ideally this should be build from OpenTabletDriver/OpenTabletDriver-udev instead - dpkg-deb --fsys-tarfile ${debPkg} | tar xf - ./usr/lib/udev/rules.d/99-opentabletdriver.rules - install -Dm644 ./usr/lib/udev/rules.d/99-opentabletdriver.rules -t $out/lib/udev/rules.d + mkdir -p $out/lib/udev/rules.d + ./generate-rules.sh \ + | sed 's@/usr/bin/env rm@${lib.getExe' coreutils "rm"}@' \ + > $out/lib/udev/rules.d/70-opentabletdriver.rules ''; desktopItems = [ @@ -113,7 +120,7 @@ buildDotnetModule rec { description = "Open source, cross-platform, user-mode tablet driver"; homepage = "https://github.com/OpenTabletDriver/OpenTabletDriver"; license = licenses.lgpl3Plus; - maintainers = with maintainers; [ thiagokokada ]; + maintainers = with maintainers; [ gepbird thiagokokada ]; platforms = [ "x86_64-linux" "aarch64-linux" ]; mainProgram = "otd"; }; diff --git a/pkgs/tools/X11/opentabletdriver/deps.nix b/pkgs/tools/X11/opentabletdriver/deps.nix index fe821bf70a9c..76674680d09c 100644 --- a/pkgs/tools/X11/opentabletdriver/deps.nix +++ b/pkgs/tools/X11/opentabletdriver/deps.nix @@ -40,7 +40,9 @@ (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; }) (fetchNuGet { pname = "Newtonsoft.Json"; version = "12.0.2"; sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; }) (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; }) + (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.3"; sha256 = "0xrwysmrn4midrjal8g2hr1bbg38iyisl0svamb11arqws4w2bw7"; }) (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; }) + (fetchNuGet { pname = "Newtonsoft.Json.Schema"; version = "3.0.15"; sha256 = "1nmc9zxpcyyf3f2ypxw6vnjwlw5sxjv13r65p2dy8xrx8jkgaslp"; }) (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; }) (fetchNuGet { pname = "Octokit"; version = "0.50.0"; sha256 = "1ignj5i6a1c19qqrw00wlr9fdjmwrxkxz7gdxj0x653w84gbv7qq"; }) (fetchNuGet { pname = "PangoSharp"; version = "3.24.24.34"; sha256 = "1r0h14cklglfpv1lhv93cxmzi2w7d5s03gzpq3j5dmrz43flg9zw"; }) @@ -109,6 +111,7 @@ (fetchNuGet { pname = "System.CommandLine"; version = "2.0.0-beta4.22272.1"; sha256 = "1iy5hwwgvx911g3yq65p4zsgpy08w4qz9j3h0igcf7yci44vw8yd"; }) (fetchNuGet { pname = "System.ComponentModel"; version = "4.3.0"; sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb"; }) (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.7.0"; sha256 = "06x1m46ddxj0ng28d7gry9gjkqdg2kp89jyf480g5gznyybbs49z"; }) + (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "5.0.0"; sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j"; }) (fetchNuGet { pname = "System.ComponentModel.Primitives"; version = "4.3.0"; sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0"; }) (fetchNuGet { pname = "System.ComponentModel.TypeConverter"; version = "4.3.0"; sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x"; }) (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; }) diff --git a/pkgs/tools/X11/opentabletdriver/remove-git-from-generate-rules.patch b/pkgs/tools/X11/opentabletdriver/remove-git-from-generate-rules.patch new file mode 100644 index 000000000000..6881cc777370 --- /dev/null +++ b/pkgs/tools/X11/opentabletdriver/remove-git-from-generate-rules.patch @@ -0,0 +1,22 @@ +diff --git a/generate-rules.sh b/generate-rules.sh +index ce6c3f3d..a0266612 100755 +--- a/generate-rules.sh ++++ b/generate-rules.sh +@@ -8,7 +8,7 @@ print_help() { + echo " -h, --help Print this help message" + } + +-for c in git jq tr awk sed; do ++for c in jq tr awk sed; do + command -v $c > /dev/null + if [[ $? > 0 ]]; then + echo "Error: Command $c not found in \$PATH." >&2 +@@ -23,7 +23,7 @@ tohex() { + shopt -s globstar + set -eu + +-OTD_CONFIGURATIONS="${OTD_CONFIGURATIONS:="$(git rev-parse --show-toplevel)/OpenTabletDriver.Configurations/Configurations"}" ++OTD_CONFIGURATIONS="${OTD_CONFIGURATIONS:="$src/OpenTabletDriver.Configurations/Configurations"}" + + while [ $# -gt 0 ]; do + case "$1" in