···104104 };
105105 };
106106107107- config = {
107107+ options.system.disableInstallerTools = mkOption {
108108+ internal = true;
109109+ type = types.bool;
110110+ default = false;
111111+ description = ''
112112+ Disable nixos-rebuild, nixos-generate-config, nixos-installer
113113+ and other NixOS tools. This is useful to shrink embedded,
114114+ read-only systems which are not expected to be rebuild or
115115+ reconfigure themselves. Use at your own risk!
116116+ '';
117117+ };
118118+119119+ config = lib.mkIf (!config.system.disableInstallerTools) {
120120+108121 system.nixos-generate-config.configuration = mkDefault ''
109122 # Edit this configuration file to define what should be installed on
110123 # your system. Help is available in the configuration.nix(5) man page
···1818 });
19192020 systemActivationScript = set: onlyDry: let
2121- set' = filterAttrs (_: v: onlyDry -> v.supportsDryActivation) (mapAttrs (_: v: if isString v then (noDepEntry v) // { supportsDryActivation = false; } else v) set);
2121+ set' = mapAttrs (_: v: if isString v then (noDepEntry v) // { supportsDryActivation = false; } else v) set;
2222 withHeadlines = addAttributeName set';
2323+ # When building a dry activation script, this replaces all activation scripts
2424+ # that do not support dry mode with a comment that does nothing. Filtering these
2525+ # activation scripts out so they don't get generated into the dry activation script
2626+ # does not work because when an activation script that supports dry mode depends on
2727+ # an activation script that does not, the dependency cannot be resolved and the eval
2828+ # fails.
2929+ withDrySnippets = mapAttrs (a: v: if onlyDry && !v.supportsDryActivation then v // {
3030+ text = "#### Activation script snippet ${a} does not support dry activation.";
3131+ } else v) withHeadlines;
2332 in
2433 ''
2534 #!${pkgs.runtimeShell}
···3746 # Ensure a consistent umask.
3847 umask 0022
39484040- ${textClosureMap id (withHeadlines) (attrNames withHeadlines)}
4949+ ${textClosureMap id (withDrySnippets) (attrNames withDrySnippets)}
41504251 '' + optionalString (!onlyDry) ''
4352 # Make this configuration the current configuration.
···2525 else "");
2626in stdenv.mkDerivation rec {
2727 pname = "signal-desktop";
2828- version = "5.17.0"; # Please backport all updates to the stable channel.
2828+ version = "5.17.1"; # Please backport all updates to the stable channel.
2929 # All releases have a limited lifetime and "expire" 90 days after the release.
3030 # When releases "expire" the application becomes unusable until an update is
3131 # applied. The expiration date for the current release can be extracted with:
···35353636 src = fetchurl {
3737 url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
3838- sha256 = "1m3bkrshlipxlbf4xr7gpw3zn1k39cdysrqmw705hy2cwf7pw7yy";
3838+ sha256 = "sha256-gJ5jDMdEx2YSmPtNfv2gKKAgPfRJcb3Aabti/DgHaIU=";
3939 };
40404141 nativeBuildInputs = [