From b98485516bfd983f1930aceb493c6cf14506f460 Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 4 Jun 2024 13:53:54 +0200 Subject: [PATCH] packages/consul: init at 1.16.4 --- packages/projects.nix | 2 ++ packages/servers/consul/default.nix | 46 +++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 packages/servers/consul/default.nix diff --git a/packages/projects.nix b/packages/projects.nix index 621a362..76fc80a 100644 --- a/packages/projects.nix +++ b/packages/projects.nix @@ -22,6 +22,8 @@ cinny = pkgs.callPackage ./web-apps/cinny { inherit pins; }; + consul = pkgs.callPackage ./servers/consul { }; + excalidraw = pkgs.callPackage ./web-apps/excalidraw { inherit pins; }; graf = pkgs.callPackage ./tools/graf { }; diff --git a/packages/servers/consul/default.nix b/packages/servers/consul/default.nix new file mode 100644 index 0000000..44cbfbd --- /dev/null +++ b/packages/servers/consul/default.nix @@ -0,0 +1,46 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests }: + +buildGoModule rec { + pname = "consul"; + version = "1.16.4"; + rev = "v${version}"; + + # Note: Currently only release tags are supported, because they have the Consul UI + # vendored. See + # https://github.com/NixOS/nixpkgs/pull/48714#issuecomment-433454834 + # If you want to use a non-release commit as `src`, you probably want to improve + # this derivation so that it can build the UI's JavaScript from source. + # See https://github.com/NixOS/nixpkgs/pull/49082 for something like that. + # Or, if you want to patch something that doesn't touch the UI, you may want + # to apply your changes as patches on top of a release commit. + src = fetchFromGitHub { + owner = "hashicorp"; + repo = pname; + inherit rev; + hash = "sha256-49SGkRdFSQRhe6G8cuTTJKqg3bigoB10QvZcGvoWuGg="; + }; + + passthru.tests.consul = nixosTests.consul; + + # This corresponds to paths with package main - normally unneeded but consul + # has a split module structure in one repo + subPackages = ["." "connect/certgen"]; + + vendorHash = "sha256-cUfXSks49IlQ5BeZHxrzs7u4ikS4bcT68oiwe+wrpRk="; + + doCheck = false; + + ldflags = [ + "-X github.com/hashicorp/consul/version.GitDescribe=v${version}" + "-X github.com/hashicorp/consul/version.Version=${version}" + "-X github.com/hashicorp/consul/version.VersionPrerelease=" + ]; + + meta = with lib; { + description = "Tool for service discovery, monitoring and configuration"; + homepage = "https://www.consul.io/"; + platforms = platforms.linux ++ platforms.darwin; + license = licenses.mpl20; + mainProgram = "consul"; + }; +}