summary refs log tree commit diff
diff options
context:
space:
mode:
authorCyril Roelandt <tipecaml@gmail.com>2013-01-25 20:42:49 +0100
committerLudovic Courtès <ludo@gnu.org>2013-01-25 21:52:08 +0100
commitdf84950e44050ae98d7e77905ceda381e43a4127 (patch)
tree37810f9028ff49f94701c0520c712e2ee48a05d2
parent12a5199a27fc53a4c78f2b13756e2ba9fec195a6 (diff)
downloadguix-df84950e44050ae98d7e77905ceda381e43a4127.tar.gz
gnu: Add libapr.
* gnu/packages/libapr.scm: New file.
* gnu/packages/patches/libapr-skip-getservbyname-test.patch: New file
* Makefile.am: Add them
-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)