diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/gotify/default.nix')
-rw-r--r-- | nixpkgs/pkgs/servers/gotify/default.nix | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/gotify/default.nix b/nixpkgs/pkgs/servers/gotify/default.nix new file mode 100644 index 000000000000..45311b60232e --- /dev/null +++ b/nixpkgs/pkgs/servers/gotify/default.nix @@ -0,0 +1,69 @@ +{ lib +, fetchFromGitHub +, buildGoModule +, sqlite +, callPackage +, nixosTests +, nix-update-script +}: + +buildGoModule rec { + pname = "gotify-server"; + version = "2.4.0"; + + src = fetchFromGitHub { + owner = "gotify"; + repo = "server"; + rev = "v${version}"; + hash = "sha256-TZeQcrJCH9TW039r499fxY4xJ27nZm9GdrilsI33Iqc="; + }; + + # With `allowGoReference = true;`, `buildGoModule` adds the `-trimpath` + # argument for Go builds which apparently breaks the UI like this: + # + # server[780]: stat /var/lib/private/ui/build/index.html: no such file or directory + allowGoReference = true; + + vendorHash = "sha256-TR6YGNhSMQ/1kvX3p3QGlXovuoJdaRH0LOwIPZwQ/xY="; + + doCheck = false; + + buildInputs = [ + sqlite + ]; + + ui = callPackage ./ui.nix { }; + + preBuild = '' + if [ -n "$ui" ] # to make the preBuild a no-op inside the goModules fixed-output derivation, where it would fail + then + cp -r $ui ui/build + fi + ''; + + passthru = { + # For nix-update to detect the location of this attribute from this + # derivation. + inherit (ui) offlineCache; + updateScript = nix-update-script { }; + tests = { + nixos = nixosTests.gotify-server; + }; + }; + + # Otherwise, all other subpackages are built as well and from some reason, + # produce binaries which panic when executed and are not interesting at all + subPackages = [ "." ]; + + ldflags = [ + "-X main.Version=${version}" "-X main.Mode=prod" + ]; + + meta = with lib; { + description = "A simple server for sending and receiving messages in real-time per WebSocket"; + homepage = "https://gotify.net"; + license = licenses.mit; + maintainers = with maintainers; [ doronbehar ]; + mainProgram = "server"; + }; +} |