summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/libapr.scm58
-rw-r--r--gnu/packages/patches/libapr-skip-getservbyname-test.patch25
2 files changed, 83 insertions, 0 deletions
diff --git a/gnu/packages/libapr.scm b/gnu/packages/libapr.scm
new file mode 100644
index 0000000000..36f0e1ec31
--- /dev/null
+++ b/gnu/packages/libapr.scm
@@ -0,0 +1,58 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages libapr)
+  #:use-module (guix licenses)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages autotools))
+
+(define-public libapr
+  (package
+    (name "libapr")
+    (version "1.4.6")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://mirrors.ircam.fr/pub/apache//apr/apr-"
+                                 version ".tar.bz2"))
+             (sha256
+              (base32
+               "1g0w9396akmhhrmjzmcwddny5ms43zvj2mrpdkyfcqxizrh5wqwv"))))
+    (build-system gnu-build-system)
+    (arguments
+      `(#:patches (list (assoc-ref %build-inputs
+                                   "patch/skip-test"))
+        #:patch-flags '("-p0")))
+    (inputs `(("perl" ,perl)
+              ("libtool" ,libtool)
+              ("patch/skip-test"
+               ,(search-patch "libapr-skip-getservbyname-test.patch"))))
+    (home-page "http://apr.apache.org/")
+    (synopsis "The Apache Portable Runtime Library")
+    (description 
+     "The mission of the Apache Portable Runtime (APR) project is to create and
+maintain software libraries that provide a predictable and consistent interface
+to underlying platform-specific implementations. The primary goal is to provide
+an API to which software developers may code and be assured of predictable if
+not identical behaviour regardless of the platform on which their software is
+built, relieving them of the need to code special-case conditions to work
+around or take advantage of platform-specific deficiencies or features.")
+    (license asl2.0)))
diff --git a/gnu/packages/patches/libapr-skip-getservbyname-test.patch b/gnu/packages/patches/libapr-skip-getservbyname-test.patch
new file mode 100644
index 0000000000..e12a8eb56c
--- /dev/null
+++ b/gnu/packages/patches/libapr-skip-getservbyname-test.patch
@@ -0,0 +1,25 @@
+--- test/testsock.c	2013-01-24 06:57:21.000000000 +0100
++++ test/testsock.c	2013-01-24 17:24:54.000000000 +0100
+@@ -90,16 +90,22 @@
+     rv = apr_sockaddr_info_get(&sa, NULL, APR_UNSPEC, 0, 0, p);
+     APR_ASSERT_SUCCESS(tc, "Problem generating sockaddr", rv);
+ 
++    /* /etc/services is not available while compiling, so apr_getservbyname
++     * will always return APR_ENOENT. */
++#if 0
+     rv = apr_getservbyname(sa, "ftp");
+     APR_ASSERT_SUCCESS(tc, "Problem getting ftp service", rv);
+     ABTS_INT_EQUAL(tc, 21, sa->port);
++#endif
+ 
+     rv = apr_getservbyname(sa, "complete_and_utter_rubbish");
+     APR_ASSERT_SUCCESS(tc, "Problem getting non-existent service", !rv);
+ 
++#if 0
+     rv = apr_getservbyname(sa, "telnet");
+     APR_ASSERT_SUCCESS(tc, "Problem getting telnet service", rv);
+     ABTS_INT_EQUAL(tc, 23, sa->port);
++#endif
+ }
+ 
+ static apr_socket_t *setup_socket(abts_case *tc)