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