summaryrefslogtreecommitdiff
path: root/CHANGES
blob: f57d8d705da020acd8b5793966483ccd16595fc1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
                                                     -*- coding: utf-8 -*-
Changes with APR-util 1.3.0

  *) Add limited apr_dbd_freetds driver (MSSQL and Sybase) [Nick Kew]

  *) Commit relicensed apr_dbd_mysql driver to /trunk/  [Nick Kew]

  *) Support BerkeleyDB 4.6.  [Arfrever Frehtes Taifersar Arahesis]

  *) Support Tivoli ITDS LDAP client library.  [Paul Reder]

  *) Portably implement testdate's long-time constants to solve
     compilation faults where #LL isn't valid.  [Curt Arnold]

  *) Use buffered I/O with SDBM.  [Joe Schaefer]

  *) Unify parsing of prepared statements and add binary argument functions
     to DBD [Bojan Smojver with help from many on the APR list]

  *) Support building DBD drivers as DSOs; use --enable-dbd-dso flag
     to configure.  [Joe Orton, Bojan Smojver]

  *) Rewrite detection of expat in configure to fix build on e.g. biarch
     Linux platforms.  PR 28205.  [Joe Orton]

  *) Add apr_thread_pool implementation.  [Henry Jen <henryjen ztune.net>]

  *) Add support for Berkeley DB 4.5 to the configure scripts.
     [Garrett Rooney]

  *) Allow apr_queue.h to be included before other APR headers.
     PR 40891 [Henry Jen <henryjen ztune.net>]

  *) Fix precedence problem in error checking for sdbm dbm back end.
     PR 40659 [Larry Cipriani <lvc lucent.com>]

  *) Add an apr_reslist_acquired_count, for determining how many outstanding
     resources there are in a reslist.  [Ryan Phillips <ryan trolocsis.com>]

  *) Provide folding in autogenerated .manifest files for Win32 builders
     using VisualStudio 2005  [William Rowe]

  *) Implement DBD transaction modes
     [Bojan Smojver with help from many on the APR list]

  *) Implement prepared statement support in SQLite3 DBD driver
     [Bojan Smojver]

  *) Add get (column) name to apr_dbd API
     [Bojan Smojver <bojan rexursive.com>] and
     [Chris Darroch <chrisd pearsoncmg com>]

  *) Make the DBD autoconf-glue use LDFLAGS instead of LIBS in several
     places, fixing some configure issues on Solaris.
     [Henry Jen <henryjen ztune.net>]

  *) Make apr_dbd.h work as a stand alone header, without needing other
     files to be included before it. [Henry Jen <henryjen ztune.net>]

  *) On platforms that use autoconf stop automatically linking against
     apr-iconv when an apr-iconv source dir is found in ../apr-iconv.
     Instead, add a --with-apr-iconv option to configure that lets you
     specify the relative path to your apr-iconv source directory.
     [Garrett Rooney]

  *) APR_FIND_APU macro now supports customisable detailed checks on
     each installed apr-util. [Justin Erenkrantz, Colm MacCárthaigh]

  *) APR_FIND_APU macro no longer checks /usr/local/apache2/
     [Colm MacCárthaigh]

  *) Add apr_dbd_oracle driver [Nick Kew and Chris Darroch]

  *) Fix GMT offset for several date formats and add a new format.
     [Maxime Petazzoni <maxime.petazzoni bulix.org>]

Changes with APR-util 1.2.8

  *) Fix incorrect byte order (PR 37342) and incorrect timestamp type
     in the fallback UUID generator used when no external UUID generator
     is detected by APR.
     [Max Bowsher]

Changes with APR-util 1.2.7

  *) Fix apr_dbd_init to be safe to call multiple times
     [Bojan Smojver <bojan rexursive com>, Nick Kew]

  *) Win32 / Netware - add missing apu_version.c for apu_version_string()
     to the Windows and Netware specific builds.  Unix platforms supported
     this API since 0.9.1.  [William Rowe, Brad Nicholes].

