about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorOrivej Desh <orivej@gmx.fr>2017-10-05 08:26:23 +0000
committerGitHub <noreply@github.com>2017-10-05 08:26:23 +0000
commit184f80aeb8c70f21f82b89eafc789e8a91504a8d (patch)
tree5f2547e1200f39a4d7c1bc141c8284bce083f2f5 /nixos
parent7c3f185a7f8bdfa9f1ba86d909aebd304ece6164 (diff)
parent7e4e2667ae95b19ae5982c33c498a100349daccd (diff)
downloadnixlib-184f80aeb8c70f21f82b89eafc789e8a91504a8d.tar
nixlib-184f80aeb8c70f21f82b89eafc789e8a91504a8d.tar.gz
nixlib-184f80aeb8c70f21f82b89eafc789e8a91504a8d.tar.bz2
nixlib-184f80aeb8c70f21f82b89eafc789e8a91504a8d.tar.lz
nixlib-184f80aeb8c70f21f82b89eafc789e8a91504a8d.tar.xz
nixlib-184f80aeb8c70f21f82b89eafc789e8a91504a8d.tar.zst
nixlib-184f80aeb8c70f21f82b89eafc789e8a91504a8d.zip
Merge pull request #29781 from rick68/softether
softether: 4.18 -> 4.20
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/networking/softether.nix55
1 files changed, 32 insertions, 23 deletions
diff --git a/nixos/modules/services/networking/softether.nix b/nixos/modules/services/networking/softether.nix
index 16530078b978..9087b75c29c1 100644
--- a/nixos/modules/services/networking/softether.nix
+++ b/nixos/modules/services/networking/softether.nix
@@ -3,7 +3,6 @@
 with lib;
 
 let
-  pkg = pkgs.softether;
   cfg = config.services.softether;
 
 in
@@ -17,6 +16,15 @@ in
 
       enable = mkEnableOption "SoftEther VPN services";
 
+      package = mkOption {
+        type = types.package;
+        default = pkgs.softether;
+        defaultText = "pkgs.softether";
+        description = ''
+          softether derivation to use.
+        '';
+      };
+
       vpnserver.enable = mkEnableOption "SoftEther VPN Server";
 
       vpnbridge.enable = mkEnableOption "SoftEther VPN Bridge";
