Commit 6aa6a84d authored by Bernd Kuhls's avatar Bernd Kuhls Committed by Thomas Petazzoni
Browse files

package/softether: New package

Package description was copied from
https://launchpad.net/~dajhorn/+archive/ubuntu/softether/



[Thomas:
 - reorganize patches by pulling the two biggest patches from Github,
   and only having the remaining patches in Buildroot.
 - use a full destination path when installing hamcorebuilder in
   $(HOST_DIR)/usr/bin.
 - minor reformatting.]

Signed-off-by: default avatarBernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent 063ff25f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1203,6 +1203,7 @@ endif
	source "package/smcroute/Config.in"
	source "package/socat/Config.in"
	source "package/socketcand/Config.in"
	source "package/softether/Config.in"
	source "package/spawn-fcgi/Config.in"
	source "package/spice/Config.in"
	source "package/spice-protocol/Config.in"
+318 −0
Original line number Diff line number Diff line
From b9420c3bfc2a8b9d35d0c8e5f6849007c2bc21fa Mon Sep 17 00:00:00 2001
From: Darik Horn <dajhorn@vanadac.com>
Date: Mon, 14 Apr 2014 13:22:24 -0400
Subject: [PATCH] Use FHS installation directories.

Install to `/usr/sbin`, `/usr/lib`, and `/var/lib` according to the Linux
filesystem hierarchy standard if SoftEther is built through autotools.

In a managed installation, the FHS stipulates that the application must
accomodate a read-only installation path.  This requires a new `GetStateDir`
function that substitues `GetExeDir` in some parts of the code.

Taken from Github at
https://github.com/dajhorn/SoftEtherVPN/commit/b9420c3bfc2a8b9d35d0c8e5f6849007c2bc21fa.

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 autotools/softether.am      |  1 +
 src/Cedar/Admin.c           |  2 +-
 src/Cedar/Command.c         |  6 +++++-
 src/Cedar/Logging.c         |  2 +-
 src/Cedar/Server.c          |  4 ++--
 src/Mayaqua/Encrypt.c       |  2 +-
 src/Mayaqua/FileIO.c        | 39 ++++++++++++++++++++++++++++++++++++---
 src/Mayaqua/FileIO.h        |  2 ++
 src/Mayaqua/Mayaqua.c       |  4 ++++
 src/Mayaqua/Table.c         |  6 +++++-
 src/Mayaqua/Unix.c          |  6 +++---
 src/bin/hamcore/Makefile.am |  8 ++++++--
 12 files changed, 67 insertions(+), 15 deletions(-)

Index: b/autotools/softether.am
===================================================================
--- a/autotools/softether.am
+++ b/autotools/softether.am
@@ -27,6 +27,7 @@
 	-I$(top_srcdir)/src \
 	-I$(top_srcdir)/src/Mayaqua \
 	-I$(top_srcdir)/src/Cedar \
+	-DSTATE_DIR='"@localstatedir@/lib/softether"' \
 	-DUNIX \
 	-DUNIX_LINUX \
 	-D_REENTRANT \
Index: b/src/Cedar/Admin.c
===================================================================
--- a/src/Cedar/Admin.c
+++ b/src/Cedar/Admin.c
@@ -10334,7 +10334,7 @@
 
 	Zero(t, sizeof(RPC_READ_LOG_FILE));
 
-	GetExeDir(exe_dir, sizeof(exe_dir));
+	GetStateDir(exe_dir, sizeof(exe_dir));
 	Format(full_path, sizeof(full_path), "%s/%s", exe_dir, filepath);
 
 	// Read file
Index: b/src/Cedar/Command.c
===================================================================
--- a/src/Cedar/Command.c
+++ b/src/Cedar/Command.c
@@ -527,7 +527,7 @@
 	UINT i;
 
 	GetExeName(exe, sizeof(exe));
