aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Bavier <bavier@member.fsf.org>2014-09-29 00:30:36 -0500
committerEric Bavier <bavier@member.fsf.org>2014-09-29 09:40:31 -0500
commitb5f4bb855d97708f12b29bdce4d81ae68ee960ff (patch)
treee6a93ca4764bfa78461ec43948971505df6e496b
parent335bc6833fc75f6cbbc5f15c0d3bd9d0e1b5b170 (diff)
downloadguix-b5f4bb855d97708f12b29bdce4d81ae68ee960ff.tar
guix-b5f4bb855d97708f12b29bdce4d81ae68ee960ff.tar.gz
gnu: Add synergy.
* gnu/packages/synergy.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it.
-rw-r--r--gnu-system.am1
-rw-r--r--gnu/packages/synergy.scm96
2 files changed, 97 insertions, 0 deletions
diff --git a/gnu-system.am b/gnu-system.am
index bb944fbf9e..9cac7ec344 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -230,6 +230,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/ssh.scm \
gnu/packages/stalonetray.scm \
gnu/packages/swig.scm \
+ gnu/packages/synergy.scm \
gnu/packages/tcl.scm \
gnu/packages/tcsh.scm \
gnu/packages/telephony.scm \
diff --git a/gnu/packages/synergy.scm b/gnu/packages/synergy.scm
new file mode 100644
index 0000000000..41f8855a13
--- /dev/null
+++ b/gnu/packages/synergy.scm
@@ -0,0 +1,96 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 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)
+ #: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 xorg)
+ #:use-module (gnu packages zip)
+ #:use-module (srfi srfi-26))
+
+(define-public synergy
+ (package
+ (name "synergy")
+ (version "1.5.1-r2398")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://www.synergy-project.org/files/packages/"
+ "synergy-" version "-Source.tar.gz"))
+ (sha256
+ (base32
+ "19q8ck15f0jgpbzlm34dzp046wf3iiwa21s1qfyj5sj7xjxwa367"))))
+ (build-system cmake-build-system)
+ (native-inputs `(("unzip" ,unzip)))
+ (inputs
+ `(("python" ,python-wrapper)
+ ("curl" ,curl)
+ ("libxi" ,libxi)
+ ("libx11" ,libx11)
+ ("libxtst" ,libxtst)
+ ("xinput" ,xinput)))
+ (arguments
+ `(#:phases
+ (let ((srcdir (string-append
+ "../synergy-"
+ (car (string-split ,version #\-))
+ "-Source")))
+ (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")))
+ '("cryptopp562" "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")))
+ (begin
+ (mkdir-p (string-append out "/bin"))
+ (for-each
+ (lambda (f)
+ (copy-file (string-append srcdir "/bin/" f)
+ (string-append out "/bin/" f)))
+ '("synergyc" "synergys" "synergyd"
+ "usynergy" "syntool")))))
+ %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)))