···36- `nixos-option` has been rewritten to a Nix expression called by a simple bash script. This lowers our maintenance threshold, makes eval errors less verbose, adds support for flake-based configurations, descending into `attrsOf` and `listOf` submodule options, and `--show-trace`.
3738- The Mattermost module ({option}`services.mattermost`) and packages (`mattermost` and `mmctl`) have been substantially updated:
0039 - `pkgs.mattermostLatest` is now an option to track the latest (non-prerelease) Mattermost release. We test upgrade migrations from ESR releases (`pkgs.mattermost`) to `pkgs.mattermostLatest`.
40 - The Mattermost frontend is now built from source and can be overridden.
41 - Note that the Mattermost derivation containing both the webapp and server is now wrapped to allow them to be built independently, so overrides to both webapp and server look like `mattermost.overrideAttrs (prev: { webapp = prev.webapp.override { ... }; server = prev.server.override { ... }; })` now.
···36- `nixos-option` has been rewritten to a Nix expression called by a simple bash script. This lowers our maintenance threshold, makes eval errors less verbose, adds support for flake-based configurations, descending into `attrsOf` and `listOf` submodule options, and `--show-trace`.
3738- The Mattermost module ({option}`services.mattermost`) and packages (`mattermost` and `mmctl`) have been substantially updated:
39+ - {option}`services.mattermost.preferNixConfig` now defaults to true if you advance {option}`system.stateVersion` to 25.05. This means that if you have {option}`services.mattermost.mutableConfig` set, NixOS will override your settings to those that you define in the module. It is recommended to leave this at the default, even if you used a mutable config before, because it will ensure that your Mattermost data directories are correct. If you moved your data directories, you may want to review the module changes before upgrading.
40+ - Mattermost telemetry reporting is now disabled by default, though security update notifications are enabled. Look at {option}`services.mattermost.telemetry` for options to control this behavior.
41 - `pkgs.mattermostLatest` is now an option to track the latest (non-prerelease) Mattermost release. We test upgrade migrations from ESR releases (`pkgs.mattermost`) to `pkgs.mattermostLatest`.
42 - The Mattermost frontend is now built from source and can be overridden.
43 - Note that the Mattermost derivation containing both the webapp and server is now wrapped to allow them to be built independently, so overrides to both webapp and server look like `mattermost.overrideAttrs (prev: { webapp = prev.webapp.override { ... }; server = prev.server.override { ... }; })` now.
+32-2
nixos/modules/services/web-apps/mattermost.nix
···202 ListenAddress = "${cfg.host}:${toString cfg.port}";
203 LocalModeSocketLocation = cfg.socket.path;
204 EnableLocalMode = cfg.socket.enable;
0205 };
206 TeamSettings.SiteName = cfg.siteName;
207 SqlSettings.DriverName = cfg.database.driver;
···233 FileSettings.Directory = cfg.dataDir;
234 PluginSettings.Directory = "${pluginDir}/server";
235 PluginSettings.ClientDirectory = "${pluginDir}/client";
236- LogSettings.FileLocation = cfg.logDir;
000000237 } cfg.settings;
238239 mattermostConf = recursiveUpdate mattermostConfWithoutPlugins (
···455456 preferNixConfig = mkOption {
457 type = types.bool;
458- default = false;
000459 description = ''
460 If both mutableConfig and this option are set, the Nix configuration
461 will take precedence over any settings configured in the server
···472 This is a list of paths to .tar.gz files or derivations evaluating to
473 .tar.gz files.
474 '';
00000000000000000000475 };
476477 environment = mkOption {
···202 ListenAddress = "${cfg.host}:${toString cfg.port}";
203 LocalModeSocketLocation = cfg.socket.path;
204 EnableLocalMode = cfg.socket.enable;
205+ EnableSecurityFixAlert = cfg.telemetry.enableSecurityAlerts;
206 };
207 TeamSettings.SiteName = cfg.siteName;
208 SqlSettings.DriverName = cfg.database.driver;
···234 FileSettings.Directory = cfg.dataDir;
235 PluginSettings.Directory = "${pluginDir}/server";
236 PluginSettings.ClientDirectory = "${pluginDir}/client";
237+ LogSettings = {
238+ FileLocation = cfg.logDir;
239+240+ # Reaches out to Mattermost's servers for telemetry; disable it by default.
241+ # https://docs.mattermost.com/configure/environment-configuration-settings.html#enable-diagnostics-and-error-reporting
242+ EnableDiagnostics = cfg.telemetry.enableDiagnostics;
243+ };
244 } cfg.settings;
245246 mattermostConf = recursiveUpdate mattermostConfWithoutPlugins (
···462463 preferNixConfig = mkOption {
464 type = types.bool;
465+ default = versionAtLeast config.system.stateVersion "25.05";
466+ defaultText = ''
467+ versionAtLeast config.system.stateVersion "25.05";
468+ '';
469 description = ''
470 If both mutableConfig and this option are set, the Nix configuration
471 will take precedence over any settings configured in the server
···482 This is a list of paths to .tar.gz files or derivations evaluating to
483 .tar.gz files.
484 '';
485+ };
486+487+ telemetry = {
488+ enableSecurityAlerts = mkOption {
489+ type = types.bool;
490+ default = true;
491+ description = ''
492+ True if we should enable security update checking. This reaches out to Mattermost's servers:
493+ https://docs.mattermost.com/manage/telemetry.html#security-update-check-feature
494+ '';
495+ };
496+497+ enableDiagnostics = mkOption {
498+ type = types.bool;
499+ default = false;
500+ description = ''
501+ True if we should enable sending diagnostic data. This reaches out to Mattermost's servers:
502+ https://docs.mattermost.com/manage/telemetry.html#error-and-diagnostics-reporting-feature
503+ '';
504+ };
505 };
506507 environment = mkOption {
+5-4
nixos/tests/mate-wayland.nix
···42 machine.wait_for_file("/run/user/${toString user.uid}/wayland-1")
4344 with subtest("Check if MATE session components actually start"):
45- for i in ["wayfire", "mate-panel", "mate-wayland.sh", "mate-wayland-components.sh"]:
46- machine.wait_until_succeeds(f"pgrep -f {i}")
47- # It is expected that this applet doesn't work in Wayland
48- machine.wait_for_text('WorkspaceSwitcherApplet')
04950 with subtest("Check if various environment variables are set"):
51 cmd = "xargs --null --max-args=1 echo < /proc/$(pgrep -xf mate-panel)/environ"
···42 machine.wait_for_file("/run/user/${toString user.uid}/wayland-1")
4344 with subtest("Check if MATE session components actually start"):
45+ for i in ["wayfire", "mate-panel", "mate-wayland.sh"]:
46+ machine.wait_until_succeeds(f"pgrep {i}")
47+ machine.wait_until_succeeds("pgrep -f mate-wayland-components.sh")
48+ # It is expected that WorkspaceSwitcherApplet doesn't work in Wayland
49+ machine.wait_for_text('(panel|Factory|Workspace|Switcher|Applet|configuration)')
5051 with subtest("Check if various environment variables are set"):
52 cmd = "xargs --null --max-args=1 echo < /proc/$(pgrep -xf mate-panel)/environ"
···3637stdenv.mkDerivation {
38 pname = "tdlib";
39- version = "1.8.42";
4041 src = fetchFromGitHub {
42 owner = "tdlib";
···45 # The tdlib authors do not set tags for minor versions, but
46 # external programs depending on tdlib constrain the minor
47 # version, hence we set a specific commit with a known version.
48- rev = "ef580cd3dd0e5223c2be503342dc29e128be866e";
49- hash = "sha256-k1YQpQXYmEdoiyWeAcj2KRU+BcWuWbHpd4etxLspEoo=";
50 };
5152 buildInputs = [
···3637stdenv.mkDerivation {
38 pname = "tdlib";
39+ version = "1.8.44";
4041 src = fetchFromGitHub {
42 owner = "tdlib";
···45 # The tdlib authors do not set tags for minor versions, but
46 # external programs depending on tdlib constrain the minor
47 # version, hence we set a specific commit with a known version.
48+ rev = "28c6f2e9c045372d50217919bf5768b7fbbe0294";
49+ hash = "sha256-IZ/VplO7PSzYVYmUa6nhJdI4kni8x5TZ7XWkf8JcmYI=";
50 };
5152 buildInputs = [
···202 cargo-deps = throw "cargo-deps has been removed as the repository is deleted"; # Added 2024-04-09
203 cargo-espflash = espflash;
204 cargo-kcov = throw "'cargo-kcov' has been removed due to lack of upstream maintenance"; # Added 2025-01-25
0205 cawbird = throw "cawbird has been abandoned upstream and is broken anyways due to Twitter closing its API";
206 certmgr-selfsigned = certmgr; # Added 2023-11-30
207 cgal_4 = throw "cgal_4 has been removed as it is obsolete use cgal instead"; # Added 2024-12-30
···202 cargo-deps = throw "cargo-deps has been removed as the repository is deleted"; # Added 2024-04-09
203 cargo-espflash = espflash;
204 cargo-kcov = throw "'cargo-kcov' has been removed due to lack of upstream maintenance"; # Added 2025-01-25
205+ cargo-inspect = throw "'cargo-inspect' has been removed due to lack of upstream maintenance. Upstream recommends cargo-expand."; # Added 2025-01-26
206 cawbird = throw "cawbird has been abandoned upstream and is broken anyways due to Twitter closing its API";
207 certmgr-selfsigned = certmgr; # Added 2023-11-30
208 cgal_4 = throw "cgal_4 has been removed as it is obsolete use cgal instead"; # Added 2024-12-30