-	GetExeDir(exe_dir, sizeof(exe_dir));
+	GetStateDir(exe_dir, sizeof(exe_dir));
 
 	ok = false;
 	dirs = EnumDir(exe_dir);
@@ -552,7 +552,11 @@
 		UCHAR *buf;
 		IO *io;
 #ifndef	OS_WIN32
+#ifdef STATE_DIR
+		wchar_t *filename = L"" STATE_DIR L"/vpn_checker_tmp";
+#else
 		wchar_t *filename = L"/tmp/vpn_checker_tmp";
+#endif
 #else	// OS_WIN32
 		wchar_t filename[MAX_PATH];
 		CombinePathW(filename, sizeof(filename), MsGetMyTempDirW(), L"vpn_checker_tmp");
Index: b/src/Cedar/Logging.c
===================================================================
--- a/src/Cedar/Logging.c
+++ b/src/Cedar/Logging.c
@@ -508,7 +508,7 @@
 
 	e = ZeroMalloc(sizeof(ERASER));
 
-	GetExeDir(dir, sizeof(dir));
+	GetStateDir(dir, sizeof(dir));
 
 	e->Log = log;
 	e->MinFreeSpace = min_size;
Index: b/src/Cedar/Server.c
===================================================================
--- a/src/Cedar/Server.c
+++ b/src/Cedar/Server.c
@@ -1060,7 +1060,7 @@
 		hubname = NULL;
 	}
 
-	GetExeDir(exe_dir, sizeof(exe_dir));
+	GetStateDir(exe_dir, sizeof(exe_dir));
 
 	// Enumerate in the server_log
 	if (hubname == NULL)
@@ -1134,7 +1134,7 @@
 		return;
 	}
 
-	GetExeDir(exe_dir, sizeof(exe_dir));
+	GetStateDir(exe_dir, sizeof(exe_dir));
 	Format(dir_full_path, sizeof(dir_full_path), "%s/%s", exe_dir, dirname);
 
 	dir = EnumDir(dir_full_path);
Index: b/src/Mayaqua/Encrypt.c
===================================================================
--- a/src/Mayaqua/Encrypt.c
+++ b/src/Mayaqua/Encrypt.c
@@ -579,7 +579,7 @@
 		return false;
 	}
 
-	GetExeDir(dirname, sizeof(dirname));
+	GetStateDir(dirname, sizeof(dirname));
 
 	// Search the CRL file
 	t = EnumDir(dirname);
Index: b/src/Mayaqua/FileIO.c
===================================================================
--- a/src/Mayaqua/FileIO.c
+++ b/src/Mayaqua/FileIO.c
@@ -122,8 +122,14 @@
 #include <errno.h>
 #include <Mayaqua/Mayaqua.h>
 
+#ifdef STATE_DIR
+static char exe_file_name[MAX_SIZE] = STATE_DIR "/a.out";
+static wchar_t exe_file_name_w[MAX_SIZE] = L"" STATE_DIR L"/a.out";
+#else
 static char exe_file_name[MAX_SIZE] = "/tmp/a.out";
 static wchar_t exe_file_name_w[MAX_SIZE] = L"/tmp/a.out";
+#endif
+
 static LIST *hamcore = NULL;
 static IO *hamcore_io = NULL;
 
@@ -1038,7 +1044,7 @@
 	}
 
 	// If the file exist in hamcore/ directory on the local disk, read it
-	GetExeDirW(exe_dir, sizeof(exe_dir));
+	GetStateDirW(exe_dir, sizeof(exe_dir));
 
 	UniFormat(tmp, sizeof(tmp), L"%s/%S/%S", exe_dir, HAMCORE_DIR_NAME, filename);
 
@@ -1154,7 +1160,7 @@
 		return;
 	}
 
-	GetExeDirW(exe_dir, sizeof(exe_dir));
+	GetStateDirW(exe_dir, sizeof(exe_dir));
 	UniFormat(tmp, sizeof(tmp), L"%s/%S", exe_dir, HAMCORE_FILE_NAME);
 
 	UniFormat(tmp2, sizeof(tmp2), L"%s/%S", exe_dir, HAMCORE_FILE_NAME_2);
