nix-packages/plover/default.nix

100 lines
3.5 KiB
Nix

{
inputs,
pkgs,
}:
with pkgs; let
inherit (inputs.nixpkgs-stable.legacyPackages.${system}) pypy3;
tarballs = import ../python/tarballs.nix {inherit inputs pkgs;};
patched-python3Packages = python3Packages.override {
overrides = self: super: {
requests-cache = super.requests-cache.overrideAttrs (old: {
postPatch = ''
substituteInPlace pyproject.toml --replace 'attrs = "^21.2"' 'attrs = ">=21.2"'
'';
});
};
};
in rec {
plover-plugins-manager = with patched-python3Packages;
buildPythonPackage rec {
inherit (tarballs.plover-plugins-manager-src.passthru) pname version;
src = tarballs.plover-plugins-manager-src;
propagatedBuildInputs = [pip pkginfo plover pygments readme_renderer requests requests-cache requests-futures setuptools wheel];
installCheckPhase = "true";
setuptoolsCheckPhase = "true";
};
plover-stroke = with python3Packages;
buildPythonPackage rec {
inherit (tarballs.plover-stroke-src.passthru) pname version;
src = tarballs.plover-stroke-src;
checkInputs = [pytest];
};
rtf-tokenize = with python3Packages;
buildPythonPackage rec {
inherit (tarballs.rtf-tokenize-src.passthru) pname version;
src = tarballs.rtf-tokenize-src;
checkInputs = [pytest];
};
plover-emoji = with python3Packages;
buildPythonPackage rec {
inherit (tarballs.plover-emoji-src.passthru) pname version;
src = tarballs.plover-emoji-src;
propagatedBuildInputs = [plover simplefuzzyset];
checkInputs = [pytest];
};
simplefuzzyset = with python3Packages;
buildPythonPackage rec {
inherit (tarballs.simplefuzzyset-src.passthru) pname version;
src = tarballs.simplefuzzyset-src;
};
plover-tapey-tape = with python3Packages;
buildPythonPackage rec {
inherit (tarballs.plover-tapey-tape-src.passthru) pname version;
src = tarballs.plover-tapey-tape-src;
propagatedBuildInputs = [plover];
};
plover-yaml-dictionary = with python3Packages;
buildPythonPackage rec {
inherit (tarballs.plover-yaml-dictionary-src.passthru) pname version;
src = tarballs.plover-yaml-dictionary-src;
propagatedBuildInputs = [plover ruamel-yaml];
};
plover-machine-hid = with python3Packages;
buildPythonPackage rec {
pname = "plover-machine-hid";
version = inputs.plover-machine-hid.lastModifiedDate;
src = inputs.plover-machine-hid;
propagatedBuildInputs = [plover hid bitstring];
};
plover = with python3Packages;
qt5.mkDerivationWith buildPythonPackage rec {
pname = "plover";
version = inputs.plover.lastModifiedDate;
src = inputs.plover;
# I'm not sure why we don't find PyQt5 here but there's a similar
# sed on many of the platforms Plover builds for
postPatch = ''
sed -i /PyQt5/d setup.cfg
sed -i 's/pywayland==0.4.11/pywayland>=0.4.11/' reqs/constraints.txt
substituteInPlace plover_build_utils/setup.py \
--replace "/usr/share/wayland/wayland.xml" "${wayland}/share/wayland/wayland.xml"
'';
checkInputs = [pytest mock];
propagatedBuildInputs = [babel pyqt5 xlib pyserial appdirs wcwidth setuptools plover-stroke rtf-tokenize pywayland xkbcommon];
nativeBuildInputs = [
wayland
pkg-config
];
installCheckPhase = "true";
dontWrapQtApps = true;
preFixup = ''
makeWrapperArgs+=("''${qtWrapperArgs[@]}")
'';
};
}