summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorWei-Ming Yang <rick68@gmail.com>2017-09-26 03:03:16 +0800
committerWei-Ming Yang <rick68@gmail.com>2017-10-03 01:35:20 +0800
commit7e4e2667ae95b19ae5982c33c498a100349daccd (patch)
treee2d9303800314c9ccf21f3739bd1bb02c9e987d2 /nixos
parent1ff1c6ac4a4c8bc7f237bc14d5ff2ca336f3f610 (diff)
downloadnixlib-7e4e2667ae95b19ae5982c33c498a100349daccd.tar
nixlib-7e4e2667ae95b19ae5982c33c498a100349daccd.tar.gz
nixlib-7e4e2667ae95b19ae5982c33c498a100349daccd.tar.bz2
nixlib-7e4e2667ae95b19ae5982c33c498a100349daccd.tar.lz
nixlib-7e4e2667ae95b19ae5982c33c498a100349daccd.tar.xz
nixlib-7e4e2667ae95b19ae5982c33c498a100349daccd.tar.zst
nixlib-7e4e2667ae95b19ae5982c33c498a100349daccd.zip
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