Skip to content

Commit

Permalink
Merge branch 'v1.8.6'
Browse files Browse the repository at this point in the history
  • Loading branch information
XinyuHou committed Dec 12, 2016
2 parents 00db51c + 2ab21aa commit ade4b7f
Show file tree
Hide file tree
Showing 30 changed files with 227 additions and 406 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
# Version number for Synergy
set(VERSION_MAJOR 1)
set(VERSION_MINOR 8)
set(VERSION_REV 5)
set(VERSION_REV 6)
set(VERSION_STAGE stable)
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REV}")

Expand Down
9 changes: 9 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
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
Expand Down
6 changes: 3 additions & 3 deletions doc/MacReadme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ 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. Change to super user (use the su command)
4. Copy the binaries to /usr/bin using: cp synergy* /usr/bin
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*

How to enable the root user in Mac OS X:
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:
Expand Down
35 changes: 27 additions & 8 deletions ext/toolchain/commands1.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class Toolchain:
cmd_opt_dict = {
'about' : ['', []],
'setup' : ['g:', ['generator=']],
'configure' : ['g:dr', ['generator=', 'debug', 'release', 'mac-sdk=', 'mac-identity=']],
'configure' : ['g:dr', ['generator=', 'debug', 'release', 'mac-sdk=', 'mac-deploy=', 'mac-identity=']],
'build' : ['dr', ['debug', 'release']],
'clean' : ['dr', ['debug', 'release']],
'update' : ['', []],
Expand Down Expand Up @@ -244,6 +244,9 @@ class InternalCommands:
# by default, unknown
macSdk = None

# by default, unknown
macDeploy = None

# by default, unknown
macIdentity = None

Expand Down Expand Up @@ -306,7 +309,7 @@ def usage(self):
' genlist Shows the list of available platform generators\n'
' usage Shows the help screen\n'
'\n'
'Example: %s build -g 3'
'Example: %s conf -g 3'
) % (app, app)

def configureAll(self, targets, extraArgs=''):
Expand Down Expand Up @@ -365,7 +368,7 @@ def configure(self, target='', extraArgs=''):
# ensure latest setup and do not ask config for generator (only fall
# back to prompt if not specified as arg)
self.ensure_setup_latest()

if sys.platform == "darwin":
config = self.getConfig()

Expand All @@ -374,6 +377,11 @@ def configure(self, target='', extraArgs=''):
elif config.has_option("hm", "macSdk"):
self.macSdk = config.get('hm', 'macSdk')

if self.macDeploy:
config.set('hm', 'macDeploy', self.macDeploy)
elif config.has_option("hm", "macDeploy"):
self.macSdk = config.get('hm', 'macDeploy')

if self.macIdentity:
config.set('hm', 'macIdentity', self.macIdentity)
elif config.has_option("hm", "macIdentity"):
Expand All @@ -383,7 +391,10 @@ def configure(self, target='', extraArgs=''):

if not self.macSdk:
raise Exception("Arg missing: --mac-sdk <version>");


if not self.macDeploy:
self.macDeploy = self.macSdk

if not self.macIdentity:
raise Exception("Arg missing: --mac-identity <name>");

Expand Down Expand Up @@ -438,7 +449,7 @@ def configureCore(self, target="", extraArgs=""):
if generator.cmakeName.find('Unix Makefiles') == -1:
sdkDir = self.getMacSdkDir()
cmake_args += " -DCMAKE_OSX_SYSROOT=" + sdkDir
cmake_args += " -DCMAKE_OSX_DEPLOYMENT_TARGET=" + self.macSdk
cmake_args += " -DCMAKE_OSX_DEPLOYMENT_TARGET=" + self.macDeploy

