Return-Path: X-Original-To: apmail-subversion-commits-archive@minotaur.apache.org Delivered-To: apmail-subversion-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C7CF11891D for ; Mon, 30 Nov 2015 10:25:04 +0000 (UTC) Received: (qmail 55007 invoked by uid 500); 30 Nov 2015 10:25:04 -0000 Delivered-To: apmail-subversion-commits-archive@subversion.apache.org Received: (qmail 54982 invoked by uid 500); 30 Nov 2015 10:25:04 -0000 Mailing-List: contact commits-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@subversion.apache.org Delivered-To: mailing list commits@subversion.apache.org Received: (qmail 54969 invoked by uid 99); 30 Nov 2015 10:25:04 -0000 Received: from Unknown (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 30 Nov 2015 10:25:04 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 0B878180970 for ; Mon, 30 Nov 2015 10:25:04 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.497 X-Spam-Level: ** X-Spam-Status: No, score=2.497 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_EXEURI=0.5, KAM_INFOUSMEBIZ=0.75, KAM_LAZY_DOMAIN_SECURITY=1, RP_MATCHES_RCVD=-0.554, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-us-east.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id 817t_Man35JQ for ; Mon, 30 Nov 2015 10:24:30 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-us-east.apache.org (ASF Mail Server at mx1-us-east.apache.org) with ESMTP id 397D142B82 for ; Mon, 30 Nov 2015 10:24:30 +0000 (UTC) Received: from svn01-us-west.apache.org (svn.apache.org [10.41.0.6]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id B09FAE0A46 for ; Mon, 30 Nov 2015 10:24:29 +0000 (UTC) Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id 565313A1027 for ; Mon, 30 Nov 2015 10:24:29 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: 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... Date: Mon, 30 Nov 2015 10:24:23 -0000 To: commits@subversion.apache.org From: rhuijben@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20151130102429.565313A1027@svn01-us-west.apache.org> 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 + ### 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 + Copyright (c) 2010-2013, Pieter Noordhuis + + 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'(?PSVN_CONFIG_(?PCATEGORY|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 \