=head1 Issues during installation.

[...]




=head1 Using libapreq2 with Apache2 and mod_perl2.




=head2 I keep getting "undefined symbol" errors whenever 
       I use Apache2::Request or APR::Request::Apache2.

You need to load mod_apreq2.so at server startup, which grabs
all the required symbols at server startup.  Be sure your server
config contains a line like

        LoadModule apreq_module   modules/mod_apreq2.so




=head2 When I use Apache2::Request in my output filter, it seems to lose
       the incoming POST variables.

The problem is likely that the mod_apreq2 filter has not been 
added to the input filter chain in time to read the POST data.

There are two solutions to this problem:


 1) Write a filter init handler for you filter that instantiates an
    Apache2::Request object. 

    http://perl.apache.org/docs/2.0/api/Apache2/Filter.html#C_FilterInitHandler_

 2) Use .htaccess or your server config to ensure the apreq input filter
    is active for this request with "AddInputFilter APREQ" or somesuch.

We recommend using (1), and falling back to (2) until you get (1) working.




=head2 When I try to upload a file, why do I get this error 
       "[error] Can't locate .../Apache2/Request/upload.al in @INC"?

I<Apache2::Upload> is now a separate module in apreq2, so you need to 
C<use Apache2::Upload> to load the C<Apache2::Request::upload> function.




=head1 Using libapreq2 outside of Apache.

[...]




=head1 Contributing to apreq development.




=head2 How is the subversion repository managed?

apreq's repository is broken into three subdirectories:

    /trunk    - the current codebase for active development.
    /tags     - release snapshots.
    /branches - where older releases and experimental development lines live.

apreq follows a Commit-then-Review policy for its entire repository,
but being a shared library places certain restrictions on the admissible
changes for stable trees.   Basically the header files cannot be modified;
only new functions and structures may be added to them.  Any time that 
happens, the minor-version needs to be bumped, and the patch-level gets
reset to zero.  Changes that only modify the library's implementation (.c)
files require a bump to the patch-level.  On stable trees, this version 
tracking should happen on each commit, to make auditing easy for other 
developers without resorting to a draconian Review-then-Commit policy.
