You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2015/11/30 11:24:23 UTC

svn commit: r1717223 [3/50] - in /subversion/branches/ra-git: ./ build/ build/ac-macros/ build/generator/ build/generator/templates/ contrib/hook-scripts/ notes/ notes/api-errata/1.9/ notes/move-tracking/ subversion/ subversion/bindings/ctypes-python/c...

Modified: subversion/branches/ra-git/INSTALL
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/INSTALL?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/INSTALL (original)
+++ subversion/branches/ra-git/INSTALL Mon Nov 30 10:24:16 2015
@@ -22,7 +22,7 @@ Contents:
        E. Building the Latest Source under Windows
 
    III. BUILDING A SUBVERSION SERVER
-       A. Setting Up Apache
+       A. Setting Up Apache Httpd
        B. Making and Installing the Subversion Server
        C. Configuring Apache for Subversion
        D. Running and Testing
@@ -96,9 +96,9 @@ I.    INTRODUCTION
          These diff streams are used everywhere -- over the network,
          in the repository, and in the client's working copy.
 
-      * libserf  (OPTIONAL for client)
+      * Apache Serf  (OPTIONAL for client)
 
-         The Serf library allows the Subversion client to send HTTP
+         The Apache Serf library allows the Subversion client to send HTTP
          requests.  This is necessary if you want your client to access
          a repository served by the Apache HTTP server.  There is an
          alternate 'svnserve' server as well, though, and clients
@@ -110,7 +110,7 @@ I.    INTRODUCTION
       * OpenSSL (OPTIONAL for client and server)
 
          OpenSSL enables your client to access SSL-encrypted https://
-         URLs (using libserf) in addition to unencrypted http:// URLs.
+         URLs (using Apache Serf) in addition to unencrypted http:// URLs.
          To use SSL with Subversion's WebDAV server, Apache needs to be
          compiled with OpenSSL as well.
 
@@ -146,7 +146,7 @@ I.    INTRODUCTION
          Subversion contains optional support for storing passwords in
          KWallet (KDE 4) or GNOME Keyring.
 
-      * libmagic
+      * libmagic (OPTIONAL)
 
          If the libmagic library is detected at compile time,
          it will be used to determine mime-types of binary files
@@ -199,48 +199,6 @@ I.    INTRODUCTION
       Apache Portable Runtime (APR) and the APR Utility (APR-util)
       libraries.
 
-
-        ****************************************************************
-        **       IMPORTANT ISSUE ABOUT APR VERSIONS:  READ THIS       **
-        **       IF UPGRADING FROM MUCH OLDER SUBVERSION              **
-        ****************************************************************
-        |                                                              |
-        | APR 0.9.X and 1.X are binary-incompatible.                   |
-        |                                                              |
-        | This means:                                                  |
-        |                                                              |
-        |   - if you are already using Subversion with APR 0.9.X, and  |
-        |     then upgrade your libapr to 1.X without rebuilding       |
-        |     Subversion, things will break and segfault.              |
-        |                                                              |
-        |   - if your Subversion server libraries are linked to one    |
-        |     version of APR, but your Apache server is linked to a    |
-        |     different version, things will break and segfault.       |
-        |                                                              |
-        | Subversion distribution dependencies:                        |
-        | -------------------------------------                        |
-        |                                                              |
-        | For a long time, Subversion's main distribution contained    |
-        | APR and APR-UTIL (both 0.9.x), plus a few other things that  |
-        | we couldn't count on the installation system having.  But    |
-        | nowadays, Subversion's requirements are no longer exotic,    |
-        | and so our main distribution contains just the Subversion    |
-        | source code itself -- people compiling Subversion are        |
-        | expected to either have the APR libraries already installed  |
-        | on their system, or to be capable of fetching them easily.   |
-        |                                                              |
-        | Note that it's *perfectly* safe to use APR 1.X from the      |
-        | beginning.  In fact, we recommend it.  If you're building    |
-        | Subversion for the first time, there's no compatibility      |
-        | issue to worry about, so grab the latest version of APR.     |
-        |                                                              |
-        | If you already have a Subversion installation using APR      |
-        | 0.9.x, it's still possible to move to APR 1.X safely.  Just  |
-        | be sure to recompile Subversion (and Apache httpd if         |
-        | necessary) after upgrading APR!                              |
-        |______________________________________________________________|
-
-
       If you do not have a pre-installed APR and APR-util, you will need
       to get these yourself:
 
@@ -295,7 +253,7 @@ I.    INTRODUCTION
          compression.   Most Unix systems have libz pre-installed, but
          if you need it, you can get it from
 
-            http://www.zlib.net
+            http://www.zlib.net/
 
 
       3.  autoconf 2.59 or newer (Unix only)
@@ -313,11 +271,11 @@ I.    INTRODUCTION
       newer. The autogen.sh script knows about that.
 
 
