Files
nixpkgs/pkgs/by-name/re/restate/package.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

145 lines
3.4 KiB
Nix

{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
protobuf,
# nativeBuildInputs
cmake,
openssl,
perl,
pkg-config,
# buildInputs
rdkafka,
# tests
cacert,
versionCheckHook,
# passthru
testers,
restate,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "restate";
version = "1.5.1";
src = fetchFromGitHub {
owner = "restatedev";
repo = "restate";
tag = "v${finalAttrs.version}";
hash = "sha256-NMT1/Oy0EmAtGqHMK3FL/MZczKz//hXkpKWhQ4S3tLw=";
};
cargoHash = "sha256-M7p20eeaxijlGjYBAAwmK4y/58eo7NysoK+Gvs86SNo=";
env = {
PROTOC = lib.getExe protobuf;
PROTOC_INCLUDE = "${protobuf}/include";
VERGEN_GIT_SHA = "v${finalAttrs.version}";
# rustflags as defined in the upstream's .cargo/config.toml
RUSTFLAGS =
let
target = stdenv.hostPlatform.config;
targetFlags = lib.fix (self: {
build = [
"-C force-unwind-tables"
"--cfg uuid_unstable"
"--cfg tokio_unstable"
];
"aarch64-unknown-linux-gnu" = self.build ++ [
# Enable frame pointers to support Parca (https://github.com/parca-dev/parca-agent/pull/1805)
"-C force-frame-pointers=yes"
"--cfg tokio_taskdump"
];
"x86_64-unknown-linux-musl" = self.build ++ [
"-C link-self-contained=yes"
"--cfg tokio_taskdump"
];
"aarch64-unknown-linux-musl" = self.build ++ [
# Enable frame pointers to support Parca (https://github.com/parca-dev/parca-agent/pull/1805)
"-C force-frame-pointers=yes"
"-C link-self-contained=yes"
"--cfg tokio_taskdump"
];
});
in
lib.concatStringsSep " " (lib.attrsets.attrByPath [ target ] targetFlags.build targetFlags);
# Have to be set to dynamically link librdkafka
CARGO_FEATURE_DYNAMIC_LINKING = 1;
};
nativeBuildInputs = [
cmake
openssl
perl
pkg-config
rustPlatform.bindgenHook
];
buildInputs = [
rdkafka
];
nativeCheckInputs = [
cacert
];
useNextest = true;
# Feature resolution seems to be failing due to this https://github.com/rust-lang/cargo/issues/7754
auditable = false;
checkFlags = [
# Error: deadline has elapsed
"--skip replicated_loglet"
# TIMEOUT [ 180.006s]
"--skip fast_forward_over_trim_gap"
# TIMEOUT (could be related to https://github.com/restatedev/restate/issues/3043)
"--skip restatectl_smoke_test"
];
__darwinAllowLocalNetworking = true;
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru = {
tests.restateCliVersion = testers.testVersion {
package = restate;
command = "restate --version";
};
tests.restateServerVersion = testers.testVersion {
package = restate;
command = "restate-server --version";
};
tests.restateCtlVersion = testers.testVersion {
package = restate;
command = "restatectl --version";
};
updateScript = nix-update-script { };
};
meta = {
description = "Platform for developing distributed fault-tolerant applications";
homepage = "https://restate.dev";
changelog = "https://github.com/restatedev/restate/releases/tag/v${finalAttrs.version}";
mainProgram = "restate";
license = lib.licenses.bsl11;
maintainers = with lib.maintainers; [ myypo ];
};
})