Changes with APR-util 1.2.6

  *) Stop trying to link against Berkeley DB by default.  To enable use
     of Berkeley DB users must now explicitly pass --with-berkeley-db to
     configure, since Berkeley DB is released under a viral license that
     requires distribution of source code for any program that uses it.
     [Garrett Rooney]

  *) Stop trying to link against GDBM by default.  To enable use of GDBM
     users must now explicitly pass --with-gdbm to configure, since GDBM
     is licensed under the GPL.
     [Garrett Rooney]

  *) Fix VPATH builds, and symlink builds where apr and apr-util
     reside in parallel as symlinks to directories with more explicit
     names, e.g. apr-1.x and apr-util-1.x.  This solves various breakage
     on Solaris in particular with ./buildconf and ./configure.  Also
     eliminated the nested ../apr-iconv/buildconf, given that apr-util
     didn't bother with ../apr/buildconf, and this was inconsistant.
     [William Rowe]

  *) Fix the escape implementations for the sqlite2 and sqlite3 dbd
     back ends.
     [Ronen Mizrahi <ronen tversity.com>, Garrett Rooney]

  *) Add support for Berkeley DB 4.4 to the configure scripts.
     [Garrett Rooney]

  *) Fix bug in test suite that cause testbuckets to write 8GB file
     on Mac OS X.  [Justin Erenkrantz]

Changes with APR-util 1.2.2

  *) Teach configure how to find the Novell LDAP SDK. [Graham Leggett]
 
  *) Fix usage of ldapssl_init/ldap_sslinit on platforms that support
     these API's including Win32.  Support APR_HAS_LDAP_START_TLS_S
     flag in the Win32 LDAP API, to drop usage of ldap_start_ssl_s
     and ldap_stop_ssl_s on Win32 by default (change the flag in apr_ldap.hw
     to enable if supported on a given OS level). [William Rowe]

Changes with APR-util 1.2.1

  *) Fix apr_rmm_realloc() offset calculation bug.  [Keith Kelleman
     <keith.kelleman oracle.com>]

  *) Add sqlite3 support to APR DBD. [Rick Keiner <rick_keiner yahoo.com>]

  *) Fix build failure with non-threaded APR on AIX.  PR 34655.
     [Ryan Murray <rmurray+apache cyberhqz.com>]

  *) Add sqlite2 support to APR DBD. [Ryan Phillips <ryan trolocsis.com>]

  *) Introduction of APR DBD layer.  [Nick Kew]

Changes with APR-util 1.1.2

  *) Fix libaprutil.rc for Win32 builds [William Rowe, Justin Erenkrantz]

Changes with APR-util 1.1.1

  *) Fix memory leak in buckets when using APR_POOL_DEBUG mode. [Joe Schaefer]

  *) find_apu.m4: Try installed APR-util before bundled copy if --with-apr-util
     not passed to configure.  [Justin Erenkrantz] 

Changes with APR-util 1.1.0

  *) LDAP: Move all certificate initialisation, and the creation of SSL
     and TLS connections into the apr_ldap_set_option() API. Add support
     for client certificates. [Graham Leggett]
 
  *) Emit the run-time link path option in apu-config after installation
     if the user is linking with libtool.  [Justin Erenkrantz]

  *) Port testmd4 and testmd5 to the new test suite. [Thom May]

  *) Allow passing NULL inbuf/inbytes_left parameters to
     apr_xlate_conv_buffer(), required to correctly terminate the
     output buffer for some stateful character set encodings.
     [Joe Orton]

  *) Link libaprutil against the libraries on which it depends.
     PR 11122.  [Joe Orton]

  *) Add apr_brigade_insert_file() function, to safely insert a file
     into a brigade, regardless of size.  [Joe Orton]

Changes with APR-util 1.0.2

  *) Teach apr_ldap_init() how to handle STARTTLS in addition to the existing
     SSL support. Add apr_ldap_option API. [Graham Leggett]

  *) Rework the LDAP toolkit detection to be more accurate than "OpenLDAP
     detected regardless", while remaining backwards compatible with v1.0.
     [Graham Leggett]

  *) Added the apr_ldap_ssl_add_cert() API to allow multiple certificates
     to be stored and used when establishing an SSL connection to different
     LDAP servers. [Brad Nicholes]

  *) Fix the detection of ldap.h on Solaris - it needs lber.h to be
     defined first. [Graham Leggett]

  *) Add a build script to create a solaris package. [Graham Leggett]

