Compare commits

..

92 Commits

Author SHA1 Message Date
Andrew Nelless
b70b8e0fc4 Merge pull request #6276 from symless/issue6267-linux-switch
#6267 Stop detecting mouse movement for local input
2018-03-19 11:25:17 +00:00
Andrew Nelless
47137952f4 Revert "#4288 Remove auto Alt+Printscreen on Windows"
This reverts commit 3d3b7ca881.
2018-03-15 11:27:26 +00:00
Andrew Nelless
cd403562cd Merge pull request #6268 from erikd/topic/fixes
Minor fixes reported by AddressSanitizer
2018-03-14 13:36:29 +00:00
Andrew Nelless
2204828746 Make macOS screen shape detection code more robust 2018-03-14 13:35:42 +00:00
Erik de Castro Lopo
d2f6e56e53 Fix a memory leak 2018-03-12 10:41:31 +11:00
Erik de Castro Lopo
a0616a54be Update .gitignore
Ignore generated cmake files and directories.
2018-03-12 10:41:31 +11:00
Erik de Castro Lopo
d2a331c376 Fix compile error 2018-03-12 10:41:31 +11:00
Erik de Castro Lopo
cbd742ebb5 Fix -Wreorder warnings 2018-03-11 14:00:08 +11:00
Danielle Church
ffb0a5e1ed Initialize XWindowsScreen to offscreen for secondary displays (#6249)
XWindowsScreen::m_isOnScreen currently initializes to true for all
screens, meaning that every screen assumes it currently has control of
the shared mouse pointer when it starts up. For the primary (server)
screen, this is appropriate; when synergy starts, the local mouse should
still move the cursor on the local screen.

However, for secondary screens, this is incorrect; when the client
connects, it does _not_ have control of the shared mouse pointer, as the
server's mouse still moves the server's cursor.

This doesn't make much difference in most cases, as the secondary screen
behaves almost identically whether m_isOnScreen is true or false;
however, the local input detection code will only fire if the variable
is false, meaning that once the client connects, it first has to gain
the cursor and then lose it before it will detect local input.

Since the Synergy 2.0 service relies on synergy-core's local input
detection to determine when to switch to server mode, this means that a
Linux desktop can only ever claim primary if the shared cursor has at
some point moved to that screen, then left it.

This fixes the bug so that local input on a Linux desktop can reclaim
the primary role immediately after losing it.

Fixes #6248.
2018-03-09 15:27:56 +00:00
Jerry (Xinyu Hou)
ec3e0b2f71 #6267 Stop detecting mouse movement for local input 2018-03-08 16:40:23 +00:00
Jerry (Xinyu Hou)
ea5be67b27 #6266 Tweek log level for debugging display reconfiguration on Mac 2018-03-08 16:35:03 +00:00
Steve Williams
0f2c7099c5 Merge branch 'waldyrious-patch-1' into pr_cleanup_mar18_2 2018-03-05 13:44:37 +00:00
Steve Williams
3982e74d30 issue5648 - reapply int to float changes 2018-03-05 13:43:47 +00:00
Steve Williams
2006af9143 Merge branch 'patch-1' of https://github.com/waldyrious/synergy-core into waldyrious-patch-1 2018-03-05 11:50:32 +00:00
Andrew Nelless
cbfa585fa7 Merge pull request #6261 from rombert/feature/fix-romanian
Add support for latin 's' and 't' with comma below
2018-03-03 01:59:30 +00:00
Robert Munteanu
dfb8d15010 Add support for latin 's' and 't' with comma below
These codes were not supported at all, presumably due to being introduced
only in Unicode 3.0.
2018-02-24 23:13:43 +02:00
Nick Bolton
426e81fa71 Update README.md 2018-02-07 15:53:00 +00:00
Waldir Pimenta
3d440547ee synergy.conf.example: clarify comments
instead of saying apparently absolute statements
like "Foo is to the right of Bar",
use relative phrasing "for Bar, Foo is to the right".
This makes it clearer that the configuration file
does not describe a globally consistent spatial arrangement
but rather a set of areas that can be linked in arbitrary ways.
2018-01-23 14:26:30 +00:00
Andrew Nelless
35602ed6bf #6234 Change protocol error message 2017-12-20 15:02:26 +00:00
Andrew Nelless
703097c19b Remove synwinhk DLL 2017-12-13 18:28:48 +00:00
Xinyu Hou
a48ff8bcb5 Merge branch 'mac-input-detection' 2017-12-13 12:26:11 -05:00
Xinyu Hou
6368207dec Release quartz event tap in screen Dtor 2017-12-13 11:47:26 -05:00
Andrew Nelless
0e11b8777f Remove scary memcpy hack 2017-12-13 16:18:22 +00:00
Andrew Nelless
1fb01f6833 Remove Windows 2000 only mouse wheel support 2017-12-13 16:00:37 +00:00
Xinyu Hou
d770160e00 Add log for releasing quartz event tap 2017-12-13 10:59:41 -05:00
Andrew Nelless
2d56cc1c92 Remove NT 3.51 and Win9x mouse wheel support... 2017-12-13 15:27:48 +00:00
Andrew Nelless
db1770df39 Remove support for "high-level" mouse and keyboard hooks 2017-12-13 15:16:51 +00:00
Xinyu Hou
adcb1b9b1f Log for creating quartz event tap 2017-12-13 10:13:39 -05:00
Xinyu Hou
4dc9f893c3 Quit when failed to create quartz event tap 2017-12-13 09:42:41 -05:00
Xinyu Hou
d5872caa7e Merge branch 'mac-bundle' 2017-12-12 11:42:48 -05:00
Andrew Nelless
5ff0637a82 Remove IPC 2017-12-11 22:59:02 +00:00
Xinyu Hou
9da6974ada Install synergy core into resource folder on Mac 2017-12-11 10:28:54 -05:00
Andrew Nelless
607201d586 #6211 Abort if the carbon loop doesn't become ready within timeout 2017-12-05 15:44:10 +00:00
Xinyu Hou
eb8416b27f Fix Mac debug build 2017-12-04 10:48:34 -05:00
Jerry (Xinyu Hou)
3e7d9fca40 Fix unused variables 2017-11-27 14:20:31 +00:00
Andrew Nelless
af5c3c2917 #define build number as string 2017-11-27 01:18:42 +00:00
Andrew Nelless
4fc45c2e56 Attempt to fix Windows KeyState test build 2017-11-26 22:40:47 +00:00
Andrew Nelless
71ed35681e Fix log outputter build on Windows 2017-11-26 22:11:41 +00:00
Andrew Nelless
e21c41ba99 Remove last remnants of TLS 2017-11-26 21:44:26 +00:00
Andrew Nelless
75b2cd0b41 Apply clang-tidy fixes 2017-11-26 16:42:00 +00:00
Andrew Nelless
5fbada9424 Add support for clang-tidy checks 2017-11-26 16:36:47 +00:00
Andrew Nelless
4b3adfce94 Remove legacy TLS support and fix tests 2017-11-26 14:58:00 +00:00
Andrew Nelless
764a6d3803 Create README.md 2017-11-26 14:15:32 +00:00
Andrew Nelless
0bd448d5ca Reduce clipboard chunk size to 32KiB 2017-10-31 13:28:36 +00:00
Jerry (Xinyu Hou)
8d440e68ec Update send log link 2017-10-11 12:29:54 +01:00
Nick Bolton
36f4003688 Merge branch 'master' of github.com:symless/synergy-core 2017-10-04 10:33:27 +01:00
Nick Bolton
39fe216b8c #6151 Remove synergy2 Linux shortcut 2017-10-04 10:33:05 +01:00
Nick Bolton
ad8a911590 #6162 Make --run-as-uid Linux specific 2017-10-02 22:42:56 +01:00
Nick Bolton
b028e88fed #6162 Add UID arg so service can change process user 2017-10-02 18:20:47 +01:00
Xinyu Hou
23464a38a7 #6161 Install hook before connection established 2017-09-29 12:54:30 -04:00
Xinyu Hou
0625daacde #6161 Detect local input before connected on Mac 2017-09-28 14:04:48 -04:00
Nick Bolton
856e93df0c Update Readme.txt 2017-09-18 12:05:03 +01:00
Nick Bolton
d75e7aa638 #6151 Add optional cmake install 2017-09-18 09:48:46 +01:00
Nick Bolton
e674c0e63b Revert "Revert "#6151 Install synergy core to dictory for packaging""
This reverts commit 77d82b4f4b.
2017-09-18 09:41:13 +01:00
Nick Bolton
77d82b4f4b Revert "#6151 Install synergy core to dictory for packaging"
This reverts commit 841bd079c9.
2017-09-15 13:17:22 +01:00
Jerry (Xinyu Hou)
841bd079c9 #6151 Install synergy core to dictory for packaging 2017-09-14 18:04:11 +01:00
Nick Bolton
d2f5ba6599 #6151 Improve --server and --client arg suppress comment 2017-09-14 14:57:44 +01:00
Nick Bolton
c47b4bd492 #6151 Remove redundant --no-tray arg 2017-09-14 14:40:49 +01:00
Nick Bolton
7e0cdf6c7f #6151 Update copyright and simplify cmake 2017-09-14 13:38:51 +01:00
Nick Bolton
4fe38023aa #6151 Rename synergy lib to core lib 2017-09-14 13:28:16 +01:00
Nick Bolton
ce02171eab #6151 Remove tray from core, add core deprecated warning 2017-09-14 13:28:01 +01:00
Nick Bolton
c66729e187 #6151 Introduce synergy-core 2017-09-14 13:27:02 +01:00
Nick Bolton
4d13e57ef1 #6151 Correct cmake project name 2017-09-14 12:36:08 +01:00
Nick Bolton
9e58f6834e #6151 Ignore cmake user file 2017-09-14 12:35:51 +01:00
Nick Bolton
92c344a67c Version to v2.0.0 2017-09-14 12:29:39 +01:00
Nick Bolton
6a1767efc3 #6151 Remove synergyd and syntool 2017-09-14 12:09:47 +01:00
Nick Bolton
a5b9905c96 Merge branch 'master' of https://github.com/symless/synergy-core 2017-09-14 12:09:01 +01:00
Nick Bolton
6617e1b84e #6151 Remove cmake install calls 2017-09-14 12:08:56 +01:00
Nick Bolton
f7f55d33f1 #6151 Ignore cmake cache file 2017-09-14 12:08:15 +01:00
Nick Bolton
6b7db76b88 #6151 Replace legacy Linux desktop file 2017-09-14 11:58:02 +01:00
Nick Bolton
5b46821b93 Remove all legacy components 2017-09-14 11:01:21 +01:00
Nick Bolton
a6382cea56 Revert "Revert "Removed v1 legacy config UI""
This reverts commit 3ccf3d17e4.
2017-09-14 09:47:27 +01:00
Andrew Nelless
3ccf3d17e4 Revert "Removed v1 legacy config UI"
This reverts commit 956f071f20.
2017-09-05 20:21:22 +01:00
Andrew Nelless
d0ded4e56b Merge branch 'v1.9' into v2.0 2017-08-09 19:44:01 +01:00
Nick Bolton
956f071f20 Removed v1 legacy config UI 2017-08-09 09:20:11 +01:00
Nick Bolton
0b88247b61 Update hard coded Qt version in Wix config 2017-07-31 15:40:16 +01:00
Nick Bolton
df2793c1fa #6116 Change log level for unknown quartz event type to DEBUG3 2017-07-31 14:08:02 +01:00
Andrew Nelless
0c28da7d9f Merge branch 'v1.9' into v1.9-bidir 2017-05-27 14:17:05 +01:00
Andrew Nelless
5cf74a7019 Merge remote-tracking branch 'origin/v1.9' into v1.9-bidir 2017-05-26 22:47:49 +01:00
Andrew Nelless
77a6a53a34 Merge remote-tracking branch 'origin/v1.9' into v1.9-bidir 2017-05-25 13:35:58 +01:00
Andrew Nelless
1070ffce53 Simplify version number handling 2017-05-23 16:05:35 +01:00
Andrew Nelless
9bb4f564e5 Merge branch 'v1.9' into v1.9-bidir 2017-05-23 15:25:42 +01:00
Andrew Nelless
3e5cb09e19 Merge branch 'v1.9' into v1.9-bidir 2017-05-22 21:40:44 +01:00
Andrew Nelless
79b814622e Replace 'Symless Ltd' with 'Symless' 2017-05-22 17:03:21 +01:00
Andrew Nelless
7b19ac89a1 Merge branch 'v1.9' into v1.9-bidir 2017-05-22 16:48:32 +01:00
Andrew Nelless
d5d2f937c3 Update Build.properties 2017-05-21 21:35:33 +01:00
Andrew Nelless
41721e9eac Partial local input detection for Linux 2017-05-19 20:16:30 +01:00
Andrew Nelless
0ac42d4d05 Experiment catching client-side native clicks 2017-05-16 14:26:19 +01:00
Jerry (Xinyu Hou)
9551329392 Compare source pid from event to detect local input on Mac 2017-05-10 16:24:44 +01:00
Jerry (Xinyu Hou)
f83da9ae34 Use IOHID to fake mouse buttons 2017-05-10 16:09:09 +01:00
Andrew Nelless
271ac9e057 Reduce local input detection notice to INFO level 2017-05-09 19:32:29 +01:00
Andrew Nelless
c3530a0ff3 Add synwinhk support to synergyc 2017-05-09 19:24:07 +01:00
1038 changed files with 7321 additions and 173200 deletions

View File

@@ -1,16 +1,15 @@
### Operating Systems ###
Server: microOS Tiara
Client: Applesoft Windy OS 10
**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 ;)
### Barrier Version ###
### Synergy Version ###
1.9
1.8
**READ ME, DELETE ME**: Go to the 'Help' (on Windows) or 'Barrier' (on macOS) menu and then 'About Barrier' 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://github.com/debauchee/barrier/
**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 ###
@@ -20,11 +19,14 @@ Client: Applesoft Windy OS 10
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 Barrier entirely? Yes/No
* Does this bug prevent you from using Synergy entirely? Yes/No
Please follow the link below to send us logs from both your server and client sides if it's appropriate. https://github.com/symless/synergy-core/wiki/Sending-logs
Put anything else you can think of here.