@@ -1438,6 +1444,33 @@
 	GetDirNameFromFilePathW(name, size, exe_file_name_w);
 }
 
+void GetStateDir(char *name, UINT size)
+{
+	// Validate arguments
+	if (name == NULL)
+	{
+		return;
+	}
+#ifdef STATE_DIR
+	StrCpy(name, size, STATE_DIR);
+#else
+	GetExeDir(name, size)
+#endif
+}
+void GetStateDirW(wchar_t *name, UINT size)
+{
+	// Validate arguments
+	if (name == NULL)
+	{
+		return;
+	}
+#ifdef STATE_DIR
+	UniStrCpy(name, size, L"" STATE_DIR L"");
+#else
+	GetExeDirW(name, size)
+#endif
+}
+
 // Get the EXE file name
 void GetExeName(char *name, UINT size)
 {
@@ -2389,7 +2422,7 @@
 	else
 	{
 		wchar_t dir[MAX_SIZE];
-		GetExeDirW(dir, sizeof(dir));
+		GetStateDirW(dir, sizeof(dir));
 		ConbinePathW(dst, size, dir, &src[1]);
 	}
 }
Index: b/src/Mayaqua/FileIO.h
===================================================================
--- a/src/Mayaqua/FileIO.h
+++ b/src/Mayaqua/FileIO.h
@@ -349,6 +349,8 @@
 void GetExeNameW(wchar_t *name, UINT size);
 void GetExeDir(char *name, UINT size);
 void GetExeDirW(wchar_t *name, UINT size);
+void GetStateDir(char *name, UINT size);
+void GetStateDirW(wchar_t *name, UINT size);
 void BuildHamcore(char *dst_filename, char *src_dir, bool unix_only);
 int CompareHamcore(void *p1, void *p2);
 void InitHamcore();
Index: b/src/Mayaqua/Mayaqua.c
===================================================================
--- a/src/Mayaqua/Mayaqua.c
+++ b/src/Mayaqua/Mayaqua.c
@@ -611,7 +611,11 @@
 		_exit(0);
 	}
 
+#ifndef STATE_DIR
+	// This check causes hamcorebuilder to fail in an unprivileged
+	// environment, and is unnecessary for a managed installation.
 	CheckUnixTempDir();
+#endif
 
 	// Initialization of Probe
 	InitProbe();
Index: b/src/Mayaqua/Table.c
===================================================================
--- a/src/Mayaqua/Table.c
+++ b/src/Mayaqua/Table.c
@@ -1191,7 +1191,7 @@
 		return;
 	}
 
-	GetExeDirW(exe, sizeof(exe));
+	GetStateDirW(exe, sizeof(exe));
 	UniStrCpy(hashtemp, sizeof(hashtemp), strfilename);
 	BinToStrW(tmp, sizeof(tmp), filehash, MD5_SIZE);
 	UniStrCat(hashtemp, sizeof(hashtemp), tmp);
@@ -1204,7 +1204,11 @@
 	UniStrLower(tmp);
 
 #ifndef	OS_WIN32
+#ifdef STATE_DIR
+	UniStrCpy(exe, sizeof(exe), L"" STATE_DIR L"");
+#else
 	UniStrCpy(exe, sizeof(exe), L"/tmp");
+#endif
 #else	// OS_WIN32
 	StrToUni(exe, sizeof(exe), MsGetTempDir());
 #endif	// OS_WIN32
Index: b/src/Mayaqua/Unix.c
===================================================================
--- a/src/Mayaqua/Unix.c
+++ b/src/Mayaqua/Unix.c
@@ -928,7 +928,7 @@
 		StrCpy(tmp, sizeof(tmp), instance_name);
 	}
 
