mirror of
https://github.com/debauchee/barrier.git
synced 2026-02-12 14:45:21 +08:00
Compare commits
97 Commits
v1.10.2-rc
...
v2.0.0-RC2
| Author | SHA1 | Date | |
|---|---|---|---|
| 3edbc00397 | |||
| e396f8d55e | |||
| 5362dbc297 | |||
| 5b31036cdc | |||
| 625253a7e8 | |||
| c605cbdbcc | |||
| 116a133902 | |||
| e6a3a124ee | |||
| 786d513379 | |||
| 4da5c29e5f | |||
| db1e05ff08 | |||
| 315f4c05ca | |||
| c351d450ae | |||
| b55fe3237a | |||
| 2a4382bac9 | |||
| c1827bde51 | |||
|
|
65b9d795cf | ||
| 1648c1d51a | |||
| 916b085474 | |||
| b994c94a90 | |||
| 60d121aed3 | |||
| 15c83eca48 | |||
| 0f42f82439 | |||
| b36a91a363 | |||
| dc15dc6081 | |||
| cfe8719982 | |||
| 87ff075c15 | |||
| ec1d68912d | |||
| cfc13f1f04 | |||
| 45805bbdcb | |||
| 06d5080b42 | |||
| 0e5ed7a305 | |||
| be0fab1775 | |||
| a3ec43999f | |||
| d169555b28 | |||
| b1be8227d2 | |||
| 30304255ea | |||
| a71779647d | |||
| 4571f4cc6e | |||
| 07dad10251 | |||
| 28cb82bcb0 | |||
| cebe7873a4 | |||
| 3b20310deb | |||
| f5b5258f4a | |||
| a8d0dfdacc | |||
| 71a20eedec | |||
| 8073db2247 | |||
| 6cf4f14dec | |||
| f07070f7f9 | |||
| 5bd7e6bfe8 | |||
| f30fe8775c | |||
| 3023f9b469 | |||
| 2ffd92accc | |||
|
|
649b43c3cc | ||
| d5544dc6d1 | |||
| 541fb2afc5 | |||
| e93b203b87 | |||
| 6cb65ebf05 | |||
| df129f139b | |||
| faec8a2f84 | |||
| b64512d65f | |||
| 1effd7bc0b | |||
| 531ced363c | |||
| edfc7e9bbc | |||
| dea4359cce | |||
| b3298ad799 | |||
| eb025871c4 | |||
| 830f6acbef | |||
| d9530bf7aa | |||
| d8237238b4 | |||
| b77eec1f17 | |||
| 9240cc12df | |||
| ccb02372bf | |||
| cda6933f10 | |||
| c68d355ce5 | |||
| 8bdd530d7d | |||
| 5af4b13611 | |||
| 0f2063b67f | |||
| ecf4ebf50e | |||
| 31a64731c1 | |||
| dbfb04a6ec | |||
| ce8c65f8f9 | |||
| 8fb904285b | |||
| 33b81742b5 | |||
| da37ccdf87 | |||
| 5a0465eb36 | |||
| 0bb94da72d | |||
| 0929086428 | |||
| 99b16334b5 | |||
| 2169eb679b | |||
| f12bfdfedc | |||
|
|
5a1c217b54 | ||
|
|
49b607a729 | ||
|
|
ff0525254d | ||
|
|
3b19884fd4 | ||
|
|
bbfcc5cbb3 | ||
|
|
3d245c7255 |
62
.cirrus.yml
62
.cirrus.yml
@@ -1,62 +0,0 @@
|
||||
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
|
||||
12
.github/ISSUE_TEMPLATE.md
vendored
12
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,15 +1,16 @@
|
||||
### 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 ;)
|
||||
|
||||
### Synergy Version ###
|
||||
### Barrier Version ###
|
||||
|
||||
1.8.π
|
||||
1.9.π
|
||||
|
||||
**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
|
||||
**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/
|
||||
|
||||
### Steps to reproduce bug ###
|
||||
|
||||
@@ -19,14 +20,11 @@ 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 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
|
||||
* Does this bug prevent you from using Barrier entirely? Yes/No
|
||||
|
||||
Put anything else you can think of here.
|
||||
|
||||
6
.gitignore
vendored
6
.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
build_env.*
|
||||
config.h
|
||||
.DS_Store
|
||||
*.pyc
|
||||
@@ -18,7 +19,4 @@ config.h
|
||||
src/gui/gui.pro.user*
|
||||
src/gui/.qmake.stash
|
||||
src/gui/.rnd
|
||||
src/setup/win32/synergy.suo
|
||||
/.idea
|
||||
/cmake-build-debug
|
||||
/CMakeLists.txt.user
|
||||
src/setup/win32/barrier.suo
|
||||
|
||||
10
.travis.yml
Normal file
10
.travis.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
language: cpp
|
||||
before_install:
|
||||
- sudo apt-get update -qq
|
||||
- sudo apt-get install -qq libxtst-dev
|
||||
- sudo apt-get install -qq qtdeclarative5-dev
|
||||
- sudo apt-get install -qq libavahi-compat-libdnssd-dev
|
||||
script: sh -x ./clean_build.sh
|
||||
# skip install phase since we have a customized install package
|
||||
# creation tool for each supported platform
|
||||
install: true
|
||||
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# Synergy build parameters
|
||||
# Barrier build parameters
|
||||
#
|
||||
SYNERGY_VERSION_MAJOR = 1
|
||||
SYNERGY_VERSION_MINOR = 10
|
||||
SYNERGY_VERSION_PATCH = 2
|
||||
SYNERGY_VERSION_STAGE = snapshot
|
||||
BARRIER_VERSION_MAJOR = 1
|
||||
BARRIER_VERSION_MINOR = 9
|
||||
BARRIER_VERSION_PATCH = 0
|
||||
BARRIER_VERSION_STAGE = snapshot
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
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);
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
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
|
||||
@@ -1,54 +0,0 @@
|
||||
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);
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
pwd
|
||||
ls -la
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
make
|
||||
@@ -1,12 +0,0 @@
|
||||
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
|
||||
@@ -1,24 +0,0 @@
|
||||
#
|
||||
# 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"]
|
||||
@@ -1,24 +0,0 @@
|
||||
#
|
||||
# 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"]
|
||||
@@ -1,24 +0,0 @@
|
||||
#
|
||||
# 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"]
|
||||
105
CMakeLists.txt
105
CMakeLists.txt
@@ -1,4 +1,5 @@
|
||||
# Synergy -- mouse and keyboard sharing utility
|
||||
# Barrier -- mouse and keyboard sharing utility
|
||||
# Copyright (C) 2018 Debauchee Open Source Group
|
||||
# Copyright (C) 2012-2016 Symless Ltd.
|
||||
# Copyright (C) 2009 Nick Bolton
|
||||
#
|
||||
@@ -15,17 +16,11 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
cmake_minimum_required (VERSION 3.4)
|
||||
project (synergy-core C CXX)
|
||||
project (barrier C CXX)
|
||||
|
||||
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()
|
||||
option (BARRIER_BUILD_LEGACY_GUI "Build the legacy GUI" ON)
|
||||
option (BARRIER_BUILD_LEGACY_SERVICE "Build the legacy service (barrierd)" ON)
|
||||
option (BARRIER_BUILD_LEGACY_INSTALLER "Build the legacy installer" ON)
|
||||
|
||||
set (CMAKE_CXX_STANDARD 14)
|
||||
set (CMAKE_CXX_EXTENSIONS OFF)
|
||||
@@ -38,7 +33,7 @@ if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
endif()
|
||||
|
||||
#
|
||||
# Synergy version
|
||||
# Barrier version
|
||||
#
|
||||
include (cmake/Version.cmake)
|
||||
|
||||
@@ -50,9 +45,9 @@ endif()
|
||||
|
||||
# Add headers to source list
|
||||
if (${CMAKE_GENERATOR} STREQUAL "Unix Makefiles")
|
||||
set (SYNERGY_ADD_HEADERS FALSE)
|
||||
set (BARRIER_ADD_HEADERS FALSE)
|
||||
else()
|
||||
set (SYNERGY_ADD_HEADERS TRUE)
|
||||
set (BARRIER_ADD_HEADERS TRUE)
|
||||
endif()
|
||||
|
||||
set (libs)
|
||||
@@ -136,6 +131,13 @@ if (UNIX)
|
||||
message (FATAL_ERROR "Missing library: pthread")
|
||||
endif()
|
||||
|
||||
# curl is used on both Linux and Mac
|
||||
find_package (CURL)
|
||||
if (CURL_FOUND)
|
||||
list (APPEND libs curl)
|
||||
else()
|
||||
message (FATAL_ERROR "Missing library: curl")
|
||||
endif()
|
||||
|
||||
if (APPLE)
|
||||
set (CMAKE_CXX_FLAGS "--sysroot ${CMAKE_OSX_SYSROOT} ${CMAKE_CXX_FLAGS} -DGTEST_USE_OWN_TR1_TUPLE=1")
|
||||
@@ -155,9 +157,14 @@ if (UNIX)
|
||||
)
|
||||
|
||||
else() # not-apple
|
||||
|
||||
# add include dir for bsd (posix uses /usr/include/)
|
||||
set (CMAKE_INCLUDE_PATH "${CMAKE_INCLUDE_PATH}:/usr/local/include")
|
||||
# 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()
|
||||
|
||||
set (XKBlib "X11/Xlib.h;X11/XKBlib.h")
|
||||
set (CMAKE_EXTRA_INCLUDE_FILES "${XKBlib};X11/extensions/Xrandr.h")
|
||||
@@ -172,6 +179,7 @@ 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.
|
||||
@@ -182,6 +190,10 @@ if (UNIX)
|
||||
message (FATAL_ERROR "Missing header: " ${XKBlib})
|
||||
endif()
|
||||
|
||||
if (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)
|
||||
@@ -200,7 +212,7 @@ if (UNIX)
|
||||
if (HAVE_Xtst)
|
||||
|
||||
# Xtxt depends on X11.
|
||||
set (HAVE_X11)
|
||||
set (HAVE_X11 1)
|
||||
list (APPEND libs Xtst X11)
|
||||
|
||||
else()
|
||||
@@ -271,7 +283,7 @@ elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||
/DWIN32
|
||||
/D_WINDOWS
|
||||
/D_CRT_SECURE_NO_WARNINGS
|
||||
/DSYNERGY_VERSION=\"${SYNERGY_VERSION}\"
|
||||
/DBARRIER_VERSION=\"${BARRIER_VERSION}\"
|
||||
/D_XKEYCHECK_H
|
||||
)
|
||||
endif()
|
||||
@@ -303,7 +315,14 @@ elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
set (OPENSSL_LIBS ssl crypto)
|
||||
else()
|
||||
message (FATAL_ERROR "Couldn't find OpenSSL")
|
||||
find_library (lib_ssl ssl)
|
||||
find_library (lib_crypto crypto)
|
||||
if (NOT lib_ssl)
|
||||
message(FATAL_ERROR "openssl library not found")
|
||||
elseif (NOT lib_crypto)
|
||||
message(FATAL_ERROR "crypto library not found")
|
||||
endif()
|
||||
set (OPENSSL_LIBS ${lib_ssl} ${lib_crypto})
|
||||
endif()
|
||||
|
||||
#
|
||||
@@ -336,45 +355,28 @@ macro (configure_files srcDir destDir)
|
||||
endforeach (templateFile)
|
||||
endmacro (configure_files)
|
||||
|
||||
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})
|
||||
if (${BARRIER_BUILD_LEGACY_INSTALLER})
|
||||
#
|
||||
# macOS app Bundle
|
||||
#
|
||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
set (CMAKE_INSTALL_RPATH "@loader_path/../Libraries;@loader_path/../Frameworks")
|
||||
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})
|
||||
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})
|
||||
endif()
|
||||
|
||||
#
|
||||
# Windows installer
|
||||
#
|
||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||
message (STATUS "Configuring the v1 installer")
|
||||
configure_files (${CMAKE_CURRENT_SOURCE_DIR}/dist/wix ${CMAKE_BINARY_DIR}/installer)
|
||||
generate_versionfile()
|
||||
message (STATUS "Configuring the wix installer")
|
||||
configure_files (${CMAKE_CURRENT_SOURCE_DIR}/dist/wix ${CMAKE_BINARY_DIR}/installer-wix)
|
||||
message (STATUS "Configuring the inno installer")
|
||||
configure_files (${CMAKE_CURRENT_SOURCE_DIR}/dist/inno ${CMAKE_BINARY_DIR}/installer-inno)
|
||||
endif()
|
||||
|
||||
#
|
||||
@@ -382,13 +384,12 @@ endif()
|
||||
#
|
||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
configure_files (${CMAKE_CURRENT_SOURCE_DIR}/dist/rpm ${CMAKE_BINARY_DIR}/rpm)
|
||||
install(FILES res/synergy.svg DESTINATION share/icons/hicolor/scalable/apps)
|
||||
install(FILES res/barrier.svg DESTINATION share/icons/hicolor/scalable/apps)
|
||||
if("${VERSION_MAJOR}" STREQUAL "2")
|
||||
install(FILES res/synergy2.desktop DESTINATION share/applications)
|
||||
install(FILES res/barrier2.desktop DESTINATION share/applications)
|
||||
else()
|
||||
install(FILES res/synergy.desktop DESTINATION share/applications)
|
||||
install(FILES res/barrier.desktop DESTINATION share/applications)
|
||||
endif()
|
||||
generate_versionfile()
|
||||
endif()
|
||||
|
||||
else()
|
||||
|
||||
99
ChangeLog
99
ChangeLog
@@ -1,91 +1,21 @@
|
||||
v1.10.2-rc2
|
||||
==============
|
||||
v1.9.0-rc3
|
||||
============
|
||||
Bug #4132 - Laggy mouse cursor on macOS clients
|
||||
|
||||
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-rc2
|
||||
===========
|
||||
Bug #5901 - Stored serial key corrupted on macOS
|
||||
Bug #5757 - Failure to build against OpenSSL v1.1.0
|
||||
|
||||
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.9.0-rc1
|
||||
==========
|
||||
Bug #5467 - Failing to automatically download and install Bonjour
|
||||
Enhancement #5389 - Ported GUI to Qt 5
|
||||
Enhancement #4978 - Windows: Added support for Visual Studio 2015
|
||||
Enhancement #5398 - Windows: Updated OpenSSL dependency to 1.0.2k
|
||||
|
||||
v1.8.8-stable
|
||||
=============
|
||||
==========
|
||||
Bug #5196 - Some keys on Korean and Japanese keyboards have the same keycode
|
||||
Bug #5578 - Pressing Hangul key results in alt+'a'
|
||||
Bug #5785 - Can't switch screens when cursor is in a corner
|
||||
@@ -493,3 +423,4 @@ 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
|
||||
|
||||
|
||||
1
LICENSE
1
LICENSE
@@ -1,3 +1,4 @@
|
||||
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
|
||||
|
||||
31
README.md
Normal file
31
README.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# Barrier
|
||||
|
||||
Eliminate the barrier between your machines.
|
||||
|
||||
Master branch build status: [](https://travis-ci.org/debauchee/barrier)
|
||||
|
||||
### 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). That's it.
|
||||
|
||||
### Project goals
|
||||
|
||||
Hassle-free reliability. We are users, too. Barrier was created so that we could solve the issues we had with synergy and then share these fixes with other users.
|
||||
|
||||
Compatibility. We use more than one operating system and you probably do, too. Windows, OSX, Linux, FreeBSD... Barrier should "just work". We will also have our eye on Wayland when the time comes.
|
||||
|
||||
Communication. Everything we do is in the open. Our issue tracker will let you see if others are having the same problem you're having and will allow you to add additional information. You will also be able to see when progress is made and how the issue gets resolved.
|
||||
|
||||
### 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 give 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.
|
||||
35
build_installer.bat
Normal file
35
build_installer.bat
Normal file
@@ -0,0 +1,35 @@
|
||||
@echo off
|
||||
set WIX_ROOT=C:\Program Files (x86)\WiX Toolset v3.11
|
||||
|
||||
set savedir=%cd%
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist build\bin\Release goto buildproject
|
||||
|
||||
cd build\installer
|
||||
if ERRORLEVEL 1 goto buildproject
|
||||
|
||||
echo Building 64-bit Windows installer...
|
||||
"%WIX_ROOT%\bin\candle.exe" -nologo -arch x64 -dConfiguration=Release -dPlatform=x64 -ext WixUtilExtension -ext WixFirewallExtension Product.wxs -o Barrier.wixobj
|
||||
if ERRORLEVEL 1 goto failed
|
||||
"%WIX_ROOT%\bin\light.exe" -nologo -ext WixUtilExtension -ext WixFirewallExtension -ext WixUIExtension Barrier.wixobj -o bin\Barrier.msi
|
||||
if ERRORLEVEL 1 goto failed
|
||||
echo Build completed successfully
|
||||
goto done
|
||||
|
||||
:buildproject
|
||||
echo To build a 64-bit Windows installer:
|
||||
echo - set Q_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 WIX_ROOT=
|
||||
|
||||
cd /d %savedir%
|
||||
set savedir=
|
||||
71
clean_build.bat
Normal file
71
clean_build.bat
Normal file
@@ -0,0 +1,71 @@
|
||||
@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.6.3
|
||||
set B_QT_MSVC=msvc2015_64
|
||||
set B_BONJOUR=C:\Program Files\Bonjour SDK
|
||||
|
||||
set savedir=%cd%
|
||||
cd /d %~dp0
|
||||
|
||||
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 "Visual Studio 15 2017 Win64" -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 > 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=
|
||||
28
clean_build.sh
Executable file
28
clean_build.sh
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/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=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.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"
|
||||
@@ -1,86 +1,90 @@
|
||||
cmake_minimum_required (VERSION 3.4)
|
||||
|
||||
#
|
||||
# Synergy Version
|
||||
# Barrier Version
|
||||
#
|
||||
|
||||
set (SYNERGY_VERSION_MAJOR 1)
|
||||
set (SYNERGY_VERSION_MINOR 10)
|
||||
set (SYNERGY_VERSION_PATCH 2)
|
||||
set (SYNERGY_VERSION_STAGE "rc2")
|
||||
|
||||
#
|
||||
# Version from CI
|
||||
#
|
||||
|
||||
if (DEFINED ENV{SYNERGY_VERSION_MAJOR})
|
||||
set (SYNERGY_VERSION_MAJOR $ENV{SYNERGY_VERSION_MAJOR})
|
||||
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()
|
||||
endif()
|
||||
|
||||
if (DEFINED ENV{SYNERGY_VERSION_MINOR})
|
||||
set (SYNERGY_VERSION_MINOR $ENV{SYNERGY_VERSION_MINOR})
|
||||
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()
|
||||
endif()
|
||||
|
||||
if (DEFINED ENV{SYNERGY_VERSION_PATCH})
|
||||
set (SYNERGY_VERSION_PATCH $ENV{SYNERGY_VERSION_PATCH})
|
||||
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()
|
||||
endif()
|
||||
|
||||
if (DEFINED ENV{SYNERGY_VERSION_STAGE})
|
||||
set (SYNERGY_VERSION_STAGE $ENV{SYNERGY_VERSION_STAGE})
|
||||
if (NOT DEFINED BARRIER_VERSION_STAGE)
|
||||
if (DEFINED ENV{BARRIER_VERSION_STAGE})
|
||||
set (BARRIER_VERSION_STAGE $ENV{BARRIER_VERSION_STAGE})
|
||||
else()
|
||||
set (BARRIER_VERSION_STAGE "snapshot")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED SYNERGY_REVISION)
|
||||
if (NOT DEFINED BARRIER_REVISION)
|
||||
if (DEFINED ENV{GIT_COMMIT})
|
||||
string (SUBSTRING $ENV{GIT_COMMIT} 0 8 SYNERGY_REVISION)
|
||||
elseif (SYNERGY_VERSION_STAGE STREQUAL "snapshot")
|
||||
string (SUBSTRING $ENV{GIT_COMMIT} 0 8 BARRIER_REVISION)
|
||||
else()
|
||||
execute_process (
|
||||
COMMAND git rev-parse --short=8 HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE SYNERGY_REVISION
|
||||
OUTPUT_VARIABLE BARRIER_REVISION
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
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")
|
||||
if (DEFINED BARRIER_REVISION)
|
||||
string(LENGTH ${BARRIER_REVISION} BARRIER_REVISION_LENGTH)
|
||||
if (NOT ((BARRIER_REVISION MATCHES "^[a-f0-9]+") AND (BARRIER_REVISION_LENGTH EQUAL "8")))
|
||||
message (FATAL_ERROR "BARRIER_REVISION ('${BARRIER_REVISION}') should be a short commit hash")
|
||||
endif()
|
||||
unset (SYNERGY_REVISION_LENGTH)
|
||||
unset (BARRIER_REVISION_LENGTH)
|
||||
else()
|
||||
set (SYNERGY_REVISION "0badc0de")
|
||||
set (BARRIER_REVISION "0badc0de")
|
||||
endif()
|
||||
|
||||
if (DEFINED ENV{BUILD_NUMBER})
|
||||
set (SYNERGY_BUILD_NUMBER $ENV{BUILD_NUMBER})
|
||||
set (BARRIER_BUILD_NUMBER $ENV{BUILD_NUMBER})
|
||||
else()
|
||||
set (SYNERGY_BUILD_NUMBER 1)
|
||||
set (BARRIER_BUILD_NUMBER 1)
|
||||
endif()
|
||||
|
||||
string (TIMESTAMP SYNERGY_BUILD_DATE "%Y%m%d" UTC)
|
||||
set (SYNERGY_SNAPSHOT_INFO ".${SYNERGY_VERSION_STAGE}.${SYNERGY_REVISION}")
|
||||
string (TIMESTAMP BARRIER_BUILD_DATE "%Y%m%d" UTC)
|
||||
set (BARRIER_SNAPSHOT_INFO ".${BARRIER_VERSION_STAGE}.${BARRIER_REVISION}")
|
||||
|
||||
if (SYNERGY_VERSION_STAGE STREQUAL "snapshot")
|
||||
set (SYNERGY_VERSION_TAG "${SYNERGY_VERSION_STAGE}.b${SYNERGY_BUILD_NUMBER}-${SYNERGY_REVISION}")
|
||||
if (BARRIER_VERSION_STAGE STREQUAL "snapshot")
|
||||
set (BARRIER_VERSION_TAG "${BARRIER_VERSION_STAGE}.b${BARRIER_BUILD_NUMBER}-${BARRIER_REVISION}")
|
||||
else()
|
||||
set (SYNERGY_VERSION_TAG "${SYNERGY_VERSION_STAGE}")
|
||||
set (BARRIER_VERSION_TAG "${BARRIER_VERSION_STAGE}")
|
||||
endif()
|
||||
|
||||
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} "'")
|
||||
set (BARRIER_VERSION "${BARRIER_VERSION_MAJOR}.${BARRIER_VERSION_MINOR}.${BARRIER_VERSION_PATCH}-${BARRIER_VERSION_STAGE}")
|
||||
set (BARRIER_VERSION_STRING "${BARRIER_VERSION}-${BARRIER_VERSION_TAG}")
|
||||
message (STATUS "Full Barrier version string is '" ${BARRIER_VERSION_STRING} "'")
|
||||
|
||||
add_definitions (-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})
|
||||
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})
|
||||
|
||||
if (SYNERGY_DEVELOPER_MODE)
|
||||
add_definitions (-DSYNERGY_DEVELOPER_MODE=1)
|
||||
if (BARRIER_DEVELOPER_MODE)
|
||||
add_definitions (-DBARRIER_DEVELOPER_MODE=1)
|
||||
endif()
|
||||
|
||||
if (SYNERGY_ENTERPRISE)
|
||||
add_definitions (-DSYNERGY_ENTERPRISE=1)
|
||||
endif()
|
||||
|
||||
14
debian/control
vendored
14
debian/control
vendored
@@ -1,17 +1,17 @@
|
||||
Source: synergy
|
||||
Source: barrier
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Standards-Version: 3.9.7
|
||||
Homepage: https://www.symless.com/
|
||||
Maintainer: Symless <engineering@symless.com>
|
||||
Homepage: https://github.com/debauchee/barrier/
|
||||
Maintainer: Debauchee Open Source Group <todo@mail.com>
|
||||
|
||||
Package: synergy
|
||||
Architecture: any
|
||||
Package: barrier
|
||||
Architecture: amd64
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Depends: ${shlibs:Depends},
|
||||
${misc:Depends}
|
||||
Description: Keyboard and mouse sharing solution
|
||||
Synergy allows you to share one mouse and keyboard between multiple computers.
|
||||
Barrier allows you to share one mouse and keyboard between multiple computers.
|
||||
Work seamlessly across Windows, macOS and Linux.
|
||||
Homepage: https://symless.com/synergy
|
||||
Homepage: https://github.com/debauchee/barrier/
|
||||
|
||||
6
debian/copyright
vendored
6
debian/copyright
vendored
@@ -1,5 +1,5 @@
|
||||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: Synergy
|
||||
Source: https://www.symless.com/synergy
|
||||
Upstream-Name: Barrier
|
||||
Source: https://github.com/debauchee/barrier/
|
||||
Disclaimer: This package is not part of the Debian project as it contains closed source proprietary components
|
||||
Copyright: Copyright (C) 2012-2017 Symless Ltd
|
||||
Copyright: Copyright (C) 2018 Debauchee Open Source Group
|
||||
|
||||
74
dist/inno/barrier.iss.in
vendored
Normal file
74
dist/inno/barrier.iss.in
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
#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."
|
||||
|
||||
[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]
|
||||
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
|
||||
|
||||
[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;
|
||||
49
dist/inno/scripts/isxdl/english.ini
vendored
Normal file
49
dist/inno/scripts/isxdl/english.ini
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
[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:
|
||||
BIN
dist/inno/scripts/isxdl/isxdl.dll
vendored
Normal file
BIN
dist/inno/scripts/isxdl/isxdl.dll
vendored
Normal file
Binary file not shown.
14
dist/inno/scripts/isxdl/isxdl.iss
vendored
Normal file
14
dist/inno/scripts/isxdl/isxdl.iss
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
[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]
|
||||
18
dist/inno/scripts/lang/english.iss
vendored
Normal file
18
dist/inno/scripts/lang/english.iss
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
[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]
|
||||
6
dist/inno/scripts/products.iss
vendored
Normal file
6
dist/inno/scripts/products.iss
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
#include "isxdl\isxdl.iss"
|
||||
|
||||
[Code]
|
||||
#include "products.pas"
|
||||
|
||||
[Setup]
|
||||
329
dist/inno/scripts/products.pas
vendored
Normal file
329
dist/inno/scripts/products.pas
vendored
Normal file
@@ -0,0 +1,329 @@
|
||||
{
|
||||
--- 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;
|
||||
49
dist/inno/scripts/products/msiproduct.iss
vendored
Normal file
49
dist/inno/scripts/products/msiproduct.iss
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
[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]
|
||||
62
dist/inno/scripts/products/stringversion.iss
vendored
Normal file
62
dist/inno/scripts/products/stringversion.iss
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
[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]
|
||||
32
dist/inno/scripts/products/vcredist2017.iss
vendored
Normal file
32
dist/inno/scripts/products/vcredist2017.iss
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
; 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]
|
||||
49
dist/inno/scripts/products/winversion.iss
vendored
Normal file
49
dist/inno/scripts/products/winversion.iss
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
[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]
|
||||
@@ -4,28 +4,28 @@
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Synergy</string>
|
||||
<string>Barrier</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>synergy</string>
|
||||
<string>barrier.sh</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Synergy.icns</string>
|
||||
<string>Barrier.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>synergy</string>
|
||||
<string>barrier</string>
|
||||
<!-- TODO: Fix this in v2.0 //-->
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Synergy</string>
|
||||
<string>Barrier</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>SYN1</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>@SYNERGY_VERSION@</string>
|
||||
<string>@BARRIER_VERSION@</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>@SYNERGY_VERSION@</string>
|
||||
<string>@BARRIER_VERSION@</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>© 2012-2016, Symless Ltd</string>
|
||||
<string>© 2018 Debauchee Open Source Group</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.9.0</string>
|
||||
</dict>
|
||||
BIN
dist/macos/bundle/Barrier.app/Contents/Resources/Barrier.icns
vendored
Normal file
BIN
dist/macos/bundle/Barrier.app/Contents/Resources/Barrier.icns
vendored
Normal file
Binary file not shown.
Binary file not shown.
77
dist/macos/bundle/build_installer.sh.in
vendored
Executable file
77
dist/macos/bundle/build_installer.sh.in
vendored
Executable file
@@ -0,0 +1,77 @@
|
||||
#!/bin/sh
|
||||
|
||||
# change this to rename the installer package
|
||||
B_DMG="Barrier-@BARRIER_VERSION@.dmg"
|
||||
|
||||
# sanity check so we don't distribute packages full of debug symbols
|
||||
if [ "@CMAKE_BUILD_TYPE@" != "Release" ]; then
|
||||
echo Will only build installers for Release builds
|
||||
exit 1
|
||||
fi
|
||||
|
||||
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 [ $? -ne 0 ] || [ "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
|
||||
|
||||
# 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 "Installer created successfully"
|
||||
41
dist/macos/bundle/reref_dylibs.sh
vendored
Executable file
41
dist/macos/bundle/reref_dylibs.sh
vendored
Executable file
@@ -0,0 +1,41 @@
|
||||
#!/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)
|
||||
|
||||
# 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
|
||||
27
dist/rpm/barrier.spec.in
vendored
Normal file
27
dist/rpm/barrier.spec.in
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
Name: barrier
|
||||
Version: @BARRIER_VERSION@
|
||||
Summary: Keyboard and mouse sharing solution
|
||||
Group: Applications/Productivity
|
||||
URL: https://github.com/debauchee/barrier/
|
||||
Source: https://github.com/debauchee/barrier/
|
||||
Vendor: Debauchee
|
||||
Packager: Debauchee <todo@mail.com>
|
||||
License: GPLv2
|
||||
Release: @BARRIER_BUILD_NUMBER@@BARRIER_SNAPSHOT_INFO@%{?dist}
|
||||
|
||||
%description
|
||||
Barrier allows you to share one mouse and keyboard between multiple computers.
|
||||
Work seamlessly across Windows, macOS and Linux.
|
||||
|
||||
%files
|
||||
%defattr(755,root,root,-)
|
||||
%{_bindir}/barrier
|
||||
%{_bindir}/barrierc
|
||||
%{_bindir}/barriers
|
||||
%{_bindir}/syntool
|
||||
%attr(644,-,-) %{_datarootdir}/applications/barrier.desktop
|
||||
%attr(644,-,-) %{_datarootdir}/icons/hicolor/scalable/apps/barrier.svg
|
||||
|
||||
%changelog
|
||||
* Sat Jan 27 2018 Debauchee <todo@mail.com>
|
||||
- Initial version of the package
|
||||
27
dist/rpm/synergy.spec.in
vendored
27
dist/rpm/synergy.spec.in
vendored
@@ -1,27 +0,0 @@
|
||||
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
|
||||
2
dist/wix/Synergy.sln → dist/wix/Barrier.sln
vendored
2
dist/wix/Synergy.sln → dist/wix/Barrier.sln
vendored
@@ -2,7 +2,7 @@
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.23107.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Synergy", "Synergy.wixproj", "{D4BA9F39-6A35-4C8F-9CB2-67FCBE5CAB17}"
|
||||
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Barrier", "Barrier.wixproj", "{D4BA9F39-6A35-4C8F-9CB2-67FCBE5CAB17}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@@ -4,7 +4,7 @@
|
||||
<ProductVersion>3.10</ProductVersion>
|
||||
<ProjectGuid>{d4ba9f39-6a35-4c8f-9cb2-67fcbe5cab17}</ProjectGuid>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<OutputName>Synergy</OutputName>
|
||||
<OutputName>Barrier</OutputName>
|
||||
<OutputType>Package</OutputType>
|
||||
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
|
||||
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
|
||||
16
dist/wix/Include.wxi.in
vendored
16
dist/wix/Include.wxi.in
vendored
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Include>
|
||||
<?define Name="Synergy" ?>
|
||||
<?define Version="@SYNERGY_VERSION@" ?>
|
||||
<?define QtVersion="5.9.5" ?> <!-- TODO: Configure this externally //-->
|
||||
<?define Author="Symless Ltd" ?>
|
||||
<?define Name="Barrier" ?>
|
||||
<?define Version="@BARRIER_VERSION@" ?>
|
||||
<?define QtVersion="@QT_VERSION@" ?>
|
||||
<?define Author="Debauchee Open Source Group" ?>
|
||||
<?define BinPath="@CMAKE_RUNTIME_OUTPUT_DIRECTORY@/$(var.Configuration)" ?>
|
||||
<?define ResPath="@CMAKE_CURRENT_SOURCE_DIR@/res" ?>
|
||||
<?define ExtPath="@CMAKE_CURRENT_SOURCE_DIR@/ext" ?>
|
||||
@@ -11,19 +11,15 @@
|
||||
<?define ProgramFilesFolder="ProgramFiles64Folder" ?>
|
||||
<?define PlatformSimpleName="64-bit" ?>
|
||||
<?define UpgradeGuid="E8A4FA54-14B9-4FD1-8E00-7BC46555FDA0" ?>
|
||||
<?define QtPath="C:\Qt\Qt$(var.QtVersion)\$(var.QtVersion)\msvc2015_64" ?>
|
||||
<?define QtPath="E:\Qt\$(var.QtVersion)\msvc2015_64" ?>
|
||||
<?else ?>
|
||||
<?define ProgramFilesFolder="ProgramFilesFolder" ?>
|
||||
<?define PlatformSimpleName="32-bit" ?>
|
||||
<?define UpgradeGuid="BE0B9FD8-45E2-4A8E-A0D8-1F774D074A78" ?>
|
||||
<?define QtPath="C:\Qt\Qt$(var.QtVersion)\$(var.QtVersion)\msvc2015" ?>
|
||||
<?define QtPath="E:\Qt\$(var.QtVersion)\msvc2015" ?>
|
||||
<?endif ?>
|
||||
<?define QtBinPath="$(var.QtPath)\bin" ?>
|
||||
<?define QtPlatformPath="$(var.QtPath)\plugins\platforms" ?>
|
||||
<?define OpenSSLPath="$(var.ExtPath)\openssl\windows\$(var.Platform)" ?>
|
||||
<?define OpenSSLBinPath="$(var.OpenSSLPath)\bin" ?>
|
||||
<?if $(var.Configuration) = "Debug" ?>
|
||||
<?define DebugCRT="$(env.CommonProgramFiles)\Merge Modules\Microsoft_VC140_DebugCRT_$(var.Platform).msm" ?>
|
||||
<?endif ?>
|
||||
<?define CRT="$(env.CommonProgramFiles)\Merge Modules\Microsoft_VC140_CRT_$(var.Platform).msm" ?>
|
||||
</Include>
|
||||
|
||||
70
dist/wix/Product.wxs
vendored
70
dist/wix/Product.wxs
vendored
@@ -12,42 +12,27 @@
|
||||
</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 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 ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes" Key="Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" Root="HKLM">
|
||||
<RegistryValue Name="[INSTALLFOLDER]barriers.exe" Type="string" Value="~ HIGHDPIAWARE WIN7RTM"/>
|
||||
</RegistryKey>
|
||||
<!-- Windows 8 and later only -->
|
||||
<Condition><![CDATA[Installed OR (VersionNT >= 602)]]></Condition>
|
||||
</Component>
|
||||
</DirectoryRef>
|
||||
<Icon Id="synergy.ico" SourceFile="$(var.ResPath)/synergy.ico"/>
|
||||
<Icon Id="barrier.ico" SourceFile="$(var.ResPath)/barrier.ico"/>
|
||||
<WixVariable Id="WixUILicenseRtf" Value="$(var.ResPath)\License.rtf"/>
|
||||
<WixVariable Id="WixUIBannerBmp" Value="$(var.ResPath)\banner.bmp"/>
|
||||
<WixVariable Id="WixUIDialogBmp" Value="$(var.ResPath)\dialog.bmp"/>
|
||||
<Property Id="ARPPRODUCTICON" Value="synergy.ico"/>
|
||||
<Property Id="ARPPRODUCTICON" Value="barrier.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">
|
||||
<RegistrySearch Id="LegacyRegistrySearch" Key="SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Barrier" Name="UninstallString" Root="HKLM" Type="file" Win64="no">
|
||||
<FileSearch Id="LegacyFileSearch" Name="uninstall.exe"/>
|
||||
</RegistrySearch>
|
||||
</Property>
|
||||
@@ -55,17 +40,6 @@
|
||||
</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>
|
||||
@@ -73,10 +47,6 @@
|
||||
<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>
|
||||
@@ -87,23 +57,25 @@
|
||||
<Fragment>
|
||||
<ComponentGroup Directory="INSTALLFOLDER" Id="ProductComponents">
|
||||
<Component Guid="EC9AD3B0-277C-4157-B5C8-5FD5B6A5F4AD" Id="Core">
|
||||
<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">
|
||||
<File KeyPath="yes" Source="$(var.BinPath)/barrierd.exe"/>
|
||||
<ServiceInstall Description="Controls the $(var.Name) foreground processes." DisplayName="$(var.Name)" ErrorControl="normal" Id="ServiceInstall" Name="Barrier" Start="auto" Type="ownProcess">
|
||||
<util:ServiceConfig FirstFailureActionType="restart" ResetPeriodInDays="1" RestartServiceDelayInSeconds="1" SecondFailureActionType="restart" ThirdFailureActionType="restart"/>
|
||||
</ServiceInstall>
|
||||
<ServiceControl Id="ServiceControl" Name="Synergy" Remove="uninstall" Start="install" Stop="both"/>
|
||||
<File Source="$(var.BinPath)/synergys.exe">
|
||||
<ServiceControl Id="ServiceControl" Name="Barrier" Remove="uninstall" Start="install" Stop="both"/>
|
||||
<File Source="$(var.BinPath)/barriers.exe">
|
||||
<fire:FirewallException Id="ServerFirewallException" IgnoreFailure="yes" Name="$(var.Name)" Scope="any"/>
|
||||
</File>
|
||||
<File Source="$(var.BinPath)/synergyc.exe"/>
|
||||
<File Source="$(var.BinPath)/barrierc.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)/synergy.exe">
|
||||
<Shortcut Advertise="yes" Directory="ProgramMenuFolder" Icon="synergy.ico" Id="GuiShortcut" Name="$(var.Name)"/>
|
||||
<File Id="GuiProgram" KeyPath="yes" Source="$(var.BinPath)/barrier.exe">
|
||||
<Shortcut Advertise="yes" Directory="ProgramMenuFolder" Icon="barrier.ico" Id="GuiShortcut" Name="$(var.Name)"/>
|
||||
<fire:FirewallException Id="GuiFirewallException" IgnoreFailure="yes" Name="$(var.Name)" Scope="any"/>
|
||||
</File>
|
||||
<?if $(var.Configuration) = "Debug" ?>
|
||||
@@ -136,13 +108,5 @@
|
||||
<?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>
|
||||
|
||||
7
doc/MacReadme.txt
Executable file → Normal file
7
doc/MacReadme.txt
Executable file → Normal file
@@ -5,14 +5,11 @@ 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 synergy* /usr/bin
|
||||
4. Correct the permissions and ownership: sudo chown root:wheel /usr/bin/synergy*; sudo chmod 555 /usr/bin/synergy*
|
||||
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*
|
||||
|
||||
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/
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
</data>
|
||||
<data>
|
||||
<variable>DisplayName</variable>
|
||||
<value type="QString">Synergy</value>
|
||||
<value type="QString">Barrier</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
@@ -73,7 +73,7 @@
|
||||
</data>
|
||||
<data>
|
||||
<variable>DisplayName</variable>
|
||||
<value type="QString">Synergy</value>
|
||||
<value type="QString">Barrier</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
@@ -112,7 +112,7 @@
|
||||
</data>
|
||||
<data>
|
||||
<variable>DisplayName</variable>
|
||||
<value type="QString">Synergy</value>
|
||||
<value type="QString">Barrier</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
@@ -151,7 +151,7 @@
|
||||
</data>
|
||||
<data>
|
||||
<variable>DisplayName</variable>
|
||||
<value type="QString">Synergy</value>
|
||||
<value type="QString">Barrier</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
@@ -190,7 +190,7 @@
|
||||
</data>
|
||||
<data>
|
||||
<variable>DisplayName</variable>
|
||||
<value type="QString">Synergy</value>
|
||||
<value type="QString">Barrier</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
@@ -229,6 +229,6 @@
|
||||
</data>
|
||||
<data>
|
||||
<variable>DisplayName</variable>
|
||||
<value type="QString">Synergy</value>
|
||||
<value type="QString">Barrier</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# sample synergy configuration file
|
||||
# sample barrier configuration file
|
||||
#
|
||||
# comments begin with the # character and continue to the end of
|
||||
# line. comments may appear anywhere the syntax permits.
|
||||
@@ -1,4 +1,4 @@
|
||||
# sample synergy configuration file
|
||||
# sample barrier configuration file
|
||||
#
|
||||
# comments begin with the # character and continue to the end of
|
||||
# line. comments may appear anywhere the syntax permits.
|
||||
@@ -1,4 +1,4 @@
|
||||
# sample synergy configuration file
|
||||
# sample barrier configuration file
|
||||
#
|
||||
# comments begin with the # character and continue to the end of
|
||||
# line. comments may appear anywhere the syntax permits.
|
||||
@@ -1,12 +1,12 @@
|
||||
.\" 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"
|
||||
.TH BARRIERC "1" "June 2010" "barrierc 1.5.0, protocol version 1.3" "User Commands"
|
||||
.SH NAME
|
||||
synergyc \- manual page for synergyc 1.5.0, protocol version 1.3
|
||||
barrierc \- manual page for barrierc 1.5.0, protocol version 1.3
|
||||
.SH SYNOPSIS
|
||||
.B synergyc
|
||||
.B barrierc
|
||||
[\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.
|
||||
Connect to a barrier mouse/keyboard sharing server.
|
||||
.TP
|
||||
\fB\-d\fR, \fB\-\-debug\fR <level>
|
||||
filter out log messages with priority below level.
|
||||
@@ -1,12 +1,12 @@
|
||||
.\" 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"
|
||||
.TH BARRIERS "1" "June 2010" "barriers 1.5.0, protocol version 1.3" "User Commands"
|
||||
.SH NAME
|
||||
synergys \- manual page for synergys 1.5.0, protocol version 1.3
|
||||
barriers \- manual page for barriers 1.5.0, protocol version 1.3
|
||||
.SH SYNOPSIS
|
||||
.B synergys
|
||||
.B barriers
|
||||
[\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.
|
||||
Start the barrier mouse/keyboard sharing server.
|
||||
.TP
|
||||
\fB\-a\fR, \fB\-\-address\fR <address>
|
||||
listen for clients on the given address.
|
||||
@@ -51,7 +51,7 @@ default port, 24800.
|
||||
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
|
||||
$HOME/.barrier.conf
|
||||
/etc/barrier.conf
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2010 Chris Schoeneman, Nick Bolton, Sorin Sbarnea
|
||||
@@ -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 synergy client automatically. Make sure you change the IP below. -->
|
||||
<!-- Mac OSX only: Copy this plist file into [~]/Library/LaunchAgents to start barrier client automatically. Make sure you change the IP below. -->
|
||||
<dict>
|
||||
<key>Label</key>
|
||||
<string>org.symless.com.synergyc.plist</string>
|
||||
<string>org.debauchee.com.barrierc.plist</string>
|
||||
<key>OnDemand</key>
|
||||
<false/>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>/usr/bin/synergyc</string>
|
||||
<!-- Replace this IP with the IP of your synergys server -->
|
||||
<string>/usr/bin/barrierc</string>
|
||||
<!-- Replace this IP with the IP of your barriers server -->
|
||||
<string>192.168.0.2</string>
|
||||
</array>
|
||||
<key>RunAtLoad</key>
|
||||
@@ -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 synergy server automatically. Make sure you change configuration file below -->
|
||||
<!-- Mac OSX only: Copy this plist file into [~]/Library/LaunchAgents to start barrier server automatically. Make sure you change configuration file below -->
|
||||
<dict>
|
||||
<key>Label</key>
|
||||
<string>org.symless.com.synergys.plist</string>
|
||||
<string>org.debauchee.com.barriers.plist</string>
|
||||
<key>OnDemand</key>
|
||||
<false/>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>/usr/bin/synergys</string>
|
||||
<string>/usr/bin/barriers</string>
|
||||
<string>--no-daemon</string>
|
||||
<string>--config</string>
|
||||
<!-- Replace this path with the path to your synergy configuration -->
|
||||
<string>/Users/snorp/.synergy.conf</string>
|
||||
<!-- Replace this path with the path to your barrier configuration -->
|
||||
<string>/Users/snorp/.barrier.conf</string>
|
||||
</array>
|
||||
<key>RunAtLoad</key>
|
||||
<true/>
|
||||
2
ext/gmock/build-aux/config.guess
vendored
Normal file → Executable file
2
ext/gmock/build-aux/config.guess
vendored
Normal file → Executable file
@@ -461,7 +461,7 @@ EOF
|
||||
Motorola:*:4.3:PL8-*)
|
||||
echo powerpc-harris-powermax
|
||||
exit ;;
|
||||
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
|
||||
Night_Hawk:*:*:PowerMAX_OS | Barrier:PowerMAX_OS:*:*)
|
||||
echo powerpc-harris-powermax
|
||||
exit ;;
|
||||
Night_Hawk:Power_UNIX:*:*)
|
||||
|
||||
0
ext/gmock/build-aux/config.sub
vendored
Normal file → Executable file
0
ext/gmock/build-aux/config.sub
vendored
Normal file → Executable file
0
ext/gmock/build-aux/depcomp
Normal file → Executable file
0
ext/gmock/build-aux/depcomp
Normal file → Executable file
0
ext/gmock/build-aux/install-sh
Normal file → Executable file
0
ext/gmock/build-aux/install-sh
Normal file → Executable file
0
ext/gmock/build-aux/missing
Normal file → Executable file
0
ext/gmock/build-aux/missing
Normal file → Executable file
0
ext/gmock/configure
vendored
Normal file → Executable file
0
ext/gmock/configure
vendored
Normal file → Executable file
0
ext/gmock/scripts/fuse_gmock_files.py
Normal file → Executable file
0
ext/gmock/scripts/fuse_gmock_files.py
Normal file → Executable file
0
ext/gmock/scripts/generator/cpp/ast.py
Normal file → Executable file
0
ext/gmock/scripts/generator/cpp/ast.py
Normal file → Executable file
0
ext/gmock/scripts/generator/cpp/gmock_class.py
Normal file → Executable file
0
ext/gmock/scripts/generator/cpp/gmock_class.py
Normal file → Executable file
0
ext/gmock/scripts/generator/cpp/keywords.py
Normal file → Executable file
0
ext/gmock/scripts/generator/cpp/keywords.py
Normal file → Executable file
0
ext/gmock/scripts/generator/cpp/tokenize.py
Normal file → Executable file
0
ext/gmock/scripts/generator/cpp/tokenize.py
Normal file → Executable file
0
ext/gmock/scripts/generator/cpp/utils.py
Normal file → Executable file
0
ext/gmock/scripts/generator/cpp/utils.py
Normal file → Executable file
0
ext/gmock/scripts/generator/gmock_gen.py
Normal file → Executable file
0
ext/gmock/scripts/generator/gmock_gen.py
Normal file → Executable file
0
ext/gmock/scripts/gmock-config.in
Normal file → Executable file
0
ext/gmock/scripts/gmock-config.in
Normal file → Executable file
0
ext/gmock/test/gmock_leak_test.py
Normal file → Executable file
0
ext/gmock/test/gmock_leak_test.py
Normal file → Executable file
0
ext/gmock/test/gmock_output_test.py
Normal file → Executable file
0
ext/gmock/test/gmock_output_test.py
Normal file → Executable file
0
ext/gmock/test/gmock_test_utils.py
Normal file → Executable file
0
ext/gmock/test/gmock_test_utils.py
Normal file → Executable file
2
ext/gtest/build-aux/config.guess
vendored
Normal file → Executable file
2
ext/gtest/build-aux/config.guess
vendored
Normal file → Executable file
@@ -461,7 +461,7 @@ EOF
|
||||
Motorola:*:4.3:PL8-*)
|
||||
echo powerpc-harris-powermax
|
||||
exit ;;
|
||||
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
|
||||
Night_Hawk:*:*:PowerMAX_OS | Barrier:PowerMAX_OS:*:*)
|
||||
echo powerpc-harris-powermax
|
||||
exit ;;
|
||||
Night_Hawk:Power_UNIX:*:*)
|
||||
|
||||
0
ext/gtest/build-aux/config.sub
vendored
Normal file → Executable file
0
ext/gtest/build-aux/config.sub
vendored
Normal file → Executable file
0
ext/gtest/build-aux/depcomp
Normal file → Executable file
0
ext/gtest/build-aux/depcomp
Normal file → Executable file
0
ext/gtest/build-aux/install-sh
Normal file → Executable file
0
ext/gtest/build-aux/install-sh
Normal file → Executable file
0
ext/gtest/build-aux/missing
Normal file → Executable file
0
ext/gtest/build-aux/missing
Normal file → Executable file
0
ext/gtest/configure
vendored
Normal file → Executable file
0
ext/gtest/configure
vendored
Normal file → Executable file
0
ext/gtest/scripts/fuse_gtest_files.py
Normal file → Executable file
0
ext/gtest/scripts/fuse_gtest_files.py
Normal file → Executable file
0
ext/gtest/scripts/gen_gtest_pred_impl.py
Normal file → Executable file
0
ext/gtest/scripts/gen_gtest_pred_impl.py
Normal file → Executable file
0
ext/gtest/scripts/gtest-config.in
Normal file → Executable file
0
ext/gtest/scripts/gtest-config.in
Normal file → Executable file
0
ext/gtest/scripts/pump.py
Normal file → Executable file
0
ext/gtest/scripts/pump.py
Normal file → Executable file
0
ext/gtest/test/gtest_break_on_failure_unittest.py
Normal file → Executable file
0
ext/gtest/test/gtest_break_on_failure_unittest.py
Normal file → Executable file
0
ext/gtest/test/gtest_catch_exceptions_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_catch_exceptions_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_color_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_color_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_env_var_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_env_var_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_filter_unittest.py
Normal file → Executable file
0
ext/gtest/test/gtest_filter_unittest.py
Normal file → Executable file
0
ext/gtest/test/gtest_help_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_help_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_list_tests_unittest.py
Normal file → Executable file
0
ext/gtest/test/gtest_list_tests_unittest.py
Normal file → Executable file
0
ext/gtest/test/gtest_output_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_output_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_shuffle_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_shuffle_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_test_utils.py
Normal file → Executable file
0
ext/gtest/test/gtest_test_utils.py
Normal file → Executable file
0
ext/gtest/test/gtest_throw_on_failure_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_throw_on_failure_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_uninitialized_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_uninitialized_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_xml_outfiles_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_xml_outfiles_test.py
Normal file → Executable file
0
ext/gtest/test/gtest_xml_output_unittest.py
Normal file → Executable file
0
ext/gtest/test/gtest_xml_output_unittest.py
Normal file → Executable file
0
ext/gtest/test/gtest_xml_test_utils.py
Normal file → Executable file
0
ext/gtest/test/gtest_xml_test_utils.py
Normal file → Executable file
0
ext/gtest/xcode/Samples/FrameworkSample/runtests.sh
Normal file → Executable file
0
ext/gtest/xcode/Samples/FrameworkSample/runtests.sh
Normal file → Executable file
0
ext/gtest/xcode/Scripts/runtests.sh
Normal file → Executable file
0
ext/gtest/xcode/Scripts/runtests.sh
Normal file → Executable file
0
ext/gtest/xcode/Scripts/versiongenerate.py
Normal file → Executable file
0
ext/gtest/xcode/Scripts/versiongenerate.py
Normal file → Executable file
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user