eb11feaa0b
Changes the default fetcher in the Rust Platform to be the newer `fetchCargoTarball`, and changes every application using the current default to instead opt out. This commit does not change any hashes or cause any rebuilds. Once integrated, we will start deleting the opt-outs and recomputing hashes. See #79975 for details.
95 lines
2.5 KiB
Nix
95 lines
2.5 KiB
Nix
{ 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.14.0";
|
|
|
|
src = fetchFromGitLab {
|
|
owner = "sequoia-pgp";
|
|
repo = pname;
|
|
rev = "v${version}";
|
|
sha256 = "1p17y6vsya8daglvl6yal3759x44dc062ah5vyra0k7dk82cc4pq";
|
|
};
|
|
|
|
# Delete this on next update; see #79975 for details
|
|
legacyCargoFetcher = true;
|
|
|
|
cargoSha256 = "1hbwx2d9j5ddqlvskqxk951g59nsyk5y5l7f9yg2cyqhkzfil7nr";
|
|
|
|
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;
|
|
broken = stdenv.targetPlatform.isDarwin;
|
|
};
|
|
}
|