20
.gitignore vendored
View File

@@ -1,8 +1,8 @@
build_env.*
config.h
.DS_Store
*.pyc
*.o
*.a
*~
\.*.swp
*build-gui-Desktop_Qt*
@@ -11,7 +11,6 @@ config.h
/build
/CMakeFiles
/ext/cryptopp562
/ext/openssl
/src/gui/Makefile*
/src/gui/object_script*
/src/gui/tmp
@@ -19,16 +18,9 @@ config.h
src/gui/gui.pro.user*
src/gui/.qmake.stash
src/gui/.rnd
src/setup/win32/barrier.suo
Makefile
*.cmake
**/CMakeFiles/
src/setup/win32/synergy.suo
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
CMakeLists.txt.user
Makefile
cmake_install.cmake
CMakeFiles/

View File

@@ -1,7 +1,7 @@
#
# Barrier build parameters
# Synergy build parameters
#
BARRIER_VERSION_MAJOR = 2
BARRIER_VERSION_MINOR = 3
BARRIER_VERSION_PATCH = 2
BARRIER_VERSION_STAGE = snapshot
SYNERGY_VERSION_MAJOR = 2
SYNERGY_VERSION_MINOR = 0
SYNERGY_VERSION_PATCH = 0
SYNERGY_VERSION_STAGE = snapshot

