Compare commits

..

147 Commits

Author SHA1 Message Date
Jamie Newbon
2d9b2c29e6 Set stage to rc2 for v1.10.2 2019-05-08 17:59:06 +01:00
Jnewbon
79fb9e2c59 Added v1.10.2-rc2 to ChangeLog 2019-05-08 17:46:42 +01:00
Radek Smejkal
70ba53caf4 Fixed retry timer not being unregistered properly (#6077)
Closes #6495
2019-05-03 18:05:17 +01:00
Nick Bolton
667d79263d Create ChangeLog 2019-05-03 13:51:54 +01:00
Nick Bolton
8dcb63d3c0 Delete ChangeLog 2019-05-03 13:51:28 +01:00
Nick Bolton
baa913b1ac Create ChangeLog 2019-05-03 13:49:59 +01:00
Nick Bolton
27404ff2b9 Delete ChangeLog 2019-05-03 13:49:25 +01:00
Nick Bolton
55dd155e56 Merged master into v1-dev 2019-05-03 13:45:16 +01:00
Yuri
751fcffc87 #6373 Fixed compile error on BSD. Cherry picked from 94eb69eb 2019-05-02 18:22:21 +01:00
Jnewbon
7fb4805521 Merge pull request #6489 from symless/v1-pr-6359-qt511-headers
Fixes Qt Headers for 5.11+ with the correct naming scheme
2019-05-02 15:52:32 +01:00
Jnewbon
0ef70ac2b2 Merge pull request #6477 from symless/v1-issue-6471-retry-loop
Stopped gui locking into retry loop
2019-04-30 15:51:45 +01:00
Jamie Newbon
6c6e2b6bd3 #6471 Reverted accidental change and fixed more tabs 2019-04-30 15:49:23 +01:00
Jamie Newbon
207247b7ef #6471 Replaced tabs with spaces 2019-04-30 15:40:29 +01:00
Jamie Newbon
7f4ca77444 #6471 Fixed ability to stop the retry loop when synergy fails to start 2019-04-30 13:12:17 +01:00
Jnewbon
fe6cc4b849 Merge pull request #6490 from symless/v1-issue-6407-enterprise-autoconfig5
Fixes auto config UI elements in enterprise versions
2019-04-30 11:50:52 +01:00
Jamie Newbon
e29ee68ff9 Merge branch 'v1-dev' into v1-issue-6471-retry-loop 2019-04-30 11:42:46 +01:00
Jamie Newbon
6f17cb9a31 #6471 Added Pending retry state 2019-04-30 11:42:34 +01:00
Jamie Newbon
eb620097c0 #6395 Removed direct Qt header includes 2019-04-30 10:23:07 +01:00
Jnewbon
8b9722df25 Merge pull request #6359 from jpwhiting/build_against_qt_5.11
Add missing header includes to build against Qt 5.11.0
2019-04-30 10:14:23 +01:00
Jamie Newbon
de7c5ce6b7 Merge branch 'v1-dev' into v1-issue-6407-enterprise-autoconfig5 2019-04-30 09:26:31 +01:00
Jnewbon
a56abf68dd #6488 Fixed a memory leak in the TLS socket code 2019-04-29 13:56:08 +01:00
Jnewbon
9bccfb89cc #6486 Added CI solution for automated builds
* Added Ubuntu Dockers for 16, 18, and 19
* Added Cirrus CI build task for gcloud instance with SSDs
* Added macOS instance build with brew Qt install
* Fixed Qt headers for 5.12.2 used in Ubuntu 19.04
* Consolidated version info into CMake file
2019-04-26 17:17:06 +01:00
Jamie Newbon
6870af8eb7 #6471 Stopped gui locking into retry loop 2019-04-08 15:20:56 +01:00
Jnewbon
2713b95af7 Fixed Hostname dialog box opening unnecessarily (#6468)
#6392 Added check for autoconfig mode
2019-04-05 18:37:59 +01:00
Jnewbon
b3cb57243a Merge pull request #6411 from symless/v1-issue-6397-remember-host
Remember last used auto config host
2019-04-05 18:13:45 +01:00
Jnewbon
82d5733c09 Merge pull request #6469 from symless/v1-issue-6403-Mouse-drifts
Fixed mouse drift by switching from int to float
2019-04-04 11:29:07 +01:00
Steve Williams
2bbfe450ae #5648 Fixed mouse drift by switching from int to float 2019-04-03 16:42:29 +01:00
Jeremy Whiting
e3633d8a7b Add missing header includes to build against Qt 5.11.0
Some Qt gui headers are no longer included when including QtGui
adding these two missing headers makes Synergy build here on windows.
2018-10-03 17:32:30 -06:00
Nick Bolton
85c359693a #6407 Hide all auto config elements for enterprise build 2018-09-05 05:10:56 +08:00
Nick Bolton
2118c6647c #6397 Remember last used auto config host 2018-09-04 21:32:24 +01:00
Nick Bolton
0e7fef7ceb Version to v1.10.2 2018-08-23 15:20:22 +01:00
Nick Bolton
9373bdaf01 ChangeLog for v1.10.1 2018-08-23 15:17:36 +01:00
Nick Bolton
e0e8651490 Merge pull request #6389 from symless/v1-issue-6338-auto-config
#6384 Redesigned Auto Config UX so it's either manual or auto
2018-08-08 17:27:29 +01:00
Nick Bolton
4cf1ab8a25 #6338 Refactor auto restart logic, fixed debug level check, added some debug logging 2018-08-08 17:20:16 +01:00
Nick Bolton
934824433d #6338 Auto Config hint widget with link to open Settings dialog 2018-08-08 16:47:45 +01:00
Nick Bolton
aad0ac25d1 #6338 Only add server IPs when in client mode, and clear the IP list each time zeroconf restarts 2018-08-08 15:13:22 +01:00
Nick Bolton
87d8fc1e14 #6338 Use either manual or auto config in main window
Only enable/disable auto-config when saving settings, and only start the server/client when clicking Start/Stop/Apply.
2018-08-08 14:41:37 +01:00
Nick Bolton
3bae5f3cc6 Merge branch 'v1.10.1' into v1-issue-6338-auto-config 2018-08-07 10:19:04 +01:00
Nick Bolton
8d2ca0b36f #6383 Switch to Unix line endings 2018-08-07 10:18:22 +01:00
Nick Bolton
aae43304c3 #6338 Tidy up settings screen layout 2018-08-06 06:05:58 +01:00
Nick Bolton
53d5c89851 #6338 Hide auto config setting for Enterprise build 2018-08-06 06:05:34 +01:00
Nick Bolton
c0452f0e61 #6338 Only use Zeroconf if non-enterprise build 2018-08-03 23:41:50 +01:00
Nick Bolton
d2d2a5e1d9 #6338 Only call Bonjour download if on Windows 2018-08-03 23:00:15 +01:00
Nick Bolton
918571b6e2 #6338 Part-done: Move Auto Config checkbox to settings screen
Also refactored Windows Bonjour code to new class, and moved some of the Zeroconf stuff to a new class
2018-08-03 16:58:23 +01:00
Nick Bolton
21655a1c7a #6384 Attempt to remove license screen from Windows installer 2018-08-03 12:29:50 +01:00
Nick Bolton
acecfef949 #6383 Make core console window minimized in foreground mode 2018-08-02 22:05:47 +01:00
Nick Bolton
80efcfa495 Revert "#6383 Hide console window when in foreground mode"
Actually, closing the console window is a handy way to do a clean exit. This reverts commit 25c2e360d3.
2018-08-02 21:50:55 +01:00
Nick Bolton
566e2db202 #6383 Send core output to VS debug window when in foreground mode 2018-08-02 19:19:06 +01:00
Nick Bolton
25c2e360d3 #6383 Hide console window when in foreground mode 2018-08-02 18:59:17 +01:00
Nick Bolton
8ef2e7edbc #6383 Refactor set startup info to a function 2018-08-02 18:04:32 +01:00
Nick Bolton
aca2605cb8 #6383 Capture process output when in foreground mode 2018-08-02 17:40:20 +01:00
Nick Bolton
026b1f0de1 #6383 Use CreateProcess when in foreground mode 2018-08-02 16:25:10 +01:00
Nick Bolton
568a008037 #6382 Add helpful comment about DCMAKE_BUILD_TYPE and logging 2018-08-02 14:11:05 +01:00
Nick Bolton
3523d6e254 #6380 Reintroduce common.h include in basic_types.h (defines TYPE_OF_SIZE_* on *nix) 2018-08-01 15:29:09 +01:00
Nick Bolton
d9ec2f3ed3 Revert "#6380 Reintroduce type size defines for non-Windows"
This reverts commit b5c0f5c47e.
2018-08-01 15:24:50 +01:00
Nick Bolton
b5c0f5c47e #6380 Reintroduce type size defines for non-Windows 2018-08-01 14:51:01 +01:00
Nick Bolton
fc6cc78738 #6380 Fixed rogue include that I didn't end up using 2018-08-01 14:43:15 +01:00
Nick Bolton
65e9045981 #6376 Removed dead code (getLibsUsed function) 2018-08-01 13:04:18 +01:00
Nick Bolton
8dc868a206 #6380 Fixed warnings for VS2017 2018-08-01 13:03:41 +01:00
Nick Bolton
e555d5d651 Merge branch 'v1.x' into v1.10.1 2018-07-30 12:44:56 +01:00
Nick Bolton
7aa0553b57 Revert "Merge pull request #6358 from jpwhiting/build_with_newer_cmake"
This reverts commit 2b79608c44, reversing
changes made to 183403ceb7.
2018-07-30 12:27:51 +01:00
Nick Bolton
6d57630746 Revert "#6375 Add missing headers needed for Qt 5.11"
This reverts commit 85a8080339.
2018-07-30 12:27:35 +01:00
Nick Bolton
0ae87852e5 Merge branch 'v1.x' into v1.10.1 2018-07-29 18:05:03 +01:00
Nick Bolton
85a8080339 #6375 Add missing headers needed for Qt 5.11 2018-07-29 18:04:36 +01:00
Nick Bolton
2b79608c44 Merge pull request #6358 from jpwhiting/build_with_newer_cmake
#6375 Use target_link_libraries instead of qt5_use_modules
2018-07-29 15:59:14 +01:00
Nick Bolton
683039c9cc Merge branch 'v1.10.1' of github.com:symless/synergy-core into v1.10.1 2018-07-28 15:35:22 +01:00
Nick Bolton
fd0cb228ee #6374 Remove file logging for service; sharing a log file is probably not a brilliant idea 2018-07-28 15:34:44 +01:00
Nick Bolton
2cde78ff54 #6372 More logging around client disconnect to make TLS state more clear 2018-07-28 03:11:45 +01:00
Nick Bolton
5f3dce8379 #6372 Make TLS UX more user friendly 2018-07-28 02:54:11 +01:00
Nick Bolton
555090c7d2 #6372 Make service messages more user friendly 2018-07-28 02:53:45 +01:00
Nick Bolton
0e0c701b61 #6372 Only show padlock when TLSv1.2 is detected
This is really crude and probably a bit fragile, but patches welcome! I also made the fingerprint dialog a bit friendlier while I was poking around.
2018-07-28 01:52:56 +01:00
Nick Bolton
60c0df5984 #6372 Remove log levels that can break log reader behavior 2018-07-28 01:35:10 +01:00
Nick Bolton
89cc8a8daa #6372 More user friendly and current logging for SecureSocket 2018-07-28 01:19:23 +01:00
Nick Bolton
46a5166fba #6372 Force TLS 1.2 only in secure connection code 2018-07-27 09:20:20 +01:00
Nick Bolton
183403ceb7 #6339 Reenable restart manager to automatically shutdown any process 2018-07-26 16:07:59 +01:00
Jeremy Whiting
f9b83f9516 Use target_link_libraries instead of qt5_use_modules.
Since qt5_use_modules is deprecated in newer cmake versions
use target_link_libraries with Qt5:: targets instead.
see: http://doc.qt.io/qt-5/cmake-manual.html
2018-07-09 10:30:31 -06:00
Nick Bolton
a830861522 ChangeLog for 1.10.0 (also fixed 1.9.x) 2018-07-08 17:03:42 +01:00
Nick Bolton
420718101d Version to 1.10.1 (rc2 to snapshot) 2018-07-08 16:51:59 +01:00
Sarah Hebert
0f2306c9ac #6318 Hack to ignore TIS/TSM log line on macOS 2018-07-08 16:51:57 +01:00
Nick Bolton
1b0ab12c91 #6332 Make version number easier to update in Version.cmake 2018-07-08 16:51:56 +01:00
Sarah Hebert
9b4d14e085 #4991 Removed Zeroconf string suffix from Zeroconf service name 2018-07-08 16:51:55 +01:00
Sarah Hebert
21edf3e7f4 #6319 Disabled default Bonjour auto-config setting 2018-07-08 16:51:53 +01:00
Nick Bolton
e4b5a21616 Version to 1.10.0-rc2 2018-07-08 16:51:52 +01:00
Sarah Hebert
491bb2de00 #6312 Removed CURL dependency and all code that uses it 2018-07-08 16:51:50 +01:00
Steve Williams
57a9a0fe27 #6288 Drop curl requirement 2018-07-08 16:51:49 +01:00
Sarah Hebert
1c4eb74204 v1.10-rc1 2018-07-08 16:51:47 +01:00
Sarah Hebert
d95af84528 #6301 Fix use of ENV{} 2018-07-08 16:51:46 +01:00
Sarah Hebert
11be6ef3d4 #6301 Default to Enterprise build if env variable is set 2018-07-08 16:51:44 +01:00
Nick Bolton
8e56fbce1f #6305 Allow any arch in deb package manager 2018-07-08 16:51:43 +01:00
Nick Bolton
eebd9b1eb2 #6151 Change CMake project name to synergy-core 2018-07-08 16:51:42 +01:00
Sarah Hebert
71953b5af8 #6306 Updated GUI title 2018-07-08 16:51:40 +01:00
Andrew Nelless
458d8e4778 #6301 Disable zeroconf for Enterprise builds 2018-07-08 16:51:38 +01:00
Andrew Nelless
b396b1092d #6301 Disable activation for Enterprise builds 2018-07-08 16:51:34 +01:00
Andrew Nelless
4e59954d94 #6178 Remove CMakeLists.txt.user 2018-07-08 16:50:56 +01:00
Andrew Nelless
6e77d9c42a #6348 Fix Qt path in WiX 2018-07-08 16:50:40 +01:00
Xinyu Hou
6c5c55a564 #6301 Set page 1 as default on server config dialog 2018-07-08 16:50:37 +01:00
Andrew Nelless
c3a4fe7f2b #6344 Don't send clipboards over size limit 2018-07-08 16:50:34 +01:00
Andrew Nelless
14343fa7e1 #6344 Don't send clipboards over size limit to server 2018-07-08 16:50:31 +01:00
Andrew Nelless
953e829562 #6344 Clarify on client who disabled clipboard sharing 2018-07-08 16:50:23 +01:00
Andrew Nelless
7c29d8e704 #6344 Fix logic error displaying clipboard sharing status 2018-07-08 16:50:16 +01:00
Andrew Nelless
3cb7a5c101 #6345 Convert MainWindow::saveSettings to a slot 2018-07-08 16:50:09 +01:00
Andrew Nelless
88bf4b2e47 #6344 Restore default clipboard sharing size
When clipboard sharing is re-enabled, and the current size limit is 0,
make sure that the default size limit is restored
2018-07-08 16:50:05 +01:00
Andrew Nelless
8054bc51a5 #6344 Ensure setting clipboard size limit to 0 disables clipboard sharing 2018-07-08 16:50:01 +01:00
Andrew Nelless
3c133380f8 #6344 Auto Enable/disable clipboard size spinner 2018-07-08 16:49:54 +01:00
Andrew Nelless
36c81480d7 #6344 Fix clipboard size limit initialization order
Setting the clipboard sharing size to a value > 0 enables clipboard
sharing. Make sure we do this before applying the users actual
preference.
2018-07-08 16:49:50 +01:00
Andrew Nelless
dfcac4e90b #6344 Persist clipboard sharing size settings 2018-07-08 16:49:46 +01:00
Andrew Nelless
358641e58e #6344 Enable the clipboard size combobox 2018-07-08 16:49:42 +01:00
Andrew Nelless
828ad24820 #6344 Fix use of std::max 2018-07-08 16:49:38 +01:00
Andrew Nelless
8af215364f #6344 Make client recognise clipboard size limit 2018-07-08 16:49:33 +01:00
Andrew Nelless
01109e0499 #6344 Make server recognise clipboard size limit 2018-07-08 16:49:27 +01:00
Andrew Nelless
7e7760668a #6344 Add clipboard sharing size limit config option 2018-07-08 16:49:16 +01:00
Xinyu Hou
682fe1cfa3 #6301 Add clipboard size limit option to GUI 2018-07-08 16:49:12 +01:00
Xinyu Hou
1c90f858ea #6301 Give Ids to each registry keys 2018-07-08 16:49:10 +01:00
Xinyu Hou
284fd80c5f #6301 Apply compatibility mode to synergy and synerys 2018-07-08 16:49:06 +01:00
XinyuHou
1852f7477c #6346 Don't add scrlk as a hotkey to lock screen if it's disabled 2018-07-08 16:48:54 +01:00
XinyuHou
6ccd4d71b8 #6346 Fix disable lock to screen was always set to true 2018-07-08 16:48:25 +01:00
XinyuHou
84dfeec2ed #6346 Make server bypass lock to screen if it's disable from config option
# Conflicts:
#	src/lib/server/Server.cpp
#	src/lib/server/Server.h
2018-07-08 16:48:16 +01:00
XinyuHou
535627c871 #6346 Add disable lock to screen in server config and output it to config file 2018-07-08 16:48:07 +01:00
XinyuHou
46a5b7f9ae #6345 Let Mainwindow save settings before program quits
# Conflicts:
#	src/gui/src/main.cpp
2018-07-08 16:47:56 +01:00
XinyuHou
7da1d4f9cc #6347 made log to home directory by default 2018-07-08 16:47:32 +01:00
Andrew Nelless
c9082e0cf2 Merge v1.9.1 changes into v1.10 2018-05-16 11:25:05 +01:00
Andrew Nelless
ea8d24c908 Update Qt version to 5.9.5 2018-05-14 14:13:50 +01:00
Steve Williams
a155ca951c Bump up to 1.10 for this branch 2018-05-14 12:08:47 +01:00
Steve Williams
5015f9da11 Revert "#6288 remove window ArchInternet include"
This reverts commit f07b765a24.
2018-05-14 10:11:28 +01:00
Steve Williams
f07b765a24 #6288 remove window ArchInternet include 2018-05-14 09:58:11 +01:00
Steve Williams
87e1912842 #6288 drop items that still had CURL reliance
# Conflicts:
#	src/lib/arch/unix/ArchInternetUnix.cpp
#	src/lib/synergy/ToolApp.cpp
2018-05-14 09:58:11 +01:00
Steve Williams
e170bd87a8 #6288 Drop curl requirement 2018-05-14 09:57:26 +01:00
Andrew Nelless
f0852871b1 Bump Qt version 2018-04-20 10:19:18 +01:00
Andrew Nelless
2a0225c105 Merge branch 'v0.9' of https://github.com/symless/synergy-core into v1.9 2018-04-10 11:18:42 +01:00
Andrew Nelless
ccea7624e5 v1.9.1 2018-04-10 11:18:28 +01:00
Andrew Nelless
5da6d3fb47 Update OpenSSL to v1.0.2o 2018-04-10 11:18:00 +01:00
Andrew Nelless
fb3de294ec Merge branch 'v0.9-macsleep' into v1.9 2018-04-10 11:12:51 +01:00
Steve Williams
b46714957f Merge pull request #6278 from symless/v1.9-macsleep
@mrsixw
#5964 Can't click on client after sleep
2018-03-29 10:23:13 +01:00
Steve Williams
67c7d0993f #5964 Fix multiplatform sleep 2018-03-29 10:08:48 +01:00
Steve Williams
eb4047b9fb #5964 Can't click on client after sleep 2018-03-29 09:54:53 +01:00
Andrew Nelless
35fb8c3389 Make macOS screen shape detection code more robust 2018-03-23 14:05:49 +00:00
Jerry (Xinyu Hou)
5697da164b #6178 Check if we should use secure socket for listening 2018-03-21 11:26:06 +00:00
Jerry (Xinyu Hou)
0ef8838e88 #6178 Specifically specify IPv4 for IPC socket 2018-03-21 10:55:02 +00:00
Jerry (Xinyu Hou)
fa82f5cdf3 #6178 Fix compiling error for adding IPv6 for secure socket 2018-03-20 16:05:30 +00:00
Jerry (Xinyu Hou)
e01acb30b6 #6178 Fix include syntax 2018-03-20 15:22:52 +00:00
Jerry (Xinyu Hou)
8446fe5395 #6178 Merge IPv6 PR 2018-03-20 13:53:38 +00:00
Jerry (Xinyu Hou)
1e8e48d65b Use corresponding Bonjour libs for different versions of OS 2018-03-20 11:41:38 +00:00
Steve Williams
82edfe087c Ignore idea files 2018-03-20 10:13:39 +00:00
Andrew Nelless
5bd12f2376 v1.9.0-stable 2018-03-19 12:21:20 +00:00
Andrew Nelless
1d3e86dd55 Update OpenSSL to v1.0.2n 2018-03-19 11:27:34 +00:00
Andrew Nelless
4a3a5d5b0f #6251 Attempt to fix Windows event loop hang 2018-03-18 20:50:26 +00:00
Andrew Nelless
a2929a7920 Bump Qt version 2018-02-28 01:14:41 +00:00
923 changed files with 12930 additions and 11960 deletions

62
.cirrus.yml Normal file
View File

@@ -0,0 +1,62 @@
gcp_credentials: ENCRYPTED[d3110e2399b82e1d2adb6f9294917064a448a4d102c42c5023815723841db4ff7aa1d0df64a44281ed25b3adbeb08eff]
windows_task:
gce_instance:
image_project: buildcluster-237411
image_name: windows2019-vs2017-ramdisk
platform: windows
zone: us-central1-a
type: n1-highcpu-16
disk: 32
use_ssd: true
env:
BONJOUR_SDK_HOME: C:\Program Files\Bonjour SDK\
CMAKE_PREFIX_PATH: C:\Qt\5.9.5\msvc2017_64
CIRRUS_WORKING_DIR: D:\
build_script:
- .\CI\Windows\build.bat
ubuntu1604_task:
use_compute_credits: true
container:
dockerfile: CI/ubuntu1604.Dockerfile
build_script:
- pwd; ls -la
- chmod +x ./CI/build.sh
- ./CI/build.sh
ubuntu1804_task:
use_compute_credits: true
container:
dockerfile: CI/ubuntu1804.Dockerfile
build_script:
- pwd; ls -la
- chmod +x ./CI/build.sh
- ./CI/build.sh
ubuntu1904_task:
use_compute_credits: true
container:
dockerfile: CI/ubuntu1904.Dockerfile
build_script:
- pwd; ls -la
- chmod +x ./CI/build.sh
- ./CI/build.sh
macos_task:
use_compute_credits: true
osx_instance:
image: mojave-xcode-10.2
env:
PATH: /usr/local/opt/qt/bin:$PATH
install_script:
- brew install qt
build_script:
- mkdir build
- cd build
- cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.10 -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -DCMAKE_CONFIGURATION_TYPES=$CMAKE_BUILD_TYPE ..
- make

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/wiki/Sending-logs
Put anything else you can think of here.

18
.gitignore vendored
View File

@@ -1,4 +1,3 @@
build_env.*
config.h
.DS_Store
*.pyc
@@ -19,16 +18,7 @@ config.h
src/gui/gui.pro.user*
src/gui/.qmake.stash
src/gui/.rnd
src/setup/win32/barrier.suo
Makefile
*.cmake
**/CMakeFiles/
CMakeCache.txt
/rpm
# Visual Studio 2015/2017 cache/options directory
.vs/
# VS Code Directory
.vscode/
# Transient in-project-directory dependencies
/deps/
/out/build/x64-Debug
src/setup/win32/synergy.suo
/.idea
/cmake-build-debug
/CMakeLists.txt.user

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 = 1
SYNERGY_VERSION_MINOR = 10
SYNERGY_VERSION_PATCH = 2
SYNERGY_VERSION_STAGE = snapshot

56
CI/MacOS/qtifwsilent.qs Normal file
View File

@@ -0,0 +1,56 @@
function Controller() {
installer.autoRejectMessageBoxes();
installer.installationFinished.connect(function() {
gui.clickButton(buttons.NextButton);
})
}
Controller.prototype.WelcomePageCallback = function() {
gui.clickButton(buttons.NextButton, 3000);
}
Controller.prototype.CredentialsPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.IntroductionPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.TargetDirectoryPageCallback = function()
{
gui.currentPageWidget().TargetDirectoryLineEdit.setText(installer.value("HomeDir") + "/Qt");
gui.clickButton(buttons.NextButton);
}
Controller.prototype.ComponentSelectionPageCallback = function() {
var widget = gui.currentPageWidget();
widget.deselectAll();
widget.selectComponent("qt.595.clang_64")
gui.clickButton(buttons.NextButton);
}
Controller.prototype.LicenseAgreementPageCallback = function() {
gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true);
gui.clickButton(buttons.NextButton);
}
Controller.prototype.StartMenuDirectoryPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.ReadyForInstallationPageCallback = function()
{
gui.clickButton(buttons.NextButton);
}
Controller.prototype.FinishedPageCallback = function() {
var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm
if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox) {
checkBoxForm.launchQtCreatorCheckBox.checked = false;
}
gui.clickButton(buttons.FinishButton);
}

