summaryrefslogtreecommitdiff
path: root/gnu/packages/xorg.scm
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2016-12-09 20:52:05 +0100
committerMarius Bakke <mbakke@fastmail.com>2017-03-02 18:39:16 +0100
commite17dc7397e94a11f4906376cd8b444fabe1a81b1 (patch)
treebdfb3f47b69e3ddad1df532c63a3a935e43bd20e /gnu/packages/xorg.scm
parent418852f903b71fa91a257073fb3ad04a06542737 (diff)
gnu: Add perl-x11-xcb.
* gnu/packages/xorg.scm (perl-x11-xcb): New variable.
Diffstat (limited to 'gnu/packages/xorg.scm')
-rw-r--r--gnu/packages/xorg.scm56
1 files changed, 56 insertions, 0 deletions
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 7075d72043..d300f232d4 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -11,6 +11,7 @@
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016, 2017 John Darrington <jmd@gnu.org>
+;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -5623,6 +5624,61 @@ provides DEC VT102/VT220 (VTxxx) and Tektronix 4014 compatible terminals for
programs that cannot use the window system directly.")
(license license:x11)))
+(define-public perl-x11-xcb
+ (package
+ (name "perl-x11-xcb")
+ (version "0.16")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/M/MS/MSTPLBG/"
+ "X11-XCB-" version ".tar.gz"))
+ (sha256
+ (base32
+ "14mnvr1001py2z1n43l18yaw0plwvjg5pcsyc7k81sa0amw8ahzw"))))
+ (build-system perl-build-system)
+ (arguments
+ '(;; Disable parallel build to prevent a race condition.
+ #:parallel-build? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'patch-Makefile
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "Makefile"
+ ;; XXX: Without this hack, attempts at using XCB.so fails with
+ ;; an error such as "XCB.so: undefined symbol: xcb_xinerama_id"
+ (("^LDDLFLAGS = ")
+ (string-append "LDDLFLAGS = "
+ "-lxcb -lxcb-util -lxcb-xinerama -lxcb-icccm ")))
+ #t)))
+ ;; Tests require a running X11 server.
+ #:tests? #f))
+ (native-inputs
+ `(("perl-extutils-depends" ,perl-extutils-depends)
+ ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)
+ ("perl-test-deep" ,perl-test-deep)
+ ("perl-test-exception" ,perl-test-exception)))
+ (propagated-inputs
+ `(("perl-data-dump" ,perl-data-dump)
+ ("perl-mouse" ,perl-mouse)
+ ("perl-mousex-nativetraits" ,perl-mousex-nativetraits)
+ ("perl-try-tiny" ,perl-try-tiny)
+ ("perl-xml-descent" ,perl-xml-descent)
+ ("perl-xml-simple" ,perl-xml-simple)
+ ("perl-xs-object-magic" ,perl-xs-object-magic)))
+ (inputs
+ `(("libxcb" ,libxcb)
+ ("xcb-proto" ,xcb-proto)
+ ("xcb-util" ,xcb-util)
+ ("xcb-util-wm" ,xcb-util-wm)))
+ (home-page "http://search.cpan.org/dist/X11-XCB")
+ (synopsis "Perl bindings for libxcb")
+ (description
+ "These bindings wrap @code{libxcb} (a C library to speak with X11,
+in many cases better than @code{Xlib}), and provides an object oriented
+interface to its methods (using @code{Mouse}).")
+ (license (package-license perl))))
+
(define-public perl-x11-protocol
(package
(name "perl-x11-protocol")