@@ -41,7 +49,7 @@ in
 
       dataDir = mkOption {
         type = types.string;
-        default = "${pkg.dataDir}";
+        default = "${cfg.package.dataDir}";
         description = ''
           Data directory for SoftEther VPN.
         '';
@@ -57,12 +65,13 @@ in
 
     mkMerge [{
       environment.systemPackages = [
-          (pkgs.lib.overrideDerivation pkg (attrs: {
+          (pkgs.lib.overrideDerivation cfg.package (attrs: {
             dataDir = cfg.dataDir;
           }))
         ];
       systemd.services."softether-init" = {
         description = "SoftEther VPN services initial task";
+        wantedBy = [ "network.target" ];
         serviceConfig = {
           Type = "oneshot";
           RemainAfterExit = false;
@@ -71,11 +80,11 @@ in
             for d in vpnserver vpnbridge vpnclient vpncmd; do
                 if ! test -e ${cfg.dataDir}/$d; then
                     ${pkgs.coreutils}/bin/mkdir -m0700 -p ${cfg.dataDir}/$d
-                    install -m0600 ${pkg}${cfg.dataDir}/$d/hamcore.se2 ${cfg.dataDir}/$d/hamcore.se2
+                    install -m0600 ${cfg.package}${cfg.dataDir}/$d/hamcore.se2 ${cfg.dataDir}/$d/hamcore.se2
                 fi
             done
             rm -rf ${cfg.dataDir}/vpncmd/vpncmd
-            ln -s ${pkg}${cfg.dataDir}/vpncmd/vpncmd ${cfg.dataDir}/vpncmd/vpncmd
+            ln -s ${cfg.package}${cfg.dataDir}/vpncmd/vpncmd ${cfg.dataDir}/vpncmd/vpncmd
         '';
       };
     }
@@ -83,17 +92,17 @@ in
     (mkIf (cfg.vpnserver.enable) {
       systemd.services.vpnserver = {
         description = "SoftEther VPN Server";
-        after = [ "softether-init.service" "network.target" ];
-        wants = [ "softether-init.service" ];
-        wantedBy = [ "multi-user.target" ];
+        after = [ "softether-init.service" ];
+        requires = [ "softether-init.service" ];
+        wantedBy = [ "network.target" ];
         serviceConfig = {
           Type = "forking";
-          ExecStart = "${pkg}/bin/vpnserver start";
-          ExecStop = "${pkg}/bin/vpnserver stop";
+          ExecStart = "${cfg.package}/bin/vpnserver start";
+          ExecStop = "${cfg.package}/bin/vpnserver stop";
         };
         preStart = ''
             rm -rf ${cfg.dataDir}/vpnserver/vpnserver
-            ln -s ${pkg}${cfg.dataDir}/vpnserver/vpnserver ${cfg.dataDir}/vpnserver/vpnserver
+            ln -s ${cfg.package}${cfg.dataDir}/vpnserver/vpnserver ${cfg.dataDir}/vpnserver/vpnserver
         '';
         postStop = ''
             rm -rf ${cfg.dataDir}/vpnserver/vpnserver
@@ -104,17 +113,17 @@ in
     (mkIf (cfg.vpnbridge.enable) {
       systemd.services.vpnbridge = {
         description = "SoftEther VPN Bridge";
-        after = [ "softether-init.service" "network.target" ];
-        wants = [ "softether-init.service" ];
-        wantedBy = [ "multi-user.target" ];
+        after = [ "softether-init.service" ];
+        requires = [ "softether-init.service" ];
+        wantedBy = [ "network.target" ];
         serviceConfig = {
           Type = "forking";
-          ExecStart = "${pkg}/bin/vpnbridge start";
-          ExecStop = "${pkg}/bin/vpnbridge stop";
+          ExecStart = "${cfg.package}/bin/vpnbridge start";
+          ExecStop = "${cfg.package}/bin/vpnbridge stop";
         };
         preStart = ''
             rm -rf ${cfg.dataDir}/vpnbridge/vpnbridge
-            ln -s ${pkg}${cfg.dataDir}/vpnbridge/vpnbridge ${cfg.dataDir}/vpnbridge/vpnbridge
+            ln -s ${cfg.package}${cfg.dataDir}/vpnbridge/vpnbridge ${cfg.dataDir}/vpnbridge/vpnbridge
         '';
         postStop = ''
             rm -rf ${cfg.dataDir}/vpnbridge/vpnbridge
@@ -125,17 +134,17 @@ in
     (mkIf (cfg.vpnclient.enable) {
       systemd.services.vpnclient = {
         description = "SoftEther VPN Client";
-        after = [ "softether-init.service" "network.target" ];
-        wants = [ "softether-init.service" ];
-        wantedBy = [ "multi-user.target" ];
+        after = [ "softether-init.service" ];
+        requires = [ "softether-init.service" ];
+        wantedBy = [ "network.target" ];
         serviceConfig = {
           Type = "forking";
-          ExecStart = "${pkg}/bin/vpnclient start";
-          ExecStop = "${pkg}/bin/vpnclient stop";
+          ExecStart = "${cfg.package}/bin/vpnclient start";
+          ExecStop = "${cfg.package}/bin/vpnclient stop";
         };
         preStart = ''
             rm -rf ${cfg.dataDir}/vpnclient/vpnclient
-            ln -s ${pkg}${cfg.dataDir}/vpnclient/vpnclient ${cfg.dataDir}/vpnclient/vpnclient
+            ln -s ${cfg.package}${cfg.dataDir}/vpnclient/vpnclient ${cfg.dataDir}/vpnclient/vpnclient
         '';
         postStart = ''
             sleep 1