%define apuver 1

Summary: Apache Portable Runtime Utility library
Summary(ja): Apache ポータブルランタイムユーティリティライブラリ
Name: apr-util
Version: 1.3.9
Release: 4%{?_dist_release}
License: Apache Software License 2.0
Group: System Environment/Libraries
URL: http://apr.apache.org/
Source0: %{name}-%{version}.tar.bz2
Patch1: apr-util-1.2.7-pkgconf.patch
Patch2: apr-util-1.3.7-nodbmdso.patch
#security fix
Patch100: apr-util-1.3.x-CVE-2009-0023.diff
Patch110: apr-util-1.3.x-CVE-2009-1955.diff
Patch120: apr-util-1.3.4_CVE-2009-1956.patch
Patch130: apr-util-1.3.x-CVE-2009-2412.diff

BuildRoot: %{_tmppath}/%{name}-%{version}-root
BuildRequires: autoconf, doxygen, apr-devel >= 1.2.0
BuildRequires: db4-devel, expat-devel, libuuid-devel
BuildRequires: postgresql-devel
BuildRequires: MySQL-devel
BuildRequires: zlib-devel
BuildRequires: sqlite3-devel
BuildRequires: unixODBC-devel
BuildRequires: openldap-devel
Conflicts: subversion < 0.20.1-2
Obsoletes: apache2-apr

%description
The mission of the Apache Portable Runtime (APR) is to provide a
free library of C data structures and routines.  This library
contains additional utility interfaces for APR; including support
for XML, LDAP, database interfaces, URI parsing and more.

%package devel
Summary: APR utility library development kit
Summary(ja): APR ユーティリティライブラリ開発キット
Group: Development/Libraries
Requires: apr-util = %{version}-%{release}, apr-devel, pkgconfig
Requires: openldap-devel, db4-devel, expat-devel
Conflicts: subversion-devel < 0.20.1-2
Obsoletes: apache2-apr-devel

%description devel
This package provides the support files which can be used to 
build applications using the APR utility library.  The mission 
of the Apache Portable Runtime (APR) is to provide a free 
library of C data structures and routines.

%package pgsql
Summary: APR utility library PostgreSQL DBD driver
Group: System Environment/Libraries
Requires: apr-util = %{version}-%{release}

%description pgsql
This package provides the PostgreSQL driver for the apr-util
DBD (database abstraction) interface.

%package mysql
Summary: APR utility library MySQL DBD driver
Group: System Environment/Libraries
Requires: apr-util = %{version}-%{release}

%description mysql
This package provides the MySQL driver for the apr-util DBD
(database abstraction) interface.

%package sqlite
Summary: APR utility library SQLite DBD driver
Group: System Environment/Libraries
Requires: apr-util = %{version}-%{release}

%description sqlite
This package provides the SQLite driver for the apr-util DBD
(database abstraction) interface.

#%package freetds
#Group: Development/Libraries
#Summary: APR utility library FreeTDS DBD driver
#BuildRequires: freetds-devel
#Requires: apr-util = %{version}-%{release}

#%description freetds
#This package provides the FreeTDS driver for the apr-util DBD
#(database abstraction) interface.

%package odbc
Summary: APR utility library ODBC DBD driver
Group: System Environment/Libraries
Requires: apr-util = %{version}-%{release}

%description odbc
This package provides the ODBC driver for the apr-util DBD
(database abstraction) interface.

%package ldap
Summary: APR utility library LDAP support
Group: System Environment/Libraries
Requires: apr-util = %{version}-%{release}

%description ldap
This package provides the LDAP support for the apr-util.

%prep
%setup -q
%patch1 -p1 -b .pkgconf
%patch2 -p1 -b .nodbmdso

#patch100 -p0 -b .CVE-2009-0023
#patch110 -p0 -b .CVE-2009-1955
#patch120 -p0 -b .CVE-2009-1956
#patch130 -p4 -b .CVE-2009-2412

%build
autoheader && autoconf
%configure --with-apr=%{_prefix} \
        --includedir=%{_includedir}/apr-%{apuver} \
        --with-ldap --without-gdbm \
        --with-sqlite3 --with-pgsql --with-mysql --with-odbc \
        --with-berkeley-db \
        --without-sqlite2 