cmake_args += " -DOSX_TARGET_MAJOR=" + macSdkMatch.group(1)
cmake_args += " -DOSX_TARGET_MINOR=" + macSdkMatch.group(2)
Expand Down Expand Up @@ -498,8 +509,8 @@ def configureGui(self, target="", extraArgs=""):
sdkDir = self.getMacSdkDir()
shortForm = "macosx" + self.macSdk
version = str(major) + "." + str(minor)
qmake_cmd_string += " QMAKE_MACOSX_DEPLOYMENT_TARGET=" + version

qmake_cmd_string += " QMAKE_MACOSX_DEPLOYMENT_TARGET=" + self.macDeploy

(qMajor, qMinor, qRev) = self.getQmakeVersion()
if qMajor <= 4:
Expand Down Expand Up @@ -656,6 +667,9 @@ def loadConfig(self):

if config.has_option("hm", "macSdk"):
self.macSdk = config.get("hm", "macSdk")

if config.has_option("hm", "macDeploy"):
self.macDeploy = config.get("hm", "macDeploy")

if config.has_option("hm", "macIdentity"):
self.macIdentity = config.get("hm", "macIdentity")
Expand Down Expand Up @@ -1843,7 +1857,10 @@ def getMacPackageName(self):
# version is major and minor with no dots (e.g. 106)
version = str(major) + str(minor)

return "MacOSX%s-%s" % (version, arch)
if (self.macDeploy == self.macSdk):
return "MacOSX%s-%s" % (version, arch)
else:
return "MacOSX-%s" % arch

def reset(self):
if os.path.exists('build'):
Expand Down Expand Up @@ -1898,6 +1915,8 @@ def __init__(self, argv, opts, args, verbose):
self.qtDir = a
elif o == '--mac-sdk':
self.ic.macSdk = a
elif o == '--mac-deploy':
self.ic.macDeploy = a
elif o == '--mac-identity':
self.ic.macIdentity = a

Expand Down
15 changes: 0 additions & 15 deletions res/dpiaware.manifest

This file was deleted.

9 changes: 0 additions & 9 deletions src/cmd/synergyc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,15 +60,6 @@ add_executable(synergyc ${sources})
target_link_libraries(synergyc
arch base client common io mt net ipc platform server synergy ${libs} ${OPENSSL_LIBS})

if (WIN32)
ADD_CUSTOM_COMMAND(
TARGET synergyc
POST_BUILD
COMMAND "mt.exe" -manifest \"${CMAKE_SOURCE_DIR}\\res\\dpiaware.manifest\" -inputresource:\"$<TARGET_FILE:synergyc>\"\;\#1 -outputresource:\"$<TARGET_FILE:synergyc>\"\;\#1
COMMENT "Adding display aware manifest..."
)
endif()

