diff options
author | Doron Behar <doron.behar@gmail.com> | 2019-07-31 11:07:19 +0300 |
---|---|---|
committer | worldofpeace <worldofpeace@protonmail.ch> | 2019-08-13 14:42:27 -0400 |
commit | 701c788c3fe8d550cd89fb3d529b75e7f5e41520 (patch) | |
tree | 21854641c20303d9043a4d3a5a371efdd3ba6282 /pkgs/tools/security | |
parent | f46b8a9ef2bc0b00ee044c4699862917ca467535 (diff) | |
download | nixlib-701c788c3fe8d550cd89fb3d529b75e7f5e41520.tar nixlib-701c788c3fe8d550cd89fb3d529b75e7f5e41520.tar.gz nixlib-701c788c3fe8d550cd89fb3d529b75e7f5e41520.tar.bz2 nixlib-701c788c3fe8d550cd89fb3d529b75e7f5e41520.tar.lz nixlib-701c788c3fe8d550cd89fb3d529b75e7f5e41520.tar.xz nixlib-701c788c3fe8d550cd89fb3d529b75e7f5e41520.tar.zst nixlib-701c788c3fe8d550cd89fb3d529b75e7f5e41520.zip |
sequoia: improve expression, rename from sequoia-tool
- Add the package to the pythonPackages' attribute set. - Make the python support overrideable We use the pythonSupport argument. - Rename sequoia-tool -> sequoia We provide the whole ecosystem which includes: * ffi bindings to Python and C * zsh and bash completion for `sq` and `sqv` executables. - Meta: * Use a string as the homepage URL (plain URLs are deprecated). * Change description of package to fit upstream and the files we actually install. * Add @doronbehar as maintainer.
Diffstat (limited to 'pkgs/tools/security')
-rw-r--r-- | pkgs/tools/security/sequoia-tool/default.nix | 32 | ||||
-rw-r--r-- | pkgs/tools/security/sequoia/default.nix | 91 |
2 files changed, 91 insertions, 32 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; + }; +} |