nixpkgs/pkgs/tools/filesystems/garage/default.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

117 lines
3.0 KiB
Nix
Raw Normal View History

2023-10-16 19:48:57 +00:00
{ lib
, stdenv
, rustPlatform
, fetchFromGitea
, fetchpatch
, openssl
, pkg-config
, protobuf
, cacert
, Security
, garage
, nixosTests
}:
let
2022-12-30 14:10:26 +00:00
generic = { version, sha256, cargoSha256, eol ? false, broken ? false }: rustPlatform.buildRustPackage {
pname = "garage";
inherit version;
2022-02-09 02:32:43 +00:00
src = fetchFromGitea {
domain = "git.deuxfleurs.fr";
owner = "Deuxfleurs";
repo = "garage";
rev = "v${version}";
inherit sha256;
};
2022-04-10 10:05:20 +00:00
postPatch = ''
# Starting in 0.9.x series, Garage is using mold in local development
# and this leaks in this packaging, we remove it to use the default linker.
rm .cargo/config.toml || true
'';
inherit cargoSha256;
2022-02-09 02:32:43 +00:00
nativeBuildInputs = [ protobuf pkg-config ];
buildInputs = [
openssl
] ++ lib.optional stdenv.isDarwin Security;
checkInputs = [
cacert
];
OPENSSL_NO_VENDOR = true;
# See https://git.deuxfleurs.fr/Deuxfleurs/garage/src/tag/v0.8.2/nix/compile.nix#L192-L198
# on version changes for checking if changes are required here
buildFeatures = [
"kubernetes-discovery"
"bundled-libs"
"sled"
"metrics"
"k2v"
"telemetry-otlp"
"lmdb"
"sqlite"
"consul-discovery"
];
# To make integration tests pass, we include the optional k2v feature here,
# but in buildFeatures only for version 0.8+, where it's enabled by default.
# See: https://garagehq.deuxfleurs.fr/documentation/reference-manual/k2v/
checkFeatures = [
"k2v"
"kubernetes-discovery"
"bundled-libs"
"sled"
"lmdb"
"sqlite"
];
2022-02-09 02:32:43 +00:00
disabledTests = [
# Upstream told us this test is flakey.
"k2v::poll::test_poll_item"
];
2023-08-29 14:18:07 +00:00
passthru.tests = nixosTests.garage;
meta = {
description = "S3-compatible object store for small self-hosted geo-distributed deployments";
2024-01-17 15:27:41 +00:00
changelog = "https://git.deuxfleurs.fr/Deuxfleurs/garage/releases/tag/v${version}";
homepage = "https://garagehq.deuxfleurs.fr";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [ nickcao _0x4A6F teutat3s raitobezarius ];
knownVulnerabilities = (lib.optional eol "Garage version ${version} is EOL");
2022-12-30 14:10:26 +00:00
inherit broken;
2023-11-23 21:09:35 +00:00
mainProgram = "garage";
};
2022-02-09 02:32:43 +00:00
};
in
2023-10-16 19:48:57 +00:00
rec {
# Until Garage hits 1.0, 0.7.3 is equivalent to 7.3.0 for now, therefore
# we have to keep all the numbers in the version to handle major/minor/patch level.
# for <1.0.
garage_0_8_7 = generic {
version = "0.8.7";
sha256 = "sha256-2QGbR6YvMQeMxN3n1MMJ5qfBcEJ5hjXARUOfEn+m4Jc=";
cargoSha256 = "sha256-Q0QyBNPEDrlhgIHD4q7Qb1Pu3xBvzlLOSW7LSWWdoIo=";
broken = stdenv.isDarwin;
2023-10-16 19:48:57 +00:00
};
garage_0_8 = garage_0_8_7;
garage_0_9_3 = generic {
version = "0.9.3";
sha256 = "sha256-NN2HoheSW2+SAFX71K12KTe0wpaBEwkwxvZDi0Bdx+8=";
cargoSha256 = "sha256-OabgWVMkccFFAtBHEf3z+MRVcWaO+NCk/pumEqdNNRs=";
garage: mark broken on Darwin It broke again because of some linker error. ``` garage-aarch64-darwin> warning: use of deprecated associated function `garage_db::sled_adapter::SledDb::init`: The Sled database is now deprecated and will be removed in Garage v1.0. Please migrate to LMDB or Sqlite as soon as possible. garage-aarch64-darwin> --> src/model/garage.rs:134:31 garage-aarch64-darwin> | garage-aarch64-darwin> 134 | db::sled_adapter::SledDb::init(db) garage-aarch64-darwin> | ^^^^ garage-aarch64-darwin> | garage-aarch64-darwin> = note: `#[warn(deprecated)]` on by default garage-aarch64-darwin> garage-aarch64-darwin> Compiling garage_api v0.9.2 (/private/tmp/nix-build-garage-0.9.2.drv-0/source/src/api) garage-aarch64-darwin> Compiling garage_web v0.9.2 (/private/tmp/nix-build-garage-0.9.2.drv-0/source/src/web) garage-aarch64-darwin> warning: `garage_model` (lib) generated 1 warning garage-aarch64-darwin> Compiling garage v0.9.2 (/private/tmp/nix-build-garage-0.9.2.drv-0/source/src/garage) garage-aarch64-darwin> warning: use of deprecated associated function `garage_db::sled_adapter::SledDb::init`: The Sled database is now deprecated and will be removed in Garage v1.0. Please migrate to LMDB or Sqlite as soon as possible. garage-aarch64-darwin> --> src/garage/cli/convert_db.rs:65:29 garage-aarch64-darwin> | garage-aarch64-darwin> 65 | Ok(sled_adapter::SledDb::init(db)) garage-aarch64-darwin> | ^^^^ garage-aarch64-darwin> | garage-aarch64-darwin> = note: `#[warn(deprecated)]` on by default garage-aarch64-darwin> garage-aarch64-darwin> error: linker `/nix/store/6kpjydf9x7zqa1xq2qipnwr32ki3fs2n-clang-wrapper-16.0.6/bin/cc` not found garage-aarch64-darwin> | garage-aarch64-darwin> = note: No such file or directory (os error 2) ``` Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
2024-03-01 18:35:03 +00:00
broken = stdenv.isDarwin;
};
garage_0_9 = garage_0_9_3;
garage = garage_0_9;
2023-10-16 19:48:57 +00:00
}