Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at 20.09-beta 88 lines 2.6 kB view raw
1{ stdenv, fetchurl, pkgconfig, meson, ninja 2, libevdev, mtdev, udev, libwacom 3, documentationSupport ? false, doxygen ? null, graphviz ? null # Documentation 4, eventGUISupport ? false, cairo ? null, glib ? null, gtk3 ? null # GUI event viewer support 5, testsSupport ? false, check ? null, valgrind ? null, python3 ? null 6}: 7 8assert documentationSupport -> doxygen != null && graphviz != null && python3 != null; 9assert eventGUISupport -> cairo != null && glib != null && gtk3 != null; 10assert testsSupport -> check != null && valgrind != null && python3 != null; 11 12let 13 mkFlag = optSet: flag: "-D${flag}=${stdenv.lib.boolToString optSet}"; 14 15 sphinx-build = if documentationSupport then 16 python3.pkgs.sphinx.overrideAttrs (super: { 17 propagatedBuildInputs = super.propagatedBuildInputs ++ (with python3.pkgs; [ recommonmark sphinx_rtd_theme ]); 18 19 postFixup = super.postFixup or "" + '' 20 # Do not propagate Python 21 rm $out/nix-support/propagated-build-inputs 22 ''; 23 }) 24 else null; 25in 26 27with stdenv.lib; 28stdenv.mkDerivation rec { 29 pname = "libinput"; 30 version = "1.16.1"; 31 32 src = fetchurl { 33 url = "https://www.freedesktop.org/software/libinput/${pname}-${version}.tar.xz"; 34 sha256 = "e6fRru3RUWi7IdF+nmKKocJ5V5Y6Qjo/6jk4pQF1hTk="; 35 }; 36 37 outputs = [ "bin" "out" "dev" ]; 38 39 mesonFlags = [ 40 (mkFlag documentationSupport "documentation") 41 (mkFlag eventGUISupport "debug-gui") 42 (mkFlag testsSupport "tests") 43 "--sysconfdir=/etc" 44 "--libexecdir=${placeholder "bin"}/libexec" 45 ]; 46 47 nativeBuildInputs = [ pkgconfig meson ninja ] 48 ++ optionals documentationSupport [ doxygen graphviz sphinx-build ]; 49 50 buildInputs = [ 51 libevdev 52 mtdev 53 libwacom 54 (python3.withPackages (pp: with pp; [ 55 pp.libevdev # already in scope 56 pyudev 57 pyyaml 58 setuptools 59 ])) 60 ] 61 ++ optionals eventGUISupport [ cairo glib gtk3 ]; 62 63 checkInputs = [ 64 check 65 valgrind 66 ]; 67 68 propagatedBuildInputs = [ udev ]; 69 70 patches = [ ./udev-absolute-path.patch ]; 71 72 postPatch = '' 73 patchShebangs tools/helper-copy-and-exec-from-tmp.sh 74 patchShebangs test/symbols-leak-test 75 patchShebangs test/check-leftover-udev-rules.sh 76 patchShebangs test/helper-copy-and-exec-from-tmp.sh 77 ''; 78 79 doCheck = testsSupport && stdenv.hostPlatform == stdenv.buildPlatform; 80 81 meta = { 82 description = "Handles input devices in Wayland compositors and provides a generic X.Org input driver"; 83 homepage = "http://www.freedesktop.org/wiki/Software/libinput"; 84 license = licenses.mit; 85 platforms = platforms.unix; 86 maintainers = with maintainers; [ codyopel ]; 87 }; 88}