View File

@@ -1,5 +1,4 @@
# 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
#
@@ -16,12 +15,10 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
cmake_minimum_required (VERSION 3.4)
project (barrier C CXX)
project (synergy-core C CXX)
option (BARRIER_BUILD_GUI "Build the GUI" ON)
option (BARRIER_BUILD_INSTALLER "Build the installer" ON)
option (SYNERGY_CORE_INSTALL "Enable Synergy Core install (Mac and Linux)" OFF)
set (CMAKE_EXPORT_COMPILE_COMMANDS ON)
set (CMAKE_CXX_STANDARD 14)
set (CMAKE_CXX_EXTENSIONS OFF)
set (CMAKE_CXX_STANDARD_REQUIRED ON)
@@ -32,8 +29,23 @@ if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
add_definitions (-DNDEBUG)
endif()
find_program (CLANG_TIDY_EXE
NAMES "clang-tidy"
DOC "Path to clang-tidy executable")
if (SYNERGY_TIDY)
if (NOT CLANG_TIDY_EXE)
message (STATUS "clang-tidy not found.")
else ()
message (STATUS "clang-tidy found: ${CLANG_TIDY_EXE}")
set (DO_CLANG_TIDY "${CLANG_TIDY_EXE}" "-checks=* -fix")
endif ()
endif()
#
# Synergy version
#
include (cmake/Version.cmake)
include (cmake/Package.cmake)
# TODO: Find out why we need these, and remove them
if (COMMAND cmake_policy)
@@ -43,9 +55,9 @@ endif()
# Add headers to source list
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)
@@ -64,7 +76,6 @@ if (UNIX)
include (CheckIncludeFileCXX)
include (CheckSymbolExists)
include (CheckCSourceCompiles)
include (FindPkgConfig)
check_include_file_cxx (istream HAVE_ISTREAM)
check_include_file_cxx (ostream HAVE_OSTREAM)
@@ -133,9 +144,7 @@ if (UNIX)
# curl is used on both Linux and Mac
find_package (CURL)
if (CURL_FOUND)
include_directories(${CURL_INCLUDE_DIRS})
list (APPEND libs ${CURL_LIBRARIES})
list (APPEND libs curl)
else()
message (FATAL_ERROR "Missing library: curl")
endif()
@@ -158,20 +167,9 @@ if (UNIX)
)
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()
if (${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")
@@ -186,7 +184,6 @@ if (UNIX)
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)
if (HAVE_X11_EXTENSIONS_DPMS_H)
# Assume that function prototypes declared, when include exists.
@@ -197,10 +194,6 @@ if (UNIX)
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)
@@ -219,7 +212,7 @@ if (UNIX)
if (HAVE_Xtst)
# Xtxt depends on X11.
set (HAVE_X11 1)
set (HAVE_X11)
list (APPEND libs Xtst X11)
else()
@@ -290,71 +283,11 @@ elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
/DWIN32
/D_WINDOWS
/D_CRT_SECURE_NO_WARNINGS
/DBARRIER_VERSION=\"${BARRIER_VERSION}\"
/DSYNERGY_VERSION=\"${SYNERGY_VERSION}\"
/D_XKEYCHECK_H
)
endif()
#
# 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()
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(BREW_PROGRAM "brew")
find_program(PORT_PROGRAM "port")
if (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
)
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()
# Check we have the *required* Qt5 libs.
find_package(Qt5Core REQUIRED)
find_package(Qt5Network REQUIRED)
find_package(Qt5Widgets REQUIRED)
#
# Configure_file... but for directories, recursively.
#
@@ -385,52 +318,10 @@ macro (configure_files srcDir destDir)
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})
if (CMAKE_BUILD_TYPE STREQUAL "Release")
add_custom_target(Barrier_dmg ALL
bash build_installer.sh
DEPENDS barrier barriers barrierc
WORKING_DIRECTORY ${BARRIER_BUNDLE_DIR})
endif()
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)
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()
endif()
else()
message (STATUS "NOT configuring the installer")
endif()
add_subdirectory (src)
if (SYNERGY_TIDY)
set_property (TARGET synergys synergyc synergy-core
arch base client common core io mt net platform server shared
PROPERTY CXX_CLANG_TIDY "${DO_CLANG_TIDY}")
endif()

