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 ;;; Copyright © 2016 David Craven ;;; Copyright © 2016, 2017 John Darrington +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -5623,6 +5624,61 @@ (define-public xterm 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")