dotfiles/pkgs/jujutsu-openssh/default.nix

90 lines
2 KiB
Nix
Raw Normal View History

2024-08-02 11:12:36 +02:00
{
lib,
fetchFromGitHub,
rustPlatform,
pkg-config,
openssl,
gzip,
libgit2,
openssh,
zstd,
installShellFiles,
nix-update-script,
testers,
jujutsu-openssh,
}:
rustPlatform.buildRustPackage rec {
pname = "jujutsu-openssh";
2024-12-05 09:36:56 +01:00
version = "0.24.0+pr3191.openssh";
2024-08-02 11:12:36 +02:00
src = fetchFromGitHub {
2024-08-10 13:45:09 +02:00
owner = "dln";
2024-08-02 11:12:36 +02:00
repo = "jj";
2024-12-05 09:36:56 +01:00
rev = "b6608a03881542d6a8c98f659b80b57a27906096"; # https://github.com/dln/jj/tree/openssh
hash = "sha256-kUfwjdQGq0UcIlVnNf/z0iG+y7SHf/ZZLVKXDyvDkVg=";
2024-08-02 11:12:36 +02:00
};
cargoLock.lockFile = ./Cargo.lock;
cargoLock.outputHashes = {
2024-09-11 23:02:19 +02:00
"git2-0.19.0" = "sha256-fV8dFChGeDhb20bMyqefpAD5/+raQQ2sMdkEtlA1jaE=";
2024-08-02 11:12:36 +02:00
};
cargoBuildFlags = [
"--bin"
"jj"
]; # don't install the fake editors
useNextest = false; # nextest is the upstream integration framework, but is problematic for test skipping
ZSTD_SYS_USE_PKG_CONFIG = "1"; # disable vendored zlib
nativeBuildInputs = [
gzip
installShellFiles
pkg-config
];
buildInputs = [
openssl
zstd
libgit2
openssh
];
postInstall = ''
$out/bin/jj util mangen > ./jj.1
installManPage ./jj.1
installShellCompletion --cmd jj \
--bash <($out/bin/jj util completion bash) \
--fish <($out/bin/jj util completion fish) \
--zsh <($out/bin/jj util completion zsh)
'';
checkFlags = [
# signing tests spin up an ssh-agent and do git checkouts
"--skip=test_ssh_signing"
];
passthru = {
updateScript = nix-update-script { };
tests = {
version = testers.testVersion {
package = jujutsu-openssh;
command = "jj --version";
};
};
};
meta = with lib; {
description = "Git-compatible DVCS that is both simple and powerful";
homepage = "https://github.com/martinvonz/jj";
changelog = "https://github.com/martinvonz/jj/blob/v${version}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [
_0x4A6F
thoughtpolice
];
mainProgram = "jj";
};
}