~ruther/guix-local

ed86593620cad3f069581585cb9e763423d18294 — Mark H Weaver 11 years ago a3f6142
gnu: Add serf.

* gnu/packages/web.scm (serf): New variable.
1 files changed, 74 insertions(+), 0 deletions(-)

M gnu/packages/web.scm
M gnu/packages/web.scm => gnu/packages/web.scm +74 -0
@@ 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