summary refs log tree commit diff
path: root/gnu/packages/libevent.scm
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2016-12-09 18:13:58 +0100
committerMarius Bakke <mbakke@fastmail.com>2017-03-02 18:39:14 +0100
commitad8f8e759575b77b5f589654246b786356b9bb0a (patch)
treec60a1a906bd265ca276cfeb1b3843581faa50bb4 /gnu/packages/libevent.scm
parent647b6d3847a56c9b95e505cdb6e18a261329f998 (diff)
downloadguix-ad8f8e759575b77b5f589654246b786356b9bb0a.tar.gz
gnu: Add perl-ev.
* gnu/packages/libevent.scm (perl-ev): New variable.
Diffstat (limited to 'gnu/packages/libevent.scm')
-rw-r--r--gnu/packages/libevent.scm43
1 files changed, 43 insertions, 0 deletions
diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm
index e552a4ee38..8aca5daf87 100644
--- a/gnu/packages/libevent.scm
+++ b/gnu/packages/libevent.scm
@@ -26,9 +26,11 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system perl)
   #:use-module (gnu packages base)
   #:use-module (gnu packages python)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config))
 
 (define-public libevent
@@ -149,3 +151,44 @@ resolution, asynchronous file system operations, and threading primitives.")
     ;; A few files fall under other non-copyleft licenses; see 'LICENSE' for
     ;; details.
     (license x11)))
+
+(define-public perl-ev
+  (package
+    (name "perl-ev")
+    (version "4.22")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://cpan/authors/id/M/ML/MLEHMANN/EV-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "14d9115q8f2ca2q3vbcalm55zqsbx8xjq5aj098laj9f9rrzirra"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Drop bundled libev.
+                  (delete-file-recursively "libev")
+                  #t))))
+    (build-system perl-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'unpack-libev
+           ;; This package requires the libev *sources* in order
+           ;; to build. Unpack system libev here...
+           (lambda* (#:key inputs #:allow-other-keys)
+             (mkdir "./libev")
+             (zero? (system* "tar" "-xf" (assoc-ref inputs "libev-source")
+                             "-C" "./libev" "--strip-components=1")))))))
+    (native-inputs
+     `(("libev-source" ,(package-source libev))
+       ("perl-canary-stability" ,perl-canary-stability)))
+    (propagated-inputs
+     `(("perl-common-sense" ,perl-common-sense)))
+    (home-page "http://search.cpan.org/dist/EV")
+    (synopsis "Perl interface to libev")
+    (description
+     "This module provides an interface to @code{libev}, a high performance
+full-featured event loop.  It can be used through the @code{AnyEvent} module
+and still be faster than other event loops currently supported in Perl.")
+    (license (package-license perl))))