{ stdenv, lib, buildGo119Module, fetchFromGitHub, makeWrapper, go, git, ffmpeg , ... }: let gotosocialVersion = "0.7.1"; gtswaHash = "sha256:0k0i3qw89fq6w2akdbrbg4s3amp5hznr2b5z5dzz2jragvb8a6yx"; gtssHash = "sha256-ejAnHxXVM7+JA+DVPZKGwW/leMS6dAEvtH8iGRVig90="; gotosocialWebAssets = builtins.fetchurl { url = "https://github.com/superseriousbusiness/gotosocial/releases/download/v${gotosocialVersion}/gotosocial_${gotosocialVersion}_web-assets.tar.gz"; sha256 = gtswaHash; }; in with lib; buildGo119Module rec { pname = "gotosocial"; version = gotosocialVersion; src = fetchFromGitHub { owner = "superseriousbusiness"; repo = pname; rev = "v${version}"; hash = gtssHash; }; ldflags = [ "-s" "-w" "-extldflags '-static'" "-X 'main.Commit=${version}'" "-X 'main.Version=${version}'" ]; propagatedBuildInputs = [ ffmpeg ]; proxyVendor = false; vendorSha256 = null; doCheck = false; preBuild = '' echo ${go}/bin/go ${go}/bin/go version ''; postInstall = '' mkdir -p $out/assets tar -C $out/assets/ -zxvf ${gotosocialWebAssets} ''; meta = { description = "Fast, fun, ActivityPub server, powered by Go."; homepage = "https://github.com/superseriousbusiness/gotosocial"; license = licenses.agpl3; maintainers = with maintainers; [ qbit ]; }; }