gnu: Add cl-ana.statistical-learning.
[jackhill/guix/guix.git] / gnu / packages / synergy.scm
dissimilarity index 62%
index bc70eaf..9de3ee5 100644 (file)
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix 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 GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (gnu packages synergy)
-  #:use-module (guix packages)
-  #:use-module ((guix licenses) #:select (gpl2))
-  #:use-module (guix download)
-  #:use-module (guix build-system cmake)
-  #:use-module (gnu packages)
-  #:use-module (gnu packages curl)
-  #:use-module (gnu packages python)
-  #:use-module (gnu packages tls)
-  #:use-module (gnu packages xorg)
-  #:use-module (gnu packages zip)
-  #:use-module (srfi srfi-26))
-
-(define-public synergy
-  (package
-    (name "synergy")
-    (version "1.7.4")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "https://github.com/synergy/synergy/archive/"
-                          "v" version "-stable.tar.gz"))
-      (file-name (string-append name "-" version ".tar.gz"))
-      (sha256
-       (base32
-        "1prb06dmi4bhfsraih4hzlsfiraiczgzhqy9gjsxygczif8w6p91"))
-      (modules '((guix build utils)))
-      (snippet
-       ;; Remove ~14MB of unnecessary bundled source and binaries
-       '(for-each delete-file-recursively
-                  `("ext/bonjour"
-                    "ext/LICENSE (OpenSSL)"
-                    ,@(find-files "ext" "openssl-.*\\.tar\\.gz")
-                    "ext/openssl-osx"
-                    "ext/openssl-win32"
-                    "ext/openssl-win64")))))
-    (build-system cmake-build-system)
-    (native-inputs `(("unzip" ,unzip)))
-    (inputs
-     `(("python"  ,python-wrapper)
-       ("openssl" ,openssl)
-       ("curl"    ,curl)
-       ("libxi"   ,libxi)
-       ("libx11"  ,libx11)
-       ("libxtst" ,libxtst)
-       ("xinput"  ,xinput)))
-    (arguments
-     `(#:phases
-       (let ((srcdir (string-append "../synergy-" ,version "-stable")))
-         (alist-cons-before
-          'configure 'unpack-aux-src
-          ;; TODO: package and use from system
-          (lambda* (#:key inputs #:allow-other-keys)
-            (let ((unzip (string-append
-                          (assoc-ref inputs "unzip")
-                          "/bin/unzip")))
-              (with-directory-excursion "ext"
-                (for-each
-                 (lambda (f)
-                   (system* unzip "-d" f (string-append f ".zip")))
-                 '("gmock-1.6.0" "gtest-1.6.0")))))
-          (alist-replace
-           'check
-           ;; Don't run "integtests" as it requires network and X an display.
-           (lambda _
-             (zero? (system* (string-append srcdir "/bin/unittests"))))
-           (alist-replace
-            'install
-            ;; There currently is no installation process, see:
-            ;; http://synergy-project.org/spit/issues/details/3317/
-            (lambda* (#:key outputs #:allow-other-keys)
-              (let* ((out (assoc-ref outputs "out"))
-                     (bin (string-append out "/bin"))
-                     (ex  (string-append out "/share/doc/synergy-"
-                                         ,version "/examples")))
-                (begin
-                  (for-each
-                   (lambda (f)
-                     (install-file (string-append srcdir "/bin/" f) bin))
-                   '("synergyc" "synergys" "synergyd"
-                     "usynergy" "syntool"))
-                  ;; Install example configuration files
-                  (for-each
-                   (lambda (e)
-                     (install-file (string-append srcdir "/doc/" e) ex))
-                   '("synergy.conf.example"
-                     "synergy.conf.example-advanced"
-                     "synergy.conf.example-basic")))))
-            %standard-phases))))))
-    (home-page "http://www.synergy-project.org")
-    (synopsis "Mouse and keyboard sharing utility")
-    (description
-     "Synergy brings your computers together in one cohesive experience; its
-software for sharing one mouse and keyboard between multiple computers on your
-desk.")
-    (license gpl2)))
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014, 2015, 2016 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
+;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix 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 GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages synergy)
+  #:use-module (guix packages)
+  #:use-module ((guix licenses) #:select (gpl2))
+  #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages avahi)
+  #:use-module (gnu packages curl)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages xorg)
+  #:use-module (srfi srfi-26))
+
+(define-public synergy
+  (package
+    (name "synergy")
+    (version "1.10.1")
+    (source
+     (origin
+      (method git-fetch)
+      (uri (git-reference
+            (url "https://github.com/symless/synergy-core.git")
+            (commit (string-append "v" version "-stable"))))
+      (file-name (git-file-name name version))
+      (sha256
+       (base32
+        "112w2xrp04cysd14xk1ax7cllqpcki0pyica4ivrdngr5qw0r9hp"))
+      (modules '((guix build utils)))
+      (snippet
+       ;; Remove unnecessary bundled source and binaries
+       '(begin
+          (delete-file-recursively "ext/openssl")
+          #t))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f ; there is no test target
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-headers
+           (lambda* (#:key inputs #:allow-other-keys)
+             (setenv "CPLUS_INCLUDE_PATH"
+                     (string-append (assoc-ref inputs "avahi")
+                                    "/include/avahi-compat-libdns_sd"))
+             ;; See https://github.com/symless/synergy-core/pull/6359/
+             (substitute* "src/gui/src/ScreenSetupView.cpp"
+               (("#include <QtGui>" m)
+                (string-append m "\n#include <QHeaderView>")))
+             (substitute* "src/gui/src/ActionDialog.cpp"
+               (("#include <QtGui>" m)
+                (string-append m "\n#include <QButtonGroup>")))
+             #t)))))
+    (inputs
+     `(("avahi" ,avahi)
+       ("python"  ,python-wrapper)
+       ("openssl" ,openssl)
+       ("curl"    ,curl)
+       ("libxi"   ,libxi)
+       ("libx11"  ,libx11)
+       ("libxtst" ,libxtst)
+       ("xinput"  ,xinput)
+       ("qtbase" ,qtbase)))
+    (home-page "https://symless.com/synergy")
+    (synopsis "Mouse and keyboard sharing utility")
+    (description
+     "Synergy brings your computers together in one cohesive experience; it's
+software for sharing one mouse and keyboard between multiple computers on your
+desk.")
+    (license gpl2)))