diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/sql/cockroachdb/default.nix')
-rw-r--r-- | nixpkgs/pkgs/servers/sql/cockroachdb/default.nix | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/sql/cockroachdb/default.nix b/nixpkgs/pkgs/servers/sql/cockroachdb/default.nix new file mode 100644 index 000000000000..c1c70955d1ff --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/cockroachdb/default.nix @@ -0,0 +1,64 @@ +{ stdenv, buildGoPackage, fetchurl +, cmake, xz, which, autoconf +, ncurses6, libedit, libunwind +}: + +let + darwinDeps = [ libunwind libedit ]; + linuxDeps = [ ncurses6 ]; + + buildInputs = if stdenv.isDarwin then darwinDeps else linuxDeps; + nativeBuildInputs = [ cmake xz which autoconf ]; + +in +buildGoPackage rec { + name = "cockroach-${version}"; + version = "2.1.3"; + + goPackagePath = "github.com/cockroachdb/cockroach"; + + src = fetchurl { + url = "https://binaries.cockroachdb.com/cockroach-v${version}.src.tgz"; + sha256 = "0glk2qg4dq7gzkr6wjamxksjn668zsny8mmd0jph4w7166hm3n0n"; + }; + + inherit nativeBuildInputs buildInputs; + + buildPhase = '' + runHook preBuild + cd $NIX_BUILD_TOP/go/src/${goPackagePath} + patchShebangs . + make buildoss + cd src/${goPackagePath} + for asset in man autocomplete; do + ./cockroachoss gen $asset + done + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + install -D cockroachoss $bin/bin/cockroach + install -D cockroach.bash $bin/share/bash-completion/completions/cockroach.bash + + mkdir -p $man/share/man + cp -r man $man/share/man + + runHook postInstall + ''; + + # Unfortunately we have to keep an empty reference to $out, because it seems + # buildGoPackages only nukes references to the go compiler under $bin, effectively + # making all binary output under $bin mandatory. Ideally, we would just use + # $out and $man and remove $bin since there's no point in an empty path. :( + outputs = [ "bin" "man" "out" ]; + + meta = with stdenv.lib; { + homepage = https://www.cockroachlabs.com; + description = "A scalable, survivable, strongly-consistent SQL database"; + license = licenses.asl20; + platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ]; + maintainers = with maintainers; [ rushmorem thoughtpolice ]; + }; +} |