lol

Merge pull request #33372 from Mic92/memcache

nixos/memcached: make unix sockets usuable

authored by

Jörg Thalheim and committed by
GitHub
f29ecd56 0f925943

+38 -25
+8
nixos/doc/manual/release-notes/rl-1803.xml
··· 131 Other types dependencies should be unaffected. 132 </para> 133 </listitem> 134 </itemizedlist> 135 136 </section>
··· 131 Other types dependencies should be unaffected. 132 </para> 133 </listitem> 134 + <listitem> 135 + <para> 136 + The <literal>memcached</literal> service no longer accept dynamic socket 137 + paths via <option>services.memcached.socket</option>. Unix sockets can be 138 + still enabled by <option>services.memcached.enableUnixSocket</option> and 139 + will be accessible at <literal>/run/memcached/memcached.sock</literal>. 140 + </para> 141 + </listitem> 142 </itemizedlist> 143 144 </section>
+2 -2
nixos/modules/misc/ids.nix
··· 197 #input = 174; # unused 198 sddm = 175; 199 tss = 176; 200 - memcached = 177; 201 ntp = 179; 202 zabbix = 180; 203 #redis = 181; removed 2018-01-03 ··· 475 input = 174; 476 sddm = 175; 477 tss = 176; 478 - #memcached = 177; # unused 479 #ntp = 179; # unused 480 #zabbix = 180; # unused 481 #redis = 181; # unused, removed 2018-01-03
··· 197 #input = 174; # unused 198 sddm = 175; 199 tss = 176; 200 + #memcached = 177; removed 2018-01-03 201 ntp = 179; 202 zabbix = 180; 203 #redis = 181; removed 2018-01-03 ··· 475 input = 174; 476 sddm = 175; 477 tss = 176; 478 + #memcached = 177; # unused, removed 2018-01-03 479 #ntp = 179; # unused 480 #zabbix = 180; # unused 481 #redis = 181; # unused, removed 2018-01-03
+28 -23
nixos/modules/services/databases/memcached.nix
··· 40 description = "The port to bind to"; 41 }; 42 43 - socket = mkOption { 44 - default = ""; 45 - description = "Unix socket path to listen on. Setting this will disable network support"; 46 - example = "/var/run/memcached"; 47 - }; 48 49 maxMemory = mkOption { 50 default = 64; ··· 68 69 config = mkIf config.services.memcached.enable { 70 71 - users.extraUsers.memcached = 72 - { name = cfg.user; 73 - uid = config.ids.uids.memcached; 74 - description = "Memcached server user"; 75 - }; 76 77 environment.systemPackages = [ memcached ]; 78 79 - systemd.services.memcached = 80 - { description = "Memcached server"; 81 82 - wantedBy = [ "multi-user.target" ]; 83 - after = [ "network.target" ]; 84 85 - serviceConfig = { 86 - ExecStart = 87 - let 88 - networking = if cfg.socket != "" 89 - then "-s ${cfg.socket}" 90 - else "-l ${cfg.listen} -p ${toString cfg.port}"; 91 - in "${memcached}/bin/memcached ${networking} -m ${toString cfg.maxMemory} -c ${toString cfg.maxConnections} ${concatStringsSep " " cfg.extraOptions}"; 92 93 - User = cfg.user; 94 - }; 95 }; 96 }; 97 98 }
··· 40 description = "The port to bind to"; 41 }; 42 43 + enableUnixSocket = mkEnableOption "unix socket at /run/memcached/memcached.sock"; 44 45 maxMemory = mkOption { 46 default = 64; ··· 64 65 config = mkIf config.services.memcached.enable { 66 67 + users.extraUsers = optional (cfg.user == "memcached") { 68 + name = "memcached"; 69 + description = "Memcached server user"; 70 + }; 71 72 environment.systemPackages = [ memcached ]; 73 74 + systemd.services.memcached = { 75 + description = "Memcached server"; 76 77 + wantedBy = [ "multi-user.target" ]; 78 + after = [ "network.target" ]; 79 80 + serviceConfig = { 81 + PermissionsStartOnly = true; 82 + ExecStartPre = optionals cfg.enableUnixSocket [ 83 + "${pkgs.coreutils}/bin/install -d -o ${cfg.user} /run/memcached/" 84 + "${pkgs.coreutils}/bin/chown -R ${cfg.user} /run/memcached/" 85 + ]; 86 + ExecStart = 87 + let 88 + networking = if cfg.enableUnixSocket 89 + then "-s /run/memcached/memcached.sock" 90 + else "-l ${cfg.listen} -p ${toString cfg.port}"; 91 + in "${memcached}/bin/memcached ${networking} -m ${toString cfg.maxMemory} -c ${toString cfg.maxConnections} ${concatStringsSep " " cfg.extraOptions}"; 92 93 + User = cfg.user; 94 }; 95 + }; 96 }; 97 + imports = [ 98 + (mkRemovedOptionModule ["services" "memcached" "socket"] '' 99 + This option was replaced by a fixed unix socket path at /run/memcached/memcached.sock enabled using services.memached.enableUnixSocket. 100 + '') 101 + ]; 102 103 }