diff options
author | worldofpeace <worldofpeace@protonmail.ch> | 2019-08-13 14:44:35 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-13 14:44:35 -0400 |
commit | a5b77b8cae4d47c53de0fdac8ace8775c09cd7bb (patch) | |
tree | 636f14dfa07716d69d8c0bce9711059916fc580c | |
parent | 6490f9c740092e61ab5fe3e73a71f665b82cd78a (diff) | |
parent | 701c788c3fe8d550cd89fb3d529b75e7f5e41520 (diff) |
Merge pull request #65724 from doronbehar/improve-sequoia
Improve sequoia package expression
-rw-r--r-- | pkgs/tools/security/sequoia-tool/default.nix | 32 | ||||
-rw-r--r-- | pkgs/tools/security/sequoia/default.nix | 91 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 4 | ||||
-rw-r--r-- | pkgs/top-level/python-packages.nix | 5 |
4 files changed, 99 insertions, 33 deletions
diff --git a/pkgs/tools/security/sequoia-tool/default.nix b/pkgs/tools/security/sequoia-tool/default.nix deleted file mode 100644 index 00472c1a3aa4..000000000000 --- a/pkgs/tools/security/sequoia-tool/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ stdenv, fetchFromGitLab, rustPlatform, darwin -, pkgconfig, capnproto, clang, libclang, nettle, openssl, sqlite }: - -rustPlatform.buildRustPackage rec { - pname = "sequoia-tool"; - version = "0.9.0"; - - src = fetchFromGitLab { - owner = "sequoia-pgp"; - repo = "sequoia"; - rev = "v${version}"; - sha256 = "13dzwdzz33dy2lgnznsv8wqnw2501f2ggrkfwpqy5x6d1kgms8rj"; - }; - - nativeBuildInputs = [ pkgconfig clang libclang ]; - buildInputs = [ capnproto nettle openssl sqlite ] - ++ stdenv.lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ]; - - LIBCLANG_PATH = libclang + "/lib"; - - cargoBuildFlags = [ "--package=sequoia-tool" ]; - - cargoSha256 = "1zcnkpzcar3a2fk2rn3i3nb70b59ds9fpfa44f15r3aaxajsdhdi"; - - meta = with stdenv.lib; { - description = "A command-line frontend for Sequoia, an implementation of OpenPGP"; - homepage = https://sequoia-pgp.org/; - license = licenses.gpl3; - maintainers = with maintainers; [ minijackson ]; - platforms = platforms.all; - }; -} diff --git a/pkgs/tools/security/sequoia/default.nix b/pkgs/tools/security/sequoia/default.nix new file mode 100644 index 000000000000..5d9ffca69375 --- /dev/null +++ b/pkgs/tools/security/sequoia/default.nix @@ -0,0 +1,91 @@ +{ stdenv, fetchFromGitLab, lib, darwin +, git, nettle, llvmPackages, cargo, rustc +, rustPlatform, pkgconfig, glib +, openssl, sqlite, capnproto +, ensureNewerSourcesForZipFilesHook, pythonSupport ? true, pythonPackages ? null +}: + +assert pythonSupport -> pythonPackages != null; + +rustPlatform.buildRustPackage rec { + pname = "sequoia"; + version = "0.9.0"; + + src = fetchFromGitLab { + owner = "sequoia-pgp"; + repo = pname; + rev = "v${version}"; + sha256 = "13dzwdzz33dy2lgnznsv8wqnw2501f2ggrkfwpqy5x6d1kgms8rj"; + }; + + cargoSha256 = "1zcnkpzcar3a2fk2rn3i3nb70b59ds9fpfa44f15r3aaxajsdhdi"; + + nativeBuildInputs = [ + pkgconfig + cargo + rustc + git + llvmPackages.libclang + llvmPackages.clang + ensureNewerSourcesForZipFilesHook + ] ++ + lib.optionals pythonSupport [ pythonPackages.setuptools ] + ; + + checkInputs = lib.optionals pythonSupport [ + pythonPackages.pytest + pythonPackages.pytestrunner + ]; + + buildInputs = [ + openssl + sqlite + nettle + capnproto + ] + ++ lib.optionals pythonSupport [ pythonPackages.python pythonPackages.cffi ] + ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ] + ; + + makeFlags = [ + "PREFIX=${placeholder ''out''}" + ]; + + buildFlags = [ + "build-release" + ]; + + LIBCLANG_PATH = "${llvmPackages.libclang}/lib"; + + postPatch = '' + # otherwise, the check fails because we delete the `.git` in the unpack phase + substituteInPlace openpgp-ffi/Makefile \ + --replace 'git grep' 'grep -R' + # Without this, the check fails + substituteInPlace openpgp-ffi/examples/Makefile \ + --replace '-O0 -g -Wall -Werror' '-g' + substituteInPlace ffi/examples/Makefile \ + --replace '-O0 -g -Wall -Werror' '-g' + ''; + + preInstall = lib.optionalString pythonSupport '' + export installFlags="PYTHONPATH=$PYTHONPATH:$out/${pythonPackages.python.sitePackages}" + '' + lib.optionalString (!pythonSupport) '' + export installFlags="PYTHON=disable" + ''; + + # Don't use buildRustPackage phases, only use it for rust deps setup + configurePhase = null; + buildPhase = null; + doCheck = true; + checkPhase = null; + installPhase = null; + + meta = with stdenv.lib; { + description = "A cool new OpenPGP implementation"; + homepage = "https://sequoia-pgp.org/"; + license = licenses.gpl3; + maintainers = with maintainers; [ minijackson doronbehar ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 76134f57e3ba..669aaf0f2a3f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5953,7 +5953,9 @@ in seqdiag = with python3Packages; toPythonApplication seqdiag; - sequoia-tool = callPackage ../tools/security/sequoia-tool { inherit (llvmPackages) libclang; }; + sequoia = callPackage ../tools/security/sequoia { + pythonPackages = python3Packages; + }; sewer = callPackage ../tools/admin/sewer { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 43fb2661f5cd..eada8bf669ec 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4705,6 +4705,11 @@ in { seqdiag = callPackage ../development/python-modules/seqdiag { }; + sequoia = disabledIf (isPyPy || !isPy3k) (toPythonModule (pkgs.sequoia.override { + pythonPackages = self; + pythonSupport = true; + })); + safe = callPackage ../development/python-modules/safe { }; sampledata = callPackage ../development/python-modules/sampledata { }; |