Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at release-19.03 73 lines 2.5 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 name = "libinput-${version}"; 30 version = "1.12.6"; 31 32 src = fetchurl { 33 url = "https://www.freedesktop.org/software/libinput/${name}.tar.xz"; 34 sha256 = "0pgla0mc6mvyr1ljy10mcqvfz8i5z6yp7dbx2bcd70y67wx05d0j"; 35 }; 36 37 outputs = [ "bin" "out" "dev" ]; 38 39 mesonFlags = [ 40 (mkFlag documentationSupport "documentation") 41 (mkFlag eventGUISupport "debug-gui") 42 (mkFlag testsSupport "tests") 43 "--libexecdir=${placeholder "bin"}/libexec" 44 ]; 45 46 nativeBuildInputs = [ pkgconfig meson ninja ] 47 ++ optionals documentationSupport [ doxygen graphviz sphinx-build ] 48 ++ optionals testsSupport [ valgrind ]; 49 50 buildInputs = [ libevdev mtdev libwacom (python3.withPackages (pkgs: with pkgs; [ evdev ])) ] 51 ++ optionals eventGUISupport [ cairo glib gtk3 ] 52 ++ optionals testsSupport [ check ]; 53 54 propagatedBuildInputs = [ udev ]; 55 56 patches = [ ./udev-absolute-path.patch ]; 57 58 postPatch = '' 59 patchShebangs tools/helper-copy-and-exec-from-tmp.sh 60 patchShebangs test/symbols-leak-test 61 patchShebangs test/check-leftover-udev-rules.sh 62 ''; 63 64 doCheck = testsSupport && stdenv.hostPlatform == stdenv.buildPlatform; 65 66 meta = { 67 description = "Handles input devices in Wayland compositors and provides a generic X.Org input driver"; 68 homepage = http://www.freedesktop.org/wiki/Software/libinput; 69 license = licenses.mit; 70 platforms = platforms.unix; 71 maintainers = with maintainers; [ codyopel ]; 72 }; 73}