nixpkgs/pkgs/development/python-modules/skein/default.nix
illustris 66e625348e python3Packages.skein: fix broken package
- Use prebuilt jar to get around maven builds being non-reproducible
- Remove unnecessary propagated dependencies
- Inherit java version from hadoop
2022-04-18 13:40:25 +05:30

62 lines
1.7 KiB
Nix

{ buildPythonPackage
, callPackage
, fetchPypi
, isPy27
, lib
, cryptography
, grpcio
, pyyaml
, grpcio-tools
, hadoop
, pytestCheckHook
, python
}:
buildPythonPackage rec {
pname = "skein";
version = "0.8.1";
src = fetchPypi {
inherit pname version;
sha256 = "04208b4be9df2dc68ac5b3e3ae51fd9b589add95ea1b67222a8de754d17b1efa";
};
# Update this hash if bumping versions
jarHash = "sha256-UGiEoTZ17IhLG72FZ18Zb+Ej4T8z9rMIMDUxzSZGZyY=";
skeinJar = callPackage ./skeinjar.nix { inherit pname version jarHash; };
propagatedBuildInputs = [ cryptography grpcio pyyaml ];
buildInputs = [ grpcio-tools ];
preBuild = ''
# Ensure skein.jar exists skips the maven build in setup.py
mkdir -p skein/java
ln -s ${skeinJar} skein/java/skein.jar
'';
postPatch = ''
substituteInPlace skein/core.py --replace "'yarn'" "'${hadoop}/bin/yarn'" \
--replace "else 'java'" "else '${hadoop.jdk}/bin/java'"
'';
pythonImportsCheck = [ "skein" ];
checkInputs = [ pytestCheckHook ];
# These tests require connecting to a YARN cluster. They could be done through NixOS tests later.
disabledTests = [
"test_ui"
"test_tornado"
"test_kv"
"test_core"
"test_cli"
];
meta = with lib; {
homepage = "https://jcristharif.com/skein";
description = "A tool and library for easily deploying applications on Apache YARN";
license = licenses.bsd3;
maintainers = with maintainers; [ alexbiehl illustris ];
# https://github.com/NixOS/nixpkgs/issues/48663#issuecomment-1083031627
# replace with https://github.com/NixOS/nixpkgs/pull/140325 once it is merged
broken = lib.traceIf isPy27 "${pname} not supported on ${python.executable}" isPy27;
};
}