Merge pull request #330634 from r-ryantm/auto-update/circumflex
[NixPkgs.git] / pkgs / servers / gotosocial / default.nix
blob3f57180795eefb1d9768124008bfd15679c045a0
1 { lib
2 , fetchurl
3 , fetchFromGitHub
4 , buildGoModule
5 , nixosTests
6 }:
7 let
8   owner = "superseriousbusiness";
9   repo = "gotosocial";
11   version = "0.16.0";
13   web-assets = fetchurl {
14     url = "https://github.com/${owner}/${repo}/releases/download/v${version}/${repo}_${version}_web-assets.tar.gz";
15     hash = "sha256-aZQpd5KvoZvXEMVzGbWrtGsc+P1JStjZ6U5mX6q7Vb0=";
16   };
18 buildGoModule rec {
19   inherit version;
20   pname = repo;
22   src = fetchFromGitHub {
23     inherit owner repo;
24     rev = "refs/tags/v${version}";
25     hash = "sha256-QoG09+jmq5e5vxDVtkhY35098W/9B1HsYTuUnz43LV4=";
26   };
28   vendorHash = null;
30   ldflags = [
31     "-s"
32     "-w"
33     "-X main.Version=${version}"
34   ];
36   postInstall = ''
37     tar xf ${web-assets}
38     mkdir -p $out/share/gotosocial
39     mv web $out/share/gotosocial/
40   '';
42   # tests are working only on x86_64-linux
43   # doCheck = stdenv.isLinux && stdenv.isx86_64;
44   # checks are currently very unstable in our setup, so we should test manually for now
45   doCheck = false;
47   checkFlags =
48     let
49       # flaky / broken tests
50       skippedTests = [
51         # See: https://github.com/superseriousbusiness/gotosocial/issues/2651
52         "TestPage/minID,_maxID_and_limit_set"
53       ];
54     in
55     [ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
57   passthru.tests.gotosocial = nixosTests.gotosocial;
59   meta = with lib; {
60     homepage = "https://gotosocial.org";
61     changelog = "https://github.com/superseriousbusiness/gotosocial/releases/tag/v${version}";
62     description = "Fast, fun, ActivityPub server, powered by Go";
63     longDescription = ''
64       ActivityPub social network server, written in Golang.
65       You can keep in touch with your friends, post, read, and
66       share images and articles. All without being tracked or
67       advertised to! A light-weight alternative to Mastodon
68       and Pleroma, with support for clients!
69     '';
70     maintainers = with maintainers; [ blakesmith ];
71     license = licenses.agpl3Only;
72   };