{ lib , fetchurl , fetchFromGitHub , buildGoModule , nixosTests }: let owner = "superseriousbusiness"; repo = "gotosocial"; version = "0.16.0"; web-assets = fetchurl { url = "https://github.com/${owner}/${repo}/releases/download/v${version}/${repo}_${version}_web-assets.tar.gz"; hash = "sha256-aZQpd5KvoZvXEMVzGbWrtGsc+P1JStjZ6U5mX6q7Vb0="; }; in buildGoModule rec { inherit version; pname = repo; src = fetchFromGitHub { inherit owner repo; rev = "refs/tags/v${version}"; hash = "sha256-QoG09+jmq5e5vxDVtkhY35098W/9B1HsYTuUnz43LV4="; }; vendorHash = null; ldflags = [ "-s" "-w" "-X main.Version=${version}" ]; postInstall = '' tar xf ${web-assets} mkdir -p $out/share/gotosocial mv web $out/share/gotosocial/ ''; # tests are working only on x86_64-linux # doCheck = stdenv.isLinux && stdenv.isx86_64; # checks are currently very unstable in our setup, so we should test manually for now doCheck = false; checkFlags = let # flaky / broken tests skippedTests = [ # See: https://github.com/superseriousbusiness/gotosocial/issues/2651 "TestPage/minID,_maxID_and_limit_set" ]; in [ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ]; passthru.tests.gotosocial = nixosTests.gotosocial; meta = with lib; { homepage = "https://gotosocial.org"; changelog = "https://github.com/superseriousbusiness/gotosocial/releases/tag/v${version}"; description = "Fast, fun, ActivityPub server, powered by Go"; longDescription = '' ActivityPub social network server, written in Golang. You can keep in touch with your friends, post, read, and share images and articles. All without being tracked or advertised to! A light-weight alternative to Mastodon and Pleroma, with support for clients! ''; maintainers = with maintainers; [ blakesmith ]; license = licenses.agpl3Only; }; }