Changes with APR-util 1.0.1

  *) Add support for Berkeley DB 4.3.  [Jani Averbach <jaa jaa.iki.fi>]

  *) SECURITY: CAN-2004-0786 (cve.mitre.org)
     Fix input validation in apr_uri_parse() to avoid passing negative
     length to memcpy for malformed IPv6 literal addresses.
     [Joe Orton]

Changes with APR-util 1.0

  *) Only install apu-$MAJOR-config and add appropriate detection code to
     find_apu.m4 (APU_FIND_APU).  [Max Bowsher <maxb ukf.net>]

  *) Overhaul support for LDAP URL parsing. Instead of using incompatible
     URL parsers and memory that needs freeing, apr-util provides a parser
     which parses the URL and allocates memory from a pool. [Graham Leggett]

  *) Remove support for LDAP v2.0 SDK toolkits. This will be added
     back properly later assuming there is demand for it. In the mean
     time, please use an LDAP v3.0 SDK toolkit. [Graham Leggett]

  *) Add an apr_ldap_err_t structure to handle the return of LDAP
     specific error codes. [Graham Leggett, Brad Nicholes]

  *) Add APR functions to do the job of ldap_init(), hiding toolkit
     specific SSL/TLS handling. Code derived from httpd util_ldap.
     [Graham Leggett]

  *) Add an RPM spec file derived from Fedora Core.
     [Graham Leggett, Joe Orton]

  *) The whole codebase was relicensed and is now available under
     the Apache License, Version 2.0 (http://www.apache.org/licenses).
     [Apache Software Foundation]

  *) A new function, apr_reslist_invalidate, was added so that invalid
     resources can be removed from a reslist instead of being returned
     to the reslist in a broken state.  [Nick Kew <nick webthing.com>]

  *) Switch to a single, top-level make. [Greg Stein]

  *) Add timeout feature to apr_reslist_acquire().  
     [Mladen Turk <mturk apache.org>]

  *) Pass error codes returned from constructors all the way back to
     the reslist consumer. Also fix a minor reslist memory leak that could
     happen when a constructor returns an error code.  PR 23492.
     [Snke Tesch <st@kino-fahrplan.de>, Aaron Bannert]

  *) The following header files have been removed:

     apu_compat.h

Changes with APR-util 0.9.5

  *) Fix corrupt output from the apr_xlate_* interfaces on AIX 4.x.
     [Joe Orton]

  *) Change the order in which ldap.h and lber.h are defined, to fix
     a compile bug in Solaris v2.8 which requires lber.h then ldap.h.
     PR 27379.  [Andrew Connors <andy.connors idea.com>]
 
  *) Restore support for SHA1 passwords in apr_validate_password.
     PR 17343.  [Paul Querna <chip force-elite.com>]

  *) Fix DESTDIR install for bundled expat library.  PR 14076
     [David S. Madole <david madole.net>]

  *) Fix occasional crash in apr_rmm_realloc().  PR 22915.
     [Jay Shrauner <shrauner inktomi.com>]

  *) Fix apr_dbm_exists() for sdbm when sizeof(int) != sizeof(size_t). 
     [Joe Orton]

  *) The whole codebase was relicensed and is now available under
     the Apache License, Version 2.0 (http://www.apache.org/licenses).
     [Apache Software Foundation]

  *) Fix xlate.c compile failure on AIX 5.2.  PR 25701.  [Jeff Trawick]

  *) Fixed a bug in apr_rmm that would cause it to mishandle blocks of
     a size close to the one requested from the allocator.
     [Kevin Wang <xwang_tech yahoo.com>]

