77 lines
2.0 KiB
Nix
77 lines
2.0 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";
|
|
};
|
|
}
|