6
CI/Windows/build.bat Normal file
View File

@@ -0,0 +1,6 @@
SET VS_INSTALL_PATH=C:\"Program Files (x86)"\"Microsoft Visual Studio"\2019\Community\
call %VS_INSTALL_PATH%Common7\Tools\VsDevCmd.bat
mkdir build
cd build
cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_BUILD_TYPE=Debug ..
msbuild synergy-core.sln /p:Platform="x64" /p:Configuration=Debug /m

54
CI/Windows/qtifwsilent.qs Normal file
View File

@@ -0,0 +1,54 @@
function Controller() {
installer.autoRejectMessageBoxes();
installer.installationFinished.connect(function() {
gui.clickButton(buttons.NextButton);
})
}
Controller.prototype.WelcomePageCallback = function() {
gui.clickButton(buttons.NextButton, 3000);
}
Controller.prototype.CredentialsPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.IntroductionPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.TargetDirectoryPageCallback = function() {
gui.currentPageWidget().TargetDirectoryLineEdit.setText(installer.environmentVariable("QT_INSTALL_DIR"));
gui.clickButton(buttons.NextButton);
}
Controller.prototype.ComponentSelectionPageCallback = function() {
var widget = gui.currentPageWidget();
widget.deselectAll();
widget.selectComponent("qt.595.win32_msvc2015");
widget.selectComponent("qt.595.win64_msvc2015_64");
widget.selectComponent("qt.595.qtscript");
widget.selectComponent("qt.tools.vcredist_msvc2015_x86");
widget.selectComponent("qt.tools.vcredist_msvc2015_x64");
gui.clickButton(buttons.NextButton);
}
Controller.prototype.LicenseAgreementPageCallback = function() {
gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true);
gui.clickButton(buttons.NextButton);
}
Controller.prototype.StartMenuDirectoryPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.ReadyForInstallationPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.FinishedPageCallback = function() {
var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm;
if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox)
checkBoxForm.launchQtCreatorCheckBox.checked = false;
gui.clickButton(buttons.FinishButton);
}

