APACHE PORTABLE RUNTIME APR-UTIL LIBRARY STATUS:     -*- coding: utf-8 -*-
Last modified at [$Date$]

Releases:
    2.0.0     : None/EOL - merged into apr/trunk/
    1.5.3     : in development on branches/1.5.x/
    1.5.2     : tagged March 30, 2013
    1.5.1     : released October 5, 2012
    1.5.0     : tagged August 6, 2012, not released
    1.4.2     : not released
    1.4.1     : released December 15, 2011
    1.4.0     : not released
    1.3.9     : released August 5, 2009
    1.3.8     : released July 6, 2009
    1.3.7     : released June 5, 2009
    1.3.6     : not released
    1.3.5     : not released
    1.3.4     : released August 15, 2008
    1.3.3     : not released
    1.3.2     : released June 23, 2008
    1.3.1     : not released
    1.3.0     : released June 3, 2008
    1.2.12    : released November 25, 2007
    1.2.11    : not released
    1.2.10    : released September 6, 2007
    1.2.9     : not released
    1.2.8     : released December 4, 2006
    1.2.7     : released April 14, 2006
    1.2.6     : released March 25, 2006
    1.2.5     : not released
    1.2.4     : not released
    1.2.3     : not released
    1.2.2     : released October 11, 2005
    1.2.1     : released August 18, 2005
    1.2.0     : not released
    1.1.2     : released March 17, 2005
    1.1.1     : not released
    1.1.0     : released January 25, 2005
    1.0.1     : released November 19, 2004
    1.0.0     : released September 1, 2004
    0.9.16    : in maintenance
    0.9.15    : released September 6, 2007
    0.9.14    : not released
    0.9.13    : released December 4, 2006
    0.9.12    : released April 13, 2006
    0.9.11    : released March 30, 2006
    0.9.10    : tagged March 22, 2006, not released
    0.9.9     : tagged January 30, 2006, not released
    0.9.8     : tagged January 27, 2006, not released
    0.9.7     : released October 11, 2005
    0.9.6     : released February 7, 2005
    0.9.5     : released November 20, 2004
    0.9.4     : released September 25, 2003
    0.9.3     : tagged March 30, 2002
    0.9.2     : released March 22, 2002      (alpha)
    0.9.1     : released September 11, 2002  (alpha)
    0.9.0     : not released

Bundled with httpd:
    2.0a9     : released December 12, 2000


RELEASE SHOWSTOPPERS:

RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:

    * OpenSSL detection in crypto configure is broken.
      At least on Solaris you need to add -lsocket -lnsl -ldl
      when you link against OpenSSL.
      We could use pkgconfig where available.
      HTTPD uses a macro APACHE_CHECK_SSL_TOOLKIT whih itself
      uses pkgconfig. If pkgconfig is not available, it finds
      the libs more or less by accident via apr-config.
      APR trunk has the needed libs already in the LIBS when testing
      for OpenSSL.

    * Solaris's Sun Freeware (sfw) package has a busted gcc/ld setup.
      This gcc passes -L/opt/sfw/lib to /usr/ccs/bin/ld, but does not 
      pass -R.  Therefore, when trying to run the code using a
      library from /opt/sfw/lib (say, libdb), the run-time linker
      will not look in /opt/sfw/lib and the program will die.
        Status: Workaround is to add "-R/opt/sfw/lib" to LDFLAGS.
                Should check latest sfw package set and see if Sun
                may have fixed this.

    * GDBM usage of errno is not-thread-safe.  Fix.

    * Expat 1.99.2 is getting stale, 1.99.8 for sanity's sake, and
      push to Expat 2.x for apr-util 2.0

    * http://www.ibm.com/software/globalization/icu/downloads.jsp
      (under an X-style license) for an apr_xlate alternative to iconv

Other bugs that need fixing:



Other features that need writing:

    * possibly move test/testdbm* to util/dbu
      Justin says: Do we still want to do this?  testdate is now in test.
      Status: Greg +1 (volunteers)

Documentation that needs writing:

    * API documentation
        Status:

    * doc the lifetimes of apr_dbm return values


Available Patches:


Open Issues:

    * unify parsing of prepared statements in DBD
      Status: committed, awaiting review
              format of arguments (i.e. %s, %d etc.) needs to be agreed upon

    * add binary argument functions to DBD
      Status: committed, awaiting review
              API needs to be agreed upon
