Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 lib,
3 fetchFromGitHub,
4 python3Packages,
5}:
6
7python3Packages.buildPythonPackage rec {
8 pname = "rivalcfg";
9 version = "4.15.0";
10 pyproject = true;
11
12 src = fetchFromGitHub {
13 owner = "flozz";
14 repo = "rivalcfg";
15 tag = "v${version}";
16 sha256 = "sha256-UqVogJLv+sNhAxdMjBEvhBQw6LU+QUq1IekvWpeeMqk=";
17 };
18
19 build-system = with python3Packages; [ setuptools ];
20
21 dependencies = with python3Packages; [
22 hidapi
23 setuptools # pkg_resources is imported during runtime
24 ];
25
26 nativeCheckInputs = with python3Packages; [
27 pytestCheckHook
28 ];
29
30 # tests are broken
31 doCheck = false;
32
33 postInstall = ''
34 mkdir -p $out/lib/udev/rules.d
35 tmpl_udev="$out/lib/udev/rules.d/99-rivalcfg.rules"
36 tmpudev="''${tmpl_udev}.in"
37 finaludev="$tmpl_udev"
38 "$out/bin/rivalcfg" --print-udev > "$tmpudev"
39 substitute "$tmpudev" "$out/lib/udev/rules.d/99-rivalcfg.rules" \
40 --replace-fail MODE=\"0666\" "MODE=\"0664\", GROUP=\"input\""
41 rm "$tmpudev"
42 '';
43
44 pythonImportsCheck = [ "rivalcfg" ];
45
46 meta = with lib; {
47 description = "Utility program that allows you to configure SteelSeries Rival gaming mice";
48 homepage = "https://github.com/flozz/rivalcfg";
49 license = licenses.wtfpl;
50 maintainers = with maintainers; [ ornxka ];
51 mainProgram = "rivalcfg";
52 };
53}