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 +;;; +;;; 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 . + +(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)