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 \