Compare commits
No commits in common. "master" and "v1.8.4-stable" have entirely different histories.
master
...
v1.8.4-sta
|
@ -1,9 +0,0 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
indent_style = space
|
||||
indent_size = 4
|
|
@ -0,0 +1,31 @@
|
|||
### Operating Systems ###
|
||||
|
||||
Client: Applesoft Windy OS 10
|
||||
|
||||
Server: microOS Tiara
|
||||
|
||||
**READ ME, DELETE ME**: On Windows, hold the Windows key and press 'r', type 'winver' and hit return to get your OS version. On Mac, hit the Apple menu (top left of the screen) and check 'About this Mac'. Linux users... you know what you're using ;)
|
||||
|
||||
### Synergy Version ###
|
||||
|
||||
1.8.π
|
||||
|
||||
**READ ME, DELETE ME**: Go to the 'Help' (on Windows) or 'Synergy' (on macOS) menu and then 'About Synergy' to check your version. Verify that you are using the same version across all of your machines, and that your issue still occurs with the latest release available at https://symless.com/account/login
|
||||
|
||||
### Steps to reproduce bug ###
|
||||
|
||||
**READ ME, DELETE ME**: Try to be succinct. If your bug is intermittent, try and describe what you're doing when it happens most.
|
||||
|
||||
1. Click things.
|
||||
2. Type things.
|
||||
3. Bug occurs.
|
||||
4. ...
|
||||
5. Profit?
|
||||
|
||||
### Other info ###
|
||||
|
||||
* When did the problem start to occur? When I...
|
||||
* Is there a way to work around it? No/Yes, you can...
|
||||
* Does this bug prevent you from using Synergy entirely? Yes/No
|
||||
|
||||
Put anything else you can think of here.
|
|
@ -1,80 +0,0 @@
|
|||
name: Bug Report
|
||||
description: File a bug report (for questions, ideas & support, use the Discussions tab, or IRC for quick answers, but make sure to stay on the channel!)
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to fill out this bug report!
|
||||
- type: textarea
|
||||
id: what-happened
|
||||
attributes:
|
||||
label: What happened?
|
||||
description: Also tell us, what did you expect to happen?
|
||||
placeholder: Tell us what you see! Screenshots are also helpful - please attach to the issue (when created), rather than linking to image hosting sites.
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: version
|
||||
attributes:
|
||||
label: Version
|
||||
description: What version of Barrier are you running?
|
||||
options:
|
||||
- v2.0.0-RC1
|
||||
- v2.0.0-RC2
|
||||
- v2.0.0
|
||||
- v2.1.1
|
||||
- v2.1.2
|
||||
- v2.3.0
|
||||
- v2.3.1
|
||||
- v2.3.2-alpha
|
||||
- v2.3.2
|
||||
- v2.3.3
|
||||
- v2.3.4
|
||||
- v2.4.0
|
||||
- From Git HEAD or commit (specify below)
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: git-commit-if
|
||||
attributes:
|
||||
label: Git commit hash (if applicable)
|
||||
description: "When building Barrier from Git, what commit hash did you checkout from?"
|
||||
placeholder: b0c0b42b
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: pkg-mgr-origin
|
||||
attributes:
|
||||
label: If applicable, where did you install Barrier from?
|
||||
description: This includes Snaps, Flatpaks, and self-built executables.
|
||||
validations:
|
||||
required: false
|
||||
- type: dropdown
|
||||
id: os
|
||||
attributes:
|
||||
label: What OSes are you seeing the problem on? (Check all that apply)
|
||||
multiple: true
|
||||
options:
|
||||
- Linux
|
||||
- Windows
|
||||
- macOS
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: os-version
|
||||
attributes:
|
||||
label: What OS versions are you using?
|
||||
description: This applies to both client(s) and the server.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Relevant log output
|
||||
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
|
||||
render: shell
|
||||
- type: textarea
|
||||
id: misc-info
|
||||
attributes:
|
||||
label: Any other information
|
||||
description: Please enter any other information we should know, if applicable.
|
|
@ -1 +0,0 @@
|
|||
blank_issues_enabled: false
|
|
@ -1,4 +0,0 @@
|
|||
## Contributor Checklist:
|
||||
|
||||
* [ ] I have created a file in the `doc/newsfragments` directory *IF* it is a
|
||||
user-visible change (and make sure to read the `README.md` in that directory)
|
|
@ -1,16 +1,14 @@
|
|||
build_env.*
|
||||
config.h
|
||||
.DS_Store
|
||||
*.pyc
|
||||
*.o
|
||||
*~
|
||||
\.*.swp
|
||||
*build-gui-Desktop_Qt*
|
||||
/bin
|
||||
/lib
|
||||
/build
|
||||
/CMakeFiles
|
||||
/ext/cryptopp562
|
||||
/ext/gmock-1.6.0
|
||||
/ext/gtest-1.6.0
|
||||
/ext/openssl
|
||||
/src/gui/Makefile*
|
||||
/src/gui/object_script*
|
||||
|
@ -19,16 +17,4 @@ config.h
|
|||
src/gui/gui.pro.user*
|
||||
src/gui/.qmake.stash
|
||||
src/gui/.rnd
|
||||
src/setup/win32/barrier.suo
|
||||
Makefile
|
||||
*.cmake
|
||||
**/CMakeFiles/
|
||||
CMakeCache.txt
|
||||
/rpm
|
||||
# Visual Studio 2015/2017 cache/options directory
|
||||
.vs/
|
||||
# VS Code Directory
|
||||
.vscode/
|
||||
# Transient in-project-directory dependencies
|
||||
/deps/
|
||||
/out/build/x64-Debug
|
||||
src/setup/win32/synergy.suo
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
[submodule "ext/gtest"]
|
||||
path = ext/gtest
|
||||
url = https://github.com/google/googletest.git
|
||||
[submodule "ext/gmock"]
|
||||
path = ext/gmock
|
||||
url = https://github.com/google/googlemock.git
|
||||
[submodule "ext/gulrak-filesystem"]
|
||||
path = ext/gulrak-filesystem
|
||||
url = https://github.com/gulrak/filesystem
|
|
@ -0,0 +1,13 @@
|
|||
"Instructions
|
||||
"Download vim script 411
|
||||
"http://www.vim.org/scripts/script.php?script_id=441
|
||||
"Install localvimrc.vim to .vim/plugin
|
||||
"
|
||||
" Hint: You can disable it asking before sourcing a file by adding this to
|
||||
" your .vimrc: let g:localvimrc_ask=0
|
||||
|
||||
set nosmarttab
|
||||
set noexpandtab
|
||||
set shiftwidth=8
|
||||
set softtabstop=0
|
||||
set tabstop=4
|
|
@ -1,7 +0,0 @@
|
|||
#
|
||||
# Barrier build parameters
|
||||
#
|
||||
BARRIER_VERSION_MAJOR = 2
|
||||
BARRIER_VERSION_MINOR = 4
|
||||
BARRIER_VERSION_PATCH = 0
|
||||
BARRIER_VERSION_STAGE = release
|
666
CMakeLists.txt
666
CMakeLists.txt
|
@ -1,12 +1,11 @@
|
|||
# Barrier -- mouse and keyboard sharing utility
|
||||
# Copyright (C) 2018 Debauchee Open Source Group
|
||||
# synergy -- mouse and keyboard sharing utility
|
||||
# Copyright (C) 2012-2016 Symless Ltd.
|
||||
# Copyright (C) 2009 Nick Bolton
|
||||
#
|
||||
#
|
||||
# This package is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# found in the file LICENSE that should have accompanied this file.
|
||||
#
|
||||
#
|
||||
# This package 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
|
||||
|
@ -15,447 +14,352 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
cmake_minimum_required (VERSION 3.4)
|
||||
project (barrier C CXX)
|
||||
# Version number for Synergy
|
||||
set(VERSION_MAJOR 1)
|
||||
set(VERSION_MINOR 8)
|
||||
set(VERSION_REV 4)
|
||||
set(VERSION_STAGE stable)
|
||||
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REV}")
|
||||
|
||||
option (BARRIER_BUILD_GUI "Build the GUI" ON)
|
||||
option (BARRIER_BUILD_INSTALLER "Build the installer" ON)
|
||||
option (BARRIER_BUILD_TESTS "Build the tests" ON)
|
||||
option (BARRIER_USE_EXTERNAL_GTEST "Use external installation of Google Test framework" OFF)
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
|
||||
set (CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
set (CMAKE_CXX_STANDARD 14)
|
||||
set (CMAKE_CXX_EXTENSIONS OFF)
|
||||
set (CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
|
||||
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
|
||||
|
||||
if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
add_definitions (-DNDEBUG)
|
||||
endif()
|
||||
|
||||
include (cmake/Version.cmake)
|
||||
include (cmake/Package.cmake)
|
||||
|
||||
# TODO: Find out why we need these, and remove them
|
||||
# CMake complains if we don't have this.
|
||||
if (COMMAND cmake_policy)
|
||||
cmake_policy (SET CMP0003 NEW)
|
||||
cmake_policy (SET CMP0005 NEW)
|
||||
cmake_policy(SET CMP0003 NEW)
|
||||
endif()
|
||||
|
||||
# Add headers to source list
|
||||
# We're escaping quotes in the Windows version number, because
|
||||
# for some reason CMake won't do it at config version 2.4.7
|
||||
# It seems that this restores the newer behaviour where define
|
||||
# args are not auto-escaped.
|
||||
if (COMMAND cmake_policy)
|
||||
cmake_policy(SET CMP0005 NEW)
|
||||
endif()
|
||||
|
||||
# First, declare project (important for prerequisite checks).
|
||||
project(synergy C CXX)
|
||||
|
||||
# put binaries in a different dir to make them easier to find.
|
||||
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
|
||||
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
|
||||
|
||||
# for unix, put debug files in a separate bin "debug" dir.
|
||||
# release bin files should stay in the root of the bin dir.
|
||||
if (CMAKE_GENERATOR STREQUAL "Unix Makefiles")
|
||||
if (CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin/debug)
|
||||
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib/debug)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Set some easy to type variables.
|
||||
set(root_dir ${CMAKE_SOURCE_DIR})
|
||||
set(cmake_dir ${root_dir}/res)
|
||||
set(bin_dir ${root_dir}/bin)
|
||||
set(doc_dir ${root_dir}/doc)
|
||||
set(doc_dir ${root_dir}/doc)
|
||||
|
||||
# Declare libs, so we can use list in linker later. There's probably
|
||||
# a more elegant way of doing this; with SCons, when you check for the
|
||||
# lib, it is automatically passed to the linker.
|
||||
set(libs)
|
||||
|
||||
# only include headers as "source" if not unix makefiles,
|
||||
# which is useful when using an IDE.
|
||||
if (${CMAKE_GENERATOR} STREQUAL "Unix Makefiles")
|
||||
set (BARRIER_ADD_HEADERS FALSE)
|
||||
set(SYNERGY_ADD_HEADERS FALSE)
|
||||
else()
|
||||
set (BARRIER_ADD_HEADERS TRUE)
|
||||
set(SYNERGY_ADD_HEADERS TRUE)
|
||||
endif()
|
||||
|
||||
set (libs)
|
||||
|
||||
# Depending on the platform, pass in the required defines.
|
||||
if (UNIX)
|
||||
if (NOT APPLE)
|
||||
set (CMAKE_POSITION_INDEPENDENT_CODE TRUE)
|
||||
endif()
|
||||
|
||||
# For config.h, detect the libraries, functions, etc.
|
||||
include (CheckIncludeFiles)
|
||||
include (CheckLibraryExists)
|
||||
include (CheckFunctionExists)
|
||||
include (CheckTypeSize)
|
||||
include (CheckIncludeFileCXX)
|
||||
include (CheckSymbolExists)
|
||||
include (CheckCSourceCompiles)
|
||||
include (FindPkgConfig)
|
||||
# warnings as errors:
|
||||
# we have a problem with people checking in code with warnings.
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wno-unused-local-typedef")
|
||||
|
||||
check_include_file_cxx (istream HAVE_ISTREAM)
|
||||
check_include_file_cxx (ostream HAVE_OSTREAM)
|
||||
check_include_file_cxx (sstream HAVE_SSTREAM)
|
||||
if (NOT APPLE)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
|
||||
endif()
|
||||
|
||||
check_include_files (inttypes.h HAVE_INTTYPES_H)
|
||||
check_include_files (locale.h HAVE_LOCALE_H)
|
||||
check_include_files (memory.h HAVE_MEMORY_H)
|
||||
check_include_files (stdlib.h HAVE_STDLIB_H)
|
||||
check_include_files (strings.h HAVE_STRINGS_H)
|
||||
check_include_files (string.h HAVE_STRING_H)
|
||||
check_include_files (sys/select.h HAVE_SYS_SELECT_H)
|
||||
check_include_files (sys/socket.h HAVE_SYS_SOCKET_H)
|
||||
check_include_files (sys/stat.h HAVE_SYS_STAT_H)
|
||||
check_include_files (sys/time.h HAVE_SYS_TIME_H)
|
||||
check_include_files (sys/utsname.h HAVE_SYS_UTSNAME_H)
|
||||
check_include_files (unistd.h HAVE_UNISTD_H)
|
||||
check_include_files (wchar.h HAVE_WCHAR_H)
|
||||
# For config.h, detect the libraries, functions, etc.
|
||||
include(CheckIncludeFiles)
|
||||
include(CheckLibraryExists)
|
||||
include(CheckFunctionExists)
|
||||
include(CheckTypeSize)
|
||||
include(CheckIncludeFileCXX)
|
||||
include(CheckSymbolExists)
|
||||
include(CheckCSourceCompiles)
|
||||
|
||||
check_function_exists (getpwuid_r HAVE_GETPWUID_R)
|
||||
check_function_exists (gmtime_r HAVE_GMTIME_R)
|
||||
check_function_exists (nanosleep HAVE_NANOSLEEP)
|
||||
check_function_exists (poll HAVE_POLL)
|
||||
check_function_exists (sigwait HAVE_POSIX_SIGWAIT)
|
||||
check_function_exists (strftime HAVE_STRFTIME)
|
||||
check_function_exists (inet_aton HAVE_INET_ATON)
|
||||
check_include_file_cxx(istream HAVE_ISTREAM)
|
||||
check_include_file_cxx(ostream HAVE_OSTREAM)
|
||||
check_include_file_cxx(sstream HAVE_SSTREAM)
|
||||
|
||||
# For some reason, the check_function_exists macro doesn't detect
|
||||
# the inet_aton on some pure Unix platforms (e.g. sunos5). So we
|
||||
# need to do a more detailed check and also include some extra libs.
|
||||
if (NOT HAVE_INET_ATON)
|
||||
set (CMAKE_REQUIRED_LIBRARIES nsl)
|
||||
check_include_files(inttypes.h HAVE_INTTYPES_H)
|
||||
check_include_files(locale.h HAVE_LOCALE_H)
|
||||
check_include_files(memory.h HAVE_MEMORY_H)
|
||||
check_include_files(stdlib.h HAVE_STDLIB_H)
|
||||
check_include_files(strings.h HAVE_STRINGS_H)
|
||||
check_include_files(string.h HAVE_STRING_H)
|
||||
check_include_files(sys/select.h HAVE_SYS_SELECT_H)
|
||||
check_include_files(sys/socket.h HAVE_SYS_SOCKET_H)
|
||||
check_include_files(sys/stat.h HAVE_SYS_STAT_H)
|
||||
check_include_files(sys/time.h HAVE_SYS_TIME_H)
|
||||
check_include_files(sys/utsname.h HAVE_SYS_UTSNAME_H)
|
||||
check_include_files(unistd.h HAVE_UNISTD_H)
|
||||
check_include_files(wchar.h HAVE_WCHAR_H)
|
||||
|
||||
check_c_source_compiles (
|
||||
"#include <arpa/inet.h>\n int main() { inet_aton (0, 0); }"
|
||||
HAVE_INET_ATON_ADV)
|
||||
check_function_exists(getpwuid_r HAVE_GETPWUID_R)
|
||||
check_function_exists(gmtime_r HAVE_GMTIME_R)
|
||||
check_function_exists(nanosleep HAVE_NANOSLEEP)
|
||||
check_function_exists(poll HAVE_POLL)
|
||||
check_function_exists(sigwait HAVE_POSIX_SIGWAIT)
|
||||
check_function_exists(strftime HAVE_STRFTIME)
|
||||
check_function_exists(vsnprintf HAVE_VSNPRINTF)
|
||||
check_function_exists(inet_aton HAVE_INET_ATON)
|
||||
|
||||
# For some reason, the check_function_exists macro doesn't detect
|
||||
# the inet_aton on some pure Unix platforms (e.g. sunos5). So we
|
||||
# need to do a more detailed check and also include some extra libs.
|
||||
if (NOT HAVE_INET_ATON)
|
||||
|
||||
set (CMAKE_REQUIRED_LIBRARIES)
|
||||
set(CMAKE_REQUIRED_LIBRARIES nsl)
|
||||
check_c_source_compiles(
|
||||
"#include <arpa/inet.h>\n int main() { inet_aton(0, 0); }"
|
||||
HAVE_INET_ATON_ADV)
|
||||
set(CMAKE_REQUIRED_LIBRARIES)
|
||||
|
||||
if (HAVE_INET_ATON_ADV)
|
||||
# Override the previous fail.
|
||||
set (HAVE_INET_ATON 1)
|
||||
if (HAVE_INET_ATON_ADV)
|
||||
|
||||
# Override the previous fail.
|
||||
set(HAVE_INET_ATON 1)
|
||||
|
||||
# Assume that both nsl and socket will be needed,
|
||||
# it seems safe to add socket on the back of nsl,
|
||||
# since socket only ever needed when nsl is needed.
|
||||
list (APPEND libs nsl socket)
|
||||
endif()
|
||||
# Assume that both nsl and socket will be needed,
|
||||
# it seems safe to add socket on the back of nsl,
|
||||
# since socket only ever needed when nsl is needed.
|
||||
list(APPEND libs nsl socket)
|
||||
|
||||
endif()
|
||||
endif()
|
||||
|
||||
check_type_size (char SIZEOF_CHAR)
|
||||
check_type_size (int SIZEOF_INT)
|
||||
check_type_size (long SIZEOF_LONG)
|
||||
check_type_size (short SIZEOF_SHORT)
|
||||
endif()
|
||||
|
||||
# pthread is used on both Linux and Mac
|
||||
set (CMAKE_THREAD_PREFER_PTHREAD TRUE)
|
||||
set (THREADS_PREFER_PTHREAD_FLAG TRUE)
|
||||
find_package (Threads REQUIRED)
|
||||
list (APPEND libs Threads::Threads)
|
||||
check_type_size(char SIZEOF_CHAR)
|
||||
check_type_size(int SIZEOF_INT)
|
||||
check_type_size(long SIZEOF_LONG)
|
||||
check_type_size(short SIZEOF_SHORT)
|
||||
|
||||
# curl is used on both Linux and Mac
|
||||
find_package (CURL)
|
||||
if (CURL_FOUND)
|
||||
include_directories(${CURL_INCLUDE_DIRS})
|
||||
list (APPEND libs ${CURL_LIBRARIES})
|
||||
# pthread is used on both Linux and Mac
|
||||
check_library_exists("pthread" pthread_create "" HAVE_PTHREAD)
|
||||
if (HAVE_PTHREAD)
|
||||
list(APPEND libs pthread)
|
||||
else()
|
||||
message(FATAL_ERROR "Missing library: pthread")
|
||||
endif()
|
||||
|
||||
else()
|
||||
message (FATAL_ERROR "Missing library: curl")
|
||||
endif()
|
||||
# curl is used on both Linux and Mac
|
||||
find_package(CURL)
|
||||
if (CURL_FOUND)
|
||||
list(APPEND libs curl)
|
||||
else()
|
||||
message(FATAL_ERROR "Missing library: curl")
|
||||
endif()
|
||||
|
||||
if (APPLE)
|
||||
message(STATUS "OSX_TARGET_MAJOR=${OSX_TARGET_MAJOR}")
|
||||
message(STATUS "OSX_TARGET_MINOR=${OSX_TARGET_MINOR}")
|
||||
|
||||
if (APPLE)
|
||||
set (CMAKE_CXX_FLAGS "--sysroot ${CMAKE_OSX_SYSROOT} ${CMAKE_CXX_FLAGS} -DGTEST_USE_OWN_TR1_TUPLE=1")
|
||||
if (NOT (OSX_TARGET_MAJOR EQUAL 10))
|
||||
message(FATAL_ERROR "Mac OS X target must be 10.x")
|
||||
endif ()
|
||||
|
||||
find_library (lib_ScreenSaver ScreenSaver)
|
||||
find_library (lib_IOKit IOKit)
|
||||
find_library (lib_ApplicationServices ApplicationServices)
|
||||
find_library (lib_Foundation Foundation)
|
||||
find_library (lib_Carbon Carbon)
|
||||
if (OSX_TARGET_MINOR LESS 6)
|
||||
# <= 10.5: 32-bit Intel and PowerPC
|
||||
set(CMAKE_OSX_ARCHITECTURES "ppc;i386"
|
||||
CACHE STRING "" FORCE)
|
||||
else()
|
||||
# >= 10.6: Intel only
|
||||
set(CMAKE_OSX_ARCHITECTURES "i386"
|
||||
CACHE STRING "" FORCE)
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_FLAGS "--sysroot ${CMAKE_OSX_SYSROOT} ${CMAKE_CXX_FLAGS} -DGTEST_USE_OWN_TR1_TUPLE=1")
|
||||
|
||||
list (APPEND libs
|
||||
${lib_ScreenSaver}
|
||||
${lib_IOKit}
|
||||
${lib_ApplicationServices}
|
||||
${lib_Foundation}
|
||||
${lib_Carbon}
|
||||
)
|
||||
find_library(lib_ScreenSaver ScreenSaver)
|
||||
find_library(lib_IOKit IOKit)
|
||||
find_library(lib_ApplicationServices ApplicationServices)
|
||||
find_library(lib_Foundation Foundation)
|
||||
find_library(lib_Carbon Carbon)
|
||||
|
||||
else() # not-apple
|
||||
# FreeBSD uses /usr/local for anything not part of base
|
||||
# Also package avahi-libdns puts dns_sd.h a bit deeper
|
||||
if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
|
||||
set (CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES};/usr/local/include;/usr/local/include/avahi-compat-libdns_sd")
|
||||
set (CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -L/usr/local/lib")
|
||||
include_directories("/usr/local/include" "/usr/local/include/avahi-compat-libdns_sd")
|
||||
link_directories("/usr/local/lib")
|
||||
endif()
|
||||
list(APPEND libs
|
||||
${lib_ScreenSaver}
|
||||
${lib_IOKit}
|
||||
${lib_ApplicationServices}
|
||||
${lib_Foundation}
|
||||
${lib_Carbon}
|
||||
)
|
||||
|
||||
if (${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD")
|
||||
set (CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES};/usr/X11R6/include;/usr/local/include;/usr/local/include/avahi-compat-libdns_sd")
|
||||
set (CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -L/usr/local/lib -L/usr/X11R6/lib")
|
||||
include_directories("/usr/local/include" "/usr/X11R6/include" "/usr/local/include/avahi-compat-libdns_sd")
|
||||
link_directories("/usr/local/lib")
|
||||
link_directories("/usr/X11R6/lib")
|
||||
endif()
|
||||
else() # not-apple
|
||||
|
||||
if (BARRIER_BUILD_GUI AND ${PKG_CONFIG_FOUND})
|
||||
pkg_check_modules (AVAHI_COMPAT REQUIRED avahi-compat-libdns_sd)
|
||||
include_directories (BEFORE SYSTEM ${AVAHI_COMPAT_INCLUDE_DIRS})
|
||||
set (CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES};${AVAHI_COMPAT_INCLUDE_DIRS}")
|
||||
endif ()
|
||||
# add include dir for bsd (posix uses /usr/include/)
|
||||
set(CMAKE_INCLUDE_PATH "${CMAKE_INCLUDE_PATH}:/usr/local/include")
|
||||
|
||||
set (XKBlib "X11/Xlib.h;X11/XKBlib.h")
|
||||
set (CMAKE_EXTRA_INCLUDE_FILES "${XKBlib};X11/extensions/Xrandr.h")
|
||||
check_type_size ("XRRNotifyEvent" X11_EXTENSIONS_XRANDR_H)
|
||||
set (HAVE_X11_EXTENSIONS_XRANDR_H "${X11_EXTENSIONS_XRANDR_H}")
|
||||
set (CMAKE_EXTRA_INCLUDE_FILES)
|
||||
set(XKBlib "X11/Xlib.h;X11/XKBlib.h")
|
||||
set(CMAKE_EXTRA_INCLUDE_FILES "${XKBlib};X11/extensions/Xrandr.h")
|
||||
check_type_size("XRRNotifyEvent" X11_EXTENSIONS_XRANDR_H)
|
||||
set(HAVE_X11_EXTENSIONS_XRANDR_H "${X11_EXTENSIONS_XRANDR_H}")
|
||||
set(CMAKE_EXTRA_INCLUDE_FILES)
|
||||
|
||||
check_include_files ("${XKBlib};X11/extensions/dpms.h" HAVE_X11_EXTENSIONS_DPMS_H)
|
||||
check_include_files ("X11/extensions/Xinerama.h" HAVE_X11_EXTENSIONS_XINERAMA_H)
|
||||
check_include_files ("${XKBlib};X11/extensions/XKBstr.h" HAVE_X11_EXTENSIONS_XKBSTR_H)
|
||||
check_include_files ("X11/extensions/XKB.h" HAVE_XKB_EXTENSION)
|
||||
check_include_files ("X11/extensions/XTest.h" HAVE_X11_EXTENSIONS_XTEST_H)
|
||||
check_include_files ("${XKBlib}" HAVE_X11_XKBLIB_H)
|
||||
check_include_files ("X11/extensions/XInput2.h" HAVE_XI2)
|
||||
check_include_files ("dns_sd.h" HAVE_DNSSD)
|
||||
check_include_files("${XKBlib};X11/extensions/dpms.h" HAVE_X11_EXTENSIONS_DPMS_H)
|
||||
check_include_files("X11/extensions/Xinerama.h" HAVE_X11_EXTENSIONS_XINERAMA_H)
|
||||
check_include_files("${XKBlib};X11/extensions/XKBstr.h" HAVE_X11_EXTENSIONS_XKBSTR_H)
|
||||
check_include_files("X11/extensions/XKB.h" HAVE_XKB_EXTENSION)
|
||||
check_include_files("X11/extensions/XTest.h" HAVE_X11_EXTENSIONS_XTEST_H)
|
||||
check_include_files("${XKBlib}" HAVE_X11_XKBLIB_H)
|
||||
check_include_files("X11/extensions/XInput2.h" HAVE_XI2)
|
||||
|
||||
if (NOT HAVE_X11_EXTENSIONS_XTEST_H)
|
||||
message (FATAL_ERROR "Missing header: X11/extensions/XTest.h")
|
||||
endif()
|
||||
if (HAVE_X11_EXTENSIONS_DPMS_H)
|
||||
# Assume that function prototypes declared, when include exists.
|
||||
set(HAVE_DPMS_PROTOTYPES 1)
|
||||
endif()
|
||||
|
||||
if (NOT HAVE_X11_XKBLIB_H)
|
||||
message (FATAL_ERROR "Missing header: " ${XKBlib})
|
||||
endif()
|
||||
if (NOT HAVE_X11_XKBLIB_H)
|
||||
message(FATAL_ERROR "Missing header: " ${XKBlib})
|
||||
endif()
|
||||
|
||||
if (BARRIER_BUILD_GUI AND NOT HAVE_DNSSD)
|
||||
message (FATAL_ERROR "Missing header: dns_sd.h")
|
||||
endif()
|
||||
check_library_exists("SM;ICE" IceConnectionNumber "" HAVE_ICE)
|
||||
check_library_exists("Xext;X11" DPMSQueryExtension "" HAVE_Xext)
|
||||
check_library_exists("Xtst;Xext;X11" XTestQueryExtension "" HAVE_Xtst)
|
||||
check_library_exists("Xinerama" XineramaQueryExtension "" HAVE_Xinerama)
|
||||
check_library_exists("Xi" XISelectEvents "" HAVE_Xi)
|
||||
check_library_exists("Xrandr" XRRQueryExtension "" HAVE_Xrandr)
|
||||
|
||||
check_library_exists ("SM;ICE" IceConnectionNumber "" HAVE_ICE)
|
||||
check_library_exists ("Xext;X11" DPMSQueryExtension "" HAVE_Xext)
|
||||
check_library_exists ("Xtst;Xext;X11" XTestQueryExtension "" HAVE_Xtst)
|
||||
check_library_exists ("Xinerama" XineramaQueryExtension "" HAVE_Xinerama)
|
||||
check_library_exists ("Xi" XISelectEvents "" HAVE_Xi)
|
||||
check_library_exists ("Xrandr" XRRQueryExtension "" HAVE_Xrandr)
|
||||
if (HAVE_ICE)
|
||||
|
||||
if (HAVE_ICE)
|
||||
# Assume we have SM if we have ICE.
|
||||
set(HAVE_SM 1)
|
||||
list(APPEND libs SM ICE)
|
||||
|
||||
# Assume we have SM if we have ICE.
|
||||
set (HAVE_SM 1)
|
||||
list (APPEND libs SM ICE)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
if (HAVE_Xtst)
|
||||
|
||||
if (HAVE_Xtst)
|
||||
# Xtxt depends on X11.
|
||||
set(HAVE_X11)
|
||||
list(APPEND libs Xtst X11)
|
||||
|
||||
# Xtxt depends on X11.
|
||||
set (HAVE_X11 1)
|
||||
list (APPEND libs Xtst X11)
|
||||
else()
|
||||
|
||||
else()
|
||||
message(FATAL_ERROR "Missing library: Xtst")
|
||||
|
||||
message (FATAL_ERROR "Missing library: Xtst")
|
||||
endif()
|
||||
|
||||
endif()
|
||||
if (HAVE_Xext)
|
||||
list(APPEND libs Xext)
|
||||
endif()
|
||||
|
||||
if (HAVE_Xext)
|
||||
list (APPEND libs Xext)
|
||||
endif()
|
||||
if (HAVE_Xinerama)
|
||||
list(APPEND libs Xinerama)
|
||||
else (HAVE_Xinerama)
|
||||
if (HAVE_X11_EXTENSIONS_XINERAMA_H)
|
||||
set(HAVE_X11_EXTENSIONS_XINERAMA_H 0)
|
||||
message(WARNING "Old Xinerama implementation detected, disabled")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (HAVE_Xinerama)
|
||||
list (APPEND libs Xinerama)
|
||||
else (HAVE_Xinerama)
|
||||
if (HAVE_X11_EXTENSIONS_XINERAMA_H)
|
||||
set (HAVE_X11_EXTENSIONS_XINERAMA_H 0)
|
||||
message (WARNING "Old Xinerama implementation detected, disabled")
|
||||
endif()
|
||||
endif()
|
||||
if (HAVE_Xrandr)
|
||||
list(APPEND libs Xrandr)
|
||||
endif()
|
||||
|
||||
# this was outside of the linux scope,
|
||||
# not sure why, moving it back inside.
|
||||
if(HAVE_Xi)
|
||||
list(APPEND libs Xi)
|
||||
endif()
|
||||
|
||||
if (HAVE_Xrandr)
|
||||
list (APPEND libs Xrandr)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# this was outside of the linux scope,
|
||||
# not sure why, moving it back inside.
|
||||
if (HAVE_Xi)
|
||||
list (APPEND libs Xi)
|
||||
endif()
|
||||
# For config.h, set some static values; it may be a good idea to make
|
||||
# these values dynamic for non-standard UNIX compilers.
|
||||
set(ACCEPT_TYPE_ARG3 socklen_t)
|
||||
set(HAVE_CXX_BOOL 1)
|
||||
set(HAVE_CXX_CASTS 1)
|
||||
set(HAVE_CXX_EXCEPTIONS 1)
|
||||
set(HAVE_CXX_MUTABLE 1)
|
||||
set(HAVE_CXX_STDLIB 1)
|
||||
set(HAVE_PTHREAD_SIGNAL 1)
|
||||
set(SELECT_TYPE_ARG1 int)
|
||||
set(SELECT_TYPE_ARG234 "(fd_set *)")
|
||||
set(SELECT_TYPE_ARG5 "(struct timeval *)")
|
||||
set(STDC_HEADERS 1)
|
||||
set(TIME_WITH_SYS_TIME 1)
|
||||
set(HAVE_SOCKLEN_T 1)
|
||||
|
||||
endif()
|
||||
# For config.h, save the results based on a template (config.h.in).
|
||||
configure_file(res/config.h.in ${root_dir}/config.h)
|
||||
|
||||
# For config.h, set some static values; it may be a good idea to make
|
||||
# these values dynamic for non-standard UNIX compilers.
|
||||
set (ACCEPT_TYPE_ARG3 socklen_t)
|
||||
set (HAVE_CXX_BOOL 1)
|
||||
set (HAVE_CXX_CASTS 1)
|
||||
set (HAVE_CXX_EXCEPTIONS 1)
|
||||
set (HAVE_CXX_MUTABLE 1)
|
||||
set (HAVE_CXX_STDLIB 1)
|
||||
set (SELECT_TYPE_ARG1 int)
|
||||
set (SELECT_TYPE_ARG234 " (fd_set *)")
|
||||
set (SELECT_TYPE_ARG5 " (struct timeval *)")
|
||||
set (STDC_HEADERS 1)
|
||||
set (TIME_WITH_SYS_TIME 1)
|
||||
set (HAVE_SOCKLEN_T 1)
|
||||
add_definitions(-DSYSAPI_UNIX=1 -DHAVE_CONFIG_H)
|
||||
|
||||
# For config.h, save the results based on a template (config.h.in).
|
||||
configure_file (res/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/src/lib/config.h)
|
||||
if (APPLE)
|
||||
add_definitions(-DWINAPI_CARBON=1 -D_THREAD_SAFE)
|
||||
else (APPLE)
|
||||
add_definitions(-DWINAPI_XWINDOWS=1)
|
||||
endif()
|
||||
|
||||
add_definitions (-DSYSAPI_UNIX=1 -DHAVE_CONFIG_H)
|
||||
else() # not-unix
|
||||
|
||||
if (APPLE)
|
||||
add_definitions (-DWINAPI_CARBON=1 -D_THREAD_SAFE)
|
||||
else()
|
||||
add_definitions (-DWINAPI_XWINDOWS=1)
|
||||
endif()
|
||||
list(APPEND libs Wtsapi32 Userenv Wininet comsuppw Shlwapi)
|
||||
|
||||
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /D _BIND_TO_CURRENT_VCLIBS_VERSION=1")
|
||||
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MD /O2 /Ob2")
|
||||
add_definitions(
|
||||
/DWIN32
|
||||
/D_WINDOWS
|
||||
/D_CRT_SECURE_NO_WARNINGS
|
||||
/DVERSION=\"${VERSION}\"
|
||||
)
|
||||
|
||||
if (MSVC_VERSION EQUAL 1600)
|
||||
set(SLN_FILENAME "${CMAKE_CURRENT_BINARY_DIR}/synergy.sln")
|
||||
if (EXISTS "${SLN_FILENAME}" )
|
||||
file(APPEND "${SLN_FILENAME}" "\n# This should be regenerated!\n")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
list (APPEND libs Wtsapi32 Userenv Wininet comsuppw Shlwapi)
|
||||
|
||||
add_definitions (
|
||||
/DSYSAPI_WIN32=1
|
||||
/DWINAPI_MSWINDOWS=1
|
||||
/D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING=1 # tr1 is used from gtest and gmock
|
||||
/DWIN32
|
||||
/D_WINDOWS
|
||||
/D_CRT_SECURE_NO_WARNINGS
|
||||
/DBARRIER_VERSION=\"${BARRIER_VERSION}\"
|
||||
/D_XKEYCHECK_H
|
||||
)
|
||||
endif()
|
||||
|
||||
include_directories("${CMAKE_SOURCE_DIR}/ext/gulrak-filesystem/include")
|
||||
add_subdirectory(src)
|
||||
|
||||
#
|
||||
# OpenSSL
|
||||
#
|
||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||
set (OPENSSL_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/ext/openssl/windows)
|
||||
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
set (OPENSSL_ROOT "${OPENSSL_ROOT}/x64")
|
||||
else()
|
||||
set (OPENSSL_ROOT "${OPENSSL_ROOT}/x86")
|
||||
endif()
|
||||
if (WIN32)
|
||||
# TODO: consider using /analyze to uncover potential bugs in the source code.
|
||||
|
||||
include_directories (BEFORE SYSTEM ${OPENSSL_ROOT}/include)
|
||||
set (OPENSSL_LIBS
|
||||
${OPENSSL_ROOT}/lib/libeay32.lib
|
||||
${OPENSSL_ROOT}/lib/ssleay32.lib
|
||||
)
|
||||
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
find_program(APT_PROGRAM "apt")
|
||||
find_program(BREW_PROGRAM "brew")
|
||||
find_program(PORT_PROGRAM "port")
|
||||
# /WX - warnings as errors (we have a problem with people checking in code with warnings).
|
||||
# /FR - generate browse information (ncb files) useful for using IDE.
|
||||
# /MP - use multi cores to compile.
|
||||
# /D _BIND_TO_CURRENT_VCLIBS_VERSION - TODO: explain why.
|
||||
# /D _SECURE_SCL=1 - find bugs with iterators.
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX /FR /MP /D _BIND_TO_CURRENT_VCLIBS_VERSION=1 /D _SECURE_SCL=1")
|
||||
|
||||
# /MD - use multi-core libraries.
|
||||
# /O2 - get the fastest code.
|
||||
# /Ob2 - expand inline functions (auto-inlining).
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MD /O2 /Ob2")
|
||||
|
||||
if (IS_DIRECTORY /opt/procursus AND APT_PROGRAM)
|
||||
# procursus/apt
|
||||
set (OPENSSL_ROOT /opt/procursus)
|
||||
|
||||
include_directories (BEFORE SYSTEM ${OPENSSL_ROOT}/include)
|
||||
|
||||
set (OPENSSL_LIBS
|
||||
${OPENSSL_ROOT}/lib/libssl.a
|
||||
${OPENSSL_ROOT}/lib/libcrypto.a
|
||||
)
|
||||
elseif (IS_DIRECTORY /opt/local AND PORT_PROGRAM)
|
||||
# macports
|
||||
set (OPENSSL_ROOT /opt/local)
|
||||
|
||||
set (OPENSSL_LIBS
|
||||
${OPENSSL_ROOT}/lib/libssl.a
|
||||
${OPENSSL_ROOT}/lib/libcrypto.a
|
||||
z
|
||||
)
|
||||
elseif (IS_DIRECTORY /usr/local/opt/openssl AND BREW_PROGRAM)
|
||||
# brew
|
||||
set (OPENSSL_ROOT /usr/local/opt/openssl)
|
||||
|
||||
include_directories (BEFORE SYSTEM ${OPENSSL_ROOT}/include)
|
||||
|
||||
set (OPENSSL_LIBS
|
||||
${OPENSSL_ROOT}/lib/libssl.a
|
||||
${OPENSSL_ROOT}/lib/libcrypto.a
|
||||
)
|
||||
elseif (IS_DIRECTORY /opt/homebrew/opt/openssl AND BREW_PROGRAM)
|
||||
# brew
|
||||
set (OPENSSL_ROOT /opt/homebrew/opt/openssl)
|
||||
|
||||
include_directories (BEFORE SYSTEM ${OPENSSL_ROOT}/include)
|
||||
|
||||
set (OPENSSL_LIBS
|
||||
${OPENSSL_ROOT}/lib/libssl.a
|
||||
${OPENSSL_ROOT}/lib/libcrypto.a
|
||||
)
|
||||
endif()
|
||||
|
||||
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
set (OPENSSL_LIBS ssl crypto)
|
||||
else()
|
||||
find_library (lib_ssl ssl)
|
||||
find_library (lib_crypto crypto)
|
||||
if (NOT lib_ssl)
|
||||
message(FATAL_ERROR "openssl library not found")
|
||||
elseif (NOT lib_crypto)
|
||||
message(FATAL_ERROR "crypto library not found")
|
||||
endif()
|
||||
set (OPENSSL_LIBS ${lib_ssl} ${lib_crypto})
|
||||
endif()
|
||||
|
||||
#
|
||||
# Configure_file... but for directories, recursively.
|
||||
#
|
||||
macro (configure_files srcDir destDir)
|
||||
message (STATUS "Configuring directory ${destDir}")
|
||||
make_directory (${destDir})
|
||||
|
||||
file (GLOB_RECURSE sourceFiles RELATIVE ${srcDir} ${srcDir}/*)
|
||||
file (GLOB_RECURSE templateFiles LIST_DIRECTORIES false RELATIVE ${srcDir} ${srcDir}/*.in)
|
||||
list (REMOVE_ITEM sourceFiles ${templateFiles})
|
||||
|
||||
foreach (sourceFile ${sourceFiles})
|
||||
set (sourceFilePath ${srcDir}/${sourceFile})
|
||||
if (IS_DIRECTORY ${sourceFilePath})
|
||||
message (STATUS "Copying directory ${sourceFile}")
|
||||
make_directory (${destDir}/${sourceFile})
|
||||
else()
|
||||
message (STATUS "Copying file ${sourceFile}")
|
||||
configure_file (${sourceFilePath} ${destDir}/${sourceFile} COPYONLY)
|
||||
endif()
|
||||
endforeach (sourceFile)
|
||||
|
||||
foreach (templateFile ${templateFiles})
|
||||
set (sourceTemplateFilePath ${srcDir}/${templateFile})
|
||||
string (REGEX REPLACE "\.in$" "" templateFile ${templateFile})
|
||||
message (STATUS "Configuring file ${templateFile}")
|
||||
configure_file (${sourceTemplateFilePath} ${destDir}/${templateFile} @ONLY)
|
||||
endforeach (templateFile)
|
||||
endmacro (configure_files)
|
||||
|
||||
if (${BARRIER_BUILD_INSTALLER})
|
||||
#
|
||||
# macOS app Bundle
|
||||
#
|
||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
set (CMAKE_INSTALL_RPATH "@loader_path/../Libraries;@loader_path/../Frameworks")
|
||||
set (BARRIER_BUNDLE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dist/macos/bundle)
|
||||
set (BARRIER_BUNDLE_DIR ${CMAKE_BINARY_DIR}/bundle)
|
||||
set (BARRIER_BUNDLE_APP_DIR ${BARRIER_BUNDLE_DIR}/Barrier.app)
|
||||
set (BARRIER_BUNDLE_BINARY_DIR ${BARRIER_BUNDLE_APP_DIR}/Contents/MacOS)
|
||||
|
||||
configure_files (${BARRIER_BUNDLE_SOURCE_DIR} ${BARRIER_BUNDLE_DIR})
|
||||
|
||||
add_custom_target(Barrier_MacOS ALL
|
||||
bash build_dist.sh
|
||||
DEPENDS barrier barriers barrierc
|
||||
WORKING_DIRECTORY ${BARRIER_BUNDLE_DIR})
|
||||
if (${CMAKE_SYSTEM_NAME} MATCHES "IRIX")
|
||||
set_target_properties(synergys PROPERTIES LINK_FLAGS "-all -woff 33 -woff 84 -woff 15")
|
||||
set_target_properties(synergyc PROPERTIES LINK_FLAGS "-all -woff 33 -woff 84 -woff 15")
|
||||
set_target_properties(synergyd PROPERTIES LINK_FLAGS "-all -woff 33 -woff 84 -woff 15")
|
||||
endif()
|
||||
|
||||
#
|
||||
# Windows installer
|
||||
#
|
||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||
set (BARRIER_WIX_VERSION "${BARRIER_VERSION_MAJOR}.${BARRIER_VERSION_MINOR}.${BARRIER_VERSION_PATCH}")
|
||||
message (STATUS "Configuring the wix installer")
|
||||
configure_files (${CMAKE_CURRENT_SOURCE_DIR}/dist/wix ${CMAKE_BINARY_DIR}/installer-wix)
|
||||
message (STATUS "Configuring the inno installer")
|
||||
configure_files (${CMAKE_CURRENT_SOURCE_DIR}/dist/inno ${CMAKE_BINARY_DIR}/installer-inno)
|
||||
if (CONF_CPACK)
|
||||
message(FATAL_ERROR "CPack support has been removed.")
|
||||
endif()
|
||||
|
||||
#
|
||||
# Linux installation
|
||||
#
|
||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
configure_files (${CMAKE_CURRENT_SOURCE_DIR}/dist/rpm ${CMAKE_BINARY_DIR}/rpm)
|
||||
install(FILES res/barrier.svg DESTINATION share/icons/hicolor/scalable/apps)
|
||||
if("${VERSION_MAJOR}" STREQUAL "2")
|
||||
install(FILES res/barrier2.desktop DESTINATION share/applications)
|
||||
else()
|
||||
install(FILES res/barrier.desktop DESTINATION share/applications)
|
||||
endif()
|
||||
if (CONF_DOXYGEN)
|
||||
|
||||
set(VERSION, "${VERSION}")
|
||||
|
||||
# For doxygen.cfg, save the results based on a template (doxygen.cfg.in).
|
||||
configure_file(${cmake_dir}/doxygen.cfg.in ${doc_dir}/doxygen.cfg)
|
||||
|
||||
endif()
|
||||
|
||||
else()
|
||||
message (STATUS "NOT configuring the installer")
|
||||
endif()
|
||||
|
||||
enable_testing()
|
||||
|
||||
add_subdirectory (src)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Compiling: https://github.com/symless/synergy/wiki/Compiling
|
72
ChangeLog
72
ChangeLog
|
@ -1,66 +1,16 @@
|
|||
v1.9.0-rc3
|
||||
============
|
||||
Bug #4132 - Laggy mouse cursor on macOS clients
|
||||
|
||||
v1.9.0-rc2
|
||||
===========
|
||||
Bug #5901 - Stored serial key corrupted on macOS
|
||||
Bug #5757 - Failure to build against OpenSSL v1.1.0
|
||||
|
||||
v1.9.0-rc1
|
||||
==========
|
||||
Bug #5467 - Failing to automatically download and install Bonjour
|
||||
Enhancement #5389 - Ported GUI to Qt 5
|
||||
Enhancement #4978 - Windows: Added support for Visual Studio 2015
|
||||
Enhancement #5398 - Windows: Updated OpenSSL dependency to 1.0.2k
|
||||
|
||||
v1.8.8-stable
|
||||
==========
|
||||
Bug #5196 - Some keys on Korean and Japanese keyboards have the same keycode
|
||||
Bug #5578 - Pressing Hangul key results in alt+'a'
|
||||
Bug #5785 - Can't switch screens when cursor is in a corner
|
||||
Bug #3992 - macOS: Dragging is broken in Unity 3D
|
||||
Bug #5075 - macOS: Build fails on macOS 10.9 due to unknown compiler flag
|
||||
Bug #5809 - macOS: No version number is shown in the App Info dialog
|
||||
Bug #3197 - Linux: switchDoubleTap option is not working
|
||||
Bug #4477 - Linux: Mouse buttons higher than id 10 result in crash
|
||||
Bug #5832 - Linux: Screen size misdetected on multi-monitor display
|
||||
Enhancement #4504 - Improved Korean language description
|
||||
Enhancement #5525 - Added support for precise screen positioning in config file
|
||||
Enhancement #4290 - Windows: Removed annoying alt+print screen functionality
|
||||
|
||||
v1.8.7-stable
|
||||
=============
|
||||
Bug #5784 - Edition changes when reopening GUI
|
||||
|
||||
v1.8.6-stable
|
||||
=============
|
||||
Bug #5592 - Some keys don't work for macOS Sierra clients
|
||||
Bug #5186 - Cursor stuck on client when using multi-DPI server
|
||||
Bug #5722 - Malformed serial key in registry will crash GUI on startup
|
||||
Bug #5752 - Tab order is incorrect on Settings dialog
|
||||
Enhancement #5699 - Unified installers on macOS
|
||||
Feature #4836 - macOS Sierra build
|
||||
|
||||
v1.8.5-stable
|
||||
=============
|
||||
Bug #5680 - Server crashes when disconnecting SSL clients
|
||||
Bug #5626 - Build fails using Xcode 8 and macOS SDK 10.12
|
||||
Feature #5657 - Trial version support
|
||||
Feature #5707 - User upgrade statistics
|
||||
|
||||
v1.8.4-stable
|
||||
=============
|
||||
Bug #5183 - Slowly moving the cursor has no effect on high DPI clients
|
||||
Bug #4041 - UHD/4K DPI scaling broken on Windows servers
|
||||
Bug #4420 - When XRandR adds a screen, it is inaccessible
|
||||
Bug #5603 - Activation notification depends on existence of /etc/os-release
|
||||
Bug #5624 - Update notification sometimes requests a downgrade
|
||||
Bug #5329 - Current date is shown for build date in the about dialog
|
||||
Enhancement #5617 - Remove redundant plugin infrastructure
|
||||
Enhancement #5627 - Move SSL certificate generation to main window
|
||||
Enhancement #5628 - Move SSL implementation into core binary
|
||||
Enhancement #5629 - Move activation from wizard into new dialog window
|
||||
|
||||
Bug #4041 UHD/4K DPI scaling broken on Windows servers
|
||||
Bug #4420 When XRandR adds a screen, it is inaccessible
|
||||
Bug #5603 Activation notification depends on existence of /etc/os-release
|
||||
Bug #5624 Update notification sometimes requests a downgrade
|
||||
Bug #5329 Current date is shown for build date in the about dialog
|
||||
Bug #5640 Synergy branding is inconsistent across platforms
|
||||
Enhancement #5617 Remove redundant plugin infrastructure
|
||||
Enhancement #5627 Move SSL certificate generation to main window
|
||||
Enhancement #5628 Move SSL implementation into core binary
|
||||
Enhancement #5629 Move activation from wizard into new dialog window
|
||||
|
||||
v1.8.3-stable
|
||||
=============
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
Help: http://symless.com/help/
|
||||
Wiki: https://github.com/symless/synergy/wiki/
|
63
LICENSE
63
LICENSE
|
@ -1,9 +1,9 @@
|
|||
Copyright (C) 2018 Debauchee Open Source Group
|
||||
synergy -- mouse and keyboard sharing utility
|
||||
Copyright (C) 2012-2016 Symless Ltd.
|
||||
Copyright (C) 2008-2014 Nick Bolton
|
||||
Copyright (C) 2002-2014 Chris Schoeneman
|
||||
|
||||
This program is released under the GPL with the additional exemption
|
||||
This program is released under the GPL with the additional exemption
|
||||
that compiling, linking, and/or using OpenSSL is allowed.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
|
@ -286,62 +286,3 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
|||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program 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.
|
||||
|
||||
This program 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 this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
Synergy
|
||||
=======
|
||||
|
||||
Share one mouse and keyboard between multiple computers.
|
||||
|
||||
Synergy is free and open source (free as in free speech),
|
||||
meaning you are free to run it and redistribute it with
|
||||
or without changes.
|
||||
|
||||
Just use "hm conf" and "hm build" to compile (./hm.sh on
|
||||
Linux and Mac).
|
||||
|
||||
For detailed compile instructions:
|
||||
https://github.com/symless/synergy/wiki/Compiling
|
||||
|
||||
Happy hacking!
|
148
README.md
148
README.md
|
@ -1,148 +0,0 @@
|
|||
# Barrier
|
||||
|
||||
Eliminate the barrier between your machines.
|
||||
Find [releases for windows and macOS here](https://github.com/debauchee/barrier/releases).
|
||||
Your distro probably already has barrier packaged for it, see [distro specific packages](#distro-specific-packages)
|
||||
below for a list. Alternatively, we also provide a [flatpak](https://github.com/flathub/com.github.debauchee.barrier)
|
||||
and a [snap](https://snapcraft.io/barrier).
|
||||
|
||||
### Contact info:
|
||||
|
||||
- `#barrier` on LiberaChat IRC network
|
||||
|
||||
#### CI Build Status
|
||||
|
||||
Master branch overall build status: [](https://dev.azure.com/debauchee/Barrier/_build/latest?definitionId=1&branchName=master)
|
||||
|
||||
|Platform |Build Status|
|
||||
| --:|:-- |
|
||||
|Linux |[](https://dev.azure.com/debauchee/Barrier/_build/latest?definitionId=1&branchName=master)|
|
||||
|Mac |[](https://dev.azure.com/debauchee/Barrier/_build/latest?definitionId=1&branchName=master)|
|
||||
|Windows Debug |[](https://dev.azure.com/debauchee/Barrier/_build/latest?definitionId=1&branchName=master)|
|
||||
|Windows Release|[](https://dev.azure.com/debauchee/Barrier/_build/latest?definitionId=1&branchName=master)|
|
||||
|Snap |[](https://build.snapcraft.io/user/debauchee/barrier)|
|
||||
|
||||
Our CI Builds are provided by Microsoft Azure Pipelines, Flathub, and Canonical.
|
||||
|
||||
### What is it?
|
||||
|
||||
Barrier is software that mimics the functionality of a KVM switch, which historically would allow you to use a single keyboard and mouse to control multiple computers by physically turning a dial on the box to switch the machine you're controlling at any given moment. Barrier does this in software, allowing you to tell it which machine to control by moving your mouse to the edge of the screen, or by using a keypress to switch focus to a different system.
|
||||
|
||||
Barrier was forked from Symless's Synergy 1.9 codebase. Synergy was a commercialized reimplementation of the original CosmoSynergy written by Chris Schoeneman.
|
||||
|
||||
At the moment, barrier is not compatible with synergy. Barrier needs to be installed on all machines that will share keyboard and mouse.
|
||||
|
||||
### What's different?
|
||||
|
||||
Whereas Synergy has moved beyond its goals from the 1.x era, Barrier aims to maintain that simplicity.
|
||||
Barrier will let you use your keyboard and mouse from one computer to control one or more other computers.
|
||||
Clipboard sharing is supported.
|
||||
That's it.
|
||||
|
||||
### Project goals
|
||||
|
||||
Hassle-free reliability. We are users, too. Barrier was created so that we could solve the issues we had with synergy and then share these fixes with other users.
|
||||
|
||||
Compatibility. We use more than one operating system and you probably do, too. Windows, OSX, Linux, FreeBSD... Barrier should "just work". We will also have our eye on Wayland when the time comes.
|
||||
|
||||
Communication. Everything we do is in the open. Our issue tracker will let you see if others are having the same problem you're having and will allow you to add additional information. You will also be able to see when progress is made and how the issue gets resolved.
|
||||
|
||||
### Usage
|
||||
|
||||
Install and run barrier on each machine that will be sharing.
|
||||
On the machine with the keyboard and mouse, make it the server.
|
||||
|
||||
Click the "Configure server" button and drag a new screen onto the grid for each client machine.
|
||||
Ensure the "screen name" matches exactly (case-sensitive) for each configured screen -- the clients' barrier windows will tell you their screen names (just above the server IP).
|
||||
|
||||
On the client(s), put in the server machine's IP address (or use Bonjour/auto configuration when prompted) and "start" them.
|
||||
You should see `Barrier is running` on both server and clients.
|
||||
You should now be able to move the mouse between all the screens as if they were the same machine.
|
||||
|
||||
Note that if the keyboard's Scroll Lock is active then this will prevent the mouse from switching screens.
|
||||
|
||||
### Contact & support
|
||||
|
||||
Please be aware that the *only* way to draw our attention to a bug is to create a new issue in [the issue tracker](https://github.com/debauchee/barrier/issues). Write a clear, concise, detailed report and you will get a clear, concise, detailed response. Priority is always given to issues that affect a wider range of users.
|
||||
|
||||
For short and simple questions or to just say hello find us on the LiberaChat IRC network in the #barrier channel.
|
||||
|
||||
### Contributions
|
||||
|
||||
At this time we are looking for developers to help fix the issues found in the issue tracker.
|
||||
Submit pull requests once you've polished up your patch and we'll review and possibly merge it.
|
||||
|
||||
Most pull requests will need to include a release note.
|
||||
See docs/newsfragments/README.md for documentation of how to do that.
|
||||
|
||||
## Distro specific packages
|
||||
|
||||
While not a comprehensive list, repology provides a decent list of distro
|
||||
specific packages.
|
||||
|
||||
[](https://repology.org/project/barrier/versions)
|
||||
|
||||
## FAQ - Frequently Asked Questions
|
||||
|
||||
**Q: Does drag and drop work on linux?**
|
||||
|
||||
> A: No *(see [#855](https://github.com/debauchee/barrier/issues/855) if you'd like to change that)*
|
||||
|
||||
|
||||
**Q: What OSes are supported?**
|
||||
|
||||
> A: The [most recent release](https://github.com/debauchee/barrier/releases/latest) of Barrier is known to work on:
|
||||
> - Windows 7, 8, 8.1, 10, and 11
|
||||
> - macOS *(previously known as OS X or Mac OS X)*
|
||||
> - _The current GUI does **not** work on OS versions prior to macOS 10.12 Sierra (but see the related answer below)_
|
||||
> - Linux
|
||||
> - FreeBSD
|
||||
> - OpenBSD
|
||||
|
||||
|
||||
**Q: Are 32-bit versions of Windows supported?**
|
||||
|
||||
> A: No
|
||||
|
||||
|
||||
__Q: Is it possible to use Barrier on Mac OS X / OS X versions prior to 10.12?__
|
||||
|
||||
> A: Not officially.
|
||||
> - For OS X 10.10 Yosemite and later:
|
||||
> - [Barrier v2.1.0](https://github.com/debauchee/barrier/releases/tag/v2.1.0) or earlier _may_ work.
|
||||
> - For Mac OS X 10.9 Mavericks _(and perhaps earlier)_:
|
||||
> 1. the command-line portions of the [current release](https://github.com/debauchee/barrier/releases/latest) _should_ run fine.
|
||||
> 2. The GUI will _not_ run, as that OS version does not include Apple's *Metal* framework.
|
||||
> - _(For a GUI workaround for Mac OS X 10.9, see the [discussion at issue #544](https://github.com/debauchee/barrier/issues/544))_
|
||||
|
||||
> Note: Only versions [v2.3.4](https://github.com/debauchee/barrier/releases/tag/v2.3.4) and [later](https://github.com/debauchee/barrier/releases/latest) of Barrier can be supported by this project.
|
||||
> - Anyone using an earlier version is advised to upgrade due to recently-addressed security vulnerabilities *(and other bug fixes)*.
|
||||
> - This is especially important for computers accessible from the public Internet *(or from other shared/untrusted networks, such as when using shared WiFi)*.
|
||||
|
||||
|
||||
**Q: How do I load my configuration on startup?**
|
||||
|
||||
> A: Start the binary with the argument `--config <path_to_saved_configuration>`
|
||||
|
||||
|
||||
**Q: After loading my configuration on the client the field 'Server IP' is still empty!**
|
||||
|
||||
> A: Edit your configuration to include the server's ip address manually with
|
||||
>
|
||||
>```
|
||||
>(...)
|
||||
>
|
||||
>section: options
|
||||
> serverhostname=<AAA.BBB.CCC.DDD>
|
||||
>```
|
||||
|
||||
**Q: Are there any other significant limitations with the current version of Barrier?**
|
||||
|
||||
> A: Currently:
|
||||
> - Barrier currently has limited UTF-8 support; issues have been reported with processing various languages.
|
||||
> - *(see [#860](https://github.com/debauchee/barrier/issues/860))*
|
||||
> - There is interest in future support for the Wayland compositor/display server protocol *([official site](https://wayland.freedesktop.org/) | [Wikipedia article](https://en.wikipedia.org/wiki/Wayland_(display_server_protocol)))* on Linux.
|
||||
> - As of late 2021, there is no expected completion date for *Wayland* support.
|
||||
> - *(see [#109](https://github.com/debauchee/barrier/issues/109) and [#1251](https://github.com/debauchee/barrier/issues/1251) for status or to volunteer your talents)*
|
||||
>
|
||||
> The complete list of open issues can be found in the ['Issues' tab on GitHub](https://github.com/debauchee/barrier/issues?q=is%3Aissue+is%3Aopen). Help is always appreciated.
|
76
RELEASING.md
76
RELEASING.md
|
@ -1,76 +0,0 @@
|
|||
Creating a release
|
||||
==================
|
||||
|
||||
This document is documentation intednded for maintainers of Barrier.
|
||||
It documents the release process of Barrier.
|
||||
|
||||
Step 1: Setup environment variables
|
||||
-----------------------------------
|
||||
|
||||
Setup the following environment variable that will be used throughout the rest of the steps.
|
||||
|
||||
export VERSION=X.Y.Z
|
||||
|
||||
Step 2: Release notes PR
|
||||
------------------------
|
||||
|
||||
Open a new branch (e.g. `release`) and run the following:
|
||||
|
||||
towncrier --version ${VERSION} --date `date -u +%F`
|
||||
|
||||
This collects the release notes using the `towncrier` tool. Please commit the collected release
|
||||
notes afterwards.
|
||||
|
||||
Certain file names are not properly supported by the `towncrier` tool and it ignores them.
|
||||
Check `newsfragments` directory for any forgotten release notes
|
||||
|
||||
Step 3: Merge the release notes PR
|
||||
----------------------------------
|
||||
|
||||
Step 4: Bump the version number
|
||||
-------------------------------
|
||||
|
||||
Pull the merge commit created on the `master` branch during the step 2.
|
||||
|
||||
Edit the following files and update the version numbers:
|
||||
|
||||
- `Build.properties`
|
||||
- `cmake/Version.cmake`
|
||||
- `doc/barrierc.1`
|
||||
- `doc/barriers.1`
|
||||
- `.github/ISSUE_TEMPLATE/bug_report.yml`
|
||||
|
||||
Commit to the release branch with the following message `Barrier x.y.z`.
|
||||
|
||||
Push the commit:
|
||||
|
||||
git push origin master
|
||||
|
||||
Step 5: Push git tag
|
||||
--------------------
|
||||
|
||||
Create a tag:
|
||||
|
||||
git tag -s v${VERSION} -m v${VERSION}
|
||||
|
||||
Push the tag:
|
||||
|
||||
git push origin master --tags
|
||||
|
||||
|
||||
Step 6: Draft a new release on Github
|
||||
-------------------------------------
|
||||
|
||||
Go to https://github.com/buildbot/buildbot/releases and draft a new release.
|
||||
|
||||
Use git tag as the title of the release: `vX.Y.Z`.
|
||||
|
||||
Use the release notes generated by the `towncrier` tool as the description of the releases.
|
||||
|
||||
Upload the artifacts created by Azure pipelines as the binaries of the release. The following
|
||||
artifacts should be uploaded to Github:
|
||||
|
||||
- the Barrier-X.Y.Z-release.dmg created by the newest Mac OS task (artifact name is
|
||||
"Mac Release Disk Image and App XYZ").
|
||||
|
||||
- the BarrierSetup-X.Y.Z-release.exe (artifact name is Windows Release Installer).
|
|
@ -1 +0,0 @@
|
|||
theme: jekyll-theme-slate
|
|
@ -1,117 +0,0 @@
|
|||
trigger:
|
||||
tags:
|
||||
include:
|
||||
- '*'
|
||||
branches:
|
||||
include:
|
||||
- '*'
|
||||
|
||||
jobs:
|
||||
- job: WinBuild
|
||||
displayName: Windows Build
|
||||
pool:
|
||||
vmImage: 'vs2017-win2016'
|
||||
strategy:
|
||||
matrix:
|
||||
Debug:
|
||||
CI_ENV_BUILD_TYPE: Debug
|
||||
Release with Release Installer:
|
||||
CI_ENV_BUILD_TYPE: Release
|
||||
steps:
|
||||
# Gather Dependencies
|
||||
- task: PowerShell@2
|
||||
displayName: Download Bonjour SDK-like
|
||||
inputs:
|
||||
filePath: azure-pipelines/download_install_bonjour_sdk_like.ps1
|
||||
- task: UsePythonVersion@0
|
||||
displayName: Selecting Python Installer for QLI Installer
|
||||
inputs:
|
||||
versionSpec: '3.7'
|
||||
- task: PowerShell@2
|
||||
displayName: Installing QT
|
||||
condition: ne(variables['CacheRestored'], 'true')
|
||||
inputs:
|
||||
filePath: azure-pipelines/download_install_qt.ps1
|
||||
# Build time!
|
||||
- powershell: Copy-Item azure-pipelines\build_env_tmpl.bat build_env.bat
|
||||
displayName: Layering Azure Pipeline's build_env.bat
|
||||
- script: |
|
||||
call "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\Common7\\Tools\\vsdevcmd" -arch=x64 && clean_build.bat
|
||||
displayName: Clean Build
|
||||
- task: ArchiveFiles@2
|
||||
displayName: Archive Completed Build Directory
|
||||
inputs:
|
||||
rootFolderOrFile: build\bin\$(CI_ENV_BUILD_TYPE)\
|
||||
includeRootFolder: true
|
||||
archiveFile: $(Build.ArtifactStagingDirectory)\$(CI_ENV_BUILD_TYPE).zip
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Publish Completed Build Directory Archive Build Artifact
|
||||
inputs:
|
||||
pathtoPublish: $(Build.ArtifactStagingDirectory)\$(CI_ENV_BUILD_TYPE).zip
|
||||
artifactName: Windows $(CI_ENV_BUILD_TYPE)
|
||||
- script: choco install innosetup --version 5.6.1.20190126 --allow-downgrade
|
||||
displayName: Ensure desired version of Inno Setup is installed.
|
||||
condition: eq(variables['CI_ENV_BUILD_TYPE'], 'Release')
|
||||
- script: build_installer.bat
|
||||
displayName: Build Installer
|
||||
condition: eq(variables['CI_ENV_BUILD_TYPE'], 'Release')
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Publish Release Installer
|
||||
condition: eq(variables['CI_ENV_BUILD_TYPE'], 'Release')
|
||||
inputs:
|
||||
pathtoPublish: build\installer-inno\bin
|
||||
artifactName: Windows Release Installer
|
||||
|
||||
- job: LinuxBuild
|
||||
strategy:
|
||||
matrix:
|
||||
ubuntu-18.04:
|
||||
imageName: 'ubuntu-18.04'
|
||||
ubuntu-20.04:
|
||||
imageName: 'ubuntu-20.04'
|
||||
displayName: Linux Build
|
||||
pool:
|
||||
vmImage: $(imageName)
|
||||
steps:
|
||||
- script: sudo apt-get update -y
|
||||
- script: sudo apt-get install -y libxtst-dev qtdeclarative5-dev libavahi-compat-libdnssd-dev libcurl4-openssl-dev
|
||||
displayName: Install Dependencies
|
||||
- script: sh -x ./clean_build.sh
|
||||
displayName: Clean Build
|
||||
|
||||
- job: MacBuild
|
||||
displayName: Mac Build
|
||||
strategy:
|
||||
matrix:
|
||||
big-sur-Release:
|
||||
imageName: "macOS-11"
|
||||
B_BUILD_TYPE: Release
|
||||
BARRIER_VERSION_STAGE: Release
|
||||
catalina-Release:
|
||||
imageName: "macOS-10.15"
|
||||
B_BUILD_TYPE: Release
|
||||
BARRIER_VERSION_STAGE: Release
|
||||
mojave-Release:
|
||||
imageName: "macOS-10.14"
|
||||
B_BUILD_TYPE: Release
|
||||
BARRIER_VERSION_STAGE: Release
|
||||
pool:
|
||||
vmImage: $(imageName)
|
||||
variables:
|
||||
VERBOSE: 1
|
||||
TERM: xterm-256color
|
||||
steps:
|
||||
- script: rm -rf /usr/local/opt/openssl
|
||||
displayName: Remove incompatible OpenSSL 1.0.2t from macOS-10.14 vmImage
|
||||
- script: brew reinstall openssl
|
||||
displayName: Installed newer OpenSSL 1.1.x
|
||||
- script: brew install pkg-config qt5
|
||||
displayName: Install Qt5 and pkg-config prereqs
|
||||
- script: sh -x ./clean_build.sh
|
||||
displayName: Clean Build
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Publish Release DMG
|
||||
condition: eq(variables['B_BUILD_TYPE'], 'Release')
|
||||
inputs:
|
||||
pathtoPublish: build/bundle
|
||||
artifactName: Mac Release Disk Image and App $(imageName)
|
|
@ -1,6 +0,0 @@
|
|||
set B_BUILD_TYPE=%CI_ENV_BUILD_TYPE%
|
||||
set B_QT_ROOT=%cd%\deps\Qt
|
||||
set B_QT_VER=Qt5.13.0\5.13.0
|
||||
set B_QT_MSVC=msvc2017_64
|
||||
set B_BONJOUR=%cd%\deps\BonjourSDKLike
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
$ErrorActionPreference = "Stop"
|
||||
|
||||
New-Item -Force -ItemType Directory -Path ".\deps\"
|
||||
Invoke-WebRequest 'https://github.com/nelsonjchen/mDNSResponder/releases/download/v2019.05.08.1/x64_RelWithDebInfo.zip' -OutFile 'deps\BonjourSDKLike.zip' ;
|
||||
Write-Output 'Downloaded BonjourSDKLike Zip'
|
||||
Write-Output 'Unzipping BonjourSDKLike Zip'
|
||||
Remove-Item -Recurse -Force -ErrorAction Ignore .\deps\BonjourSDKLike
|
||||
Expand-Archive .\deps\BonjourSDKLike.zip -DestinationPath .\deps\BonjourSDKLike
|
||||
Write-Output 'Installed BonjourSDKLike Zip'
|
||||
Remove-Item deps\BonjourSDKLike.zip
|
||||
Write-Output 'Deleted BonjourSDKLike Zip'
|
|
@ -1,25 +0,0 @@
|
|||
$ErrorActionPreference = "Stop"
|
||||
|
||||
$qli_install_version = '2019.05.26.1'
|
||||
$qt_version = '5.13.0'
|
||||
|
||||
New-Item -Force -ItemType Directory -Path ".\deps\"
|
||||
|
||||
Write-Output 'Downloading QLI Installer'
|
||||
Invoke-WebRequest "https://github.com/nelsonjchen/qli-installer/archive/v$qli_install_version.zip" -OutFile '.\deps\qli-installer.zip' ;
|
||||
Write-Output 'Downloaded QLI Installer'
|
||||
|
||||
Write-Output 'Extracting QLI Installer'
|
||||
Expand-Archive deps\qli-installer.zip deps\
|
||||
Move-Item .\deps\qli-installer-$qli_install_version\ .\deps\qli-installer
|
||||
Write-Output 'Extracted QLI Installer'
|
||||
|
||||
Write-Output 'Installing QLI Installer Dependencies'
|
||||
pip install -r .\deps\qli-installer\requirements.txt
|
||||
Write-Output 'Installed QLI Installer Dependencies'
|
||||
|
||||
Write-Output 'Starting QT Installer'
|
||||
$Env:QLI_OUT_DIR = ".\deps\Qt\Qt$qt_version"
|
||||
$Env:QLI_BASE_URL = "https://download.qt.io/online/qtsdkrepository/"
|
||||
python .\deps\qli-installer\qli-installer.py $qt_version windows desktop win64_msvc2017_64
|
||||
Write-Output 'Installed QT Installer'
|
|
@ -1,34 +0,0 @@
|
|||
@echo off
|
||||
set INNO_ROOT=C:\Program Files (x86)\Inno Setup 5
|
||||
|
||||
set savedir=%cd%
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist build\bin\Release goto buildproject
|
||||
|
||||
echo Building 64-bit Windows installer...
|
||||
|
||||
cd build\installer-inno
|
||||
if ERRORLEVEL 1 goto buildproject
|
||||
"%INNO_ROOT%\ISCC.exe" /Qp barrier.iss
|
||||
if ERRORLEVEL 1 goto failed
|
||||
|
||||
echo Build completed successfully
|
||||
goto done
|
||||
|
||||
:buildproject
|
||||
echo To build a 64-bit Windows installer:
|
||||
echo - set B_BUILD_TYPE=Release in build_env.bat
|
||||
echo - also set other environmental overrides necessary for your build environment
|
||||
echo - run clean_build.bat to build Barrier and verify that it succeeds
|
||||
echo - re-run this script to create the installation package
|
||||
goto done
|
||||
|
||||
:failed
|
||||
echo Build failed
|
||||
|
||||
:done
|
||||
set INNO_ROOT=
|
||||
|
||||
cd /d %savedir%
|
||||
set savedir=
|
|
@ -1,91 +0,0 @@
|
|||
@echo off
|
||||
|
||||
REM defaults - override them by creating a build_env.bat file
|
||||
set B_BUILD_TYPE=Debug
|
||||
set B_QT_ROOT=C:\Qt
|
||||
set B_QT_VER=5.11.1
|
||||
set B_QT_MSVC=msvc2017_64
|
||||
set B_BONJOUR=C:\Program Files\Bonjour SDK
|
||||
|
||||
set savedir=%cd%
|
||||
cd /d %~dp0
|
||||
|
||||
REM cmake generator name for the target build system
|
||||
if "%VisualStudioVersion%"=="15.0" (
|
||||
set cmake_gen=Visual Studio 15 2017
|
||||
) else if "%VisualStudioVersion%"=="16.0" (
|
||||
set cmake_gen=Visual Studio 16 2019
|
||||
) else (
|
||||
echo Visual Studio version was not detected.
|
||||
echo Did you forget to run inside a VS developer prompt?
|
||||
echo Using the default cmake generator.
|
||||
set cmake_gen=Visual Studio 16 2019
|
||||
)
|
||||
|
||||
if exist build_env.bat call build_env.bat
|
||||
|
||||
REM needed by cmake to set bonjour include dir
|
||||
set BONJOUR_SDK_HOME=%B_BONJOUR%
|
||||
|
||||
REM full path to Qt stuff we need
|
||||
set B_QT_FULLPATH=%B_QT_ROOT%\%B_QT_VER%\%B_QT_MSVC%
|
||||
|
||||
echo Bonjour: %BONJOUR_SDK_HOME%
|
||||
echo Qt: %B_QT_FULLPATH%
|
||||
|
||||
git submodule update --init --recursive
|
||||
|
||||
rmdir /q /s build
|
||||
mkdir build
|
||||
if ERRORLEVEL 1 goto failed
|
||||
cd build
|
||||
cmake -G "%cmake_gen%" -A x64 -D CMAKE_BUILD_TYPE=%B_BUILD_TYPE% -D CMAKE_PREFIX_PATH="%B_QT_FULLPATH%" -D DNSSD_LIB="%B_BONJOUR%\Lib\x64\dnssd.lib" -D QT_VERSION=%B_QT_VER% ..
|
||||
if ERRORLEVEL 1 goto failed
|
||||
cmake --build . --config %B_BUILD_TYPE%
|
||||
if ERRORLEVEL 1 goto failed
|
||||
if exist bin\Debug (
|
||||
copy %B_QT_FULLPATH%\bin\Qt5Cored.dll bin\Debug\ > NUL
|
||||
copy %B_QT_FULLPATH%\bin\Qt5Guid.dll bin\Debug\ > NUL
|
||||
copy %B_QT_FULLPATH%\bin\Qt5Networkd.dll bin\Debug\ > NUL
|
||||
copy %B_QT_FULLPATH%\bin\Qt5Widgetsd.dll bin\Debug\ > NUL
|
||||
copy %B_QT_FULLPATH%\bin\Qt5Cored.dll bin\Debug\ > NUL
|
||||
copy ..\ext\openssl\windows\x64\bin\* bin\Debug\ > NUL
|
||||
copy ..\res\openssl\barrier.conf bin\Debug\ > NUL
|
||||
mkdir bin\Debug\platforms
|
||||
copy %B_QT_FULLPATH%\plugins\platforms\qwindowsd.dll bin\Debug\platforms\ > NUL
|
||||
) else if exist bin\Release (
|
||||
copy %B_QT_FULLPATH%\bin\Qt5Core.dll bin\Release\ > NUL
|
||||
copy %B_QT_FULLPATH%\bin\Qt5Gui.dll bin\Release\ > NUL
|
||||
copy %B_QT_FULLPATH%\bin\Qt5Network.dll bin\Release\ > NUL
|
||||
copy %B_QT_FULLPATH%\bin\Qt5Widgets.dll bin\Release\ > NUL
|
||||
copy %B_QT_FULLPATH%\bin\Qt5Core.dll bin\Release\ > NUL
|
||||
copy ..\ext\openssl\windows\x64\bin\* bin\Release\ > NUL
|
||||
copy ..\res\openssl\barrier.conf bin\Release\ > NUL
|
||||
mkdir bin\Release\platforms
|
||||
copy %B_QT_FULLPATH%\plugins\platforms\qwindows.dll bin\Release\platforms\ > NUL
|
||||
) else (
|
||||
echo Remember to copy supporting binaries and configuration files!
|
||||
)
|
||||
|
||||
echo Build completed successfully
|
||||
set BUILD_FAILED=0
|
||||
goto done
|
||||
|
||||
:failed
|
||||
set BUILD_FAILED=%ERRORLEVEL%
|
||||
echo Build failed
|
||||
|
||||
:done
|
||||
cd /d %savedir%
|
||||
|
||||
set B_BUILD_TYPE=
|
||||
set B_QT_ROOT=
|
||||
set B_QT_VER=
|
||||
set B_QT_MSVC=
|
||||
set B_BONJOUR=
|
||||
set BONJOUR_SDK_HOME=
|
||||
set B_QT_FULLPATH=
|
||||
set savedir=
|
||||
set cmake_gen=
|
||||
|
||||
EXIT /B %BUILD_FAILED%
|
|
@ -1,32 +0,0 @@
|
|||
#!/bin/sh
|
||||
cd "$(dirname "$0")" || exit 1
|
||||
# some environments have cmake v2 as 'cmake' and v3 as 'cmake3'
|
||||
# check for cmake3 first then fallback to just cmake
|
||||
B_CMAKE=`type cmake3 2>/dev/null`
|
||||
if [ $? -eq 0 ]; then
|
||||
B_CMAKE=`echo "$B_CMAKE" | cut -d' ' -f3`
|
||||
else
|
||||
B_CMAKE=cmake
|
||||
fi
|
||||
# default build configuration
|
||||
B_BUILD_TYPE=${B_BUILD_TYPE:-Debug}
|
||||
if [ "$(uname)" = "Darwin" ]; then
|
||||
# OSX needs a lot of extra help, poor thing
|
||||
# run the osx_environment.sh script to fix paths
|
||||
. ./osx_environment.sh
|
||||
B_CMAKE_FLAGS="-DCMAKE_OSX_SYSROOT=$(xcode-select --print-path)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 $B_CMAKE_FLAGS"
|
||||
fi
|
||||
# allow local customizations to build environment
|
||||
[ -r ./build_env.sh ] && . ./build_env.sh
|
||||
|
||||
# Initialise Git submodules
|
||||
git submodule update --init --recursive
|
||||
|
||||
B_CMAKE_FLAGS="-DCMAKE_BUILD_TYPE=$B_BUILD_TYPE $B_CMAKE_FLAGS"
|
||||
rm -rf build
|
||||
mkdir build || exit 1
|
||||
cd build || exit 1
|
||||
echo "Starting Barrier $B_BUILD_TYPE build..."
|
||||
$B_CMAKE $B_CMAKE_FLAGS .. || exit 1
|
||||
make || exit 1
|
||||
echo "Build completed successfully"
|
|
@ -1,9 +0,0 @@
|
|||
if (UNIX)
|
||||
set (CPACK_PACKAGE_VERSION_MAJOR ${BARRIER_VERSION_MAJOR})
|
||||
set (CPACK_PACKAGE_VERSION_MINOR ${BARRIER_VERSION_MINOR})
|
||||
set (CPACK_PACKAGE_VERSION_PATCH ${BARRIER_VERSION_PATCH})
|
||||
set (CPACK_GENERATOR "TBZ2")
|
||||
set (CPACK_SOURCE_GENERATOR "TXZ")
|
||||
set (CPACK_SOURCE_IGNORE_FILES "/build/;\.gitignore$;/\.git/;/.github/;\.swp$;build_env\.*")
|
||||
include (CPack)
|
||||
endif()
|
|
@ -1,98 +0,0 @@
|
|||
cmake_minimum_required (VERSION 3.4)
|
||||
|
||||
set (BARRIER_VERSION_MAJOR 2)
|
||||
set (BARRIER_VERSION_MINOR 4)
|
||||
set (BARRIER_VERSION_PATCH 0)
|
||||
set (BARRIER_VERSION_STAGE "release")
|
||||
|
||||
#
|
||||
# Barrier Version
|
||||
#
|
||||
if (NOT DEFINED BARRIER_VERSION_MAJOR)
|
||||
if (DEFINED ENV{BARRIER_VERSION_MAJOR})
|
||||
set (BARRIER_VERSION_MAJOR $ENV{BARRIER_VERSION_MAJOR})
|
||||
else()
|
||||
set (BARRIER_VERSION_MAJOR 2)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED BARRIER_VERSION_MINOR)
|
||||
if (DEFINED ENV{BARRIER_VERSION_MINOR})
|
||||
set (BARRIER_VERSION_MINOR $ENV{BARRIER_VERSION_MINOR})
|
||||
else()
|
||||
set (BARRIER_VERSION_MINOR 3)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED BARRIER_VERSION_PATCH)
|
||||
if (DEFINED ENV{BARRIER_VERSION_PATCH})
|
||||
set (BARRIER_VERSION_PATCH $ENV{BARRIER_VERSION_PATCH})
|
||||
else()
|
||||
set (BARRIER_VERSION_PATCH 2)
|
||||
message (WARNING "Barrier version wasn't set. Set to ${BARRIER_VERSION_MAJOR}.${BARRIER_VERSION_MINOR}.${BARRIER_VERSION_PATCH}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED BARRIER_VERSION_STAGE)
|
||||
if (DEFINED ENV{BARRIER_VERSION_STAGE})
|
||||
set (BARRIER_VERSION_STAGE $ENV{BARRIER_VERSION_STAGE})
|
||||
else()
|
||||
set (BARRIER_VERSION_STAGE "snapshot")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED BARRIER_REVISION)
|
||||
if (DEFINED ENV{GIT_COMMIT})
|
||||
string (SUBSTRING $ENV{GIT_COMMIT} 0 8 BARRIER_REVISION)
|
||||
else()
|
||||
find_program (GIT_BINARY git)
|
||||
if (NOT GIT_BINARY STREQUAL "GIT_BINARY-NOTFOUND")
|
||||
execute_process (
|
||||
COMMAND git rev-parse --short=8 HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE BARRIER_REVISION
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
string(LENGTH "${BARRIER_REVISION}" BARRIER_REVISION_LENGTH)
|
||||
if (NOT BARRIER_REVISION_LENGTH EQUAL 8 OR NOT BARRIER_REVISION MATCHES "^[a-f0-9]+")
|
||||
set (BARRIER_REVISION "00000000")
|
||||
message (WARNING "revision not found. setting to ${BARRIER_REVISION}")
|
||||
endif()
|
||||
unset (BARRIER_REVISION_LENGTH)
|
||||
|
||||
if (DEFINED ENV{BUILD_NUMBER})
|
||||
set (BARRIER_BUILD_NUMBER $ENV{BUILD_NUMBER})
|
||||
else()
|
||||
set (BARRIER_BUILD_NUMBER 1)
|
||||
endif()
|
||||
|
||||
string (TIMESTAMP BARRIER_BUILD_DATE "%Y%m%d" UTC)
|
||||
set (BARRIER_SNAPSHOT_INFO ".${BARRIER_VERSION_STAGE}.${BARRIER_REVISION}")
|
||||
|
||||
if (BARRIER_VERSION_STAGE STREQUAL "snapshot")
|
||||
set (BARRIER_VERSION_TAG "${BARRIER_VERSION_STAGE}.b${BARRIER_BUILD_NUMBER}-${BARRIER_REVISION}")
|
||||
else()
|
||||
set (BARRIER_VERSION_TAG "${BARRIER_VERSION_STAGE}")
|
||||
endif()
|
||||
|
||||
set (BARRIER_VERSION "${BARRIER_VERSION_MAJOR}.${BARRIER_VERSION_MINOR}.${BARRIER_VERSION_PATCH}-${BARRIER_VERSION_STAGE}")
|
||||
set (BARRIER_VERSION_STRING "${BARRIER_VERSION}-${BARRIER_VERSION_TAG}")
|
||||
message (STATUS "Full Barrier version string is '" ${BARRIER_VERSION_STRING} "'")
|
||||
|
||||
add_definitions (-DBARRIER_VERSION="${BARRIER_VERSION}")
|
||||
add_definitions (-DBARRIER_VERSION_STRING="${BARRIER_VERSION_STRING}")
|
||||
add_definitions (-DBARRIER_VERSION_MAJOR=${BARRIER_VERSION_MAJOR})
|
||||
add_definitions (-DBARRIER_VERSION_MINOR=${BARRIER_VERSION_MINOR})
|
||||
add_definitions (-DBARRIER_VERSION_PATCH=${BARRIER_VERSION_PATCH})
|
||||
add_definitions (-DBARRIER_REVISION="${BARRIER_REVISION}")
|
||||
add_definitions (-DBARRIER_BUILD_DATE="${BARRIER_BUILD_DATE}")
|
||||
add_definitions (-DBARRIER_BUILD_NUMBER=${BARRIER_BUILD_NUMBER})
|
||||
|
||||
if (BARRIER_DEVELOPER_MODE)
|
||||
add_definitions (-DBARRIER_DEVELOPER_MODE=1)
|
||||
endif()
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
# barrier -- mouse and keyboard sharing utility
|
||||
# Copyright (C) 2012-2016 Symless Ltd.
|
||||
# Copyright (C) 2011 Nick Bolton
|
||||
#
|
||||
# This package is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# found in the file LICENSE that should have accompanied this file.
|
||||
#
|
||||
# This package 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
if (BARRIER_USE_EXTERNAL_GTEST)
|
||||
include (FindPkgConfig)
|
||||
find_package(GTest REQUIRED)
|
||||
pkg_check_modules(GMOCK REQUIRED gmock)
|
||||
include_directories(
|
||||
${GTEST_INCLUDE_DIRS}
|
||||
${GMOCK_INCLUDE_DIRS}
|
||||
)
|
||||
else()
|
||||
include_directories(
|
||||
../ext/gtest
|
||||
../ext/gtest/include
|
||||
../ext/gmock
|
||||
../ext/gmock/include
|
||||
)
|
||||
|
||||
add_library(gtest STATIC ../ext/gtest/src/gtest-all.cc)
|
||||
add_library(gmock STATIC ../ext/gmock/src/gmock-all.cc)
|
||||
|
||||
set(GTEST_LIBRARIES gtest)
|
||||
set(GMOCK_LIBRARIES gmock)
|
||||
|
||||
if (UNIX)
|
||||
# ignore warnings in gtest and gmock
|
||||
set_target_properties(gtest PROPERTIES COMPILE_FLAGS "-w")
|
||||
set_target_properties(gmock PROPERTIES COMPILE_FLAGS "-w")
|
||||
endif()
|
||||
endif()
|
|
@ -0,0 +1,2 @@
|
|||
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release .
|
||||
|
|
@ -1,412 +0,0 @@
|
|||
barrier (2.3.3) UNRELEASED; urgency=medium
|
||||
|
||||
[ Aaron Bieber ]
|
||||
* tell build system about openbsd
|
||||
|
||||
[ Tetja Rediske ]
|
||||
* make non-gui variants build without avahi
|
||||
|
||||
[ Erik Nordstrøm ]
|
||||
* Replace hard-coded names of build directory in build_installer.sh script for macOS with looking at the location of the script by the script itself when it is run. This makes it possible to have differently named build dirs for debug and release builds, and without restricting what each of those directories must be named.
|
||||
* Remove shell script that changes directory and then executes barrier on macOS, and execute barrier directly instead.
|
||||
* Add settings in the Info.plist file that enable high-DPI support on macOS.
|
||||
|
||||
[ Daniel Seither ]
|
||||
* Remove unused variables
|
||||
* IpcLogOutputter: Put member initializers in execution order
|
||||
* OSXDragView: Get rid of uninitialized variable warning
|
||||
* Add override specifiers
|
||||
* Let tray image blend into macOS menu bar
|
||||
|
||||
[ Vasily Galkin ]
|
||||
* Man page: fix incorrect name of user conf file in barriers.1
|
||||
|
||||
[ Keegan Quinn ]
|
||||
* Cast values to fix build errors on OS X 10.11.
|
||||
|
||||
[ Maximiliano Bertacchini ]
|
||||
* Update readme with mention of the snap package.
|
||||
|
||||
[ Javier Candeira ]
|
||||
* Fix #503 - Clarify on README how to report issues
|
||||
|
||||
[ Micael Jarniac ]
|
||||
* Build status badges added to a table
|
||||
|
||||
[ Maximiliano Bertacchini ]
|
||||
* Add build-essential to the snap's build deps.
|
||||
* Explicitly disable wayland support in the snap.
|
||||
* Add comment on snap env var
|
||||
|
||||
[ Vasily Galkin ]
|
||||
* Fix infinite loop on fast TCP disconnection
|
||||
|
||||
[ Dom Rodriguez ]
|
||||
* README: Add OpenBSD to list of supported OSes
|
||||
|
||||
[ Åke Engelbrektson ]
|
||||
* Update gui_sv.ts
|
||||
|
||||
[ the-wes ]
|
||||
* Add more detailed description of what Barrier does
|
||||
|
||||
[ James Le Cuirot ]
|
||||
* Use -pthread flag and simplify pthread build logic
|
||||
* Only require Qt5 when building the GUI
|
||||
|
||||
[ Tomáš Chvátal ]
|
||||
* Fix desktop file Categories to match standard
|
||||
|
||||
[ Chris Simons ]
|
||||
* Add script that uses macdeployqt instead of `reref_dylibs.sh` shell script to create the `.app` bundle
|
||||
* Use `build_dist.sh` in CMake instead of `build_installer.sh` Have CMake always build a bundle, the `build_dist.sh` script will only build a dmg if the build type is "Release"
|
||||
* Add warnings for users manually running `build_installer.sh` and `reref_dylibs.sh` manually
|
||||
* Homebrew (Ruby) throws an error when it gets `SIGPIPE` from the `--max-count` on `grep`.
|
||||
* added barrierc and barriers to macdeployqt targets
|
||||
* Change MacOS Build Steps
|
||||
* Fix TIS/TSM in logs
|
||||
* Elevate XSocketAddressInUse to ERROR
|
||||
* Allow selecting Fingerprint Qlabel
|
||||
* replace tabs with spaces
|
||||
* Change log level on several status messages (Fixes #652, Fixes #516)
|
||||
|
||||
[ Ben Plessinger ]
|
||||
* A few more log cleanups
|
||||
|
||||
[ Vasily Galkin ]
|
||||
* Remove unused IEventQueue::isEmpty() method to simplify code understanding
|
||||
|
||||
[ Povilas Kanapickas ]
|
||||
* XWindowsEventQueueBuffer: Fix delays when waiting for new events
|
||||
|
||||
[ Jonathan Martens ]
|
||||
* Fix Auto config missing hostname prompt #704
|
||||
|
||||
[ Vasily Galkin ]
|
||||
* Windows 8+: make waiting for messages correspond to emptiness check
|
||||
|
||||
[ Povilas Kanapickas ]
|
||||
* gui: Use enum class to scope enum values
|
||||
* lib/client: Use std::string directly instead of String typedef
|
||||
* lib/arch: Use std::string directly instead of String typedef
|
||||
* lib/net: Use std::string directly instead of String typedef
|
||||
* lib/server: Use std::string directly instead of String typedef
|
||||
* lib/base: Use std::string directly instead of String typedef
|
||||
* lib/ipc: Use std::string directly instead of String typedef
|
||||
* lib/net: Add missing include
|
||||
* lib/platform: Use std::string directly instead of String typedef
|
||||
* test: Enable building of tests
|
||||
* test: Reduce the number of implicit include directories
|
||||
* test: Remove unresolved merge conflict markers
|
||||
* test: Fix referenced library name
|
||||
* test: Update to new APIs
|
||||
* tests: Fix crash in XWindowsKeyStateTests
|
||||
* test: Fix undefined behavior of deleting incomplete type
|
||||
* tests: Disable test that depends on external state
|
||||
* Use noexcept instead of exception specifications
|
||||
* lib/common: Remove no longer used stdexcept.h
|
||||
|
||||
[ Jonathan Martens ]
|
||||
* Make connection message a NOTE for consistency
|
||||
|
||||
[ zhexiwang ]
|
||||
* Added toggleScreen function, using hot key to loop through all screens. Comparing to switchToScreen, it is more handy since the user only need to hit one hotkey.
|
||||
|
||||
[ GeorgH93 ]
|
||||
* Fix build on Windows
|
||||
* Keep errorlevel
|
||||
|
||||
[ Povilas Kanapickas ]
|
||||
* Revert "Make connection message a NOTE for consistency"
|
||||
|
||||
[ Chris Simons ]
|
||||
* add comments explaining the use of CLOG_PRINT
|
||||
|
||||
[ Dom Rodriguez ]
|
||||
* Remove ext/gtest, ext/gmock to replace with Git submodule
|
||||
* Add gtest/gmock framework, locked at 1.6.0
|
||||
* Fix CI infrastructure (.bat/.sh) to initialise Git submodules before build
|
||||
|
||||
[ Maximiliano Bertacchini ]
|
||||
* Fix snap build failing to initialize submodules.
|
||||
|
||||
[ Niklas Hambüchen ]
|
||||
* ui: Settings: Explain what "double tap" means
|
||||
|
||||
[ Dom Rodriguez ]
|
||||
* Prepare for v2.3.3 release
|
||||
|
||||
[ Maximiliano Bertacchini ]
|
||||
* Shorten snap version on tagged revisions
|
||||
|
||||
[ Tomoya Tanjo ]
|
||||
* Add Eisu_toggle and Muhenkan keys
|
||||
|
||||
[ Michael Zimmermann ]
|
||||
* add support for keyboard backlight media keys
|
||||
|
||||
[ Dom Rodriguez ]
|
||||
* [Build]: Bump Build.properties
|
||||
|
||||
-- root <root@873b8d543aab> Fri, 07 Aug 2020 16:25:54 +0000
|
||||
|
||||
barrier (2.3.2) disco; urgency=medium
|
||||
|
||||
[ walker0643 ]
|
||||
* remove (wrong) version line from .desktop file
|
||||
|
||||
[ Povilas Kanapickas ]
|
||||
* Improve precision of grabbed scroll events on OSX server
|
||||
* Accumulate scrolls less than supported scroll on XWindows
|
||||
* Add fake changelog so that debian package may be built
|
||||
|
||||
[ walker0643 ]
|
||||
* non-GUI build should not require bonjour headers
|
||||
* add patch from Gentoo packager to fix cmake issue (reported on Arch, too). ref #49
|
||||
* fix email in debian changelog
|
||||
* screen settings dialog handles internationalized default name better (ref #71)
|
||||
* rephrase language in README.md
|
||||
|
||||
[ sidneys ]
|
||||
* fix(macos-build): use standard methods for detecting default XCode installation and default macOS platform SDK
|
||||
|
||||
[ Povilas Kanapickas ]
|
||||
* OSX: Add support for building on macports
|
||||
* OSX: Prefer Macports over Homebrew if available
|
||||
* travis: Rewrite the CI config to use platform matrix
|
||||
* travis: Add macports-based OSX script
|
||||
* travis: Add homebrew-based OSX script
|
||||
|
||||
[ Adrian Lucrèce Céleste ]
|
||||
* [Travis] use container builds for linux (#85)
|
||||
* Merge pkgconfig branch into master (#86)
|
||||
|
||||
[ walker0643 ]
|
||||
* fix formatting in last merge
|
||||
|
||||
[ coypu ]
|
||||
* Also add curl include directories.
|
||||
* have all other OSes handled in the else case.
|
||||
* Use ${CMAKE_DL_LIBS} rather than listing OSes.
|
||||
|
||||
[ walker0643 ]
|
||||
* bump version to 2.2
|
||||
* bump qt/vs versions on windows
|
||||
|
||||
[ Pawel Bogut ]
|
||||
* Fix config file name in server help message
|
||||
|
||||
[ Josh Stone ]
|
||||
* Fix data indexes in Unicode::fromUTF8
|
||||
|
||||
[ walker0643 ]
|
||||
* bump ssl cert key size up to 2048 from 1024. fixes #126
|
||||
* enable high-dps awareness for barriers/barrierc. fixes screen geometry calculations for screens with >100% scaling
|
||||
* rename field Interface to Address in GUI settings dialog
|
||||
* add firewall rule for default port on installation (windows)
|
||||
* Update README.md
|
||||
|
||||
[ Epakai ]
|
||||
* Update openssl key size in barrier.conf (#150)
|
||||
|
||||
[ Adrian Lucrèce Céleste ]
|
||||
* add pre-build script for building barrier on windows from SSH (#152)
|
||||
|
||||
[ Christopher N. Hesse ]
|
||||
* gui: Fix auto hide behavior (#140)
|
||||
|
||||
[ Povilas Kanapickas ]
|
||||
* Build full installer via clean_build.sh (#157)
|
||||
* OSX: Explain why the app needs to go into /Applications (#158)
|
||||
|
||||
[ Monika Kairaityte ]
|
||||
* x11: Wrap platform functions in an interface that can be mocked later
|
||||
* x11: Wrap platform functions in XWindowsScreenSaver class
|
||||
* x11: Wrap platform functions in XWindowsClipboard class
|
||||
* x11: Wrap platform functions in XWindowsKeyState class
|
||||
* x11: Wrap platform functions in XWindowsEventQueueBuffer class
|
||||
* Fix tests wrapper
|
||||
|
||||
[ Chris Simons ]
|
||||
* Added preserveFocus fix (#178)
|
||||
|
||||
[ Dayne Broderson ]
|
||||
* add debug notes to help identify where trusted fingerprints file is
|
||||
* fix spelling of matches
|
||||
* fixing style to be consistent per @p12tic
|
||||
|
||||
[ Robert Sandell ]
|
||||
* Spelling correction (#209)
|
||||
|
||||
[ Moron ]
|
||||
* Fix #204 modifier keys not working in remote desktop on MacOS
|
||||
|
||||
[ jwestfall ]
|
||||
* Properly deal with a socket that is readable and writable at the same time
|
||||
|
||||
[ Miroslav Lences ]
|
||||
* Fix macos build issues
|
||||
|
||||
[ Jim Westfall ]
|
||||
* Fix OSX builds for macports
|
||||
|
||||
[ Girts Folkmanis ]
|
||||
* add checks to osx_environment.sh
|
||||
|
||||
[ Thomas A. F. Thorne ]
|
||||
* Reduce Sysmtem Tray Retry Attempts
|
||||
* Do Not Warn About Missing System Tray
|
||||
|
||||
[ jwestfall ]
|
||||
* OSX: let build_installer.sh create a working Barrier.app on debug builds
|
||||
|
||||
[ Szymon Szeląg ]
|
||||
* Screen change script argument
|
||||
* Use std::system
|
||||
* Start script via execl
|
||||
* Fire screen switch event on client disconnect
|
||||
|
||||
[ Povilas Kanapickas ]
|
||||
* Fix memory leak during socket shutdown
|
||||
|
||||
[ PayouZon MagIT ]
|
||||
* Update snapcraft.yaml
|
||||
* Update snapcraft.yaml
|
||||
* Barrier Snappy
|
||||
|
||||
[ Wendall Cada ]
|
||||
* Working spec file for Fedora
|
||||
|
||||
[ noisyshape ]
|
||||
* Update Windows build script for VS2019
|
||||
* Add support for multiple VS versions
|
||||
* Normalize cmake generator strings
|
||||
* Correct path and instructions
|
||||
* Create version number for wix
|
||||
* Remove hardcoded paths
|
||||
* Fix XML
|
||||
|
||||
[ Mike Salvatore ]
|
||||
* Fix #278 "Enable Clipboard Sharing" always reset after restart
|
||||
* Rename the "Apply" button to "Reload"
|
||||
|
||||
[ noisyshape ]
|
||||
* Replace Wix with Inno Setup
|
||||
|
||||
[ Matthijs Wensveen ]
|
||||
* Add dpiAwareness: PerMonitor to manifest to better handle multiple monitors with different DPI settings.
|
||||
|
||||
[ Nelson Chen ]
|
||||
* Initial Azure Pipelines
|
||||
|
||||
[ Adrian Lucrèce Céleste ]
|
||||
* :pencil: add release link and contact info
|
||||
|
||||
[ pack ]
|
||||
* typo fix (#311)
|
||||
|
||||
[ Nelson Chen ]
|
||||
* Update Apt on Linux before installing dependencies on Azure Pipelines (#321)
|
||||
* Prefix Windows artifact names with 'Windows' on Azure Pipelines (#319)
|
||||
* Install Pinned Qt and OpenSSL on Mac
|
||||
* Build Release version of Barrier on Mac
|
||||
* Publish Mac Artifacts
|
||||
* Upgrade QLI Installer and use Cal's Qt Mirror
|
||||
|
||||
[ Adrian Lucrèce Céleste ]
|
||||
* fix #163
|
||||
* Add a quick Q/A about what OSes are supported
|
||||
* Add Q/A about 32-bit windows
|
||||
|
||||
[ Chun Wang ]
|
||||
* Fix #232 MACOS serious config file errors - hotkeys totally broken
|
||||
|
||||
[ Adrian Lucrèce Céleste ]
|
||||
* [README] Add FaQ to the bottom
|
||||
* [Release] Bump up to a new release version
|
||||
* [Cmake] bump version to 2.3.0
|
||||
|
||||
[ Nelson Chen ]
|
||||
* Ensure Inno Setup 5 is installed in Azure Pipelines
|
||||
|
||||
[ Patrizio Tufarolo ]
|
||||
* Fixed quote key on US International keyboard
|
||||
|
||||
[ Maximiliano Bertacchini ]
|
||||
* Use version from git tag.
|
||||
* Fix interface plugs.
|
||||
* Add commands: `barrier`, `barrierc`, `barriers`.
|
||||
* Drop custom qt5, use distro provided one.
|
||||
* Update build-packages and stage-packages.
|
||||
* Add desktop entry with an app icon.
|
||||
* Set snap icon and license.
|
||||
* Use appstream metadata from flathub.
|
||||
* Fix snap version-control script for local lxd builds.
|
||||
|
||||
[ Dom Rodriguez ]
|
||||
* Feature: CMake now generates compile_commands.json
|
||||
|
||||
[ Thomas Thorne ]
|
||||
* Reference Only Microsoft Azue Pipelines In Readme.md
|
||||
* Delete .travis.yml As We Switch To Azure Pipelines
|
||||
|
||||
[ Evan Maddock ]
|
||||
* Reimplement patch for horizontal scrolling and extra mouse buttons
|
||||
* Used the wrong key button by accident
|
||||
* Use Windows helper function to check for Windows version
|
||||
|
||||
[ walker0643 ]
|
||||
* Drop Travis CI
|
||||
|
||||
[ Adrian Lucrèce Céleste ]
|
||||
* [Version] bump to 2.3.1 for new release
|
||||
|
||||
[ Povilas Kanapickas ]
|
||||
* Make ownership of SocketMultiplexer explicit
|
||||
* Make ownership of SocketMultiplexerJob explicit
|
||||
* Use std::mutex instead of ArchMutex in ArchMultithreadPosix
|
||||
* Use std::mutex instead of ArchMutex in EventQueue
|
||||
* Use std::mutex instead of ArchMutex in Log
|
||||
* Use std::mutex instead of ArchMutex in IpcServer
|
||||
* Use std::mutex instead of ArchMutex in IpcClientProxy
|
||||
* Use std::mutex instead of ArchMutex in IpcLogOutputter
|
||||
* Fix race condition in IArchString
|
||||
|
||||
[ Adrian Lucrèce Céleste ]
|
||||
* [Build[ update pre-build script to call VS2019
|
||||
|
||||
[ Dom Rodriguez ]
|
||||
* Snap: Change CMake builds to be of Release type
|
||||
* Fix: CMake now checks for required Qt5 libraries
|
||||
* Tidy up and fix lint errors in build scripts
|
||||
* Interim fix for failed macOS builds
|
||||
|
||||
[ Povilas Kanapickas ]
|
||||
* Fix retry timer not being unregistered properly
|
||||
|
||||
[ Maximiliano Bertacchini ]
|
||||
* Rename the snap as `barrier`.
|
||||
|
||||
[ Adrian Lucrèce Céleste ]
|
||||
* Revert "Tidy up and fix lint errors in build scripts"
|
||||
* [CMake] properly declare FPIC
|
||||
* [Azure Pipelines] use QT 5.13.0 (#418)
|
||||
* Add snap build status
|
||||
* [README] update README with info about packages
|
||||
|
||||
[ Casey Barton ]
|
||||
* Merged mouse drift fix from synergy-core
|
||||
|
||||
[ mirh ]
|
||||
* Fix debug build launch
|
||||
|
||||
[ Adrian Lucrèce Céleste ]
|
||||
* [Version] bump to 2.3.2, stable
|
||||
|
||||
-- Pablo Catalina <pablo.catalina@gmail.com> Wed, 09 Oct 2019 12:52:10 +0200
|
||||
|
||||
barrier (2.1-1) unstable; urgency=low
|
||||
|
||||
* Initial release (Closes: #123456)
|
||||
|
||||
-- Debauchee Open Source Group <debauchee.oss@gmail.com> Sat, 01 Apr 2018 00:00:00 +0000
|
|
@ -1 +0,0 @@
|
|||
9
|
|
@ -1,17 +0,0 @@
|
|||
Source: barrier
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Standards-Version: 3.9.7
|
||||
Homepage: https://github.com/debauchee/barrier/
|
||||
Maintainer: Debauchee Open Source Group <todo@mail.com>
|
||||
|
||||
Package: barrier
|
||||
Architecture: amd64
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Depends: ${shlibs:Depends},
|
||||
${misc:Depends}
|
||||
Description: Keyboard and mouse sharing solution
|
||||
Barrier allows you to share one mouse and keyboard between multiple computers.
|
||||
Work seamlessly across Windows, macOS and Linux.
|
||||
Homepage: https://github.com/debauchee/barrier/
|
|
@ -1,5 +0,0 @@
|
|||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: Barrier
|
||||
Source: https://github.com/debauchee/barrier/
|
||||
Disclaimer: This package is not part of the Debian project as it contains closed source proprietary components
|
||||
Copyright: Copyright (C) 2018 Debauchee Open Source Group
|
|
@ -1,5 +0,0 @@
|
|||
#!/usr/bin/make -f
|
||||
|
||||
%:
|
||||
dh $@ --buildsystem=cmake --builddirectory=build -Pbuild/debian --parallel
|
||||
|
|
@ -1 +0,0 @@
|
|||
3.0 (native)
|
|
@ -1,90 +0,0 @@
|
|||
#define MyAppName "Barrier"
|
||||
#define MyAppVersion "@BARRIER_VERSION_MAJOR@.@BARRIER_VERSION_MINOR@.@BARRIER_VERSION_PATCH@.@BARRIER_BUILD_NUMBER@"
|
||||
#define MyAppTextVersion "@BARRIER_VERSION@"
|
||||
#define MyAppPublisher "Debauchee Open Source Group"
|
||||
#define MyAppURL "https://github.com/debauchee/barrier/wiki"
|
||||
#define MyAppCopyright "Copyright (C) 2018 Debauchee Open Source Group"
|
||||
#define MyAppExeName "barrier.exe"
|
||||
#define MyAppServiceName "Barrier"
|
||||
#define MyAppServiceExe "barrierd.exe"
|
||||
#define MyAppServiceDesc "Manages the Barrier background processes."
|
||||
#define MyAppListenerDesc "Barrier Listener"
|
||||
|
||||
[Setup]
|
||||
AppId={{41036EA6-3F7A-4803-8AE0-469E5E91EFCC}
|
||||
AppName={#MyAppName}
|
||||
AppVersion={#MyAppTextVersion}
|
||||
AppVerName={#MyAppName} {#MyAppTextVersion}
|
||||
AppPublisher={#MyAppPublisher}
|
||||
AppPublisherURL={#MyAppURL}
|
||||
AppSupportURL={#MyAppURL}
|
||||
AppUpdatesURL={#MyAppURL}
|
||||
DefaultDirName={pf}\{#MyAppName}
|
||||
DisableProgramGroupPage=yes
|
||||
LicenseFile=@CMAKE_CURRENT_SOURCE_DIR@/res/License.rtf
|
||||
OutputDir=@CMAKE_RUNTIME_OUTPUT_DIRECTORY@/../installer-inno/bin
|
||||
OutputBaseFilename=BarrierSetup-{#MyAppTextVersion}
|
||||
SetupIconFile=@CMAKE_CURRENT_SOURCE_DIR@/res/barrier.ico
|
||||
VersionInfoProductTextVersion={#MyAppTextVersion}
|
||||
VersionInfoProductVersion={#MyAppVersion}
|
||||
VersionInfoTextVersion={#MyAppTextVersion}
|
||||
VersionInfoVersion={#MyAppVersion}
|
||||
VersionInfoCopyright={#MyAppCopyright}
|
||||
|
||||
Compression=lzma
|
||||
SolidCompression=yes
|
||||
ArchitecturesInstallIn64BitMode=x64 ia64
|
||||
UninstallDisplayIcon={app}\{#MyAppExeName}
|
||||
|
||||
#include "scripts\lang\english.iss"
|
||||
|
||||
[Tasks]
|
||||
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
|
||||
|
||||
[Files]
|
||||
Source: "@CMAKE_RUNTIME_OUTPUT_DIRECTORY@/Release/*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
||||
|
||||
[Icons]
|
||||
Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
|
||||
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
|
||||
|
||||
[Run]
|
||||
; there's no "check if exists" or "insert if not exists" for netsh's firewall commands
|
||||
; to avoid duplicate entries remove the existing rule (fails if it doesn't exist) before adding
|
||||
Filename: {sys}\netsh.exe; Parameters: "advfirewall firewall delete rule name=""{#MyAppListenerDesc}"""; Flags: runhidden
|
||||
Filename: {sys}\netsh.exe; Parameters: "advfirewall firewall add rule name=""{#MyAppListenerDesc}"" protocol=TCP dir=in localport=24800 action=allow"; Flags: runhidden
|
||||
Filename: {sys}\sc.exe; Parameters: "create {#MyAppServiceName} start= auto binPath= ""\""{app}\{#MyAppServiceExe}\"""""; Flags: runhidden
|
||||
Filename: {sys}\sc.exe; Parameters: "description {#MyAppServiceName} ""{#MyAppServiceDesc}"""; Flags: runhidden
|
||||
Filename: {sys}\sc.exe; Parameters: "start {#MyAppServiceName}"; Flags: runhidden
|
||||
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
|
||||
|
||||
[UninstallDelete]
|
||||
Type: filesandordirs; Name: "{commonappdata}\Barrier"
|
||||
|
||||
[UninstallRun]
|
||||
Filename: {sys}\taskkill; Parameters: "/im {#MyAppExeName} /f /t"; Flags: runhidden
|
||||
Filename: {sys}\net.exe; Parameters: "stop {#MyAppServiceName}"; Flags: runhidden
|
||||
Filename: {sys}\sc.exe; Parameters: "delete {#MyAppServiceName}"; Flags: runhidden
|
||||
Filename: {sys}\netsh.exe; Parameters: "advfirewall firewall delete rule name=""{#MyAppListenerDesc}"""; Flags: runhidden
|
||||
|
||||
[CustomMessages]
|
||||
DependenciesDir="redist"
|
||||
|
||||
; shared code for installing the products
|
||||
#include "scripts\products.iss"
|
||||
#include "scripts\products\stringversion.iss"
|
||||
#include "scripts\products\winversion.iss"
|
||||
#include "scripts\products\msiproduct.iss"
|
||||
#include "scripts\products\vcredist2017.iss"
|
||||
|
||||
[Code]
|
||||
function InitializeSetup(): boolean;
|
||||
begin
|
||||
// initialize windows version
|
||||
initwinversion();
|
||||
|
||||
vcredist2017('14'); // min allowed version is 14.0
|
||||
|
||||
Result := true;
|
||||
end;
|
|
@ -1,49 +0,0 @@
|
|||
[strings]
|
||||
; General
|
||||
100=File download
|
||||
101=Do you want to cancel the download?
|
||||
102=%1 (%2 of %3)
|
||||
103=%1 KB
|
||||
104=%1 KB of %2 KB (%3%)
|
||||
|
||||
; Status information
|
||||
110=Getting file information...
|
||||
111=Redirecting to %1
|
||||
112=Sending request...
|
||||
113=Resolving %1
|
||||
114=Connected to %1
|
||||
115=Receiving...
|
||||
116=Connecting to %1
|
||||
|
||||
; Error messages
|
||||
120=Error connecting to the internet.\n\n%1
|
||||
121=Error opening %1.\n\nThe server returned status code %2.
|
||||
122=Error reading URL.\n\n%1
|
||||
123=Error writing file %1.\n\n%2
|
||||
124=Error opening file %1.\n\n%2
|
||||
125='%1' is an invalid URL.
|
||||
126=Error opening %1.\n\n%2
|
||||
127=Error sending request.\n\n%1
|
||||
128=Unsupported protocol. Only HTTP and FTP protocols are supported.
|
||||
129=Failed to connect to %1.\n\n%2
|
||||
130=Failed to query status code.\n\n%1
|
||||
131=Error requesting file.\n\n%1
|
||||
|
||||
; Other
|
||||
144=About...
|
||||
146=Download
|
||||
147=Setup is now downloading additional files to your computer.
|
||||
|
||||
; labels
|
||||
160=File:
|
||||
161=Speed:
|
||||
162=Status:
|
||||
163=Elapsed Time:
|
||||
164=Remaining Time:
|
||||
165=Current File:
|
||||
166=Overall Progress:
|
||||
167=Cancel
|
||||
168=OK
|
||||
169=User Name and Password
|
||||
170=User Name:
|
||||
171=Password:
|
Binary file not shown.
|
@ -1,14 +0,0 @@
|
|||
[Files]
|
||||
Source: "scripts\isxdl\isxdl.dll"; Flags: dontcopy
|
||||
|
||||
[Code]
|
||||
procedure isxdl_AddFile(URL, Filename: PAnsiChar);
|
||||
external 'isxdl_AddFile@files:isxdl.dll stdcall';
|
||||
|
||||
function isxdl_DownloadFiles(hWnd: Integer): Integer;
|
||||
external 'isxdl_DownloadFiles@files:isxdl.dll stdcall';
|
||||
|
||||
function isxdl_SetOption(Option, Value: PAnsiChar): Integer;
|
||||
external 'isxdl_SetOption@files:isxdl.dll stdcall';
|
||||
|
||||
[Setup]
|
|
@ -1,18 +0,0 @@
|
|||
[Languages]
|
||||
Name: "en"; MessagesFile: "compiler:Default.isl"
|
||||
|
||||
[CustomMessages]
|
||||
;http://www.microsoft.com/globaldev/reference/lcid-all.mspx
|
||||
en.lcid=1033
|
||||
en.depdownload_msg=The following applications are required before setup can continue:%n%n%1%nDownload and install now?
|
||||
en.depdownload_memo_title=Download dependencies
|
||||
en.depinstall_memo_title=Install dependencies
|
||||
en.depinstall_title=Installing dependencies
|
||||
en.depinstall_description=Please wait while Setup installs dependencies on your computer.
|
||||
en.depinstall_status=Installing %1...
|
||||
en.depinstall_missing=%1 must be installed before setup can continue. Please install %1 and run Setup again.
|
||||
en.depinstall_error=An error occured while installing the dependencies. Please restart the computer and run the setup again or install the following dependencies manually:%n
|
||||
|
||||
en.isxdl_langfile=
|
||||
|
||||
[Files]
|
|
@ -1,18 +0,0 @@
|
|||
[Languages]
|
||||
Name: "it"; MessagesFile: "compiler:Default.isl"
|
||||
|
||||
[CustomMessages]
|
||||
;http://www.microsoft.com/globaldev/reference/lcid-all.mspx
|
||||
en.lcid=1033
|
||||
en.depdownload_msg=Le seguenti applicazioni sono necessarie per poter continuare l'installazione:%n%n%1%nScaricare ed installa ora?
|
||||
en.depdownload_memo_title=Scarica dipendenze
|
||||
en.depinstall_memo_title=Installa dipendenze
|
||||
en.depinstall_title=Installazione dipendenze
|
||||
en.depinstall_description=Attendere che l'installazione installi le dipendenze sul computer.
|
||||
en.depinstall_status=Installazione %1...
|
||||
en.depinstall_missing=%1 deve essere installato prima che l'installazione possa continuare. Installa %1 ed esegui nuovamente il programma di installazione.
|
||||
en.depinstall_error=Si è verificato un errore durante l'installazione delle dipendenze. Riavviare il computer ed eseguire nuovamente l'installazione o installare manualmente le seguenti dipendenze: %n
|
||||
|
||||
it.isxdl_langfile=
|
||||
|
||||
[Files]
|
|
@ -1,6 +0,0 @@
|
|||
#include "isxdl\isxdl.iss"
|
||||
|
||||
[Code]
|
||||
#include "products.pas"
|
||||
|
||||
[Setup]
|
|
@ -1,329 +0,0 @@
|
|||
{
|
||||
--- TYPES AND VARIABLES ---
|
||||
}
|
||||
type
|
||||
TProduct = record
|
||||
File: String;
|
||||
Title: String;
|
||||
Parameters: String;
|
||||
ForceSuccess : boolean;
|
||||
InstallClean : boolean;
|
||||
MustRebootAfter : boolean;
|
||||
end;
|
||||
|
||||
InstallResult = (InstallSuccessful, InstallRebootRequired, InstallError);
|
||||
|
||||
var
|
||||
installMemo, downloadMessage: string;
|
||||
products: array of TProduct;
|
||||
delayedReboot, isForcedX86: boolean;
|
||||
DependencyPage: TOutputProgressWizardPage;
|
||||
|
||||
procedure AddProduct(filename, parameters, title, size, url: string; forceSuccess, installClean, mustRebootAfter : boolean);
|
||||
{
|
||||
Adds a product to the list of products to download.
|
||||
Parameters:
|
||||
filename: the file name under which to save the file
|
||||
parameters: the parameters with which to run the file
|
||||
title: the product title
|
||||
size: the file size
|
||||
url: the URL to download from
|
||||
forceSuccess: whether to continue in case of setup failure
|
||||
installClean: whether the product needs a reboot before installing
|
||||
mustRebootAfter: whether the product needs a reboot after installing
|
||||
}
|
||||
var
|
||||
path: string;
|
||||
i: Integer;
|
||||
begin
|
||||
installMemo := installMemo + '%1' + title + #13;
|
||||
|
||||
path := ExpandConstant('{src}{\}') + CustomMessage('DependenciesDir') + '\' + filename;
|
||||
if not FileExists(path) then begin
|
||||
path := ExpandConstant('{tmp}{\}') + filename;
|
||||
|
||||
if not FileExists(path) then begin
|
||||
isxdl_AddFile(url, path);
|
||||
|
||||
downloadMessage := downloadMessage + '%1' + title + ' (' + size + ')' + #13;
|
||||
end;
|
||||
end;
|
||||
|
||||
i := GetArrayLength(products);
|
||||
SetArrayLength(products, i + 1);
|
||||
products[i].File := path;
|
||||
products[i].Title := title;
|
||||
products[i].Parameters := parameters;
|
||||
products[i].ForceSuccess := forceSuccess;
|
||||
products[i].InstallClean := installClean;
|
||||
products[i].MustRebootAfter := mustRebootAfter;
|
||||
end;
|
||||
|
||||
function SmartExec(product : TProduct; var resultcode : Integer): boolean;
|
||||
{
|
||||
Executes a product and returns the exit code.
|
||||
Parameters:
|
||||
product: the product to install
|
||||
resultcode: the exit code
|
||||
}
|
||||
begin
|
||||
if (LowerCase(Copy(product.File, Length(product.File) - 2, 3)) = 'exe') then begin
|
||||
Result := Exec(product.File, product.Parameters, '', SW_SHOWNORMAL, ewWaitUntilTerminated, resultcode);
|
||||
end else begin
|
||||
Result := ShellExec('', product.File, product.Parameters, '', SW_SHOWNORMAL, ewWaitUntilTerminated, resultcode);
|
||||
end;
|
||||
end;
|
||||
|
||||
function PendingReboot: boolean;
|
||||
{
|
||||
Checks whether the machine has a pending reboot.
|
||||
}
|
||||
var names: String;
|
||||
begin
|
||||
if (RegQueryMultiStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager', 'PendingFileRenameOperations', names)) then begin
|
||||
Result := true;
|
||||
end else if ((RegQueryMultiStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager', 'SetupExecute', names)) and (names <> '')) then begin
|
||||
Result := true;
|
||||
end else begin
|
||||
Result := false;
|
||||
end;
|
||||
end;
|
||||
|
||||
function InstallProducts: InstallResult;
|
||||
{
|
||||
Installs the downloaded products
|
||||
}
|
||||
var
|
||||
resultCode, i, productCount, finishCount: Integer;
|
||||
begin
|
||||
Result := InstallSuccessful;
|
||||
productCount := GetArrayLength(products);
|
||||
|
||||
if productCount > 0 then begin
|
||||
DependencyPage := CreateOutputProgressPage(CustomMessage('depinstall_title'), CustomMessage('depinstall_description'));
|
||||
DependencyPage.Show;
|
||||
|
||||
for i := 0 to productCount - 1 do begin
|
||||
if (products[i].InstallClean and (delayedReboot or PendingReboot())) then begin
|
||||
Result := InstallRebootRequired;
|
||||
break;
|
||||
end;
|
||||
|
||||
DependencyPage.SetText(FmtMessage(CustomMessage('depinstall_status'), [products[i].Title]), '');
|
||||
DependencyPage.SetProgress(i, productCount);
|
||||
|
||||
while true do begin
|
||||
// set 0 as used code for shown error if SmartExec fails
|
||||
resultCode := 0;
|
||||
if SmartExec(products[i], resultCode) then begin
|
||||
// setup executed; resultCode contains the exit code
|
||||
if (products[i].MustRebootAfter) then begin
|
||||
// delay reboot after install if we installed the last dependency anyways
|
||||
if (i = productCount - 1) then begin
|
||||
delayedReboot := true;
|
||||
end else begin
|
||||
Result := InstallRebootRequired;
|
||||
end;
|
||||
break;
|
||||
end else if (resultCode = 0) or (products[i].ForceSuccess) then begin
|
||||
finishCount := finishCount + 1;
|
||||
break;
|
||||
end else if (resultCode = 3010) then begin
|
||||
// Windows Installer resultCode 3010: ERROR_SUCCESS_REBOOT_REQUIRED
|
||||
delayedReboot := true;
|
||||
finishCount := finishCount + 1;
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
|
||||
case MsgBox(FmtMessage(SetupMessage(msgErrorFunctionFailed), [products[i].Title, IntToStr(resultCode)]), mbError, MB_ABORTRETRYIGNORE) of
|
||||
IDABORT: begin
|
||||
Result := InstallError;
|
||||
break;
|
||||
end;
|
||||
IDIGNORE: begin
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
if Result <> InstallSuccessful then begin
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
|
||||
// only leave not installed products for error message
|
||||
for i := 0 to productCount - finishCount - 1 do begin
|
||||
products[i] := products[i+finishCount];
|
||||
end;
|
||||
SetArrayLength(products, productCount - finishCount);
|
||||
|
||||
DependencyPage.Hide;
|
||||
end;
|
||||
end;
|
||||
|
||||
{
|
||||
--------------------
|
||||
INNO EVENT FUNCTIONS
|
||||
--------------------
|
||||
}
|
||||
|
||||
function PrepareToInstall(var NeedsRestart: boolean): String;
|
||||
{
|
||||
Before the "preparing to install" page.
|
||||
See: http://www.jrsoftware.org/ishelp/index.php?topic=scriptevents
|
||||
}
|
||||
var
|
||||
i: Integer;
|
||||
s: string;
|
||||
begin
|
||||
delayedReboot := false;
|
||||
|
||||
case InstallProducts() of
|
||||
InstallError: begin
|
||||
s := CustomMessage('depinstall_error');
|
||||
|
||||
for i := 0 to GetArrayLength(products) - 1 do begin
|
||||
s := s + #13 + ' ' + products[i].Title;
|
||||
end;
|
||||
|
||||
Result := s;
|
||||
end;
|
||||
InstallRebootRequired: begin
|
||||
Result := products[0].Title;
|
||||
NeedsRestart := true;
|
||||
|
||||
// write into the registry that the installer needs to be executed again after restart
|
||||
RegWriteStringValue(HKEY_CURRENT_USER, 'SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce', 'InstallBootstrap', ExpandConstant('{srcexe}'));
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
function NeedRestart : boolean;
|
||||
{
|
||||
Checks whether a restart is needed at the end of install
|
||||
See: http://www.jrsoftware.org/ishelp/index.php?topic=scriptevents
|
||||
}
|
||||
begin
|
||||
Result := delayedReboot;
|
||||
end;
|
||||
|
||||
function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;
|
||||
{
|
||||
Just before the "ready" page.
|
||||
See: http://www.jrsoftware.org/ishelp/index.php?topic=scriptevents
|
||||
}
|
||||
var
|
||||
s: string;
|
||||
begin
|
||||
if downloadMessage <> '' then
|
||||
s := s + CustomMessage('depdownload_memo_title') + ':' + NewLine + FmtMessage(downloadMessage, [Space]) + NewLine;
|
||||
if installMemo <> '' then
|
||||
s := s + CustomMessage('depinstall_memo_title') + ':' + NewLine + FmtMessage(installMemo, [Space]) + NewLine;
|
||||
|
||||
if MemoDirInfo <> '' then
|
||||
s := s + MemoDirInfo + NewLine + NewLine;
|
||||
if MemoGroupInfo <> '' then
|
||||
s := s + MemoGroupInfo + NewLine + NewLine;
|
||||
if MemoTasksInfo <> '' then
|
||||
s := s + MemoTasksInfo;
|
||||
|
||||
Result := s
|
||||
end;
|
||||
|
||||
function NextButtonClick(CurPageID: Integer): boolean;
|
||||
{
|
||||
At each "next" button click
|
||||
See: http://www.jrsoftware.org/ishelp/index.php?topic=scriptevents
|
||||
}
|
||||
begin
|
||||
Result := true;
|
||||
|
||||
if CurPageID = wpReady then begin
|
||||
if downloadMessage <> '' then begin
|
||||
// change isxdl language only if it is not english because isxdl default language is already english
|
||||
if (ActiveLanguage() <> 'en') then begin
|
||||
ExtractTemporaryFile(CustomMessage('isxdl_langfile'));
|
||||
isxdl_SetOption('language', ExpandConstant('{tmp}{\}') + CustomMessage('isxdl_langfile'));
|
||||
end;
|
||||
//isxdl_SetOption('title', FmtMessage(SetupMessage(msgSetupWindowTitle), [CustomMessage('appname')]));
|
||||
|
||||
//if SuppressibleMsgBox(FmtMessage(CustomMessage('depdownload_msg'), [FmtMessage(downloadMessage, [''])]), mbConfirmation, MB_YESNO, IDYES) = IDNO then
|
||||
// Result := false
|
||||
//else if
|
||||
if isxdl_DownloadFiles(StrToInt(ExpandConstant('{wizardhwnd}'))) = 0 then
|
||||
Result := false;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
{
|
||||
-----------------------------
|
||||
ARCHITECTURE HELPER FUNCTIONS
|
||||
-----------------------------
|
||||
}
|
||||
|
||||
function IsX86: boolean;
|
||||
{
|
||||
Gets whether the computer is x86 (32 bits).
|
||||
}
|
||||
begin
|
||||
Result := isForcedX86 or (ProcessorArchitecture = paX86) or (ProcessorArchitecture = paUnknown);
|
||||
end;
|
||||
|
||||
function IsX64: boolean;
|
||||
{
|
||||
Gets whether the computer is x64 (64 bits).
|
||||
}
|
||||
begin
|
||||
Result := (not isForcedX86) and Is64BitInstallMode and (ProcessorArchitecture = paX64);
|
||||
end;
|
||||
|
||||
function IsIA64: boolean;
|
||||
{
|
||||
Gets whether the computer is IA64 (Itanium 64 bits).
|
||||
}
|
||||
begin
|
||||
Result := (not isForcedX86) and Is64BitInstallMode and (ProcessorArchitecture = paIA64);
|
||||
end;
|
||||
|
||||
function GetString(x86, x64, ia64: String): String;
|
||||
{
|
||||
Gets a string depending on the computer architecture.
|
||||
Parameters:
|
||||
x86: the string if the computer is x86
|
||||
x64: the string if the computer is x64
|
||||
ia64: the string if the computer is IA64
|
||||
}
|
||||
begin
|
||||
if IsX64() and (x64 <> '') then begin
|
||||
Result := x64;
|
||||
end else if IsIA64() and (ia64 <> '') then begin
|
||||
Result := ia64;
|
||||
end else begin
|
||||
Result := x86;
|
||||
end;
|
||||
end;
|
||||
|
||||
function GetArchitectureString(): String;
|
||||
{
|
||||
Gets the "standard" architecture suffix string.
|
||||
Returns either _x64, _ia64 or nothing.
|
||||
}
|
||||
begin
|
||||
if IsX64() then begin
|
||||
Result := '_x64';
|
||||
end else if IsIA64() then begin
|
||||
Result := '_ia64';
|
||||
end else begin
|
||||
Result := '';
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure SetForceX86(value: boolean);
|
||||
{
|
||||
Forces the setup to use X86 products
|
||||
}
|
||||
begin
|
||||
isForcedX86 := value;
|
||||
end;
|
|
@ -1,49 +0,0 @@
|
|||
[Code]
|
||||
#ifdef UNICODE
|
||||
#define AW "W"
|
||||
#else
|
||||
#define AW "A"
|
||||
#endif
|
||||
|
||||
type
|
||||
INSTALLSTATE = Longint;
|
||||
const
|
||||
INSTALLSTATE_INVALIDARG = -2; // An invalid parameter was passed to the function.
|
||||
INSTALLSTATE_UNKNOWN = -1; // The product is neither advertised or installed.
|
||||
INSTALLSTATE_ADVERTISED = 1; // The product is advertised but not installed.
|
||||
INSTALLSTATE_ABSENT = 2; // The product is installed for a different user.
|
||||
INSTALLSTATE_DEFAULT = 5; // The product is installed for the current user.
|
||||
|
||||
function MsiQueryProductState(szProduct: string): INSTALLSTATE;
|
||||
external 'MsiQueryProductState{#AW}@msi.dll stdcall';
|
||||
|
||||
function MsiEnumRelatedProducts(szUpgradeCode: string; nReserved: dword; nIndex: dword; szProductCode: string): integer;
|
||||
external 'MsiEnumRelatedProducts{#AW}@msi.dll stdcall';
|
||||
|
||||
function MsiGetProductInfo(szProductCode: string; szProperty: string; szValue: string; var nvalueSize: dword): integer;
|
||||
external 'MsiGetProductInfo{#AW}@msi.dll stdcall';
|
||||
|
||||
function msiproduct(productID: string): boolean;
|
||||
begin
|
||||
Result := MsiQueryProductState(productID) = INSTALLSTATE_DEFAULT;
|
||||
end;
|
||||
|
||||
function msiproductupgrade(upgradeCode: string; minVersion: string): boolean;
|
||||
var
|
||||
productCode, version: string;
|
||||
valueSize: dword;
|
||||
begin
|
||||
SetLength(productCode, 39);
|
||||
Result := false;
|
||||
|
||||
if (MsiEnumRelatedProducts(upgradeCode, 0, 0, productCode) = 0) then begin
|
||||
SetLength(version, 39);
|
||||
valueSize := Length(version);
|
||||
|
||||
if (MsiGetProductInfo(productCode, 'VersionString', version, valueSize) = 0) then begin
|
||||
Result := compareversion(version, minVersion) >= 0;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
[Setup]
|
|
@ -1,62 +0,0 @@
|
|||
[Code]
|
||||
function stringtoversion(var temp: String): Integer;
|
||||
var
|
||||
part: String;
|
||||
pos1: Integer;
|
||||
|
||||
begin
|
||||
if (Length(temp) = 0) then begin
|
||||
Result := -1;
|
||||
Exit;
|
||||
end;
|
||||
|
||||
pos1 := Pos('.', temp);
|
||||
if (pos1 = 0) then begin
|
||||
Result := StrToInt(temp);
|
||||
temp := '';
|
||||
end else begin
|
||||
part := Copy(temp, 1, pos1 - 1);
|
||||
temp := Copy(temp, pos1 + 1, Length(temp));
|
||||
Result := StrToInt(part);
|
||||
end;
|
||||
end;
|
||||
|
||||
function compareinnerversion(var x, y: String): Integer;
|
||||
var
|
||||
num1, num2: Integer;
|
||||
|
||||
begin
|
||||
num1 := stringtoversion(x);
|
||||
num2 := stringtoversion(y);
|
||||
if (num1 = -1) and (num2 = -1) then begin
|
||||
Result := 0;
|
||||
Exit;
|
||||
end;
|
||||
|
||||
if (num1 < 0) then begin
|
||||
num1 := 0;
|
||||
end;
|
||||
if (num2 < 0) then begin
|
||||
num2 := 0;
|
||||
end;
|
||||
|
||||
if (num1 < num2) then begin
|
||||
Result := -1;
|
||||
end else if (num1 > num2) then begin
|
||||
Result := 1;
|
||||
end else begin
|
||||
Result := compareinnerversion(x, y);
|
||||
end;
|
||||
end;
|
||||
|
||||
function compareversion(versionA, versionB: String): Integer;
|
||||
var
|
||||
temp1, temp2: String;
|
||||
|
||||
begin
|
||||
temp1 := versionA;
|
||||
temp2 := versionB;
|
||||
Result := compareinnerversion(temp1, temp2);
|
||||
end;
|
||||
|
||||
[Setup]
|
|
@ -1,32 +0,0 @@
|
|||
; requires Windows 10, Windows 7 Service Pack 1, Windows 8, Windows 8.1, Windows Server 2003 Service Pack 2, Windows Server 2008 R2 SP1, Windows Server 2008 Service Pack 2, Windows Server 2012, Windows Vista Service Pack 2, Windows XP Service Pack 3
|
||||
; http://www.visualstudio.com/en-us/downloads/
|
||||
|
||||
[CustomMessages]
|
||||
vcredist2017_title=Visual C++ 2017 Redistributable
|
||||
vcredist2017_title_x64=Visual C++ 2017 64-Bit Redistributable
|
||||
|
||||
vcredist2017_size=13.7 MB
|
||||
vcredist2017_size_x64=14.5 MB
|
||||
|
||||
[Code]
|
||||
const
|
||||
vcredist2017_url = 'http://download.microsoft.com/download/1/f/e/1febbdb2-aded-4e14-9063-39fb17e88444/vc_redist.x86.exe';
|
||||
vcredist2017_url_x64 = 'http://download.microsoft.com/download/3/b/f/3bf6e759-c555-4595-8973-86b7b4312927/vc_redist.x64.exe';
|
||||
|
||||
vcredist2017_upgradecode = '{65E5BD06-6392-3027-8C26-853107D3CF1A}';
|
||||
vcredist2017_upgradecode_x64 = '{36F68A90-239C-34DF-B58C-64B30153CE35}';
|
||||
|
||||
procedure vcredist2017(minVersion: string);
|
||||
begin
|
||||
if (not IsIA64()) then begin
|
||||
if (not msiproductupgrade(GetString(vcredist2017_upgradecode, vcredist2017_upgradecode_x64, ''), minVersion)) then
|
||||
AddProduct('vcredist2017' + GetArchitectureString() + '.exe',
|
||||
'/passive /norestart',
|
||||
CustomMessage('vcredist2017_title' + GetArchitectureString()),
|
||||
CustomMessage('vcredist2017_size' + GetArchitectureString()),
|
||||
GetString(vcredist2017_url, vcredist2017_url_x64, ''),
|
||||
false, false, false);
|
||||
end;
|
||||
end;
|
||||
|
||||
[Setup]
|
|
@ -1,49 +0,0 @@
|
|||
[Code]
|
||||
var
|
||||
WindowsVersion: TWindowsVersion;
|
||||
|
||||
procedure initwinversion();
|
||||
begin
|
||||
GetWindowsVersionEx(WindowsVersion);
|
||||
end;
|
||||
|
||||
function exactwinversion(MajorVersion, MinorVersion: integer): boolean;
|
||||
begin
|
||||
Result := (WindowsVersion.Major = MajorVersion) and (WindowsVersion.Minor = MinorVersion);
|
||||
end;
|
||||
|
||||
function minwinversion(MajorVersion, MinorVersion: integer): boolean;
|
||||
begin
|
||||
Result := (WindowsVersion.Major > MajorVersion) or ((WindowsVersion.Major = MajorVersion) and (WindowsVersion.Minor >= MinorVersion));
|
||||
end;
|
||||
|
||||
function maxwinversion(MajorVersion, MinorVersion: integer): boolean;
|
||||
begin
|
||||
Result := (WindowsVersion.Major < MajorVersion) or ((WindowsVersion.Major = MajorVersion) and (WindowsVersion.Minor <= MinorVersion));
|
||||
end;
|
||||
|
||||
function exactwinspversion(MajorVersion, MinorVersion, SpVersion: integer): boolean;
|
||||
begin
|
||||
if exactwinversion(MajorVersion, MinorVersion) then
|
||||
Result := WindowsVersion.ServicePackMajor = SpVersion
|
||||
else
|
||||
Result := true;
|
||||
end;
|
||||
|
||||
function minwinspversion(MajorVersion, MinorVersion, SpVersion: integer): boolean;
|
||||
begin
|
||||
if exactwinversion(MajorVersion, MinorVersion) then
|
||||
Result := WindowsVersion.ServicePackMajor >= SpVersion
|
||||
else
|
||||
Result := true;
|
||||
end;
|
||||
|
||||
function maxwinspversion(MajorVersion, MinorVersion, SpVersion: integer): boolean;
|
||||
begin
|
||||
if exactwinversion(MajorVersion, MinorVersion) then
|
||||
Result := WindowsVersion.ServicePackMajor <= SpVersion
|
||||
else
|
||||
Result := true;
|
||||
end;
|
||||
|
||||
[Setup]
|
|
@ -1,36 +0,0 @@
|
|||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Barrier</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>barrier</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Barrier.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>barrier</string>
|
||||
<!-- TODO: Fix this in v2.0 //-->
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Barrier</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>SYN1</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>@BARRIER_VERSION@</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>@BARRIER_VERSION@</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>NSApplication</string>
|
||||
<key>NSHighResolutionCapable</key>
|
||||
<string>True</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>© 2018 Debauchee Open Source Group</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.12.0</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -1 +0,0 @@
|
|||
APPLSYN1
|
Binary file not shown.
|
@ -1,73 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Use the same verbose variable as CMake
|
||||
[ "$VERBOSE" = "1" ] && set -x
|
||||
|
||||
# Exit on unset variables or pipe errors
|
||||
set -uo pipefail
|
||||
|
||||
B_MACOS="Barrier.app/Contents/MacOS"
|
||||
B_VERSION="@BARRIER_VERSION@"
|
||||
B_BINDIR="@CMAKE_RUNTIME_OUTPUT_DIRECTORY@"
|
||||
B_BUILDTYPE="@CMAKE_BUILD_TYPE@"
|
||||
B_BARRIERC="Barrier.app/Contents/MacOS/barrierc"
|
||||
B_BARRIERS="Barrier.app/Contents/MacOS/barriers"
|
||||
|
||||
# Colorized output
|
||||
info() { tput bold; echo "$@"; tput sgr0 ; }
|
||||
error() { tput bold; tput setaf 1; echo "$@"; tput sgr0 ; }
|
||||
success() { tput bold; tput setaf 2; echo "$@"; tput sgr0 ; }
|
||||
warn() { tput bold; tput setaf 3; echo "$@"; tput sgr0 ; }
|
||||
|
||||
info "Checking for bundle contents"
|
||||
if [ ! -d "Barrier.app/Contents" ]; then
|
||||
error "Please make sure that the build completed successfully"
|
||||
error "before trying to create the installer."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -d "$B_MACOS" ]; then
|
||||
info "Removing old binaries from bundle"
|
||||
rm -r "$B_MACOS"
|
||||
fi
|
||||
|
||||
info "Copying binaries into bundle"
|
||||
# Copy the folder instead of globbing unquoted path
|
||||
cp -r "$B_BINDIR" "$B_MACOS" || exit 1
|
||||
|
||||
# Check for macdeployqt on MacPorts
|
||||
if which -s port ; then
|
||||
info "MacPorts found, searching for macdeployqt"
|
||||
DEPLOYQT="$(port contents qt5-qttools | grep --only --max-count 1 '/.*macdeployqt')"
|
||||
if [ ! -x "$DEPLOYQT" ]; then
|
||||
error "Please install package qt5-qttools"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check for macdeployqt on Homebrew
|
||||
if which -s brew ; then
|
||||
info "Homebrew found, searching for macdeployqt"
|
||||
DEPLOYQT="$(brew list qt@5 | grep --only '/.*macdeployqt' | head -1)"
|
||||
if [ ! -x "$DEPLOYQT" ]; then
|
||||
error "Please install package qt"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Use macdeployqt to include libraries and create dmg
|
||||
if [ "$B_BUILDTYPE" = "Release" ]; then
|
||||
info "Building Release disk image (dmg)"
|
||||
"$DEPLOYQT" Barrier.app -dmg \
|
||||
-executable="$B_BARRIERC" \
|
||||
-executable="$B_BARRIERS" || exit 1
|
||||
mv "Barrier.dmg" "Barrier-$B_VERSION.dmg" || exit 1
|
||||
success "Created Barrier-$B_VERSION.dmg"
|
||||
else
|
||||
warn "Disk image (dmg) only created for Release builds"
|
||||
info "Building debug bundle"
|
||||
"$DEPLOYQT" Barrier.app -no-strip \
|
||||
-executable="$B_BARRIERC" \
|
||||
-executable="$B_BARRIERS" || exit 1
|
||||
success "Bundle created successfully"
|
||||
fi
|
|
@ -1,83 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# add warning for users running manually
|
||||
warn() { tput bold; tput setaf 3; echo "$@"; tput sgr0 ; }
|
||||
warn "The scripts build_installer.sh and reref_dylibs.sh have been deprecated."
|
||||
warn "Please use build_dist.sh instead to deploy using macdeployqt"
|
||||
|
||||
# change this to rename the installer package
|
||||
B_DMG="Barrier-@BARRIER_VERSION@.dmg"
|
||||
|
||||
cd "$( dirname "$0" )"
|
||||
OWNDIR="$( pwd )"
|
||||
|
||||
B_REREF_SCRIPT="$OWNDIR/reref_dylibs.sh"
|
||||
if [ ! -x "$B_REREF_SCRIPT" ]; then
|
||||
echo "Missing script: $B_REREF_SCRIPT"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# remove any old copies so there's no confusion about whether this
|
||||
# process completes successfully or not
|
||||
rm -rf temp.dmg "$B_DMG"
|
||||
|
||||
cd Barrier.app/Contents 2>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Please make sure that the build completed successfully"
|
||||
echo "before trying to create the installer."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# MacOS folder holds the executables, non-system libraries,
|
||||
# and the startup script
|
||||
rm -rf MacOS
|
||||
mkdir MacOS || exit 1
|
||||
cd MacOS || exit 1
|
||||
|
||||
# copy all executables
|
||||
cp @CMAKE_RUNTIME_OUTPUT_DIRECTORY@/* . || exit 1
|
||||
|
||||
# copy the qt platform plugin
|
||||
# TODO: this is hacky and will probably break if there is more than one qt
|
||||
# version installed. need a better way to find this library
|
||||
B_COCOA=$(find /usr/local/Cellar/qt -type f -name libqcocoa.dylib | head -1)
|
||||
if [ "x$B_COCOA" = "x" ]; then
|
||||
B_COCOA=$(find /opt/local/libexec/qt5/plugins -type f -name libqcocoa.dylib | head -1)
|
||||
fi
|
||||
if [ "x$B_COCOA" = "x" ]; then
|
||||
echo "Could not find cocoa platform plugin"
|
||||
exit 1
|
||||
fi
|
||||
mkdir platforms
|
||||
cp $B_COCOA platforms/ || exit 1
|
||||
|
||||
# make sure we can r/w all these binaries
|
||||
chmod -R u+rw * || exit 1
|
||||
|
||||
# only one executable (barrier) needs non-system libraries although it's
|
||||
# libraries can call each other. use a recursive script to handle the
|
||||
# re-referencing
|
||||
$B_REREF_SCRIPT barrier || exit 1
|
||||
# the cocoa platform plugin also needs to know where to find the qt libraries.
|
||||
# because it exists in a subdirectory we append ../ to the relative path of the
|
||||
# libraries in its metadata
|
||||
$B_REREF_SCRIPT platforms/libqcocoa.dylib ../ || exit 1
|
||||
|
||||
echo "Barrier.app created successfully"
|
||||
|
||||
# sanity check so we don't distribute a dmg with debug symbols
|
||||
if [ "@CMAKE_BUILD_TYPE@" != "Release" ]; then
|
||||
echo "dmg only created for Release builds"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# create the DMG to be distributed in build/bundle
|
||||
cd ../../..
|
||||
hdiutil create -size 64m -fs HFS+ -volname "Barrier" temp.dmg || exit 1
|
||||
hdiutil attach temp.dmg -mountpoint mnt || exit 1
|
||||
cp -r Barrier.app mnt/ || exit 1
|
||||
hdiutil detach mnt || exit 1
|
||||
hdiutil convert temp.dmg -format UDZO -o "$B_DMG" || exit 1
|
||||
rm temp.dmg
|
||||
|
||||
echo "dmg $B_DMG created successfully"
|
|
@ -1,49 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# $1 = binary (program or dylib)
|
||||
B_TARGET=$1
|
||||
if [ "x$B_TARGET" = "x" ]; then
|
||||
|
||||
# add warning for users running manually
|
||||
warn() { tput bold; tput setaf 3; echo "$@"; tput sgr0 ; }
|
||||
warn "The scripts build_installer.sh and reref_dylibs.sh have been deprecated."
|
||||
warn "Please use build_dist.sh instead to deploy using macdeployqt"
|
||||
|
||||
echo "Which binary needs to be re-referenced?"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd "$(dirname "$B_TARGET")" || exit 1
|
||||
|
||||
# where to find non-system libraries relative to target's directory.
|
||||
# the vast majority of the time this should be empty
|
||||
B_REL_PATH=$2
|
||||
|
||||
# we're in target's directory now. trim off the path
|
||||
B_TARGET=$(basename "$B_TARGET")
|
||||
|
||||
# get a list of non-system libraries and make local copies
|
||||
B_LIBS=$(otool -XL "$B_TARGET" | awk '{ print $1 }' | grep -Ev '^(/usr/lib|/System)')
|
||||
[ $? -ne 0 ] && exit 1
|
||||
for B_LIB in $B_LIBS; do
|
||||
B_LIB_NAME=$(basename "$B_LIB")
|
||||
# otool reports barrier as "barrier:" which fails self-reference test below
|
||||
B_LIB_NAME=${B_LIB_NAME//:}
|
||||
|
||||
# ignore self-references
|
||||
[ "$B_TARGET" = "$B_LIB_NAME" ] && continue
|
||||
|
||||
B_DST=${B_REL_PATH}${B_LIB_NAME}
|
||||
if [ ! -e "$B_DST" ]; then
|
||||
cp "$B_LIB" "$B_DST" || exit 1
|
||||
chmod u+rw "$B_DST" || exit 1
|
||||
# recursively call this script on libraries purposefully not passing
|
||||
# $B_REL_PATH so that it is only used explicitly
|
||||
$0 "$B_DST"
|
||||
fi
|
||||
|
||||
# adjust the target's metadata to point to the local copy
|
||||
# rather than the system-wide copy which would only exist on
|
||||
# a development machine
|
||||
install_name_tool -change "$B_LIB" "@loader_path/$B_DST" "$B_TARGET" || exit 1
|
||||
done
|
|
@ -1,105 +0,0 @@
|
|||
%global barrier_revision @BARRIER_REVISION@
|
||||
Summary: Keyboard and mouse sharing solution
|
||||
Name: barrier
|
||||
Version: @BARRIER_VERSION@
|
||||
Release: @BARRIER_BUILD_NUMBER@%{?dist}
|
||||
License: GPLv2
|
||||
Group: System Environment/Daemons
|
||||
URL: https://github.com/debauchee/barrier
|
||||
Source0: https://github.com/debauchee/barrier/archive/v%{version}.tar.gz
|
||||
|
||||
BuildRequires: cmake3
|
||||
BuildRequires: avahi-compat-libdns_sd-devel
|
||||
BuildRequires: libX11-devel
|
||||
BuildRequires: libXtst-devel
|
||||
BuildRequires: qt5-qtbase-devel
|
||||
BuildRequires: libcurl-devel
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: openssl-devel
|
||||
|
||||
%description
|
||||
Barrier allows you to share one mouse and keyboard between multiple computers.
|
||||
Work seamlessly across Windows, macOS and Linux.
|
||||
|
||||
%prep
|
||||
%setup -q -n %{name}-%{version}
|
||||
|
||||
|
||||
%build
|
||||
%{cmake3} -DSYNERGY_VERSION_STAGE:STRING=@BARRIER_VERSION_STAGE@ -DSYNERGY_REVISION:STRING=%{barrier_revision} .
|
||||
make %{?_smp_mflags}
|
||||
|
||||
|
||||
%install
|
||||
install -D -p -m 0755 bin/barrier %{buildroot}%{_bindir}/barrier
|
||||
install -D -p -m 0755 bin/barrierc %{buildroot}%{_bindir}/barrierc
|
||||
install -D -p -m 0755 bin/barriers %{buildroot}%{_bindir}/barriers
|
||||
install -D -p -m 0644 doc/barrierc.1 %{buildroot}%{_mandir}/man1/barrierc.1
|
||||
install -D -p -m 0644 doc/barriers.1 %{buildroot}%{_mandir}/man1/barriers.1
|
||||
install -D -p -m 0644 res/barrier.desktop %{buildroot}%{_datadir}/applications/barrier.desktop
|
||||
install -D -p -m 0644 res/barrier.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/barrier.svg
|
||||
|
||||
cd %{buildroot}%{_bindir}
|
||||
|
||||
mkdir -p %{buildroot}%{_datadir}/metainfo
|
||||
## Write AppStream
|
||||
cat <<END> %{buildroot}%{_datadir}/metainfo/%{name}.appdata.xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright 2018 Ding-Yi Chen <dchen@redhat.com> -->
|
||||
<component type="desktop-application">
|
||||
<id>%{name}</id>
|
||||
<metadata_license>FSFAP</metadata_license>
|
||||
<project_license>GPLv2</project_license>
|
||||
<name>barrier</name>
|
||||
<summary>Share mouse and keyboard between multiple computers over the network</summary>
|
||||
|
||||
<description>
|
||||
<p>
|
||||
Barrier allows you to share one mouse and keyboard between multiple computers.
|
||||
Work seamlessly across Windows, macOS and Linux.
|
||||
</p>
|
||||
</description>
|
||||
|
||||
<launchable type="desktop-id">%{name}.desktop</launchable>
|
||||
|
||||
<url type="homepage">https://github.com/debauchee/barrier</url>
|
||||
|
||||
<provides>
|
||||
<binary>barrier</binary>
|
||||
<binary>barrierc</binary>
|
||||
<binary>barriers</binary>
|
||||
</provides>
|
||||
|
||||
<releases>
|
||||
<release version="%{version}" date="2019-03-21" />
|
||||
</releases>
|
||||
</component>
|
||||
END
|
||||
|
||||
desktop-file-install --delete-original \
|
||||
--dir %{buildroot}%{_datadir}/applications \
|
||||
--set-icon=%{_datadir}/icons/hicolor/scalable/apps/barrier.svg \
|
||||
%{buildroot}%{_datadir}/applications/barrier.desktop
|
||||
|
||||
desktop-file-validate %{buildroot}/%{_datadir}/applications/barrier.desktop
|
||||
|
||||
%files
|
||||
# None of the documentation files are actually useful here, they all point to
|
||||
# the online website, so include just one, the README
|
||||
%doc LICENSE ChangeLog res/Readme.txt doc/barrier.conf.example*
|
||||
%{_bindir}/barrier
|
||||
%{_bindir}/barrierc
|
||||
%{_bindir}/barriers
|
||||
%{_datadir}/icons/hicolor/scalable/apps/barrier.svg
|
||||
%{_datadir}/applications/barrier.desktop
|
||||
%{_datadir}/metainfo/%{name}.appdata.xml
|
||||
%{_mandir}/man1/barrierc.1*
|
||||
%{_mandir}/man1/barriers.1*
|
||||
|
||||
%changelog
|
||||
* Thu Mar 21 2019 wendall911 <wendallc@83864.com>
|
||||
- Actual working spec file for Fedora
|
||||
|
||||
* Sat Jan 27 2018 Debauchee <todo@mail.com>
|
||||
- Initial version of the package
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProductVersion>3.10</ProductVersion>
|
||||
<ProjectGuid>{d4ba9f39-6a35-4c8f-9cb2-67fcbe5cab17}</ProjectGuid>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<OutputName>Barrier</OutputName>
|
||||
<OutputType>Package</OutputType>
|
||||
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
|
||||
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
|
||||
<OutputPath>bin\$(Configuration)\</OutputPath>
|
||||
<IntermediateOutputPath>wix\obj\$(Configuration)\</IntermediateOutputPath>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<WixExtension Include="WixFirewallExtension">
|
||||
<HintPath>$(WixExtDir)\WixFirewallExtension.dll</HintPath>
|
||||
<Name>WixFirewallExtension</Name>
|
||||
</WixExtension>
|
||||
<WixExtension Include="WixUtilExtension">
|
||||
<HintPath>$(WixExtDir)\WixUtilExtension.dll</HintPath>
|
||||
<Name>WixUtilExtension</Name>
|
||||
</WixExtension>
|
||||
<WixExtension Include="WixUIExtension">
|
||||
<HintPath>$(WixExtDir)\WixUIExtension.dll</HintPath>
|
||||
<Name>WixUIExtension</Name>
|
||||
</WixExtension>
|
||||
<Compile Include="Product.wxs"/>
|
||||
<Content Include="Include.wxi"/>
|
||||
</ItemGroup>
|
||||
<Import Project="$(WixTargetsPath)"/>
|
||||
</Project>
|
|
@ -1,25 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Include>
|
||||
<?define Name="Barrier" ?>
|
||||
<?define Version="@BARRIER_WIX_VERSION@" ?>
|
||||
<?define QtVersion="@QT_VERSION@" ?>
|
||||
<?define Author="Debauchee Open Source Group" ?>
|
||||
<?define BinPath="@CMAKE_RUNTIME_OUTPUT_DIRECTORY@/$(var.Configuration)" ?>
|
||||
<?define ResPath="@CMAKE_CURRENT_SOURCE_DIR@/res" ?>
|
||||
<?define ExtPath="@CMAKE_CURRENT_SOURCE_DIR@/ext" ?>
|
||||
<?if $(var.Platform) = "x64" ?>
|
||||
<?define ProgramFilesFolder="ProgramFiles64Folder" ?>
|
||||
<?define PlatformSimpleName="64-bit" ?>
|
||||
<?define UpgradeGuid="E8A4FA54-14B9-4FD1-8E00-7BC46555FDA0" ?>
|
||||
<?define QtPath="@CMAKE_PREFIX_PATH@" ?>
|
||||
<?else ?>
|
||||
<?define ProgramFilesFolder="ProgramFilesFolder" ?>
|
||||
<?define PlatformSimpleName="32-bit" ?>
|
||||
<?define UpgradeGuid="BE0B9FD8-45E2-4A8E-A0D8-1F774D074A78" ?>
|
||||
<?define QtPath="@CMAKE_PREFIX_PATH@" ?>
|
||||
<?endif ?>
|
||||
<?define QtBinPath="$(var.QtPath)\bin" ?>
|
||||
<?define QtPlatformPath="$(var.QtPath)\plugins\platforms" ?>
|
||||
<?define OpenSSLPath="$(var.ExtPath)\openssl\windows\$(var.Platform)" ?>
|
||||
<?define OpenSSLBinPath="$(var.OpenSSLPath)\bin" ?>
|
||||
</Include>
|
|
@ -1,103 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:fire="http://schemas.microsoft.com/wix/FirewallExtension" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
|
||||
<?include Include.wxi?>
|
||||
<Product Id="*" Language="1033" Manufacturer="$(var.Author)" Name="$(var.Name) ($(var.PlatformSimpleName))" UpgradeCode="$(var.UpgradeGuid)" Version="$(var.Version)">
|
||||
<Package Compressed="yes" InstallScope="perMachine" InstallerVersion="301"/>
|
||||
<MajorUpgrade DowngradeErrorMessage="A newer version of $(var.Name) is already installed."/>
|
||||
<MediaTemplate EmbedCab="yes"/>
|
||||
<UIRef Id="WixUI_InstallDir"/>
|
||||
<!-- causes ICE61 warning, but stops user from installing many instances from nightly builds. -->
|
||||
<Upgrade Id="$(var.UpgradeGuid)">
|
||||
<UpgradeVersion Minimum="0.0.0.0" Property="UPGRADE"/>
|
||||
</Upgrade>
|
||||
<Feature Id="ProductFeature" Title="$(var.Name)">
|
||||
<ComponentGroupRef Id="ProductComponents"/>
|
||||
<ComponentGroupRef Id="ProductQtPluginComponents"/>
|
||||
<ComponentRef Id="RegistryEntries"/>
|
||||
</Feature>
|
||||
<DirectoryRef Id="TARGETDIR">
|
||||
<Component Guid="7CF3564D-1F8E-4D3D-9781-E1EE22D5BD67" Id="RegistryEntries">
|
||||
<RegistryKey ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes" Key="Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" Root="HKLM">
|
||||
<RegistryValue Name="[INSTALLFOLDER]barriers.exe" Type="string" Value="~ HIGHDPIAWARE WIN7RTM"/>
|
||||
</RegistryKey>
|
||||
<!-- Windows 8 and later only -->
|
||||
<Condition><![CDATA[Installed OR (VersionNT >= 602)]]></Condition>
|
||||
</Component>
|
||||
</DirectoryRef>
|
||||
<Icon Id="barrier.ico" SourceFile="$(var.ResPath)/barrier.ico"/>
|
||||
<WixVariable Id="WixUILicenseRtf" Value="$(var.ResPath)\License.rtf"/>
|
||||
<WixVariable Id="WixUIBannerBmp" Value="$(var.ResPath)\banner.bmp"/>
|
||||
<WixVariable Id="WixUIDialogBmp" Value="$(var.ResPath)\dialog.bmp"/>
|
||||
<Property Id="ARPPRODUCTICON" Value="barrier.ico"/>
|
||||
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER"/>
|
||||
<Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable"/>
|
||||
<CustomAction ExeCommand="" FileKey="GuiProgram" Id="StartGui" Return="asyncNoWait"/>
|
||||
<UI>
|
||||
<Publish Control="Finish" Dialog="ExitDialog" Event="DoAction" Value="StartGui">NOT Installed</Publish>
|
||||
</UI>
|
||||
</Product>
|
||||
<Fragment>
|
||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||
<Directory Id="$(var.ProgramFilesFolder)">
|
||||
<Directory Id="INSTALLFOLDER" Name="$(var.Name)">
|
||||
<Directory Id="OpenSSLDir" Name="OpenSSL"/>
|
||||
<Directory Id="PlatformsDir" Name="Platforms"/>
|
||||
</Directory>
|
||||
</Directory>
|
||||
<Directory Id="ProgramMenuFolder"/>
|
||||
</Directory>
|
||||
</Fragment>
|
||||
<Fragment>
|
||||
<ComponentGroup Directory="INSTALLFOLDER" Id="ProductComponents">
|
||||
<Component Guid="EC9AD3B0-277C-4157-B5C8-5FD5B6A5F4AD" Id="Core">
|
||||
<File KeyPath="yes" Source="$(var.BinPath)/barrierd.exe"/>
|
||||
<ServiceInstall Description="Controls the $(var.Name) foreground processes." DisplayName="$(var.Name)" ErrorControl="normal" Id="ServiceInstall" Name="Barrier" Start="auto" Type="ownProcess">
|
||||
<util:ServiceConfig FirstFailureActionType="restart" ResetPeriodInDays="1" RestartServiceDelayInSeconds="1" SecondFailureActionType="restart" ThirdFailureActionType="restart"/>
|
||||
</ServiceInstall>
|
||||
<ServiceControl Id="ServiceControl" Name="Barrier" Remove="uninstall" Start="install" Stop="both"/>
|
||||
<File Source="$(var.BinPath)/barriers.exe">
|
||||
<fire:FirewallException Id="ServerFirewallException" IgnoreFailure="yes" Name="$(var.Name)" Scope="any"/>
|
||||
</File>
|
||||
<File Source="$(var.BinPath)/barrierc.exe"/>
|
||||
<File Source="$(var.OpenSSLBinPath)/libeay32.dll"/>
|
||||
<File Source="$(var.OpenSSLBinPath)/ssleay32.dll"/>
|
||||
<File Source="$(var.OpenSSLBinPath)/openssl.exe"/>
|
||||
<File Source="$(var.ResPath)/openssl/barrier.conf"/>
|
||||
</Component>
|
||||
<Component Guid="BAC8149B-6287-45BF-9C27-43D71ED40214" Id="Gui">
|
||||
<File Id="GuiProgram" KeyPath="yes" Source="$(var.BinPath)/barrier.exe">
|
||||
<Shortcut Advertise="yes" Directory="ProgramMenuFolder" Icon="barrier.ico" Id="GuiShortcut" Name="$(var.Name)"/>
|
||||
<fire:FirewallException Id="GuiFirewallException" IgnoreFailure="yes" Name="$(var.Name)" Scope="any"/>
|
||||
</File>
|
||||
<?if $(var.Configuration) = "Debug" ?>
|
||||
<File Source="$(var.QtBinPath)\Qt5Cored.dll"/>
|
||||
<File Source="$(var.QtBinPath)\Qt5Guid.dll"/>
|
||||
<File Source="$(var.QtBinPath)\Qt5Networkd.dll"/>
|
||||
<File Source="$(var.QtBinPath)\Qt5Svgd.dll"/>
|
||||
<File Source="$(var.QtBinPath)\Qt5Widgetsd.dll"/>
|
||||
<File Source="$(var.QtBinPath)\libGLESv2d.dll"/>
|
||||
<File Source="$(var.QtBinPath)\libEGLd.dll"/>
|
||||
<!-- Hacky -->
|
||||
<File Source="C:\Program Files (x86)\Windows Kits\10\bin\$(var.Platform)\ucrt\ucrtbased.dll"/>
|
||||
<?else ?>
|
||||
<File Source="$(var.QtBinPath)\Qt5Core.dll"/>
|
||||
<File Source="$(var.QtBinPath)\Qt5Gui.dll"/>
|
||||
<File Source="$(var.QtBinPath)\Qt5Network.dll"/>
|
||||
<File Source="$(var.QtBinPath)\Qt5Svg.dll"/>
|
||||
<File Source="$(var.QtBinPath)\Qt5Widgets.dll"/>
|
||||
<File Source="$(var.QtBinPath)\libGLESv2.dll"/>
|
||||
<File Source="$(var.QtBinPath)\libEGL.dll"/>
|
||||
<?endif ?>
|
||||
</Component>
|
||||
</ComponentGroup>
|
||||
<ComponentGroup Directory="PlatformsDir" Id="ProductQtPluginComponents">
|
||||
<Component Guid="684EFA14-856B-440E-A5E6-E90E04E36B41" Id="QtPlatformPlugin">
|
||||
<?if $(var.Configuration) = "Debug" ?>
|
||||
<File Source="$(var.QtPlatformPath)\qwindowsd.dll"/>
|
||||
<?else ?>
|
||||
<File Source="$(var.QtPlatformPath)\qwindows.dll"/>
|
||||
<?endif ?>
|
||||
</Component>
|
||||
</ComponentGroup>
|
||||
</Fragment>
|
||||
</Wix>
|
|
@ -5,11 +5,14 @@ To install on Mac OS X with the .zip distribution (first seen in 1.3.6) you must
|
|||
|
||||
1. Extract the zip file to any location (usually double click will do this)
|
||||
2. Open Terminal, and cd to the extracted directory (e.g. /Users/my-name/Downloads/extracted-dir/)
|
||||
3. Copy the binaries to /usr/bin using: sudo cp barrier* /usr/bin
|
||||
4. Correct the permissions and ownership: sudo chown root:wheel /usr/bin/barrier*; sudo chmod 555 /usr/bin/barrier*
|
||||
3. Change to super user (use the su command)
|
||||
4. Copy the binaries to /usr/bin using: cp synergy* /usr/bin
|
||||
|
||||
Alternatively, you can copy the binaries as root. How to enable the root user in Mac OS X:
|
||||
How to enable the root user in Mac OS X:
|
||||
http://support.apple.com/en-us/ht1528
|
||||
|
||||
Once the binaries have been copied to /usr/bin, you should follow the configuration guide:
|
||||
http://synergy2.sourceforge.net/configuration.html
|
||||
|
||||
If you have any problems, see the [[Support]] page:
|
||||
http://symless.com/help/
|
||||
|
|
|
@ -0,0 +1,234 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorCodeStyle>
|
||||
<!-- Written by QtCreator 3.0.1, 2014-02-14T09:50:24. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>CodeStyleData</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="bool" key="AlignAssignments">false</value>
|
||||
<value type="bool" key="AutoSpacesForTabs">false</value>
|
||||
<value type="bool" key="BindStarToIdentifier">true</value>
|
||||
<value type="bool" key="BindStarToLeftSpecifier">false</value>
|
||||
<value type="bool" key="BindStarToRightSpecifier">false</value>
|
||||
<value type="bool" key="BindStarToTypeName">false</value>
|
||||
<value type="bool" key="ExtraPaddingForConditionsIfConfusingAlign">true</value>
|
||||
<value type="bool" key="IndentAccessSpecifiers">false</value>
|
||||
<value type="bool" key="IndentBlockBody">true</value>
|
||||
<value type="bool" key="IndentBlockBraces">false</value>
|
||||
<value type="bool" key="IndentBlocksRelativeToSwitchLabels">false</value>
|
||||
<value type="bool" key="IndentClassBraces">false</value>
|
||||
<value type="bool" key="IndentControlFlowRelativeToSwitchLabels">true</value>
|
||||
<value type="bool" key="IndentDeclarationsRelativeToAccessSpecifiers">true</value>
|
||||
<value type="bool" key="IndentEnumBraces">false</value>
|
||||
<value type="bool" key="IndentFunctionBody">true</value>
|
||||
<value type="bool" key="IndentFunctionBraces">false</value>
|
||||
<value type="bool" key="IndentNamespaceBody">false</value>
|
||||
<value type="bool" key="IndentNamespaceBraces">false</value>
|
||||
<value type="int" key="IndentSize">4</value>
|
||||
<value type="bool" key="IndentStatementsRelativeToSwitchLabels">true</value>
|
||||
<value type="bool" key="IndentSwitchLabels">false</value>
|
||||
<value type="int" key="PaddingMode">2</value>
|
||||
<value type="bool" key="SpacesForTabs">false</value>
|
||||
<value type="int" key="TabSize">4</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>DisplayName</variable>
|
||||
<value type="QString">Synergy</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorCodeStyle>
|
||||
<!-- Written by QtCreator 3.0.1, 2014-02-14T09:50:24. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>CodeStyleData</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="bool" key="AlignAssignments">false</value>
|
||||
<value type="bool" key="AutoSpacesForTabs">false</value>
|
||||
<value type="bool" key="BindStarToIdentifier">true</value>
|
||||
<value type="bool" key="BindStarToLeftSpecifier">false</value>
|
||||
<value type="bool" key="BindStarToRightSpecifier">false</value>
|
||||
<value type="bool" key="BindStarToTypeName">false</value>
|
||||
<value type="bool" key="ExtraPaddingForConditionsIfConfusingAlign">true</value>
|
||||
<value type="bool" key="IndentAccessSpecifiers">false</value>
|
||||
<value type="bool" key="IndentBlockBody">true</value>
|
||||
<value type="bool" key="IndentBlockBraces">false</value>
|
||||
<value type="bool" key="IndentBlocksRelativeToSwitchLabels">false</value>
|
||||
<value type="bool" key="IndentClassBraces">false</value>
|
||||
<value type="bool" key="IndentControlFlowRelativeToSwitchLabels">true</value>
|
||||
<value type="bool" key="IndentDeclarationsRelativeToAccessSpecifiers">true</value>
|
||||
<value type="bool" key="IndentEnumBraces">false</value>
|
||||
<value type="bool" key="IndentFunctionBody">true</value>
|
||||
<value type="bool" key="IndentFunctionBraces">false</value>
|
||||
<value type="bool" key="IndentNamespaceBody">false</value>
|
||||
<value type="bool" key="IndentNamespaceBraces">false</value>
|
||||
<value type="int" key="IndentSize">4</value>
|
||||
<value type="bool" key="IndentStatementsRelativeToSwitchLabels">true</value>
|
||||
<value type="bool" key="IndentSwitchLabels">false</value>
|
||||
<value type="int" key="PaddingMode">2</value>
|
||||
<value type="bool" key="SpacesForTabs">false</value>
|
||||
<value type="int" key="TabSize">4</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>DisplayName</variable>
|
||||
<value type="QString">Synergy</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorCodeStyle>
|
||||
<!-- Written by QtCreator 3.0.1, 2014-02-14T09:50:24. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>CodeStyleData</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="bool" key="AlignAssignments">false</value>
|
||||
<value type="bool" key="AutoSpacesForTabs">false</value>
|
||||
<value type="bool" key="BindStarToIdentifier">true</value>
|
||||
<value type="bool" key="BindStarToLeftSpecifier">false</value>
|
||||
<value type="bool" key="BindStarToRightSpecifier">false</value>
|
||||
<value type="bool" key="BindStarToTypeName">false</value>
|
||||
<value type="bool" key="ExtraPaddingForConditionsIfConfusingAlign">true</value>
|
||||
<value type="bool" key="IndentAccessSpecifiers">false</value>
|
||||
<value type="bool" key="IndentBlockBody">true</value>
|
||||
<value type="bool" key="IndentBlockBraces">false</value>
|
||||
<value type="bool" key="IndentBlocksRelativeToSwitchLabels">false</value>
|
||||
<value type="bool" key="IndentClassBraces">false</value>
|
||||
<value type="bool" key="IndentControlFlowRelativeToSwitchLabels">true</value>
|
||||
<value type="bool" key="IndentDeclarationsRelativeToAccessSpecifiers">true</value>
|
||||
<value type="bool" key="IndentEnumBraces">false</value>
|
||||
<value type="bool" key="IndentFunctionBody">true</value>
|
||||
<value type="bool" key="IndentFunctionBraces">false</value>
|
||||
<value type="bool" key="IndentNamespaceBody">false</value>
|
||||
<value type="bool" key="IndentNamespaceBraces">false</value>
|
||||
<value type="int" key="IndentSize">4</value>
|
||||
<value type="bool" key="IndentStatementsRelativeToSwitchLabels">true</value>
|
||||
<value type="bool" key="IndentSwitchLabels">false</value>
|
||||
<value type="int" key="PaddingMode">2</value>
|
||||
<value type="bool" key="SpacesForTabs">false</value>
|
||||
<value type="int" key="TabSize">4</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>DisplayName</variable>
|
||||
<value type="QString">Synergy</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorCodeStyle>
|
||||
<!-- Written by QtCreator 3.0.1, 2014-02-14T09:50:24. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>CodeStyleData</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="bool" key="AlignAssignments">false</value>
|
||||
<value type="bool" key="AutoSpacesForTabs">false</value>
|
||||
<value type="bool" key="BindStarToIdentifier">true</value>
|
||||
<value type="bool" key="BindStarToLeftSpecifier">false</value>
|
||||
<value type="bool" key="BindStarToRightSpecifier">false</value>
|
||||
<value type="bool" key="BindStarToTypeName">false</value>
|
||||
<value type="bool" key="ExtraPaddingForConditionsIfConfusingAlign">true</value>
|
||||
<value type="bool" key="IndentAccessSpecifiers">false</value>
|
||||
<value type="bool" key="IndentBlockBody">true</value>
|
||||
<value type="bool" key="IndentBlockBraces">false</value>
|
||||
<value type="bool" key="IndentBlocksRelativeToSwitchLabels">false</value>
|
||||
<value type="bool" key="IndentClassBraces">false</value>
|
||||
<value type="bool" key="IndentControlFlowRelativeToSwitchLabels">true</value>
|
||||
<value type="bool" key="IndentDeclarationsRelativeToAccessSpecifiers">true</value>
|
||||
<value type="bool" key="IndentEnumBraces">false</value>
|
||||
<value type="bool" key="IndentFunctionBody">true</value>
|
||||
<value type="bool" key="IndentFunctionBraces">false</value>
|
||||
<value type="bool" key="IndentNamespaceBody">false</value>
|
||||
<value type="bool" key="IndentNamespaceBraces">false</value>
|
||||
<value type="int" key="IndentSize">4</value>
|
||||
<value type="bool" key="IndentStatementsRelativeToSwitchLabels">true</value>
|
||||
<value type="bool" key="IndentSwitchLabels">false</value>
|
||||
<value type="int" key="PaddingMode">2</value>
|
||||
<value type="bool" key="SpacesForTabs">false</value>
|
||||
<value type="int" key="TabSize">4</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>DisplayName</variable>
|
||||
<value type="QString">Synergy</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorCodeStyle>
|
||||
<!-- Written by QtCreator 3.0.1, 2014-02-14T09:50:24. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>CodeStyleData</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="bool" key="AlignAssignments">false</value>
|
||||
<value type="bool" key="AutoSpacesForTabs">false</value>
|
||||
<value type="bool" key="BindStarToIdentifier">true</value>
|
||||
<value type="bool" key="BindStarToLeftSpecifier">false</value>
|
||||
<value type="bool" key="BindStarToRightSpecifier">false</value>
|
||||
<value type="bool" key="BindStarToTypeName">false</value>
|
||||
<value type="bool" key="ExtraPaddingForConditionsIfConfusingAlign">true</value>
|
||||
<value type="bool" key="IndentAccessSpecifiers">false</value>
|
||||
<value type="bool" key="IndentBlockBody">true</value>
|
||||
<value type="bool" key="IndentBlockBraces">false</value>
|
||||
<value type="bool" key="IndentBlocksRelativeToSwitchLabels">false</value>
|
||||
<value type="bool" key="IndentClassBraces">false</value>
|
||||
<value type="bool" key="IndentControlFlowRelativeToSwitchLabels">true</value>
|
||||
<value type="bool" key="IndentDeclarationsRelativeToAccessSpecifiers">true</value>
|
||||
<value type="bool" key="IndentEnumBraces">false</value>
|
||||
<value type="bool" key="IndentFunctionBody">true</value>
|
||||
<value type="bool" key="IndentFunctionBraces">false</value>
|
||||
<value type="bool" key="IndentNamespaceBody">false</value>
|
||||
<value type="bool" key="IndentNamespaceBraces">false</value>
|
||||
<value type="int" key="IndentSize">4</value>
|
||||
<value type="bool" key="IndentStatementsRelativeToSwitchLabels">true</value>
|
||||
<value type="bool" key="IndentSwitchLabels">false</value>
|
||||
<value type="int" key="PaddingMode">2</value>
|
||||
<value type="bool" key="SpacesForTabs">false</value>
|
||||
<value type="int" key="TabSize">4</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>DisplayName</variable>
|
||||
<value type="QString">Synergy</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorCodeStyle>
|
||||
<!-- Written by QtCreator 3.0.1, 2014-02-14T09:50:24. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>CodeStyleData</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="bool" key="AlignAssignments">false</value>
|
||||
<value type="bool" key="AutoSpacesForTabs">false</value>
|
||||
<value type="bool" key="BindStarToIdentifier">true</value>
|
||||
<value type="bool" key="BindStarToLeftSpecifier">false</value>
|
||||
<value type="bool" key="BindStarToRightSpecifier">false</value>
|
||||
<value type="bool" key="BindStarToTypeName">false</value>
|
||||
<value type="bool" key="ExtraPaddingForConditionsIfConfusingAlign">true</value>
|
||||
<value type="bool" key="IndentAccessSpecifiers">false</value>
|
||||
<value type="bool" key="IndentBlockBody">true</value>
|
||||
<value type="bool" key="IndentBlockBraces">false</value>
|
||||
<value type="bool" key="IndentBlocksRelativeToSwitchLabels">false</value>
|
||||
<value type="bool" key="IndentClassBraces">false</value>
|
||||
<value type="bool" key="IndentControlFlowRelativeToSwitchLabels">true</value>
|
||||
<value type="bool" key="IndentDeclarationsRelativeToAccessSpecifiers">true</value>
|
||||
<value type="bool" key="IndentEnumBraces">false</value>
|
||||
<value type="bool" key="IndentFunctionBody">true</value>
|
||||
<value type="bool" key="IndentFunctionBraces">false</value>
|
||||
<value type="bool" key="IndentNamespaceBody">false</value>
|
||||
<value type="bool" key="IndentNamespaceBraces">false</value>
|
||||
<value type="int" key="IndentSize">4</value>
|
||||
<value type="bool" key="IndentStatementsRelativeToSwitchLabels">true</value>
|
||||
<value type="bool" key="IndentSwitchLabels">false</value>
|
||||
<value type="int" key="PaddingMode">2</value>
|
||||
<value type="bool" key="SpacesForTabs">false</value>
|
||||
<value type="int" key="TabSize">4</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>DisplayName</variable>
|
||||
<value type="QString">Synergy</value>
|
||||
</data>
|
||||
</qtcreator>
|
|
@ -1,10 +0,0 @@
|
|||
To recreate the generated part of barrierc manpage use a command like:
|
||||
help2man -N --output=barrierc.1 --name='Barrier Keyboard/Mouse Client' /path/to/barrierc
|
||||
|
||||
And for barriers:
|
||||
help2man -N --output=barriers.1 --name='Barrier Keyboard/Mouse Server' /path/to/barriers
|
||||
|
||||
After that manually fixup:
|
||||
* replace your home directory with $HOME in barriers.1
|
||||
* revert formatting of FILES and COPYRIGHT sections to match formatting of existing version.
|
||||
* add note referencing this file for instructions to the first line.
|
|
@ -1,17 +0,0 @@
|
|||
# barebones barrier.conf example
|
||||
# for two computers side by side
|
||||
# replace screen.name.server and screen.name.client with your screen names from gui
|
||||
# there's a 50/50 chance you'll want to swap left and right
|
||||
# save this as barrier.conf in your home folder and "Use existing configuration" on server
|
||||
|
||||
section: screens
|
||||
screen.name.server:
|
||||
screen.name.client:
|
||||
end
|
||||
|
||||
section: links
|
||||
screen.name.server:
|
||||
left = screen.name.client
|
||||
screen.name.client:
|
||||
right = screen.name.server
|
||||
end
|
|
@ -1,73 +0,0 @@
|
|||
.\" See UpdateManpages.txt about modification of this file. Most of it was generated by help2man 1.47.8.
|
||||
.TH BARRIERC "1" "November 2019" "barrierc 2.4.0-release" "User Commands"
|
||||
.SH NAME
|
||||
barrierc \- Barrier Keyboard/Mouse Client
|
||||
.SH SYNOPSIS
|
||||
.B barrierc
|
||||
[\fI\,--yscroll <delta>\/\fR] [\fI\,--display <display>\/\fR] [\fI\,--no-xinitthreads\/\fR] [\fI\,--daemon|--no-daemon\/\fR] [\fI\,--name <screen-name>\/\fR] [\fI\,--restart|--no-restart\/\fR] [\fI\,--debug <level>\/\fR] \fI\,<server-address>\/\fR
|
||||
.SH DESCRIPTION
|
||||
Start the barrier client and connect to a remote server component.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-d\fR, \fB\-\-debug\fR <level>
|
||||
filter out log messages with priority below level.
|
||||
level may be: FATAL, ERROR, WARNING, NOTE, INFO,
|
||||
DEBUG, DEBUG1, DEBUG2.
|
||||
.TP
|
||||
\fB\-n\fR, \fB\-\-name\fR <screen\-name> use screen\-name instead the hostname to identify
|
||||
this screen in the configuration.
|
||||
.TP
|
||||
\fB\-1\fR, \fB\-\-no\-restart\fR
|
||||
do not try to restart on failure.
|
||||
.TP
|
||||
\fB\-\-restart\fR
|
||||
restart the server automatically if it fails. (*)
|
||||
.TP
|
||||
\fB\-l\fR \fB\-\-log\fR <file>
|
||||
write log messages to file.
|
||||
.TP
|
||||
\fB\-\-no\-tray\fR
|
||||
disable the system tray icon.
|
||||
.TP
|
||||
\fB\-\-enable\-drag\-drop\fR
|
||||
enable file drag & drop.
|
||||
.TP
|
||||
\fB\-\-enable\-crypto\fR
|
||||
enable the crypto (ssl) plugin.
|
||||
.TP
|
||||
\fB\-\-display\fR <display>
|
||||
connect to the X server at <display>
|
||||
.TP
|
||||
\fB\-\-no\-xinitthreads\fR
|
||||
do not call XInitThreads()
|
||||
.TP
|
||||
\fB\-f\fR, \fB\-\-no\-daemon\fR
|
||||
run in the foreground.
|
||||
.TP
|
||||
\fB\-\-daemon\fR
|
||||
run as a daemon. (*)
|
||||
.TP
|
||||
\fB\-\-yscroll\fR <delta>
|
||||
defines the vertical scrolling delta, which is
|
||||
120 by default.
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
display this help and exit.
|
||||
.TP
|
||||
\fB\-\-version\fR
|
||||
display version information and exit.
|
||||
.PP
|
||||
Default options are marked with a *
|
||||
.PP
|
||||
The server address is of the form: [<hostname>][:<port>]. The hostname
|
||||
must be the address or hostname of the server. Placing brackets around
|
||||
an IPv6 address is required when also specifying a port number and
|
||||
optional otherwise. The default port number is 24800.
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2018 Debauchee Open Source Group
|
||||
.br
|
||||
Copyright \(co 2012\-2016 Symless Ltd.
|
||||
.br
|
||||
Copyright \(co 2008\-2014 Nick Bolton
|
||||
.br
|
||||
Copyright \(co 2002\-2014 Chris Schoeneman
|
|
@ -1,87 +0,0 @@
|
|||
.\" See UpdateManpages.txt about modification of this file. Most of it was generated by help2man 1.47.8.
|
||||
.TH BARRIERS "1" "November 2019" "barriers 2.4.0-release" "User Commands"
|
||||
.SH NAME
|
||||
barriers \- Barrier Keyboard/Mouse Server
|
||||
.SH SYNOPSIS
|
||||
.B barriers
|
||||
[\fI\,--address <address>\/\fR] [\fI\,--config <pathname>\/\fR] [\fI\,--display <display>\/\fR] [\fI\,--no-xinitthreads\/\fR] [\fI\,--daemon|--no-daemon\/\fR] [\fI\,--name <screen-name>\/\fR] [\fI\,--restart|--no-restart\/\fR] [\fI\,--debug <level>\/\fR]
|
||||
.SH DESCRIPTION
|
||||
Start the barrier server component.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-a\fR, \fB\-\-address\fR <address>
|
||||
listen for clients on the given address.
|
||||
.TP
|
||||
\fB\-c\fR, \fB\-\-config\fR <pathname>
|
||||
use the named configuration file instead.
|
||||
.TP
|
||||
\fB\-d\fR, \fB\-\-debug\fR <level>
|
||||
filter out log messages with priority below level.
|
||||
level may be: FATAL, ERROR, WARNING, NOTE, INFO,
|
||||
DEBUG, DEBUG1, DEBUG2.
|
||||
.TP
|
||||
\fB\-n\fR, \fB\-\-name\fR <screen\-name> use screen\-name instead the hostname to identify
|
||||
this screen in the configuration.
|
||||
.TP
|
||||
\fB\-1\fR, \fB\-\-no\-restart\fR
|
||||
do not try to restart on failure.
|
||||
.TP
|
||||
\fB\-\-restart\fR
|
||||
restart the server automatically if it fails. (*)
|
||||
.TP
|
||||
\fB\-l\fR \fB\-\-log\fR <file>
|
||||
write log messages to file.
|
||||
.TP
|
||||
\fB\-\-no\-tray\fR
|
||||
disable the system tray icon.
|
||||
.TP
|
||||
\fB\-\-enable\-drag\-drop\fR
|
||||
enable file drag & drop.
|
||||
.TP
|
||||
\fB\-\-enable\-crypto\fR
|
||||
enable the crypto (ssl) plugin.
|
||||
.TP
|
||||
\fB\-\-display\fR <display>
|
||||
connect to the X server at <display>
|
||||
.TP
|
||||
\fB\-\-no\-xinitthreads\fR
|
||||
do not call XInitThreads()
|
||||
.TP
|
||||
\fB\-\-screen\-change\-script\fR <path>
|
||||
full path to script to run on screen change
|
||||
first argument is the new screen name
|
||||
.TP
|
||||
\fB\-f\fR, \fB\-\-no\-daemon\fR
|
||||
run in the foreground.
|
||||
.TP
|
||||
\fB\-\-daemon\fR
|
||||
run as a daemon. (*)
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
display this help and exit.
|
||||
.TP
|
||||
\fB\-\-version\fR
|
||||
display version information and exit.
|
||||
.PP
|
||||
Default options are marked with a *
|
||||
.PP
|
||||
The argument for \fB\-\-address\fR is of the form: [<hostname>][:<port>]. The
|
||||
hostname must be the address or hostname of an interface on the system.
|
||||
Placing brackets around an IPv6 address is required when also specifying
|
||||
a port number and optional otherwise. The default is to listen on all
|
||||
interfaces using port number 24800.
|
||||
.SH FILES
|
||||
If no configuration file pathname is provided then the first of the
|
||||
following to load successfully sets the configuration:
|
||||
.IP
|
||||
.I $HOME/.local/share/barrier/.barrier.conf
|
||||
.br
|
||||
.I /etc/barrier.conf
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2018 Debauchee Open Source Group
|
||||
.br
|
||||
Copyright \(co 2012\-2016 Symless Ltd.
|
||||
.br
|
||||
Copyright \(co 2008\-2014 Nick Bolton
|
||||
.br
|
||||
Copyright \(co 2002\-2014 Chris Schoeneman
|
|
@ -1 +0,0 @@
|
|||
Corrected macOS packaging to provide a better error message when a user attempts to launch Barrier on an incompatible macOS version. (https://github.com/debauchee/barrier/issues/1260).
|
|
@ -1 +0,0 @@
|
|||
Updated FAQs in project README.md with more detail on OS support and links to issues for infrequent users. (https://github.com/debauchee/barrier/issues/1260).
|
|
@ -1,13 +0,0 @@
|
|||
This is the directory for release note fragments processed by
|
||||
[towncrier](https://github.com/hawkowl/towncrier).
|
||||
|
||||
When making a user-visible change create a file in this directory and it will be automatically be
|
||||
included into the release note document when the next release is published.
|
||||
|
||||
The file extension specifies the type of a change. The following are currently supported:
|
||||
|
||||
- .feature: a new feature.
|
||||
- .bugfix: a bug fix.
|
||||
- .security: a fix for security issue.
|
||||
- .doc: a documentation improvement.
|
||||
- .removal: a deprecation or removal of functionality.
|
|
@ -1,2 +0,0 @@
|
|||
Fix wrong encoding for text copied between Linux and Windows
|
||||
(https://github.com/debauchee/barrier/issues/1037, https://github.com/debauchee/barrier/issues/1137).
|
|
@ -1 +0,0 @@
|
|||
Fixed build on GCC 11.2 (https://github.com/debauchee/barrier/issues/1366).
|
|
@ -1,2 +0,0 @@
|
|||
Updated Japanese translation.
|
||||
Add and translate strings that are not in gui.ts. Minor string adjustment, Fix wrong or duplicate shortcut keys.
|
|
@ -1 +0,0 @@
|
|||
Fixed FAQ link to Linux drag and drop issue.
|
|
@ -1 +0,0 @@
|
|||
Fixed a regression in 2.4.0 that caused Barrier to not support scaling other than 100% (https://github.com/debauchee/barrier/issues/1462).
|
|
@ -1,20 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
|
||||
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<!-- Mac OSX only: Copy this plist file into [~]/Library/LaunchAgents to start barrier client automatically. Make sure you change the IP below. -->
|
||||
<dict>
|
||||
<key>Label</key>
|
||||
<string>org.debauchee.com.barrierc.plist</string>
|
||||
<key>OnDemand</key>
|
||||
<false/>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>/usr/bin/barrierc</string>
|
||||
<!-- Replace this IP with the IP of your barriers server -->
|
||||
<string>192.168.0.2</string>
|
||||
</array>
|
||||
<key>RunAtLoad</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
|
||||
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<!-- Mac OSX only: Copy this plist file into [~]/Library/LaunchAgents to start synergy client automatically. Make sure you change the IP below. -->
|
||||
<dict>
|
||||
<key>Label</key>
|
||||
<string>org.symless.com.synergyc.plist</string>
|
||||
<key>OnDemand</key>
|
||||
<false/>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>/usr/bin/synergyc</string>
|
||||
<!-- Replace this IP with the IP of your synergys server -->
|
||||
<string>192.168.0.2</string>
|
||||
</array>
|
||||
<key>RunAtLoad</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
|
@ -2,19 +2,19 @@
|
|||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
|
||||
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<!-- Mac OSX only: Copy this plist file into [~]/Library/LaunchAgents to start barrier server automatically. Make sure you change configuration file below -->
|
||||
<!-- Mac OSX only: Copy this plist file into [~]/Library/LaunchAgents to start synergy server automatically. Make sure you change configuration file below -->
|
||||
<dict>
|
||||
<key>Label</key>
|
||||
<string>org.debauchee.com.barriers.plist</string>
|
||||
<key>OnDemand</key>
|
||||
<false/>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>/usr/bin/barriers</string>
|
||||
<key>Label</key>
|
||||
<string>org.symless.com.synergys.plist</string>
|
||||
<key>OnDemand</key>
|
||||
<false/>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>/usr/bin/synergys</string>
|
||||
<string>--no-daemon</string>
|
||||
<string>--config</string>
|
||||
<!-- Replace this path with the path to your barrier configuration -->
|
||||
<string>/Users/snorp/.barrier.conf</string>
|
||||
<!-- Replace this path with the path to your synergy configuration -->
|
||||
<string>/Users/snorp/.synergy.conf</string>
|
||||
</array>
|
||||
<key>RunAtLoad</key>
|
||||
<true/>
|
|
@ -1,98 +0,0 @@
|
|||
Release notes
|
||||
=============
|
||||
|
||||
[comment]: <> (towncrier release notes start)
|
||||
|
||||
Barrier `2.4.0` ( `2021-11-01` )
|
||||
================================
|
||||
|
||||
Security fixes
|
||||
--------------
|
||||
|
||||
- Barrier now supports client identity verification (fixes CVE-2021-42072, CVE-2021-42073).
|
||||
|
||||
Previously a malicious client could connect to Barrier server without any authentication and
|
||||
send application-level messages. This made the attack surface of Barrier significantly larger.
|
||||
Additionally, in case the malicious client got possession of a valid screen name by brute forcing
|
||||
or other means it could modify the clipboard contents of the server.
|
||||
|
||||
To support seamless upgrades from older versions of Barrier this is currently disabled by default.
|
||||
The feature can be enabled in the settings dialog. If enabled, older clients of Barrier will be
|
||||
rejected.
|
||||
|
||||
- Barrier now uses SHA256 fingerprints for establishing security of encrypted SSL connections.
|
||||
After upgrading client to new version the existing server fingerprint will need to be approved
|
||||
again. Client and server will show both SHA1 and SHA256 server fingerprints to allow
|
||||
interoperability with older versions of Barrier.
|
||||
|
||||
All of the above security issues have been reported by Matthias Gerstner who was really helpful
|
||||
resolving them.
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
|
||||
- Fixed build failure on mips*el and riscv64 architecture.
|
||||
- Fixed reading of configuration on Windows when the paths contain non-ASCII characters
|
||||
(https://github.com/debauchee/barrier/issues/976, https://github.com/debauchee/barrier/issues/974,
|
||||
https://github.com/debauchee/barrier/issues/444).
|
||||
- Barrier no longer uses openssl CLI tool for any operations and hooks into the openssl library directly.
|
||||
- More X11 clipboard MIME types have been mapped to corresponding converters (https://github.com/debauchee/barrier/issues/344).
|
||||
- Fixed setup of multiple actions associated with a hotkey.
|
||||
- Fixed setup of hotkeys with special characters such as comma and semicolon
|
||||
(https://github.com/debauchee/barrier/issues/778).
|
||||
- Fixed transfer of non-ASCII characters coming from a Windows server in certain cases
|
||||
(https://github.com/debauchee/barrier/issues/527).
|
||||
- Barrier will now regenerate server certificate if it's invalid instead of failing to launch
|
||||
(https://github.com/debauchee/barrier/issues/802)
|
||||
- Added support for additional keys on Sun Microsystems USB keyboards
|
||||
(https://github.com/debauchee/barrier/issues/784).
|
||||
- Updated Chinese translation.
|
||||
- Updated Slovak translation.
|
||||
- Theme icons are now preferred to icons distributed together with Barrier
|
||||
(https://github.com/debauchee/barrier/issues/471).
|
||||
- Fixed incorrect setup of Barrier service path on Windows.
|
||||
|
||||
Features
|
||||
--------
|
||||
|
||||
- Added `--drop-target` option that improves drag and drop support on Windows when Barrier is
|
||||
being run as a portable app.
|
||||
- The `--enable-crypto` command line option has been made the default to reduce chances of
|
||||
accidental security mishaps when configuring Barrier from command line.
|
||||
A new `--disable-crypto` command line option has been added to explicitly disable encryption.
|
||||
- Added support for randomart images for easier comparison of SSL certificate fingerprints.
|
||||
The algorithm is identical to what OpenSSH uses.
|
||||
- Implemented a configuration option for Server GUI auto-start.
|
||||
- Made it possible to use keyboard instead of mouse to modify screen layout.
|
||||
- Added support for keyboard backlight media keys
|
||||
- Added support for Eisu_toggle and Muhenkan keys
|
||||
- Added `--profile-dir` option that allows to select custom profile directory.
|
||||
|
||||
Barrier `2.3.4` ( `2021-11-01` )
|
||||
================================
|
||||
|
||||
Security fixes
|
||||
--------------
|
||||
|
||||
- Barrier will now correctly close connections when the app-level handshake fails (fixes CVE-2021-42075).
|
||||
|
||||
Previously repeated failing connections would leak file descriptors leading to Barrier being unable
|
||||
to receive new connections from clients.
|
||||
|
||||
- Barrier will now enforce a maximum length of input messages (fixes CVE-2021-42076).
|
||||
|
||||
Previously it was possible for a malicious client or server to send excessive length messages
|
||||
leading to denial of service by resource exhaustion.
|
||||
|
||||
- Fixed a bug which caused Barrier to crash when disconnecting a TCP session just after sending
|
||||
Hello message (fixes CVE-2021-42074).
|
||||
This bug allowed an unauthenticated attacker to crash Barrier with only network access.
|
||||
|
||||
All of the above security issues have been reported by Matthias Gerstner who was really helpful
|
||||
resolving them.
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
|
||||
- Fixed a bug in SSL implementation that caused invalid data occasionally being sent to clients
|
||||
under heavy load.
|
|
@ -1,37 +0,0 @@
|
|||
{% for section, _ in sections|dictsort(by='key') %}
|
||||
{% set underline = "-" %}
|
||||
{% if section %}
|
||||
{{section}}
|
||||
{{ underline * section|length }}{% set underline = "-" %}
|
||||
|
||||
{% endif %}
|
||||
{% if sections[section] %}
|
||||
{% for category, val in definitions|dictsort if category in sections[section]%}
|
||||
|
||||
{{ definitions[category]['name'] }}
|
||||
{{ underline * definitions[category]['name']|length }}
|
||||
|
||||
{% if definitions[category]['showcontent'] %}
|
||||
{% for text, values in sections[section][category]|dictsort(by='value') %}
|
||||
- {{ text }}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
- {{ sections[section][category]['']|sort|join(', ') }}
|
||||
|
||||
|
||||
{% endif %}
|
||||
{% if sections[section][category]|length == 0 %}
|
||||
|
||||
No significant changes.
|
||||
|
||||
|
||||
{% else %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
|
||||
No significant changes.
|
||||
|
||||
|
||||
{% endif %}
|
||||
{% endfor %}
|
|
@ -1,4 +1,4 @@
|
|||
# sample barrier configuration file
|
||||
# sample synergy configuration file
|
||||
#
|
||||
# comments begin with the # character and continue to the end of
|
||||
# line. comments may appear anywhere the syntax permits.
|
|
@ -1,4 +1,4 @@
|
|||
# sample barrier configuration file
|
||||
# sample synergy configuration file
|
||||
#
|
||||
# comments begin with the # character and continue to the end of
|
||||
# line. comments may appear anywhere the syntax permits.
|
||||
|
@ -47,9 +47,9 @@ section: links
|
|||
end
|
||||
|
||||
# The aliases section is to map the full names of the computers to their logical names used in the screens section
|
||||
# One way to find the actual name of a computer is to run hostname from a command window
|
||||
# One way to find the actual name of a comptuer is to run hostname from a command window
|
||||
section: aliases
|
||||
# Laptop is actually known as John-Smiths-MacBook-3.local
|
||||
John-Smiths-MacBook-3.local:
|
||||
desktop2
|
||||
desktop2:
|
||||
John-Smiths-MacBook-3.local
|
||||
end
|
|
@ -1,4 +1,4 @@
|
|||
# sample barrier configuration file
|
||||
# sample synergy configuration file
|
||||
#
|
||||
# comments begin with the # character and continue to the end of
|
||||
# line. comments may appear anywhere the syntax permits.
|
||||
|
@ -34,6 +34,6 @@ end
|
|||
|
||||
section: aliases
|
||||
# The "real" name of iMac is John-Smiths-iMac-3.local. If we wanted we could remove this alias and instead use John-Smiths-iMac-3.local everywhere iMac is above. Hopefully it should be easy to see why using an alias is nicer
|
||||
John-Smiths-iMac-3.local:
|
||||
iMac
|
||||
iMac:
|
||||
John-Smiths-iMac-3.local
|
||||
end
|
|
@ -0,0 +1,47 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.38.2.
|
||||
.TH SYNERGYC "1" "June 2010" "synergyc 1.5.0, protocol version 1.3" "User Commands"
|
||||
.SH NAME
|
||||
synergyc \- manual page for synergyc 1.5.0, protocol version 1.3
|
||||
.SH SYNOPSIS
|
||||
.B synergyc
|
||||
[\fI--yscroll <delta>\fR] [\fI--daemon|--no-daemon\fR] [\fI--name <screen-name>\fR] [\fI--restart|--no-restart\fR] [\fI--debug <level>\fR] \fI<server-address>\fR
|
||||
.SH DESCRIPTION
|
||||
Connect to a synergy mouse/keyboard sharing server.
|
||||
.TP
|
||||
\fB\-d\fR, \fB\-\-debug\fR <level>
|
||||
filter out log messages with priority below level.
|
||||
level may be: FATAL, ERROR, WARNING, NOTE, INFO,
|
||||
DEBUG, DEBUGn (1\-5).
|
||||
.TP
|
||||
\fB\-n\fR, \fB\-\-name\fR <screen\-name> use screen\-name instead the hostname to identify
|
||||
this screen in the configuration.
|
||||
.TP
|
||||
\fB\-1\fR, \fB\-\-no\-restart\fR
|
||||
do not try to restart on failure.
|
||||
.PP
|
||||
* \fB\-\-restart\fR restart the server automatically if it fails.
|
||||
.TP
|
||||
\fB\-l\fR \fB\-\-log\fR <file>
|
||||
write log messages to file.
|
||||
.TP
|
||||
\fB\-f\fR, \fB\-\-no\-daemon\fR
|
||||
run in the foreground.
|
||||
.PP
|
||||
* \fB\-\-daemon\fR run as a daemon.
|
||||
.TP
|
||||
\fB\-\-yscroll\fR <delta>
|
||||
defines the vertical scrolling delta, which is
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
display this help and exit.
|
||||
.TP
|
||||
\fB\-\-version\fR
|
||||
display version information and exit.
|
||||
.PP
|
||||
* marks defaults.
|
||||
.PP
|
||||
The server address is of the form: [<hostname>][:<port>]. The hostname
|
||||
must be the address or hostname of the server. The port overrides the
|
||||
default port, 24800.
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2010 Chris Schoeneman, Nick Bolton, Sorin Sbarnea
|
|
@ -0,0 +1,57 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.38.2.
|
||||
.TH SYNERGYS "1" "June 2010" "synergys 1.5.0, protocol version 1.3" "User Commands"
|
||||
.SH NAME
|
||||
synergys \- manual page for synergys 1.5.0, protocol version 1.3
|
||||
.SH SYNOPSIS
|
||||
.B synergys
|
||||
[\fI--address <address>\fR] [\fI--config <pathname>\fR] [\fI--daemon|--no-daemon\fR] [\fI--name <screen-name>\fR] [\fI--restart|--no-restart\fR] [\fI--debug <level>\fR]
|
||||
.SH DESCRIPTION
|
||||
Start the synergy mouse/keyboard sharing server.
|
||||
.TP
|
||||
\fB\-a\fR, \fB\-\-address\fR <address>
|
||||
listen for clients on the given address.
|
||||
.TP
|
||||
\fB\-c\fR, \fB\-\-config\fR <pathname>
|
||||
use the named configuration file instead.
|
||||
.TP
|
||||
\fB\-d\fR, \fB\-\-debug\fR <level>
|
||||
filter out log messages with priority below level.
|
||||
level may be: FATAL, ERROR, WARNING, NOTE, INFO,
|
||||
DEBUG, DEBUGn (1\-5).
|
||||
.TP
|
||||
\fB\-n\fR, \fB\-\-name\fR <screen\-name> use screen\-name instead the hostname to identify
|
||||
this screen in the configuration.
|
||||
.TP
|
||||
\fB\-1\fR, \fB\-\-no\-restart\fR
|
||||
do not try to restart on failure.
|
||||
.PP
|
||||
* \fB\-\-restart\fR restart the server automatically if it fails.
|
||||
.TP
|
||||
\fB\-l\fR \fB\-\-log\fR <file>
|
||||
write log messages to file.
|
||||
.TP
|
||||
\fB\-f\fR, \fB\-\-no\-daemon\fR
|
||||
run in the foreground.
|
||||
.PP
|
||||
* \fB\-\-daemon\fR run as a daemon.
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
display this help and exit.
|
||||
.TP
|
||||
\fB\-\-version\fR
|
||||
display version information and exit.
|
||||
.PP
|
||||
* marks defaults.
|
||||
.PP
|
||||
The argument for \fB\-\-address\fR is of the form: [<hostname>][:<port>]. The
|
||||
hostname must be the address or hostname of an interface on the system.
|
||||
The default is to listen on all interfaces. The port overrides the
|
||||
default port, 24800.
|
||||
.PP
|
||||
If no configuration file pathname is provided then the first of the
|
||||
following to load successfully sets the configuration:
|
||||
.IP
|
||||
$HOME/.synergy.conf
|
||||
/etc/synergy.conf
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2010 Chris Schoeneman, Nick Bolton, Sorin Sbarnea
|
|
@ -4,13 +4,15 @@
|
|||
|
||||
The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
|
||||
the OpenSSL License and the original SSLeay license apply to the toolkit.
|
||||
See below for the actual license texts.
|
||||
See below for the actual license texts. Actually both licenses are BSD-style
|
||||
Open Source licenses. In case of any license issues related to OpenSSL
|
||||
please contact openssl-core@openssl.org.
|
||||
|
||||
OpenSSL License
|
||||
---------------
|
||||
|
||||
/* ====================================================================
|
||||
* Copyright (c) 1998-2016 The OpenSSL Project. All rights reserved.
|
||||
* Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
Binary file not shown.
Binary file not shown.
|
@ -1 +0,0 @@
|
|||
Subproject commit 7d33fee11ec480beae4c28ad09ca56d974140a72
|
Binary file not shown.
|
@ -1 +0,0 @@
|
|||
Subproject commit 800f5422ac9d9e0ad59cd860a2ef3a679588acb4
|
Binary file not shown.
|
@ -1 +0,0 @@
|
|||
Subproject commit 614bbe87b80435d87ab8791564370e0c1d13627d
|
Binary file not shown.
|
@ -1,4 +1,4 @@
|
|||
/* crypto/aes/aes.h */
|
||||
/* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */
|
||||
/* ====================================================================
|
||||
* Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
|
||||
*
|
|
@ -1,4 +1,4 @@
|
|||
/* crypto/camellia/camellia.h */
|
||||
/* crypto/camellia/camellia.h -*- mode:C; c-file-style: "eay" -*- */
|
||||
/* ====================================================================
|
||||
* Copyright (c) 2006 The OpenSSL Project. All rights reserved.
|
||||
*
|
|
@ -259,7 +259,6 @@ void ERR_load_CONF_strings(void);
|
|||
# define CONF_R_NO_VALUE 108
|
||||
# define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103
|
||||
# define CONF_R_UNKNOWN_MODULE_NAME 113
|
||||
# define CONF_R_VARIABLE_EXPANSION_TOO_LONG 116
|
||||
# define CONF_R_VARIABLE_HAS_NO_VALUE 104
|
||||
|
||||
#ifdef __cplusplus
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue