Loading
nixos/pgbouncer: rework RFC42 integration
Commit bfb9d182 added RFC42 support which is a good thing in general, but this implementation has the following flaws: * `services.pgbouncer.logFile` was not renamed to `[...].log_file`, but to `[...].logfile`. Also the use of `mkRenamedOptionModule` is inappropriate here because the two options are not equivalent: the old option took a path relative to the home directory, the new an absolute path. * Using `mkRenamedOptionModule` with options that don't exist (but are keys in a freeform attr-set or an `attrsOf X`), you get the following error when referencing an option you didn't declare: error: evaluation aborted with the following error message: 'Renaming error: option `services.pgbouncer.settings.pgbouncer.listen_port' does not exist.' This error is pretty bad because it's not actionable for an end-user of the module. A possible use-case is doing networking.firewall.allowedTCPPorts = [ config.services.pgbouncer.listenPort ]; without specifying a custom listen port. This is an example of why you want to keep options, they already contain defaults and you can re-use those defaults in other parts of your system configuration. I decided to re-add a bunch of options where I figured that it's either useful to be able to address those in the NixOS configuration or having documentation directly in the options' reference in the NixOS manual. I didn't add all options, I'll leave that to the maintainers of pgbouncer.