#        --disable-util-dso        
make %{?_smp_mflags} && make dox

%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT

mkdir -p $RPM_BUILD_ROOT/%{_datadir}/aclocal
install -m 644 build/find_apu.m4 $RPM_BUILD_ROOT/%{_datadir}/aclocal

# Documentation
rm -rf html
mkdir -p html
cp -pr docs/dox/html/* html

# Unpackaged files; remove the static libaprutil
rm -f $RPM_BUILD_ROOT%{_libdir}/aprutil.exp \
      $RPM_BUILD_ROOT%{_libdir}/libapr*.a

# remove *.la
rm -f $RPM_BUILD_ROOT%{_libdir}/libapr*.la

# And remove the reference to the static libaprutil from the .la
# file.
#sed -i '/^old_library/s,libapr.*\.a,,' \
#      $RPM_BUILD_ROOT%{_libdir}/libapr*.la

# Remove unnecessary exports from dependency_libs
#sed -ri '/^dependency_libs/{s,-l(pq|sqlite[0-9]|rt|dl|uuid) ,,g}' \
#      $RPM_BUILD_ROOT%{_libdir}/libapr*.la

# Trim libtool DSO cruft
rm -f $RPM_BUILD_ROOT%{_libdir}/apr-util-%{apuver}/*.*a

%check
# Run the less verbose test suites
export MALLOC_CHECK_=2 MALLOC_PERTURB_=$(($RANDOM % 255 + 1))
cd test
make %{?_smp_mflags} testall
# testall breaks with DBD DSO; ignore
export LD_LIBRARY_PATH="`echo "../dbm/.libs:../dbd/.libs:../ldap/.libs:$LD_LIBRARY_PATH" | sed -e 's/::*$//'`"
./testall -v -q || true
./testall testrmm
./testall testdbm

%clean
rm -rf $RPM_BUILD_ROOT

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%files
%defattr(-,root,root,-)
%doc CHANGES LICENSE NOTICE
%{_libdir}/libaprutil-%{apuver}.so.*
%dir %{_libdir}/apr-util-%{apuver}

%files devel
%defattr(-,root,root,-)
%{_bindir}/apu-%{apuver}-config
#{_libdir}/libaprutil-%{apuver}.a
%{_libdir}/libaprutil-%{apuver}.so
%{_includedir}/apr-%{apuver}/*.h
%{_libdir}/pkgconfig/*.pc
%{_datadir}/aclocal/*.m4
%doc --parents html

%files pgsql
%defattr(-,root,root,-)
%{_libdir}/apr-util-%{apuver}/apr_dbd_pgsql*

%files mysql
%defattr(-,root,root,-)
%{_libdir}/apr-util-%{apuver}/apr_dbd_mysql*

%files sqlite
%defattr(-,root,root,-)
%{_libdir}/apr-util-%{apuver}/apr_dbd_sqlite*

#files freetds
#defattr(-,root,root,-)
#{_libdir}/apr-util-%{apuver}/apr_dbd_freetds*

%files odbc
%defattr(-,root,root,-)
%{_libdir}/apr-util-%{apuver}/apr_dbd_odbc*

%files ldap
%defattr(-,root,root,-)
%{_libdir}/apr-util-%{apuver}/apr_ldap*

%changelog
* Fri Feb 12 2010 MATSUBAYASHI Kohji <shaolin@vinelinux.org> - 1.3.9-4
- rebuilt with gcc-4.4.3-3 on ppc

* Fri Feb  5 2010 MATSUBAYASHI Kohji <shaolin@vinelinux.org> - 1.3.9-3
- rebuilt with rpm-4.8.0-3 (on ppc)

* Tue Feb 02 2010 Daisuke SUZUKI <daisuke@linux.or.jp> 1.3.9-2
- rebuild with db4-4.8.0

* Sat Jan  9 2010 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.3.9-1
- new upstream release
- dropped Patch100, 110, 120 and 130 (merged into upstream)
- added BR: zlib-devel

* Mon Aug 10 2009 Satoshi IWAMOTO <satoshi.iwamoto@nifty.ne.jp> 1.3.4-5
- add Patch130 for fix CVE-2009-2412 (IOF apr_rmm_malloc)
- This patch is included in 1.3.9

* Thu Jun 11 2009 Satoshi IWAMOTO <satoshi.iwamoto@nifty.ne.jp> 1.3.4-4
- add patch100 for fix CVE-2009-0023
- add patch110 for fix CVE-2009-1955
- add patch120 for fix CVE-2009-1956
- These patches are included in 1.3.7 or later

* Fri May 22 2009 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.3.4-3
- rebuilt with MySQL-5.1.34.

* Thu Apr  9 2009 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.3.4-2
- rebuilt with openldap-2.4.11

* Sat Oct 18 2008 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.3.4-1vl5
- new upstream release
- split out DBD drivers and ldap support into subpackage

* Fri Jun 20 2008 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.3.0-1vl5
- new upstream release
- built with db-4.6.21

* Sat Apr 19 2008 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.2.12-2vl5
- removed *.la files from devel package

* Sat Apr  5 2008 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.2.12-1vl5
- new upstream release
- added Patch3 from Fedora Core
  * Fri Mar 23 2007 Joe Orton <jorton@redhat.com> 1.2.8-6
  - add DBD DSO lifetime fix (r521327)

* Thu Feb 21 2008 AKIYAMA Kazuhito <akiyama@yb3.so-net.ne.jp> 1.2.10-0vl2
- rebuild with expat-2.0.1

* Sat Sep 29 2007 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.2.10-0vl1
- new upstream release

* Thu May 10 2007 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 1.2.8-0vl2
- rebuilt with new toolchain

* Sat Jan 20 2007 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.2.8-0vl1
- new upstream release
- dropped Patch1 (merged into upstream)

* Sun Aug 27 2006 NAKAMURA Kenta <kenta@vinelinux.org> 1.2.7-0vl2
- rebuilt with openldap-2.3.27-0vl1

* Mon May 29 2006 Daisuke SUZUKI <daisuke@linux.or.jp> 1.2.7-0vl1
- initial build for Vine Linux based on FC package

* Tue May  2 2006 Joe Orton <jorton@redhat.com> 1.2.7-2
- update to 1.2.7
- use pkg-config in apu-1-config to make it libdir-agnostic

* Thu Apr  6 2006 Joe Orton <jorton@redhat.com> 1.2.6-2
- update to 1.2.6
- define LDAP_DEPRECATED in apr_ldap.h (r391985, #188073)

* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 1.2.2-4.2
- bump again for double-long bug on ppc(64)

* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 1.2.2-4.1
- rebuilt for new gcc4.1 snapshot and glibc changes

* Mon Jan 30 2006 Joe Orton <jorton@redhat.com> 1.2.2-4
- rebuild to drop reference to libexpat.la

* Wed Jan 18 2006 Joe Orton <jorton@redhat.com> 1.2.2-3
- disable sqlite2 support
- BuildRequire e2fsprogs-devel
- enable malloc paranoia in %%check

* Tue Jan  3 2006 Jesse Keating <jkeating@redhat.com> 1.2.2-2.2
- rebuilt again

* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com>
- rebuilt

* Tue Dec  6 2005 Joe Orton <jorton@redhat.com> 1.2.2-2
- trim exports from .la file/--libs output (#174924)

* Fri Nov 25 2005 Joe Orton <jorton@redhat.com> 1.2.2-1
- update to 1.2.2

* Thu Oct 20 2005 Joe Orton <jorton@redhat.com> 0.9.7-3
- fix epoch again

* Thu Oct 20 2005 Joe Orton <jorton@redhat.com> 0.9.7-2
- update to 0.9.7
- drop static libs (#170051)

* Tue Jul 26 2005 Joe Orton <jorton@redhat.com> 0.9.6-3
- add FILE bucket fix for truncated files (#159191)
- add epoch to dependencies

* Fri Mar  4 2005 Joe Orton <jorton@redhat.com> 0.9.6-2
- rebuild

* Wed Feb  9 2005 Joe Orton <jorton@redhat.com> 0.9.6-1
- update to 0.9.6

* Wed Jan 19 2005 Joe Orton <jorton@redhat.com> 0.9.5-3
- restore db-4.3 detection lost in 0.9.5 upgrade

* Wed Jan 19 2005 Joe Orton <jorton@redhat.com> 0.9.5-2
- rebuild

* Mon Nov 22 2004 Joe Orton <jorton@redhat.com> 0.9.5-1
- update to 0.9.5

* Thu Nov 11 2004 Jeff Johnson <jbj@jbj.org> 0.9.4-19
- actually explicitly check for and detect db-4.3.

* Thu Nov 11 2004 Jeff Johnson <jbj@jbj.org> 0.9.4-18
- rebuild against db-4.3.21.

* Fri Sep 17 2004 Joe Orton <jorton@redhat.com> 0.9.4-17
- add security fix for CAN-2004-0786

* Sat Jun 19 2004 Joe Orton <jorton@redhat.com> 0.9.4-16
- have -devel require matching release of apr-util

* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt

* Thu Apr  1 2004 Joe Orton <jorton@redhat.com> 0.9.4-14
- fix use of SHA1 passwords (#119651)

* Tue Mar 30 2004 Joe Orton <jorton@redhat.com> 0.9.4-13
- remove fundamentally broken check_sbcs() from xlate code

* Fri Mar 19 2004 Joe Orton <jorton@redhat.com> 0.9.4-12
- tweak xlate fix

* Fri Mar 19 2004 Joe Orton <jorton@redhat.com> 0.9.4-11
- rebuild with xlate fixes and tests enabled

* Tue Mar 02 2004 Elliot Lee <sopwith@redhat.com> 0.9.4-10.1
- rebuilt

* Tue Mar  2 2004 Joe Orton <jorton@redhat.com> 0.9.4-10
- rename sdbm_* symbols to apu__sdbm_*

* Mon Feb 16 2004 Joe Orton <jorton@redhat.com> 0.9.4-9
- fix sdbm apr_dbm_exists() on s390x/ppc64

* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com> 0.9.4-8
- rebuilt

* Thu Feb  5 2004 Joe Orton <jorton@redhat.com> 0.9.4-7
- fix warnings from use of apr_optional*.h with gcc 3.4

* Thu Jan 29 2004 Joe Orton <jorton@redhat.com> 0.9.4-6
- drop gdbm support

* Thu Jan  8 2004 Joe Orton <jorton@redhat.com> 0.9.4-5
- fix DB library detection

* Sat Dec 13 2003 Jeff Johnson <jbj@jbj.org> 0.9.4-4
- rebuild against db-4.2.52.

* Mon Oct 13 2003 Jeff Johnson <jbj@jbj.org> 0.9.4-3
- rebuild against db-4.2.42.

* Mon Oct  6 2003 Joe Orton <jorton@redhat.com> 0.9.4-2
- fix 'apu-config --apu-la-file' output

* Mon Oct  6 2003 Joe Orton <jorton@redhat.com> 0.9.4-1
- update to 0.9.4.

* Tue Jul 22 2003 Nalin Dahyabhai <nalin@redhat.com> 0.9.3-10
- rebuild

* Mon Jul  7 2003 Joe Orton <jorton@redhat.com> 0.9.3-9
- rebuild
- don't run testuuid test because of #98677

* Thu Jul  3 2003 Joe Orton <jorton@redhat.com> 0.9.3-8
- rebuild

* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com>
- rebuilt

* Tue May 20 2003 Joe Orton <jorton@redhat.com> 0.9.3-6
- fix to detect crypt_r correctly (CAN-2003-0195)

* Thu May 15 2003 Joe Orton <jorton@redhat.com> 0.9.3-5
- fix to try linking against -ldb first (#90917)
- depend on openldap, gdbm, db4, expat appropriately.

* Tue May 13 2003 Joe Orton <jorton@redhat.com> 0.9.3-4
- rebuild

* Wed May  7 2003 Joe Orton <jorton@redhat.com> 0.9.3-3
- make devel package conflict with old subversion-devel
- run the less crufty parts of the test suite

* Tue Apr 29 2003 Joe Orton <jorton@redhat.com> 0.9.3-2
- run ldconfig in post/postun

* Mon Apr 28 2003 Joe Orton <jorton@redhat.com> 0.9.3-1
- initial build
