diff options
| author | stuebinm | 2026-01-06 22:36:39 +0100 |
|---|---|---|
| committer | stuebinm | 2026-01-06 22:37:31 +0100 |
| commit | 0d709caed396d24acea583971d4e3c4e5b7c5673 (patch) | |
| tree | 209c1d6e7f9744eca41f3e5de1e63446cadf5025 /pkgs/plover | |
| parent | 2501e1b851b929c6f2abbbc1126dbcf41b153ab8 (diff) | |
https://github.com/NixOS/nixpkgs/pull/419593
appears to work but is unmerged; this adds its files in a subdirectory
of pkgs/
Diffstat (limited to '')
| -rw-r--r-- | pkgs/plover/default.nix | 5 | ||||
| -rw-r--r-- | pkgs/plover/plover-dev.nix | 73 | ||||
| -rw-r--r-- | pkgs/plover/plover-stroke.nix | 39 | ||||
| -rw-r--r-- | pkgs/plover/plover.nix | 96 | ||||
| -rw-r--r-- | pkgs/plover/rtf_tokenize.nix | 33 |
5 files changed, 246 insertions, 0 deletions
diff --git a/pkgs/plover/default.nix b/pkgs/plover/default.nix new file mode 100644 index 0000000..865d469 --- /dev/null +++ b/pkgs/plover/default.nix @@ -0,0 +1,5 @@ +{ config, lib, pkgs, ... }: + +{ + +} 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)"; + }) diff --git a/pkgs/plover/plover-stroke.nix b/pkgs/plover/plover-stroke.nix new file mode 100644 index 0000000..62da352 --- /dev/null +++ b/pkgs/plover/plover-stroke.nix @@ -0,0 +1,39 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + pytestCheckHook, + pytest-qt, + pyside6, +}: + +buildPythonPackage rec { + pname = "plover-stroke"; + version = "1.1.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "openstenoproject"; + repo = "plover_stroke"; + tag = version; + hash = "sha256-A75OMzmEn0VmDAvmQCp6/7uptxzwWJTwsih3kWlYioA="; + }; + + build-system = [ setuptools ]; + + nativeCheckInputs = [ + pytestCheckHook + pytest-qt + pyside6 + ]; + + pythonImportsCheck = [ "plover_stroke" ]; + + meta = { + description = "Helper class for working with steno strokes"; + homepage = "https://github.com/openstenoproject/plover_stroke"; + license = lib.licenses.gpl2Plus; # https://github.com/openstenoproject/plover_stroke/issues/4 + maintainers = with lib.maintainers; [ pandapip1 ]; + }; +} diff --git a/pkgs/plover/plover.nix b/pkgs/plover/plover.nix new file mode 100644 index 0000000..17c106c --- /dev/null +++ b/pkgs/plover/plover.nix @@ -0,0 +1,96 @@ +{ + lib, + config, + stdenv, + plover, + buildPythonPackage, + fetchFromGitHub, + fetchpatch, + versionCheckHook, + appdirs, + babel, + evdev, + mock, + pyserial, + pytestCheckHook, + pytest-qt, + plover-stroke, + rtf-tokenize, + setuptools, + wcwidth, + wheel, + xlib, + # Qt dependencies + pyqt, + wrapQtAppsHook, +}: + +buildPythonPackage rec { + pname = "plover"; + version = "4.0.2"; + pyproject = true; + + src = fetchFromGitHub { + owner = "openstenoproject"; + repo = "plover"; + tag = "v${version}"; + hash = "sha256-VpQT25bl8yPG4J9IwLkhSkBt31Y8BgPJdwa88WlreA8="; + }; + + postPatch = '' + sed -i 's/,<77//g' pyproject.toml # pythonRelaxDepsHook doesn't work for this for some reason + ''; + + build-system = [ + babel + setuptools + pyqt + wheel + ]; + dependencies = [ + appdirs + evdev + pyqt + pyserial + plover-stroke + rtf-tokenize + setuptools + wcwidth + xlib + ]; + nativeBuildInputs = [ + wrapQtAppsHook + ]; + + nativeCheckInputs = [ + pytestCheckHook + versionCheckHook + pytest-qt + mock + ]; + + # Segfaults?! + disabledTestPaths = [ "test/gui_qt/test_dictionaries_widget.py" ]; + + preFixup = '' + makeWrapperArgs+=("''${qtWrapperArgs[@]}") + ''; + + dontWrapQtApps = true; + + pythonImportsCheck = [ "plover" ]; + + meta = { + description = "OpenSteno Plover stenography software"; + homepage = "https://www.openstenoproject.org/plover/"; + mainProgram = "plover"; + maintainers = with lib.maintainers; [ + twey + kovirobi + pandapip1 + ]; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.unix; + broken = stdenv.hostPlatform.isDarwin; + }; +} diff --git a/pkgs/plover/rtf_tokenize.nix b/pkgs/plover/rtf_tokenize.nix new file mode 100644 index 0000000..805845f --- /dev/null +++ b/pkgs/plover/rtf_tokenize.nix @@ -0,0 +1,33 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "rtf-tokenize"; + version = "1.0.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "openstenoproject"; + repo = "rtf_tokenize"; + tag = version; + hash = "sha256-zwD2sRYTY1Kmm/Ag2hps9VRdUyQoi4zKtDPR+F52t9A="; + }; + + build-system = [ setuptools ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + pythonImportsCheck = [ "rtf_tokenize" ]; + + meta = { + description = "Simple RTF tokenizer package for Python"; + homepage = "https://github.com/openstenoproject/rtf_tokenize"; + license = lib.licenses.gpl2Plus; # https://github.com/openstenoproject/rtf_tokenize/issues/1 + maintainers = with lib.maintainers; [ pandapip1 ]; + }; +} |