Changes with APR-util 0.9.4

  *) Changed apr_bucket_alloc_create() so that it uses the allocator
     from the pool that was passed in rather than creating its own.
     Also, the bucket_allocator is now allocated from the apr_allocator_t
     rather than using apr_palloc().  Added apr_bucket_alloc_create_ex()
     which takes an apr_allocator_t* directly rather than an apr_pool_t*.
     [Cliff Woolley, Jean-Jacques Clar]

  *) Added debugging consistency checks to the buckets code.  Add
     -DAPR_BUCKET_DEBUG to the build flags to enable.
     [Cliff Woolley]

  *) Make the version of the db library APU built against visible.
     [Thom May]

  *) Fix a problem with VPATH builds copying the APR rules.mk into the
     source directory rather than the build directory.  [Justin Erenkrantz]

  *) SECURITY [httpd incident CAN-2003-0189] Address a thread safety
     issue with apr_password_validate() on AIX, Linux, Mac OS X, and
     possibly other platforms.  [Jeff Trawick, Justin Erenkrantz]

  *) Fix a problem with LDAP configuration which caused subsequent
     configure tests to fail since LIBS contained LDAP libraries for
     subsequent tests but LDFLAGS no longer included the path to such 
     LDAP libraries.  [Jeff Trawick]

  *) Fix a problem preventing the use of the bundled Expat when APR-util
     is built stand-alone.  [Jeff Trawick]

  *) Use the same compiler and preprocessor for the APR-util config tests
     which were used by APR.  The user can override this via CC and CPP.
     This was done all along for the actual build, but not necessarily
     for the config tests.  [Jeff Trawick]

  *) Fix apr_uuid_parse() on EBCDIC machines.  [Jeff Trawick]

  *) Fix alignment problem when allocating memory using apr_rmm. The problem
     showed up while trying to write a double in the memory allocated.
     [Madhusudan Mathihalli]

Changes with APR-util 0.9.3

  *) Allow apr_date_parse_rfc to parse 'Sun, 06-Nov-1994 08:49:37 GMT' as a
     valid date.  [Dmitri Tikhonov <dmitri@netilla.com>]

  *) Fix error in apu-config when symlinks are involved.
     [Garrett Rooney <rooneg@electricjellyfish.net>]

Changes with APR-util 0.9.2

  *) Fix the APR_BUCKET_IS_foo() macros so they parenthesize their parameter.
     This fixes compile problems with some types of parameters.
     [Jim Carlson <jcarlson@jnous.com>]

  *) Queue overwrite, we now return the item pushed, not a reference to it. 
     [Paul Marquis <PMarquis@pobox.com, Jacob Lewallen <jlwalle@cs.ucr.edu>]

  *) Remove include/apr_ldap.h on distclean.  PR 15592.  [Justin Erenkrantz]

  *) Fix race conditions in apr_queue.
     [Jacob Lewallen <jlwalle@cs.ucr.edu>]

  *) Stop buildconf copying rules.mk, copy it at configure time. 
     [Thom May]

  *) Make buildconf copy rules.mk as well. 
     [Garrett Rooney <rooneg@electricjellyfish.net>]

  *) Add --includedir flag to apu-config.  [Justin Erenkrantz]

  *) Fix brokenness in sdbm when sizeof(int) != sizeof(size_t)
     (e.g., 64-bit AIX, 64-bit Solaris).  PR 14861.  [Jeff Trawick]

  *) Have buildconf copy required files from apr so that apr-util can build
     on its own.  [Craig Rodrigues <rodrigc@attbi.com>]

  *) Detect OpenLDAP when used with Solaris 9. PR 13427.
     [Gary Algier <gaa@ulticom.com>]

  *) Detect Berkeley DB 4.1 when compiled with --with-uniquenames
     [Thom May]

  *) Allow apu-config to work in symlinked install directories when
     'realpath' is available.  [Justin Erenkrantz]

  *) Fix bug in apr_strmatch when used with case-insensitive patterns.
     [Justin Erenkrantz]

  *) Allow apr_queue to have greater than int number of elements.
     [Justin Erenkrantz]

  *) Detect Berkeley DB 4.0 compiled with --with-uniquenames.
     [Philip Martin <philip@codematters.co.uk>]

  *) Allocate brigades from a bucket allocator rather than a pool. [Brian Pane]

  *) Update with the latest APR renames [Thom May]

  *) Update doxygen tags.  [Justin Erenkrantz]

  *) Add apr_ldap.hw for Windows build.
     [Andre Schild <A.Schild@aarboard.ch>]

  *) Add IPv6 literal address support to apr_uri_parse(), apr_uri_unparse(), 
     and apr_uri_parse_hostinfo().  PR 11887  [Jeff Trawick]

  *) Add apr_brigade_writev()  [Brian Pane]

  *) Add support for Berkeley DB 4.1.  [Justin Erenkrantz]

  *) Add --bindir option to apu-config.  [Justin Erenkrantz]

