jerenkrantz in subversion

* Leave a breadcrumb about new configure options for tweaking

CFLAGS regarding optimization and debug compiler flags.

* STATUS: Approve some backports.

Further reduce memory pressure by forcing the xmlctx's scratch_pool to be

cleared as soon as we are done with the XML parser.

* subversion/libsvn_ra_serf/xml.c

(svn_ra_serf__xml_context_destroy): Implement.

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serf__xml_context_destroy): Declare.

* subversion/libsvn_ra_serf/util.c

(expat_response_handler): Explicitly destroy the xmlctx too.

Relieve some memory pressure by delaying XML parser creation until we start

to receive a response. Otherwise, we'd create the parser as soon as we

queue the request meaning we could have up to 1,000 parsers created at a

time sitting around waiting for serf to give us data.

* subversion/libsvn_ra_serf/util.c

(expat_response_handler): Create parser when needed on first one.

(svn_ra_serf__create_expat_handler): Delay parser and actually use


Allow downstream caches to cache our versioned resources.

* subversion/mod_dav_svn/repos.c

(set_headers): Uncomment caching block and allow versioned regular

non-collections to be cached.

Fix authz test #15 on jcovel's machine by properly draining the buckets.

(The COPY response from add_directory wasn't being read properly, so when we

come around to send the add_file, the response for COPY wasn't completely read

and we crashed.)

* subversion/libsvn_ra_serf/util.c

(svn_ra_serf__expect_empty_body, svn_ra_serf__handle_multistatus_only): Don't

set done here.

(handle_response): Set done when we see EOF so we ensure we wait long


Ensure that expat_response_handler deals with all of the transient errors


* subversion/libsvn_ra_serf/util.c

(expat_response_handler): All error codes that are transient should be

bubbled up - not just EAGAIN & EOF.

Fix blame test #3 by converting it to use the new XML parser paradigm.

* subversion/libsvn_ra_serf/blame.c

(blame_context_t): Remove unused parameter.

(svn_ra_serf__get_file_revs): Switch from _wait to _one and have our parser

set the handler's done flag so it works with run_one.

Fix authz test #14.

* subversion/libsvn_ra_serf/update.c

(finish_report): Check new server_error structure for a pending error.

Fix lock tests #37 & #42 by properly calling our XML error response delegator.

* subversion/libsvn_ra_serf/util.c

(handle_response): Appropriately set up the error callbacks or use our

defaults if there is no XML error response with a friendly message.

This message is larger than the diff it contains.

* subversion/libsvn_ra_serf/util.c

(handle_response): Fix typo.

Corollary to issue #4175 (SurfShield doesn't work).

Allow EAGAIN to be handled properly when server_error fallback is used.

Thanks to: lgo, jcorvel, ivan

* subversion/libsvn_ra_serf/util.c

(handle_response): Clear non-EOF transient errors (EAGAIN, WAIT_CONN);

update comment to match another version of reality closer to our own.

Fix issue #4175.

This is due to EAGAIN being returned while we are in the 404 XML handler after

we have marked it as done. ra_serf ends up re-using the memory space that

serf has kept for the last uncompleted request as it doesn't think the

request is done yet.

* subversion/libsvn_ra_serf/util.c

(handle_server_error): Allow EOF & EAGAIN to be returned from drain_bucket


(svn_ra_serf__handle_xml_parser): Delay noting the item is done until after

we have received the EOF from the discarded body.

* Update autoconf warning when BDB is not found to be a little

more helpful and update to current Oracle URL for BDB.

* Update SQLite version.

Patch by: Vijayaguru G <vijay{_AT_}>

Reviewed by: Justin Erenkrantz

* STATUS: Vote on some proposed backports for 1.7.x.

* STATUS: After review of commits related to Issue 3888, give my +1.

Serf issue 59: Allow subjectAltName fields to match our host.

(And, minor fixup for SNI capability check in prior revision.)

* subversion/libsvn_ra_serf/util.c

(ssl_server_cert): Fetch subjectAltName from certificate and try to validate

against that.

(conn_setup): Make check for SNI based on serf version.

Support new serfs that can transmit TLS SNI info.

* subversion/libsvn_ra_serf/util.c

(conn_setup): Tell SSL context what the hostname is so it can use SNI.

ra_serf: Teach get_file RA op to ask for compression if available.

* subversion/libsvn_ra_serf/update.c

(svn_ra_serf__get_file): Install header delegate to install gzip request


Follow up to r1102173.

Kudos to Ivan for pointing it out that we should respect config.

* subversion/libsvn_ra_serf/update.c

(headers_report): Make compression conditional based on servers config file.

ra_serf: Tell the server it is okay to gzip the REPORT response.

For a simple checkout (notes dir in SVN), this reduces the bytes transferred

on that connection from 82,064 bytes to 16,186 bytes. Larger dirs will have

even bigger REPORT responses (as it contains the list of every path to

checkout with some essential properties).

* subversion/libsvn_ra_serf/update.c

(headers_report): Add a header delegate to permit gzip responses.

(finish_report): Install appropriate header delegate.

Fix warnings about missing AC_LANG_SOURCE with autoconf 2.68; tested also

against 2.59.

Kudos to Philip Martin for pointing me at final bit needed to fix this.

* build/ac-macros/kwallet.m4 (SVN_LIB_KWALLET),

build/ac-macros/swig.m4 (SVN_FIND_SWIG),

build/ac-macros/gssapi.m4 (SVN_LIB_RA_SERF_GSSAPI),

build/ac-macros/neon.m4 (SVN_NEON_CONFIG),


* STATUS: Now that serf 0.7.0 is released, update note.

Follow up to r987956 by removing useless part of autoconf macro. (m4 sux.)

* build/ac-macros/serf.m4

(SVN_LIB_SERF): Make #error consistent with AC_MSG_WARN notice.

Add a compile-time version check for serf so we can reject old versions.

* build/ac-macros/serf.m4

(SVN_LIB_SERF): Set minimum version to 0.3.1 and ensure we see at least that.

* STATUS: Add r943796 to the serf 0.4.0+ API backport nomination.

* STATUS: review and vote for some 1.6.x backports.

Backport r943796 to this branch as this is the other API change introduced

in 0.4.0.

Propose r879757 & r880320 for backport to 1.6.x.