diff --git a/pkgs/servers/nosql/immudb/default.nix b/pkgs/servers/nosql/immudb/default.nix new file mode 100644 index 000000000000..a2f56f4f45c9 --- /dev/null +++ b/pkgs/servers/nosql/immudb/default.nix @@ -0,0 +1,64 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, fetchzip +, installShellFiles +}: + +let + webconsoleVersion = "1.0.17"; + webconsoleDist = fetchzip { + url = "https://github.com/codenotary/immudb-webconsole/releases/download/v${webconsoleVersion}/immudb-webconsole.tar.gz"; + sha256 = "sha256-hFSvPwSRXyrSBYktTOwIRa1+aH+mX/scDYDokvZuW1s="; + }; +in +buildGoModule rec { + pname = "immudb"; + version = "1.3.2"; + + src = fetchFromGitHub { + owner = "codenotary"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-lcKjeqZeTQQMhVjnWNP3c+HanI/eenfUbpZJAo5FEkM="; + }; + + preBuild = '' + mkdir -p webconsole/dist + cp -r ${webconsoleDist}/* ./webconsole/dist + go generate -tags webconsole ./webconsole + ''; + + proxyVendor = true; # check if this is needed anymore when updating + + vendorSha256 = "sha256-gMpkV0XqY6wh7s0lndIdCoYlvVBrMk7/lvyDVqnJ66c="; + + nativeBuildInputs = [ installShellFiles ]; + + tags = [ "webconsole" ]; + + ldflags = [ "-X github.com/codenotary/immudb/cmd/version.Version=${version}" ]; + + subPackages = [ + "cmd/immudb" + "cmd/immuclient" + "cmd/immuadmin" + ]; + + postInstall = '' + mkdir -p share/completions + for executable in immudb immuclient immuadmin; do + for shell in bash fish zsh; do + $out/bin/$executable completion $shell > share/completions/$executable.$shell + installShellCompletion share/completions/$executable.$shell + done + done + ''; + + meta = with lib; { + description = "Immutable database based on zero trust, SQL and Key-Value, tamperproof, data change history"; + homepage = "https://github.com/codenotary/immudb"; + license = licenses.asl20; + maintainers = with maintainers; [ dit7ya ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a54ee9c4c6df..7829c35c2da9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -23469,6 +23469,8 @@ with pkgs; }; percona-server = percona-server56; + immudb = callPackage ../servers/nosql/immudb { }; + influxdb = callPackage ../servers/nosql/influxdb { # pinned due to build failure or vendoring problems. When unpinning double check with: nix-build -A $name.go-modules --rebuild buildGoModule = buildGo117Module;