pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / servers / gotify / default.nix
blob320042f7157eaaccd4ba04fc35c4ea98d9dea5f0
1 { lib
2 , fetchFromGitHub
3 , buildGoModule
4 , sqlite
5 , callPackage
6 , nixosTests
7 , nix-update-script
8 }:
10 buildGoModule rec {
11   pname = "gotify-server";
12   version = "2.5.0";
14   src = fetchFromGitHub {
15     owner = "gotify";
16     repo = "server";
17     rev = "v${version}";
18     hash = "sha256-Na/bxETIgVm1mxMOXWTgYIFFuB6XG1jGvbW6q/n5LRw=";
19   };
21   # With `allowGoReference = true;`, `buildGoModule` adds the `-trimpath`
22   # argument for Go builds which apparently breaks the UI like this:
23   #
24   #   server[780]: stat /var/lib/private/ui/build/index.html: no such file or directory
25   allowGoReference = true;
27   vendorHash = "sha256-Vnk/c2dzxIXDChobFSP++9uyiFD+SKyxJC9ZwaQ2pVw=";
29   doCheck = false;
31   buildInputs = [
32     sqlite
33   ];
35   ui = callPackage ./ui.nix { };
37   preBuild = ''
38     if [ -n "$ui" ] # to make the preBuild a no-op inside the goModules fixed-output derivation, where it would fail
39     then
40       cp -r $ui ui/build
41     fi
42   '';
44   passthru = {
45     # For nix-update to detect the location of this attribute from this
46     # derivation.
47     inherit (ui) offlineCache;
48     updateScript = nix-update-script { };
49     tests = {
50       nixos = nixosTests.gotify-server;
51     };
52   };
54   # Otherwise, all other subpackages are built as well and from some reason,
55   # produce binaries which panic when executed and are not interesting at all
56   subPackages = [ "." ];
58   ldflags = [
59     "-X main.Version=${version}" "-X main.Mode=prod"
60   ];
62   meta = with lib; {
63     description = "Simple server for sending and receiving messages in real-time per WebSocket";
64     homepage = "https://gotify.net";
65     license = licenses.mit;
66     maintainers = with maintainers; [ doronbehar ];
67     mainProgram = "server";
68   };