6
CI/build.sh Normal file
View File

@@ -0,0 +1,6 @@
pwd
ls -la
mkdir build
cd build
cmake ..
make

12
CI/package.sh Normal file
View File

@@ -0,0 +1,12 @@
cd ${CIRRUS_WORKING_DIR}
source ./build/version
SYNERGY_VERSION="$SYNERGY_VERSION_MAJOR.$SYNERGY_VERSION_MINOR.$SYNERGY_VERSION_PATCH"
SYNERGY_REVISION=`git rev-parse --short=8 HEAD`
SYNERGY_DEB_VERSION="${SYNERGY_VERSION}.${SYNERGY_VERSION_STAGE}~b${BUILD_NUMBER}+${SYNERGY_REVISION}"
dch --create --package "synergy" --controlmaint --distribution unstable --newversion $SYNERGY_DEB_VERSION "Initial release"
export DEB_BUILD_OPTIONS="parallel=4"
debuild --preserve-envvar SYNERGY_* --preserve-envvar GIT_COMMIT --preserve-envvar BUILD_NUMBER

24
CI/ubuntu1604.Dockerfile Normal file
View File

@@ -0,0 +1,24 @@
#
# Ubuntu Dockerfile
#
# https://github.com/dockerfile/ubuntu
#
# Pull base image.
FROM ubuntu:16.04
# Install.
RUN \
sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && \
apt-get update && \
apt-get install -y git cmake qtbase5-dev build-essential libx11-dev libxtst-dev libgl1-mesa-dev libssl-dev libavahi-compat-libdnssd-dev && \
apt-get install -y debhelper devscripts
# Set environment variables.
ENV HOME /root
# Define working directory.
WORKDIR /root
# Define default command.
CMD ["bash"]