-	GetExeDir(dir, sizeof(dir));
+	GetStateDir(dir, sizeof(dir));
 
 	// File name generation
 	Format(name, sizeof(name), "%s/.%s", dir, tmp);
@@ -2260,7 +2260,7 @@
 		return;
 	}
 
-	GetExeDir(dir, sizeof(dir));
+	GetStateDir(dir, sizeof(dir));
 
 	GetExeName(exe_name, sizeof(exe_name));
 	StrCat(exe_name, sizeof(exe_name), ":pid_hash");
@@ -2305,7 +2305,7 @@
 		return;
 	}
 
-	GetExeDir(dir, sizeof(dir));
+	GetStateDir(dir, sizeof(dir));
 
 	GetExeName(exe_name, sizeof(exe_name));
 	StrCat(exe_name, sizeof(exe_name), ":pid_hash");
Index: b/src/bin/hamcore/Makefile.am
===================================================================
--- a/src/bin/hamcore/Makefile.am
+++ b/src/bin/hamcore/Makefile.am
@@ -18,12 +18,16 @@
 
 include $(top_srcdir)/autotools/softether.am
 
-# This is required to use a custom build rule with -Wall and -Werror enabled.
+# An empty EXEEXT required for overrides with -Wall and -Werror enabled.
 AUTOMAKE_OPTIONS = -Wno-override
 EXEEXT =
+
 HAMCOREBUILDER = $(top_builddir)/src/hamcorebuilder/hamcorebuilder
 
-sbin_PROGRAMS = hamcore.se2
+noinst_PROGRAMS = hamcore.se2
 
 hamcore.se2$(EXEEXT): $(HAMCOREBUILDER)
 	$(HAMCOREBUILDER) $(top_srcdir)/src/bin/hamcore $@
+
+install-exec-local: hamcore.se2$(EXEEXT)
+	$(INSTALL_DATA) -D hamcore.se2$(EXEEXT) $(DESTDIR)$(localstatedir)/lib/softether/hamcore.se2
+218 −0
Original line number Diff line number Diff line
From 64dd780905ae339a0a57e4aba541799016816a1a Mon Sep 17 00:00:00 2001
From: Darik Horn <dajhorn@vanadac.com>
Date: Fri, 3 Oct 2014 13:30:24 -0400
Subject: [PATCH] Create a non-forking softetherd for upstart and systemd.

Implement a daemon that expects to be invoked by a new-style init like upstart
or systemd as:

	/usr/sbin/softetherd [vpnbridge|vpnclient|vpnserver]

Alternatively, if the command line argument is empty, then use the
`SOFTETHER_MODE` environment variable instead.

Conflicts:
	src/bin/hamcore/strtable_en.stb

Taken from Github at
https://github.com/dajhorn/SoftEtherVPN/commit/64dd780905ae339a0a57e4aba541799016816a1a.

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 configure.ac                    |   1 +
 src/Makefile.am                 |   3 ++
 src/bin/hamcore/strtable_en.stb |   1 +
 src/softetherd/Makefile.am      |  28 ++++++++++
 src/softetherd/softetherd.c     | 114 ++++++++++++++++++++++++++++++++++++++++
 5 files changed, 147 insertions(+)
 create mode 100644 src/softetherd/Makefile.am
 create mode 100644 src/softetherd/softetherd.c

Index: b/configure.ac
===================================================================
--- a/configure.ac
+++ b/configure.ac
@@ -36,6 +36,7 @@
 	src/vpnclient/Makefile
 	src/vpnbridge/Makefile
 	src/vpncmd/Makefile
+	src/softetherd/Makefile
 ])
 
 
Index: b/src/Makefile.am
===================================================================
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -27,3 +27,6 @@
 
 # These are the final build products.
 SUBDIRS += vpnserver vpnclient vpnbridge vpncmd
+
+# This is a daemon for upstart and systemd.
+SUBDIRS += softetherd
Index: b/src/bin/hamcore/strtable_en.stb
===================================================================
--- a/src/bin/hamcore/strtable_en.stb
+++ b/src/bin/hamcore/strtable_en.stb
@@ -1062,6 +1062,7 @@
 
 
 # Concerning services (UNIX)
+UNIX_DAEMON_HELP		SoftEther VPN non-forking daemon for upstart and systemd.\nCommand Usage:\n %S vpnbridge  - Enable bridging features.\n %S vpnclient  - Enable client features.\n %S vpnserver  - Enable all features.\nThe parameter can be set in the SOFTETHER_MODE environment variable.\n\n
 UNIX_SVC_HELP			%S service program\nCopyright (c) SoftEther VPN Project. All Rights Reserved.\n\n%S command usage:\n %S start  - Start the %S service.\n %S stop   - Stop the %S service if the service has been already started.\n\n
 UNIX_SVC_STARTED		The %S service has been started.\n
 UNIX_SVC_STOPPING		Stopping the %S service ...\n
Index: b/src/softetherd/Makefile.am
===================================================================
--- /dev/null
+++ b/src/softetherd/Makefile.am
@@ -0,0 +1,28 @@
+#  Copyright 2014 Darik Horn <dajhorn@vanadac.com>
+#
+#  This file is part of SoftEther.
+#
+#  SoftEther is free software: you can redistribute it and/or modify it under
+#  the terms of the GNU General Public License as published by the Free 
+#  Software Foundation, either version 2 of the License, or (at your option)
+#  any later version.
+#
+#  SoftEther is distributed in the hope that it will be useful, but WITHOUT ANY
+#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+#  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+#  details.
+#
+#  You should have received a copy of the GNU General Public License along with
+#  SoftEther.  If not, see <http://www.gnu.org/licenses/>.
+
+
+include $(top_srcdir)/autotools/softether.am
+
+sbin_PROGRAMS = \
+	softetherd
+
+softetherd_SOURCES = \
+	softetherd.c
+
+softetherd_LDADD = \
+	$(top_builddir)/src/libsoftether/libsoftether.la
Index: b/src/softetherd/softetherd.c
===================================================================
--- /dev/null
+++ b/src/softetherd/softetherd.c
@@ -0,0 +1,114 @@
+//  SoftEther VPN daemon for upstart and systemd.
+//
+//  Copyright 2014 Darik Horn <dajhorn@vanadac.com>
+//
+//  This file is part of SoftEther.
+//
+//  SoftEther is free software: you can redistribute it and/or modify it under
+//  the terms of the GNU General Public License as published by the Free 
+//  Software Foundation, either version 2 of the License, or (at your option)
+//  any later version.
+//
+//  SoftEther is distributed in the hope that it will be useful, but WITHOUT ANY
+//  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+//  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+//  details.
+//
+//  You should have received a copy of the GNU General Public License along with
+//  SoftEther.  If not, see <http://www.gnu.org/licenses/>.
+
+
+#include <GlobalConst.h>
+
+#define	VPN_EXE
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+#include <stdarg.h>
+#include <time.h>
+#include <Mayaqua/Mayaqua.h>
+#include <Cedar/Cedar.h>
+
+void DaemonUsage(char *name)
+{
+	UniPrint(_UU("UNIX_DAEMON_HELP"), name, name, name);
+}
+
+
+void DaemonStartProcess()
+{
+	// This environment variable is exported by upstart.
+	char *upstart_job = getenv("UPSTART_JOB");
+
+	InitCedar();
+	StInit();
+	StStartServer(false);
+
+	// Notify upstart that softetherd is ready.
+	if (upstart_job != NULL)
+	{
+		unsetenv("UPSTART_JOB");
+		raise(SIGSTOP);
+	}
+}
+
+
+void DaemonStopProcess()
+{
+	StStopServer();
+	StFree();
+	FreeCedar();
+}
+
+
+int main(int argc, char *argv[])
+{
+	// This environment variable is sourced and exported by the init process from /etc/default/softether.
+	char *softether_mode = getenv("SOFTETHER_MODE");
+
+	InitMayaqua(false, false, argc, argv);
+
+	// Check for an explicit invocation. (eg: "/usr/sbin/softetherd vpnserver")
+	if (argc >= 2)
+	{
+		if (StrCmpi(argv[1], "vpnbridge") == 0
+		 || StrCmpi(argv[1], "vpnclient") == 0
+		 || StrCmpi(argv[1], "vpnserver") == 0)
+		{
+			UnixExecService(argv[1], DaemonStartProcess, DaemonStopProcess);
+			FreeMayaqua();
+			return 0;
+		}
+
+		// Exit status codes 150..199 are reserved for the application by the LSB.
+		fprintf(stderr, "Error: Unrecognized parameter: %s\n", argv[1]);
+		fflush(stderr);
+		FreeMayaqua();
+		return 150;
+	}
+
+	// Alternatively, use the environment variable.
+	if (softether_mode != NULL)
+	{
+		if (StrCmpi(softether_mode, "vpnbridge") == 0 
+		 || StrCmpi(softether_mode, "vpnclient") == 0
+		 || StrCmpi(softether_mode, "vpnserver") == 0)
+		{
+			UnixExecService(softether_mode, DaemonStartProcess, DaemonStopProcess);
+			FreeMayaqua();
+			return 0;
+		}
+
+		// Exit status codes 150..199 are reserved for the application by the LSB.
+		fprintf(stderr, "Error: Unrecognized environment variable: SOFTETHER_MODE=%s\n", softether_mode);
+		fflush(stderr);
+		FreeMayaqua();
+		return 151;
+	}
+
+	DaemonUsage(argv[0]);
+	FreeMayaqua();
+	return 3;
+}
+90 −0
Original line number Diff line number Diff line
From d68db9f2cee975aad5e07b44485615f3d842ab45 Mon Sep 17 00:00:00 2001
From: Darik Horn <dajhorn@vanadac.com>
Date: Fri, 11 Jul 2014 16:17:18 -0400
Subject: [PATCH] Change GetExeDir to GetStateDir in Cedar and Mayaqua.

