diff --git a/pkgs/applications/misc/synergy/build-tests.patch b/pkgs/applications/misc/synergy/build-tests.patch deleted file mode 100644 index ab08195e794d6f..00000000000000 --- a/pkgs/applications/misc/synergy/build-tests.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 9c2278dad498b8e4040f30c80cf65b3a089ba218 Mon Sep 17 00:00:00 2001 -From: talyz -Date: Fri, 14 Feb 2020 16:26:36 +0100 -Subject: [PATCH] Build tests again - -The tests were accidentally disabled in -688095d0a7d22704b5c3282bc68b41ceca42ab7e. Since then, the code has -drifted slightly: the synergy lib has been renamed from synergy to -synlib in 4263fd17177d7717b04ac6d6ec62efa2f657ed74 and the curl -dependency was dropped in 491bb2de000245a943b8298462c4a9d8f34c9a44. - -This reenables the tests, targets the right lib and removes the -obsolete test. ---- - src/CMakeLists.txt | 2 + - src/test/integtests/CMakeLists.txt | 2 +- - .../integtests/arch/ArchInternetTests.cpp | 37 ------------------- - src/test/unittests/CMakeLists.txt | 2 +- - 4 files changed, 4 insertions(+), 39 deletions(-) - delete mode 100644 src/test/integtests/arch/ArchInternetTests.cpp - -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index ab63a066..fee080ab 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -22,3 +22,5 @@ add_subdirectory(cmd) - if (SYNERGY_BUILD_LEGACY_GUI) - add_subdirectory(gui) - endif (SYNERGY_BUILD_LEGACY_GUI) -+ -+add_subdirectory(test) -diff --git a/src/test/integtests/CMakeLists.txt b/src/test/integtests/CMakeLists.txt -index f39968a3..096ba3d5 100644 ---- a/src/test/integtests/CMakeLists.txt -+++ b/src/test/integtests/CMakeLists.txt -@@ -68,4 +68,4 @@ endif() - - add_executable(integtests ${sources}) - target_link_libraries(integtests -- arch base client common io ipc mt net platform server synergy gtest gmock ${libs} ${OPENSSL_LIBS}) -+ arch base client common io ipc mt net platform server synlib gtest gmock ${libs} ${OPENSSL_LIBS}) -diff --git a/src/test/integtests/arch/ArchInternetTests.cpp b/src/test/integtests/arch/ArchInternetTests.cpp -deleted file mode 100644 -index 95823e9f..00000000 ---- a/src/test/integtests/arch/ArchInternetTests.cpp -+++ /dev/null -@@ -1,37 +0,0 @@ --/* -- * synergy -- mouse and keyboard sharing utility -- * Copyright (C) 2014-2016 Symless Ltd. -- * -- * This package is free software; you can redistribute it and/or -- * modify it under the terms of the GNU General Public License -- * found in the file LICENSE that should have accompanied this file. -- * -- * This package is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- * GNU General Public License for more details. -- * -- * You should have received a copy of the GNU General Public License -- * along with this program. If not, see . -- */ -- --#include "arch/Arch.h" -- --#include "test/global/gtest.h" -- --#define TEST_URL "https://symless.com/tests/?testString" --//#define TEST_URL "http://localhost/synergy/tests/?testString" -- --TEST(ArchInternetTests, get) --{ -- ARCH_INTERNET internet; -- String result = internet.get(TEST_URL); -- ASSERT_EQ("Hello world!", result); --} -- --TEST(ArchInternetTests, urlEncode) --{ -- ARCH_INTERNET internet; -- String result = internet.urlEncode("hello=+&world"); -- ASSERT_EQ("hello%3D%2B%26world", result); --} -diff --git a/src/test/unittests/CMakeLists.txt b/src/test/unittests/CMakeLists.txt -index 54131eb2..46307e90 100644 ---- a/src/test/unittests/CMakeLists.txt -+++ b/src/test/unittests/CMakeLists.txt -@@ -68,4 +68,4 @@ endif() - - add_executable(unittests ${sources}) - target_link_libraries(unittests -- arch base client server common io net platform server synergy mt ipc gtest gmock shared ${libs} ${OPENSSL_LIBS}) -+ arch base client server common io net platform server synlib mt ipc gtest gmock shared ${libs} ${OPENSSL_LIBS}) --- -2.25.0 - diff --git a/pkgs/applications/misc/synergy/default.nix b/pkgs/applications/misc/synergy/default.nix index 8d3cc8c3096639..803456dc85f0c2 100644 --- a/pkgs/applications/misc/synergy/default.nix +++ b/pkgs/applications/misc/synergy/default.nix @@ -1,41 +1,90 @@ -{ stdenv, lib, fetchpatch, fetchFromGitHub, cmake, openssl, qttools -, ApplicationServices, Carbon, Cocoa, CoreServices, ScreenSaver -, xlibsWrapper, libX11, libXi, libXtst, libXrandr, xinput, avahi-compat -, withGUI ? true, wrapQtAppsHook }: +{ withGUI ? true +, stdenv +, lib +, fetchpatch +, fetchFromGitHub +, wrapQtAppsHook + +, cmake +, openssl +, pcre +, util-linux +, libselinux +, libsepol +, pkg-config +, gdk-pixbuf +, libnotify +, qttools +, xlibsWrapper +, libX11 +, libXi +, libXtst +, libXrandr +, xinput +, avahi-compat + +# macOS / darwin +, ApplicationServices +, Carbon +, Cocoa +, CoreServices +, ScreenSaver +}: stdenv.mkDerivation rec { pname = "synergy"; - version = "1.13.1.41"; + version = "1.14.1.32"; src = fetchFromGitHub { owner = "symless"; repo = "synergy-core"; rev = "${version}-stable"; fetchSubmodules = true; - sha256 = "1phg0szc9g018zxs5wbys4drzq1cdhyzajfg45l6a3fmi6qdi1kw"; + sha256 = "123p75rm22vb3prw1igh0yii2y4bvv7r18iykfvmnr41hh4w7z2p"; }; - patches = lib.optional stdenv.isDarwin ./macos_build_fix.patch; + patches = [ ./macos_build_fix.patch ]; postPatch = '' substituteInPlace src/gui/src/SslCertificate.cpp \ --replace 'kUnixOpenSslCommand[] = "openssl";' 'kUnixOpenSslCommand[] = "${openssl}/bin/openssl";' ''; - cmakeFlags = lib.optional (!withGUI) "-DSYNERGY_BUILD_LEGACY_GUI=OFF"; + cmakeFlags = lib.optionals (!withGUI) [ + "-DSYNERGY_BUILD_LEGACY_GUI=OFF" + ] ++ lib.optionals stdenv.isDarwin [ + "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.09" + ]; + NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-Wno-inconsistent-missing-override"; - nativeBuildInputs = [ cmake ] ++ lib.optional withGUI wrapQtAppsHook; + nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ]; dontWrapQtApps = true; buildInputs = [ openssl + pcre ] ++ lib.optionals withGUI [ qttools ] ++ lib.optionals stdenv.isDarwin [ - ApplicationServices Carbon Cocoa CoreServices ScreenSaver + ApplicationServices + Carbon + Cocoa + CoreServices + ScreenSaver ] ++ lib.optionals stdenv.isLinux [ - xlibsWrapper libX11 libXi libXtst libXrandr xinput avahi-compat + util-linux + libselinux + libsepol + xlibsWrapper + libX11 + libXi + libXtst + libXrandr + xinput + avahi-compat + gdk-pixbuf + libnotify ]; installPhase = '' @@ -60,7 +109,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Share one mouse and keyboard between multiple computers"; - homepage = "https://synergy-project.org/"; + homepage = "https://symless.com/synergy"; license = licenses.gpl2; maintainers = with maintainers; [ talyz ]; platforms = platforms.all; diff --git a/pkgs/applications/misc/synergy/macos_build_fix.patch b/pkgs/applications/misc/synergy/macos_build_fix.patch index 50087a2c4b4b10..c304f3bfdd4430 100644 --- a/pkgs/applications/misc/synergy/macos_build_fix.patch +++ b/pkgs/applications/misc/synergy/macos_build_fix.patch @@ -1,20 +1,29 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index c1e78d1d..13639ba1 100644 +index 50e712fa..d39c2ce4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -328,14 +328,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Windows") - ${OPENSSL_ROOT}/lib/libssl.lib - ${OPENSSL_ROOT}/lib/libcrypto.lib - ) --elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") -- set (OPENSSL_ROOT /usr/local/opt/openssl) -- include_directories (BEFORE SYSTEM ${OPENSSL_ROOT}/include) -- set (OPENSSL_LIBS -- ${OPENSSL_ROOT}/lib/libssl.a -- ${OPENSSL_ROOT}/lib/libcrypto.a -- ) --elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux|.*BSD|DragonFly") -+elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux|Darwin|.*BSD|DragonFly") - set (OPENSSL_LIBS ssl crypto) - else() - message (FATAL_ERROR "Couldn't find OpenSSL") +@@ -326,9 +326,6 @@ endif() + # Apple has to use static libraries because + # "Use of the Apple-provided OpenSSL libraries by apps is strongly discouraged." + # https://developer.apple.com/library/archive/documentation/Security/Conceptual/cryptoservices/SecureNetworkCommunicationAPIs/SecureNetworkCommunicationAPIs.html +-if(APPLE) +- set(OPENSSL_USE_STATIC_LIBS TRUE) +-endif() + find_package(OpenSSL REQUIRED) + + # +diff --git a/src/gui/src/OSXHelpers.mm b/src/gui/src/OSXHelpers.mm +index 0c98afc1..38c190a6 100644 +--- a/src/gui/src/OSXHelpers.mm ++++ b/src/gui/src/OSXHelpers.mm +@@ -20,10 +20,6 @@ + #import + #import + #import +-#import +-#import +-#import +-#import + + #import + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 021b7aac2f1181..265e2edc4f563c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -28184,7 +28184,6 @@ with pkgs; }; synergy = libsForQt5.callPackage ../applications/misc/synergy { - stdenv = if stdenv.cc.isClang then llvmPackages_5.stdenv else stdenv; inherit (darwin.apple_sdk.frameworks) ApplicationServices Carbon Cocoa CoreServices ScreenSaver; };