summaryrefslogtreecommitdiff
path: root/pkgs/plover/plover-dev.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/plover/plover-dev.nix')
-rw-r--r--pkgs/plover/plover-dev.nix73
1 files changed, 73 insertions, 0 deletions
diff --git a/pkgs/plover/plover-dev.nix b/pkgs/plover/plover-dev.nix
new file mode 100644
index 0000000..c39ee14
--- /dev/null
+++ b/pkgs/plover/plover-dev.nix
@@ -0,0 +1,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)";
+ })