+# TODO
+# - merge to couchdb/couchdb.spec
+
+%define _mochiwebver r113
+%define _ibrowsever 2.1.2
+
Summary: Apache CouchDB
Name: apache-couchdb
-Version: 0.8.1
+Version: 1.0.2
Release: 0.1
License: Apache v2.0
Group: Applications
-Source0: http://www.apache.org/dist/incubator/couchdb/%{version}-incubating/%{name}-%{version}-incubating.tar.gz
-# Source0-md5: 89e037b370bef33be93f0f317e07615f
-URL: http://incubator.apache.org/couchdb/
+Source0: http://www.apache.org/dist/couchdb/%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: 7ffbbe0f23f672181c89923c9f7a1de1
+Source1: %{name}.init
+URL: http://couchdb.apache.org/
BuildRequires: autoconf >= 2.59
BuildRequires: automake >= 1.6.3
-BuildRequires: erlang >= 1:R11B
+BuildRequires: curl-devel
+BuildRequires: erlang >= 1:R12B5
BuildRequires: help2man
BuildRequires: js-devel
BuildRequires: libicu-devel
BuildRequires: libtool
-Requires: Mozilla-SpiderMonkey
-Requires: erlang >= 1:R11B
-Requires: gcc
-Requires: make
-Requires: openssl
+BuildRequires: pkgconfig
+BuildRequires: rpmbuild(macros) >= 1.228
+Requires(post,preun): /sbin/chkconfig
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
+Requires(pre): /bin/id
+Requires(pre): /usr/bin/getgid
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
+Requires: erlang >= 1:R12B5
+Requires: libicu-devel
+Requires: pkgconfig
+# these came from readme, need to check if these are really needed
+#Requires: Mozilla-SpiderMonkey
+#Requires: gcc
+#Requires: make
+#Requires: openssl
+Provides: group(couchdb)
+Provides: user(couchdb)
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
the default view definition language.
%prep
-%setup -q -n %{name}-%{version}-incubating
+%setup -q
%build
+
+%{__libtoolize}
+%{__aclocal} -I m4
+%{__autoconf}
+%{__autoheader}
+%{__automake}
%configure
%{__make}
+
%install
rm -rf $RPM_BUILD_ROOT
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
+rm -rf $RPM_BUILD_ROOT%{_docdir}/couchdb
+install -d $RPM_BUILD_ROOT/var/log/couchdb
+
+install -d $RPM_BUILD_ROOT/etc/sysconfig
+mv $RPM_BUILD_ROOT/etc/default/couchdb $RPM_BUILD_ROOT/etc/sysconfig
+
+install -d $RPM_BUILD_ROOT/etc/rc.d/init.d
+install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/couchdb
+
%clean
rm -rf $RPM_BUILD_ROOT
%groupadd -g 203 -r -f couchdb
%useradd -u 203 -r -d /var/lib/couchdb -s /bin/sh -c "CouchDB Administrator" -g couchdb couchdb
+%post
+/sbin/chkconfig --add couchdb
+%service couchdb restart
+
+%preun
+if [ "$1" = "0" ]; then
+ %service -q couchdb stop
+ /sbin/chkconfig --del couchdb
+fi
+
%postun
if [ "$1" = "0" ]; then
%userremove couchdb
%files
%defattr(644,root,root,755)
%doc AUTHORS BUGS CHANGES NEWS NOTICE README THANKS
+%dir %{_sysconfdir}/couchdb
+%dir %{_sysconfdir}/couchdb/default.d
+%attr(755,couchdb,couchdb) %{_sysconfdir}/couchdb/default.d
+%attr(755,couchdb,couchdb) %dir %{_sysconfdir}/couchdb/local.d
+%attr(644,couchdb,couchdb) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/couchdb/default.ini
+%attr(644,couchdb,couchdb) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/couchdb/local.ini
+# XXX -> sysconfdir
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sysconfig/couchdb
+%config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/couchdb
+%attr(754,root,root) /etc/rc.d/init.d/couchdb
+
+%dir /var/log/couchdb
+%attr(755,couchdb,couchdb) /var/log/couchdb
+
+# XXX: sbindir?
+%attr(755,root,root) %{_bindir}/couchdb
+%attr(755,root,root) %{_bindir}/couchjs
+%{_mandir}/man1/couchdb.1*
+%{_mandir}/man1/couchjs.1*
+
+%dir %{_libdir}/couchdb
+
+%dir %{_libdir}/couchdb/bin
+%attr(755,root,root) %{_libdir}/couchdb/bin/couchjs
+
+%dir %{_libdir}/couchdb/erlang
+%dir %{_libdir}/couchdb/erlang/lib
+# XXX: better have unversioned dirs?
+%dir %{_libdir}/couchdb/erlang/lib/couch-%{version}
+%dir %{_libdir}/couchdb/erlang/lib/couch-%{version}/ebin
+%{_libdir}/couchdb/erlang/lib/couch-%{version}/ebin/*.beam
+%{_libdir}/couchdb/erlang/lib/couch-%{version}/ebin/*.app
+# XXX check if this include is needed runtime
+%dir %{_libdir}/couchdb/erlang/lib/couch-%{version}/include
+%{_libdir}/couchdb/erlang/lib/couch-%{version}/include/couch_db.hrl
+
+# XXX: check if .la is needed
+%dir %{_libdir}/couchdb/erlang/lib/couch-%{version}/priv
+%{_libdir}/couchdb/erlang/lib/couch-%{version}/priv/couchspawnkillable
+
+%dir %{_libdir}/couchdb/erlang/lib/couch-%{version}/priv/lib
+%{_libdir}/couchdb/erlang/lib/couch-%{version}/priv/lib/couch_icu_driver.la
+%attr(755,root,root) %{_libdir}/couchdb/erlang/lib/couch-%{version}/priv/lib/couch_icu_driver.so
+/usr/lib64/couchdb/erlang/lib/couch-1.0.2/include/couch_js_functions.hrl
+/usr/lib64/couchdb/erlang/lib/couch-1.0.2/priv/stat_descriptions.cfg
+
+# XXX: better have unversioned dirs?
+%dir %{_libdir}/couchdb/erlang/lib/mochiweb-%{_mochiwebver}
+%dir %{_libdir}/couchdb/erlang/lib/mochiweb-%{_mochiwebver}/ebin
+%{_libdir}/couchdb/erlang/lib/mochiweb-%{_mochiwebver}/ebin/*.beam
+%{_libdir}/couchdb/erlang/lib/mochiweb-%{_mochiwebver}/ebin/*.app
+
+%dir %{_libdir}/couchdb/erlang/lib/etap
+%{_libdir}/couchdb/erlang/lib/etap/ebin
+
+%dir %{_libdir}/couchdb/erlang/lib/erlang-oauth
+%{_libdir}/couchdb/erlang/lib/erlang-oauth/ebin
+
+%dir %{_libdir}/couchdb/erlang/lib/ibrowse-%{_ibrowsever}
+%{_libdir}/couchdb/erlang/lib/ibrowse-%{_ibrowsever}/ebin
+
+%attr(755,couchdb,couchdb) %{_datadir}/couchdb