Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 83 lines 1.9 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchzip, 5 libusb1, 6 glibc, 7 libGL, 8 xorg, 9 makeWrapper, 10 qtx11extras, 11 wrapQtAppsHook, 12 autoPatchelfHook, 13 libX11, 14 libXtst, 15 libXi, 16 libXrandr, 17 libXinerama, 18}: 19 20let 21 dataDir = "var/lib/xppend1v2"; 22in 23stdenv.mkDerivation rec { 24 pname = "xp-pen-deco-01-v2-driver"; 25 version = "3.4.9-231023"; 26 27 src = fetchzip { 28 url = "https://www.xp-pen.com/download/file/id/1936/pid/440/ext/gz.html#.tar.gz"; 29 name = "xp-pen-deco-01-v2-driver-${version}.tar.gz"; 30 sha256 = "sha256-A/dv6DpelH0NHjlGj32tKv37S+9q3F8cYByiYlMuqLg="; 31 }; 32 33 nativeBuildInputs = [ 34 wrapQtAppsHook 35 autoPatchelfHook 36 makeWrapper 37 ]; 38 39 dontBuild = true; 40 41 dontWrapQtApps = true; # this is done manually 42 43 buildInputs = [ 44 libusb1 45 libX11 46 libXtst 47 libXi 48 libXrandr 49 libXinerama 50 glibc 51 libGL 52 (lib.getLib stdenv.cc.cc) 53 qtx11extras 54 ]; 55 56 installPhase = '' 57 runHook preInstall 58 59 mkdir -p $out/{opt,bin} 60 cp -r App/usr/lib/pentablet/{PenTablet,resource.rcc,conf} $out/opt 61 chmod +x $out/opt/PenTablet 62 cp -r App/lib $out/lib 63 sed -i 's#usr/lib/pentablet#${dataDir}#g' $out/opt/PenTablet 64 65 runHook postInstall 66 ''; 67 68 postFixup = '' 69 makeWrapper $out/opt/PenTablet $out/bin/xp-pen-deco-01-v2-driver \ 70 "''${qtWrapperArgs[@]}" \ 71 --run 'if [ "$EUID" -ne 0 ]; then echo "Please run as root."; exit 1; fi' \ 72 --run 'if [ ! -d /${dataDir} ]; then mkdir -p /${dataDir}; cp -r '$out'/opt/conf /${dataDir}; chmod u+w -R /${dataDir}; fi' 73 ''; 74 75 meta = with lib; { 76 homepage = "https://www.xp-pen.com/product/461.html"; 77 description = "Drivers for the XP-PEN Deco 01 v2 drawing tablet"; 78 platforms = [ "x86_64-linux" ]; 79 sourceProvenance = with sourceTypes; [ binaryNativeCode ]; 80 maintainers = with maintainers; [ virchau13 ]; 81 license = licenses.unfree; 82 }; 83}