View File

@@ -1,11 +1,7 @@
Copyright (C) 2018 Debauchee Open Source Group
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
that compiling, linking, and/or using OpenSSL is allowed.
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991

View File

@@ -1,62 +1,3 @@
# Barrier
# Synergy Core
Eliminate the barrier between your machines.
Find [releases here](https://github.com/debauchee/barrier/releases).
### Contact info:
- `#barrier` on freenode
#### CI Build Status
Master branch overall build status: [![Build Status](https://dev.azure.com/debauchee/Barrier/_apis/build/status/debauchee.barrier?branchName=master)](https://dev.azure.com/debauchee/Barrier/_build/latest?definitionId=1&branchName=master)
* Linux Build Status: [![Build Status](https://dev.azure.com/debauchee/Barrier/_apis/build/status/debauchee.barrier?branchName=master&jobName=Linux%20Build)](https://dev.azure.com/debauchee/Barrier/_build/latest?definitionId=1&branchName=master)
* Mac Build Status: [![Build Status](https://dev.azure.com/debauchee/Barrier/_apis/build/status/debauchee.barrier?branchName=master&jobName=Mac%20Build)](https://dev.azure.com/debauchee/Barrier/_build/latest?definitionId=1&branchName=master)
* Windows Debug Build Status: [![Build Status](https://dev.azure.com/debauchee/Barrier/_apis/build/status/debauchee.barrier?branchName=master&jobName=Windows%20Build&configuration=Windows%20Build%20Debug)](https://dev.azure.com/debauchee/Barrier/_build/latest?definitionId=1&branchName=master)
* Windows Release Build Status: [![Build Status](https://dev.azure.com/debauchee/Barrier/_apis/build/status/debauchee.barrier?branchName=master&jobName=Windows%20Build&configuration=Windows%20Build%20Release%20with%20Release%20Installer)](https://dev.azure.com/debauchee/Barrier/_build/latest?definitionId=1&branchName=master)
Our CI Builds are provided by Microsoft Azure Pipelines.
### What is it?
Barrier is KVM software forked from Symless's synergy 1.9 codebase. Synergy was a commercialized reimplementation of the original CosmoSynergy written by Chris Schoeneman.
### 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 machine A to control machine B (or more). It's that simple.
### 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.
### Contact & support
Please be aware that the *only* way to draw our attention to a bug is to create a new PR in the issue tracker. 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 Freenode 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.
### FAQ
Q: Does drag and drop work on linux?
A: No
Q: What OSes are supported?
A:
- Windows 7, 8, 8.1, and 10
- MacOS/OS X
- Linux
- FreeBSD
Q: Are 32-bit versions of Windows supported?
A: No
This is the open source core component of Synergy, a keyboard and mouse sharing tool.

View File

@@ -1 +0,0 @@
theme: jekyll-theme-slate

View File

@@ -1,97 +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
displayName: Linux Build
pool:
vmImage: 'ubuntu-16.04'
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
pool:
vmImage: 'macOS-10.14'
strategy:
matrix:
Release:
B_BUILD_TYPE: Release
BARRIER_VERSION_STAGE: Release
steps:
- script: brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/aac86fc018c48d7b6f23a2e7535276899774567a/Formula/qt.rb
displayName: Installed Pinned Qt
- script: brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/aac86fc018c48d7b6f23a2e7535276899774567a/Formula/openssl.rb
displayName: Installed Pinned OpenSSL
- 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

View File

@@ -1,6 +0,0 @@
set B_BUILD_TYPE=%CI_ENV_BUILD_TYPE%
set B_QT_ROOT=%cd%\deps\Qt
set B_QT_VER=Qt5.12.3\5.12.3
set B_QT_MSVC=msvc2017_64
set B_BONJOUR=%cd%\deps\BonjourSDKLike

View File

@@ -1,12 +0,0 @@
$ErrorActionPreference = "Stop"
New-Item -Force -ItemType Directory -Path ".\deps\"
$Wc = New-Object System.Net.WebClient
$Wc.DownloadFile('https://github.com/nelsonjchen/mDNSResponder/releases/download/v2019.05.08.1/x64_RelWithDebInfo.zip', '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'

View File

@@ -1,26 +0,0 @@
$ErrorActionPreference = "Stop"
$qli_install_version = '2019.05.26.1'
$qt_version = '5.12.3'
New-Item -Force -ItemType Directory -Path ".\deps\"
Write-Output 'Downloading QLI Installer'
$Wc = New-Object System.Net.WebClient
$Wc.DownloadFile("https://github.com/nelsonjchen/qli-installer/archive/v$qli_install_version.zip", '.\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 = "http://mirrors.ocf.berkeley.edu/qt/online/qtsdkrepository/"
python .\deps\qli-installer\qli-installer.py $qt_version windows desktop win64_msvc2017_64
Write-Output 'Installed QT Installer'

View File

@@ -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=

View File

@@ -1,84 +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%
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
echo @msbuild barrier.sln /p:Platform="x64" /p:Configuration=%B_BUILD_TYPE% /m %B_BUILD_OPTIONS% > make.bat
call make.bat
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
) 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 confiuration files!
)
echo Build completed successfully
goto done
:failed
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=

View File

@@ -1,28 +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
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"

View File

@@ -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()

View File

@@ -1,94 +1,90 @@
cmake_minimum_required (VERSION 3.4)
set (BARRIER_VERSION_MAJOR 2)
set (BARRIER_VERSION_MINOR 3)
set (BARRIER_VERSION_PATCH 2)
#
# Barrier Version
# Synergy Version
#
if (NOT DEFINED BARRIER_VERSION_MAJOR)
if (DEFINED ENV{BARRIER_VERSION_MAJOR})
set (BARRIER_VERSION_MAJOR $ENV{BARRIER_VERSION_MAJOR})
if (NOT DEFINED SYNERGY_VERSION_MAJOR)
if (DEFINED ENV{SYNERGY_VERSION_MAJOR})
set (SYNERGY_VERSION_MAJOR $ENV{SYNERGY_VERSION_MAJOR})
else()
set (BARRIER_VERSION_MAJOR 1)
set (SYNERGY_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})
if (NOT DEFINED SYNERGY_VERSION_MINOR)
if (DEFINED ENV{SYNERGY_VERSION_MINOR})
set (SYNERGY_VERSION_MINOR $ENV{SYNERGY_VERSION_MINOR})
else()
set (BARRIER_VERSION_MINOR 9)
set (SYNERGY_VERSION_MINOR 0)
endif()
endif()
if (NOT DEFINED BARRIER_VERSION_PATCH)
if (DEFINED ENV{BARRIER_VERSION_PATCH})
set (BARRIER_VERSION_PATCH $ENV{BARRIER_VERSION_PATCH})
if (NOT DEFINED SYNERGY_VERSION_PATCH)
if (DEFINED ENV{SYNERGY_VERSION_PATCH})
set (SYNERGY_VERSION_PATCH $ENV{SYNERGY_VERSION_PATCH})
else()
set (BARRIER_VERSION_PATCH 0)
message (WARNING "Barrier version wasn't set. Set to ${BARRIER_VERSION_MAJOR}.${BARRIER_VERSION_MINOR}.${BARRIER_VERSION_PATCH}")
set (SYNERGY_VERSION_PATCH 0)
message (WARNING "Synergy version wasn't set. Set to ${SYNERGY_VERSION_MAJOR}.${SYNERGY_VERSION_MINOR}.${SYNERGY_VERSION_PATCH}")
endif()
endif()
if (NOT DEFINED BARRIER_VERSION_STAGE)
if (DEFINED ENV{BARRIER_VERSION_STAGE})
set (BARRIER_VERSION_STAGE $ENV{BARRIER_VERSION_STAGE})
if (NOT DEFINED SYNERGY_VERSION_STAGE)
if (DEFINED ENV{SYNERGY_VERSION_STAGE})
set (SYNERGY_VERSION_STAGE $ENV{SYNERGY_VERSION_STAGE})
else()
set (BARRIER_VERSION_STAGE "snapshot")
set (SYNERGY_VERSION_STAGE "snapshot")
endif()
endif()
if (NOT DEFINED BARRIER_REVISION)
if (NOT DEFINED SYNERGY_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()
string (SUBSTRING $ENV{GIT_COMMIT} 0 8 SYNERGY_REVISION)
elseif (SYNERGY_VERSION_STAGE STREQUAL "snapshot")
execute_process (
COMMAND git rev-parse --short=8 HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE SYNERGY_REVISION
OUTPUT_STRIP_TRAILING_WHITESPACE
)
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}")
if (DEFINED SYNERGY_REVISION)
string(LENGTH ${SYNERGY_REVISION} SYNERGY_REVISION_LENGTH)
if (NOT ((SYNERGY_REVISION MATCHES "^[a-f0-9]+") AND (SYNERGY_REVISION_LENGTH EQUAL "8")))
message (FATAL_ERROR "SYNERGY_REVISION ('${SYNERGY_REVISION}') should be a short commit hash")
endif()
unset (SYNERGY_REVISION_LENGTH)
else()
set (SYNERGY_REVISION "0badc0de")
endif()
unset (BARRIER_REVISION_LENGTH)
if (DEFINED ENV{BUILD_NUMBER})
set (BARRIER_BUILD_NUMBER $ENV{BUILD_NUMBER})
set (SYNERGY_BUILD_NUMBER $ENV{BUILD_NUMBER})
else()
set (BARRIER_BUILD_NUMBER 1)
set (SYNERGY_BUILD_NUMBER 1)
endif()
string (TIMESTAMP BARRIER_BUILD_DATE "%Y%m%d" UTC)
set (BARRIER_SNAPSHOT_INFO ".${BARRIER_VERSION_STAGE}.${BARRIER_REVISION}")
string (TIMESTAMP SYNERGY_BUILD_DATE "%Y%m%d" UTC)
set (SYNERGY_SNAPSHOT_INFO ".${SYNERGY_VERSION_STAGE}.${SYNERGY_REVISION}")
if (BARRIER_VERSION_STAGE STREQUAL "snapshot")
set (BARRIER_VERSION_TAG "${BARRIER_VERSION_STAGE}.b${BARRIER_BUILD_NUMBER}-${BARRIER_REVISION}")
if (SYNERGY_VERSION_STAGE STREQUAL "snapshot")
set (SYNERGY_VERSION_TAG "${SYNERGY_VERSION_STAGE}.b${SYNERGY_BUILD_NUMBER}-${SYNERGY_REVISION}")
else()
set (BARRIER_VERSION_TAG "${BARRIER_VERSION_STAGE}")
set (SYNERGY_VERSION_TAG "${SYNERGY_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} "'")
set (SYNERGY_VERSION "${SYNERGY_VERSION_MAJOR}.${SYNERGY_VERSION_MINOR}.${SYNERGY_VERSION_PATCH}")
set (SYNERGY_VERSION_STRING "${SYNERGY_VERSION}-${SYNERGY_VERSION_TAG}")
message (STATUS "Full Synergy version string is '" ${SYNERGY_VERSION_STRING} "'")
add_definitions (-DBARRIER_VERSION="${BARRIER_VERSION}")
add_definitions (-DBARRIER_VERSION_STRING="${BARRIER_VERSION_STRING}")
add_definitions (-DBARRIER_REVISION="${BARRIER_REVISION}")
add_definitions (-DBARRIER_BUILD_DATE="${BARRIER_BUILD_DATE}")
add_definitions (-DBARRIER_BUILD_NUMBER=${BARRIER_BUILD_NUMBER})
add_definitions (-DSYNERGY_VERSION="${SYNERGY_VERSION}")
add_definitions (-DSYNERGY_VERSION_STRING="${SYNERGY_VERSION_STRING}")
add_definitions (-DSYNERGY_REVISION="${SYNERGY_REVISION}")
add_definitions (-DSYNERGY_BUILD_DATE="${SYNERGY_BUILD_DATE}")
add_definitions (-DSYNERGY_BUILD_NUMBER="${SYNERGY_BUILD_NUMBER}")
if (BARRIER_DEVELOPER_MODE)
add_definitions (-DBARRIER_DEVELOPER_MODE=1)
if (SYNERGY_DEVELOPER_MODE)
add_definitions (-DSYNERGY_DEVELOPER_MODE=1)
endif()

5
debian/changelog vendored
View File

@@ -1,5 +0,0 @@
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

12
debian/control vendored
View File

@@ -1,17 +1,17 @@
Source: barrier
Source: synergy
Section: utils
Priority: optional
Standards-Version: 3.9.7
Homepage: https://github.com/debauchee/barrier/
Maintainer: Debauchee Open Source Group <todo@mail.com>
Homepage: https://www.symless.com/
Maintainer: Symless <engineering@symless.com>
Package: barrier
Package: synergy
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.
Synergy allows you to share one mouse and keyboard between multiple computers.
Work seamlessly across Windows, macOS and Linux.
Homepage: https://github.com/debauchee/barrier/
Homepage: https://symless.com/synergy

6
debian/copyright vendored
View File

@@ -1,5 +1,5 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: Barrier
Source: https://github.com/debauchee/barrier/
Upstream-Name: Synergy
Source: https://www.symless.com/synergy
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
Copyright: Copyright (C) 2012-2017 Symless Ltd

View File

@@ -1,80 +0,0 @@
#define MyAppName "Barrier"
#define MyAppVersion "@BARRIER_VERSION@"
#define MyAppPublisher "Debauchee Open Source Group"
#define MyAppURL "https://github.com/debauchee/barrier/wiki"
#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={#MyAppVersion}
AppVerName={#MyAppName} {#MyAppVersion}
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-{#MyAppVersion}
SetupIconFile=@CMAKE_CURRENT_SOURCE_DIR@/res/barrier.ico
Compression=lzma
SolidCompression=yes
ArchitecturesInstallIn64BitMode=x64 ia64
#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: files; Name: "{app}\barrierd.log"
[UninstallRun]
Filename: {sys}\sc.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;

View File

@@ -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.

View File

@@ -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]

View File

@@ -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]

View File

@@ -1,6 +0,0 @@
#include "isxdl\isxdl.iss"
[Code]
#include "products.pas"
[Setup]

View File

@@ -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;

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -4,28 +4,28 @@
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDisplayName</key>
<string>Barrier</string>
<string>Synergy</string>
<key>CFBundleExecutable</key>
<string>barrier.sh</string>
<string>synergy</string>
<key>CFBundleIconFile</key>
<string>Barrier.icns</string>
<string>Synergy.icns</string>
<key>CFBundleIdentifier</key>
<string>barrier</string>
<string>synergy</string>
<!-- TODO: Fix this in v2.0 //-->
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Barrier</string>
<string>Synergy</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>SYN1</string>
<key>CFBundleShortVersionString</key>
<string>@BARRIER_VERSION@</string>
<string>@SYNERGY_VERSION@</string>
<key>CFBundleVersion</key>
<string>@BARRIER_VERSION@</string>
<string>@SYNERGY_VERSION@</string>
<key>NSHumanReadableCopyright</key>
<string>© 2018 Debauchee Open Source Group</string>
<string>© 2012-2016, Symless Ltd</string>
<key>LSMinimumSystemVersion</key>
<string>10.9.0</string>
</dict>

Binary file not shown.

View File

@@ -1,82 +0,0 @@
#!/bin/sh
# change this to rename the installer package
B_DMG="Barrier-@BARRIER_VERSION@.dmg"
cd @CMAKE_CURRENT_SOURCE_DIR@/build/bundle || exit 1
B_REREF_SCRIPT=@CMAKE_CURRENT_SOURCE_DIR@/build/bundle/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
# create a startup script that will change to the binary directory
# before starting barrier
printf "%s\n" "#!/bin/sh" "cd \$(dirname \$0)" "exec ./barrier" > barrier.sh
chmod +x barrier.sh
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_DMB created successfully"

View File

@@ -1,43 +0,0 @@
#!/bin/sh
# $1 = binary (program or dylib)
B_TARGET=$1
if [ "x$B_TARGET" = "x" ]; then
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

View File

@@ -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

27
dist/rpm/synergy.spec.in vendored Normal file
View File

@@ -0,0 +1,27 @@
Name: synergy
Version: @SYNERGY_VERSION@
Summary: Keyboard and mouse sharing solution
Group: Applications/Productivity
URL: https://symless.com/synergy
Source: https://symless.com/synergy/downloads
Vendor: Symless
Packager: Symless <engineering@symless.com>
License: GPLv2
Release: @SYNERGY_BUILD_NUMBER@@SYNERGY_SNAPSHOT_INFO@%{?dist}
%description
Synergy allows you to share one mouse and keyboard between multiple computers.
Work seamlessly across Windows, macOS and Linux.
%files
%defattr(755,root,root,-)
%{_bindir}/synergy
%{_bindir}/synergyc
%{_bindir}/synergys
%{_bindir}/syntool
%attr(644,-,-) %{_datarootdir}/applications/synergy.desktop
%attr(644,-,-) %{_datarootdir}/icons/hicolor/scalable/apps/synergy.svg
%changelog
* Wed Apr 26 2017 Symless <engineering@symless.com>
- Initial version of the package

View File

@@ -1,9 +1,9 @@
<?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 Name="Synergy" ?>
<?define Version="@SYNERGY_VERSION@" ?>
<?define QtVersion="5.9.3" ?> <!-- TODO: Configure this externally //-->
<?define Author="Symless" ?>
<?define BinPath="@CMAKE_RUNTIME_OUTPUT_DIRECTORY@/$(var.Configuration)" ?>
<?define ResPath="@CMAKE_CURRENT_SOURCE_DIR@/res" ?>
<?define ExtPath="@CMAKE_CURRENT_SOURCE_DIR@/ext" ?>
@@ -11,15 +11,17 @@
<?define ProgramFilesFolder="ProgramFiles64Folder" ?>
<?define PlatformSimpleName="64-bit" ?>
<?define UpgradeGuid="E8A4FA54-14B9-4FD1-8E00-7BC46555FDA0" ?>
<?define QtPath="@CMAKE_PREFIX_PATH@" ?>
<?define QtPath="C:\Qt\$(var.QtVersion)\msvc2015_64" ?>
<?else ?>
<?define ProgramFilesFolder="ProgramFilesFolder" ?>
<?define PlatformSimpleName="32-bit" ?>
<?define UpgradeGuid="BE0B9FD8-45E2-4A8E-A0D8-1F774D074A78" ?>
<?define QtPath="@CMAKE_PREFIX_PATH@" ?>
<?define QtPath="C:\Qt\$(var.QtVersion)\msvc2015" ?>
<?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" ?>
<?if $(var.Configuration) = "Debug" ?>
<?define DebugCRT="$(env.CommonProgramFiles)\Merge Modules\Microsoft_VC140_DebugCRT_$(var.Platform).msm" ?>
<?endif ?>
<?define CRT="$(env.CommonProgramFiles)\Merge Modules\Microsoft_VC140_CRT_$(var.Platform).msm" ?>
</Include>

44
dist/wix/Product.wxs vendored
View File

@@ -13,24 +13,35 @@
<Feature Id="ProductFeature" Title="$(var.Name)">
<ComponentGroupRef Id="ProductComponents"/>
<ComponentGroupRef Id="ProductQtPluginComponents"/>
<MergeRef Id="CRT"/>
<?if $(var.Configuration) = "Debug" ?>
<MergeRef Id="DebugCRT"/>
<?endif ?>
<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"/>
<RegistryValue Name="[INSTALLFOLDER]synergys.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"/>
<Icon Id="synergy.ico" SourceFile="$(var.ResPath)/synergy.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="ARPPRODUCTICON" Value="synergy.ico"/>
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER"/>
<Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable"/>
<Property Id="LEGACY_UNINSTALL_EXISTS">
<RegistrySearch Id="LegacyRegistrySearch" Key="SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Synergy" Name="UninstallString" Root="HKLM" Type="file" Win64="no">
<FileSearch Id="LegacyFileSearch" Name="uninstall.exe"/>
</RegistrySearch>
</Property>
<Condition Message="An existing installation of $(var.Name) was detected, please uninstall it before continuing.">NOT LEGACY_UNINSTALL_EXISTS
</Condition>
<CustomAction ExeCommand="" FileKey="GuiProgram" Id="StartGui" Return="asyncNoWait"/>
<UI>
<Publish Control="Finish" Dialog="ExitDialog" Event="DoAction" Value="StartGui">NOT Installed</Publish>
@@ -40,7 +51,10 @@
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="$(var.ProgramFilesFolder)">
<Directory Id="INSTALLFOLDER" Name="$(var.Name)">
<Directory Id="OpenSSLDir" Name="OpenSSL"/>
<Merge DiskId="1" Id="CRT" Language="0" SourceFile="$(var.CRT)"/>
<?if $(var.Configuration) = "Debug" ?>
<Merge DiskId="1" Id="DebugCRT" Language="0" SourceFile="$(var.DebugCRT)"/>
<?endif ?>
<Directory Id="PlatformsDir" Name="Platforms"/>
</Directory>
</Directory>
@@ -50,23 +64,21 @@
<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">
<File KeyPath="yes" Source="$(var.BinPath)/synergyd.exe"/>
<ServiceInstall Description="Controls the $(var.Name) foreground processes." DisplayName="$(var.Name)" ErrorControl="normal" Id="ServiceInstall" Name="Synergy" 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">
<ServiceControl Id="ServiceControl" Name="Synergy" Remove="uninstall" Start="install" Stop="both"/>
<File Source="$(var.BinPath)/synergys.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"/>
<File Source="$(var.BinPath)/synergyc.exe"/>
<File Source="$(var.BinPath)/syntool.exe"/>
<File Source="$(var.BinPath)/synwinhk.dll"/>
</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)"/>
<File Id="GuiProgram" KeyPath="yes" Source="$(var.BinPath)/synergy.exe">
<Shortcut Advertise="yes" Directory="ProgramMenuFolder" Icon="synergy.ico" Id="GuiShortcut" Name="$(var.Name)"/>
<fire:FirewallException Id="GuiFirewallException" IgnoreFailure="yes" Name="$(var.Name)" Scope="any"/>
</File>
<?if $(var.Configuration) = "Debug" ?>
@@ -100,4 +112,4 @@
</Component>
</ComponentGroup>
</Fragment>
</Wix>
</Wix>

View File

@@ -2,7 +2,7 @@
# Visual Studio 14
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Barrier", "Barrier.wixproj", "{D4BA9F39-6A35-4C8F-9CB2-67FCBE5CAB17}"
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Synergy", "Synergy.wixproj", "{D4BA9F39-6A35-4C8F-9CB2-67FCBE5CAB17}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution

View File

@@ -4,7 +4,7 @@
<ProductVersion>3.10</ProductVersion>
<ProjectGuid>{d4ba9f39-6a35-4c8f-9cb2-67fcbe5cab17}</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion>
<OutputName>Barrier</OutputName>
<OutputName>Synergy</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>

7
doc/MacReadme.txt Normal file → Executable file
View File

@@ -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. Copy the binaries to /usr/bin using: sudo cp synergy* /usr/bin
4. Correct the permissions and ownership: sudo chown root:wheel /usr/bin/synergy*; sudo chmod 555 /usr/bin/synergy*
Alternatively, you can copy the binaries as root. 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/

View File

@@ -34,7 +34,7 @@
</data>
<data>
<variable>DisplayName</variable>
<value type="QString">Barrier</value>
<value type="QString">Synergy</value>
</data>
</qtcreator>
<?xml version="1.0" encoding="UTF-8"?>
@@ -73,7 +73,7 @@
</data>
<data>
<variable>DisplayName</variable>
<value type="QString">Barrier</value>
<value type="QString">Synergy</value>
</data>
</qtcreator>
<?xml version="1.0" encoding="UTF-8"?>
@@ -112,7 +112,7 @@
</data>
<data>
<variable>DisplayName</variable>
<value type="QString">Barrier</value>
<value type="QString">Synergy</value>
</data>
</qtcreator>
<?xml version="1.0" encoding="UTF-8"?>
@@ -151,7 +151,7 @@
</data>
<data>
<variable>DisplayName</variable>
<value type="QString">Barrier</value>
<value type="QString">Synergy</value>
</data>
</qtcreator>
<?xml version="1.0" encoding="UTF-8"?>
@@ -190,7 +190,7 @@
</data>
<data>
<variable>DisplayName</variable>
<value type="QString">Barrier</value>
<value type="QString">Synergy</value>
</data>
</qtcreator>
<?xml version="1.0" encoding="UTF-8"?>
@@ -229,6 +229,6 @@
</data>
<data>
<variable>DisplayName</variable>
<value type="QString">Barrier</value>
<value type="QString">Synergy</value>
</data>
</qtcreator>

View File

@@ -1,5 +0,0 @@
To recreate the 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

View File

@@ -1,37 +0,0 @@
# sample barrier configuration file
#
# comments begin with the # character and continue to the end of
# line. comments may appear anywhere the syntax permits.
section: screens
# three hosts named: moe, larry, and curly
moe:
larry:
curly:
end
section: links
# larry is to the right of moe and curly is above moe
moe:
right = larry
up = curly
# moe is to the left of larry and curly is above larry.
# note that curly is above both moe and larry and moe
# and larry have a symmetric connection (they're in
# opposite directions of each other).
larry:
left = moe
up = curly
# larry is below curly. if you move up from moe and then
# down, you'll end up on larry.
curly:
down = larry
end
section: aliases
# curly is also known as shemp
curly:
shemp
end

View File

@@ -1,73 +0,0 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
.TH BARRIERC "1" "May 2018" "barrierc 2.1.0-snapshot" "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

View File

@@ -1,82 +0,0 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
.TH BARRIERS "1" "May 2018" "barriers 2.1.0-snapshot" "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\-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.
.PP
If no configuration file pathname is provided then the first of the
following to load successfully sets the configuration:
.IP
$HOME/.local/share/barrier/barrier.conf
\fI\,/etc/barrier.conf\/\fP
.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

View File

@@ -2,16 +2,16 @@
<!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. -->
<!-- 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.debauchee.com.barrierc.plist</string>
<string>org.symless.com.synergyc.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>/usr/bin/synergyc</string>
<!-- Replace this IP with the IP of your synergys server -->
<string>192.168.0.2</string>
</array>
<key>RunAtLoad</key>

View File

@@ -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>
<string>org.symless.com.synergys.plist</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/barriers</string>
<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/>

38
doc/synergy.conf.example Normal file
View File

@@ -0,0 +1,38 @@
# sample synergy configuration file
#
# comments begin with the # character and continue to the end of
# line. comments may appear anywhere the syntax permits.
section: screens
# three hosts, named "moe", "larry", and "curly"
moe:
larry:
curly:
end
section: links
# for moe, larry is to the right and curly is above.
moe:
right = larry
up = curly
# for larry, moe is to the left and curly is also above.
# note that curly is above both moe and larry
# and that the connection between moe and larry is symmetric
# (i.e. they're in opposite directions of each other).
larry:
left = moe
up = curly
# for curly, larry is below.
# if you move up from moe, and then move down,
# you'll end up on larry, not back at moe.
curly:
down = larry
end
section: aliases
# curly is also known as shemp
curly:
shemp
end

View File

@@ -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.

View File

@@ -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
doc/synergyc.man Normal file
View File

@@ -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

57
doc/synergys.man Normal file
View File

@@ -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

2
ext/gmock/build-aux/config.guess vendored Executable file → Normal file
View File

@@ -461,7 +461,7 @@ EOF
Motorola:*:4.3:PL8-*)
echo powerpc-harris-powermax
exit ;;
Night_Hawk:*:*:PowerMAX_OS | Barrier:PowerMAX_OS:*:*)
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
echo powerpc-harris-powermax
exit ;;
Night_Hawk:Power_UNIX:*:*)

0
ext/gmock/build-aux/config.sub vendored Executable file → Normal file
View File

0
ext/gmock/build-aux/depcomp Executable file → Normal file
View File

0
ext/gmock/build-aux/install-sh Executable file → Normal file
View File

0
ext/gmock/build-aux/missing Executable file → Normal file
View File

0
ext/gmock/configure vendored Executable file → Normal file
View File

0
ext/gmock/scripts/fuse_gmock_files.py Executable file → Normal file
View File

0
ext/gmock/scripts/generator/cpp/ast.py Executable file → Normal file
View File

0
ext/gmock/scripts/generator/cpp/gmock_class.py Executable file → Normal file
View File

0
ext/gmock/scripts/generator/cpp/keywords.py Executable file → Normal file
View File

0
ext/gmock/scripts/generator/cpp/tokenize.py Executable file → Normal file
View File

0
ext/gmock/scripts/generator/cpp/utils.py Executable file → Normal file
View File

0
ext/gmock/scripts/generator/gmock_gen.py Executable file → Normal file
View File

0
ext/gmock/scripts/gmock-config.in Executable file → Normal file
View File

0
ext/gmock/test/gmock_leak_test.py Executable file → Normal file
View File

0
ext/gmock/test/gmock_output_test.py Executable file → Normal file
View File

0
ext/gmock/test/gmock_test_utils.py Executable file → Normal file
View File

2
ext/gtest/build-aux/config.guess vendored Executable file → Normal file
View File

@@ -461,7 +461,7 @@ EOF
Motorola:*:4.3:PL8-*)
echo powerpc-harris-powermax
exit ;;
Night_Hawk:*:*:PowerMAX_OS | Barrier:PowerMAX_OS:*:*)
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
echo powerpc-harris-powermax
exit ;;
Night_Hawk:Power_UNIX:*:*)

0
ext/gtest/build-aux/config.sub vendored Executable file → Normal file
View File

0
ext/gtest/build-aux/depcomp Executable file → Normal file
View File

0
ext/gtest/build-aux/install-sh Executable file → Normal file
View File

0
ext/gtest/build-aux/missing Executable file → Normal file
View File

0
ext/gtest/configure vendored Executable file → Normal file
View File

0
ext/gtest/scripts/fuse_gtest_files.py Executable file → Normal file
View File

0
ext/gtest/scripts/gen_gtest_pred_impl.py Executable file → Normal file
View File

0
ext/gtest/scripts/gtest-config.in Executable file → Normal file
View File

0
ext/gtest/scripts/pump.py Executable file → Normal file
View File

0
ext/gtest/test/gtest_break_on_failure_unittest.py Executable file → Normal file
View File

0
ext/gtest/test/gtest_catch_exceptions_test.py Executable file → Normal file
View File

0
ext/gtest/test/gtest_color_test.py Executable file → Normal file
View File

0
ext/gtest/test/gtest_env_var_test.py Executable file → Normal file
View File

0
ext/gtest/test/gtest_filter_unittest.py Executable file → Normal file
View File

0
ext/gtest/test/gtest_help_test.py Executable file → Normal file
View File

0
ext/gtest/test/gtest_list_tests_unittest.py Executable file → Normal file
View File

0
ext/gtest/test/gtest_output_test.py Executable file → Normal file
View File

0
ext/gtest/test/gtest_shuffle_test.py Executable file → Normal file
View File

0
ext/gtest/test/gtest_test_utils.py Executable file → Normal file
View File

0
ext/gtest/test/gtest_throw_on_failure_test.py Executable file → Normal file
View File

0
ext/gtest/test/gtest_uninitialized_test.py Executable file → Normal file
View File

0
ext/gtest/test/gtest_xml_outfiles_test.py Executable file → Normal file
View File

0
ext/gtest/test/gtest_xml_output_unittest.py Executable file → Normal file
View File

0
ext/gtest/test/gtest_xml_test_utils.py Executable file → Normal file
View File

0
ext/gtest/xcode/Samples/FrameworkSample/runtests.sh Executable file → Normal file
View File

0
ext/gtest/xcode/Scripts/runtests.sh Executable file → Normal file
View File

0
ext/gtest/xcode/Scripts/versiongenerate.py Executable file → Normal file
View File

Some files were not shown because too many files have changed in this diff Show More