Resolve this AppArmor error by ensuring that certificate files files are
written into /var/lib/softether instead of the current working directory:

	Profile: /usr/sbin/softetherd
	Operation: mkdir
	Name: /usr/sbin/chain_certs
	Denied: c
	Logfile: /var/log/kern.log

	type=1400 audit: apparmor="DENIED" operation="mkdir" profile="/usr/sbin/softetherd" name="/usr/sbin/chain_certs/" pid=36448 comm="softetherd" requested_mask="c" denied_mask="c" fsuid=0 ouid=0

Taken from Github
https://github.com/dajhorn/SoftEtherVPN/commit/d68db9f2cee975aad5e07b44485615f3d842ab45.

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 src/Cedar/Protocol.c  | 12 ++++++------
 src/Mayaqua/Network.c |  6 +++---
 2 files changed, 9 insertions(+), 9 deletions(-)

Index: b/src/Cedar/Protocol.c
===================================================================
--- a/src/Cedar/Protocol.c
+++ b/src/Cedar/Protocol.c
@@ -161,10 +161,10 @@
 		UINT i;
 		DIRLIST *dir;
 		wchar_t dirname[MAX_SIZE];
-		wchar_t exedir[MAX_SIZE];
+		wchar_t statedir[MAX_SIZE];
 
-		GetExeDirW(exedir, sizeof(exedir));
-		CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs");
+		GetStateDirW(statedir, sizeof(statedir));
+		CombinePathW(dirname, sizeof(dirname), statedir, L"chain_certs");
 		MakeDirExW(dirname);
 
 		if (auto_save)
