summaryrefslogtreecommitdiff
path: root/pkgs/plover/plover-dev.nix
blob: c39ee14a9e4d6e627427981132bbbfd26f295c2f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
{
  lib,
  fetchFromGitHub,
  writeShellScriptBin,
  plover,
  python3Packages,
  pkginfo,
  packaging,
  psutil,
  pygments,
  readme-renderer,
  requests-cache,
  requests-futures,
  # Qt
  pyqt,
  qtbase,
  wrapQtAppsHook,
}:

(plover.override {
  inherit wrapQtAppsHook pyqt;
}).overridePythonAttrs
  (oldAttrs: rec {
    version = "5.0.0.dev2";

    src = fetchFromGitHub {
      owner = "openstenoproject";
      repo = "plover";
      tag = "v${version}";
      hash = "sha256-PZwxVrdQPhgbj+YmWZIUETngeJGs6IQty0hY43tLQO0=";
    };

    pyproject = true;

    # pythonRelaxDeps seemingly doesn't work here
    postPatch = oldAttrs.postPatch + ''
      sed -i /PySide6-Essentials/d pyproject.toml

      substituteInPlace pyproject.toml \
          --replace-fail "setuptools>=79.0.0" "setuptools"
    '';

    build-system = oldAttrs.build-system ++ [
      # Replacement for missing pyside6-essentials tools,
      # workaround for https://github.com/NixOS/nixpkgs/issues/277849.
      # Ideally this would be solved in pyside6 itself but I spent four
      # hours trying to untangle its build system before giving up. If
      # anyone wants to spend the time fixing it feel free to request
      # me (@Pandapip1) as a reviewer.
      (writeShellScriptBin "pyside6-uic" ''
        exec ${qtbase}/libexec/uic -g python "$@"
      '')
      (writeShellScriptBin "pyside6-rcc" ''
        exec ${qtbase}/libexec/rcc -g python "$@"
      '')
    ];

    dependencies =
      oldAttrs.dependencies
      ++ [
        packaging
        pkginfo
        psutil
        pygments
        qtbase
        readme-renderer
        requests-cache
        requests-futures
      ]
      ++ readme-renderer.optional-dependencies.md;

    meta.description = oldAttrs.meta.description + " (Development version)";
  })