mirror of
https://github.com/SoftEtherVPN/SoftEtherVPN.git
synced 2025-07-07 00:04:57 +03:00
Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
5b11e6bffd | |||
a6ac9456b5 | |||
ddf4c28789 | |||
139fffe6e0 | |||
c1d6ddf361 | |||
b72292edd1 | |||
3429e1bf31 | |||
cf6eef4841 | |||
99a029c7c4 | |||
f061557aad | |||
8173eb4509 | |||
a3b5484587 | |||
63513259c0 | |||
966a5e6dea | |||
91c5d5feb8 |
@ -20,6 +20,8 @@ build_script:
|
|||||||
exit %errorlevel%
|
exit %errorlevel%
|
||||||
- sh: >-
|
- sh: >-
|
||||||
./configure && make package -C tmp
|
./configure && make package -C tmp
|
||||||
|
dpkg -i build/softether-vpn*.deb
|
||||||
|
systemctl restart softether-vpnserver
|
||||||
|
|
||||||
artifacts:
|
artifacts:
|
||||||
- path: output\pkg\*\*
|
- path: output\pkg\*\*
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
script:
|
script:
|
||||||
- ./configure
|
- ./configure
|
||||||
- make package -C tmp
|
- make package -C tmp
|
||||||
|
- dpkg -i build/softether-vpn*.deb
|
||||||
|
|
||||||
bionic:
|
bionic:
|
||||||
<<: *ubuntu_def
|
<<: *ubuntu_def
|
||||||
|
@ -58,7 +58,7 @@ matrix:
|
|||||||
script:
|
script:
|
||||||
- ./configure
|
- ./configure
|
||||||
- make -C tmp
|
- make -C tmp
|
||||||
- otool -L build/vpnserver/vpnserver
|
- otool -L build/vpnserver
|
||||||
- sudo make -C tmp install
|
- sudo make -C tmp install
|
||||||
|
|
||||||
addons:
|
addons:
|
||||||
@ -83,6 +83,6 @@ script:
|
|||||||
- export LDFLAGS="-L${HOME}/opt/lib"
|
- export LDFLAGS="-L${HOME}/opt/lib"
|
||||||
- ./configure
|
- ./configure
|
||||||
- make -C tmp
|
- make -C tmp
|
||||||
- ldd build/vpnserver/vpnserver
|
- ldd build/vpnserver
|
||||||
- sudo LD_LIBRARY_PATH="${HOME}/opt/lib:${LD_LIBRARY_PATH:-}" make -C tmp install
|
- sudo LD_LIBRARY_PATH="${HOME}/opt/lib:${LD_LIBRARY_PATH:-}" make -C tmp install
|
||||||
- if [ "${BUILD_DEB}" = "1" ]; then make package -C tmp; fi
|
- if [ "${BUILD_DEB}" = "1" ]; then make package -C tmp; fi
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
cmake_minimum_required(VERSION 3.7)
|
cmake_minimum_required(VERSION 3.7)
|
||||||
|
|
||||||
project(SoftEtherVPN
|
project(SoftEtherVPN
|
||||||
VERSION 5.01.9660
|
VERSION 5.01.9661
|
||||||
LANGUAGES C
|
LANGUAGES C
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -32,11 +32,12 @@ Check_Include_File(sys/auxv.h HAVE_SYS_AUXV)
|
|||||||
configure_file("${SoftEtherVPN_SOURCE_DIR}/AUTHORS.TXT" "${SoftEtherVPN_SOURCE_DIR}/src/bin/hamcore/authors.txt" COPYONLY)
|
configure_file("${SoftEtherVPN_SOURCE_DIR}/AUTHORS.TXT" "${SoftEtherVPN_SOURCE_DIR}/src/bin/hamcore/authors.txt" COPYONLY)
|
||||||
|
|
||||||
set(BUILD_DIRECTORY ${SoftEtherVPN_SOURCE_DIR}/build)
|
set(BUILD_DIRECTORY ${SoftEtherVPN_SOURCE_DIR}/build)
|
||||||
|
set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
|
||||||
|
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
|
|
||||||
# Packaging
|
# Packaging
|
||||||
set(CPACK_COMPONENTS_ALL vpnserver vpnclient vpnbridge vpncmd)
|
set(CPACK_COMPONENTS_ALL common vpnserver vpnclient vpnbridge vpncmd)
|
||||||
set(CPACK_PACKAGE_DIRECTORY ${BUILD_DIRECTORY})
|
set(CPACK_PACKAGE_DIRECTORY ${BUILD_DIRECTORY})
|
||||||
set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
|
set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
|
||||||
set(CPACK_PACKAGE_VENDOR "SoftEther")
|
set(CPACK_PACKAGE_VENDOR "SoftEther")
|
||||||
@ -45,6 +46,8 @@ set(CPACK_PACKAGE_DESCRIPTION_FILE "${SoftEtherVPN_SOURCE_DIR}/description")
|
|||||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "SoftEther VPN is an open-source cross-platform multi-protocol VPN program, created as an academic project in the University of Tsukuba.")
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "SoftEther VPN is an open-source cross-platform multi-protocol VPN program, created as an academic project in the University of Tsukuba.")
|
||||||
|
|
||||||
# DEB
|
# DEB
|
||||||
|
file(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/postinst" "#!/bin/sh\nldconfig")
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/postinst")
|
||||||
set(CPACK_DEB_COMPONENT_INSTALL ON)
|
set(CPACK_DEB_COMPONENT_INSTALL ON)
|
||||||
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
||||||
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
|
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
|
||||||
|
@ -16,24 +16,6 @@ macro(install_wrapper_script component target)
|
|||||||
)
|
)
|
||||||
endmacro(install_wrapper_script)
|
endmacro(install_wrapper_script)
|
||||||
|
|
||||||
macro(install_systemd_service component file_path binary_path)
|
|
||||||
get_filename_component(file_name ${file_path} NAME)
|
|
||||||
get_filename_component(binary_directory ${binary_path} DIRECTORY)
|
|
||||||
|
|
||||||
file(READ ${file_path} FILE_CONTENT)
|
|
||||||
string(REPLACE "[DIRECTORY]" ${binary_directory} FILE_CONTENT ${FILE_CONTENT})
|
|
||||||
string(REPLACE "[BINARY]" ${binary_path} FILE_CONTENT ${FILE_CONTENT})
|
|
||||||
file(WRITE ${CMAKE_SOURCE_DIR}/tmp/systemd/${file_name} ${FILE_CONTENT})
|
|
||||||
|
|
||||||
if(EXISTS "/lib/systemd/system")
|
|
||||||
install(FILES ${CMAKE_SOURCE_DIR}/tmp/systemd/${file_name}
|
|
||||||
COMPONENT ${component}
|
|
||||||
DESTINATION "/lib/systemd/system"
|
|
||||||
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endmacro(install_systemd_service)
|
|
||||||
|
|
||||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||||
add_definitions(-D_DEBUG -DDEBUG)
|
add_definitions(-D_DEBUG -DDEBUG)
|
||||||
endif()
|
endif()
|
||||||
@ -101,106 +83,28 @@ add_subdirectory(hamcorebuilder)
|
|||||||
|
|
||||||
# vpnserver
|
# vpnserver
|
||||||
add_subdirectory(vpnserver)
|
add_subdirectory(vpnserver)
|
||||||
get_target_property(VPNSERVER_RUNTIME_OUTPUT_DIRECTORY vpnserver RUNTIME_OUTPUT_DIRECTORY)
|
|
||||||
|
|
||||||
# vpnclient
|
# vpnclient
|
||||||
add_subdirectory(vpnclient)
|
add_subdirectory(vpnclient)
|
||||||
get_target_property(VPNCLIENT_RUNTIME_OUTPUT_DIRECTORY vpnclient RUNTIME_OUTPUT_DIRECTORY)
|
|
||||||
|
|
||||||
# vpnbridge
|
# vpnbridge
|
||||||
add_subdirectory(vpnbridge)
|
add_subdirectory(vpnbridge)
|
||||||
get_target_property(VPNBRIDGE_RUNTIME_OUTPUT_DIRECTORY vpnbridge RUNTIME_OUTPUT_DIRECTORY)
|
|
||||||
|
|
||||||
# vpncmd
|
# vpncmd
|
||||||
add_subdirectory(vpncmd)
|
add_subdirectory(vpncmd)
|
||||||
get_target_property(VPNCMD_RUNTIME_OUTPUT_DIRECTORY vpncmd RUNTIME_OUTPUT_DIRECTORY)
|
|
||||||
|
|
||||||
# vpntest
|
# vpntest
|
||||||
add_subdirectory(vpntest)
|
add_subdirectory(vpntest)
|
||||||
get_target_property(VPNTEST_RUNTIME_OUTPUT_DIRECTORY vpntest RUNTIME_OUTPUT_DIRECTORY)
|
|
||||||
|
|
||||||
# hamcore.se2 archive file
|
# hamcore.se2 archive file
|
||||||
add_custom_target(hamcore-archive-build
|
add_custom_target(hamcore-archive-build
|
||||||
ALL
|
ALL
|
||||||
COMMAND hamcorebuilder ${CMAKE_SOURCE_DIR}/src/bin/hamcore/ ${CMAKE_SOURCE_DIR}/tmp/hamcore.se2
|
COMMAND hamcorebuilder "${CMAKE_SOURCE_DIR}/src/bin/hamcore/" "${BUILD_DIRECTORY}/hamcore.se2"
|
||||||
DEPENDS hamcorebuilder
|
DEPENDS hamcorebuilder
|
||||||
COMMENT "Building hamcore.se2 archive file..."
|
COMMENT "Building hamcore.se2 archive file..."
|
||||||
VERBATIM
|
VERBATIM
|
||||||
)
|
)
|
||||||
|
|
||||||
# Copy hamcore.se2 to vpnserver's directory
|
|
||||||
add_custom_command(TARGET hamcore-archive-build
|
|
||||||
POST_BUILD
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/tmp/hamcore.se2 ${VPNSERVER_RUNTIME_OUTPUT_DIRECTORY}
|
|
||||||
)
|
|
||||||
|
|
||||||
# Copy hamcore.se2 to vpnclient's directory
|
|
||||||
add_custom_command(TARGET hamcore-archive-build
|
|
||||||
POST_BUILD
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/tmp/hamcore.se2 ${VPNCLIENT_RUNTIME_OUTPUT_DIRECTORY}
|
|
||||||
)
|
|
||||||
|
|
||||||
# Copy hamcore.se2 to vpnbridge's directory
|
|
||||||
add_custom_command(TARGET hamcore-archive-build
|
|
||||||
POST_BUILD
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/tmp/hamcore.se2 ${VPNBRIDGE_RUNTIME_OUTPUT_DIRECTORY}
|
|
||||||
)
|
|
||||||
|
|
||||||
# Copy hamcore.se2 to vpncmd's directory
|
|
||||||
add_custom_command(TARGET hamcore-archive-build
|
|
||||||
POST_BUILD
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/tmp/hamcore.se2 ${VPNCMD_RUNTIME_OUTPUT_DIRECTORY}
|
|
||||||
)
|
|
||||||
|
|
||||||
# Copy hamcore.se2 to vpntest's directory
|
|
||||||
add_custom_command(TARGET hamcore-archive-build
|
|
||||||
POST_BUILD
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/tmp/hamcore.se2 ${VPNTEST_RUNTIME_OUTPUT_DIRECTORY}
|
|
||||||
)
|
|
||||||
|
|
||||||
# Copy "vpnserver" directory to /usr/lib(exec)/softether/, install launch script and systemd service
|
|
||||||
install(DIRECTORY ${VPNSERVER_RUNTIME_OUTPUT_DIRECTORY}
|
|
||||||
COMPONENT "vpnserver"
|
|
||||||
DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/softether"
|
|
||||||
PATTERN "*"
|
|
||||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
|
||||||
)
|
|
||||||
|
|
||||||
install_wrapper_script("vpnserver" "${CMAKE_INSTALL_FULL_LIBEXECDIR}/softether/vpnserver/vpnserver")
|
|
||||||
install_systemd_service("vpnserver" "${CMAKE_SOURCE_DIR}/systemd/softether-vpnserver.service" "${CMAKE_INSTALL_FULL_LIBEXECDIR}/softether/vpnserver/vpnserver")
|
|
||||||
|
|
||||||
# Copy "vpnclient" directory to /usr/lib(exec)/softether/, install launch script and systemd service
|
|
||||||
install(DIRECTORY ${VPNCLIENT_RUNTIME_OUTPUT_DIRECTORY}
|
|
||||||
COMPONENT "vpnclient"
|
|
||||||
DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/softether"
|
|
||||||
PATTERN "*"
|
|
||||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
|
||||||
)
|
|
||||||
|
|
||||||
install_wrapper_script("vpnclient" "${CMAKE_INSTALL_FULL_LIBEXECDIR}/softether/vpnclient/vpnclient")
|
|
||||||
install_systemd_service("vpnclient" "${CMAKE_SOURCE_DIR}/systemd/softether-vpnclient.service" "${CMAKE_INSTALL_FULL_LIBEXECDIR}/softether/vpnclient/vpnclient")
|
|
||||||
|
|
||||||
# Copy "vpnbridge" directory to /usr/lib(exec)/softether/, install launch script and systemd service
|
|
||||||
install(DIRECTORY ${VPNBRIDGE_RUNTIME_OUTPUT_DIRECTORY}
|
|
||||||
COMPONENT "vpnbridge"
|
|
||||||
DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/softether"
|
|
||||||
PATTERN "*"
|
|
||||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
|
||||||
)
|
|
||||||
|
|
||||||
install_wrapper_script("vpnbridge" "${CMAKE_INSTALL_FULL_LIBEXECDIR}/softether/vpnbridge/vpnbridge")
|
|
||||||
install_systemd_service("vpnbridge" "${CMAKE_SOURCE_DIR}/systemd/softether-vpnbridge.service" "${CMAKE_INSTALL_FULL_LIBEXECDIR}/softether/vpnbridge/vpnbridge")
|
|
||||||
|
|
||||||
# Copy "vpncmd" directory to /usr/lib(exec)/softether/, install launch script and systemd service
|
|
||||||
install(DIRECTORY ${VPNCMD_RUNTIME_OUTPUT_DIRECTORY}
|
|
||||||
COMPONENT "vpncmd"
|
|
||||||
DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/softether"
|
|
||||||
PATTERN "*"
|
|
||||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
|
||||||
)
|
|
||||||
|
|
||||||
install_wrapper_script("vpncmd" "${CMAKE_INSTALL_FULL_LIBEXECDIR}/softether/vpncmd/vpncmd")
|
|
||||||
|
|
||||||
# Print message after installing the targets
|
# Print message after installing the targets
|
||||||
install(CODE "message(\"\n----------------------------------------------------------------------------------------------------------------------------\")")
|
install(CODE "message(\"\n----------------------------------------------------------------------------------------------------------------------------\")")
|
||||||
install(CODE "message(\"Build completed successfully.\n\")")
|
install(CODE "message(\"Build completed successfully.\n\")")
|
||||||
|
@ -136,19 +136,23 @@ UINT GetEthDeviceHash()
|
|||||||
{
|
{
|
||||||
#ifdef OS_UNIX
|
#ifdef OS_UNIX
|
||||||
// UNIX
|
// UNIX
|
||||||
UINT num;
|
UINT num = 0;
|
||||||
UINT i;
|
UINT i;
|
||||||
char tmp[4096];
|
char tmp[4096];
|
||||||
UCHAR hash[SHA1_SIZE];
|
UCHAR hash[SHA1_SIZE];
|
||||||
TOKEN_LIST *t = GetEthList();
|
TOKEN_LIST *t = GetEthList();
|
||||||
|
|
||||||
num = t->NumTokens;
|
|
||||||
tmp[0] = 0;
|
tmp[0] = 0;
|
||||||
for (i = 0;i < t->NumTokens;i++)
|
|
||||||
|
if (t != NULL)
|
||||||
{
|
{
|
||||||
StrCat(tmp, sizeof(tmp), t->Token[i]);
|
num = t->NumTokens;
|
||||||
|
for (i = 0; i < t->NumTokens; i++)
|
||||||
|
{
|
||||||
|
StrCat(tmp, sizeof(tmp), t->Token[i]);
|
||||||
|
}
|
||||||
|
FreeToken(t);
|
||||||
}
|
}
|
||||||
FreeToken(t);
|
|
||||||
|
|
||||||
Sha0(hash, tmp, StrLen(tmp));
|
Sha0(hash, tmp, StrLen(tmp));
|
||||||
|
|
||||||
|
@ -1,22 +1,22 @@
|
|||||||
file(GLOB SOURCES_CEDAR "*.c")
|
file(GLOB SOURCES_CEDAR "*.c")
|
||||||
file(GLOB HEADERS_CEDAR "*.h")
|
file(GLOB HEADERS_CEDAR "*.h")
|
||||||
|
|
||||||
add_library(cedar STATIC ${SOURCES_CEDAR} ${HEADERS_CEDAR})
|
add_library(cedar SHARED ${SOURCES_CEDAR} ${HEADERS_CEDAR})
|
||||||
|
|
||||||
set_target_properties(cedar
|
set_target_properties(cedar
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/tmp/Cedar"
|
ARCHIVE_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/tmp/Cedar"
|
LIBRARY_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/tmp/Cedar"
|
RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
)
|
)
|
||||||
|
|
||||||
find_library(LIB_READLINE readline)
|
find_library(LIB_READLINE readline)
|
||||||
find_package(Curses REQUIRED)
|
find_package(Curses REQUIRED)
|
||||||
|
|
||||||
target_link_libraries(cedar ${LIB_READLINE} ${CURSES_LIBRARIES})
|
target_link_libraries(cedar PRIVATE ${LIB_READLINE} ${CURSES_LIBRARIES})
|
||||||
|
|
||||||
if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
|
if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
|
||||||
target_link_libraries(cedar pcap)
|
target_link_libraries(cedar PRIVATE mayaqua pcap)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Version
|
# Version
|
||||||
@ -54,3 +54,9 @@ message(STATUS "Build time: ${BUILD_HOUR}:${BUILD_MINUTE}:${BUILD_SECOND}")
|
|||||||
|
|
||||||
add_definitions(-DBUILD_DATE_D=${BUILD_DAY} -DBUILD_DATE_M=${BUILD_MONTH} -DBUILD_DATE_Y=${BUILD_YEAR})
|
add_definitions(-DBUILD_DATE_D=${BUILD_DAY} -DBUILD_DATE_M=${BUILD_MONTH} -DBUILD_DATE_Y=${BUILD_YEAR})
|
||||||
add_definitions(-DBUILD_DATE_HO=${BUILD_HOUR} -DBUILD_DATE_MI=${BUILD_MINUTE} -DBUILD_DATE_SE=${BUILD_SECOND})
|
add_definitions(-DBUILD_DATE_HO=${BUILD_HOUR} -DBUILD_DATE_MI=${BUILD_MINUTE} -DBUILD_DATE_SE=${BUILD_SECOND})
|
||||||
|
|
||||||
|
install(TARGETS cedar
|
||||||
|
COMPONENT "common"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
||||||
|
)
|
||||||
|
@ -2287,7 +2287,7 @@ void MakeLogFileNameStringFromTick(LOG *g, char *str, UINT size, UINT64 tick, UI
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default: // Without switching
|
default: // Without switching
|
||||||
snprintf(str, size, "");
|
snprintf(str, size, "%s");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7094,8 +7094,7 @@ PACK *PackLoginWithOpenVPNCertificate(char *hubname, char *username, X *x)
|
|||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
wcstombs(cn_username, x->subject_name->CommonName, 127);
|
UniToStr(cn_username, sizeof(cn_username), x->subject_name->CommonName);
|
||||||
cn_username[127] = '\0';
|
|
||||||
PackAddStr(p, "username", cn_username);
|
PackAddStr(p, "username", cn_username);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
VERSION_MAJOR 5
|
VERSION_MAJOR 5
|
||||||
VERSION_MINOR 1
|
VERSION_MINOR 1
|
||||||
VERSION_BUILD 9660
|
VERSION_BUILD 9661
|
||||||
BUILD_NAME unstable
|
BUILD_NAME unstable
|
||||||
BUILD_DATE 20181015_142500
|
BUILD_DATE 20181022_215600
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
file(GLOB SOURCES_MAYAQUA "*.c")
|
file(GLOB SOURCES_MAYAQUA "*.c")
|
||||||
file(GLOB HEADERS_MAYAQUA "*.h")
|
file(GLOB HEADERS_MAYAQUA "*.h")
|
||||||
|
|
||||||
add_library(mayaqua STATIC ${SOURCES_MAYAQUA} ${HEADERS_MAYAQUA})
|
add_library(mayaqua SHARED ${SOURCES_MAYAQUA} ${HEADERS_MAYAQUA})
|
||||||
|
|
||||||
target_include_directories(mayaqua PUBLIC .)
|
target_include_directories(mayaqua PUBLIC .)
|
||||||
|
|
||||||
set_target_properties(mayaqua
|
set_target_properties(mayaqua
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/tmp/Mayaqua"
|
ARCHIVE_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/tmp/Mayaqua"
|
LIBRARY_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/tmp/Mayaqua"
|
RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
)
|
)
|
||||||
|
|
||||||
find_package(OpenSSL REQUIRED)
|
find_package(OpenSSL REQUIRED)
|
||||||
@ -21,27 +21,34 @@ find_library(LIB_ICONV iconv)
|
|||||||
|
|
||||||
if(HAVE_SYS_AUXV)
|
if(HAVE_SYS_AUXV)
|
||||||
add_subdirectory(cpu_features)
|
add_subdirectory(cpu_features)
|
||||||
|
set_property(TARGET cpu_features PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_include_directories(mayaqua PRIVATE cpu_features/include)
|
target_include_directories(mayaqua PRIVATE cpu_features/include)
|
||||||
|
|
||||||
target_link_libraries(mayaqua OpenSSL::SSL OpenSSL::Crypto Threads::Threads ZLIB::ZLIB)
|
target_link_libraries(mayaqua PRIVATE OpenSSL::SSL OpenSSL::Crypto Threads::Threads ZLIB::ZLIB)
|
||||||
|
|
||||||
if(HAVE_SYS_AUXV)
|
if(HAVE_SYS_AUXV)
|
||||||
target_link_libraries(mayaqua cpu_features)
|
target_link_libraries(mayaqua PRIVATE cpu_features)
|
||||||
else()
|
else()
|
||||||
add_definitions(-DSKIP_CPU_FEATURES)
|
add_definitions(-DSKIP_CPU_FEATURES)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_library(LIB_RT rt)
|
find_library(LIB_RT rt)
|
||||||
if(LIB_RT)
|
if(LIB_RT)
|
||||||
target_link_libraries(mayaqua rt)
|
target_link_libraries(mayaqua PRIVATE ${LIB_RT})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(LIB_ICONV)
|
if(LIB_ICONV)
|
||||||
target_link_libraries(mayaqua ${LIB_ICONV})
|
target_link_libraries(mayaqua PRIVATE ${LIB_ICONV})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
|
if(${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
|
||||||
target_link_libraries(mayaqua nsl socket)
|
target_link_libraries(mayaqua PRIVATE nsl socket)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
install(TARGETS mayaqua
|
||||||
|
COMPONENT "common"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||||
|
)
|
||||||
|
@ -2,9 +2,32 @@ add_executable(vpnbridge vpnbridge.c)
|
|||||||
|
|
||||||
set_target_properties(vpnbridge
|
set_target_properties(vpnbridge
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
ARCHIVE_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}/vpnbridge"
|
ARCHIVE_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
LIBRARY_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}/vpnbridge"
|
LIBRARY_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}/vpnbridge"
|
RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(vpnbridge cedar mayaqua)
|
target_link_libraries(vpnbridge cedar mayaqua)
|
||||||
|
|
||||||
|
# Copy binary and "hamcore.se2" to /usr/lib(exec)/softether/, install launch script and systemd service
|
||||||
|
install(TARGETS vpnbridge
|
||||||
|
COMPONENT "vpnbridge"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/softether/vpnbridge"
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||||
|
)
|
||||||
|
|
||||||
|
install(FILES "${BUILD_DIRECTORY}/hamcore.se2"
|
||||||
|
COMPONENT "vpnbridge"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/softether/vpnbridge"
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
||||||
|
)
|
||||||
|
|
||||||
|
install_wrapper_script("vpnbridge" "${CMAKE_INSTALL_FULL_LIBEXECDIR}/softether/vpnbridge/vpnbridge")
|
||||||
|
if(EXISTS "/lib/systemd/system")
|
||||||
|
configure_file(${CMAKE_SOURCE_DIR}/systemd/softether-vpnbridge.service ${CMAKE_SOURCE_DIR}/tmp/systemd/softether-vpnbridge.service)
|
||||||
|
install(FILES ${CMAKE_SOURCE_DIR}/tmp/systemd/softether-vpnbridge.service
|
||||||
|
COMPONENT "vpnbridge"
|
||||||
|
DESTINATION "/lib/systemd/system"
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
@ -2,9 +2,32 @@ add_executable(vpnclient vpncsvc.c)
|
|||||||
|
|
||||||
set_target_properties(vpnclient
|
set_target_properties(vpnclient
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
ARCHIVE_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}/vpnclient"
|
ARCHIVE_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
LIBRARY_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}/vpnclient"
|
LIBRARY_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}/vpnclient"
|
RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(vpnclient cedar mayaqua)
|
target_link_libraries(vpnclient cedar mayaqua)
|
||||||
|
|
||||||
|
# Copy binary and "hamcore.se2" to /usr/lib(exec)/softether/, install launch script and systemd service
|
||||||
|
install(TARGETS vpnclient
|
||||||
|
COMPONENT "vpnclient"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/softether/vpnclient"
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||||
|
)
|
||||||
|
|
||||||
|
install(FILES "${BUILD_DIRECTORY}/hamcore.se2"
|
||||||
|
COMPONENT "vpnclient"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/softether/vpnclient"
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
||||||
|
)
|
||||||
|
|
||||||
|
install_wrapper_script("vpnclient" "${CMAKE_INSTALL_FULL_LIBEXECDIR}/softether/vpnclient/vpnclient")
|
||||||
|
if(EXISTS "/lib/systemd/system")
|
||||||
|
configure_file(${CMAKE_SOURCE_DIR}/systemd/softether-vpnclient.service ${CMAKE_SOURCE_DIR}/tmp/systemd/softether-vpnclient.service)
|
||||||
|
install(FILES ${CMAKE_SOURCE_DIR}/tmp/systemd/softether-vpnclient.service
|
||||||
|
COMPONENT "vpnclient"
|
||||||
|
DESTINATION "/lib/systemd/system"
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
@ -2,9 +2,24 @@ add_executable(vpncmd vpncmd.c)
|
|||||||
|
|
||||||
set_target_properties(vpncmd
|
set_target_properties(vpncmd
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
ARCHIVE_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}/vpncmd"
|
ARCHIVE_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
LIBRARY_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}/vpncmd"
|
LIBRARY_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}/vpncmd"
|
RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(vpncmd cedar mayaqua)
|
target_link_libraries(vpncmd cedar mayaqua)
|
||||||
|
|
||||||
|
# Copy binary and "hamcore.se2" to /usr/lib(exec)/softether/, install launch script
|
||||||
|
install(TARGETS vpncmd
|
||||||
|
COMPONENT "vpncmd"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/softether/vpncmd"
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||||
|
)
|
||||||
|
|
||||||
|
install(FILES "${BUILD_DIRECTORY}/hamcore.se2"
|
||||||
|
COMPONENT "vpncmd"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/softether/vpncmd"
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
||||||
|
)
|
||||||
|
|
||||||
|
install_wrapper_script("vpncmd" "${CMAKE_INSTALL_FULL_LIBEXECDIR}/softether/vpncmd/vpncmd")
|
||||||
|
@ -2,9 +2,32 @@ add_executable(vpnserver vpnserver.c)
|
|||||||
|
|
||||||
set_target_properties(vpnserver
|
set_target_properties(vpnserver
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
ARCHIVE_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}/vpnserver"
|
ARCHIVE_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
LIBRARY_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}/vpnserver"
|
LIBRARY_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}/vpnserver"
|
RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(vpnserver cedar mayaqua)
|
target_link_libraries(vpnserver cedar mayaqua)
|
||||||
|
|
||||||
|
# Copy binary and "hamcore.se2" to /usr/lib(exec)/softether/, install launch script and systemd service
|
||||||
|
install(TARGETS vpnserver
|
||||||
|
COMPONENT "vpnserver"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/softether/vpnserver"
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||||
|
)
|
||||||
|
|
||||||
|
install(FILES "${BUILD_DIRECTORY}/hamcore.se2"
|
||||||
|
COMPONENT "vpnserver"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/softether/vpnserver"
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
||||||
|
)
|
||||||
|
|
||||||
|
install_wrapper_script("vpnserver" "${CMAKE_INSTALL_FULL_LIBEXECDIR}/softether/vpnserver/vpnserver")
|
||||||
|
if(EXISTS "/lib/systemd/system")
|
||||||
|
configure_file(${CMAKE_SOURCE_DIR}/systemd/softether-vpnserver.service ${CMAKE_SOURCE_DIR}/tmp/systemd/softether-vpnserver.service)
|
||||||
|
install(FILES ${CMAKE_SOURCE_DIR}/tmp/systemd/softether-vpnserver.service
|
||||||
|
COMPONENT "vpnserver"
|
||||||
|
DESTINATION "/lib/systemd/system"
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
@ -2,9 +2,9 @@ add_executable(vpntest vpntest.c vpntest.h)
|
|||||||
|
|
||||||
set_target_properties(vpntest
|
set_target_properties(vpntest
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
ARCHIVE_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}/vpntest"
|
ARCHIVE_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
LIBRARY_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}/vpntest"
|
LIBRARY_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}/vpntest"
|
RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(vpntest cedar mayaqua)
|
target_link_libraries(vpntest cedar mayaqua)
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=SoftEther VPN Bridge
|
Description=SoftEther VPN Bridge
|
||||||
After=network.target auditd.service
|
After=network.target auditd.service
|
||||||
ConditionPathExists=![DIRECTORY]/do_not_run
|
ConditionPathExists=!${CPACK_PACKAGING_INSTALL_PREFIX}/libexec/softether/vpnbridge/do_not_run
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=forking
|
Type=forking
|
||||||
EnvironmentFile=-[DIRECTORY]
|
EnvironmentFile=-${CPACK_PACKAGING_INSTALL_PREFIX}/libexec/softether/vpnbridge
|
||||||
ExecStart=[BINARY] start
|
ExecStart=${CPACK_PACKAGING_INSTALL_PREFIX}/libexec/softether/vpnbridge/vpnbridge start
|
||||||
ExecStop=[BINARY] stop
|
ExecStop=${CPACK_PACKAGING_INSTALL_PREFIX}/libexec/softether/vpnbridge/vpnbridge stop
|
||||||
KillMode=process
|
KillMode=process
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ PrivateTmp=yes
|
|||||||
ProtectHome=yes
|
ProtectHome=yes
|
||||||
ProtectSystem=full
|
ProtectSystem=full
|
||||||
ReadOnlyDirectories=/
|
ReadOnlyDirectories=/
|
||||||
ReadWriteDirectories=-[DIRECTORY]
|
ReadWriteDirectories=-${CPACK_PACKAGING_INSTALL_PREFIX}/libexec/softether/vpnbridge
|
||||||
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW CAP_SYS_NICE CAP_SYS_ADMIN CAP_SETUID
|
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW CAP_SYS_NICE CAP_SYS_ADMIN CAP_SETUID
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=SoftEther VPN Client
|
Description=SoftEther VPN Client
|
||||||
After=network.target auditd.service
|
After=network.target auditd.service
|
||||||
ConditionPathExists=![DIRECTORY]/do_not_run
|
ConditionPathExists=!${CPACK_PACKAGING_INSTALL_PREFIX}/libexec/softether/vpnclient/do_not_run
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=forking
|
Type=forking
|
||||||
EnvironmentFile=-[DIRECTORY]
|
EnvironmentFile=-${CPACK_PACKAGING_INSTALL_PREFIX}/libexec/softether/vpnclient
|
||||||
ExecStart=[BINARY] start
|
ExecStart=${CPACK_PACKAGING_INSTALL_PREFIX}/libexec/softether/vpnclient/vpnclient start
|
||||||
ExecStop=[BINARY] stop
|
ExecStop=${CPACK_PACKAGING_INSTALL_PREFIX}/libexec/softether/vpnclient/vpnclient stop
|
||||||
KillMode=process
|
KillMode=process
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ PrivateTmp=yes
|
|||||||
ProtectHome=yes
|
ProtectHome=yes
|
||||||
ProtectSystem=full
|
ProtectSystem=full
|
||||||
ReadOnlyDirectories=/
|
ReadOnlyDirectories=/
|
||||||
ReadWriteDirectories=-[DIRECTORY]
|
ReadWriteDirectories=-${CPACK_PACKAGING_INSTALL_PREFIX}/libexec/softether/vpnclient
|
||||||
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW CAP_SYS_NICE CAP_SYS_ADMIN CAP_SETUID
|
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW CAP_SYS_NICE CAP_SYS_ADMIN CAP_SETUID
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=SoftEther VPN Server
|
Description=SoftEther VPN Server
|
||||||
After=network.target auditd.service
|
After=network.target auditd.service
|
||||||
ConditionPathExists=![DIRECTORY]/do_not_run
|
ConditionPathExists=!${CPACK_PACKAGING_INSTALL_PREFIX}/libexec/softether/vpnserver/do_not_run
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=forking
|
Type=forking
|
||||||
EnvironmentFile=-[DIRECTORY]
|
EnvironmentFile=-${CPACK_PACKAGING_INSTALL_PREFIX}/libexec/softether/vpnserver
|
||||||
ExecStart=[BINARY] start
|
ExecStart=${CPACK_PACKAGING_INSTALL_PREFIX}/libexec/softether/vpnserver/vpnserver start
|
||||||
ExecStop=[BINARY] stop
|
ExecStop=${CPACK_PACKAGING_INSTALL_PREFIX}/libexec/softether/vpnserver/vpnserver stop
|
||||||
KillMode=process
|
KillMode=process
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ PrivateTmp=yes
|
|||||||
ProtectHome=yes
|
ProtectHome=yes
|
||||||
ProtectSystem=full
|
ProtectSystem=full
|
||||||
ReadOnlyDirectories=/
|
ReadOnlyDirectories=/
|
||||||
ReadWriteDirectories=-[DIRECTORY]
|
ReadWriteDirectories=-${CPACK_PACKAGING_INSTALL_PREFIX}/libexec/softether/vpnserver
|
||||||
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW CAP_SYS_NICE CAP_SYS_ADMIN CAP_SETUID
|
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW CAP_SYS_NICE CAP_SYS_ADMIN CAP_SETUID
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
|
Reference in New Issue
Block a user