Before this change, setting services.syncthing.enable to true would
enable Syncthing, but it wouldn’t add Syncthing’s man page to your
system. This change ensures that the man page is available.
I tested this change using this Nix expression:
let
nixpkgsRepo = /path/to/nixpkgs/repo;
pkgs = import nixpkgsRepo { };
in pkgs.testers.runNixOSTest {
name = "syncthing-man-page-test";
nodes.machine = {
services.syncthing.enable = true;
};
testScript = ''
start_all()
machine.succeed("man syncthing > log.txt")
machine.copy_from_vm("log.txt", ".")
'';
}
Before this change, the syncthing module used two potentially different
packages for Syncthing. Sometimes, it would use cfg.package and
sometimes it would use pkgs.syncthing. This change makes the syncthing
module more consistent by making it always use cfg.package.
The reference to pkgs.syncthing was added in
1026bebee6. I looked through that commit
message and the thread for the pull request that it came from [1], and I
couldn’t find anything that explained why pkgs.syncthing was used over
cfg.package. I’m guessing that using pkgs.syncthing over cfg.package was
a mistake, but I’m not sure.
[1]: <https://github.com/NixOS/nixpkgs/pull/18973>
It is unclear where this list originated, but it doesn't make sense to
ship it with all networkmanager installations. The most excessive plugin
is openconnect, that ships a 250 MB closure including webkitgtk.
Instead users now have to specify the plugins they want explicitly. I
updated the option to give hints on how to find them as best as I can.
There is no point in having a special option to enable strongswan, when
we can just parse the intent from the plugin list instead.
Also pick up relevant runtime dependency information from the plugin
package instead of providing additional options or hardcoding them.