Merge pull request #89099 from alexbiehl/alex/py-skein

python3Packages.skein: init at 0.8.0
This commit is contained in:
Shea Levy 2020-06-19 12:35:26 -04:00 committed by GitHub
commit 2590885605
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 114 additions and 0 deletions

View file

@ -313,6 +313,12 @@
githubId = 2387841;
name = "Alexander Bakker";
};
alexbiehl = {
email = "alexbiehl@gmail.com";
github = "alexbiehl";
githubId = 1876617;
name = "Alex Biehl";
};
alexchapman = {
email = "alex@farfromthere.net";
github = "AJChapman";

View file

@ -0,0 +1,39 @@
{ buildPythonPackage
, callPackage
, fetchPypi
, isPy27
, jre
, lib
, pythonPackages
, stdenv
}:
let
pname = "skein";
version = "0.8.0";
src = fetchPypi {
inherit pname version;
sha256 = "0nb64p1hzshgi1kfc2jx1v9vn8b0wzs50460wfra3fsxh0ap66ab";
};
skeinJar = callPackage ./skeinjar.nix { inherit src version; };
in
buildPythonPackage rec {
inherit pname version src;
disabled = isPy27;
propagatedBuildInputs = with pythonPackages; [ cryptography grpcio grpcio-tools jupyter pytest pyyaml requests jre ];
preBuild = ''
# Ensure skein.jar exists skips the maven build in setup.py
mkdir -p skein/java
ln -s ${skeinJar} skein/java/skein.jar
'';
meta = with stdenv.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 ];
};
}

View file

@ -0,0 +1,21 @@
{ callPackage, stdenv, maven, src, version }:
let
skeinRepo = callPackage ./skeinrepo.nix { inherit src version; };
in
stdenv.mkDerivation rec {
name = "skein-${version}.jar";
inherit src;
nativeBuildInputs = [ maven ];
buildPhase = ''
mvn --offline -f java/pom.xml package -Dmaven.repo.local="${skeinRepo}" -Dskein.version=${version} -Dversion=${version}
'';
installPhase = ''
# Making sure skein.jar exists skips the maven build in setup.py
mv java/target/skein-*.jar $out
'';
}

View file

@ -0,0 +1,46 @@
{ autoPatchelfHook, lib, maven, stdenv, src, version }:
stdenv.mkDerivation rec {
name = "skein-${version}-maven-repo";
inherit src;
nativeBuildInputs = [ maven ] ++ lib.optional stdenv.isLinux autoPatchelfHook;
doBuild = false;
installPhase = ''
mkdir -p $out
archs="${
if stdenv.isLinux
then "linux-x86_32 linux-x86_64"
else "osx-x86_64"
}"
for arch in $archs
do
mvn -Dmaven.repo.local=$out dependency:get -Dartifact=com.google.protobuf:protoc:3.0.0:exe:$arch
mvn -Dmaven.repo.local=$out dependency:get -Dartifact=io.grpc:protoc-gen-grpc-java:1.16.0:exe:$arch
done
if ${ lib.boolToString stdenv.isLinux }
then
autoPatchelf $out
fi
# We have to use maven package here as dependency:go-offline doesn't
# fetch every required jar.
mvn -f java/pom.xml -Dmaven.repo.local=$out package
rm $(find $out -name _remote.repositories)
rm $(find $out -name resolver-status.properties)
'';
outputHashMode = "recursive";
outputHashAlgo = "sha256";
outputHash = if stdenv.isLinux
then "12f0q3444qw6y4f6qsa9540a0fz4cgi844zzi8z1phqn3k4dnl6v"
else "0bjbwiv17cary1isxca0m2hsvgs1i5fh18z247h1hky73lnhbrz8";
} // lib.optionalAttrs stdenv.isLinux { dontAutoPatchelf = true; }

View file

@ -6421,6 +6421,8 @@ in {
python_statsd = callPackage ../development/python-modules/python_statsd { };
skein = callPackage ../development/python-modules/skein { };
stompclient = callPackage ../development/python-modules/stompclient { };
subdownloader = callPackage ../development/python-modules/subdownloader { };