Merge pull request #201963 from zhaofengli/moonraker-2022-11-18

moonraker: unstable-2022-04-23 -> unstable-2022-11-18, nixos/moonraker: fixes

authored by

K900 and committed by
GitHub
34f30851 a9c9d192

+37 -18
+34 -15
nixos/modules/services/misc/moonraker.nix
··· 11 11 else lib.concatMapStrings (s: "\n ${generators.mkValueStringDefault {} s}") l; 12 12 mkKeyValue = generators.mkKeyValueDefault {} ":"; 13 13 }; 14 + 15 + unifiedConfigDir = cfg.stateDir + "/config"; 14 16 in { 15 17 options = { 16 18 services.moonraker = { ··· 30 32 }; 31 33 32 34 configDir = mkOption { 33 - type = types.path; 34 - default = cfg.stateDir + "/config"; 35 - defaultText = literalExpression ''config.${opt.stateDir} + "/config"''; 35 + type = types.nullOr types.path; 36 + default = null; 36 37 description = lib.mdDoc '' 37 - The directory containing client-writable configuration files. 38 + Deprecated directory containing client-writable configuration files. 38 39 39 40 Clients will be able to edit files in this directory via the API. This directory must be writable. 40 41 ''; ··· 96 97 }; 97 98 98 99 config = mkIf cfg.enable { 99 - warnings = optional (cfg.settings ? update_manager) 100 - ''Enabling update_manager is not supported on NixOS and will lead to non-removable warnings in some clients.''; 100 + warnings = [] 101 + ++ optional (cfg.settings ? update_manager) 102 + ''Enabling update_manager is not supported on NixOS and will lead to non-removable warnings in some clients.'' 103 + ++ optional (cfg.configDir != null) 104 + '' 105 + services.moonraker.configDir has been deprecated upstream and will be removed. 106 + 107 + Action: ${ 108 + if cfg.configDir == unifiedConfigDir then "Simply remove services.moonraker.configDir from your config." 109 + else "Move files from `${cfg.configDir}` to `${unifiedConfigDir}` then remove services.moonraker.configDir from your config." 110 + } 111 + ''; 101 112 102 113 assertions = [ 103 114 { ··· 124 135 port = cfg.port; 125 136 klippy_uds_address = cfg.klipperSocket; 126 137 }; 138 + machine = { 139 + validate_service = false; 140 + }; 141 + } // (lib.optionalAttrs (cfg.configDir != null) { 127 142 file_manager = { 128 143 config_path = cfg.configDir; 129 144 }; 130 - database = { 131 - database_path = "${cfg.stateDir}/database"; 132 - }; 133 - }; 145 + }); 134 146 fullConfig = recursiveUpdate cfg.settings forcedConfig; 135 147 in format.generate "moonraker.cfg" fullConfig; 136 148 137 149 systemd.tmpfiles.rules = [ 138 150 "d '${cfg.stateDir}' - ${cfg.user} ${cfg.group} - -" 139 - "d '${cfg.configDir}' - ${cfg.user} ${cfg.group} - -" 140 - ]; 151 + ] ++ lib.optional (cfg.configDir != null) "d '${cfg.configDir}' - ${cfg.user} ${cfg.group} - -"; 141 152 142 153 systemd.services.moonraker = { 143 154 description = "Moonraker, an API web server for Klipper"; ··· 147 158 148 159 # Moonraker really wants its own config to be writable... 149 160 script = '' 150 - cp /etc/moonraker.cfg ${cfg.configDir}/moonraker-temp.cfg 151 - chmod u+w ${cfg.configDir}/moonraker-temp.cfg 152 - exec ${pkg}/bin/moonraker -c ${cfg.configDir}/moonraker-temp.cfg 161 + config_path=${ 162 + # Deprecated separate config dir 163 + if cfg.configDir != null then "${cfg.configDir}/moonraker-temp.cfg" 164 + # Config in unified data path 165 + else "${unifiedConfigDir}/moonraker-temp.cfg" 166 + } 167 + mkdir -p $(dirname "$config_path") 168 + cp /etc/moonraker.cfg "$config_path" 169 + chmod u+w "$config_path" 170 + exec ${pkg}/bin/moonraker -d ${cfg.stateDir} -c "$config_path" 153 171 ''; 154 172 155 173 # Needs `ip` command ··· 184 202 meta.maintainers = with maintainers; [ 185 203 cab404 186 204 vtuan10 205 + zhaofengli 187 206 ]; 188 207 }
+3 -3
pkgs/servers/moonraker/default.nix
··· 20 20 ]); 21 21 in stdenvNoCC.mkDerivation rec { 22 22 pname = "moonraker"; 23 - version = "unstable-2022-04-23"; 23 + version = "unstable-2022-11-18"; 24 24 25 25 src = fetchFromGitHub { 26 26 owner = "Arksine"; 27 27 repo = "moonraker"; 28 - rev = "cd520ba91728abb5a3d959269fbd8e4f40d1eb0b"; 29 - sha256 = "sha256-sopX9t+LjYldx+syKwU3I0x/VYy4hLyXfitG0uumayE="; 28 + rev = "362bc1a3d3ad397416f7fc48b8efe33837428b90"; 29 + sha256 = "sha256-cebRHOx2hg470jM1CoQAk13Whv+KN2qx97BTlpjxSZg="; 30 30 }; 31 31 32 32 nativeBuildInputs = [ makeWrapper ];