diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-01-26 18:06:19 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-01-26 18:21:18 +0000 |
commit | 7ac6743433dd45ceaead2ca96f6356dc0d064ce6 (patch) | |
tree | b68ec89d7d2a8d2b6e6b1ff94ba26d6af4096350 /nixpkgs/pkgs/development/python-modules/johnnycanencrypt/default.nix | |
parent | c5c7451dbef37b51f52792d6395a670ef5183d27 (diff) | |
parent | 891f607d5301d6730cb1f9dcf3618bcb1ab7f10e (diff) | |
download | nixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.tar nixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.tar.gz nixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.tar.bz2 nixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.tar.lz nixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.tar.xz nixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.tar.zst nixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.zip |
Merge commit '891f607d5301d6730cb1f9dcf3618bcb1ab7f10e'
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/johnnycanencrypt/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/python-modules/johnnycanencrypt/default.nix | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/johnnycanencrypt/default.nix b/nixpkgs/pkgs/development/python-modules/johnnycanencrypt/default.nix new file mode 100644 index 000000000000..77789fa44dbe --- /dev/null +++ b/nixpkgs/pkgs/development/python-modules/johnnycanencrypt/default.nix @@ -0,0 +1,99 @@ +{ lib +, stdenv +, rustPlatform +, fetchFromGitHub +, pipInstallHook +, llvmPackages +, pkg-config +, maturin +, pcsclite +, nettle +, python +, requests +, vcrpy +, numpy +, pytestCheckHook +, pythonOlder +, PCSC +}: + +rustPlatform.buildRustPackage rec { + pname = "johnnycanencrypt"; + version = "0.5.0"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "kushaldas"; + repo = "johnnycanencrypt"; + rev = "v${version}"; + sha256 = "192wfrlyylrpzq70yki421mi1smk8q2cyki2a1d03q7h6apib3j4"; + }; + cargoPatches = [ ./Cargo.lock.patch ]; + + cargoSha256 = "0ifvpdizcdp2c5x2x2j1bhhy5a75q0pk7a63dmh52mlpmh45fy6r"; + + LIBCLANG_PATH = llvmPackages.libclang + "/lib"; + + propagatedBuildInputs = [ + requests + vcrpy + ]; + + nativeBuildInputs = [ + llvmPackages.clang + pkg-config + python + maturin + pipInstallHook + ]; + + buildInputs = [ + pcsclite + nettle + ] ++ lib.optionals stdenv.isDarwin [ PCSC ]; + + # Needed b/c need to check AFTER python wheel is installed (using Rust Build, not buildPythonPackage) + doCheck = false; + doInstallCheck = true; + + installCheckInputs = [ + pytestCheckHook + numpy + ]; + + # Remove with the next release after 0.5.0. This change is required + # for compatibility with maturin 0.9.0. + postPatch = '' + sed '/project-url = /d' -i Cargo.toml + ''; + + buildPhase = '' + runHook preBuild + maturin build --release --manylinux off --strip --cargo-extra-args="-j $NIX_BUILD_CORES --frozen" + runHook postBuild + ''; + + installPhase = '' + install -Dm644 -t dist target/wheels/*.whl + pipInstallPhase + ''; + + preCheck = '' + export TESTDIR=$(mktemp -d) + cp -r tests/ $TESTDIR + pushd $TESTDIR + ''; + + postCheck = '' + popd + ''; + + pythonImportsCheck = [ "johnnycanencrypt" ]; + + meta = with lib; { + homepage = "https://github.com/kushaldas/johnnycanencrypt"; + description = "Python module for OpenPGP written in Rust"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ _0x4A6F ]; + }; +} |