Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ stdenv 2, lib 3, fetchFromGitHub 4, fetchurl 5, fetchpatch 6, patchelf 7, freetype 8, libusb-compat-0_1 9}: 10let 11 license = lib.licenses.gpl2; 12 maintainers = with lib.maintainers; [ peterhoeg ]; 13 14 g15src = { pname, version, sha256 }: fetchurl { 15 url = "mirror://sourceforge/g15tools/${pname}/${version}/${pname}-${version}.tar.bz2"; 16 inherit sha256; 17 }; 18 19 libg15 = stdenv.mkDerivation rec { 20 pname = "libg15"; 21 version = "1.2.7"; 22 23 src = g15src { 24 inherit pname version; 25 sha256 = "1mkrf622n0cmz57lj8w9q82a9dcr1lmyyxbnrghrxzb6gvifnbqk"; 26 }; 27 28 buildInputs = [ libusb-compat-0_1 ]; 29 30 enableParallelBuilding = true; 31 32 meta = { 33 description = "Provides low-level access to Logitech G11/G15 keyboards and Z10 speakers"; 34 inherit license maintainers; 35 }; 36 }; 37 38 libg15render = stdenv.mkDerivation rec { 39 pname = "libg15render"; 40 version = "1.2"; 41 42 src = g15src { 43 inherit pname version; 44 sha256 = "03yjb78j1fnr2fwklxy54sdljwi0imvp29m8kmwl9v0pdapka8yj"; 45 }; 46 47 buildInputs = [ libg15 ]; 48 49 enableParallelBuilding = true; 50 51 meta = { 52 description = "A small graphics library optimised for drawing on an LCD"; 53 inherit license maintainers; 54 }; 55 }; 56in 57stdenv.mkDerivation rec { 58 pname = "g15daemon"; 59 version = "1.9.5.3"; 60 61 src = fetchurl { 62 url = "mirror://sourceforge/${pname}/G15Daemon%201.9x/${version}/${pname}-${version}.tar.bz2"; 63 sha256 = "1613gsp5dgilwbshqxxhiyw73ksngnam7n1iw6yxdjkp9fyd2a3d"; 64 }; 65 66 patches = let 67 patch = fname: sha256: fetchurl rec { 68 url = "https://raw.githubusercontent.com/archlinux/svntogit-community/c0b0b6d4d6d7b79eca68123b20e0c9fb82e1c6e1/g15daemon/trunk/${pname}-${version}-${fname}.patch"; 69 name = "${fname}.patch"; 70 inherit sha256; 71 }; 72 in 73 [ 74 (patch "uinput" "1misfff7a1vg0qgfk3n25y7drnm86a4gq96iflpcwr5x3lw7q0h7") 75 (patch "config-write" "0jkrbqvzqrvxr14h5qi17cb4d32caq7vw9kzlz3qwpxdgxjrjvy2") 76 (patch "recv-oob-answer" "1f67iqpj5hcgpakagi7gbw1xviwhy5vizs546l9bfjimx8r2d29g") 77 ./pid_location.patch 78 ]; 79 80 buildInputs = [ libg15 libg15render ]; 81 82 # Workaround build failure on -fno-common toolchains like upstream gcc-10: 83 # ld: g15_plugins.o:/build/g15daemon-1.9.5.3/g15daemon/./g15daemon.h:218: 84 # multiple definition of `lcdlist_mutex'; utility_funcs.o:g15daemon.h:218: first defined here 85 env.NIX_CFLAGS_COMPILE = "-fcommon"; 86 87 enableParallelBuilding = true; 88 89 meta = { 90 description = "A daemon that makes it possible to use the Logitech keyboard G-Buttons and draw on various Logitech LCDs"; 91 inherit license maintainers; 92 }; 93}