aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am2
-rw-r--r--gnu/packages/libapr.scm58
-rw-r--r--gnu/packages/patches/libapr-skip-getservbyname-test.patch25
3 files changed, 85 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index 07b8428a8b..bccb5ec2a8 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -86,6 +86,7 @@ MODULES = \
gnu/packages/indent.scm \
gnu/packages/ld-wrapper.scm \
gnu/packages/less.scm \
+ gnu/packages/libapr.scm \
gnu/packages/libevent.scm \
gnu/packages/libffi.scm \
gnu/packages/libidn.scm \
@@ -156,6 +157,7 @@ dist_patch_DATA = \
gnu/packages/patches/guile-1.8-cpp-4.5.patch \
gnu/packages/patches/guile-default-utf8.patch \
gnu/packages/patches/guile-relocatable.patch \
+ gnu/packages/patches/libapr-skip-getservbyname-test.patch \
gnu/packages/patches/libevent-dns-tests.patch \
gnu/packages/patches/libtool-skip-tests.patch \
gnu/packages/patches/lsh-guile-compat.patch \
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)