diff --git a/pkgs/servers/gotosocial/default.nix b/pkgs/servers/gotosocial/default.nix new file mode 100644 index 000000000000..057fbbfb08ea --- /dev/null +++ b/pkgs/servers/gotosocial/default.nix @@ -0,0 +1,61 @@ +{ stdenv +, lib +, fetchurl +, fetchFromGitHub +, buildGoModule +}: +let + owner = "superseriousbusiness"; + repo = "gotosocial"; + + version = "0.9.0"; + source-hash = "sha256-UZRIQTdVESCYv2KW7HUS2c4bS5qnB7wdwiYAgEJ60fU="; + web-assets-hash = "sha256-OvgAr3obsK1JndLKmnjNY06dEbQKyP4xG/viBjCivvs="; + + web-assets = fetchurl { + url = "https://github.com/${owner}/${repo}/releases/download/v${version}/${repo}_${version}_web-assets.tar.gz"; + hash = web-assets-hash; + }; +in +buildGoModule rec { + inherit version; + pname = repo; + + src = fetchFromGitHub { + inherit owner repo; + rev = "refs/tags/v${version}"; + hash = source-hash; + }; + + 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; + + 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; [ misuzu ]; + license = licenses.agpl3Only; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e1b530a640a1..baf634e2f92e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -25685,6 +25685,8 @@ with pkgs; mastodon = callPackage ../servers/mastodon { }; + gotosocial = callPackage ../servers/gotosocial { }; + materialize = callPackage ../servers/sql/materialize { inherit (buildPackages.darwin) bootstrap_cmds; inherit (darwin.apple_sdk.frameworks) DiskArbitration Foundation;