Checkout Tools
  • last updated 41 mins ago
Constraints: committers
Constraints: files
Constraints: dates
Merge the swig-py3 branch to trunk.
  1. … 61 more files in changeset.
Always use HTTPS URLs when fetching build dependencies.
Remove optional dependency on Googletest and Googlemock.

* INSTALL: don't mention googlemock.




* build.conf

(cxxhl-tests): Temporarily disabled due to dependencies.

(libgooglemock): Removed.

* Remove references to Googlemock.

* Likewise.

* Likewise.

* doc/programmer/gtest-guide.txt: Removed.

  1. … 6 more files in changeset.
Use https:// links when downloading or suggesting to download SQLite



(SQLITE_URL): Construct https:// link.


(get_sqlite): Use https:// link.

  1. … 1 more file in changeset.
fsfs: Use the `WITHOUT ROWID` optimization for rep-cache.db in format 8.

This optimization, introduced in SQLite 3.8.2, works well for tables that

have non-integer primary keys, such as


in the rep-cache.db. (See the article

for additional details.)

A quick experiment showed a reduction of the on-disk size of the database

by ~1.75x. The lookups should also be faster, both due to the reduced

database size and due to the lesser amount of internal bsearches. This

should improve the times of new commits and `svnadmin load`, especially

for large repositories that also have large rep-cache.db files.

In order to maintain compatibility, since SQLite versions prior to 3.8.2

do not support this statement, we only start using it for fsfs format 8

repositories and simultaneously bump the minimal required SQLite version

from 3.7.12 (May 2012) to 3.8.2 (December 2013). The last step ensures that

all binaries compiled to support format 8 can work with the tables with

this optimization. Also, as the various scripts have both the minimal