-      5.  Serf library 1.2.1 or newer (OPTIONAL)
+      5.  Apache Serf library 1.3.4 or newer (OPTIONAL)
 
       If you want your client to be able to speak to an Apache
       server (via a http:// or https:// URL), you must link against
-      serf.  Though optional, we strongly recommend this.
+      Apache Serf.  Though optional, we strongly recommend this.
 
       In order to use ra_serf, you must install serf, and run Subversion's
       ./configure with the argument --with-serf.  If serf is installed in a
@@ -327,36 +285,36 @@ I.    INTRODUCTION
 
       instead.
 
-      Serf can be obtained via your system's package distribution
+      Apache Serf can be obtained via your system's package distribution
       system or directly from http://code.google.com/p/serf/.
 
-      For more information on serf and Subversion's ra_serf, see the file
-      subversion/libsvn_ra_serf/README.
+      For more information on Apache Serf and Subversion's ra_serf, see the
+      file subversion/libsvn_ra_serf/README.
 
       6. OpenSSL  (OPTIONAL)
 
-      ### needs some updates. I think serf automagically handles
+      ### needs some updates. I think Apache Serf automagically handles
       ### finding OpenSSL, but we may need more docco here. and w.r.t
       ### zlib.
 
-      The Serf library has support for SSL encryption by relying on the
+      The Apache Serf library has support for SSL encryption by relying on the
       OpenSSL library.
 
-        a. Using OpenSSL on the client through Serf
+        a. Using OpenSSL on the client through Apache Serf
 
-          On Unix systems, to build Serf with OpenSSL, you need OpenSSL
+          On Unix systems, to build Apache Serf with OpenSSL, you need OpenSSL
           installed on your system, and you must add "--with-ssl" as a
           "./configure" parameter.  If your OpenSSL installation is hard
-          for Serf to find, you may need to use "--with-libs=/path/to/lib"
-          in addition.  In particular, on Red Hat (but not Fedora Core) it
-          is necessary to specify "--with-libs=/usr/kerberos" for OpenSSL
-          to be found.  You can also specify a path to the zlib library
-          using "--with-libs".
+          for Apache Serf to find, you may need to use
+          "--with-libs=/path/to/lib" in addition.  In particular, on Red Hat
+          (but not Fedora Core) it is necessary to specify
+          "--with-libs=/usr/kerberos" for OpenSSL to be found.  You can also
+          specify a path to the zlib library using "--with-libs".
 
           Under Windows, you can specify the paths to these libraries by
           passing the options --with-zlib and --with-openssl to gen-make.py.
 
-        c. Using OpenSSL on the Apache server
+        b. Using OpenSSL on the Apache server
 
           You can also add support for these features to an Apache httpd
           server to be used for Subversion using the same support libraries.
@@ -446,14 +404,16 @@ I.    INTRODUCTION
       is done: See section III for details.
 
 
-      10.  Python 2.5 or newer (http://www.python.org/)  (OPTIONAL)
+      10.  Python 2.7 or newer (http://www.python.org/)  (OPTIONAL)
 
       If you want to run "make check" or build from the latest source
-      under Unix as described in section II.B and III.D, install
-      Python 2.5 or higher on your system. The majority of the test
-      suite is written in Python, as is part of Subversion's build
+      under Unix/Windows as described in section II.B, II.E and III.D,
+      install Python 2.7 or higher on your system. The majority of the
+      test suite is written in Python, as is part of Subversion's build
       system.
 
+      Note that Python 3.x is not supported and most likely won't work.
+
 
       11. Perl 5.8 or newer (Windows only)  (OPTIONAL)
 
@@ -464,8 +424,8 @@ I.    INTRODUCTION
 
       12. SQLite  (REQUIRED)
 
-      Subversion 1.8 requires SQLite version 3.7.12 or above.  You can meet
-      this dependency several ways:
+      Subversion requires SQLite version 3.7.12 or above.  You can meet this
+      dependency several ways:
         * Use an SQLite amalgamation file.
         * Specify an SQLite installation to use.
         * Let Subversion find an installed SQLite.
@@ -590,7 +550,10 @@ II.   INSTALLATION
           $ make
           # make install
 
-      You can also run the full test suite by running 'make check'.
+      You can also run the full test suite by running 'make check'.  Even
+      in successful runs, some tests will report XFAIL; that is normal.
+      Failed runs are indicated by FAIL or XPASS results, or a non-zero exit
+      code from "make check".
 
 
   B.  Building the Latest Source under Unix
@@ -711,27 +674,21 @@ II.   INSTALLATION
 
 
   D.  Installing from a Zip or Installer File under Windows
-      --------------------------------------------------------
+      -----------------------------------------------------
 
       Of all the ways of getting a Subversion client, this is the
-      easiest.  Download a Zip (*.zip) or self-extracting installer
-      (*-setup.exe) file from:
+      easiest.  Download a Zip or self-extracting installer via:
 
-      http://subversion.apache.org/packages#windows
+      http://subversion.apache.org/packages.html#windows
 
-      For a Zip file, run your unzipping utility (WinZIP, ZipGenius,
-      UltimateZIP, FreeZIP, whatever) and extract the DLLs and EXEs to
-      a directory of your choice. Included in the download is the SVN
-      client, the SVNADMIN administration tool, and the SVNLOOK
-      reporting tool.
-
-      Note that if you need support for non-English locales you'll have
-      to set the APR_ICONV_PATH environment variable to the path of the
-      iconv directory in the folder that contains the Subversion install.
-
-      You may also want to add the bin directory in the Subversion folder
-      to your PATH environment variable so as to not have to use the full
-      path when running Subversion commands.
+      For a Zip file extract the DLLs and EXEs to a directory of your
+      choice. Included in the download are among other tools the SVN
+      client, the SVNADMIN administration tool and the SVNLOOK reporting
+      tool.
+
+      You may want to add the bin directory in the Subversion folder to your
+      PATH environment variable so as to not have to use the full path when
+      running Subversion commands.
 
       To test the installation, open a DOS box (run either "cmd" or
       "command" from the Start menu's "Run..." menu option), change to
@@ -750,55 +707,41 @@ II.   INSTALLATION
 
   E.1 Prerequisites
 
-      * Visual Studio 6 and service pack. It can be built with later versions
-        of Visual Studio (Visual Studio.NET 2002, 2003, 2005, 2008 and Visual
-        C++ Express 2005, 2008) but these instructions assume VS6.
-      * A recent Windows SDK. (Not needed with Visual Studio 2005 and later)
-        If you are using Visual Studio 6, you need the latest SDK which
-        is compatible with VC6, which is the one from february 2003.
-        You can get it from MSDN:
-        http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
-      * Python 2.5 or higher, downloaded from http://www.python.org/ which is
+      * Microsoft Visual Studio. Any recent (2005+) version containing the
+        Visual C++ component will work (E.g. Professional, Express, Community
+        Edition). Make sure you enable C++ support during setup.
+      * Python 2.7 or higher, downloaded from http://www.python.org/ which is
         used to generate the project files.
-      * Perl 5.8 or higher from http://www.activestate.com/
+        Note that Python 3.x is not supported (yet).
+      * Perl 5.8 or higher from http://www.perl.org/get.html
       * Awk (from http://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe) is
-        needed to compile Apache or APR.  Note that this is the actual awk
-        program, not an installer - just rename it to awk.exe and it is
-        ready to use.
+        needed to compile Apache or APR without using CMake.  Note that this
+        is the actual awk program, not an installer - just rename it to
+        awk.exe and it is ready to use.
       * Apache apr, apr-util, and optionally apr-iconv libraries, version
-        1.3 or later. Included in both the Subversion dependencies ZIP file
-        and the Apache 2 source zip.  If you are building from a Subversion
+        1.3 or later (1.2 for apr-iconv). If you are building from a Subversion
         checkout and have not downloaded Apache 2, then get these 3 libraries
         from http://www.apache.org/dist/apr/.
-      * ZLib 1.2 or higher is required and is included in the Subversion
-        dependencies zip file or can be obtained from http://www.zlib.org
-      * Either a Subversion client binary from http://subversion.apache.org/ to
-        do the initial checkout of the Subversion source or the zip file
-        source distribution. See the section "Bootstrapping from a Zip or
-        Installer File under Windows" above for more.
-      * A means of unpacking the files, e.g., WinZIP or similar.
+      * SQLite 3.7.12 or higher from http://www.sqlite.org/download.html
+        (3.8.0 or higher recommended)
+      * ZLib 1.2 or higher is required and can be obtained from
+        http://www.zlib.net/
+      * Either a Subversion client binary from
+        http://subversion.apache.org/packages.html to do the initial checkout
+        of the Subversion source or the zip file source distribution.
 
       Additional Options
 
-      * [Optional] Apache 2 source, downloaded from
+      * [Optional] Apache Httpd 2 source, downloaded from
         http://httpd.apache.org/download.cgi, these instructions assume
         version 2.0.58.  This is only needed for building the Subversion
         server Apache modules.  ### FIXME Apache 2.2 or greater required.
-      * [Optional] Apache 2 msi install file, also from
-        http://httpd.apache.org/download.cgi (required for running the
-        tests).  Only needed for testing the server dso modules and if
-        you are using Visual Studio 6.
-        Note that if you are not using Visual Studio 6 (and you want to
-        run and test the server modules) then you must rebuild Apache
-        from source -- do not use the stock MSI since mixing C runtime
-        libraries is not supported.
-      * [Optional] Berkeley DB for backend support of the server
-        components -- versions 4.3.27 and 4.4.20 are available from
-        http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=688
-        as db-4.3.27-win32.zip and db-4.4.20-win32.zip.
-        For more information see Section I.5.
-      * [Optional] Openssl 0.9.7f or higher can be obtained from
-        http://www.openssl.org/source/openssl-0.9.7f.tar.gz
+      * [Optional] Berkeley DB for backend support of the server components
+        are available from
+        http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index-082944.html
+        (Version 4.4.20 or in specific cases some higher version recommended)
+        For more information see Section I.C.7.
+      * [Optional] Openssl can be obtained from http://www.openssl.org/source/
       * [Optional] A modified version of GNU libintl, called
         svn-win32-libintl.zip, can be used for displaying localized
         messages. Available at:
@@ -808,16 +751,13 @@ II.   INSTALLATION
         binaries from http://gnuwin32.sourceforge.net/. You'll need the
         binaries (gettext-0.14.1-bin.zip) and dependencies
         (gettext-0.14.1-dep.zip).
-      * [Optional] An assembler, e.g., MASM32 from http://www.masm32.com/
-        or nasm which is available from
-        http://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D
 
   E.2 Notes
 
-      The Serf library supports secure connections with OpenSSL and
-      on-the-wire compression with zlib. If you want to use the
+      The Apache Serf library supports secure connections with OpenSSL
+      and on-the-wire compression with zlib. If you want to use the
       secure connections feature, you should pass the option
-      "--with-openssl" to the gen-make.py script. See Section I.11 for
+      "--with-openssl" to the gen-make.py script. See Section I.C.6 for
       more details.
 
   E.3 Preparation
@@ -835,37 +775,20 @@ II.   INSTALLATION
       * Install Visual Studio Environment. You either have to tell the
         installer to register environment variables or run VCVARS32.BAT
         before building anything.  If you are using a newer Visual Studio,
-        use the 'Visual Studio 200x Command Prompt' on the Start menu.
-      * Install and register a recent Windows Core SDK if you are using
-        Visual Studio 6. This is a quote from the Microsoft February 2003
-        SDK documentation:
-
-       "To register the SDK bin, include, and library directories with
-        Microsoft Visual Studio® version 6.0 and Visual Studio .NET,
-        click Start, point to All Programs, point to Microsoft Platform
-        SDK February 2003, point to Visual Studio Registration, and then
-        click Register PSDK Directories with Visual Studio. This
-        registration process places the SDK bin, include, and library
-        directories at the beginning of the search paths, which ensures
-        that the latest headers and libraries are used when building
-        applications in the IDE. Note that for Visual Studio 6.0
-        integration to succeed, Visual Studio 6.0 must run at least once
-        before you select Register PSDK Directories with Visual
-        Studio. Also note that when this option is run, the IDEs should
-        not be running."
-
+        use the 'Visual Studio 20xx Command Prompt' on the Start menu.
       * Install Python and add it to your path
       * Install Perl (it should add itself to the path)
+        ### Subversion doesn't need perl. Only some dependencies need it
+            (openssl and some apr scripts)
       * Copy AWK (awk95.exe) to awk.exe (e.g. SVN\awk\awk.exe) and add
         the directory containing it (e.g. SVN\awk) to the path.
-      * Install Apache 2 using the msi file if you are going to test the
-        server dso modules and are using Visual Studio 6.  You must build
-        and install it from source if you are not using Visual Studio 6 and
-        want to build and/or test the server modules.
-      * If you checked out Subversion from the repository then install the serf
-        sources into SVN\src-trunk\serf.
-      * If you want BDB backend support, extract the Berkeley DB files
-        into SVN\src-trunk\db4-win32. It's a good idea to add
+        ### Subversion doesn't need awk. Only some dependencies need it
+            (some apr scripts)
+      * [Optional] If you checked out Subversion from the repository and want
+        to build Subversion with http/https access support then install the
+        Apache Serf sources into SVN\src-trunk\serf.
+      * [Optional] If you want BDB backend support, extract the Berkeley DB
+        files into SVN\src-trunk\db4-win32. It's a good idea to add
         SVN\src-trunk\db4-win32\bin to your PATH, so that Subversion can find
         the Berkeley DB DLLs.
 
@@ -879,9 +802,10 @@ II.   INSTALLATION
         SVN\src-trunk\db4-win32\include, and all the import libraries to
         SVN\src-trunk\db4-win32\lib. Again, the DLLs should be somewhere in
         your path.
+        ### Just use --with-serf instead of the hardcoded path
 
-      * If you want to build the server modules, extract Apache source into
-        SVN\httpd-2.x.x.
+      * [Optional] If you want to build the server modules, extract Apache
+        source into SVN\httpd-2.x.x.
       * If you are building from a checkout of Subversion, and you are NOT
         building Apache, then you will need the APR libraries.  Depending
         on how you got your version of APR, either:
@@ -891,16 +815,22 @@ II.   INSTALLATION
           - Extract the apr, apr-util and apr-iconv directories from the
             srclib folder in the Apache httpd source into SVN\apr,
             SVN\apr-util, and SVN\apr-iconv respectively.
+        ### Just use --with-apr, etc. instead of the hardcoded paths
       * Extract the ZLib sources into SVN\zlib if you are not using the zlib
         included in the dependencies zip file.
-      * If you want secure connection (https) client support, extract openssl
-        into SVN\openssl-x.x.x
-      * If you want localized message support, extract svn-win32-libintl.zip
-        into SVN\svn-win32-libintl and extract gettext-x.x.x-bin.zip and
-        gettext-x.x.x-dep.zip into SVN\gettext-x.x.x-bin.
-        Add SVN\gettext-x.x.x-bin\bin to your path.
-      * [Optional] Extract MASM32 (only the ML.EXE and ML.ERR files) into
-        SVN\asm (or extract nasm into SVN\asm) and put it in your path.
+        ### Just use --with-zlib instead of the hardcoded path
+      * [Optional] If you want secure connection (https) client support extract
+        openssl into SVN\openssl
+        ### And pass the path to both serf and gen-make.py
+      * [Optional] If you want localized message support, extract
+        svn-win32-libintl.zip into SVN\svn-win32-libintl and extract
+        gettext-x.x.x-bin.zip and gettext-x.x.x-dep.zip into
+        SVN\gettext-x.x.x-bin.
+        Add SVN\gettext-x.x.x-bin\bin to your path.        
+      * Download the SQLite amalgamation from
+        http://www.sqlite.org/download.html
+        and extract it into SVN\sqlite-amalgamation.
+        See I.C.12 for alternatives to using the amalgamation package.
 
   E.4 Building the Binaries
 
@@ -916,21 +846,21 @@ II.   INSTALLATION
 
       C:>set VER=trunk
       C:>set DIR=trunk
-      C:>set DRIVE=C
+      C:>set BUILD_ROOT=C:\SVN
       C:>set PYTHONDIR=C:\Python22
       C:>set AWKDIR=C:\SVN\Awk
       C:>set ASMDIR=C:\SVN\asm
-      C:>set SDKINC=C:\Program Files\Microsoft SDK\include
-      C:>set SDKLIB=C:\Program Files\Microsoft SDK\lib
+      C:>set SDKINC="C:\Program Files\Microsoft SDK\include"
+      C:>set SDKLIB="C:\Program Files\Microsoft SDK\lib"
       C:>set GETTEXTBIN=C:\SVN\gettext-0.14.1-bin\bin
-      C:>PATH=%PATH%;%DRIVE%:\SVN\src-%DIR%\db4-win32;%ASMDIR%;
+      C:>PATH=%PATH%;%BUILD_ROOT%\src-%DIR%\db4-win32;%ASMDIR%;
               %PYTHONDIR%;%AWKDIR%;%GETTEXTBIN%
       C:>set INCLUDE=%SDKINC%;%INCLUDE%
       C:>set LIB=%SDKLIB%;%LIB%
 
       OpenSSL
 
-      C:>cd openssl-0.9.7f
+      C:>cd openssl
       C:>perl Configure VC-WIN32
   [*] C:>call ms\do_masm
       C:>nmake -f ms\ntdll.mak
@@ -940,22 +870,53 @@ II.   INSTALLATION
 
       *Note: Use "call ms\do_nasm" if you have nasm instead of MASM, or
              "call ms\do_ms" if you don't have an assembler.
+             Also if you are using OpenSSL >= 1.0.0 masm is no longer
+             supported. You will have to use do_nasm or do_ms in this case.
 
       Apache 2
 
       This step is only required for building the server dso modules.
 
-      The Subversion gen-make.py script must be run before building Apache or
-      Apache and Subversion will be running incompatible versions of apr.
+      ### FIXME Apache 2.2 or greater required. Old build instructions for VC6.
 
-      C:>cd src-%DIR%
-      C:>python gen-make.py -t dsp --with-httpd=..\httpd-2.0.58
-         --with-berkeley-db=db4-win32 --with-openssl=..\openssl-0.9.7f
-         --with-zlib=..\zlib --with-libintl=..\svn-win32-libintl
-      C:>cd ..
       C:>set APACHEDIR=C:\Program Files\Apache Group\Apache2
       C:>msdev httpd-2.0.58\apache.dsw /MAKE "BuildBin - Win32 Release"
 
+      APR
+
+      If you downloaded APR / APR-UTIL / APR_ICONV by source, you will have to
+      build these libraries first.
+      Building these libraries on Windows is straight forward and in most cases
+      as simple as issuing these two commands:
+
+      C:>nmake -f Makefile.win
+      C:>nmake -f Makefile.win install
+
+      Please refere to the build instructions provided by the library source
+      for actual build instructions.
+
+      ZLib
+
+      If you downloaded the zlib source, you will have to build ZLib first.
+      Building ZLib using Visual Studio should be quite simple. Just open the
+      appropriate solution and build the project zlibstat using the IDE.
+
+      Please refere to the build instructions provided by the library source
+      for actual build instructions.
+
+      Note that you'd make sure to define ZLIB_WINAPI in the ZLib config
+      header and move the lib-file into the zlib root-directory.
+
+      Apache Serf
+
+      ### Section about Apache Serf might be required/useful to add.
+      ### scons is required too and Apache Serf needs to be configured prior to
+      ### be able to build Subversion using:
+      ### scons APR=[PATH_TO_APR] APU=[PATH_TO_APU] OPENSSL=[PATH_TO_OPENSSL]
+      ### ZLIB=[PATH_TO_ZLIB] PREFIX=[PATH_TO_SERF_DEST]
+      ### scons check
+      ### scons install
+
       Subversion
 
       Things to note:
@@ -967,31 +928,19 @@ II.   INSTALLATION
         the APR libraries; the options are --with-apr, --with-apr-util and
         --with-apr-iconv.
       * If you would like a debug build substitute Debug for Release in
-        the msdev commands.
+        the msbuild command.
       * There have been rumors that Subversion on Win32 can be built
         using the latest cygwin, you probably don't want the zip file source
         distribution though. ymmv.
-      * The /USEENV switch to msdev makes it take notice of the INCLUDE and
-        LIB environment variables, it also makes it ignore its own lib and
-        include settings so you need to have the Windows SDK lib and include
-        directories in the LIB and INCLUDE environment variables.  Do *not*
-        use this switch when starting up the msdev Visual environment.  If you
-        wish to build in the Visual environment the SDK lib and include
-        directories must be in the Tools/Options/Directories settings (if you
-        followed the 'Register the SDK with Visual Studio 6' instructions
-        above this has been done for you).
-      * If you are using Visual Studio .NET change -t dsw into -t vcproj and
-        add the --vsnet-version=200x option on the gen-make.py command.
-        In this case you will also have to distribute the C runtime dll with
-        the binaries.  Also, since Apache/APR do not provide .vcproj files,
-        you will need to convert the Apache/APR .dsp files to .vcproj files
-        with Visual Studio before building -- just open the Apache .dsw file
-        and answer 'Yes To All' when the conversion dialog pops up, or you
-        can open the individual .dsp files and convert them one at a time.
+      * You will also have to distribute the C runtime dll with the binaries.
+        Also, since Apache/APR do not provide .vcproj files, you will need to
+        convert the Apache/APR .dsp files to .vcproj files with Visual Studio
+        before building -- just open the Apache .dsw file and answer 'Yes To
+        All' when the conversion dialog pops up, or you can open the individual
+        .dsp files and convert them one at a time.
         The Apache/APR projects required by Subversion are:
         apr-util\libaprutil.dsp, apr\libapr.dsp,
         apr-iconv\libapriconv.dsp, apr-util\xml\expat\lib\xml.dsp,
-        apr-util\uri\gen_uri_delims.dsp (for APR 0.9.x),
         apr-iconv\ccs\libapriconv_ccs_modules.dsp, and
         apr-iconv\ces\libapriconv_ces_modules.dsp.
       * If the server dso modules are being built and tested Apache must not
@@ -1003,22 +952,12 @@ II.   INSTALLATION
       gen-make.py will already have been run. If the source is from the zip
       file, Apache 2 has not been built so gen-make.py must be run:
 
-      C:>python gen-make.py -t dsp --with-berkeley-db=db4-win32
-          --with-openssl=..\openssl-0.9.7f --with-zlib=..\zlib
+      C:>python gen-make.py --vsnet-version=20xx --with-berkeley-db=db4-win32
+          --with-openssl=..\openssl --with-zlib=..\zlib
           --with-libintl=..\svn-win32-libintl
 
       Then build subversion:
 
-      C:>msdev subversion_msvc.dsw /USEENV /MAKE "__ALL_TESTS__ - Win32 Release"
-      C:>cd ..
-
-      Or, with Visual C++.NET 2002, 2003, 2005:
-
-      C:>devenv subversion_vcnet.sln /build "Release" /project "__ALL_TESTS__"
-      C:>cd ..
-
-      Or, with Visual C++ Express 2005:
-
       C:>msbuild subversion_vcnet.sln /t:__ALL_TESTS__ /p:Configuration=Release
       C:>cd ..
 
@@ -1063,7 +1002,7 @@ II.   INSTALLATION
 
       Then run the client tests:
 
-      C:>PATH=%DRIVE%:\SVN\svn-win32-%VER%\bin;%PATH%
+      C:>PATH=%BUILD_ROOT%\svn-win32-%VER%\bin;%PATH%
       C:>cd src-%DIR%
       C:>python win-tests.py -c -r -v
 
@@ -1110,39 +1049,19 @@ III.  BUILDING A SUBVERSION SERVER
       svnserve instead, jump right to section E for a quick explanation.
 
 
-  A.  Setting Up Apache
-      -----------------
+  A.  Setting Up Apache Httpd
+      -----------------------
 
-      1.  Obtaining and Installing Apache 2
+      1.  Obtaining and Installing Apache Httpd 2
 
       Subversion tries to compile against the latest released version
-      of Apache httpd 2.X.  The easiest thing for you to do is download
+      of Apache httpd 2.2+.  The easiest thing for you to do is download
       a source tarball of the latest release and unpack that.
 
-
-        ****************************************************************
-        **    IMPORTANT ISSUE ABOUT APACHE VERSIONS:  READ THIS.      **
-        **                                                            **
-        ****************************************************************
-        |                                                              |
-        | First, be sure to read the APR version warning box, back in  |
-        | section I.C.1, which explains that APR 0.9.x and 1.X are     |
-        | binary-incompatible.                                         |
-        |                                                              |
-        |    Apache HTTPD 2.0 uses APR 0.9.x.                          |
-        |    Apache HTTPD 2.2 uses APR 1.2.x.                          |
-        |                                                              |
-        | We recommend using the latest Apache.  However, whatever     |
-        | version you choose, you *must* ensure that Subversion        |
-        | and Apache are using the same version of APR.  If you don't, |
-        | things will segfault and break.                              |
-        |______________________________________________________________|
-
-
-      If you have questions about the Apache httpd 2.0 build, please consult
+      If you have questions about the Apache httpd 2.2 build, please consult
       the httpd install documentation:
 
-          http://httpd.apache.org/docs-2.0/install.html
+          http://httpd.apache.org/docs-2.2/install.html
 
       At the top of the httpd tree:
 
@@ -1168,7 +1087,7 @@ III.  BUILDING A SUBVERSION SERVER
       line.  Make sure this is the same db as the one Subversion uses.
       This note assumes you have installed Berkeley DB 4.2.52
       at its default locations.  For more info about the db requirement,
-      see section I.5.
+      see section I.C.7.
 
       You may also want to include other modules in your build. Add
       --enable-ssl to turn on SSL support, and --enable-deflate to turn on
@@ -1188,7 +1107,7 @@ III.  BUILDING A SUBVERSION SERVER
       ---------------------------------------------------------
 
       Go back into your subversion working copy and run ./autogen.sh if
-      you need to.  Then, assuming Apache httpd 2.0 is installed in the
+      you need to.  Then, assuming Apache httpd 2.2 is installed in the
       standard location, run:
 
           $ ./configure
@@ -1198,7 +1117,7 @@ III.  BUILDING A SUBVERSION SERVER
       look for other libsvn_*.so libraries on your system.
 
       If you see a warning message that the build of mod_dav_svn is
-      being skipped, this may be because you have Apache httpd 2.X
+      being skipped, this may be because you have Apache httpd 2.x
       installed in a non-standard location.  You can use the
       "--with-apxs=" option to locate the apxs script:
 
@@ -1225,8 +1144,8 @@ III.  BUILDING A SUBVERSION SERVER
       Section II.E explains how to build the server on Windows.
 
 
-  C.  Configuring Apache for Subversion
-      ---------------------------------
+  C.  Configuring Apache Httpd for Subversion
+      ---------------------------------------
 
       The following section is an abbreviated version of the
       information in the Subversion Book
@@ -1240,7 +1159,7 @@ III.  BUILDING A SUBVERSION SERVER
       /usr/local/apache2/conf/httpd.conf to reflect your setup.
       At a minimum you should look at the User, Group and ServerName
       directives.  Full details on setting up apache can be found at:
-      http://httpd.apache.org/docs-2.0/
+      http://httpd.apache.org/docs-2.2/
 
       First, your httpd.conf needs to load the mod_dav_svn module.
       If you pass --enable-mod-activation to Subversion's configure,
@@ -1294,6 +1213,7 @@ III.  BUILDING A SUBVERSION SERVER
                  Require group svn_readers
              </Limit>
 
+      ### FIXME Tutorials section refers to old 2.0 docs
       These are only a few simple examples.  For a complete tutorial
       on Apache access control, please consider taking a look at the
       tutorials found under "Security" on the following page:
@@ -1320,7 +1240,7 @@ III.  BUILDING A SUBVERSION SERVER
 
       NOTE: If you are unfamiliar with an Apache directive, or not exactly
       sure about what it does, don't hesitate to look it up in the
-      documentation: http://httpd.apache.org/docs-2.0/mod/directives.html.
+      documentation: http://httpd.apache.org/docs-2.2/mod/directives.html.
 
       NOTE: Make sure that the user 'nobody' (or whatever UID the
       httpd process runs as) has permission to read and write the

Modified: subversion/branches/ra-git/LICENSE
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/LICENSE?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/LICENSE (original)
+++ subversion/branches/ra-git/LICENSE Mon Nov 30 10:24:16 2015
@@ -366,3 +366,32 @@ subversion/libsvn_subr/x509.h
  *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+For the (modified) 'linenoise' library in tools/dev/svnmover/linenoise
+
+  Copyright (c) 2010-2014, Salvatore Sanfilippo <antirez at gmail dot com>
+  Copyright (c) 2010-2013, Pieter Noordhuis <pcnoordhuis at gmail dot com>
+
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  * Redistributions of source code must retain the above copyright notice,
+    this list of conditions and the following disclaimer.
+
+  * Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Modified: subversion/branches/ra-git/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/Makefile.in?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/Makefile.in (original)
+++ subversion/branches/ra-git/Makefile.in Mon Nov 30 10:24:16 2015
@@ -500,17 +500,17 @@ clean-javahl:
 check-tigris-javahl: javahl-compat
 	@FIX_JAVAHL_LIB@
 	$(TEST_SHLIB_VAR_JAVAHL) \
-	$(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_compat_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.tests=$(JAVAHL_TESTS)" org.tigris.subversion.javahl.RunTests
+	$(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_compat_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.cleanup=$(JAVAHL_CLEANUP)" "-Dtest.tests=$(JAVAHL_TESTS)" org.tigris.subversion.javahl.RunTests
 
 check-apache-javahl: javahl
 	@FIX_JAVAHL_LIB@
 	$(TEST_SHLIB_VAR_JAVAHL) \
-	$(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.tests=$(JAVAHL_TESTS)" org.apache.subversion.javahl.RunTests
+	$(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.cleanup=$(JAVAHL_CLEANUP)" "-Dtest.tests=$(JAVAHL_TESTS)" org.apache.subversion.javahl.RunTests
 
 check-deprecated-authn-javahl: javahl
 	@FIX_JAVAHL_LIB@
 	$(TEST_SHLIB_VAR_JAVAHL) \
-	$(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.tests=$(JAVAHL_TESTS)" "-Dtest.authn.deprecated=true" org.apache.subversion.javahl.RunTests
+	$(JAVA) -Xcheck:jni "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.cleanup=$(JAVAHL_CLEANUP)" "-Dtest.tests=$(JAVAHL_TESTS)" "-Dtest.authn.deprecated=true" org.apache.subversion.javahl.RunTests
 
 check-javahl: check-apache-javahl
 
@@ -521,7 +521,6 @@ check-all-javahl: check-apache-javahl ch
 #  will perform only basic tests (likewise for other tests).
 check: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $(TEST_DEPS) @BDB_TEST_DEPS@
 	@if test "$(PYTHON)" != "none"; then                                 \
-	  flags="--verbose";                                                 \
 	  if test "$(CLEANUP)" != ""; then                                   \
 	    flags="--cleanup $$flags";                                       \
 	  fi;                                                                \
@@ -558,6 +557,9 @@ check: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $
 	  if test "$(PARALLEL)" != ""; then                                  \
 	    flags="--parallel $(PARALLEL) $$flags";                          \
 	  fi;                                                                \
+	  if test "$(GLOBAL_SCHEDULER)" != ""; then                          \
+	    flags="--global-scheduler $$flags";                              \
+	  fi;                                                                \
 	  if test "$(LOG_TO_STDOUT)" != ""; then                             \
 	    flags="--log-to-stdout $$flags";                                 \
 	  fi;                                                                \
@@ -586,7 +588,7 @@ check: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $
 	            $$flags                                                  \
 	            '$(abs_srcdir)' '$(abs_builddir)' $(TESTS);              \
 	else                                                                 \
-	  echo "make check: Python 2.5 or greater is required,";             \
+	  echo "make check: Python 2.7 or greater is required,";             \
 	  echo "            but was not detected during configure";          \
 	  exit 1;                                                            \
 	fi;
@@ -851,7 +853,11 @@ swig-pl_DEPS = autogen-swig-pl libsvn_sw
   $(SWIG_PL_DIR)/native/Makefile
 swig-pl: $(swig-pl_DEPS)
 	if test "`$(READLINK_PL) $(SWIG_PL_DIR)`" != "`$(READLINK_PL) $(SWIG_PL_SRC_DIR)`"; then \
-	  ln -sf $(SWIG_PL_SRC_DIR)/native/*.c $(SWIG_PL_DIR)/native; \
+	  for f in $(SWIG_PL_SRC_DIR)/native/*.c ; do \
+	     if [ -e "$$f" ] ; then \
+	       ln -sf "$$f" $(SWIG_PL_DIR)/native; \
+	    fi; \
+	  done; \
 	fi
 	cd $(SWIG_PL_DIR)/native; $(MAKE) OPTIMIZE="" OTHERLDFLAGS="$(SWIG_LDFLAGS)"
 
@@ -920,13 +926,15 @@ swig-rb: autogen-swig-rb
 check-swig-rb: swig-rb svnserve
 	$(TEST_SHLIB_VAR_SWIG_RB) \
 	cd $(SWIG_RB_DIR); \
-          if [ "$(RUBY_MAJOR)" -eq 1 -a "$(RUBY_MINOR)" -lt 9 ] ; then \
-            $(RUBY) -I $(SWIG_RB_SRC_DIR) \
-              $(SWIG_RB_SRC_DIR)/test/run-test.rb \
-	      --verbose=$(SWIG_RB_TEST_VERBOSE); \
-          else \
-	    $(RUBY) -I $(SWIG_RB_SRC_DIR) \
-	      $(SWIG_RB_SRC_DIR)/test/run-test.rb; \
+	  check_rb() { \
+	    $(RUBY) -I $(SWIG_RB_SRC_DIR) $(SWIG_RB_SRC_DIR)/test/run-test.rb "$$@"; \
+	  }; \
+	  if check_rb --help 2>&1 | grep -q -- --collector; then \
+	    check_rb --collector=dir --verbose=$(SWIG_RB_TEST_VERBOSE); \
+	  elif [ "$(RUBY_MAJOR)" -eq 1 -a "$(RUBY_MINOR)" -lt 9 ] ; then \
+	    check_rb --verbose=$(SWIG_RB_TEST_VERBOSE); \
+	  else \
+	    check_rb; \
           fi
 
 EXTRACLEAN_SWIG_RB=rm -f $(SWIG_RB_SRC_DIR)/svn_*.c $(SWIG_RB_SRC_DIR)/core.c

Modified: subversion/branches/ra-git/NOTICE
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/NOTICE?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/NOTICE (original)
+++ subversion/branches/ra-git/NOTICE Mon Nov 30 10:24:16 2015
@@ -1,5 +1,5 @@
 Apache Subversion
-Copyright 2014 The Apache Software Foundation
+Copyright 2015 The Apache Software Foundation
 
 This product includes software developed by many people, and distributed
 under Contributor License Agreements to The Apache Software Foundation

Modified: subversion/branches/ra-git/autogen.sh
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/autogen.sh?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/autogen.sh (original)
+++ subversion/branches/ra-git/autogen.sh Mon Nov 30 10:24:16 2015
@@ -157,11 +157,11 @@ fi
 #
 # Note: this dependency on Python is fine: only SVN developers use autogen.sh
 #       and we can state that dev people need Python on their machine. Note
-#       that running gen-make.py requires Python 2.5 or newer.
+#       that running gen-make.py requires Python 2.7 or newer.
 
 PYTHON="`./build/find_python.sh`"
 if test -z "$PYTHON"; then
-  echo "Python 2.5 or later is required to run autogen.sh"
+  echo "Python 2.7 or later is required to run autogen.sh"
   echo "If you have a suitable Python installed, but not on the"
   echo "PATH, set the environment variable PYTHON to the full path"
   echo "to the Python executable, and re-run autogen.sh"

Modified: subversion/branches/ra-git/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/build.conf?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/build.conf (original)
+++ subversion/branches/ra-git/build.conf Mon Nov 30 10:24:16 2015
@@ -45,6 +45,8 @@ private-includes =
         subversion/bindings/cxxhl/src/private/*.hpp
         subversion/bindings/javahl/native/*.hpp
         subversion/bindings/javahl/native/jniwrapper/jni_*.hpp
+        tools/dev/svnmover/linenoise/linenoise.h
+        tools/dev/svnmover/linenoise/linenoise.c
         subversion/libsvn_subr/utf8proc/utf8proc.h
         subversion/libsvn_subr/utf8proc/utf8proc.c
         subversion/libsvn_subr/utf8proc/utf8proc_data.c
@@ -252,7 +254,7 @@ type = lib
 install = fsmod-lib
 path = subversion/libsvn_delta
 libs = libsvn_subr aprutil apriconv apr zlib
-msvc-export = svn_delta.h private/svn_editor.h private/svn_delta_private.h
+msvc-export = svn_delta.h private/svn_editor.h private/svn_delta_private.h private/svn_element.h private/svn_branch.h private/svn_branch_compat.h private/svn_branch_impl.h private/svn_branch_nested.h private/svn_branch_repos.h
 
 # Routines for diffing
 [libsvn_diff]
@@ -282,7 +284,8 @@ path = subversion/libsvn_fs_base
 sources = *.c bdb/*.c util/*.c
 install = bdb-lib
 libs = libsvn_delta libsvn_subr aprutil apriconv apr bdb libsvn_fs_util
-msvc-static = yes
+msvc-export = ../libsvn_fs_base/fs_init.h
+msvc-delayload = yes
 
 [libsvn_fs_fs]
 description = Subversion FSFS Repository Filesystem Library
@@ -290,7 +293,8 @@ type = fs-module
 path = subversion/libsvn_fs_fs
 install = fsmod-lib
 libs = libsvn_delta libsvn_subr aprutil apriconv apr libsvn_fs_util
-msvc-static = yes
+msvc-export = private/svn_fs_fs_private.h ../libsvn_fs_fs/fs_init.h
+msvc-delayload = yes
 
 [libsvn_fs_x]
 description = Subversion FSX Repository Filesystem Library
@@ -298,7 +302,8 @@ type = fs-module
 path = subversion/libsvn_fs_x
 install = fsmod-lib
 libs = libsvn_delta libsvn_subr aprutil apriconv apr libsvn_fs_util
-msvc-static = yes
+msvc-export = ../libsvn_fs_x/fs_init.h
+msvc-delayload = yes
 
 # Low-level grab bag of utilities
 [libsvn_fs_util]
@@ -308,7 +313,7 @@ install = fsmod-lib
 path = subversion/libsvn_fs_util
 libs = libsvn_subr aprutil apriconv apr
 msvc-libs = advapi32.lib shfolder.lib
-msvc-static = yes
+msvc-export = private/svn_fs_util.h
 
 # General API for accessing repositories
 [libsvn_ra]
@@ -321,6 +326,7 @@ add-deps = $(SVN_RA_LIB_DEPS)
 add-install-deps = $(SVN_RA_LIB_INSTALL_DEPS)
 install = lib
 msvc-export = svn_ra.h private\svn_ra_private.h
+msvc-delayload = yes
 
 # Accessing repositories via DAV through serf
 [libsvn_ra_serf]
@@ -796,6 +802,7 @@ sources = fs-base-test.c
 install = bdb-test
 libs = libsvn_test libsvn_fs libsvn_fs_base libsvn_delta
        libsvn_fs_util libsvn_subr apriconv apr
+msvc-force-static = yes
 
 [strings-reps-test]
 description = Test strings/reps in libsvn_fs_base
@@ -805,6 +812,7 @@ sources = strings-reps-test.c
 install = bdb-test
 libs = libsvn_test libsvn_fs libsvn_fs_base libsvn_delta
        libsvn_subr apriconv apr
+msvc-force-static = yes
 
 [changes-test]
 description = Test changes in libsvn_fs_base
@@ -814,6 +822,7 @@ sources = changes-test.c
 install = bdb-test
 libs = libsvn_test libsvn_fs libsvn_fs_base libsvn_delta
        libsvn_subr apriconv apr
+msvc-force-static = yes
 
 # ----------------------------------------------------------------------------
 # Tests for libsvn_fs_fs
@@ -825,6 +834,7 @@ sources = fs-fs-pack-test.c
 install = test
 libs = libsvn_test libsvn_fs libsvn_fs_fs libsvn_delta
        libsvn_subr apriconv apr
+msvc-force-static = yes
 
 [fs-fs-fuzzy-test]
 description = Use fuzzying to test FSFS corruption resilience
@@ -834,6 +844,7 @@ sources = fs-fs-fuzzy-test.c
 install = sub-test
 libs = libsvn_test libsvn_fs libsvn_fs_fs libsvn_delta
        libsvn_repos libsvn_subr apriconv apr
+msvc-force-static = yes
 
 [fs-fs-private-test]
 description = Test FSSF private API
@@ -843,6 +854,7 @@ sources = fs-fs-private-test.c
 install = test
 libs = libsvn_test libsvn_fs libsvn_fs_fs libsvn_delta
        libsvn_repos libsvn_subr apriconv apr
+msvc-force-static = yes
 
 # ----------------------------------------------------------------------------
 # Tests for libsvn_fs_x
@@ -854,6 +866,7 @@ sources = fs-x-pack-test.c
 install = test
 libs = libsvn_test libsvn_fs libsvn_fs_x libsvn_delta
        libsvn_subr apriconv apr
+msvc-force-static = yes
 
 [string-table-test]
 description = Test fsfs string tables
@@ -862,6 +875,7 @@ path = subversion/tests/libsvn_fs_x
 sources = string-table-test.c
 install = test
 libs = libsvn_test libsvn_fs_x libsvn_subr apr
+msvc-force-static = yes
 
 # ----------------------------------------------------------------------------
 # Tests for libsvn_fs
@@ -876,7 +890,7 @@ libs = libsvn_test libsvn_fs libsvn_delt
 msvc-force-static = yes
 
 [fs-test]
-description = Test locks in libsvn_fs
+description = Tests in libsvn_fs
 type = exe
 path = subversion/tests/libsvn_fs
 sources = fs-test.c
@@ -884,6 +898,15 @@ install = test
 libs = libsvn_test libsvn_fs libsvn_delta
        libsvn_fs_util libsvn_subr aprutil apriconv apr
 
+[fs-sequential-test]
+description = Tests in libsvn_fs run sequentially
+type = exe
+path = subversion/tests/libsvn_fs
+sources = fs-sequential-test.c
+install = test
+libs = libsvn_test libsvn_fs libsvn_delta
+       libsvn_fs_util libsvn_subr aprutil apriconv apr
+
 # ----------------------------------------------------------------------------
 # Tests for libsvn_repos
 
@@ -1498,14 +1521,14 @@ libs = svn svnadmin svndumpfilter svnloo
        svnversion
        mod_authz_svn mod_dav_svn mod_dontdothat
        svnauthz svnauthz-validate svnraisetreeconflict
-       svnfsfs svnbench
+       svnfsfs svnbench svnmover
 
 [__ALL_TESTS__]
 type = project
 path = build/win32
 libs = __ALL__
        fs-test fs-base-test fs-fsfs-test fs-fs-pack-test fs-fs-fuzzy-test
-       fs-fs-private-test fs-x-pack-test string-table-test
+       fs-fs-private-test fs-x-pack-test string-table-test fs-sequential-test
        skel-test strings-reps-test changes-test locks-test
        repos-test dump-load-test
        checksum-test compat-test config-test hashdump-test mergeinfo-test
@@ -1536,6 +1559,7 @@ path = build/win32
 libs = __ALL_TESTS__
        diff diff3 diff4 fsfs-access-map svnauth 
        svn-populate-node-origins-index x509-parser svn-wc-db-tester
+       svn-mergeinfo-normalizer
 
 [__LIBS__]
 type = project
@@ -1607,9 +1631,10 @@ install = tools
 libs = libsvn_diff libsvn_subr apriconv apr
 
 [svnbench]
+description = Benchmarking and diagnostics tool for the network layer
 type = exe
 path = subversion/svnbench
-install = tools
+install = bin
 libs = libsvn_client libsvn_wc libsvn_ra libsvn_subr libsvn_delta
        apriconv apr
 
@@ -1649,6 +1674,13 @@ path = tools/dev/svnraisetreeconflict
 libs = libsvn_wc libsvn_subr apriconv apr
 install = tools
 
+[svn-mergeinfo-normalizer]
+type = exe
+path = tools/client-side/svn-mergeinfo-normalizer
+install = tools
+libs = libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_diff libsvn_subr
+       apriconv apr
+
 [x509-parser]
 description = Tool to verify x509 certificates
 type = exe
@@ -1656,3 +1688,11 @@ path = tools/dev
 sources = x509-parser.c
 install = tools
 libs = libsvn_subr apr
+
+[svnmover]
+description = Subversion Mover Command Client
+type = exe
+path = tools/dev/svnmover
+sources = *.c
+libs = libsvn_client libsvn_ra libsvn_subr libsvn_delta apriconv apr
+install = tools

Modified: subversion/branches/ra-git/build/ac-macros/apache.m4
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/build/ac-macros/apache.m4?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/build/ac-macros/apache.m4 (original)
+++ subversion/branches/ra-git/build/ac-macros/apache.m4 Mon Nov 30 10:24:16 2015
@@ -46,7 +46,7 @@ AC_ARG_WITH(apxs,
 ])
 
 if test -z "$APXS"; then
-  for i in /usr/sbin /usr/local/apache/bin /usr/local/apache2/bin /usr/bin ; do
+  for i in /usr/local/apache2/bin /usr/local/apache/bin /usr/bin /usr/sbin ; do
     if test -f "$i/apxs2"; then
       APXS="$i/apxs2"
       break
@@ -89,6 +89,33 @@ else
     AC_MSG_RESULT(no)
 fi
 
+# check for some busted versions of mod_dav
+# in particular 2.2.25, 2.4.5, and 2.4.6 had the following bugs which are
+# troublesome for Subversion:
+# PR 55304: https://issues.apache.org/bugzilla/show_bug.cgi?id=55304
+# PR 55306: https://issues.apache.org/bugzilla/show_bug.cgi?id=55306
+# PR 55397: https://issues.apache.org/bugzilla/show_bug.cgi?id=55397
+if test -n "$APXS" && test "$APXS" != "no"; then
+  AC_MSG_CHECKING([mod_dav version])
+  HTTPD_MAJOR=`$SED -ne '/^#define AP_SERVER_MAJORVERSION_NUMBER/p' "$APXS_INCLUDE/ap_release.h" | $SED -e 's/^.*NUMBER *//'`
+  HTTPD_MINOR=`$SED -ne '/^#define AP_SERVER_MINORVERSION_NUMBER/p' "$APXS_INCLUDE/ap_release.h" | $SED -e 's/^.*NUMBER *//'`
+  HTTPD_PATCH=`$SED -ne '/^#define AP_SERVER_PATCHLEVEL_NUMBER/p' "$APXS_INCLUDE/ap_release.h" | $SED -e 's/^.*NUMBER *//'`
+  HTTPD_VERSION="${HTTPD_MAJOR}.${HTTPD_MINOR}.${HTTPD_PATCH}"
+  case "$HTTPD_VERSION" in
+    2.2.25 | 2.4.[[5-6]])
+      AC_MSG_RESULT([broken])
+      AC_MSG_ERROR([Apache httpd version $HTTPD_VERSION includes a broken mod_dav; use a newer version of httpd])
+      ;;
+    2.[[0-9]]*.[[0-9]]*)
+      AC_MSG_RESULT([acceptable])
+      ;;
+    *)
+      AC_MSG_RESULT([unrecognised])
+      AC_MSG_ERROR([Apache httpd version $HTTPD_VERSION not recognised])
+      ;;
+  esac
+fi
+
 if test -n "$APXS" && test "$APXS" != "no"; then
   AC_MSG_CHECKING([whether Apache version is compatible with APR version])
   apr_major_version="${apr_version%%.*}"
@@ -106,37 +133,15 @@ if test -n "$APXS" && test "$APXS" != "n
       AC_MSG_ERROR([unknown APR version])
       ;;
   esac
-  old_CPPFLAGS="$CPPFLAGS"
-  CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES"
-  AC_EGREP_CPP([apache_minor_version= *\"$apache_minor_version_wanted_regex\"],
-               [
-#include "$APXS_INCLUDE/ap_release.h"
-apache_minor_version=AP_SERVER_MINORVERSION],
-               [AC_MSG_RESULT([yes])],
-               [AC_MSG_RESULT([no])
-                AC_MSG_ERROR([Apache version incompatible with APR version])])
-  CPPFLAGS="$old_CPPFLAGS"
-fi
-
-# check for some busted versions of mod_dav
-# in particular 2.2.25, 2.4.5, and 2.4.6 had the following bugs which are
-# troublesome for Subversion:
-# PR 55304: https://issues.apache.org/bugzilla/show_bug.cgi?id=55304
-# PR 55306: https://issues.apache.org/bugzilla/show_bug.cgi?id=55306
-# PR 55397: https://issues.apache.org/bugzilla/show_bug.cgi?id=55397
-if test -n "$APXS" && test "$APXS" != "no"; then
-  AC_MSG_CHECKING([mod_dav version])
-  old_CPPFLAGS="$CPPFLAGS"
-  CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES"
-  blacklisted_versions_regex=["\"2\" \"\.\" (\"2\" \"\.\" \"25\"|\"4\" \"\.\" \"[56]\")"]
-  AC_EGREP_CPP([apache_version= *$blacklisted_versions_regex],
-               [
-#include "$APXS_INCLUDE/ap_release.h"
-apache_version=AP_SERVER_BASEREVISION],
-               [AC_MSG_RESULT([broken])
-                AC_MSG_ERROR([Apache httpd version includes a broken mod_dav; use a newer version of httpd])],
-               [AC_MSG_RESULT([acceptable])])
-  CPPFLAGS="$old_CPPFLAGS"
+  case $HTTPD_MINOR in
+    $apache_minor_version_wanted_regex)
+      AC_MSG_RESULT([yes])
+      ;;
+    *)
+      AC_MSG_RESULT([no])
+      AC_MSG_ERROR([Apache version $HTTPD_VERSION incompatible with APR version $apr_version])
+      ;;
+  esac
 fi
 
 AC_ARG_WITH(apache-libexecdir,
@@ -159,15 +164,42 @@ if test -n "$APXS" && test "$APXS" != "n
 
     AC_CHECK_HEADERS(unistd.h, [AC_CHECK_FUNCS(getpid)], [])
 
+    MMN_MAJOR=`$SED -ne '/^#define MODULE_MAGIC_NUMBER_MAJOR/p' "$APXS_INCLUDE/ap_mmn.h" | $SED -e 's/^.*MAJOR *//'`
+    MMN_MINOR=`$SED -ne '/^#define MODULE_MAGIC_NUMBER_MINOR/p' "$APXS_INCLUDE/ap_mmn.h" | $SED -e 's/^.*MINOR *//' | $SED -e 's/ .*//'`
+    if test "$MMN_MAJOR" = "20120211" && test "$MMN_MINOR" -lt "47" ; then
+      # This is httpd 2.4 and it doesn't appear to have the required
+      # API but the installation may have been patched.
+      AC_ARG_ENABLE(broken-httpd-auth,
+        AS_HELP_STRING([--enable-broken-httpd-auth],
+                       [Force build against httpd 2.4 with broken auth]),
+        [broken_httpd_auth=$enableval],[broken_httpd_auth=no])
+      AC_MSG_CHECKING([for ap_some_authn_required])
+      old_CPPFLAGS="$CPPFLAGS"
+      CPPFLAGS="$CPPFLAGS $APACHE_INCLUDES $SVN_APR_INCLUDES"
+      AC_EGREP_CPP([int.*\sap_some_authn_required\s*\(],
+                   [#include "http_request.h"],
+                   [AC_MSG_RESULT([yes])
+                    working_auth=yes],
+                   [AC_MSG_RESULT([no])])
+      CPPFLAGS="$old_CPPFLAGS"
+      if test "$working_auth" = "yes" ; then
+        AC_DEFINE(SVN_USE_FORCE_AUTHN, 1,
+                  [Defined to build with patched httpd 2.4 and working auth])
+      elif test "$enable_broken_httpd_auth" = "yes"; then
+        AC_MSG_WARN([==============================================])
+        AC_MSG_WARN([Apache httpd $HTTPD_VERSION MMN $MMN_MAJOR.$MMN_MINOR])
+        AC_MSG_WARN([Subversion will be vulnerable to CVE-2015-3184])
+        AC_MSG_WARN([==============================================])
+        AC_DEFINE(SVN_ALLOW_BROKEN_HTTPD_AUTH, 1,
+                  [Defined to build against httpd 2.4 with broken auth])
+      else
+        AC_MSG_ERROR([Apache httpd $HTTPD_VERSION MMN $MMN_MAJOR.$MMN_MINOR has broken auth (CVE-2015-3184)])
+      fi
+    fi
+
     BUILD_APACHE_RULE=apache-mod
     INSTALL_APACHE_RULE=install-mods-shared
     INSTALL_APACHE_MODS=true
-    HTTPD="`$APXS -q sbindir`/`$APXS -q PROGNAME`"
-    if ! test -e $HTTPD ; then
-      HTTPD="`$APXS -q bindir`/`$APXS -q PROGNAME`"
-    fi
-    HTTPD_VERSION=["`$HTTPD -v | $SED -e 's@^.*/\([0-9.]*\)\(.*$\)@\1@ ; 1q'`"]
-
     case $host in
       *-*-cygwin*)
         APACHE_LDFLAGS="-shrext .so"

Modified: subversion/branches/ra-git/build/ac-macros/java.m4
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/build/ac-macros/java.m4?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/build/ac-macros/java.m4 (original)
+++ subversion/branches/ra-git/build/ac-macros/java.m4 Mon Nov 30 10:24:16 2015
@@ -62,10 +62,13 @@ AC_DEFUN(SVN_FIND_JDK,
   JDK_SUITABLE=no
   AC_MSG_CHECKING([for JDK])
   if test $where = check; then
-    dnl Prefer /Library/Java/Home first to try to be nice on Darwin.
-    dnl We'll correct later if we get caught in the tangled web of JAVA_HOME.
+    dnl Prefer /usr/libexec/java_home, then /Library/Java/Home first
+    dnl to try to be nice on Darwin.  We'll correct later if we get
+    dnl caught in the tangled web of JAVA_HOME.
     if test -x "$JAVA_HOME/bin/java"; then
       JDK="$JAVA_HOME"
+    elif test -x "/usr/libexec/java_home"; then
+      JDK=`/usr/libexec/java_home`
     elif test -x "/Library/Java/Home/bin/java"; then
       JDK="/Library/Java/Home"
     elif test -x "/usr/bin/java"; then
@@ -148,49 +151,22 @@ AC_DEFUN(SVN_FIND_JDK,
     JAVADOC="$JAVA_BIN/javadoc"
     JAR="$JAVA_BIN/jar"
 
-    dnl Prefer Jikes (for speed) if available.
-    jikes_options="/usr/local/bin/jikes /usr/bin/jikes"
+    dnl Once upon a time we preferred Jikes for speed.
+    dnl Jikes is dead, long live Jikes!
     AC_ARG_WITH(jikes,
                 AS_HELP_STRING([--with-jikes=PATH],
-                               [Specify the path to a jikes binary to use
-                                it as your Java compiler.  The default is to
-                                look for jikes (PATH optional).  This behavior
-                                can be switched off by supplying 'no'.]),
+                   [Deprecated. Provided for backward compatibility.]),
     [
-        if test "$withval" != "no" && test "$withval" != "yes"; then
-          dnl Assume a path was provided.
-          jikes_options="$withval $jikes_options"
-        fi
-        requested_jikes="$withval"  # will be 'yes' if path unspecified
-    ])
-    if test "$requested_jikes" != "no"; then
-      dnl Look for a usable jikes binary.
-      for jikes in $jikes_options; do
-        if test -z "$jikes_found" && test -x "$jikes"; then
-          jikes_found="yes"
-          JAVAC="$jikes"
-          JAVA_CLASSPATH="$JRE_LIB_DIR"
-          for jar in $JRE_LIB_DIR/*.jar; do
-            JAVA_CLASSPATH="$JAVA_CLASSPATH:$jar"
-          done
-        fi
-      done
-    fi
-    if test -n "$requested_jikes" && test "$requested_jikes" != "no"; then
-      dnl Jikes was explicitly requested.  Verify that it was provided.
-      if test -z "$jikes_found"; then
-        AC_MSG_ERROR([Could not find a usable version of Jikes])
-      elif test -n "$jikes_found" && test "$requested_jikes" != "yes" &&
-           test "$JAVAC" != "$requested_jikes"; then
-        AC_MSG_WARN([--with-jikes PATH was invalid, substitute found])
+      if test "$withval" != "no"; then
+        AC_MSG_WARN([The --with-jikes option was ignored])
       fi
-    fi
+    ])
 
     dnl Add javac flags.
     # The release for "-source" could actually be greater than that
     # of "-target", if we want to cross-compile for lesser JVMs.
     if test -z "$JAVAC_FLAGS"; then
-      JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.5"
+      JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.6"
       if test "$enable_debugging" = "yes"; then
         JAVAC_FLAGS="-g -Xlint -Xlint:unchecked -Xlint:serial -Xlint:path $JAVAC_FLAGS"
         if test -z "$JAVAC_COMPAT_FLAGS"; then

Modified: subversion/branches/ra-git/build/ac-macros/serf.m4
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/build/ac-macros/serf.m4?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/build/ac-macros/serf.m4 (original)
+++ subversion/branches/ra-git/build/ac-macros/serf.m4 Mon Nov 30 10:24:16 2015
@@ -168,7 +168,7 @@ AC_DEFUN(SVN_SERF_PKG_CONFIG,
         if $PKG_CONFIG $serf_pc_arg --atleast-version=$serf_check_version; then
           AC_MSG_RESULT([yes])
           serf_found=yes
-          SVN_SERF_INCLUDES=[`$PKG_CONFIG $serf_pc_arg --cflags | $SED -e 's/-D[^ ]*//g'`]
+          SVN_SERF_INCLUDES=[`$PKG_CONFIG $serf_pc_arg --cflags | $SED -e 's/ -D[^ ]*//g' -e 's/^-D[^ ]*//g'`]
           SVN_SERF_LIBS=`$PKG_CONFIG $serf_pc_arg --libs-only-l` 
           dnl don't use --libs-only-L because then we might miss some options
           LDFLAGS=["$LDFLAGS `$PKG_CONFIG $serf_pc_arg --libs | $SED -e 's/-l[^ ]*//g'`"]

Modified: subversion/branches/ra-git/build/ac-macros/swig.m4
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/build/ac-macros/swig.m4?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/build/ac-macros/swig.m4 (original)
+++ subversion/branches/ra-git/build/ac-macros/swig.m4 Mon Nov 30 10:24:16 2015
@@ -38,7 +38,7 @@ AC_DEFUN(SVN_CHECK_SWIG,
         SVN_FIND_SWIG(no)
       ;;
       "yes")
-        SVN_FIND_SWIG(check)
+        SVN_FIND_SWIG(required)
       ;;
       *)
         SVN_FIND_SWIG($withval)
@@ -56,8 +56,11 @@ AC_DEFUN(SVN_FIND_SWIG,
 
   if test $where = no; then
     SWIG=none
-  elif test $where = check; then
+  elif test $where = required || test $where = check; then
     AC_PATH_PROG(SWIG, swig, none)
+    if test "$SWIG" = "none" && test $where = required; then
+      AC_MSG_ERROR([SWIG required, but not found])
+    fi
   else
     if test -f "$where"; then
       SWIG="$where"
@@ -88,16 +91,13 @@ AC_DEFUN(SVN_FIND_SWIG,
     AC_MSG_RESULT([$SWIG_VERSION_RAW])
     # If you change the required swig version number, don't forget to update:
     #   subversion/bindings/swig/INSTALL
-    #   packages/rpm/redhat-8+/subversion.spec
-    #   packages/rpm/redhat-7.x/subversion.spec
-    #   packages/rpm/rhel-3/subversion.spec
-    #   packages/rpm/rhel-4/subversion.spec
-    if test -n "$SWIG_VERSION" && test "$SWIG_VERSION" -ge "103024"; then
+    if test -n "$SWIG_VERSION" && test "$SWIG_VERSION" -ge "103024" && \
+       test "$SWIG_VERSION" -lt "300000"; then
       SWIG_SUITABLE=yes
     else
       SWIG_SUITABLE=no
       AC_MSG_WARN([Detected SWIG version $SWIG_VERSION_RAW])
-      AC_MSG_WARN([Subversion requires SWIG 1.3.24 or later])
+      AC_MSG_WARN([Subversion requires SWIG >= 1.3.24 and < 3.0.0 ])
     fi
   fi
  

Modified: subversion/branches/ra-git/build/find_python.sh
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/build/find_python.sh?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/build/find_python.sh (original)
+++ subversion/branches/ra-git/build/find_python.sh Mon Nov 30 10:24:16 2015
@@ -21,9 +21,7 @@
 #
 
 # Required version of Python
-# Python 2.0 = 0x2000000
-# Python 2.4 = 0x2040000
-VERSION=${1:-0x2050000}
+VERSION=${1:-0x2070000}
 
 for pypath in "$PYTHON" "$PYTHON2" "$PYTHON3" python python2 python3; do
   if [ "x$pypath" != "x" ]; then

Modified: subversion/branches/ra-git/build/generator/gen_base.py
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/build/generator/gen_base.py?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/build/generator/gen_base.py (original)
+++ subversion/branches/ra-git/build/generator/gen_base.py Mon Nov 30 10:24:16 2015
@@ -22,6 +22,7 @@
 # gen_base.py -- infrastructure for generating makefiles, dependencies, etc.
 #
 
+import collections
 import os
 import sys
 import glob
@@ -319,6 +320,93 @@ class GeneratorBase:
   def errno_filter(self, codes):
     return codes
 
+  class FileSectionOptionEnum(object):
+    # These are accessed via getattr() later on
+    file = object()
+    section = object()
+    option = object()
+
+  def _client_configuration_defines(self):
+    """Return an iterator over SVN_CONFIG_* #define's in the "Client
+    configuration files strings" section of svn_config.h."""
+
+    pattern = re.compile(
+      r'^\s*#\s*define\s+'
+      r'(?P<macro>SVN_CONFIG_(?P<kind>CATEGORY|SECTION|OPTION)_[A-Z0-9a-z_]+)'
+    )
+    kind = {
+      'CATEGORY': self.FileSectionOptionEnum.file,
+      'SECTION': self.FileSectionOptionEnum.section,
+      'OPTION': self.FileSectionOptionEnum.option,
+    }
+
+    fname = os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])),
+                         'subversion', 'include', 'svn_config.h')
+    lines = iter(open(fname))
+    for line in lines:
+      if "@name Client configuration files strings" in line:
+        break
+    else:
+      raise Exception("Unable to parse svn_config.h")
+
+    for line in lines:
+      if "@{" in line:
+        break
+    else:
+      raise Exception("Unable to parse svn_config.h")
+
+    for line in lines:
+      if "@}" in line:
+        break
+      match = pattern.match(line)
+      if match:
+        yield (
+          match.group('macro'),
+          kind[match.group('kind')],
+        )
+    else:
+      raise Exception("Unable to parse svn_config.h")
+
+  def write_config_keys(self):
+    groupby = collections.defaultdict(list)
+    empty_sections = []
+    previous = (None, None)
+    for macro, kind in self._client_configuration_defines():
+      if kind is previous[1] is self.FileSectionOptionEnum.section:
+        empty_sections.append(previous[0])
+      groupby[kind].append(macro)
+      previous = (macro, kind)
+    else:
+      # If the last (macro, kind) is a section, then it's an empty section.
+      if kind is self.FileSectionOptionEnum.section:
+        empty_sections.append(macro)
+
+    lines = []
+    lines.append('/* Automatically generated by %s:write_config_keys() */'
+                 % (__file__,))
+    lines.append('')
+
+    for kind in ('file', 'section', 'option'):
+      macros = groupby[getattr(self.FileSectionOptionEnum, kind)]
+      lines.append('static const char *svn__valid_config_%ss[] = {' % (kind,))
+      for macro in macros:
+        lines.append('  %s,' % (macro,))
+      # Remove ',' for c89 compatibility
+      lines[-1] = lines[-1][0:-1]
+      lines.append('};')
+      lines.append('')
+
+    lines.append('static const char *svn__empty_config_sections[] = {');
+    for section in empty_sections:
+      lines.append('  %s,' % (section,))
+    # Remove ',' for c89 compatibility
+    lines[-1] = lines[-1][0:-1]
+    lines.append('};')
+    lines.append('')
+
+    self.write_file_if_changed('subversion/libsvn_subr/config_keys.inc',
+                               '\n'.join(lines))
+
 class DependencyGraph:
   """Record dependencies between build items.
 
@@ -502,6 +590,7 @@ class TargetLinked(Target):
     self.external_lib = options.get('external-lib')
     self.external_project = options.get('external-project')
     self.msvc_libs = options.get('msvc-libs', '').split()
+    self.msvc_delayload_targets = []
 
   def add_dependencies(self):
     if self.external_lib or self.external_project:
@@ -602,6 +691,7 @@ class TargetLib(TargetLinked):
     self.link_cmd = options.get('link-cmd', '$(LINK_LIB)')
 
     self.msvc_static = options.get('msvc-static') == 'yes' # is a static lib
+    self.msvc_delayload = options.get('msvc-delayload') == 'yes' # Delay dll load
     self.msvc_fake = options.get('msvc-fake') == 'yes' # has fake target
     self.msvc_export = options.get('msvc-export', '').split()
 
@@ -1212,6 +1302,9 @@ class IncludeDependencyInfo:
       if os.sep.join(['libsvn_subr', 'error.c']) in fname \
            and 'errorcode.inc' == include_param:
         continue # generated by GeneratorBase.write_errno_table
+      if os.sep.join(['libsvn_subr', 'cmdline.c']) in fname \
+           and 'config_keys.inc' == include_param:
+        continue # generated by GeneratorBase.write_config_keys
       elif direct_possibility_fname in domain_fnames:
         self._upd_dep_hash(hdrs, direct_possibility_fname, type_code)
       elif (len(domain_fnames) == 1

Modified: subversion/branches/ra-git/build/generator/gen_vcnet_vcproj.py
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/build/generator/gen_vcnet_vcproj.py?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/build/generator/gen_vcnet_vcproj.py (original)
+++ subversion/branches/ra-git/build/generator/gen_vcnet_vcproj.py Mon Nov 30 10:24:16 2015
@@ -55,18 +55,6 @@ class Generator(gen_win.WinGeneratorBase
 
       target.proj_name = target.name
 
-  def get_external_project(self, target, proj_ext):
-    "Link project files: prefer vcproj's, but if don't exist, try dsp's."
-    vcproj = gen_win.WinGeneratorBase.get_external_project(self, target,
-                                                           proj_ext)
-    if vcproj and not os.path.exists(vcproj):
-      dspproj = gen_win.WinGeneratorBase.get_external_project(self, target,
-                                                              'dsp')
-      if os.path.exists(dspproj):
-        return dspproj
-
-    return vcproj
-
   def write_project(self, target, fname, depends):
     "Write a Project (.vcproj/.vcxproj)"
 
@@ -209,14 +197,23 @@ class Generator(gen_win.WinGeneratorBase
 
       deplist = [ ]
       for i in range(len(depends)):
-        if depends[i].fname.startswith(self.projfilesdir):
-          path = depends[i].fname[len(self.projfilesdir) + 1:]
+        dp = depends[i]
+        if dp.fname.startswith(self.projfilesdir):
+          path = dp.fname[len(self.projfilesdir) + 1:]
         else:
           path = os.path.join(os.path.relpath('.', self.projfilesdir),
-                              depends[i].fname)
+                              dp.fname)
+
+        if isinstance(dp, gen_base.TargetLib) and dp.msvc_delayload \
+           and isinstance(target, gen_base.TargetLinked) \
+           and not self.disable_shared:
+          delayload = self.get_output_name(dp)
+        else:
+          delayload = None
         deplist.append(gen_win.ProjectItem(guid=guids[depends[i].name],
                                            index=i,
                                            path=path,
+                                           delayload=delayload
                                            ))
 
       fname = self.get_external_project(target, self.vcproj_extension[1:])
@@ -285,7 +282,4 @@ class Generator(gen_win.WinGeneratorBase
       'guids' : guidvals,
       }
 
-    if self.vs_version == '2002' or self.vs_version == '2003':
-      self.write_with_template('subversion_vcnet.sln', 'templates/vcnet_vc7_sln.ezt', data)
-    else:
-      self.write_with_template('subversion_vcnet.sln', 'templates/vcnet_sln.ezt', data)
+    self.write_with_template('subversion_vcnet.sln', 'templates/vcnet_sln.ezt', data)

Modified: subversion/branches/ra-git/build/generator/gen_win.py
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/build/generator/gen_win.py?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/build/generator/gen_win.py (original)
+++ subversion/branches/ra-git/build/generator/gen_win.py Mon Nov 30 10:24:16 2015
@@ -23,12 +23,7 @@
 #
 
 import os
-try:
-  # Python >=2.5
-  from hashlib import md5 as hashlib_md5
-except ImportError:
-  # Python <2.5
-  from md5 import md5 as hashlib_md5
+from hashlib import md5 as hashlib_md5
 import sys
 import fnmatch
 import re
@@ -90,9 +85,6 @@ class WinGeneratorBase(gen_win_dependenc
       printed.append(lib.name)
       print('Found %s %s' % (lib.name, lib.version))
 
-    if 'db' not in self._libraries:
-      print('BDB not found, BDB fs will not be built')
-
     #Make some files for the installer so that we don't need to
     #require sed or some other command to do it
     ### GJS: don't do this right now
@@ -279,6 +271,7 @@ class WinGeneratorBase(gen_win_dependenc
                                   'msvc-name' : dep.name + "_dll" },
                                 self)
     target.msvc_export = dep.msvc_export
+    target.msvc_delayload = dep.msvc_delayload
 
     # move the description from the static library target to the dll.
     target.desc = dep.desc
@@ -287,6 +280,7 @@ class WinGeneratorBase(gen_win_dependenc
     # The dependency should now be static.
     dep.msvc_export = None
     dep.msvc_static = True
+    dep.msvc_delayload = False
 
     # Remove the 'lib' prefix, so that the static library will be called
     # svn_foo.lib
@@ -553,9 +547,7 @@ class WinGeneratorBase(gen_win_dependenc
             and target.external_project):
       return None
 
-    if target.external_project[:5] == 'serf/' and 'serf' in self._libraries:
-      path = self.serf_path + target.external_project[4:]
-    elif target.external_project.find('/') != -1:
+    if target.external_project.find('/') != -1:
       path = target.external_project
     else:
       path = os.path.join(self.projfilesdir, target.external_project)
@@ -608,14 +600,13 @@ class WinGeneratorBase(gen_win_dependenc
       for dep, (is_proj, is_lib, is_static) in dep_dict.items():
         if is_proj:
           deps.append(dep)
-    elif mode == FILTER_LIBS:
-      for dep, (is_proj, is_lib, is_static) in dep_dict.items():
-        if is_static or (is_lib and not is_proj):
-          deps.append(dep)
-    elif mode == FILTER_EXTERNALLIBS:
+    elif mode == FILTER_LIBS or mode == FILTER_EXTERNALLIBS:
       for dep, (is_proj, is_lib, is_static) in dep_dict.items():
         if is_static or (is_lib and not is_proj):
-          deps.append(dep)
+          # Filter explicit msvc libraries of optional dependencies
+          if (dep.name in self._libraries
+              or dep.name not in self._optional_libraries):
+            deps.append(dep)
     else:
       raise NotImplementedError
 

Modified: subversion/branches/ra-git/build/generator/gen_win_dependencies.py
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/build/generator/gen_win_dependencies.py?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/build/generator/gen_win_dependencies.py (original)
+++ subversion/branches/ra-git/build/generator/gen_win_dependencies.py Mon Nov 30 10:24:16 2015
@@ -118,9 +118,10 @@ class GenDependenciesBase(gen_base.Gener
         'python',
         'ruby',
         'java_sdk',
+        'openssl',
+        'apr_memcache',
 
         # So optional, we don't even have any code to detect them on Windows
-        'apr_memcache',
         'magic',
   ]
 
@@ -136,7 +137,7 @@ class GenDependenciesBase(gen_base.Gener
     self.apr_util_path = 'apr-util'
     self.apr_iconv_path = 'apr-iconv'
     self.serf_path = None
-    self.bdb_path = 'db4-win32'
+    self.bdb_path = None
     self.httpd_path = None
     self.libintl_path = None
     self.zlib_path = 'zlib'
@@ -296,7 +297,7 @@ class GenDependenciesBase(gen_base.Gener
 
     # Required dependencies
     self._find_apr()
-    self._find_apr_util_and_expat()
+    self._find_apr_util_etc()
     self._find_zlib()
     self._find_sqlite(show_warnings)
 
@@ -424,7 +425,7 @@ class GenDependenciesBase(gen_base.Gener
                                               defines=defines,
                                               extra_bin=extra_bin)
 
-  def _find_apr_util_and_expat(self):
+  def _find_apr_util_etc(self):
     "Find the APR-util library and version"
 
     minimal_aprutil_version = (1, 3, 0)
@@ -526,6 +527,13 @@ class GenDependenciesBase(gen_base.Gener
                                                    defines=defines,
                                                    extra_bin=extra_bin)
 
+    # Perhaps apr-util can also provide memcached support
+    if version >= (1, 3, 0) :
+      self._libraries['apr_memcache'] = SVNCommonLibrary(
+                                          'apr_memcache', inc_path, lib_dir,
+                                          None, aprutil_version,
+                                          defines=['SVN_HAVE_MEMCACHE'])
+
     # And now find expat
     # If we have apr-util as a source location, it is in a subdir.
     # If we have an install package it is in the lib subdir
@@ -738,13 +746,17 @@ class GenDependenciesBase(gen_base.Gener
   def _find_bdb(self, show_warnings):
     "Find the Berkeley DB library and version"
 
-    # Default to not found
-    self.bdb_lib = None
-
-    inc_path = os.path.join(self.bdb_path, 'include')
+    # try default path to detect BDB support, unless different path is
+    # specified so to keep pre 1.10-behavior for BDB detection on Windows
+    bdb_path = 'db4-win32'
+
+    if self.bdb_path:
+      bdb_path = self.bdb_path
+    
+    inc_path = os.path.join(bdb_path, 'include')
     db_h_path = os.path.join(inc_path, 'db.h')
 
-    if not self.bdb_path or not os.path.isfile(db_h_path):
+    if not os.path.isfile(db_h_path):
       if show_warnings and self.bdb_path:
         print('WARNING: \'%s\' not found' % (db_h_path,))
         print("Use '--with-berkeley-db' to configure BDB location.");
@@ -774,7 +786,7 @@ class GenDependenciesBase(gen_base.Gener
        ):
       return
 
-    lib_dir = os.path.join(self.bdb_path, 'lib')
+    lib_dir = os.path.join(bdb_path, 'lib')
     lib_name = 'libdb%s.lib' % (versuffix,)
 
     if not os.path.exists(os.path.join(lib_dir, lib_name)):
@@ -785,7 +797,7 @@ class GenDependenciesBase(gen_base.Gener
     if not os.path.isfile(os.path.join(lib_dir, debug_lib_name)):
       debug_lib_name = None
 
-    dll_dir = os.path.join(self.bdb_path, 'bin')
+    dll_dir = os.path.join(bdb_path, 'bin')
 
     # Are there binaries we should copy for testing?
     dll_name = os.path.splitext(lib_name)[0] + '.dll'
@@ -811,9 +823,6 @@ class GenDependenciesBase(gen_base.Gener
                                               debug_dll_name=debug_dll_name,
                                               defines=defines)
 
-    # For compatibility with old code
-    self.bdb_lib = self._libraries['db'].lib_name
-
   def _find_openssl(self, show_warnings):
     "Find openssl"
 
@@ -918,11 +927,11 @@ class GenDependenciesBase(gen_base.Gener
     # Pass -W0 to stifle the "-e:1: Use RbConfig instead of obsolete
     # and deprecated Config." warning if we are using Ruby 1.9.
     fp = os.popen('ruby -rrbconfig -W0 -e ' + escape_shell_arg(
-                  "puts Config::CONFIG['ruby_version'];"
-                  "puts Config::CONFIG['LIBRUBY'];"
-                  "puts Config::CONFIG['libdir'];"
-                  "puts Config::CONFIG['rubyhdrdir'];"
-                  "puts Config::CONFIG['arch'];"), 'r')
+                  "puts RbConfig::CONFIG['ruby_version'];"
+                  "puts RbConfig::CONFIG['LIBRUBY'];"
+                  "puts RbConfig::CONFIG['libdir'];"
+                  "puts RbConfig::CONFIG['rubyhdrdir'];"
+                  "puts RbConfig::CONFIG['arch'];"), 'r')
     try:
       line = fp.readline()
       if line:
@@ -951,9 +960,11 @@ class GenDependenciesBase(gen_base.Gener
     if not lib_dir:
       return
 
-    # Visual C++ doesn't have a standard compliant snprintf yet
-    # (Will probably be added in VS2013 + 1)
-    defines = ['snprintf=_snprintf']
+    # Visual C++ prior to VS2015 doesn't have a standard compliant snprintf
+    if self.vs_version < '2015':
+      defines = ['snprintf=_snprintf']
+    else:
+      defines = []
 
     ver = ruby_version.split('.')
     ver = tuple(map(int, ver))

Modified: subversion/branches/ra-git/build/generator/templates/build-outputs.mk.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/build/generator/templates/build-outputs.mk.ezt?rev=1717223&r1=1717222&r2=1717223&view=diff
==============================================================================
--- subversion/branches/ra-git/build/generator/templates/build-outputs.mk.ezt (original)
+++ subversion/branches/ra-git/build/generator/templates/build-outputs.mk.ezt Mon Nov 30 10:24:16 2015
@@ -46,6 +46,7 @@ MANPAGES =[for manpages] [manpages][end]
 CLEAN_FILES =[for cfiles] [cfiles][end]
 EXTRACLEAN_FILES =[for sql] [sql.header][end] \
   $(abs_builddir)/subversion/libsvn_subr/errorcode.inc \
+  $(abs_builddir)/subversion/libsvn_subr/config_keys.inc \
   $(abs_srcdir)/compile_commands.json
 
 SWIG_INCLUDES = -I$(abs_builddir)/subversion \