dev-db/couchdb: allow erlang-18 (fixes bug 554210)
authorDirkjan Ochtman <djc@gentoo.org>
Thu, 24 Sep 2015 06:09:53 +0000 (08:09 +0200)
committerDirkjan Ochtman <djc@gentoo.org>
Thu, 24 Sep 2015 06:09:53 +0000 (08:09 +0200)
Package-Manager: portage-2.2.20.1

dev-db/couchdb/couchdb-1.6.1-r1.ebuild [new file with mode: 0644]
dev-db/couchdb/files/1.6.1-erlang-18.patch [new file with mode: 0644]

diff --git a/dev-db/couchdb/couchdb-1.6.1-r1.ebuild b/dev-db/couchdb/couchdb-1.6.1-r1.ebuild
new file mode 100644 (file)
index 0000000..aca6394
--- /dev/null
@@ -0,0 +1,76 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils multilib pax-utils user
+
+DESCRIPTION="Apache CouchDB is a distributed, fault-tolerant and schema-free document-oriented database."
+HOMEPAGE="http://couchdb.apache.org/"
+SRC_URI="mirror://apache/couchdb/source/${PV}/apache-${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="selinux test"
+
+RDEPEND=">=dev-libs/icu-4.3.1:=
+               dev-lang/erlang[ssl]
+               >=dev-libs/openssl-0.9.8j:0
+               >=net-misc/curl-7.18.2
+               <dev-lang/spidermonkey-1.8.7
+               selinux? ( sec-policy/selinux-couchdb )"
+
+DEPEND="${RDEPEND}"
+RESTRICT=test
+
+S="${WORKDIR}/apache-${P}"
+
+pkg_setup() {
+       enewgroup couchdb
+       enewuser couchdb -1 -1 /var/lib/couchdb couchdb
+}
+
+src_prepare() {
+       sed -i ./src/couchdb/priv/Makefile.* -e 's|-Werror||g'
+       epatch "${FILESDIR}/${PV}-erlang-18.patch"
+}
+
+src_configure() {
+       econf \
+               --with-erlang="${EPREFIX}"/usr/$(get_libdir)/erlang/usr/include \
+               --localstatedir="${EPREFIX}"/var \
+               --with-js-lib="${EPREFIX}"/usr/$(get_libdir)
+       # bug 296609, upstream bug #COUCHDB-621
+       sed -e "s#localdocdir = /usr/share/doc/couchdb#localdocdir = "${EPREFIX}"/usr/share/doc/${PF}#" -i Makefile || die "sed failed"
+}
+
+src_compile() {
+       emake
+       # bug 442616
+       pax-mark mr src/couchdb/priv/couchjs
+}
+
+src_test() {
+       emake distcheck
+}
+
+src_install() {
+       emake DESTDIR="${D}" install
+
+       fowners couchdb:couchdb \
+               /var/lib/couchdb \
+               /var/log/couchdb
+
+       for f in "${ED}"/etc/couchdb/*.ini ; do
+               fowners root:couchdb "${f#${ED}}"
+               fperms 660 "${f#${ED}}"
+       done
+       fperms 664 /etc/couchdb/default.ini
+
+       newinitd "${FILESDIR}/couchdb.init-4" couchdb
+       newconfd "${FILESDIR}/couchdb.conf-2" couchdb
+
+       sed -i -e "s:LIBDIR:$(get_libdir):" "${ED}/etc/conf.d/couchdb"
+}
diff --git a/dev-db/couchdb/files/1.6.1-erlang-18.patch b/dev-db/couchdb/files/1.6.1-erlang-18.patch
new file mode 100644 (file)
index 0000000..a0ffea8
--- /dev/null
@@ -0,0 +1,99 @@
+From 95cb436be30305efa091809813b64ef31af968c8 Mon Sep 17 00:00:00 2001
+From: Dave Cottlehuber <dch@apache.org>
+Date: Fri, 26 Jun 2015 10:31:27 +0200
+Subject: [PATCH] build: support OTP-18.0
+
+---
+ INSTALL.Unix                      | 2 +-
+ INSTALL.Windows                   | 2 +-
+ configure.ac                      | 8 ++++----
+ share/doc/src/install/unix.rst    | 2 +-
+ share/doc/src/install/windows.rst | 2 +-
+ 5 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/INSTALL.Unix b/INSTALL.Unix
+index f66f98c..4c63bc8 100644
+--- a/INSTALL.Unix
++++ b/INSTALL.Unix
+@@ -39,7 +39,7 @@ Dependencies
+ You should have the following installed:
+- * Erlang OTP (>=R14B01, =<R17) (http://erlang.org/)
++ * Erlang OTP (>=R14B01, =<R18) (http://erlang.org/)
+  * ICU                          (http://icu-project.org/)
+  * OpenSSL                      (http://www.openssl.org/)
+  * Mozilla SpiderMonkey (1.8.5) (http://www.mozilla.org/js/spidermonkey/)
+diff --git a/INSTALL.Windows b/INSTALL.Windows
+index 29c69b0..1ca04fd 100644
+--- a/INSTALL.Windows
++++ b/INSTALL.Windows
+@@ -29,7 +29,7 @@ Dependencies
+ You will need the following installed:
+- * Erlang OTP (>=14B01, <R17)    (http://erlang.org/)
++ * Erlang OTP (>=14B01, <R18)    (http://erlang.org/)
+  * ICU        (>=4.*)            (http://icu-project.org/)
+  * OpenSSL    (>=0.9.8r)         (http://www.openssl.org/)
+  * Mozilla SpiderMonkey (=1.8.5) (http://www.mozilla.org/js/spidermonkey/)
+diff --git a/configure.ac b/configure.ac
+index 103f029..bf9ffc4 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -411,7 +411,7 @@ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Erlang version compatibility" >&5
+ $as_echo_n "checking Erlang version compatibility... " >&6; }
+-erlang_version_error="The installed Erlang version must be >= R14B (erts-5.8.1) and =< 17 (erts-6.0)"
++erlang_version_error="The installed Erlang version must be >= R14B (erts-5.8.1) and =< 18 (erts-7.0)"
+ version="`${ERL} -version 2>&1 | ${SED} 's/[[^0-9]]/ /g'` 0 0 0"
+ major_version=`echo $version | ${AWK} "{print \\$1}"`
+@@ -419,7 +419,7 @@ minor_version=`echo $version | ${AWK} "{print \\$2}"`
+ patch_version=`echo $version | ${AWK} "{print \\$3}"`
+ echo -n "detected Erlang version: $major_version.$minor_version.$patch_version..."
+-if test $major_version -lt 5 -o $major_version -gt 6; then
++if test $major_version -lt 5 -o $major_version -gt 7; then
+     as_fn_error $? "$erlang_version_error major_version does not match" "$LINENO" 5
+ fi
+@@ -438,9 +438,9 @@ otp_release="`\
+ AC_SUBST(otp_release)
+ AM_CONDITIONAL([USE_OTP_NIFS],
+-    [can_use_nifs=$(echo $otp_release | grep -E "^(R14B|R15|R16|17)")])
++    [can_use_nifs=$(echo $otp_release | grep -E "^(R14B|R15|R16|17|18)")])
+ AM_CONDITIONAL([USE_EJSON_COMPARE_NIF],
+-    [can_use_ejson=$(echo $otp_release | grep -E "^(R14B03|R15|R16|17)")])
++    [can_use_ejson=$(echo $otp_release | grep -E "^(R14B03|R15|R16|17|18)")])
+ has_crypto=`\
+     ${ERL} -eval "\
+diff --git a/share/doc/src/install/unix.rst b/share/doc/src/install/unix.rst
+index 76fe922..904c128 100644
+--- a/share/doc/src/install/unix.rst
++++ b/share/doc/src/install/unix.rst
+@@ -52,7 +52,7 @@ Dependencies
+ You should have the following installed:
+-* `Erlang OTP (>=R14B01, =<R17) <http://erlang.org/>`_
++* `Erlang OTP (>=R14B01, =<R18) <http://erlang.org/>`_
+ * `ICU                          <http://icu-project.org/>`_
+ * `OpenSSL                      <http://www.openssl.org/>`_
+ * `Mozilla SpiderMonkey (1.8.5) <http://www.mozilla.org/js/spidermonkey/>`_
+diff --git a/share/doc/src/install/windows.rst b/share/doc/src/install/windows.rst
+index b7b66af..494ef65 100644
+--- a/share/doc/src/install/windows.rst
++++ b/share/doc/src/install/windows.rst
+@@ -90,7 +90,7 @@ Dependencies
+ You should have the following installed:
+-* `Erlang OTP (>=14B01, <R17)    <http://erlang.org/>`_
++* `Erlang OTP (>=14B01, <R18)    <http://erlang.org/>`_
+ * `ICU        (>=4.*)            <http://icu-project.org/>`_
+ * `OpenSSL    (>0.9.8r)          <http://www.openssl.org/>`_
+ * `Mozilla SpiderMonkey (=1.8.5) <http://www.mozilla.org/js/spidermonkey/>`_