if (CONF_CPACK)
install(TARGETS
synergyc
Expand Down
9 changes: 0 additions & 9 deletions src/cmd/synergyd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,6 @@ endif()
target_link_libraries(synergyd
arch base common io ipc mt net platform synergy shared ${libs} ${OPENSSL_LIBS})

if (WIN32)
ADD_CUSTOM_COMMAND(
TARGET synergyd
POST_BUILD
COMMAND "mt.exe" -manifest \"${CMAKE_SOURCE_DIR}\\res\\dpiaware.manifest\" -inputresource:\"$<TARGET_FILE:synergyd>\"\;\#1 -outputresource:\"$<TARGET_FILE:synergyd>\"\;\#1
COMMENT "Adding display aware manifest..."
)
endif()

if (CONF_CPACK)
install(TARGETS
synergyd
Expand Down
9 changes: 0 additions & 9 deletions src/cmd/synergys/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,15 +60,6 @@ add_executable(synergys ${sources})
target_link_libraries(synergys
arch base client common io mt net ipc platform server synergy ${libs} ${OPENSSL_LIBS})

if (WIN32)
ADD_CUSTOM_COMMAND(
TARGET synergys
POST_BUILD
COMMAND "mt.exe" -manifest \"${CMAKE_SOURCE_DIR}\\res\\dpiaware.manifest\" -inputresource:\"$<TARGET_FILE:synergys>\"\;\#1 -outputresource:\"$<TARGET_FILE:synergys>\"\;\#1
COMMENT "Adding display aware manifest..."
)
endif()

if (CONF_CPACK)
install(TARGETS
synergys
Expand Down
4 changes: 3 additions & 1 deletion src/gui/res/SettingsDialogBase.ui
Original file line number Diff line number Diff line change
Expand Up @@ -330,11 +330,13 @@
<tabstop>m_pLineEditScreenName</tabstop>
<tabstop>m_pSpinBoxPort</tabstop>
<tabstop>m_pLineEditInterface</tabstop>
<tabstop>m_pComboElevate</tabstop>
<tabstop>m_pCheckBoxAutoHide</tabstop>
<tabstop>m_pCheckBoxEnableCrypto</tabstop>
<tabstop>m_pComboLogLevel</tabstop>
<tabstop>m_pCheckBoxLogToFile</tabstop>
<tabstop>m_pLineEditLogFilename</tabstop>
<tabstop>m_pButtonBrowseLog</tabstop>
<tabstop>buttonBox</tabstop>
</tabstops>
<resources/>
<connections>
Expand Down
3 changes: 2 additions & 1 deletion src/gui/src/ActivationDialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,8 @@ void ActivationDialog::accept()

std::pair<bool, QString> result;
try {
QString serialKey = ui->m_pTextEditSerialKey->toPlainText().trimmed();
SerialKey serialKey (ui->m_pTextEditSerialKey->toPlainText().
trimmed().toStdString());
result = m_LicenseManager->setSerialKey(serialKey);
}
catch (std::exception& e) {
Expand Down
2 changes: 1 addition & 1 deletion src/gui/src/AppConfig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ void AppConfig::loadSettings()
m_ActivateEmail = settings().value("activateEmail", "").toString();
m_CryptoEnabled = settings().value("cryptoEnabled", true).toBool();
m_AutoHide = settings().value("autoHide", false).toBool();
m_Serialkey = settings().value("serialKey", "").toString();
m_Serialkey = settings().value("serialKey", "").toString().trimmed();
m_lastVersion = settings().value("lastVersion", "Unknown").toString();
m_LastExpiringWarningTime = settings().value("lastExpiringWarningTime", 0).toInt();
m_ActivationHasRun = settings().value("activationHasRun", false).toBool();
Expand Down
14 changes: 10 additions & 4 deletions src/gui/src/LicenseManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,10 @@ LicenseManager::LicenseManager(AppConfig* appConfig) :
}

std::pair<bool, QString>
LicenseManager::setSerialKey(QString serialKeyString, bool acceptExpired)
LicenseManager::setSerialKey(SerialKey serialKey, bool acceptExpired)
{
std::pair<bool, QString> ret (true, "");
time_t currentTime = ::time(0);
SerialKey serialKey (serialKeyString.toStdString());

if (!acceptExpired && serialKey.isExpired(currentTime)) {
ret.first = false;
Expand All @@ -44,7 +43,8 @@ LicenseManager::setSerialKey(QString serialKeyString, bool acceptExpired)
if (serialKey != m_serialKey) {
using std::swap;
swap (serialKey, m_serialKey);
m_AppConfig->setSerialKey(serialKeyString);
m_AppConfig->setSerialKey(QString::fromStdString
(serialKey.toString()));
emit serialKeyChanged(m_serialKey);

if (serialKey.isTrial()) {
Expand Down Expand Up @@ -114,7 +114,13 @@ LicenseManager::serialKey() const
void LicenseManager::refresh()
{
if (!m_AppConfig->serialKey().isEmpty()) {
setSerialKey(m_AppConfig->serialKey(), true);
try {
SerialKey serialKey (m_AppConfig->serialKey().toStdString());
setSerialKey(serialKey, true);
} catch (...) {
m_AppConfig->clearSerialKey();
m_AppConfig->saveSettings();
}
}
if (m_serialKey.isExpired(::time(0))) {
emit endTrial(true);
Expand Down
3 changes: 2 additions & 1 deletion src/gui/src/LicenseManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ class LicenseManager: public QObject

public:
LicenseManager(AppConfig* appConfig);
std::pair<bool, QString> setSerialKey(QString serialKey, bool acceptExpired = false);
std::pair<bool, QString> setSerialKey(SerialKey serialKey,
bool acceptExpired = false);
void refresh();
Edition activeEdition() const;
QString activeEditionName() const;
Expand Down
19 changes: 0 additions & 19 deletions src/gui/src/MainWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -808,25 +808,6 @@ bool MainWindow::serverArgs(QStringList& args, QString& app)
args << "--serial-key" << appConfig().serialKey();
}

#if defined(Q_OS_WIN)
// pass in physical resolution and primary screen center
// TODO: get this information in the core binary even when
// high DPI is used
int height = QApplication::desktop()->height();
int width = QApplication::desktop()->width();

QRect rec = QApplication::desktop()->screenGeometry();
int heightCenter = rec.height() / 2;
int widthCenter = rec.width() / 2;

appendLogDebug(tr("screen resolution: %1 %2 primary screen center: %3 %4")
.arg(width).arg(height).arg(widthCenter).arg(heightCenter));

args << "--res-w" << QString::number(width);
args << "--res-h" << QString::number(height);
args << "--prm-wc" << QString::number(widthCenter);
args << "--prm-hc" << QString::number(heightCenter);
#endif
return true;
}

Expand Down
3 changes: 2 additions & 1 deletion src/gui/src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,8 @@ bool checkMacAssistiveDevices()
QMessageBox::information(
NULL, "Synergy",
"Please enable access to assistive devices "
"(System Preferences), then re-open Synergy.");
"System Preferences -> Security & Privacy -> "
"Privacy -> Accessibility, then re-open Synergy.");
}
return result;

Expand Down
4 changes: 3 additions & 1 deletion src/lib/arch/unix/ArchDaemonUnix.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -117,9 +117,11 @@ ArchDaemonUnix::daemonize(const char* name, DaemonFunc func)
open("/dev/null", O_RDWR);

int dupErr = dup(1);
if (dupErr)

if (dupErr < 0) {
// NB: file logging actually isn't working at this point!
LOG((CLOG_ERR "dup error: %i", dupErr));
}

#ifdef __APPLE__
return execSelfNonDaemonized();
Expand Down
2 changes: 1 addition & 1 deletion src/lib/arch/unix/ArchSystemUnix.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,5 +76,5 @@ ArchSystemUnix::setting(const std::string&, const std::string&) const
std::string
ArchSystemUnix::getLibsUsed(void) const
{
return "not implmented.\nuse lsof on shell";
return "not implemented.\nuse lsof on shell";
}
2 changes: 1 addition & 1 deletion src/lib/ipc/IpcClientProxy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ IpcClientProxy::send(const IpcMessage& message)
switch (message.type()) {
case kIpcLogLine: {
const IpcLogLineMessage& llm = static_cast<const IpcLogLineMessage&>(message);
String logLine = llm.logLine();
const String logLine = llm.logLine();
ProtocolUtil::writef(&m_stream, kIpcMsgLogLine, &logLine);
break;
}
Expand Down
2 changes: 1 addition & 1 deletion src/lib/ipc/IpcServerProxy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ IpcServerProxy::send(const IpcMessage& message)

case kIpcCommand: {
const IpcCommandMessage& cm = static_cast<const IpcCommandMessage&>(message);
String command = cm.command();
const String command = cm.command();
ProtocolUtil::writef(&m_stream, kIpcMsgCommand, &command);
break;
}
Expand Down

0 comments on commit ade4b7f

Please sign in to comment.