Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
3.2 kB · 160 lines
Nix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161{ lib, stdenv, fetchFromGitLab, gitUpdater, pkg-config, meson, ninja, libevdev, mtdev, udev, libwacom, documentationSupport ? false, doxygen, graphviz, runCommand, eventGUISupport ? false, cairo, glib, gtk3, testsSupport ? false, check, valgrind, python3, nixosTests, wayland-scanner, udevCheckHook,}:
let mkFlag = optSet: flag: "-D${flag}=${lib.boolToString optSet}";
sphinx-build = let env = python3.withPackages ( pp: with pp; [ sphinx recommonmark sphinx-rtd-theme ] ); in # Expose only the sphinx-build binary to avoid contaminating # everything with Sphinx’s Python environment. runCommand "sphinx-build" { } '' mkdir -p "$out/bin" ln -s "${env}/bin/sphinx-build" "$out/bin" '';in
stdenv.mkDerivation rec { pname = "libinput"; version = "1.28.1";
outputs = [ "bin" "out" "dev" ];
src = fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = "libinput"; repo = "libinput"; rev = version; hash = "sha256-kte5BzGEz7taW/ccnxmkJjXn3FeikzuD6Hm10l+X7c0="; };
patches = [ ./udev-absolute-path.patch ];
nativeBuildInputs = [ pkg-config meson ninja udevCheckHook ] ++ lib.optionals documentationSupport [ doxygen graphviz sphinx-build ];
buildInputs = [ libevdev mtdev libwacom (python3.withPackages ( pp: with pp; [ pp.libevdev # already in scope pyudev pyyaml setuptools ] )) ] ++ lib.optionals eventGUISupport [ # GUI event viewer cairo glib gtk3 wayland-scanner ];
propagatedBuildInputs = [ udev ];
nativeCheckInputs = [ check valgrind ];
mesonFlags = [ (mkFlag documentationSupport "documentation") (mkFlag eventGUISupport "debug-gui") (mkFlag testsSupport "tests") "--sysconfdir=/etc" "--libexecdir=${placeholder "bin"}/libexec" ];
doCheck = testsSupport && stdenv.hostPlatform == stdenv.buildPlatform;
doInstallCheck = true;
postPatch = '' patchShebangs \ test/symbols-leak-test \ test/check-leftover-udev-rules.sh \ test/helper-copy-and-exec-from-tmp.sh
# Don't create an empty directory under /etc. sed -i "/install_emptydir(dir_etc \/ 'libinput')/d" meson.build '';
passthru = { tests = { libinput-module = nixosTests.libinput; }; updateScript = gitUpdater { patchlevel-unstable = true; }; };
meta = with lib; { description = "Handles input devices in Wayland compositors and provides a generic X.Org input driver"; mainProgram = "libinput"; homepage = "https://www.freedesktop.org/wiki/Software/libinput/"; license = licenses.mit; platforms = platforms.linux; maintainers = with maintainers; [ codyopel ]; teams = [ teams.freedesktop ]; changelog = "https://gitlab.freedesktop.org/libinput/libinput/-/releases/${version}"; badPlatforms = [ # Mandatory shared library. lib.systems.inspect.platformPatterns.isStatic ]; };}