24
CI/ubuntu1804.Dockerfile Normal file
View File

@@ -0,0 +1,24 @@
#
# Ubuntu Dockerfile
#
# https://github.com/dockerfile/ubuntu
#
# Pull base image.
FROM ubuntu:18.04
# Install.
RUN \
sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && \
apt-get update && \
apt-get install -y git cmake qtbase5-dev build-essential libx11-dev libxtst-dev libgl1-mesa-dev libssl-dev libavahi-compat-libdnssd-dev && \
apt-get install -y debhelper devscripts
# Set environment variables.
ENV HOME /root
# Define working directory.
WORKDIR /root
# Define default command.
CMD ["bash"]

24
CI/ubuntu1904.Dockerfile Normal file
View File

@@ -0,0 +1,24 @@
#
# Ubuntu Dockerfile
#
# https://github.com/dockerfile/ubuntu
#
# Pull base image.
FROM ubuntu:19.04
# Install.
RUN \
sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && \
apt-get update && \
apt-get install -y git cmake qtbase5-dev build-essential libx11-dev libxtst-dev libgl1-mesa-dev libssl-dev libavahi-compat-libdnssd-dev && \
apt-get install -y debhelper devscripts
# Set environment variables.
ENV HOME /root
# Define working directory.
WORKDIR /root
# Define default command.
CMD ["bash"]

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,18 @@
# 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_BUILD_LEGACY_GUI "Build the legacy GUI" ON)
option (SYNERGY_BUILD_LEGACY_SERVICE "Build the legacy service (synergyd)" ON)
option (SYNERGY_BUILD_LEGACY_INSTALLER "Build the legacy installer" ON)
if (DEFINED ENV{SYNERGY_ENTERPRISE})
option (SYNERGY_ENTERPRISE "Build Enterprise" ON)
else()
option (SYNERGY_ENTERPRISE "Build Enterprise" OFF)
endif()
set (CMAKE_EXPORT_COMPILE_COMMANDS ON)
set (CMAKE_CXX_STANDARD 14)
set (CMAKE_CXX_EXTENSIONS OFF)
set (CMAKE_CXX_STANDARD_REQUIRED ON)
@@ -32,8 +37,10 @@ if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
add_definitions (-DNDEBUG)
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 +50,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 +71,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)
@@ -130,15 +136,6 @@ if (UNIX)
message (FATAL_ERROR "Missing library: pthread")
endif()
# curl is used on both Linux and Mac
find_package (CURL)
if (CURL_FOUND)
include_directories(${CURL_INCLUDE_DIRS})
list (APPEND libs ${CURL_LIBRARIES})
else()
message (FATAL_ERROR "Missing library: curl")
endif()
if (APPLE)
set (CMAKE_CXX_FLAGS "--sysroot ${CMAKE_OSX_SYSROOT} ${CMAKE_CXX_FLAGS} -DGTEST_USE_OWN_TR1_TUPLE=1")
@@ -158,20 +155,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 +172,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 +182,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 +200,7 @@ if (UNIX)
if (HAVE_Xtst)
# Xtxt depends on X11.
set (HAVE_X11 1)
set (HAVE_X11)
list (APPEND libs Xtst X11)
else()
@@ -290,7 +271,7 @@ 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()
@@ -312,49 +293,19 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
${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()
set (OPENSSL_ROOT /usr/local/opt/openssl)
include_directories (BEFORE SYSTEM ${OPENSSL_ROOT}/include)
set (OPENSSL_LIBS
${OPENSSL_ROOT}/lib/libssl.a
${OPENSSL_ROOT}/lib/libcrypto.a
)
elseif (${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})
message (FATAL_ERROR "Couldn't find OpenSSL")
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,36 +336,45 @@ macro (configure_files srcDir destDir)
endforeach (templateFile)
endmacro (configure_files)
if (${BARRIER_BUILD_INSTALLER})
macro(generate_versionfile)
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" OR ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
FILE(WRITE ${CMAKE_BINARY_DIR}/version
"export SYNERGY_VERSION_MAJOR=\"${SYNERGY_VERSION_MAJOR}\"\n"
"export SYNERGY_VERSION_MINOR=\"${SYNERGY_VERSION_MINOR}\"\n"
"export SYNERGY_VERSION_PATCH=\"${SYNERGY_VERSION_PATCH}\"\n"
"export SYNERGY_VERSION_STAGE=\"${SYNERGY_VERSION_STAGE}\"\n")
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
FILE(WRITE ${CMAKE_BINARY_DIR}/version
"$env:SYNERGY_VERSION_MAJOR=\"${SYNERGY_VERSION_MAJOR}\"\n"
"$env:SYNERGY_VERSION_MINOR=\"${SYNERGY_VERSION_MINOR}\"\n"
"$env:SYNERGY_VERSION_PATCH=\"${SYNERGY_VERSION_PATCH}\"\n"
"$env:SYNERGY_VERSION_STAGE=\"${SYNERGY_VERSION_STAGE}\"\n")
endif()
endmacro(generate_versionfile)
if (${SYNERGY_BUILD_LEGACY_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()
set (SYNERGY_BUNDLE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dist/macos/bundle)
set (SYNERGY_BUNDLE_DIR ${CMAKE_BINARY_DIR}/bundle)
set (SYNERGY_BUNDLE_APP_DIR ${SYNERGY_BUNDLE_DIR}/Synergy.app)
set (SYNERGY_BUNDLE_BINARY_DIR ${SYNERGY_BUNDLE_APP_DIR}/Contents/MacOS)
generate_versionfile()
configure_files (${SYNERGY_BUNDLE_SOURCE_DIR} ${SYNERGY_BUNDLE_DIR})
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)
message (STATUS "Configuring the v1 installer")
configure_files (${CMAKE_CURRENT_SOURCE_DIR}/dist/wix ${CMAKE_BINARY_DIR}/installer)
generate_versionfile()
endif()
#
@@ -422,15 +382,16 @@ endif()
#
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)
install(FILES res/synergy.svg DESTINATION share/icons/hicolor/scalable/apps)
if("${VERSION_MAJOR}" STREQUAL "2")
install(FILES res/barrier2.desktop DESTINATION share/applications)
install(FILES res/synergy2.desktop DESTINATION share/applications)
else()
install(FILES res/barrier.desktop DESTINATION share/applications)
install(FILES res/synergy.desktop DESTINATION share/applications)
endif()
generate_versionfile()
endif()
else()
message (STATUS "NOT configuring the installer")
message (STATUS "NOT configuring the v1 installer")
endif()
add_subdirectory (src)

View File

@@ -1,21 +1,91 @@
v1.9.0-rc3
============
Bug #4132 - Laggy mouse cursor on macOS clients
v1.10.2-rc2
==============
v1.9.0-rc2
===========
Bug #5901 - Stored serial key corrupted on macOS
Bug #5757 - Failure to build against OpenSSL v1.1.0
Bug fixes:
- #6495 Event queue memory leak in server cleanup
- #6471 Unable to stop core retry loop in config app
- #6460 TLS memory leak on Linux server when using client
- #6407 Enterprise config app shows auto-config elements
- #6403 Mouse cursor movement drifts over time
- #6392 Hostname alert shows unnecessarily on every open
- #6373 Compile fails on BSD Unix with dl error
v1.9.0-rc1
==========
Bug #5467 - Failing to automatically download and install Bonjour
Enhancement #5389 - Ported GUI to Qt 5
Enhancement #4978 - Windows: Added support for Visual Studio 2015
Enhancement #5398 - Windows: Updated OpenSSL dependency to 1.0.2k
Enhancements:
- #6485 Readme for master branch with download help
- #6475 Change master branch to current version
- #6470 CI solution with on-demand containers
- #6397 Remember last server used in Auto Config
- #6375 Support for Qt 5.11 framework on Windows
v1.10.1-stable
==============
Bug fixes:
- #6339 Windows validating install step freezes
- #6374 Windows background service crashes randomly
- #6376 Undeclared identifier compile error in VS2017
Enhancements:
- #6372 Forced use of TLS 1.2 without fallback method
- #6338 Auto config checkbox on settings screen
- #6384 Removal of GPL screen on Windows installer
- #6383 Extend foreground mode for Windows daemon
- #6382 Code comment for MSVC debugger logging
- #6380 Compile without warnings using VS2017
v1.10.0-stable
==============
Bug fixes:
- #6347 Log to file defaults to unwritable location
- #6345 Losing GUI config when restarting the OS
- #4991 Oversized Bonjour protocol name could conflict
Enhancements:
- #6348 Use different hard coded Qt path for CI
- #6346 CLI argument to control screen lock feature
- #6344 Customizable size limit on clipboard sharing
- #6332 Decouple version from CI build properties
- #6319 Bonjour auto-config disabled by default
- #6318 Hide TIS/TSM error on config app log
- #6312 Removal of redundant CURL library
- #6306 Show version number in config app title
- #6305 Support for Raspbian in package config
- #6301 Combine enterprise and community codebases
v1.9.1-stable
=============
Bug fix:
- #5964 Can't click after sleep on Mac client
Enhancements:
- #6310 More robust macOS screen shape detection
- #6309 Update OpenSSL to v1.0.2o for better security
v1.9.0-stable
=============
Bug fixes:
- #6251 Service hangs after GUI is opened
- #5844 Icon causes Linux package manager to fail
- #4132 Laggy mouse cursor on macOS clients
Enhancements:
- #6116 Quieter quartz event log entry on Mac
- #6037 Solve defects reported by PVS Studio
- #6014 Code sign binaries on Windows
- #6012 Jenkins integration for Ubuntu
- #5836 Jenkins integration for macOS
- #5834 Jenkins integration for Fedora
- #5390 Allow tests to be skipped during build
- #5389 Qt 5 library support for config app
- #5019 Raspbian armhf support for Raspberry Pi
- #4978 Visual Studio 2015 support on Windows 10
- #4154 IPv6 support for Windows and Linux
v1.8.8-stable
==========
=============
Bug #5196 - Some keys on Korean and Japanese keyboards have the same keycode
Bug #5578 - Pressing Hangul key results in alt+'a'
Bug #5785 - Can't switch screens when cursor is in a corner
@@ -423,4 +493,3 @@ Feature #3119: Mac OS X secondary screen
Task #2905: Unit tests: Clipboard classes
Task #3072: Downgrade Linux build machines
Task #3090: CXWindowsKeyState integ test args wrong

View File

@@ -1,4 +1,3 @@
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

View File

@@ -1,62 +0,0 @@
# Barrier
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

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,86 @@
cmake_minimum_required (VERSION 3.4)
set (BARRIER_VERSION_MAJOR 2)
set (BARRIER_VERSION_MINOR 3)
set (BARRIER_VERSION_PATCH 2)
#
# Synergy Version
#
set (SYNERGY_VERSION_MAJOR 1)
set (SYNERGY_VERSION_MINOR 10)
set (SYNERGY_VERSION_PATCH 2)
set (SYNERGY_VERSION_STAGE "rc2")
#
# Barrier Version
# Version from CI
#
if (NOT DEFINED BARRIER_VERSION_MAJOR)
if (DEFINED ENV{BARRIER_VERSION_MAJOR})
set (BARRIER_VERSION_MAJOR $ENV{BARRIER_VERSION_MAJOR})
else()
set (BARRIER_VERSION_MAJOR 1)
endif()
if (DEFINED ENV{SYNERGY_VERSION_MAJOR})
set (SYNERGY_VERSION_MAJOR $ENV{SYNERGY_VERSION_MAJOR})
endif()
if (NOT DEFINED BARRIER_VERSION_MINOR)
if (DEFINED ENV{BARRIER_VERSION_MINOR})
set (BARRIER_VERSION_MINOR $ENV{BARRIER_VERSION_MINOR})
else()
set (BARRIER_VERSION_MINOR 9)
endif()
if (DEFINED ENV{SYNERGY_VERSION_MINOR})
set (SYNERGY_VERSION_MINOR $ENV{SYNERGY_VERSION_MINOR})
endif()
if (NOT DEFINED BARRIER_VERSION_PATCH)
if (DEFINED ENV{BARRIER_VERSION_PATCH})
set (BARRIER_VERSION_PATCH $ENV{BARRIER_VERSION_PATCH})
else()
set (BARRIER_VERSION_PATCH 0)
message (WARNING "Barrier version wasn't set. Set to ${BARRIER_VERSION_MAJOR}.${BARRIER_VERSION_MINOR}.${BARRIER_VERSION_PATCH}")
endif()
if (DEFINED ENV{SYNERGY_VERSION_PATCH})
set (SYNERGY_VERSION_PATCH $ENV{SYNERGY_VERSION_PATCH})
endif()
if (NOT DEFINED BARRIER_VERSION_STAGE)
if (DEFINED ENV{BARRIER_VERSION_STAGE})
set (BARRIER_VERSION_STAGE $ENV{BARRIER_VERSION_STAGE})
else()
set (BARRIER_VERSION_STAGE "snapshot")
endif()
if (DEFINED ENV{SYNERGY_VERSION_STAGE})
set (SYNERGY_VERSION_STAGE $ENV{SYNERGY_VERSION_STAGE})
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()
if (SYNERGY_ENTERPRISE)
add_definitions (-DSYNERGY_ENTERPRISE=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

14
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
Architecture: amd64
Package: synergy
Architecture: any
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.5" ?> <!-- TODO: Configure this externally //-->
<?define Author="Symless Ltd" ?>
<?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,19 @@
<?define ProgramFilesFolder="ProgramFiles64Folder" ?>
<?define PlatformSimpleName="64-bit" ?>
<?define UpgradeGuid="E8A4FA54-14B9-4FD1-8E00-7BC46555FDA0" ?>
<?define QtPath="@CMAKE_PREFIX_PATH@" ?>
<?define QtPath="C:\Qt\Qt$(var.QtVersion)\$(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\Qt$(var.QtVersion)\$(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>

77
dist/wix/Product.wxs vendored
View File

@@ -12,27 +12,60 @@
</Upgrade>
<Feature Id="ProductFeature" Title="$(var.Name)">
<ComponentGroupRef Id="ProductComponents"/>
<ComponentGroupRef Id="OpenSSLComponents"/>
<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"/>
<RegistryKey Id="synergys" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes" Key="Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" Root="HKLM">
<RegistryValue Name="[INSTALLFOLDER]synergys.exe" Type="string" Value="~ HIGHDPIAWARE WIN7RTM"/>
</RegistryKey>
<RegistryKey Id="synergyc" Root="HKLM"
Key="Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"
Action="createAndRemoveOnUninstall">
<RegistryValue Type="string" Name="[INSTALLFOLDER]synergyc.exe" Value="~ HIGHDPIAWARE WIN7RTM"/>
</RegistryKey>
<RegistryKey Id="synergy" Root="HKLM"
Key="Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"
Action="createAndRemoveOnUninstall">
<RegistryValue Type="string" Name="[INSTALLFOLDER]synergy.exe" Value="~ HIGHDPIAWARE WIN7RTM"/>
</RegistryKey>
<!-- Windows 8 and later only -->
<Condition><![CDATA[Installed OR (VersionNT >= 602)]]></Condition>
</Component>
</DirectoryRef>
<Icon Id="barrier.ico" SourceFile="$(var.ResPath)/barrier.ico"/>
<WixVariable Id="WixUILicenseRtf" Value="$(var.ResPath)\License.rtf"/>
<Icon Id="synergy.ico" SourceFile="$(var.ResPath)/synergy.ico"/>
<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>
<UIRef Id="WixUI_InstallDir" />
<Publish Dialog="WelcomeDlg"
Control="Next"
Event="NewDialog"
Value="InstallDirDlg"
Order="2">1</Publish>
<Publish Dialog="InstallDirDlg"
Control="Back"
Event="NewDialog"
Value="WelcomeDlg"
Order="2">1</Publish>
<Publish Control="Finish" Dialog="ExitDialog" Event="DoAction" Value="StartGui">NOT Installed</Publish>
</UI>
</Product>
@@ -40,6 +73,10 @@
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="$(var.ProgramFilesFolder)">
<Directory Id="INSTALLFOLDER" Name="$(var.Name)">
<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="OpenSSLDir" Name="OpenSSL"/>
<Directory Id="PlatformsDir" Name="Platforms"/>
</Directory>
@@ -50,23 +87,23 @@
<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.BinPath)/synergyc.exe"/>
<File Source="$(var.BinPath)/syntool.exe"/>
<File Source="$(var.BinPath)/synwinhk.dll"/>
<File Source="$(var.OpenSSLBinPath)/libeay32.dll"/>
<File Source="$(var.OpenSSLBinPath)/ssleay32.dll"/>
<File Source="$(var.OpenSSLBinPath)/openssl.exe"/>
<File Source="$(var.ResPath)/openssl/barrier.conf"/>
</Component>
<Component Guid="BAC8149B-6287-45BF-9C27-43D71ED40214" Id="Gui">
<File Id="GuiProgram" KeyPath="yes" Source="$(var.BinPath)/barrier.exe">
<Shortcut Advertise="yes" Directory="ProgramMenuFolder" Icon="barrier.ico" Id="GuiShortcut" Name="$(var.Name)"/>
<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" ?>
@@ -99,5 +136,13 @@
<?endif ?>
</Component>
</ComponentGroup>
<ComponentGroup Directory="OpenSSLDir" Id="OpenSSLComponents">
<Component Guid="92648F77-65A6-4B16-AC59-A1F37BD341B1" Id="OpenSSL">
<File Id="OpenSSLDll1" Source="$(var.OpenSSLBinPath)/libeay32.dll"/>
<File Id="OpenSSLDll2" Source="$(var.OpenSSLBinPath)/ssleay32.dll"/>
<File Source="$(var.OpenSSLBinPath)/openssl.exe"/>
<File Source="$(var.ResPath)/openssl/synergy.conf"/>
</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,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/>

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.

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

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