This repository has been archived by the owner. It is now read-only.
Permalink
Browse files

Merge branch 'v1.8.6'

  • Loading branch information...
XinyuHou
XinyuHou committed Dec 12, 2016
2 parents 00db51c + 2ab21aa commit ade4b7f8a2a1e9270b9fbb49160050ad1ebd285d
View
@@ -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}")
View
@@ -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
View
@@ -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:
View
@@ -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' : ['', []],
@@ -244,6 +244,9 @@ class InternalCommands:
# by default, unknown
macSdk = None
+ # by default, unknown
+ macDeploy = None
+
# by default, unknown
macIdentity = None
@@ -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=''):
@@ -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()
@@ -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"):
@@ -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>");
@@ -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)
@@ -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:
@@ -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")
@@ -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'):
@@ -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
View
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" manifestVersion="1.0">
- <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
- <application>
- <!-- Windows 7 -->
- <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
- </application>
- </compatibility>
- <asmv3:application>
- <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
- <dpiAware>true</dpiAware>
- </asmv3:windowsSettings>
- </asmv3:application>
-</assembly>
-
@@ -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
@@ -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
@@ -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
@@ -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>
@@ -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) {
@@ -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();
@@ -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;
@@ -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()) {
@@ -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);
@@ -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;
View
@@ -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;
}
View
@@ -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;
@@ -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();
@@ -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";
}
@@ -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;
}
@@ -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;
}
Oops, something went wrong.

0 comments on commit ade4b7f

Please sign in to comment.