Changes with APR-util 0.9.1

  *) Add versioning infrastructure.
     [Justin Erenkrantz]

  *) Running "make check" in the toplevel directory or the test/ directory
     will build and run all test programs.  [Aaron Bannert]

  *) Bug #9789 : NDBM support 
     [Toomas Soome <tsoome@muhv.pri.ee>, Ian Holsman]

  *) Added a Thread safe FIFO bounded buffer (apr_queue) [Ian Holsman]

  *) Changed file_bucket_setaside() to use apr_file_setaside() instead
     of turning the file bucket into an mmap bucket.  [Brian Pane]

  *) Install libaprutil support libraries before installing libaprutil
     itself, since on some platforms libaprutil is relinked during
     make install and the support libraries need to exist already.
     [Jeff Trawick]

  *) Added a Resource List API for threadsafe access to persistent
     and dynamically created user-defined resources.  [Aaron Bannert]

  *) Adopted apr-util/xlate from apr/i18n for inclusion of apr-iconv
     as required by missing libiconv.  [William Rowe]

  *) Adopted apr-util/crypto/ uuid and md5 from apr.  [William Rowe]

  *) Look for expat in lib64 directories.  [Peter Poeml <poeml@suse.de>]

  *) Faster implementation of apr_brigade_puts()  [Brian Pane]

  *) Fixed a segfault in apr_date_parse_rfc() for some date formats
     where it was trying to overlay a potentially static input
     string even though it didn't really need to.
     [Cliff Woolley, Doug MacEachern]

  *) Ensure that apu-config does not print libtool libraries when
     using --libs.  [Justin Erenkrantz]

  *) Added apr_bucket_file_enable_mmap() function to the bucket
     API to let an application control whether a file bucket may
     be turned into an mmap bucket upon read.  (The default remains
     to do the mmap, but this function lets the app prevent the
     mmap in contexts where mmap would be a bad idea.  Examples
     include multiprocessors where mmap doesn't scale well and
     NFS-mounted filesystems where a bus error can result if
     a memory-mapped file is removed or truncated.) [Brian Pane]

  *) Added string-matching API (apr_strmatch.h)  [Brian Pane]

  *) Rearrange INCLUDES so that APRUTIL_PRIV_INCLUDES is always
     first.  [Garrett Rooney <rooneg@electricjellyfish.net>]

  *) Add --old-expat option to apu-config to allow users of apr-util to
     determine what expat it should expect to be installed.  If the
     flag is set to yes, it should include xmlparse.h.  If it is set to
     no, it should include expat.h.  [Justin Erenkrantz]

  *) Fix exporting of includes in apu-config.  [Justin Erenkrantz]

  *) Change bucket brigades API to allow a "bucket allocator" to be
     passed in at certain points.  This allows us to implement freelists
     so that we can stop using malloc/free so frequently.
     [Cliff Woolley, Brian Pane]

  *) add apr_rmm_realloc() function
     [Madhusudan Mathihalli <madhusudan_mathihalli@hp.com>]

  *) renames: apr_ansi_time_to_apr_time becomes apr_time_ansi_put
     ap_exploded_time_t becomes apr_time_exp_t
     [Thom May <thom@planetarytramp.net>]

  *) Add detection support for FreeBSD's expat and expat2 ports.
     [Justin Erenkrantz]

  *) Deprecate check_brigade_flush(), which had several nasty bugs, and
     which was causing apr_brigade_write()'s logic to be less than obvious.
     Everything is now done in a slightly rearranged apr_brigade_write().
     [Cliff Woolley]

  *) Don't add /usr/include to the INCLUDES variable on expat's account.
     [Joe Orton <joe@manyfish.co.uk>]

  *) Remove the autoconf 2.5x cache directory in buildconf.
     [Joe Orton <joe@manyfish.co.uk>]

  *) BerkleyDB should NULL out the key if it is @EOF in vt_db_nextkey
     [Ian Holsman]

  *) Add ability to natively fetch and split brigades based on LF lines.
     [Justin Erenkrantz]

  *) add --with-berkeley-db=DIR & --with-gdbm  configure flags
     [Ian Holsman/Justin Erenkrantz]

  *) Fix expat detection to recognize installed versions.
     [Eric Gillespie, Jr. <epg@pretzelnet.org>]

  *) Add find_apu.m4 to allow third-party programs that use APR-util
     to have a standard m4 macro for detection.  [Justin Erenkrantz]

  *) Add apu-config - a shell script to allow third-party programs
     easy access to APR configuration parameters.  [Justin Erenkrantz]

  *) Add GMT offset calculation to apr_date_parse_rfc().  
     [Justin Erenkrantz]

  *) Introduce the apr_rmm api, to allow relocatable memory management
     of address-independent data stores, such as shared memory.
     [William Rowe]

  *) Rework and fix VPATH-build support.  [Justin Erenkrantz]

  *) Add support for Berkeley DB4.  [Justin Erenkrantz]

  *) Improve testdbm help.  [Justin Erenkrantz]

  *) Improve autoconf detection of DBMs.  [Justin Erenkrantz]

  *) BerkeleyDBM v2 now checks minor level for cursor ops [Ian Holsman]

  *) Reading a file bucket bigger than APR_MMAP_LIMIT (4MB) now yields
     a string of 4MB mmap buckets, rather than a string of 8KB heap buckets
     plus a 4MB mmap bucket.  To accomodate this, the mmap bucket destroy
     function explicitly deletes the apr_mmap_t after last reference
     to avoid having too much of a large file mapped at once if possible.
     [Cliff Woolley]

  *) Multi-DBM support (via apr_dbm_open_ex).  [Ian Holsman]

  *) Use apr_mmap_dup in mmap_setaside().  [Brian Pane <bpane@pacbell.net>]

  *) Dropped the "w" parameter from apr_bucket_heap_create() and
     apr_bucket_heap_make().  That parameter was originally intended
     to return the amount of data copied into the bucket, but it
     ended up being unnecessary because that amount is invariant from
     the size of the data and is available as b->length in the
     resulting bucket anyway.  [Cliff Woolley]

  *) Fix Makefile conversion for BSD/OS.  [Cliff Woolley]

  *) Use APR_XtOffsetOf instead of offsetof() in the ring macros for
     portability.  [Cliff Woolley]

  *) We now create exports.c and export_vars.h, which in turn create
     exports.c.  From this we generate two more files with different
     purposes: aprutil.exp - list of exported symbols; and exports.lo
     (exports.o) - an object file that can be linked with an executable
     to force resolution of all apr-util symbols.   [Aaron Bannert]

  *) Fix Berkley DBM support [Ian Holsman <ianh@apache.org>]

  *) Fix apr_brigade_vprintf so that it can handle more than
     4k of data at one time.  [Cody Sherr <csherr@covalent.net>]

  *) prefix UNP_* flags with APR_URI_

     rename:
     apr_uri_components                  -> apr_uri_t
     apr_uri_unparse_components          -> apr_uri_unparse
     apr_uri_parse_components            -> apr_uri_parse
     apr_uri_parse_hostinfo_components   -> apr_uri_parse_hostinfo

     s/APU_URI_/APR_URI_/g
     [Perl]

  *) Landed the link-to-LDAP to the build process, and the LDAP v2/v3
     compatibility functions.
     [Dave Carrigan <dave@rudedog.org>, Graham Leggett]

  *) Fix URI unparse function to handle the case where it would place a @
     when both the username and password were present but omitted.
     [Jon Travis <jtravis@covalent.net]

  *) Added apr_xml_parse_file() routine and a testxml program.
     [Ian Holsman <ianh@cnet.com>]

  *) Extend apr_bucket struct to add a pointer to a function used
     to free the bucket. This change enables custom buckets to
     completely specify how they are to be allocated and freed.
     Before this change, custom buckets were required to use the 
     same memory allocation scheme as the standard APR buckets.
     [Saeid Sakhitab, Bill Stoddard, Cliff Woolley, Roy Fielding]

  *) Install Expat when installing APR-util.  [Justin Erenkrantz]

  *) Make APR-util configure script rely on APR.  This removes the locally
     generated copy of libtool and uses the one in APR.  Fix up how we
     call the expat configure script.  Generate config.nice file.
     [Justin Erenkrantz]

  *) The apr_bucket lengths are now consistently apr_size_t, while any
     apr_brigade lengths (short of a read) are consistently apr_off_t.
     This is required for APR_HAS_LARGE_FILES handling.  [William Rowe]

  *) apr_bucket_file_create() and apr_bucket_file_make() now take a pool
     parameter which is the pool into which any needed data structures
     should be created during file_read().  This is used for MMAPing the
     file and reopening the file if the original apr_file_t is in XTHREAD
     mode.  [Cliff Woolley]

  *) apr_brigade_partition() now returns an apr_status_t. [Cliff Woolley]

  *) Add MD4 implementation in crypto.  [Sander Striker, Justin Erenkrantz]

  *) Moved httpd 2.0.18's util_date to apr_date and enhanced its parsing
     capabilities.  [Justin Erenkrantz]

  *) Moved httpd 2.0.18's util_uri to apr_uri and name-protected its
     symbols and functions.  [Justin Erenkrantz, Roy Fielding]

  *) Rename field "private" in struct apr_xml_elem to "priv" for C++
     compatibility.  PR #7727  [Joshua MacDonald <jmacd@cs.berkeley.edu>]

  *) Make APR_IMPLEMENT_EXTERNAL_HOOK_BASE generate a 
     ${namespace}_hook_get_${hookname} function to fetch the
     list of registered hooks [Doug MacEachern]

  *) Allow LTFLAGS to be overridden by the configure command-line
     (default="--silent") and introduce LT_LDFLAGS.  [Roy Fielding]

  *) Add APR_SHARELOCK support to apr_sdbm_open(), locking read operations
     with a shared lock and all write ops with an excl lock.  [Will Rowe]

  *) Namespace protect apr_sdbm, and normalize the return values (including
     the apr_sdbm_fetch, apr_sdbm_firstkey and apr_sdbm_nextkey functions).
     Normalized the get/clear error function names, and stores the actual 
     apr error for apr_sdbm_error_get. [Will Rowe]

  *) Introduce an apr_fileperms_t argument to apr_dbm_open(). [Will Rowe]

  *) Removed apr_bucket_do_create() macro, which was causing warnings
     about unreachable code in some compilers (notably MSVC).  What
     used to be done by this macro is now done inline in the various
     apr_bucket_foo_create() functions.  [Cliff Woolley]

  *) Make clean, distclean, and extraclean consistently according to the
     Gnu makefile guidelines.  [Justin Erenkrantz <jerenkrantz@ebuilt.com>]

  *) Migrate the --disable-libtool changes from APR to APR-util.
     This cleans things up, and allows more flexibility when building
     programs.  [Ryan Bloom]

  *) Allow APR-util to be compiled without libtool.  The default is
     to use libtool, but it can turned off with --disable-libtool
     on the configure command.  [Ryan Bloom]

  *) Repair calling convention for apr_register_optional_fn to
     eliminate GP fault on Win32.  [William Rowe]

  *) Substantial changes to correct linkage and declarations for
     generic hooks on dso architectures.  [Ben Laurie, Will Rowe]

  *) apr_bucket_shared_destroy() now returns a boolean value.
     [Cliff Woolley]

  *) We have to initialize the heap buckets to the correct length.
     we were seeing heap buckets with 17 chars in them reporting
     a length of 9017, because they were initialized to the amount
     of memory allocated, instead of the amount of memory used.
     This was only an issue for heap buckets created by the
     apr_brigade_* functions.   [Ryan Bloom]

  *) apr_bucket_init_types() and apr_bucket_insert_type() have been
     removed... they're not needed anymore. [Cliff Woolley]

  *) The apr_bucket_shared and apr_bucket_simple structures have been
     removed as an API simplification/optimization.  This should be
     transparent outside APR-util except to callers who attempt to
     directly manipulate the buckets' internal structure (which is
     not recommended anyway) and to callers who create their own
     bucket types. [Cliff Woolley]

  *) apr_bucket_simple_split() and apr_bucket_simple_copy() are now
     exported functions, which could be helpful in implementing
     external bucket types. [Cliff Woolley]

  *) The third parameter to apr_bucket_shared_make() is now
     'apr_off_t length' rather than 'apr_off_t end', since the
     end usually had to be computed by the caller and all we
     really want is the length anyway. [Cliff Woolley]