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.
17 src = fetchFromGitHub {
21 hash = "sha256-kqwRwo7eL9xfOyP54oS800L6bisVwJf9FpgTnwfmjAo=";
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 = (_: {
36 url = "https://releases.mattermost.com/${version}/mattermost-${version}-linux-amd64.tar.gz";
37 hash = "sha256-f2Zap/15TOyzCP97BGGmXimwAa1mTP42w37RToNkAsQ=";
40 vendorHash = "sha256-TJCtgNf56A1U0EbV5gXjTro+YudVBRWiSZoBC3nJxnE=";
47 subPackages = [ "cmd/mattermost" ];
49 tags = [ "production" ];
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"
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 {} \;
71 updateScript = nix-update-script {
72 extraArgs = [ "--version-regex" "^v(9\.5\.([0-9.]+))" ];
74 tests.mattermost = nixosTests.mattermost;
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";