77 lines
2 KiB
Nix
77 lines
2 KiB
Nix
{
|
|||
lib,
|
|||
fetchFromGitHub,
|
|||
rustPlatform,
|
|||
pkg-config,
|
|||
openssl,
|
|||
protobuf,
|
|||
redis,
|
|||
fontconfig,
|
|||
versionCheckHook,
|
|||
nix-update-script,
|
|||
}:
|
|||
rustPlatform.buildRustPackage rec {
|
|||
pname = "golem";
|
|||
version = "1.0.26";
|
|||
|
|||
src = fetchFromGitHub {
|
|||
owner = "golemcloud";
|
|||
repo = "golem";
|
|||
rev = "refs/tags/v${version}";
|
|||
hash = "sha256-q2DZrJIegu6X89tVLJE+OY7XRpqY2nGmTE699UhMP2E=";
|
|||
};
|
|||
|
|||
# Taker from https://github.com/golemcloud/golem/blob/v1.0.26/Makefile.toml#L399
|
|||
postPatch = ''
|
|||
grep -rl --include 'Cargo.toml' '0\.0\.0' | xargs sed -i "s/0\.0\.0/${version}/g"
|
|||
'';
|
|||
|
|||
nativeBuildInputs = [
|
|||
pkg-config
|
|||
protobuf
|
|||
rustPlatform.bindgenHook
|
|||
];
|
|||
|
|||
buildInputs = [
|
|||
fontconfig
|
|||
(lib.getDev openssl)
|
|||
];
|
|||
|
|||
# Required for golem-wasm-rpc's build.rs to find the required protobuf files
|
|||
# https://github.com/golemcloud/wasm-rpc/blob/v1.0.6/wasm-rpc/build.rs#L7
|
|||
GOLEM_WASM_AST_ROOT = "../golem-wasm-ast-1.0.1";
|
|||
# Required for golem-examples's build.rs to find the required Wasm Interface Type (WIT) files
|
|||
# https://github.com/golemcloud/golem-examples/blob/v1.0.6/build.rs#L9
|
|||
GOLEM_WIT_ROOT = "../golem-wit-1.0.3";
|
|||
|
|||
cargoLock = {
|
|||
lockFile = ./Cargo.lock;
|
|||
outputHashes = {
|
|||
"cranelift-bforest-0.108.1" = "sha256-WVRj6J7yXLFOsud9qKugmYja0Pe7AqZ0O2jgkOtHRg8=";
|
|||
};
|
|||
};
|
|||
|
|||
# Tests are failing in the sandbox because of some redis integration tests
|
|||
doCheck = false;
|
|||
checkInputs = [ redis ];
|
|||
|
|||
nativeInstallCheckInputs = [
|
|||
versionCheckHook
|
|||
];
|
|||
versionCheckProgram = [ "${placeholder "out"}/bin/golem-cli" ];
|
|||
versionCheckProgramArg = [ "--version" ];
|
|||
doInstallCheck = true;
|
|||
|
|||
passthru = {
|
|||
updateScript = nix-update-script { };
|
|||
};
|
|||
|
|||
meta = {
|
|||
description = "Open source durable computing platform that makes it easy to build and deploy highly reliable distributed systems";
|
|||
changelog = "https://github.com/golemcloud/golem/releases/tag/v${version}";
|
|||
homepage = "https://www.golem.cloud/";
|
|||
license = lib.licenses.asl20;
|
|||
mainProgram = "golem-cli";
|
|||
};
|
|||
}
|