From 2118c6647c6081d3a874608a17f5563fe1839905 Mon Sep 17 00:00:00 2001 From: Nick Bolton Date: Tue, 4 Sep 2018 21:32:24 +0100 Subject: [PATCH 01/22] #6397 Remember last used auto config host --- src/gui/src/AppConfig.cpp | 12 +++++++++++- src/gui/src/AppConfig.h | 3 +++ src/gui/src/MainWindow.cpp | 26 ++++++++++++++++---------- src/gui/src/MainWindow.h | 4 +++- src/gui/src/ZeroconfService.cpp | 2 +- 5 files changed, 34 insertions(+), 13 deletions(-) diff --git a/src/gui/src/AppConfig.cpp b/src/gui/src/AppConfig.cpp index 547d0866..a0f607cf 100644 --- a/src/gui/src/AppConfig.cpp +++ b/src/gui/src/AppConfig.cpp @@ -56,7 +56,8 @@ AppConfig::AppConfig(QSettings* settings) : m_ElevateMode(defaultElevateMode), m_CryptoEnabled(false), m_AutoHide(false), - m_LastExpiringWarningTime(0) + m_LastExpiringWarningTime(0), + m_AutoConfigServer() { Q_ASSERT(m_pSettings); @@ -128,6 +129,8 @@ bool AppConfig::startedBefore() const { return m_StartedBefore; } bool AppConfig::autoConfig() const { return m_AutoConfig; } +QString AppConfig::autoConfigServer() const { return m_AutoConfigServer; } + void AppConfig::loadSettings() { m_ScreenName = settings().value("screenName", QHostInfo::localHostName()).toString(); @@ -140,6 +143,7 @@ void AppConfig::loadSettings() m_Language = settings().value("language", QLocale::system().name()).toString(); m_StartedBefore = settings().value("startedBefore", false).toBool(); m_AutoConfig = settings().value("autoConfig", false).toBool(); + m_AutoConfigServer = settings().value("autoConfigServer", "").toString(); QVariant elevateMode = settings().value("elevateModeEnum"); if (!elevateMode.isValid()) { elevateMode = settings().value ("elevateMode", @@ -168,6 +172,7 @@ void AppConfig::saveSettings() settings().setValue("language", m_Language); settings().setValue("startedBefore", m_StartedBefore); settings().setValue("autoConfig", m_AutoConfig); + settings().setValue("autoConfigServer", m_AutoConfigServer); // Refer to enum ElevateMode declaration for insight in to why this // flag is mapped this way settings().setValue("elevateMode", m_ElevateMode == ElevateAlways); @@ -231,6 +236,11 @@ void AppConfig::setAutoConfig(bool autoConfig) m_AutoConfig = autoConfig; } +void AppConfig::setAutoConfigServer(QString autoConfigServer) +{ + m_AutoConfigServer = autoConfigServer; +} + #ifndef SYNERGY_ENTERPRISE void AppConfig::setEdition(Edition e) { m_Edition = e; diff --git a/src/gui/src/AppConfig.h b/src/gui/src/AppConfig.h index 756492a6..654cc3dc 100644 --- a/src/gui/src/AppConfig.h +++ b/src/gui/src/AppConfig.h @@ -77,6 +77,8 @@ class AppConfig: public QObject bool startedBefore() const; bool autoConfig() const; void setAutoConfig(bool autoConfig); + QString autoConfigServer() const; + void setAutoConfigServer(QString autoConfigServer); #ifndef SYNERGY_ENTERPRISE void setEdition(Edition); Edition edition() const; @@ -138,6 +140,7 @@ protected: QString m_Language; bool m_StartedBefore; bool m_AutoConfig; + QString m_AutoConfigServer; ElevateMode m_ElevateMode; Edition m_Edition; QString m_ActivateEmail; diff --git a/src/gui/src/MainWindow.cpp b/src/gui/src/MainWindow.cpp index 624d71ba..751d2ee1 100644 --- a/src/gui/src/MainWindow.cpp +++ b/src/gui/src/MainWindow.cpp @@ -180,6 +180,8 @@ MainWindow::MainWindow (QSettings& settings, AppConfig& appConfig, #ifndef SYNERGY_ENTERPRISE updateZeroconfService(); updateAutoConfigWidgets(); + + addZeroconfServer(m_AppConfig->autoConfigServer()); #endif } @@ -751,6 +753,13 @@ bool MainWindow::clientArgs(QStringList& args, QString& app) args << serverIp + ":" + QString::number(appConfig().port()); return true; } + else { + show(); + QMessageBox::warning( + this, tr("No server selected"), + tr("No auto config server was selected, try manual mode instead.")); + return false; + } } #endif @@ -1071,13 +1080,8 @@ void MainWindow::changeEvent(QEvent* event) } } -void MainWindow::zeroconfServerDetected(const QString name) +void MainWindow::addZeroconfServer(const QString name) { - // don't add to the server combo box if not in client mode. - if (synergyType() != synergyClient) { - return; - } - // don't add yourself to the server list. if (getIPAddresses().contains(name)) { return; @@ -1086,10 +1090,6 @@ void MainWindow::zeroconfServerDetected(const QString name) if (m_pComboServerList->findText(name) == -1) { m_pComboServerList->addItem(name); } - - if (m_pComboServerList->count() > 1) { - m_pComboServerList->show(); - } } void MainWindow::setEdition(Edition edition) @@ -1410,3 +1410,9 @@ void MainWindow::on_m_pLabelAutoConfig_linkActivated(const QString &) { m_pActionSettings->trigger(); } + +void MainWindow::on_m_pComboServerList_currentIndexChanged(const QString &server) +{ + appConfig().setAutoConfigServer(server); + appConfig().saveSettings(); +} diff --git a/src/gui/src/MainWindow.h b/src/gui/src/MainWindow.h index e267ccf2..e3308f3e 100644 --- a/src/gui/src/MainWindow.h +++ b/src/gui/src/MainWindow.h @@ -117,7 +117,7 @@ class MainWindow : public QMainWindow, public Ui::MainWindowBase void showConfigureServer(const QString& message); void showConfigureServer() { showConfigureServer(""); } void autoAddScreen(const QString name); - void zeroconfServerDetected(const QString name); + void addZeroconfServer(const QString name); void updateLocalFingerprint(); Zeroconf& zeroconf() { return *m_pZeroconf; } #ifndef SYNERGY_ENTERPRISE @@ -239,6 +239,8 @@ private slots: void on_m_pLabelAutoConfig_linkActivated(const QString &link); + void on_m_pComboServerList_currentIndexChanged(const QString &arg1); + signals: void windowShown(); }; diff --git a/src/gui/src/ZeroconfService.cpp b/src/gui/src/ZeroconfService.cpp index e8a124f2..eff56aef 100644 --- a/src/gui/src/ZeroconfService.cpp +++ b/src/gui/src/ZeroconfService.cpp @@ -81,7 +81,7 @@ void ZeroconfService::serverDetected(const QList& list) registerService(false); m_pMainWindow->appendLogInfo(tr("zeroconf server detected: %1").arg( record.serviceName)); - m_pMainWindow->zeroconfServerDetected(record.serviceName); + m_pMainWindow->addZeroconfServer(record.serviceName); } } From 85c359693a38d8084a1d01a53242f0eb4c81bc52 Mon Sep 17 00:00:00 2001 From: Nick Bolton Date: Wed, 5 Sep 2018 05:10:56 +0800 Subject: [PATCH 02/22] #6407 Hide all auto config elements for enterprise build --- src/gui/src/AppConfig.cpp | 9 ++++++++- src/gui/src/MainWindow.cpp | 7 ++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/gui/src/AppConfig.cpp b/src/gui/src/AppConfig.cpp index a0f607cf..2d6fd1b3 100644 --- a/src/gui/src/AppConfig.cpp +++ b/src/gui/src/AppConfig.cpp @@ -127,7 +127,14 @@ const QString &AppConfig::language() const { return m_Language; } bool AppConfig::startedBefore() const { return m_StartedBefore; } -bool AppConfig::autoConfig() const { return m_AutoConfig; } +bool AppConfig::autoConfig() const { +#ifndef SYNERGY_ENTERPRISE + return m_AutoConfig; +#else + // always disable auto config for enterprise edition. + return false; +#endif +} QString AppConfig::autoConfigServer() const { return m_AutoConfigServer; } diff --git a/src/gui/src/MainWindow.cpp b/src/gui/src/MainWindow.cpp index 751d2ee1..1d2ed1eb 100644 --- a/src/gui/src/MainWindow.cpp +++ b/src/gui/src/MainWindow.cpp @@ -179,10 +179,11 @@ MainWindow::MainWindow (QSettings& settings, AppConfig& appConfig, #ifndef SYNERGY_ENTERPRISE updateZeroconfService(); - updateAutoConfigWidgets(); addZeroconfServer(m_AppConfig->autoConfigServer()); #endif + + updateAutoConfigWidgets(); } MainWindow::~MainWindow() @@ -1262,7 +1263,11 @@ void MainWindow::updateAutoConfigWidgets() m_pLabelAutoDetected->hide(); m_pComboServerList->hide(); +#ifndef SYNERGY_ENTERPRISE m_pWidgetAutoConfig->show(); +#else + m_pWidgetAutoConfig->hide(); +#endif } } From e3633d8a7b530d8a1dee52fa4495f9a3a352dfe9 Mon Sep 17 00:00:00 2001 From: Jeremy Whiting Date: Sun, 24 Jun 2018 10:22:21 -0600 Subject: [PATCH 03/22] Add missing header includes to build against Qt 5.11.0 Some Qt gui headers are no longer included when including QtGui adding these two missing headers makes Synergy build here on windows. --- src/gui/src/ActionDialog.cpp | 2 ++ src/gui/src/ScreenSetupView.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/gui/src/ActionDialog.cpp b/src/gui/src/ActionDialog.cpp index 94950338..8c21cb8e 100644 --- a/src/gui/src/ActionDialog.cpp +++ b/src/gui/src/ActionDialog.cpp @@ -26,6 +26,8 @@ #include #include +#include + ActionDialog::ActionDialog(QWidget* parent, ServerConfig& config, Hotkey& hotkey, Action& action) : QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint), Ui::ActionDialogBase(), diff --git a/src/gui/src/ScreenSetupView.cpp b/src/gui/src/ScreenSetupView.cpp index f26d9700..0f0f352a 100644 --- a/src/gui/src/ScreenSetupView.cpp +++ b/src/gui/src/ScreenSetupView.cpp @@ -23,6 +23,8 @@ #include #include +#include + ScreenSetupView::ScreenSetupView(QWidget* parent) : QTableView(parent) { From 2bbfe450aecffdbd1283f3d568e1cc9c66dd327c Mon Sep 17 00:00:00 2001 From: Steve Williams Date: Mon, 5 Mar 2018 13:43:47 +0000 Subject: [PATCH 04/22] #5648 Fixed mouse drift by switching from int to float --- src/lib/platform/OSXScreen.h | 2 +- src/lib/platform/OSXScreen.mm | 28 +++++++++++++++++++++------- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/lib/platform/OSXScreen.h b/src/lib/platform/OSXScreen.h index 25531e0e..6b1e8211 100644 --- a/src/lib/platform/OSXScreen.h +++ b/src/lib/platform/OSXScreen.h @@ -118,7 +118,7 @@ private: void sendClipboardEvent(Event::Type type, ClipboardID id) const; // message handlers - bool onMouseMove(SInt32 mx, SInt32 my); + bool onMouseMove(CGFloat mx, CGFloat my); // mouse button handler. pressed is true if this is a mousedown // event, false if it is a mouseup event. macButton is the index // of the button pressed using the mac button mapping. diff --git a/src/lib/platform/OSXScreen.mm b/src/lib/platform/OSXScreen.mm index 93bec0e9..ba2814ef 100644 --- a/src/lib/platform/OSXScreen.mm +++ b/src/lib/platform/OSXScreen.mm @@ -1080,20 +1080,20 @@ OSXScreen::handleSystemEvent(const Event& event, void*) } bool -OSXScreen::onMouseMove(SInt32 mx, SInt32 my) +OSXScreen::onMouseMove(CGFloat mx, CGFloat my) { - LOG((CLOG_DEBUG2 "mouse move %+d,%+d", mx, my)); + LOG((CLOG_DEBUG2 "mouse move %+f,%+f", mx, my)); - SInt32 x = mx - m_xCursor; - SInt32 y = my - m_yCursor; + CGFloat x = mx - m_xCursor; + CGFloat y = my - m_yCursor; if ((x == 0 && y == 0) || (mx == m_xCenter && mx == m_yCenter)) { return true; } // save position to compute delta of next motion - m_xCursor = mx; - m_yCursor = my; + m_xCursor = (SInt32)mx; + m_yCursor = (SInt32)my; if (m_isOnScreen) { // motion on primary screen @@ -1122,7 +1122,21 @@ OSXScreen::onMouseMove(SInt32 mx, SInt32 my) } else { // send motion - sendEvent(m_events->forIPrimaryScreen().motionOnSecondary(), MotionInfo::alloc(x, y)); + // Accumulate together the move into the running total + static CGFloat m_xFractionalMove = 0; + static CGFloat m_yFractionalMove = 0; + + m_xFractionalMove += x; + m_yFractionalMove += y; + + // Return the integer part + SInt32 intX = (SInt32)m_xFractionalMove; + SInt32 intY = (SInt32)m_yFractionalMove; + + // And keep only the fractional part + m_xFractionalMove -= intX; + m_yFractionalMove -= intY; + sendEvent(m_events->forIPrimaryScreen().motionOnSecondary(), MotionInfo::alloc(intX, intY)); } } From 2713b95af7e21322d4d7674335e5cc0cd8e48a3b Mon Sep 17 00:00:00 2001 From: Jnewbon <48688400+Jnewbon@users.noreply.github.com> Date: Fri, 5 Apr 2019 18:37:59 +0100 Subject: [PATCH 05/22] Fixed Hostname dialog box opening unnecessarily (#6468) #6392 Added check for autoconfig mode --- src/gui/src/MainWindow.cpp | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/gui/src/MainWindow.cpp b/src/gui/src/MainWindow.cpp index 751d2ee1..3813f1e4 100644 --- a/src/gui/src/MainWindow.cpp +++ b/src/gui/src/MainWindow.cpp @@ -763,14 +763,27 @@ bool MainWindow::clientArgs(QStringList& args, QString& app) } #endif - if (m_pLineEditHostname->text().isEmpty()) { - show(); - QMessageBox::warning( - this, tr("Hostname is empty"), - tr("Please fill in a hostname for the synergy client to connect to.")); - return false; - } + if (m_pLineEditHostname->text().isEmpty()) + { +#ifndef SYNERGY_ENTERPRISE + //check if autoconfig mode is enabled + if (!appConfig().autoConfig()) + { +#endif + show(); + QMessageBox::warning( + this, tr("Hostname is empty"), + tr("Please fill in a hostname for the synergy client to connect to.")); + return false; +#ifndef SYNERGY_ENTERPRISE + } + else + { + return false; + } +#endif + } args << m_pLineEditHostname->text() + ":" + QString::number(appConfig().port()); return true; } From 6870af8eb775a985e3a2e36fa05f930dd3325e37 Mon Sep 17 00:00:00 2001 From: Jamie Newbon Date: Mon, 8 Apr 2019 15:20:56 +0100 Subject: [PATCH 06/22] #6471 Stopped gui locking into retry loop --- src/gui/src/MainWindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/src/MainWindow.cpp b/src/gui/src/MainWindow.cpp index 624d71ba..7e9e8744 100644 --- a/src/gui/src/MainWindow.cpp +++ b/src/gui/src/MainWindow.cpp @@ -932,7 +932,7 @@ void MainWindow::setSynergyState(qSynergyState state) if (synergyState() == state) return; - if ((state == synergyConnected) || (state == synergyConnecting) || (state == synergyListening)) + if ((state == synergyConnected) || (state == synergyListening)) { disconnect (m_pButtonToggleStart, SIGNAL(clicked()), m_pActionStartSynergy, SLOT(trigger())); connect (m_pButtonToggleStart, SIGNAL(clicked()), m_pActionStopSynergy, SLOT(trigger())); From 9bccfb89cca19abe85aca614a860b951c90fa9f7 Mon Sep 17 00:00:00 2001 From: Jnewbon <48688400+Jnewbon@users.noreply.github.com> Date: Fri, 26 Apr 2019 17:17:06 +0100 Subject: [PATCH 07/22] #6486 Added CI solution for automated builds * Added Ubuntu Dockers for 16, 18, and 19 * Added Cirrus CI build task for gcloud instance with SSDs * Added macOS instance build with brew Qt install * Fixed Qt headers for 5.12.2 used in Ubuntu 19.04 * Consolidated version info into CMake file --- .cirrus.yml | 62 +++++++++++++++++++++++++++++++++ CI/MacOS/qtifwsilent.qs | 56 +++++++++++++++++++++++++++++ CI/Windows/build.bat | 6 ++++ CI/Windows/qtifwsilent.qs | 54 ++++++++++++++++++++++++++++ CI/build.sh | 6 ++++ CI/package.sh | 12 +++++++ CI/ubuntu1604.Dockerfile | 24 +++++++++++++ CI/ubuntu1804.Dockerfile | 24 +++++++++++++ CI/ubuntu1904.Dockerfile | 24 +++++++++++++ CMakeLists.txt | 22 +++++++++++- src/gui/src/ActionDialog.cpp | 1 + src/gui/src/ScreenSetupView.cpp | 1 + 12 files changed, 291 insertions(+), 1 deletion(-) create mode 100644 .cirrus.yml create mode 100644 CI/MacOS/qtifwsilent.qs create mode 100644 CI/Windows/build.bat create mode 100644 CI/Windows/qtifwsilent.qs create mode 100644 CI/build.sh create mode 100644 CI/package.sh create mode 100644 CI/ubuntu1604.Dockerfile create mode 100644 CI/ubuntu1804.Dockerfile create mode 100644 CI/ubuntu1904.Dockerfile diff --git a/.cirrus.yml b/.cirrus.yml new file mode 100644 index 00000000..09408928 --- /dev/null +++ b/.cirrus.yml @@ -0,0 +1,62 @@ +gcp_credentials: ENCRYPTED[d3110e2399b82e1d2adb6f9294917064a448a4d102c42c5023815723841db4ff7aa1d0df64a44281ed25b3adbeb08eff] + +windows_task: + gce_instance: + image_project: buildcluster-237411 + image_name: windows2019-vs2017-ramdisk + platform: windows + zone: us-central1-a + type: n1-highcpu-16 + disk: 32 + use_ssd: true + + env: + BONJOUR_SDK_HOME: C:\Program Files\Bonjour SDK\ + CMAKE_PREFIX_PATH: C:\Qt\5.9.5\msvc2017_64 + CIRRUS_WORKING_DIR: D:\ + + build_script: + - .\CI\Windows\build.bat + +ubuntu1604_task: + use_compute_credits: true + container: + dockerfile: CI/ubuntu1604.Dockerfile + build_script: + - pwd; ls -la + - chmod +x ./CI/build.sh + - ./CI/build.sh + +ubuntu1804_task: + use_compute_credits: true + container: + dockerfile: CI/ubuntu1804.Dockerfile + build_script: + - pwd; ls -la + - chmod +x ./CI/build.sh + - ./CI/build.sh + +ubuntu1904_task: + use_compute_credits: true + container: + dockerfile: CI/ubuntu1904.Dockerfile + build_script: + - pwd; ls -la + - chmod +x ./CI/build.sh + - ./CI/build.sh + +macos_task: + use_compute_credits: true + osx_instance: + image: mojave-xcode-10.2 + + env: + PATH: /usr/local/opt/qt/bin:$PATH + + install_script: + - brew install qt + build_script: + - mkdir build + - cd build + - cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.10 -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -DCMAKE_CONFIGURATION_TYPES=$CMAKE_BUILD_TYPE .. + - make diff --git a/CI/MacOS/qtifwsilent.qs b/CI/MacOS/qtifwsilent.qs new file mode 100644 index 00000000..d4069ef3 --- /dev/null +++ b/CI/MacOS/qtifwsilent.qs @@ -0,0 +1,56 @@ +function Controller() { + installer.autoRejectMessageBoxes(); + installer.installationFinished.connect(function() { + gui.clickButton(buttons.NextButton); + }) +} + +Controller.prototype.WelcomePageCallback = function() { + gui.clickButton(buttons.NextButton, 3000); +} + +Controller.prototype.CredentialsPageCallback = function() { + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.IntroductionPageCallback = function() { + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.TargetDirectoryPageCallback = function() +{ + gui.currentPageWidget().TargetDirectoryLineEdit.setText(installer.value("HomeDir") + "/Qt"); + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.ComponentSelectionPageCallback = function() { + var widget = gui.currentPageWidget(); + + widget.deselectAll(); + + widget.selectComponent("qt.595.clang_64") + + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.LicenseAgreementPageCallback = function() { + gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true); + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.StartMenuDirectoryPageCallback = function() { + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.ReadyForInstallationPageCallback = function() +{ + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.FinishedPageCallback = function() { +var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm +if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox) { + checkBoxForm.launchQtCreatorCheckBox.checked = false; +} + gui.clickButton(buttons.FinishButton); +} \ No newline at end of file diff --git a/CI/Windows/build.bat b/CI/Windows/build.bat new file mode 100644 index 00000000..61973076 --- /dev/null +++ b/CI/Windows/build.bat @@ -0,0 +1,6 @@ +SET VS_INSTALL_PATH=C:\"Program Files (x86)"\"Microsoft Visual Studio"\2019\Community\ +call %VS_INSTALL_PATH%Common7\Tools\VsDevCmd.bat +mkdir build +cd build +cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_BUILD_TYPE=Debug .. +msbuild synergy-core.sln /p:Platform="x64" /p:Configuration=Debug /m \ No newline at end of file diff --git a/CI/Windows/qtifwsilent.qs b/CI/Windows/qtifwsilent.qs new file mode 100644 index 00000000..c980892a --- /dev/null +++ b/CI/Windows/qtifwsilent.qs @@ -0,0 +1,54 @@ +function Controller() { + installer.autoRejectMessageBoxes(); + installer.installationFinished.connect(function() { + gui.clickButton(buttons.NextButton); + }) +} + +Controller.prototype.WelcomePageCallback = function() { + gui.clickButton(buttons.NextButton, 3000); +} + +Controller.prototype.CredentialsPageCallback = function() { + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.IntroductionPageCallback = function() { + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.TargetDirectoryPageCallback = function() { + gui.currentPageWidget().TargetDirectoryLineEdit.setText(installer.environmentVariable("QT_INSTALL_DIR")); + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.ComponentSelectionPageCallback = function() { + var widget = gui.currentPageWidget(); + widget.deselectAll(); + widget.selectComponent("qt.595.win32_msvc2015"); + widget.selectComponent("qt.595.win64_msvc2015_64"); + widget.selectComponent("qt.595.qtscript"); + widget.selectComponent("qt.tools.vcredist_msvc2015_x86"); + widget.selectComponent("qt.tools.vcredist_msvc2015_x64"); + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.LicenseAgreementPageCallback = function() { + gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true); + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.StartMenuDirectoryPageCallback = function() { + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.ReadyForInstallationPageCallback = function() { + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.FinishedPageCallback = function() { + var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm; + if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox) + checkBoxForm.launchQtCreatorCheckBox.checked = false; + gui.clickButton(buttons.FinishButton); +} \ No newline at end of file diff --git a/CI/build.sh b/CI/build.sh new file mode 100644 index 00000000..d940c135 --- /dev/null +++ b/CI/build.sh @@ -0,0 +1,6 @@ +pwd +ls -la +mkdir build +cd build +cmake .. +make \ No newline at end of file diff --git a/CI/package.sh b/CI/package.sh new file mode 100644 index 00000000..e5a3fa59 --- /dev/null +++ b/CI/package.sh @@ -0,0 +1,12 @@ +cd ${CIRRUS_WORKING_DIR} + +source ./build/version + +SYNERGY_VERSION="$SYNERGY_VERSION_MAJOR.$SYNERGY_VERSION_MINOR.$SYNERGY_VERSION_PATCH" +SYNERGY_REVISION=`git rev-parse --short=8 HEAD` +SYNERGY_DEB_VERSION="${SYNERGY_VERSION}.${SYNERGY_VERSION_STAGE}~b${BUILD_NUMBER}+${SYNERGY_REVISION}" + +dch --create --package "synergy" --controlmaint --distribution unstable --newversion $SYNERGY_DEB_VERSION "Initial release" + +export DEB_BUILD_OPTIONS="parallel=4" +debuild --preserve-envvar SYNERGY_* --preserve-envvar GIT_COMMIT --preserve-envvar BUILD_NUMBER \ No newline at end of file diff --git a/CI/ubuntu1604.Dockerfile b/CI/ubuntu1604.Dockerfile new file mode 100644 index 00000000..de1b1c64 --- /dev/null +++ b/CI/ubuntu1604.Dockerfile @@ -0,0 +1,24 @@ +# +# Ubuntu Dockerfile +# +# https://github.com/dockerfile/ubuntu +# + +# Pull base image. +FROM ubuntu:16.04 + +# Install. +RUN \ + sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && \ + apt-get update && \ + apt-get install -y git cmake qtbase5-dev build-essential libx11-dev libxtst-dev libgl1-mesa-dev libssl-dev libavahi-compat-libdnssd-dev && \ + apt-get install -y debhelper devscripts + +# Set environment variables. +ENV HOME /root + +# Define working directory. +WORKDIR /root + +# Define default command. +CMD ["bash"] \ No newline at end of file diff --git a/CI/ubuntu1804.Dockerfile b/CI/ubuntu1804.Dockerfile new file mode 100644 index 00000000..733cbbd7 --- /dev/null +++ b/CI/ubuntu1804.Dockerfile @@ -0,0 +1,24 @@ +# +# Ubuntu Dockerfile +# +# https://github.com/dockerfile/ubuntu +# + +# Pull base image. +FROM ubuntu:18.04 + +# Install. +RUN \ + sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && \ + apt-get update && \ + apt-get install -y git cmake qtbase5-dev build-essential libx11-dev libxtst-dev libgl1-mesa-dev libssl-dev libavahi-compat-libdnssd-dev && \ + apt-get install -y debhelper devscripts + +# Set environment variables. +ENV HOME /root + +# Define working directory. +WORKDIR /root + +# Define default command. +CMD ["bash"] \ No newline at end of file diff --git a/CI/ubuntu1904.Dockerfile b/CI/ubuntu1904.Dockerfile new file mode 100644 index 00000000..2e48cf4f --- /dev/null +++ b/CI/ubuntu1904.Dockerfile @@ -0,0 +1,24 @@ +# +# Ubuntu Dockerfile +# +# https://github.com/dockerfile/ubuntu +# + +# Pull base image. +FROM ubuntu:19.04 + +# Install. +RUN \ + sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && \ + apt-get update && \ + apt-get install -y git cmake qtbase5-dev build-essential libx11-dev libxtst-dev libgl1-mesa-dev libssl-dev libavahi-compat-libdnssd-dev && \ + apt-get install -y debhelper devscripts + +# Set environment variables. +ENV HOME /root + +# Define working directory. +WORKDIR /root + +# Define default command. +CMD ["bash"] \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 35bbfabb..bf9eecbe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -336,6 +336,23 @@ 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}) # # macOS app Bundle @@ -346,7 +363,8 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set (SYNERGY_BUNDLE_DIR ${CMAKE_BINARY_DIR}/bundle) set (SYNERGY_BUNDLE_APP_DIR ${SYNERGY_BUNDLE_DIR}/Synergy.app) set (SYNERGY_BUNDLE_BINARY_DIR ${SYNERGY_BUNDLE_APP_DIR}/Contents/MacOS) - + + generate_versionfile() configure_files (${SYNERGY_BUNDLE_SOURCE_DIR} ${SYNERGY_BUNDLE_DIR}) endif() @@ -356,6 +374,7 @@ endif() 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() endif() # @@ -369,6 +388,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") else() install(FILES res/synergy.desktop DESTINATION share/applications) endif() + generate_versionfile() endif() else() diff --git a/src/gui/src/ActionDialog.cpp b/src/gui/src/ActionDialog.cpp index 94950338..2adc7f7a 100644 --- a/src/gui/src/ActionDialog.cpp +++ b/src/gui/src/ActionDialog.cpp @@ -25,6 +25,7 @@ #include #include +#include ActionDialog::ActionDialog(QWidget* parent, ServerConfig& config, Hotkey& hotkey, Action& action) : QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint), diff --git a/src/gui/src/ScreenSetupView.cpp b/src/gui/src/ScreenSetupView.cpp index f26d9700..1f83068f 100644 --- a/src/gui/src/ScreenSetupView.cpp +++ b/src/gui/src/ScreenSetupView.cpp @@ -22,6 +22,7 @@ #include #include +#include ScreenSetupView::ScreenSetupView(QWidget* parent) : QTableView(parent) From a56abf68dd4fd1bfacecfac82841c7210a5d1184 Mon Sep 17 00:00:00 2001 From: Jnewbon <48688400+Jnewbon@users.noreply.github.com> Date: Mon, 29 Apr 2019 13:56:08 +0100 Subject: [PATCH 08/22] #6488 Fixed a memory leak in the TLS socket code --- src/lib/net/SecureSocket.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/lib/net/SecureSocket.cpp b/src/lib/net/SecureSocket.cpp index 43b45e2a..21d9bbdf 100644 --- a/src/lib/net/SecureSocket.cpp +++ b/src/lib/net/SecureSocket.cpp @@ -199,6 +199,7 @@ SecureSocket::doWrite() { static bool s_retry = false; static int s_retrySize = 0; + static int s_staticBufferSize = 0; static void* s_staticBuffer = NULL; // write data @@ -211,8 +212,13 @@ SecureSocket::doWrite() } else { bufferSize = m_outputBuffer.getSize(); - s_staticBuffer = malloc(bufferSize); - memcpy(s_staticBuffer, m_outputBuffer.peek(bufferSize), bufferSize); + if (bufferSize != 0) { + if (bufferSize > s_staticBufferSize) { + s_staticBuffer = realloc(s_staticBuffer, bufferSize); + s_staticBufferSize = bufferSize; + } + memcpy(s_staticBuffer, m_outputBuffer.peek(bufferSize), bufferSize); + } } if (bufferSize == 0) { @@ -224,8 +230,6 @@ SecureSocket::doWrite() if (status > 0) { s_retry = false; bufferSize = 0; - free(s_staticBuffer); - s_staticBuffer = NULL; } else if (status < 0) { return kBreak; From eb620097c097d8e0c49be1e56ca5186c9cbe2858 Mon Sep 17 00:00:00 2001 From: Jamie Newbon Date: Tue, 30 Apr 2019 10:23:07 +0100 Subject: [PATCH 09/22] #6395 Removed direct Qt header includes --- src/gui/src/ActionDialog.cpp | 2 -- src/gui/src/ScreenSetupView.cpp | 2 -- 2 files changed, 4 deletions(-) diff --git a/src/gui/src/ActionDialog.cpp b/src/gui/src/ActionDialog.cpp index 9875b6dd..7518015e 100644 --- a/src/gui/src/ActionDialog.cpp +++ b/src/gui/src/ActionDialog.cpp @@ -25,8 +25,6 @@ #include #include -#include - #include ActionDialog::ActionDialog(QWidget* parent, ServerConfig& config, Hotkey& hotkey, Action& action) : diff --git a/src/gui/src/ScreenSetupView.cpp b/src/gui/src/ScreenSetupView.cpp index b8a901a7..0580cf2d 100644 --- a/src/gui/src/ScreenSetupView.cpp +++ b/src/gui/src/ScreenSetupView.cpp @@ -22,8 +22,6 @@ #include #include -#include - #include ScreenSetupView::ScreenSetupView(QWidget* parent) : From 6f17cb9a31bb81d00073f3af50fd1fa85619c80b Mon Sep 17 00:00:00 2001 From: Jamie Newbon Date: Tue, 30 Apr 2019 11:42:34 +0100 Subject: [PATCH 10/22] #6471 Added Pending retry state --- src/gui/src/MainWindow.cpp | 3 ++- src/gui/src/MainWindow.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gui/src/MainWindow.cpp b/src/gui/src/MainWindow.cpp index 7e9e8744..dc367b95 100644 --- a/src/gui/src/MainWindow.cpp +++ b/src/gui/src/MainWindow.cpp @@ -914,6 +914,7 @@ void MainWindow::synergyFinished(int exitCode, QProcess::ExitStatus) if (m_ExpectedRunningState == kStarted) { QTimer::singleShot(1000, this, SLOT(startSynergy())); appendLogInfo(QString("detected process not running, auto restarting")); + setSynergyState(synergyPendingRetry); } else { setSynergyState(synergyDisconnected); @@ -932,7 +933,7 @@ void MainWindow::setSynergyState(qSynergyState state) if (synergyState() == state) return; - if ((state == synergyConnected) || (state == synergyListening)) + if ((state == synergyConnected) || (state == synergyConnecting) || (state == synergyListening) || (state == synergyPendingRetry)) { disconnect (m_pButtonToggleStart, SIGNAL(clicked()), m_pActionStartSynergy, SLOT(trigger())); connect (m_pButtonToggleStart, SIGNAL(clicked()), m_pActionStopSynergy, SLOT(trigger())); diff --git a/src/gui/src/MainWindow.h b/src/gui/src/MainWindow.h index e267ccf2..035252b9 100644 --- a/src/gui/src/MainWindow.h +++ b/src/gui/src/MainWindow.h @@ -73,7 +73,8 @@ class MainWindow : public QMainWindow, public Ui::MainWindowBase synergyDisconnected, synergyConnecting, synergyConnected, - synergyListening + synergyListening, + synergyPendingRetry }; enum qSynergyType From 7f4ca774445b0d18f2256b7d03cc1ff53171a850 Mon Sep 17 00:00:00 2001 From: Jamie Newbon Date: Tue, 30 Apr 2019 13:12:17 +0100 Subject: [PATCH 11/22] #6471 Fixed ability to stop the retry loop when synergy fails to start --- src/gui/src/MainWindow.cpp | 29 ++++++++++++++++++++++------- src/gui/src/MainWindow.h | 1 + 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/gui/src/MainWindow.cpp b/src/gui/src/MainWindow.cpp index e39d86d7..bbb022c4 100644 --- a/src/gui/src/MainWindow.cpp +++ b/src/gui/src/MainWindow.cpp @@ -66,10 +66,11 @@ static const int debugLogLevel = 1; static const char* synergyIconFiles[] = { - ":/res/icons/16x16/synergy-disconnected.png", - ":/res/icons/16x16/synergy-disconnected.png", - ":/res/icons/16x16/synergy-connected.png", - ":/res/icons/16x16/synergy-transfering.png" + ":/res/icons/16x16/synergy-disconnected.png", //synergyDisconnected + ":/res/icons/16x16/synergy-disconnected.png", //synergyConnecting + ":/res/icons/16x16/synergy-connected.png", //synergyConnected + ":/res/icons/16x16/synergy-transfering.png", //synergyListening + ":/res/icons/16x16/synergy-disconnected.png" //synergyPendingRetry }; #ifdef SYNERGY_ENTERPRISE @@ -441,7 +442,7 @@ void MainWindow::appendLogRaw(const QString& text) void MainWindow::updateFromLogLine(const QString &line) { - // TODO: this code makes Andrew cry + // TODO: This shouldn't be updating from log needs a better way of doing this checkConnected(line); checkFingerprint(line); checkSecureSocket(line); @@ -711,6 +712,16 @@ void MainWindow::startSynergy() } } +void MainWindow::retryStart() +{ + //This function is only called after a failed start + //Only start synergy if the current state is pending retry + if (m_SynergyState == synergyPendingRetry) + { + startSynergy(); + } +} + void MainWindow::sslToggled (bool enabled) { @@ -934,9 +945,10 @@ void MainWindow::synergyFinished(int exitCode, QProcess::ExitStatus) } if (m_ExpectedRunningState == kStarted) { - QTimer::singleShot(1000, this, SLOT(startSynergy())); - appendLogInfo(QString("detected process not running, auto restarting")); + setSynergyState(synergyPendingRetry); + QTimer::singleShot(1000, this, SLOT(retryStart())); + appendLogInfo(QString("detected process not running, auto restarting")); } else { setSynergyState(synergyDisconnected); @@ -998,6 +1010,9 @@ void MainWindow::setSynergyState(qSynergyState state) } case synergyConnecting: setStatus(tr("Synergy is starting...")); + break; + case synergyPendingRetry: + setStatus(tr("There was an error, retrying...")); break; case synergyDisconnected: setStatus(tr("Synergy is not running")); diff --git a/src/gui/src/MainWindow.h b/src/gui/src/MainWindow.h index aaa14dac..1cc737a4 100644 --- a/src/gui/src/MainWindow.h +++ b/src/gui/src/MainWindow.h @@ -139,6 +139,7 @@ public slots: void appendLogDebug(const QString& text); void appendLogError(const QString& text); void startSynergy(); + void retryStart(); // If the connection failed this will retry a startSynergy protected slots: void sslToggled(bool enabled); From 207247b7efe143255d4b57784f67852d55666eb6 Mon Sep 17 00:00:00 2001 From: Jamie Newbon Date: Tue, 30 Apr 2019 15:40:29 +0100 Subject: [PATCH 12/22] #6471 Replaced tabs with spaces --- src/gui/src/MainWindow.cpp | 32 +++++++++++++++---------------- src/lib/platform/XWindowsUtil.cpp | 2 +- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/gui/src/MainWindow.cpp b/src/gui/src/MainWindow.cpp index bbb022c4..ae53493b 100644 --- a/src/gui/src/MainWindow.cpp +++ b/src/gui/src/MainWindow.cpp @@ -66,11 +66,11 @@ static const int debugLogLevel = 1; static const char* synergyIconFiles[] = { - ":/res/icons/16x16/synergy-disconnected.png", //synergyDisconnected - ":/res/icons/16x16/synergy-disconnected.png", //synergyConnecting - ":/res/icons/16x16/synergy-connected.png", //synergyConnected - ":/res/icons/16x16/synergy-transfering.png", //synergyListening - ":/res/icons/16x16/synergy-disconnected.png" //synergyPendingRetry + ":/res/icons/16x16/synergy-disconnected.png", //synergyDisconnected + ":/res/icons/16x16/synergy-disconnected.png", //synergyConnecting + ":/res/icons/16x16/synergy-connected.png", //synergyConnected + ":/res/icons/16x16/synergy-transfering.png", //synergyListening + ":/res/icons/16x16/synergy-disconnected.png" //synergyPendingRetry }; #ifdef SYNERGY_ENTERPRISE @@ -714,12 +714,12 @@ void MainWindow::startSynergy() void MainWindow::retryStart() { - //This function is only called after a failed start - //Only start synergy if the current state is pending retry - if (m_SynergyState == synergyPendingRetry) - { - startSynergy(); - } + //This function is only called after a failed start + //Only start synergy if the current state is pending retry + if (m_SynergyState == synergyPendingRetry) + { + startSynergy(); + } } void @@ -946,7 +946,7 @@ void MainWindow::synergyFinished(int exitCode, QProcess::ExitStatus) if (m_ExpectedRunningState == kStarted) { - setSynergyState(synergyPendingRetry); + setSynergyState(synergyPendingRetry); QTimer::singleShot(1000, this, SLOT(retryStart())); appendLogInfo(QString("detected process not running, auto restarting")); } @@ -967,7 +967,7 @@ void MainWindow::setSynergyState(qSynergyState state) if (synergyState() == state) return; - if ((state == synergyConnected) || (state == synergyConnecting) || (state == synergyListening) || (state == synergyPendingRetry)) + if ((state == synergyConnected) || (state == synergyConnecting) || (state == synergyListening) || (state == synergyPendingRetry)) { disconnect (m_pButtonToggleStart, SIGNAL(clicked()), m_pActionStartSynergy, SLOT(trigger())); connect (m_pButtonToggleStart, SIGNAL(clicked()), m_pActionStopSynergy, SLOT(trigger())); @@ -1010,9 +1010,9 @@ void MainWindow::setSynergyState(qSynergyState state) } case synergyConnecting: setStatus(tr("Synergy is starting...")); - break; - case synergyPendingRetry: - setStatus(tr("There was an error, retrying...")); + break; + case synergyPendingRetry: + setStatus(tr("There was an error, retrying...")); break; case synergyDisconnected: setStatus(tr("Synergy is not running")); diff --git a/src/lib/platform/XWindowsUtil.cpp b/src/lib/platform/XWindowsUtil.cpp index cfef8cf4..59e26b52 100644 --- a/src/lib/platform/XWindowsUtil.cpp +++ b/src/lib/platform/XWindowsUtil.cpp @@ -1303,7 +1303,7 @@ XWindowsUtil::getWindowProperty(Display* display, Window window, int actualDatumSize; // ignore errors. XGetWindowProperty() will report failure. - XWindowsUtil::ErrorLock lock(display); + // XWindowsUtil::ErrorLock lock(display); // read the property bool okay = true; From 6c6e2b6bd3d7b6623471505293ad7c2b3bc447d1 Mon Sep 17 00:00:00 2001 From: Jamie Newbon Date: Tue, 30 Apr 2019 15:49:23 +0100 Subject: [PATCH 13/22] #6471 Reverted accidental change and fixed more tabs --- src/gui/src/MainWindow.h | 4 ++-- src/lib/platform/XWindowsUtil.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/src/MainWindow.h b/src/gui/src/MainWindow.h index 1cc737a4..f4df8f4b 100644 --- a/src/gui/src/MainWindow.h +++ b/src/gui/src/MainWindow.h @@ -74,7 +74,7 @@ class MainWindow : public QMainWindow, public Ui::MainWindowBase synergyConnecting, synergyConnected, synergyListening, - synergyPendingRetry + synergyPendingRetry }; enum qSynergyType @@ -139,7 +139,7 @@ public slots: void appendLogDebug(const QString& text); void appendLogError(const QString& text); void startSynergy(); - void retryStart(); // If the connection failed this will retry a startSynergy + void retryStart(); // If the connection failed this will retry a startSynergy protected slots: void sslToggled(bool enabled); diff --git a/src/lib/platform/XWindowsUtil.cpp b/src/lib/platform/XWindowsUtil.cpp index 59e26b52..cfef8cf4 100644 --- a/src/lib/platform/XWindowsUtil.cpp +++ b/src/lib/platform/XWindowsUtil.cpp @@ -1303,7 +1303,7 @@ XWindowsUtil::getWindowProperty(Display* display, Window window, int actualDatumSize; // ignore errors. XGetWindowProperty() will report failure. - // XWindowsUtil::ErrorLock lock(display); + XWindowsUtil::ErrorLock lock(display); // read the property bool okay = true; From 751fcffc873ff7276604a30680e91b9dca3b59ce Mon Sep 17 00:00:00 2001 From: Yuri Date: Sat, 24 Feb 2018 18:15:30 -0800 Subject: [PATCH 14/22] #6373 Fixed compile error on BSD. Cherry picked from 94eb69eb --- src/lib/arch/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/arch/CMakeLists.txt b/src/lib/arch/CMakeLists.txt index e7b755be..3bc0ccc2 100644 --- a/src/lib/arch/CMakeLists.txt +++ b/src/lib/arch/CMakeLists.txt @@ -40,5 +40,5 @@ endif() add_library(arch STATIC ${sources}) if (UNIX) - target_link_libraries(arch dl ${libs}) + target_link_libraries(arch ${CMAKE_DL_LIBS} ${libs}) endif() From 55dd155e567a21c8be3282c7a3ffff8f29bf69d8 Mon Sep 17 00:00:00 2001 From: Nick Bolton Date: Fri, 3 May 2019 13:35:39 +0100 Subject: [PATCH 15/22] Merged master into v1-dev --- ChangeLog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ChangeLog b/ChangeLog index db590ffb..b31c9fe1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -474,4 +474,7 @@ 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 +<<<<<<< HEAD +======= +>>>>>>> 2d76a4c5... Create ChangeLog From baa913b1ac067119252931b8c31f94b00dc9b107 Mon Sep 17 00:00:00 2001 From: Nick Bolton Date: Fri, 3 May 2019 13:35:39 +0100 Subject: [PATCH 17/22] Create ChangeLog --- ChangeLog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ChangeLog b/ChangeLog index b31c9fe1..828853c0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -475,6 +475,9 @@ Task #2905: Unit tests: Clipboard classes Task #3072: Downgrade Linux build machines Task #3090: CXWindowsKeyState integ test args wrong <<<<<<< HEAD +<<<<<<< HEAD ======= >>>>>>> 2d76a4c5... Create ChangeLog +======= +>>>>>>> 2d76a4c5... Create ChangeLog From 8dcb63d3c01b773a7430fd72fbbef30574cc40f1 Mon Sep 17 00:00:00 2001 From: Nick Bolton Date: Fri, 3 May 2019 13:51:28 +0100 Subject: [PATCH 18/22] Delete ChangeLog --- ChangeLog | 483 ------------------------------------------------------ 1 file changed, 483 deletions(-) delete mode 100644 ChangeLog diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index 828853c0..00000000 --- a/ChangeLog +++ /dev/null @@ -1,483 +0,0 @@ -v1.10.1-stable -============== - -Bug fixes: -- #6339 Windows validating install step freezes -- #6374 Windows background service crashes randomly -- #6376 Undeclared identifier compile error in VS2017 - -Enhancements: -- #6372 Forced use of TLS 1.2 without fallback method -- #6338 Auto config checkbox on settings screen -- #6384 Removal of GPL screen on Windows installer -- #6383 Extend foreground mode for Windows daemon -- #6382 Code comment for MSVC debugger logging -- #6380 Compile without warnings using VS2017 - -v1.10.0-stable -============== - -Bug fixes: -- #6347 Log to file defaults to unwritable location -- #6345 Losing GUI config when restarting the OS -- #4991 Oversized Bonjour protocol name could conflict - -Enhancements: -- #6348 Use different hard coded Qt path for CI -- #6346 CLI argument to control screen lock feature -- #6344 Customizable size limit on clipboard sharing -- #6332 Decouple version from CI build properties -- #6319 Bonjour auto-config disabled by default -- #6318 Hide TIS/TSM error on config app log -- #6312 Removal of redundant CURL library -- #6306 Show version number in config app title -- #6305 Support for Raspbian in package config -- #6301 Combine enterprise and community codebases - -v1.9.1-stable -============= - -Bug fix: -- #5964 Can't click after sleep on Mac client - -Enhancements: -- #6310 More robust macOS screen shape detection -- #6309 Update OpenSSL to v1.0.2o for better security - -v1.9.0-stable -============= - -Bug fixes: -- #6251 Service hangs after GUI is opened -- #5844 Icon causes Linux package manager to fail -- #4132 Laggy mouse cursor on macOS clients - -Enhancements: -- #6116 Quieter quartz event log entry on Mac -- #6037 Solve defects reported by PVS Studio -- #6014 Code sign binaries on Windows -- #6012 Jenkins integration for Ubuntu -- #5836 Jenkins integration for macOS -- #5834 Jenkins integration for Fedora -- #5390 Allow tests to be skipped during build -- #5389 Qt 5 library support for config app -- #5019 Raspbian armhf support for Raspberry Pi -- #4978 Visual Studio 2015 support on Windows 10 -- #4154 IPv6 support for Windows and Linux - -v1.8.8-stable -============= -Bug #5196 - Some keys on Korean and Japanese keyboards have the same keycode -Bug #5578 - Pressing Hangul key results in alt+'a' -Bug #5785 - Can't switch screens when cursor is in a corner -Bug #3992 - macOS: Dragging is broken in Unity 3D -Bug #5075 - macOS: Build fails on macOS 10.9 due to unknown compiler flag -Bug #5809 - macOS: No version number is shown in the App Info dialog -Bug #3197 - Linux: switchDoubleTap option is not working -Bug #4477 - Linux: Mouse buttons higher than id 10 result in crash -Bug #5832 - Linux: Screen size misdetected on multi-monitor display -Enhancement #4504 - Improved Korean language description -Enhancement #5525 - Added support for precise screen positioning in config file -Enhancement #4290 - Windows: Removed annoying alt+print screen functionality - -v1.8.7-stable -============= -Bug #5784 - Edition changes when reopening GUI - -v1.8.6-stable -============= -Bug #5592 - Some keys don't work for macOS Sierra clients -Bug #5186 - Cursor stuck on client when using multi-DPI server -Bug #5722 - Malformed serial key in registry will crash GUI on startup -Bug #5752 - Tab order is incorrect on Settings dialog -Enhancement #5699 - Unified installers on macOS -Feature #4836 - macOS Sierra build - -v1.8.5-stable -============= -Bug #5680 - Server crashes when disconnecting SSL clients -Bug #5626 - Build fails using Xcode 8 and macOS SDK 10.12 -Feature #5657 - Trial version support -Feature #5707 - User upgrade statistics - -v1.8.4-stable -============= -Bug #5183 - Slowly moving the cursor has no effect on high DPI clients -Bug #4041 - UHD/4K DPI scaling broken on Windows servers -Bug #4420 - When XRandR adds a screen, it is inaccessible -Bug #5603 - Activation notification depends on existence of /etc/os-release -Bug #5624 - Update notification sometimes requests a downgrade -Bug #5329 - Current date is shown for build date in the about dialog -Enhancement #5617 - Remove redundant plugin infrastructure -Enhancement #5627 - Move SSL certificate generation to main window -Enhancement #5628 - Move SSL implementation into core binary -Enhancement #5629 - Move activation from wizard into new dialog window - -v1.8.3-stable -============= -Bug #2765 - A letter appears on macOS clients when the spacebar is pressed -Bug #3241 - Windows UAC disconnects clients when elevated -Bug #4740 - Linux client crashes with "Assertion '!m_open' failed" -Bug #4879 - Memory leak caused by IpcReader -Bug #5373 - Tab behaves like shift tab on client -Bug #5502 - Copy and paste from server to client doesn't work -Enhancement #123 - Option to disable clipboard sharing -Enhancement #3305 - Media key support on macOS -Enhancement #4323 - Make automatic elevation on Windows optional - -v1.8.2-stable -============= -Bug #3044 - Unable to drag-select in MS Office -Bug #4768 - Copy paste causes 'server is dead' error on switching -Bug #4792 - Server logging crashes when switching with clipboard data -Bug #2975 - Middle click does not close Chrome tab on Mac client -Bug #5087 - Linux client fails to start due to invalid cursor size -Bug #5471 - Serial key textbox on activation screen overflows on Mac -Bug #4836 - Stop button resets to Start when settings dialog canceled -Enhancement #5277 - Auto restart service when synwinhk.dll fails on Windows -Enhancement #4913 - Future-proof GUI login by using newer auth URL -Enhancement #4922 - Add --enable-crypto argument to help text -Enhancement #5299 - High resolution App icon on Mac -Enhancement #4894 - Improve grammar in connection notification dialog - -v1.8.1-stable -============= -Bug #5461 - GUI crash during activation on Mac - -v1.8.0-beta -============= -Enhancement #4696 - Include 'ns' plugin in installers (instead of wizard download) -Enhancement #4715 - Activation dialog which also accepts a serial key -Enhancement #5020 - Recommend using serial key when online activation fails -Enhancement #4893 - Show detailed version info on GUI about screen -Enhancement #4327 - GUI setting to disable drag and drop feature -Enhancement #4793 - Additional logging to output OpenSSL version -Enhancement #4932 - Notify activation system when wizard finishes -Enhancement #4716 - Allow software to be time limited with serial key - -v1.7.6-stable -============= -Bug #451 - Fast cursor on any client with Mac server -Bug #5041 - Copying from the Chrome web browser doesn't work -Bug #4735 - Clipboard doesn't work from client to server -Bug #2909 - Clipboard copies only plaintext between Mac and Windows -Bug #4353 - Large clipboard causes crash -Bug #3774 - Missing MinGW dependencies after install on Windows -Bug #4723 - Waiting for active desktop result freezes Windows service - -v1.7.5-stable -============= -Bug #5030 - Display scaling breaks edge detection on Windows -Bug #5064 - Compile fails on Mac OS X 10.11 (unused typedef) - -v1.7.4-stable -============= -Bug #4721 - High CPU usage for Windows service -Bug #4750 - SSL connect error 'passive ssl error limit' -Bug #4584 - Drag and drop with SSL causes crash -Bug #4749 - Clipboard thread race condition causes assertion failure -Bug #4720 - Plugin download shows 'Could not get Linux package type' error -Bug #4712 - Unable to send clipboard with size above 1KB when using SSL -Bug #4642 - Connecting causes SSL23_GET_SERVER_HELLO error -Bug #4690 - Log line 'activeDesktop' does not use logging system -Bug #4866 - Wrong ns plugin version can be loaded -Enhancement #4901 - Auto restart when running from GUI in desktop mode -Enhancement #4845 - Add timestamp to log output -Enhancement #4898 - Move version stage name to build config - -v1.7.3-stable -============= -Bug #4565 - Incorrect plugin downloads on Debian and Mint -Bug #4677 - Windows service log file grows to very large size -Bug #4651 - High logging rate causes Windows service to crash -Bug #4650 - SSL error log message repeats excessively and freezes cursor -Bug #4624 - Runaway logging causes GUI to freeze -Bug #4617 - Windows service randomly stops after 'ssl handshake failure' error -Bug #4601 - Large clipboard data with SSL causes 'protocol is shutdown' error -Bug #4593 - Locking Windows server causes SSL_ERROR_SSL to repeat -Bug #4577 - Memory leak in GUI on Windows caused by logging -Bug #4538 - Windows service crashes intermittently with no error -Bug #4341 - GUI freezes on first load when reading log -Bug #4566 - Client or server crashes with 'ssl handshake failure' error -Bug #4706 - Installer is not output to build config dir on Windows -Bug #4704 - Plugin 'ns' release build is overwritten with debug version on Linux -Bug #4703 - Plugins are not built to config directory on Mac -Bug #4697 - Timing can allow an SSL socket to be used after cleanup call -Enhancement #4661 - Log error but do not crash when failing to load plugins -Enhancement #4708 - Download ns plugin for specific Mac versions -Enhancement #4587 - Include OpenSSL binaries in source for easier building -Enhancement #4695 - Automatically upload plugins as Buildbot step - -v1.7.2-stable -============= -Bug #4564 - Modifier keys often stuck down on Mac client -Bug #4581 - Starting GUI on Mac crashes instantly on syntool segfault -Bug #4520 - Laggy or sluggish cursor (ping spikes) on Mac when using WiFi -Bug #4607 - GUI doesn't start after install on Windows -Enhancement #4412 - Automate extract and compile for OpenSSL -Enhancement #4567 - SSL plugin should use TLSv1_method() minimum -Enhancement #4591 - Revert to legacy Mac deployment and signing -Enhancement #4569 - Reintroduce GUI auto-hide setting (disabled by default) -Enhancement #4570 - Make `--crypto-pass` show deprecated message -Enhancement #4596 - Typo 'occurred' in WebClient.cpp - -v1.7.1-stable -============= -Bug #3784 - Double click & drag doesn't select words on client -Bug #3052 - Triple-click (select line) does not work -Bug #4367 - Duplicate Alt-S Keyboard Shortcuts on Gui -Bug #4554 - Server unable to accept new SSL connection -Bug #4553 - SSL handshake failure error causes GUI to crash -Bug #4551 - Plugin wizard doesn't create SSL directory -Bug #4548 - Severe code duplication in fingerprint logic -Bug #4547 - Windows server crashes when client fingerprint dialog open -Bug #4539 - Mac client dies when server has SSL_ERROR_SSL -Bug #4537 - Plugin wizard doesn't complete but finish button enabled -Bug #4535 - Server crashes on shut down after multiple connections failed -Bug #4528 - Error SSL_ERROR_SSL is logged on unknown error -Bug #4527 - Server fingerprint dialog on client GUI keeps showing -Bug #4469 - GUI crashes on Windows when generating certificate -Bug #4410 - SSL_ERROR_SSL (unknown protocol) on Mac client -Bug #4409 - SSL_ERROR_SSL (unknown alert type) on Windows 8.1 client -Bug #4557 - GUI doesn't show local fingerprint on fresh install -Enhancement #4522 - SSL server fingerprint verification from client -Enhancement #4526 - Display local fingerprint on server GUI -Enhancement #4549 - Extract SSL certificate and fingerprint generate function -Enhancement #4546 - Redistribute OpenSSL on Windows with installer -Enhancement #4540 - Enable Network Security checkbox only when ns plugin exists -Enhancement #4525 - Reorganize app data directory -Enhancement #4390 - Disable GUI auto-hide by default - -v1.7.0-beta -=========== -Enhancement #4313 - SSL encrypted secure connection -Enhancement #4168 - Plugin manager for GUI -Enhancement #4307 - Always show client auto-detect dialog -Enhancement #4397 - Modernize Mac build script (deployment and signing) -Enhancement #4398 - Remove obsolete Mac database cleaner -Enhancement #4337 - Remove IStreamFilterFactory dead code - -1.6.3 -===== -Bug #4349 - Mouse click does not always bring window to front -Bug #4463 - Unidentified developer error on Mac OS X -Bug #4464 - Code signing verify failure not reported on Mac build -Bug #4465 - Binary (syntool) is not code signed on Windows -Enhancement #4455 - Replace version with branch name in package filename - -1.6.2 -===== -Bug #4227 - Helper tool crashes when service checks elevation state -Bug #4091 - Zeroconf on server advertises bogus IP address -Bug #4249 - Drag file causes client crash on Mac (10.10) -Enhancement #4196 - Optional Bonjour requirement for Windows -Enhancement #4235 - Automatic Bonjour download and install -Enhancement #4218 - Auto-config available servers combo box -Enhancement #4230 - More user friendly dialog when client is detected -Enhancement #4240 - Minimize auto config message box usage -Enhancement #4247 - Firewall exception for GUI (needed for Bonjour) -Enhancement #4242 - Consistent naming for auto config feature - -1.6.1 -===== -Bug #4002 - Carbon loop not ready within 5 sec -Bug #4191 - Accessibility helper tool crashes -Bug #4149 - Mac 10.9.5 or 10.10 gatekeeper blocks Synergy -Bug #4139 - Exception thrown when ProcessIdToSessionId() fails -Bug #4055 - Shift keys are not sent to clients (Win 8.1 server) -Bug #4021 - Copy & paste not working for EFL applications -Bug #3749 - Linux Chrome hover doesn't work -Bug #4128 - Daemon logging not written with "log to file" -Enhancement #4122 - Enable drag and drop by default -Enhancement #4158 - Build for Mac OS X 10.10 -Enhancement #4130 - Auto elevate for Windows UAC and screen lock -Enhancement #4126 - 64-bit support for OS X -Enhancement #4141 - DMRM message support for μSynergy -Enhancement #4124 - More robust argument parsing - -1.6.0 -===== -Feature #65 - Auto config feature using Zeroconf/Bonjour - -1.5.1 -===== -Bug #3307 - Configuration file paths containing spaces don't work -Bug #3404 - Log path needs to be in quotes on windows -Bug #3996 - Installer fails when Windows Firewall is disabled - -1.5.0 -===== -Bug #4060 - Key stuck down on Windows server -Bug #4061 - Windows server repeats modifier keys - -1.4.18 -====== -Bug #3980 - Shell extension DLL causes explorer.exe to crash -Task #4049 - Correct code style in OSXKeyState compilation unit -Task #4050 - Fix subversion issue tracker URL -Task #4053 - Improve deb package quality -Task #4054 - Improve rpm package quality - -1.4.17 -====== -Bug #2836 - Unable to begin screen name or alias with numbers -Bug #3796 - Some files being unintentionally dragged (including explorer.exe) -Bug #3886 - Alias is allowed to match screen name -Bug #3919 - RPM install fails on Fedora 20, failed dependencies: libcurl -Bug #3921 - Error: synwinxt.dll outdated (upgrading from 1.4.15 to 1.4.16) -Bug #3927 - Mavericks accessibility exception not working (when upgrading from 1.4.15 to 1.4.16) -Bug #3933 - Plus signs in the email address cause premium login to fail -Bug #3939 - Compile fails on ARM (Raspberry Pi) because of cryptopp/Crypto++ lib -Bug #3947 - Conflicts when using yum localinstall on Fedora 20 -Bug #3959 - Premium title doesn't always show on first login -Bug #3968 - GUI auto-hides on initial first install (with no config) -Task #3936 - Change installer to WiX for improved file upgrade process -Task #3950 - Poll modifier after key down on Mac OS X and log results -Task #3951 - Clear filename stored in synwinxt on mouse up -Task #3952 - Make Premium wizard page cleaner -Task #3953 - Inherit XArch and XBase from std::exception -Task #3954 - Make "lock to screen" log message go to NOTE level instead of DEBUG -Task #3960 - Split CMSWindowsHookLibraryLoader into hook and shellex loaders -Task #3961 - Remove Windows 95 support -Task #3963 - Disable failing Linux unit/integ tests on Fedora 20 32-bit (valgrind SIGILL) -Task #3964 - Make Premium login error more verbose -Task #3969 - Merge String.cpp and StringUtil.cpp - -1.4.16 -====== -Bug #3338 - Alt tab not working with Windows 8 -Bug #3642 - Failed to start server on Mac OS X 10.9 Mavericks, assistive devices problem -Bug #3785 - Synwinxt.dll error opening file for writing during install of 1.4.15 -Bug #3787 - Wont automatically load after login on OS X -Bug #3788 - Configuration wizard: Premium login fails when behind a proxy -Bug #3796 - Some files being unintentionally dragged (including explorer.exe) -Bug #3799 - Synergy Client on Fedora crashes on drag/drop operations -Bug #3818 - Client freezes on Mac OS 10.6.8 -Bug #3874 - Premium GUI login is case sensitive for email -Bug #3911 - Drag and drop error on OS X 10.9 Mavericks - -1.4.15 -====== -Bug #3765 - Synergy Service - Error 87: The parameter is incorrect. -Bug #3781 - Option not supported on Linux: --enable-drag-drop (server not starting) - -1.4.14 -====== -Bug #3287 - Mac does not wake up -Bug #3758 - Unstable service (synergyd) -Bug #3759 - Exploit: C:\Program.exe (if it exists) is run by service (elevated) -Bug #3760 - Encryption broken (GCM, CTR and OFB) -Bug #3761 - Start button is visible when Synergy is running -Bug #3762 - Apply button is disabled for Mac and Linux -Feature #46 - Drag and drop between computers (Windows and Mac) - -1.4.13 -====== -Version not released, unstable. - -1.4.12 -====== -Bug #3565 - Encryption fails when typing fast (Invalid message from client) -Bug #3606 - GUI is elevated after setup -Bug #3572 - Mac caps lock causes disconnect - -1.4.11 -====== -Feature #12 - Encryption -Feature #421 - Portable version -Bug #2855 - Mouse cursor remains hidden on Mac client (intermittently/randomly) -Bug #3281 - server start on OS X defaults to 'interactive' -Bug #3310 - P&ort in settings screen - -1.4.10 -====== -Bug #2799 - Right shift broken (Windows server, Mac OS X client) -Bug #3302 - GUI does not show/hide when tray icon is double clicked (Windows) -Bug #3303 - Mac OS X IPC integ test fails intermittently -Feature #2974 - Gesture Support for Magic Mouse/Trackpad -Feature #3172 - Button to stop Synergy when in service mode -Feature #3241 - Option to elevate synergyc/s when in service mode -Feature #3242 - Show a list of available IP addresses and screen name on the main screen -Feature #3296 - 64-bit Windows installer should display helpful message on 32-bit Windows -Feature #3300 - Make service mode default mode (now that we have elevate option) -Feature #3301 - Add process mode option to settings (remove startup wizard page) -Feature #3306 - Gatekeeper compatibility on Mac OS X 10.8 - -1.4.9 -===== -Bug #3159 - In service mode, server doesn't start unless GUI is running -Bug #3214 - Client sometimes can't connect if GUI is closed -Bug #56 - Mac OS X server not sending keystrokes to client -Bug #3161 - First time GUI appears, service doesn't send logging -Bug #3164 - In service mode, you need to add a firewall exception -Bug #3166 - Service shutdown stalls when GUI is closed -Bug #3216 - Fatal error if plugins folder doesn't exist -Bug #3221 - ERROR: could not connect to service, error: 2 -Feature #3192 - Add support for JOYINFOEX structure to poll game device info -Feature #3202 - Plugin support (sending for primary screen events on Windows only) -Feature #3155 - Cross-platform TCP IPC between GUI and service -Task #3177 - Fix Mac buildslave to build multiple versions -Task #3193 - Add Micro Synergy to repository -Task #3275 - Change hostname label to "IP address or hostname" -Task #3276 - Installation recovery mechanism for synrgyhk.dll - -1.4.8 -===== -Bug #143: Cursor on Mac OS X goes to center when inactive -Bug #146: Screen Resize causes problems with moving off right-hand side of screen -Bug #3058: Modifier keys not working on Mac OS X server -Bug #3139: Double click too strict (click, move, click should not count) -Bug #3195: Service install can fail first time -Bug #3196: Wizard buttons not visible -Bug #3197: GUI doesn't take focus after install -Bug #3202: Hook DLL (synrgyhk.dll) is not released -Feature #3143: Setup wizard for first time users -Feature #3145: Check for updates -Feature #3174: Startup mode wizard page -Feature #3184: New service for process management - -1.4.7 -===== -Bug #3132: GUI hides before successful connection -Bug #3133: Can't un-hide GUI on Mac -Feature #3054: Hide synergy[cs] dock icon (Mac OS X) -Feature #3135: Integrate log into main window -Task #3134: Move hotkey warnings to DEBUG - -1.4.6 -===== -Bug #155: Build error on FreeBSD (missing sentinel in function call) -Bug #571: Synergy SegFaults with "Unknown Quartz Event type: 0x1d" -Bug #617: xrandr rotation on client confines cursor in wrong area -Bug #642: `synergyc --help` segfaults on sparc64 architecture -Bug #652: Stack overflow in getIDForKey -Bug #1071: Can't copy from the Firefox address bar on Linux -Bug #1662: Copying text from remote computer crashes java programs. -Bug #1731: YouTube can cause server to freeze randomly -Bug #2752: Use SAS for ctrl+alt+del on win7 -Bug #2763: Double-click broken on Mac OS -Bug #2817: Keypad Subtract has wrong keycode on OS X -Bug #2958: GNOME 3 mouse problem (gnome-shell) -Bug #2962: Clipboard not working on mac client -Bug #3063: Segfault in copy buffer -Bug #3066: Server segfault on clipboard paste -Bug #3089: Comma and Period translated wrong when using the NEO2-layout -Bug #3092: Wrong screen rotation detected -Bug #3105: There doesn't seem to be a system tray available. Quitting -Bug #3116: Memory Leak due to the XInput2 patches -Bug #3117: Dual monitors not detected properly anymore -Feature #3073: Re-introduce auto-start GUI (Windows) -Feature #3076: Re-introduce auto-start backend -Feature #3077: Re-introduce hidden on start -Feature #3091: Add option to remap altgr modifier -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 -<<<<<<< HEAD -<<<<<<< HEAD - -======= ->>>>>>> 2d76a4c5... Create ChangeLog -======= ->>>>>>> 2d76a4c5... Create ChangeLog From 667d79263d5162dcd4198c18099d5a63477f4f88 Mon Sep 17 00:00:00 2001 From: Nick Bolton Date: Fri, 3 May 2019 13:35:39 +0100 Subject: [PATCH 19/22] Create ChangeLog --- ChangeLog | 476 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 476 insertions(+) create mode 100644 ChangeLog diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 00000000..c9ec3b89 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,476 @@ +v1.10.1-stable +============== + +Bug fixes: +- #6339 Windows validating install step freezes +- #6374 Windows background service crashes randomly +- #6376 Undeclared identifier compile error in VS2017 + +Enhancements: +- #6372 Forced use of TLS 1.2 without fallback method +- #6338 Auto config checkbox on settings screen +- #6384 Removal of GPL screen on Windows installer +- #6383 Extend foreground mode for Windows daemon +- #6382 Code comment for MSVC debugger logging +- #6380 Compile without warnings using VS2017 + +v1.10.0-stable +============== + +Bug fixes: +- #6347 Log to file defaults to unwritable location +- #6345 Losing GUI config when restarting the OS +- #4991 Oversized Bonjour protocol name could conflict + +Enhancements: +- #6348 Use different hard coded Qt path for CI +- #6346 CLI argument to control screen lock feature +- #6344 Customizable size limit on clipboard sharing +- #6332 Decouple version from CI build properties +- #6319 Bonjour auto-config disabled by default +- #6318 Hide TIS/TSM error on config app log +- #6312 Removal of redundant CURL library +- #6306 Show version number in config app title +- #6305 Support for Raspbian in package config +- #6301 Combine enterprise and community codebases + +v1.9.1-stable +============= + +Bug fix: +- #5964 Can't click after sleep on Mac client + +Enhancements: +- #6310 More robust macOS screen shape detection +- #6309 Update OpenSSL to v1.0.2o for better security + +v1.9.0-stable +============= + +Bug fixes: +- #6251 Service hangs after GUI is opened +- #5844 Icon causes Linux package manager to fail +- #4132 Laggy mouse cursor on macOS clients + +Enhancements: +- #6116 Quieter quartz event log entry on Mac +- #6037 Solve defects reported by PVS Studio +- #6014 Code sign binaries on Windows +- #6012 Jenkins integration for Ubuntu +- #5836 Jenkins integration for macOS +- #5834 Jenkins integration for Fedora +- #5390 Allow tests to be skipped during build +- #5389 Qt 5 library support for config app +- #5019 Raspbian armhf support for Raspberry Pi +- #4978 Visual Studio 2015 support on Windows 10 +- #4154 IPv6 support for Windows and Linux + +v1.8.8-stable +============= +Bug #5196 - Some keys on Korean and Japanese keyboards have the same keycode +Bug #5578 - Pressing Hangul key results in alt+'a' +Bug #5785 - Can't switch screens when cursor is in a corner +Bug #3992 - macOS: Dragging is broken in Unity 3D +Bug #5075 - macOS: Build fails on macOS 10.9 due to unknown compiler flag +Bug #5809 - macOS: No version number is shown in the App Info dialog +Bug #3197 - Linux: switchDoubleTap option is not working +Bug #4477 - Linux: Mouse buttons higher than id 10 result in crash +Bug #5832 - Linux: Screen size misdetected on multi-monitor display +Enhancement #4504 - Improved Korean language description +Enhancement #5525 - Added support for precise screen positioning in config file +Enhancement #4290 - Windows: Removed annoying alt+print screen functionality + +v1.8.7-stable +============= +Bug #5784 - Edition changes when reopening GUI + +v1.8.6-stable +============= +Bug #5592 - Some keys don't work for macOS Sierra clients +Bug #5186 - Cursor stuck on client when using multi-DPI server +Bug #5722 - Malformed serial key in registry will crash GUI on startup +Bug #5752 - Tab order is incorrect on Settings dialog +Enhancement #5699 - Unified installers on macOS +Feature #4836 - macOS Sierra build + +v1.8.5-stable +============= +Bug #5680 - Server crashes when disconnecting SSL clients +Bug #5626 - Build fails using Xcode 8 and macOS SDK 10.12 +Feature #5657 - Trial version support +Feature #5707 - User upgrade statistics + +v1.8.4-stable +============= +Bug #5183 - Slowly moving the cursor has no effect on high DPI clients +Bug #4041 - UHD/4K DPI scaling broken on Windows servers +Bug #4420 - When XRandR adds a screen, it is inaccessible +Bug #5603 - Activation notification depends on existence of /etc/os-release +Bug #5624 - Update notification sometimes requests a downgrade +Bug #5329 - Current date is shown for build date in the about dialog +Enhancement #5617 - Remove redundant plugin infrastructure +Enhancement #5627 - Move SSL certificate generation to main window +Enhancement #5628 - Move SSL implementation into core binary +Enhancement #5629 - Move activation from wizard into new dialog window + +v1.8.3-stable +============= +Bug #2765 - A letter appears on macOS clients when the spacebar is pressed +Bug #3241 - Windows UAC disconnects clients when elevated +Bug #4740 - Linux client crashes with "Assertion '!m_open' failed" +Bug #4879 - Memory leak caused by IpcReader +Bug #5373 - Tab behaves like shift tab on client +Bug #5502 - Copy and paste from server to client doesn't work +Enhancement #123 - Option to disable clipboard sharing +Enhancement #3305 - Media key support on macOS +Enhancement #4323 - Make automatic elevation on Windows optional + +v1.8.2-stable +============= +Bug #3044 - Unable to drag-select in MS Office +Bug #4768 - Copy paste causes 'server is dead' error on switching +Bug #4792 - Server logging crashes when switching with clipboard data +Bug #2975 - Middle click does not close Chrome tab on Mac client +Bug #5087 - Linux client fails to start due to invalid cursor size +Bug #5471 - Serial key textbox on activation screen overflows on Mac +Bug #4836 - Stop button resets to Start when settings dialog canceled +Enhancement #5277 - Auto restart service when synwinhk.dll fails on Windows +Enhancement #4913 - Future-proof GUI login by using newer auth URL +Enhancement #4922 - Add --enable-crypto argument to help text +Enhancement #5299 - High resolution App icon on Mac +Enhancement #4894 - Improve grammar in connection notification dialog + +v1.8.1-stable +============= +Bug #5461 - GUI crash during activation on Mac + +v1.8.0-beta +============= +Enhancement #4696 - Include 'ns' plugin in installers (instead of wizard download) +Enhancement #4715 - Activation dialog which also accepts a serial key +Enhancement #5020 - Recommend using serial key when online activation fails +Enhancement #4893 - Show detailed version info on GUI about screen +Enhancement #4327 - GUI setting to disable drag and drop feature +Enhancement #4793 - Additional logging to output OpenSSL version +Enhancement #4932 - Notify activation system when wizard finishes +Enhancement #4716 - Allow software to be time limited with serial key + +v1.7.6-stable +============= +Bug #451 - Fast cursor on any client with Mac server +Bug #5041 - Copying from the Chrome web browser doesn't work +Bug #4735 - Clipboard doesn't work from client to server +Bug #2909 - Clipboard copies only plaintext between Mac and Windows +Bug #4353 - Large clipboard causes crash +Bug #3774 - Missing MinGW dependencies after install on Windows +Bug #4723 - Waiting for active desktop result freezes Windows service + +v1.7.5-stable +============= +Bug #5030 - Display scaling breaks edge detection on Windows +Bug #5064 - Compile fails on Mac OS X 10.11 (unused typedef) + +v1.7.4-stable +============= +Bug #4721 - High CPU usage for Windows service +Bug #4750 - SSL connect error 'passive ssl error limit' +Bug #4584 - Drag and drop with SSL causes crash +Bug #4749 - Clipboard thread race condition causes assertion failure +Bug #4720 - Plugin download shows 'Could not get Linux package type' error +Bug #4712 - Unable to send clipboard with size above 1KB when using SSL +Bug #4642 - Connecting causes SSL23_GET_SERVER_HELLO error +Bug #4690 - Log line 'activeDesktop' does not use logging system +Bug #4866 - Wrong ns plugin version can be loaded +Enhancement #4901 - Auto restart when running from GUI in desktop mode +Enhancement #4845 - Add timestamp to log output +Enhancement #4898 - Move version stage name to build config + +v1.7.3-stable +============= +Bug #4565 - Incorrect plugin downloads on Debian and Mint +Bug #4677 - Windows service log file grows to very large size +Bug #4651 - High logging rate causes Windows service to crash +Bug #4650 - SSL error log message repeats excessively and freezes cursor +Bug #4624 - Runaway logging causes GUI to freeze +Bug #4617 - Windows service randomly stops after 'ssl handshake failure' error +Bug #4601 - Large clipboard data with SSL causes 'protocol is shutdown' error +Bug #4593 - Locking Windows server causes SSL_ERROR_SSL to repeat +Bug #4577 - Memory leak in GUI on Windows caused by logging +Bug #4538 - Windows service crashes intermittently with no error +Bug #4341 - GUI freezes on first load when reading log +Bug #4566 - Client or server crashes with 'ssl handshake failure' error +Bug #4706 - Installer is not output to build config dir on Windows +Bug #4704 - Plugin 'ns' release build is overwritten with debug version on Linux +Bug #4703 - Plugins are not built to config directory on Mac +Bug #4697 - Timing can allow an SSL socket to be used after cleanup call +Enhancement #4661 - Log error but do not crash when failing to load plugins +Enhancement #4708 - Download ns plugin for specific Mac versions +Enhancement #4587 - Include OpenSSL binaries in source for easier building +Enhancement #4695 - Automatically upload plugins as Buildbot step + +v1.7.2-stable +============= +Bug #4564 - Modifier keys often stuck down on Mac client +Bug #4581 - Starting GUI on Mac crashes instantly on syntool segfault +Bug #4520 - Laggy or sluggish cursor (ping spikes) on Mac when using WiFi +Bug #4607 - GUI doesn't start after install on Windows +Enhancement #4412 - Automate extract and compile for OpenSSL +Enhancement #4567 - SSL plugin should use TLSv1_method() minimum +Enhancement #4591 - Revert to legacy Mac deployment and signing +Enhancement #4569 - Reintroduce GUI auto-hide setting (disabled by default) +Enhancement #4570 - Make `--crypto-pass` show deprecated message +Enhancement #4596 - Typo 'occurred' in WebClient.cpp + +v1.7.1-stable +============= +Bug #3784 - Double click & drag doesn't select words on client +Bug #3052 - Triple-click (select line) does not work +Bug #4367 - Duplicate Alt-S Keyboard Shortcuts on Gui +Bug #4554 - Server unable to accept new SSL connection +Bug #4553 - SSL handshake failure error causes GUI to crash +Bug #4551 - Plugin wizard doesn't create SSL directory +Bug #4548 - Severe code duplication in fingerprint logic +Bug #4547 - Windows server crashes when client fingerprint dialog open +Bug #4539 - Mac client dies when server has SSL_ERROR_SSL +Bug #4537 - Plugin wizard doesn't complete but finish button enabled +Bug #4535 - Server crashes on shut down after multiple connections failed +Bug #4528 - Error SSL_ERROR_SSL is logged on unknown error +Bug #4527 - Server fingerprint dialog on client GUI keeps showing +Bug #4469 - GUI crashes on Windows when generating certificate +Bug #4410 - SSL_ERROR_SSL (unknown protocol) on Mac client +Bug #4409 - SSL_ERROR_SSL (unknown alert type) on Windows 8.1 client +Bug #4557 - GUI doesn't show local fingerprint on fresh install +Enhancement #4522 - SSL server fingerprint verification from client +Enhancement #4526 - Display local fingerprint on server GUI +Enhancement #4549 - Extract SSL certificate and fingerprint generate function +Enhancement #4546 - Redistribute OpenSSL on Windows with installer +Enhancement #4540 - Enable Network Security checkbox only when ns plugin exists +Enhancement #4525 - Reorganize app data directory +Enhancement #4390 - Disable GUI auto-hide by default + +v1.7.0-beta +=========== +Enhancement #4313 - SSL encrypted secure connection +Enhancement #4168 - Plugin manager for GUI +Enhancement #4307 - Always show client auto-detect dialog +Enhancement #4397 - Modernize Mac build script (deployment and signing) +Enhancement #4398 - Remove obsolete Mac database cleaner +Enhancement #4337 - Remove IStreamFilterFactory dead code + +1.6.3 +===== +Bug #4349 - Mouse click does not always bring window to front +Bug #4463 - Unidentified developer error on Mac OS X +Bug #4464 - Code signing verify failure not reported on Mac build +Bug #4465 - Binary (syntool) is not code signed on Windows +Enhancement #4455 - Replace version with branch name in package filename + +1.6.2 +===== +Bug #4227 - Helper tool crashes when service checks elevation state +Bug #4091 - Zeroconf on server advertises bogus IP address +Bug #4249 - Drag file causes client crash on Mac (10.10) +Enhancement #4196 - Optional Bonjour requirement for Windows +Enhancement #4235 - Automatic Bonjour download and install +Enhancement #4218 - Auto-config available servers combo box +Enhancement #4230 - More user friendly dialog when client is detected +Enhancement #4240 - Minimize auto config message box usage +Enhancement #4247 - Firewall exception for GUI (needed for Bonjour) +Enhancement #4242 - Consistent naming for auto config feature + +1.6.1 +===== +Bug #4002 - Carbon loop not ready within 5 sec +Bug #4191 - Accessibility helper tool crashes +Bug #4149 - Mac 10.9.5 or 10.10 gatekeeper blocks Synergy +Bug #4139 - Exception thrown when ProcessIdToSessionId() fails +Bug #4055 - Shift keys are not sent to clients (Win 8.1 server) +Bug #4021 - Copy & paste not working for EFL applications +Bug #3749 - Linux Chrome hover doesn't work +Bug #4128 - Daemon logging not written with "log to file" +Enhancement #4122 - Enable drag and drop by default +Enhancement #4158 - Build for Mac OS X 10.10 +Enhancement #4130 - Auto elevate for Windows UAC and screen lock +Enhancement #4126 - 64-bit support for OS X +Enhancement #4141 - DMRM message support for μSynergy +Enhancement #4124 - More robust argument parsing + +1.6.0 +===== +Feature #65 - Auto config feature using Zeroconf/Bonjour + +1.5.1 +===== +Bug #3307 - Configuration file paths containing spaces don't work +Bug #3404 - Log path needs to be in quotes on windows +Bug #3996 - Installer fails when Windows Firewall is disabled + +1.5.0 +===== +Bug #4060 - Key stuck down on Windows server +Bug #4061 - Windows server repeats modifier keys + +1.4.18 +====== +Bug #3980 - Shell extension DLL causes explorer.exe to crash +Task #4049 - Correct code style in OSXKeyState compilation unit +Task #4050 - Fix subversion issue tracker URL +Task #4053 - Improve deb package quality +Task #4054 - Improve rpm package quality + +1.4.17 +====== +Bug #2836 - Unable to begin screen name or alias with numbers +Bug #3796 - Some files being unintentionally dragged (including explorer.exe) +Bug #3886 - Alias is allowed to match screen name +Bug #3919 - RPM install fails on Fedora 20, failed dependencies: libcurl +Bug #3921 - Error: synwinxt.dll outdated (upgrading from 1.4.15 to 1.4.16) +Bug #3927 - Mavericks accessibility exception not working (when upgrading from 1.4.15 to 1.4.16) +Bug #3933 - Plus signs in the email address cause premium login to fail +Bug #3939 - Compile fails on ARM (Raspberry Pi) because of cryptopp/Crypto++ lib +Bug #3947 - Conflicts when using yum localinstall on Fedora 20 +Bug #3959 - Premium title doesn't always show on first login +Bug #3968 - GUI auto-hides on initial first install (with no config) +Task #3936 - Change installer to WiX for improved file upgrade process +Task #3950 - Poll modifier after key down on Mac OS X and log results +Task #3951 - Clear filename stored in synwinxt on mouse up +Task #3952 - Make Premium wizard page cleaner +Task #3953 - Inherit XArch and XBase from std::exception +Task #3954 - Make "lock to screen" log message go to NOTE level instead of DEBUG +Task #3960 - Split CMSWindowsHookLibraryLoader into hook and shellex loaders +Task #3961 - Remove Windows 95 support +Task #3963 - Disable failing Linux unit/integ tests on Fedora 20 32-bit (valgrind SIGILL) +Task #3964 - Make Premium login error more verbose +Task #3969 - Merge String.cpp and StringUtil.cpp + +1.4.16 +====== +Bug #3338 - Alt tab not working with Windows 8 +Bug #3642 - Failed to start server on Mac OS X 10.9 Mavericks, assistive devices problem +Bug #3785 - Synwinxt.dll error opening file for writing during install of 1.4.15 +Bug #3787 - Wont automatically load after login on OS X +Bug #3788 - Configuration wizard: Premium login fails when behind a proxy +Bug #3796 - Some files being unintentionally dragged (including explorer.exe) +Bug #3799 - Synergy Client on Fedora crashes on drag/drop operations +Bug #3818 - Client freezes on Mac OS 10.6.8 +Bug #3874 - Premium GUI login is case sensitive for email +Bug #3911 - Drag and drop error on OS X 10.9 Mavericks + +1.4.15 +====== +Bug #3765 - Synergy Service - Error 87: The parameter is incorrect. +Bug #3781 - Option not supported on Linux: --enable-drag-drop (server not starting) + +1.4.14 +====== +Bug #3287 - Mac does not wake up +Bug #3758 - Unstable service (synergyd) +Bug #3759 - Exploit: C:\Program.exe (if it exists) is run by service (elevated) +Bug #3760 - Encryption broken (GCM, CTR and OFB) +Bug #3761 - Start button is visible when Synergy is running +Bug #3762 - Apply button is disabled for Mac and Linux +Feature #46 - Drag and drop between computers (Windows and Mac) + +1.4.13 +====== +Version not released, unstable. + +1.4.12 +====== +Bug #3565 - Encryption fails when typing fast (Invalid message from client) +Bug #3606 - GUI is elevated after setup +Bug #3572 - Mac caps lock causes disconnect + +1.4.11 +====== +Feature #12 - Encryption +Feature #421 - Portable version +Bug #2855 - Mouse cursor remains hidden on Mac client (intermittently/randomly) +Bug #3281 - server start on OS X defaults to 'interactive' +Bug #3310 - P&ort in settings screen + +1.4.10 +====== +Bug #2799 - Right shift broken (Windows server, Mac OS X client) +Bug #3302 - GUI does not show/hide when tray icon is double clicked (Windows) +Bug #3303 - Mac OS X IPC integ test fails intermittently +Feature #2974 - Gesture Support for Magic Mouse/Trackpad +Feature #3172 - Button to stop Synergy when in service mode +Feature #3241 - Option to elevate synergyc/s when in service mode +Feature #3242 - Show a list of available IP addresses and screen name on the main screen +Feature #3296 - 64-bit Windows installer should display helpful message on 32-bit Windows +Feature #3300 - Make service mode default mode (now that we have elevate option) +Feature #3301 - Add process mode option to settings (remove startup wizard page) +Feature #3306 - Gatekeeper compatibility on Mac OS X 10.8 + +1.4.9 +===== +Bug #3159 - In service mode, server doesn't start unless GUI is running +Bug #3214 - Client sometimes can't connect if GUI is closed +Bug #56 - Mac OS X server not sending keystrokes to client +Bug #3161 - First time GUI appears, service doesn't send logging +Bug #3164 - In service mode, you need to add a firewall exception +Bug #3166 - Service shutdown stalls when GUI is closed +Bug #3216 - Fatal error if plugins folder doesn't exist +Bug #3221 - ERROR: could not connect to service, error: 2 +Feature #3192 - Add support for JOYINFOEX structure to poll game device info +Feature #3202 - Plugin support (sending for primary screen events on Windows only) +Feature #3155 - Cross-platform TCP IPC between GUI and service +Task #3177 - Fix Mac buildslave to build multiple versions +Task #3193 - Add Micro Synergy to repository +Task #3275 - Change hostname label to "IP address or hostname" +Task #3276 - Installation recovery mechanism for synrgyhk.dll + +1.4.8 +===== +Bug #143: Cursor on Mac OS X goes to center when inactive +Bug #146: Screen Resize causes problems with moving off right-hand side of screen +Bug #3058: Modifier keys not working on Mac OS X server +Bug #3139: Double click too strict (click, move, click should not count) +Bug #3195: Service install can fail first time +Bug #3196: Wizard buttons not visible +Bug #3197: GUI doesn't take focus after install +Bug #3202: Hook DLL (synrgyhk.dll) is not released +Feature #3143: Setup wizard for first time users +Feature #3145: Check for updates +Feature #3174: Startup mode wizard page +Feature #3184: New service for process management + +1.4.7 +===== +Bug #3132: GUI hides before successful connection +Bug #3133: Can't un-hide GUI on Mac +Feature #3054: Hide synergy[cs] dock icon (Mac OS X) +Feature #3135: Integrate log into main window +Task #3134: Move hotkey warnings to DEBUG + +1.4.6 +===== +Bug #155: Build error on FreeBSD (missing sentinel in function call) +Bug #571: Synergy SegFaults with "Unknown Quartz Event type: 0x1d" +Bug #617: xrandr rotation on client confines cursor in wrong area +Bug #642: `synergyc --help` segfaults on sparc64 architecture +Bug #652: Stack overflow in getIDForKey +Bug #1071: Can't copy from the Firefox address bar on Linux +Bug #1662: Copying text from remote computer crashes java programs. +Bug #1731: YouTube can cause server to freeze randomly +Bug #2752: Use SAS for ctrl+alt+del on win7 +Bug #2763: Double-click broken on Mac OS +Bug #2817: Keypad Subtract has wrong keycode on OS X +Bug #2958: GNOME 3 mouse problem (gnome-shell) +Bug #2962: Clipboard not working on mac client +Bug #3063: Segfault in copy buffer +Bug #3066: Server segfault on clipboard paste +Bug #3089: Comma and Period translated wrong when using the NEO2-layout +Bug #3092: Wrong screen rotation detected +Bug #3105: There doesn't seem to be a system tray available. Quitting +Bug #3116: Memory Leak due to the XInput2 patches +Bug #3117: Dual monitors not detected properly anymore +Feature #3073: Re-introduce auto-start GUI (Windows) +Feature #3076: Re-introduce auto-start backend +Feature #3077: Re-introduce hidden on start +Feature #3091: Add option to remap altgr modifier +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 From 70ba53caf47bbb1a633ccb9492c91dd844ae5f1d Mon Sep 17 00:00:00 2001 From: Radek Smejkal Date: Fri, 3 May 2019 19:05:17 +0200 Subject: [PATCH 20/22] Fixed retry timer not being unregistered properly (#6077) Closes #6495 --- src/lib/synergy/ServerApp.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/lib/synergy/ServerApp.cpp b/src/lib/synergy/ServerApp.cpp index 5d49239a..726e05ab 100644 --- a/src/lib/synergy/ServerApp.cpp +++ b/src/lib/synergy/ServerApp.cpp @@ -304,11 +304,11 @@ ServerApp::closeServer(Server* server) void ServerApp::stopRetryTimer() { - if (m_timer != NULL) { - m_events->deleteTimer(m_timer); - m_events->removeHandler(Event::kTimer, NULL); - m_timer = NULL; - } + if (m_timer != NULL) { + m_events->removeHandler(Event::kTimer, m_timer); + m_events->deleteTimer(m_timer); + m_timer = NULL; + } } void From 79fb9e2c59db82545ce4452e3d91186f762a55b3 Mon Sep 17 00:00:00 2001 From: Jnewbon <48688400+Jnewbon@users.noreply.github.com> Date: Wed, 8 May 2019 17:46:42 +0100 Subject: [PATCH 21/22] Added v1.10.2-rc2 to ChangeLog --- ChangeLog | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/ChangeLog b/ChangeLog index c9ec3b89..6e2853b6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,22 @@ +v1.10.2-rc2 +============== + +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 + +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 ============== From 2d9b2c29e6ed81b3fa8873ae92133e5adef0da4f Mon Sep 17 00:00:00 2001 From: Jamie Newbon Date: Wed, 8 May 2019 17:55:51 +0100 Subject: [PATCH 22/22] Set stage to rc2 for v1.10.2 --- cmake/Version.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/Version.cmake b/cmake/Version.cmake index 623445f6..546a5109 100644 --- a/cmake/Version.cmake +++ b/cmake/Version.cmake @@ -7,7 +7,7 @@ cmake_minimum_required (VERSION 3.4) set (SYNERGY_VERSION_MAJOR 1) set (SYNERGY_VERSION_MINOR 10) set (SYNERGY_VERSION_PATCH 2) -set (SYNERGY_VERSION_STAGE "snapshot") +set (SYNERGY_VERSION_STAGE "rc2") # # Version from CI