@@ -461,7 +461,7 @@
 void AddAllChainCertsToCertList(LIST *o)
 {
 	wchar_t dirname[MAX_SIZE];
-	wchar_t exedir[MAX_SIZE];
+	wchar_t statedir[MAX_SIZE];
 	DIRLIST *dir;
 	// Validate arguments
 	if (o == NULL)
@@ -469,9 +469,9 @@
 		return;
 	}
 
-	GetExeDirW(exedir, sizeof(exedir));
+	GetStateDirW(statedir, sizeof(statedir));
 
-	CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs");
+	CombinePathW(dirname, sizeof(dirname), statedir, L"chain_certs");
 
 	MakeDirExW(dirname);
 
Index: b/src/Mayaqua/Network.c
===================================================================
--- a/src/Mayaqua/Network.c
+++ b/src/Mayaqua/Network.c
@@ -12588,7 +12588,7 @@
 void AddChainSslCertOnDirectory(struct ssl_ctx_st *ctx)
 {
 	wchar_t dirname[MAX_SIZE];
-	wchar_t exedir[MAX_SIZE];
+	wchar_t statedir[MAX_SIZE];
 	wchar_t txtname[MAX_SIZE];
 	DIRLIST *dir;
 	LIST *o;
@@ -12602,9 +12602,9 @@
 
 	o = NewListFast(NULL);
 
-	GetExeDirW(exedir, sizeof(exedir));
+	GetStateDirW(statedir, sizeof(statedir));
 
-	CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs");
+	CombinePathW(dirname, sizeof(dirname), statedir, L"chain_certs");
 
 	MakeDirExW(dirname);
 
+30 −0
Original line number Diff line number Diff line
Host version of hamcorebuilder is needed during cross-compile

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>

diff -uNr SoftEtherVPN-16b713b98da8dba29f0f845d5a8c36d6f7c34824.org/src/bin/hamcore/Makefile.am SoftEtherVPN-16b713b98da8dba29f0f845d5a8c36d6f7c34824/src/bin/hamcore/Makefile.am
--- SoftEtherVPN-16b713b98da8dba29f0f845d5a8c36d6f7c34824.org/src/bin/hamcore/Makefile.am	2014-09-27 12:56:53.108725793 +0200
+++ SoftEtherVPN-16b713b98da8dba29f0f845d5a8c36d6f7c34824/src/bin/hamcore/Makefile.am	2014-09-27 12:57:50.280009025 +0200
@@ -26,8 +26,8 @@
 
 noinst_PROGRAMS = hamcore.se2
 
-hamcore.se2$(EXEEXT): $(HAMCOREBUILDER)
-	$(HAMCOREBUILDER) $(top_srcdir)/src/bin/hamcore $@
+hamcore.se2$(EXEEXT):
+	hamcorebuilder $(top_srcdir)/src/bin/hamcore $@
 
 install-exec-local: hamcore.se2$(EXEEXT)
 	$(INSTALL_DATA) -D hamcore.se2$(EXEEXT) $(DESTDIR)$(localstatedir)/lib/softether/hamcore.se2
diff -uNr SoftEtherVPN-16b713b98da8dba29f0f845d5a8c36d6f7c34824.org/src/Makefile.am SoftEtherVPN-16b713b98da8dba29f0f845d5a8c36d6f7c34824/src/Makefile.am
--- SoftEtherVPN-16b713b98da8dba29f0f845d5a8c36d6f7c34824.org/src/Makefile.am	2014-09-27 12:56:53.136726809 +0200
+++ SoftEtherVPN-16b713b98da8dba29f0f845d5a8c36d6f7c34824/src/Makefile.am	2014-09-27 12:58:12.959723109 +0200
@@ -20,7 +20,7 @@
 SUBDIRS = Mayaqua Cedar
 
 # This is a nodist helper.
-SUBDIRS += hamcorebuilder
+# SUBDIRS += hamcorebuilder
 
 # These are shared components.
 SUBDIRS += libsoftether bin/hamcore
Loading