aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2015-05-07 04:48:52 -0400
committerMark H Weaver <mhw@netris.org>2015-05-07 05:06:26 -0400
commited86593620cad3f069581585cb9e763423d18294 (patch)
treeba2fded969eb60bfc856c83cad894372a3d26c8e /gnu/packages
parenta3f61425a6051c4f7f7f4cfde0f639652fb006f8 (diff)
downloadpatches-ed86593620cad3f069581585cb9e763423d18294.tar
patches-ed86593620cad3f069581585cb9e763423d18294.tar.gz
gnu: Add serf.
* gnu/packages/web.scm (serf): New variable.
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/web.scm74
1 files changed, 74 insertions, 0 deletions
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index fb3ff2d149..396c5f2474 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -46,6 +46,7 @@
#:use-module (gnu packages icu4c)
#:use-module (gnu packages lua)
#:use-module (gnu packages base)
+ #:use-module (gnu packages python)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages xml)
@@ -548,6 +549,79 @@ URLs and extracting their actual media files.")
from streaming URLs. It is a command-line wrapper for the libquvi library.")
(license l:lgpl2.1+)))
+(define-public serf
+ (package
+ (name "serf")
+ (version "1.3.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://serf.googlecode.com/svn/src_releases/serf-"
+ version ".tar.bz2"))
+ (sha256
+ (base32 "14155g48gamcv5s0828bzij6vr14nqmbndwq8j8f9g6vcph0nl70"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("scons" ,scons)
+ ("python" ,python-2)))
+ (propagated-inputs
+ `(("apr" ,apr)
+ ("apr-util" ,apr-util)
+ ("openssl" ,openssl)))
+ (inputs
+ `(;; TODO: Fix build with gss.
+ ;;("gss" ,gss)
+ ("zlib" ,zlib)))
+ (arguments
+ `(#:phases
+ ;; TODO: Add scons-build-system and use it here.
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'scons-propagate-environment
+ (lambda _
+ ;; By design, SCons does not, by default, propagate
+ ;; environment variables to subprocesses. See:
+ ;; <http://comments.gmane.org/gmane.linux.distributions.nixos/4969>
+ ;; Here, we modify the SConstruct file to arrange for
+ ;; environment variables to be propagated.
+ (substitute* "SConstruct"
+ (("^env = Environment\\(")
+ "env = Environment(ENV=os.environ, "))))
+ (add-after 'unpack 'remove-non-c89-comment
+ (lambda _
+ ;; The SConstruct file asks to compile with -std=c89,
+ ;; but there is a non-c89 comment in one of the files.
+ ;; Remove it.
+ (substitute* "test/test_buckets.c"
+ (("^//.*") ""))))
+ (replace 'build
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (apr (assoc-ref inputs "apr"))
+ (apr-util (assoc-ref inputs "apr-util"))
+ (openssl (assoc-ref inputs "openssl"))
+ ;;(gss (assoc-ref inputs "gss"))
+ (zlib (assoc-ref inputs "zlib")))
+ (zero? (system* "scons"
+ (string-append "APR=" apr)
+ (string-append "APU=" apr-util)
+ (string-append "OPENSSL=" openssl)
+ ;;(string-append "GSSAPI=" gss)
+ (string-append "ZLIB=" zlib)
+ (string-append "PREFIX=" out))))))
+ (replace 'check (lambda _ (zero? (system* "scons" "check"))))
+ (replace 'install (lambda _ (zero? (system* "scons" "install")))))))
+ (home-page "https://code.google.com/p/serf/")
+ (synopsis "High-performance asynchronous HTTP client library")
+ (description
+ "serf is a C-based HTTP client library built upon the Apache Portable
+Runtime (APR) library. It multiplexes connections, running the read/write
+communication asynchronously. Memory copies and transformations are kept to a
+minimum to provide high performance operation.")
+ ;; Most of the code is covered by the Apache License, Version 2.0, but the
+ ;; bundled CuTest framework uses a different non-copyleft license.
+ (license (list l:asl2.0 (l:non-copyleft "file://test/CuTest-README.txt")))))
+
(define-public perl-apache-logformat-compiler
(package