and recommended ( SQLite versions, we bump the recommended

version to the last 3.8.x patch version, which is

* subversion/libsvn_fs_fs/rep-cache-db.sql

(STMT_CREATE_SCHEMA): Rename this ...


(STMT_CREATE_SCHEMA_V2): New, enables `WITHOUT ROWID` optimization.




Note that these statements work for both V1 and V2 schemas.

* subversion/libsvn_fs_fs/fs.h


* subversion/libsvn_fs_fs/rep-cache.c


(open_rep_cache): Select between creating a V1 or V2 schemas based

on the format of the filesystem.

* subversion/libsvn_subr/sqlite.c

(): Bump minimum required SQLite version to 3.8.2.

* subversion/tests/cmdline/

(check_hotcopy_fsfs_fsx): Check if the Python's built-in SQLite version

is enough to interpret the schema of rep-cache.db, and skip the check

if it's not.

* build/generator/

(_find_sqlite): Bump minimum required SQLite version to 3.8.2.


(SQLITE_MINIMUM_VER): Bump to 3.8.2.


(SQLITE_RECOMMENDED_VER_REL_YEAR): New, required to construct the

download URL which includes the release year for the newer SQLite

amalgamation versions.

(SQLITE_URL): Update the download URL.




(get_sqlite): Update the download URL that includes the release year

for the newer SQLite amalgamation versions.


(C.12.SQLite): Bump minimum required SQLite version to 3.8.2.

(E.1.Prerequisites): Bump the minimum and recommended SQLite versions.

  1. … 8 more files in changeset.
Make download Googlemock and Googletest from GitHub.

Also rename gmock->googlemock throughout the code

(except for a few places in

* .: Ignore directory 'googlemock' instaed of 'gmock-fused'.

* Renamed gmock to googlemock.

(GMOCK_VERSION): Bump to 1.7.0

(GMOCK, GMOCK_URL): Update to the new location on GitHub.


(get_googlemock): Updated to download both Googlemock and Googletest sources.

* Renamed gmock to googlemock.

(SVN_USE_GOOGLEMOCK): Fixed one instance that was mistyped.

* build.conf: Renamed gmock to googlemock.

(cxxhl-tests): Updated target definition.

(libgooglemock): Updated source path and sources list.

* Renamed gmock to googlemock.

(GOOGLEMOCK_INCLUDES): Changed, these are now only the include paths that

are needed by tests that use Googlemock, not the Googlemock library itself.

(GOOGLEMOCK_LIB_INCLUDES): New, these are the include paths for the library.

(COMPILE_GOOGLEMOCK_CXX): Use the correct include paths.

  1. … 4 more files in changeset.
* Update serf download URI to ASF

Found by: Karl Burkett <>

* Bump suggested serf version to 1.3.8

* Bump recommended version of HTTPD to 2.4.10. This

version has the fix for the encoding bug (httpd PR #56480).

* Use httpd 2.4.7, we blacklist building against 2.4.6.

* Bump serf version we download to 1.3.4 and adjust URL to match

the new location of serf source code release files. Remove the trailing /download on the zlib URL.


(get_zlib): Avoid getting a filename named download.

Suggested by: arfrever Use a stable URL for zlib so we don't break when zlib releases.

zlib only maintains the most current version at, so using that URL

breaks everytime they put a new version out. Archived versions are maintained

as part of the libpng setup at sourceforge, but sourceforge makes it somewhat

annoying to directly download files.


(HTTP_FETCH): Pass -L option to curl so it'll follow redirects.

(get_zlib): Use a URL on sourceforge that provides stable and direct

downloads. However, it results in the file being named download by

the various tools we use to fetch files.

* Recommand httpd 2.4.6.

Reintegrate the gtest_addition branch to trunk and convert the result to

use Googlemock and begin writing a Googlemock/Googletest-based test suite

for C++HL.

* .: Ignore gmock-fused instead of gtest.

* INSTALL: Note optional dependency on Googlemock.

* Rename all getst to gmock and implement Googlemock downloader.

* build.conf (cxxhl-tests): Depend on libgmock and make conditional.

(libgmock): New target.

* Check for Googlemock.

(GMOCK_SRCDIR, SVN_USE_GMOCK): New substituted variables.


Expand configure variables.


New generic compilation rules.

(COMPILE_CXXHL_CXX): Rewrite in terms of LT_COMPILE_CXX.


* Add placeholder for --disable-gmock option.

* build/generator/ (TargetLinked): Make .cc a source file extension.

* doc/programmer/gtest-guide.txt: New.

* subversion/bindings/cxxhl/tests/cxxhl-tests.cpp,

subversion/bindings/cxxhl/tests/test_aprwrap.cpp: New test suite files.

* subversion/bindings/cxxhl/tests/test_exception.cpp: Temporarily disable.

* tools/dist/

Mergeinfo was updated as a side effect of the merge.

  1. … 12 more files in changeset.
For issue #4371 ("Subversion requires Serf 1.2.1"), teach the build

system to expect Serf 1.2.1 now.




* build/generator/

Bump Serf required version to 1.2.1.

  1. … 3 more files in changeset.
* Allow overriding dependency versions via environment variables.
* Factor our version number constants. No functional change.
* Add a comment encouraging modifiers to keep the file portable.


(ZLIB): Update zlib version number.

(get_zlib): Modify tar command and file extension.

Patch by: Gabriela Gibson <gabriela.gibson{_AT_}>

(modified by breser to not use GNU tar options)

* Set svn:eol-style property to native.


(get_deps): Use an explicit list on for loop so that script works with

non-POSIX sh implementations (e.g. Solaris)


Use backticks style command substitution rather than $() style. This makes

it work on systems where /bin/sh is not POSIX (e.g. Solaris).

Finish issue #4296 ("svn 1.8 blocks on release of serf 1.2.x").

(This will probably light up the buildbots...)




* tools/dev/windows-build/Makefile,

* tools/dev/unix-build/Makefile.svn

Bump our Serf dependency to version 1.2.0.

  1. … 3 more files in changeset.
* Silence $HTTP_FETCH output.
Change default behaviour of from downloading gtest

library to making it an optional target.


(usage): Add gtest to list of possible arguments.

(get_deps): Remove gtest from list of default downloads.

Patch by: Gabriela Gibson <gabriela.gibson{_AT_}>

Changes to to download gtest.


(Variable definitions): Adds three "GTEST_*" variables to assist in

downloading gtest sources.

(get_gtest): New function: Download, unzip and move gtest source.

(get_deps): Check whether gtest is available.

Call get_gtest().

* .: Ignore the gtest directory.

Patch by: Gabriela Gibson <gabriela.gibson{_AT_}>

(Tweaked by me)

  1. … 1 more file in changeset.
Temporarily revert part of the change from the tweak-build-take-two branch that

moved the expected location of the SQLite amalgamation directory and used

relative paths to include those files, because it conflicts with the use of

--with-sqlite to locate an amalgamation directory outside the build tree.

Note that this can cause builds to fail if non-amalgamated SQLite is found

elsewhere on the include path before the amalagamated files.


- Change expected location of the amalgamation package.

* build/ac-macros/sqlite.m4:

- Look for $abs_srcdir/sqlite-amalgamation.

- Do add include paths to wherever the amalgamation was found.

* subversion/libsvn_subr/sqlite.c, subversion/libsvn_subr/sqlite3wrapper.c,

subversion/tests/libsvn_wc/wc-queries-test.c: Do not use relative paths

to include amalgamation sources.

  1. … 7 more files in changeset.
Reintegrate tweak-build-take-two branch to trunk.

Summary of changes:

** Split standards-compliance mode and maintainer mode compiler flags

out of CFLAGS, so that compilation command lines that do not

generate (too many) warnings or are not forced to comply with ISO

C '90 can be constructed without having to resort to stripping

individual flags out of CFLAGS.

$ svn diff -r1424288:1424822 \

^/subversion/branches/tweak-build-take-two/ \

^/subversion/branches/tweak-build-take-two/aclocal.m4 \

^/subversion/branches/tweak-build-take-two/build/ac-macros/compiler.m4 \


** Now that warning and standards-compliance mode macros are no

longer part of CFLAGS, stop stripping them in the Swig wrapper

configury, except for Ruby, which is more delicate.

$ svn diff -r1424329:1425040 \


** Allow optimization and debugging to coexist, including in

maintainer mode, adding a new configure option

--enable-optimize. Neither --enable-optimize nor --enable-debug

will override any optimization or debugging flags set by the user

in C(XX)FLAGS at configure time. If debugging and optimization are

enabled at the same time, we will try to use -O1, then -O; if

debuggin is not enabled, we will try -O2 first.

$ svn diff -c1424860 \


** Remove an obsolete autoconf macro that was not used anywhere and

is superceded with SVN_CFLAGS_ADD_IFELSE.

$ svn diff -c1424297 \


** Move the sqlite-amalgamation directory from the root of the source tree

under subversion/include/private to make include paths safer from

possible collision with sqlite include files from other install locations.

$ svn diff -c1425050 \


** Allow a user to set a custom set of compiler flags at configure time that

are used for Subversion sources, but not, e.g., Swig-generated sources,

like this:

$ ./configure CUSERFLAGS=--flags-for-C CXXUSERFLAGS=--flags-for-C++

$ svn diff -c1425086 \


  1. … 14 more files in changeset.
* (get_deps): Fix runtime error.