Change:
I set up a brand new NixOS system with nothing but . After switching to the new configuration, I ran and was surprised to find in there in a and state. I poked around and it turns out that our module refers to in its section: It sort of makes sense, because presumably you want your webserver to spin up after your database, but it feels kinda icky to give completely unrelated (in principle) services dependencies on one another, especially when some of them might not even be on your system. I suppose we could make that entry conditional on , but I'm not sure what the pros and cons of that are.
Yes, I'd think it would better be conditional. Units should get reloaded on system switch IIRC, before starting new services, so I see no danger in that.
I think, this link should be broken unconditionally. In my scenario apache-httpd is used solely for SVN web interface, and while I have running Postgresql instance, they are orthogonal (postgresql is acompanied by tomcat container/nginx pair)
Perhaps, yeah. It also appears to depend on , which I think is a nixops-ism.

Discussion:
</listitem> <listitem> <para> <del> Several of the apache subservices have been replaced with full NixOS modules including LimeSurvey, WordPress, and Zabbix. These modules can be enabled using the <option>services.limesurvey.enable</option>, </del> <ins> The httpd service no longer attempts to start the postgresql service. If you have come to depend on this behaviour then you can preserve the behavior with the following configuration: <literal>systemd.services.httpd.after = [ "postgresql.service" ];</literal> </para> <para> The option <option>services.httpd.extraSubservices</option> has been marked as deprecated. You may still use this feature, but it will be removed in a future release of NixOS. You are encouraged to convert any httpd subservices you may have written to a full NixOS module. </para> <para> Most of the httpd subservices packaged with NixOS have been replaced with full NixOS modules including LimeSurvey, WordPress, and Zabbix. These modules can be enabled using the <option>services.limesurvey.enable</option>, </ins> <option>services.wordpress.enable</option>, and <option>services.zabbixWeb.enable</option> options. </para> </listitem>

else [{ip = "*"; port = 80;}]; getListen = cfg: <del> let list = (lib.optional (cfg.port != 0) {ip = "*"; port = cfg.port;}) ++ cfg.listen; in if list == [] then defaultListen cfg else list; </del> <ins> if cfg.listen == [] then defaultListen cfg else cfg.listen; </ins> listenToString = l: "${l.ip}:${toString l.port}";

message = "SSL is enabled for httpd, but sslServerCert and/or sslServerKey haven't been specified."; } ]; <del> warnings = map (cfg: ''apache-httpd's port option is deprecated. Use listen = [{/*ip = "*"; */ port = ${toString cfg.port};}]; instead'' ) (lib.filter (cfg: cfg.port != 0) allHosts); </del> <ins> warnings = map (cfg: "apache-httpd's extraSubservices option is deprecated. Most existing subservices have been ported to the NixOS module system. Please update your configuration accordingly.") (lib.filter (cfg: cfg.extraSubservices != []) allHosts); </ins> users.users = optionalAttrs (mainCfg.user == "wwwrun") (singleton { name = "wwwrun";

wantedBy = [ "multi-user.target" ]; wants = [ "keys.target" ]; <del> after = [ "network.target" "fs.target" "postgresql.service" "keys.target" ]; </del> <ins> after = [ "network.target" "fs.target" "keys.target" ]; </ins> path = [ httpd pkgs.coreutils pkgs.gnugrep ]

''; }; <del> port = mkOption { type = types.int; default = 0; description = '' Port for the server. Option will be removed, use <option>listen</option> instead. ''; }; </del> listen = mkOption { type = types.listOf (types.submodule ( {