tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
0
fork
atom
lol
0
fork
atom
overview
issues
pulls
pipelines
softether module: fix dataDir option
gnidorah
8 years ago
fbeb3299
f1dfc221
+22
-23
4 changed files
expand all
collapse all
unified
split
nixos
modules
services
networking
softether.nix
pkgs
servers
softether
4.18.nix
4.20.nix
4.25.nix
+16
-17
nixos/modules/services/networking/softether.nix
···
5
let
6
cfg = config.services.softether;
7
0
0
8
in
9
{
10
···
49
50
dataDir = mkOption {
51
type = types.string;
52
-
default = "${cfg.package.dataDir}";
53
description = ''
54
Data directory for SoftEther VPN.
55
'';
···
64
config = mkIf cfg.enable (
65
66
mkMerge [{
67
-
environment.systemPackages = [
68
-
(pkgs.lib.overrideDerivation cfg.package (attrs: {
69
-
dataDir = cfg.dataDir;
70
-
}))
71
-
];
72
systemd.services."softether-init" = {
73
description = "SoftEther VPN services initial task";
74
wantedBy = [ "network.target" ];
···
80
for d in vpnserver vpnbridge vpnclient vpncmd; do
81
if ! test -e ${cfg.dataDir}/$d; then
82
${pkgs.coreutils}/bin/mkdir -m0700 -p ${cfg.dataDir}/$d
83
-
install -m0600 ${cfg.package}${cfg.dataDir}/$d/hamcore.se2 ${cfg.dataDir}/$d/hamcore.se2
84
fi
85
done
86
rm -rf ${cfg.dataDir}/vpncmd/vpncmd
87
-
ln -s ${cfg.package}${cfg.dataDir}/vpncmd/vpncmd ${cfg.dataDir}/vpncmd/vpncmd
88
'';
89
};
90
}
···
97
wantedBy = [ "network.target" ];
98
serviceConfig = {
99
Type = "forking";
100
-
ExecStart = "${cfg.package}/bin/vpnserver start";
101
-
ExecStop = "${cfg.package}/bin/vpnserver stop";
102
};
103
preStart = ''
104
rm -rf ${cfg.dataDir}/vpnserver/vpnserver
105
-
ln -s ${cfg.package}${cfg.dataDir}/vpnserver/vpnserver ${cfg.dataDir}/vpnserver/vpnserver
106
'';
107
postStop = ''
108
rm -rf ${cfg.dataDir}/vpnserver/vpnserver
···
118
wantedBy = [ "network.target" ];
119
serviceConfig = {
120
Type = "forking";
121
-
ExecStart = "${cfg.package}/bin/vpnbridge start";
122
-
ExecStop = "${cfg.package}/bin/vpnbridge stop";
123
};
124
preStart = ''
125
rm -rf ${cfg.dataDir}/vpnbridge/vpnbridge
126
-
ln -s ${cfg.package}${cfg.dataDir}/vpnbridge/vpnbridge ${cfg.dataDir}/vpnbridge/vpnbridge
127
'';
128
postStop = ''
129
rm -rf ${cfg.dataDir}/vpnbridge/vpnbridge
···
139
wantedBy = [ "network.target" ];
140
serviceConfig = {
141
Type = "forking";
142
-
ExecStart = "${cfg.package}/bin/vpnclient start";
143
-
ExecStop = "${cfg.package}/bin/vpnclient stop";
144
};
145
preStart = ''
146
rm -rf ${cfg.dataDir}/vpnclient/vpnclient
147
-
ln -s ${cfg.package}${cfg.dataDir}/vpnclient/vpnclient ${cfg.dataDir}/vpnclient/vpnclient
148
'';
149
postStart = ''
150
sleep 1
···
5
let
6
cfg = config.services.softether;
7
8
+
package = cfg.package.override { dataDir = cfg.dataDir; };
9
+
10
in
11
{
12
···
51
52
dataDir = mkOption {
53
type = types.string;
54
+
default = "/var/lib/softether";
55
description = ''
56
Data directory for SoftEther VPN.
57
'';
···
66
config = mkIf cfg.enable (
67
68
mkMerge [{
69
+
environment.systemPackages = [ package ];
70
+
0
0
0
71
systemd.services."softether-init" = {
72
description = "SoftEther VPN services initial task";
73
wantedBy = [ "network.target" ];
···
79
for d in vpnserver vpnbridge vpnclient vpncmd; do
80
if ! test -e ${cfg.dataDir}/$d; then
81
${pkgs.coreutils}/bin/mkdir -m0700 -p ${cfg.dataDir}/$d
82
+
install -m0600 ${package}${cfg.dataDir}/$d/hamcore.se2 ${cfg.dataDir}/$d/hamcore.se2
83
fi
84
done
85
rm -rf ${cfg.dataDir}/vpncmd/vpncmd
86
+
ln -s ${package}${cfg.dataDir}/vpncmd/vpncmd ${cfg.dataDir}/vpncmd/vpncmd
87
'';
88
};
89
}
···
96
wantedBy = [ "network.target" ];
97
serviceConfig = {
98
Type = "forking";
99
+
ExecStart = "${package}/bin/vpnserver start";
100
+
ExecStop = "${package}/bin/vpnserver stop";
101
};
102
preStart = ''
103
rm -rf ${cfg.dataDir}/vpnserver/vpnserver
104
+
ln -s ${package}${cfg.dataDir}/vpnserver/vpnserver ${cfg.dataDir}/vpnserver/vpnserver
105
'';
106
postStop = ''
107
rm -rf ${cfg.dataDir}/vpnserver/vpnserver
···
117
wantedBy = [ "network.target" ];
118
serviceConfig = {
119
Type = "forking";
120
+
ExecStart = "${package}/bin/vpnbridge start";
121
+
ExecStop = "${package}/bin/vpnbridge stop";
122
};
123
preStart = ''
124
rm -rf ${cfg.dataDir}/vpnbridge/vpnbridge
125
+
ln -s ${package}${cfg.dataDir}/vpnbridge/vpnbridge ${cfg.dataDir}/vpnbridge/vpnbridge
126
'';
127
postStop = ''
128
rm -rf ${cfg.dataDir}/vpnbridge/vpnbridge
···
138
wantedBy = [ "network.target" ];
139
serviceConfig = {
140
Type = "forking";
141
+
ExecStart = "${package}/bin/vpnclient start";
142
+
ExecStop = "${package}/bin/vpnclient stop";
143
};
144
preStart = ''
145
rm -rf ${cfg.dataDir}/vpnclient/vpnclient
146
+
ln -s ${package}${cfg.dataDir}/vpnclient/vpnclient ${cfg.dataDir}/vpnclient/vpnclient
147
'';
148
postStart = ''
149
sleep 1
+2
-2
pkgs/servers/softether/4.18.nix
···
1
{ stdenv, fetchurl
2
-
, openssl, readline, ncurses, zlib }:
0
3
4
let
5
os = if stdenv.isLinux then "1"
···
17
version = "4.18";
18
build = "9570";
19
compiledDate = "2015.07.26";
20
-
dataDir = "/var/lib/softether";
21
22
src = fetchurl {
23
url = "http://www.softether-download.com/files/softether/v${version}-${build}-rtm-${compiledDate}-tree/Source_Code/softether-src-v${version}-${build}-rtm.tar.gz";
···
1
{ stdenv, fetchurl
2
+
, openssl, readline, ncurses, zlib
3
+
, dataDir ? "/var/lib/softether" }:
4
5
let
6
os = if stdenv.isLinux then "1"
···
18
version = "4.18";
19
build = "9570";
20
compiledDate = "2015.07.26";
0
21
22
src = fetchurl {
23
url = "http://www.softether-download.com/files/softether/v${version}-${build}-rtm-${compiledDate}-tree/Source_Code/softether-src-v${version}-${build}-rtm.tar.gz";
+2
-2
pkgs/servers/softether/4.20.nix
···
1
{ stdenv, fetchurl
2
-
, openssl, readline, ncurses, zlib }:
0
3
4
let
5
os = if stdenv.isLinux then "1"
···
17
version = "4.20";
18
build = "9608";
19
compiledDate = "2016.04.17";
20
-
dataDir = "/var/lib/softether";
21
22
src = fetchurl {
23
url = "http://www.softether-download.com/files/softether/v${version}-${build}-rtm-${compiledDate}-tree/Source_Code/softether-src-v${version}-${build}-rtm.tar.gz";
···
1
{ stdenv, fetchurl
2
+
, openssl, readline, ncurses, zlib
3
+
, dataDir ? "/var/lib/softether" }:
4
5
let
6
os = if stdenv.isLinux then "1"
···
18
version = "4.20";
19
build = "9608";
20
compiledDate = "2016.04.17";
0
21
22
src = fetchurl {
23
url = "http://www.softether-download.com/files/softether/v${version}-${build}-rtm-${compiledDate}-tree/Source_Code/softether-src-v${version}-${build}-rtm.tar.gz";
+2
-2
pkgs/servers/softether/4.25.nix
···
1
{ stdenv, fetchurl
2
-
, openssl, readline, ncurses, zlib }:
0
3
4
let
5
os = if stdenv.isLinux then "1"
···
17
version = "4.25";
18
build = "9656";
19
compiledDate = "2018.01.15";
20
-
dataDir = "/var/lib/softether";
21
22
src = fetchurl {
23
url = "http://www.softether-download.com/files/softether/v${version}-${build}-rtm-${compiledDate}-tree/Source_Code/softether-src-v${version}-${build}-rtm.tar.gz";
···
1
{ stdenv, fetchurl
2
+
, openssl, readline, ncurses, zlib
3
+
, dataDir ? "/var/lib/softether" }:
4
5
let
6
os = if stdenv.isLinux then "1"
···
18
version = "4.25";
19
build = "9656";
20
compiledDate = "2018.01.15";
0
21
22
src = fetchurl {
23
url = "http://www.softether-download.com/files/softether/v${version}-${build}-rtm-${compiledDate}-tree/Source_Code/softether-src-v${version}-${build}-rtm.tar.gz";