biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / servers / mattermost / default.nix
blob78662d4b18cf44ba2b87e95a20859c42e5ae35b9
1 { lib
2 , buildGoModule
3 , fetchFromGitHub
4 , nix-update-script
5 , fetchurl
6 , nixosTests
7 }:
9 buildGoModule rec {
10   pname = "mattermost";
11   # ESR releases only.
12   # See https://docs.mattermost.com/upgrade/extended-support-release.html
13   # When a new ESR version is available (e.g. 8.1.x -> 9.5.x), update
14   # the version regex in passthru.updateScript as well.
15   version = "9.5.3";
17   src = fetchFromGitHub {
18     owner = "mattermost";
19     repo = "mattermost";
20     rev = "v${version}";
21     hash = "sha256-kqwRwo7eL9xfOyP54oS800L6bisVwJf9FpgTnwfmjAo=";
22   };
24   # Needed because buildGoModule does not support go workspaces yet.
25   # We use go 1.22's workspace vendor command, which is not yet available
26   # in the default version of go used in nixpkgs, nor is it used by upstream:
27   # https://github.com/mattermost/mattermost/issues/26221#issuecomment-1945351597
28   overrideModAttrs = (_: {
29     buildPhase = ''
30       make setup-go-work
31       go work vendor -e
32     '';
33   });
35   webapp = fetchurl {
36     url = "https://releases.mattermost.com/${version}/mattermost-${version}-linux-amd64.tar.gz";
37     hash = "sha256-f2Zap/15TOyzCP97BGGmXimwAa1mTP42w37RToNkAsQ=";
38   };
40   vendorHash = "sha256-TJCtgNf56A1U0EbV5gXjTro+YudVBRWiSZoBC3nJxnE=";
42   modRoot = "./server";
43   preBuild = ''
44     make setup-go-work
45   '';
47   subPackages = [ "cmd/mattermost" ];
49   tags = [ "production" ];
51   ldflags = [
52     "-s"
53     "-w"
54     "-X github.com/mattermost/mattermost/server/public/model.Version=${version}"
55     "-X github.com/mattermost/mattermost/server/public/model.BuildNumber=${version}-nixpkgs"
56     "-X github.com/mattermost/mattermost/server/public/model.BuildDate=1970-01-01"
57     "-X github.com/mattermost/mattermost/server/public/model.BuildHash=v${version}"
58     "-X github.com/mattermost/mattermost/server/public/model.BuildHashEnterprise=none"
59     "-X github.com/mattermost/mattermost/server/public/model.BuildEnterpriseReady=false"
60   ];
62   postInstall = ''
63     tar --strip 1 --directory $out -xf $webapp \
64       mattermost/{client,i18n,fonts,templates,config}
66     # For some reason a bunch of these files are executable
67     find $out/{client,i18n,fonts,templates,config} -type f -exec chmod -x {} \;
68   '';
70   passthru = {
71     updateScript = nix-update-script {
72       extraArgs = [ "--version-regex" "^v(9\.5\.([0-9.]+))" ];
73     };
74     tests.mattermost = nixosTests.mattermost;
75   };
77   meta = with lib; {
78     description = "Mattermost is an open source platform for secure collaboration across the entire software development lifecycle";
79     homepage = "https://www.mattermost.org";
80     license = with licenses; [ agpl3Only asl20 ];
81     maintainers = with maintainers; [ ryantm numinit kranzes mgdelacroix ];
82     mainProgram = "mattermost";
83   };