Hi Bert/Julian
sorry for the late reply, but I didn't get back to this earlier
unfortunately.
So I've spend a bit more time and tried to incorporate the feedback from
Bert into the patch as well as adding/updating a few more bits and
pieces which I ran into myself when setting-up a Windows build
environment here.
Please understand that this is a suggested patch for the current
trunk-version (aka svn 1.10-dev). I would not suggest this patch for
1.7/1.8 (and given that 1.9 is already in the stabilizing period for
release I'm not sure whether all of these changes (especially the ones
suggesting changes to supported VS platforms or the added placeholder
for further documentation) would be appropriate for 1.9).
Therefore will likely send separate patches with just some
corrections/fixes for 1.7/1.8/1.9 (unless u state this won't be
required/useful).
Hope this is of some use to you.
[[[
Several updates/corrections to the INSTALL file:
- updated compatibility statements for Visual Studio (dropping 2002/2003
support, adding support for 2008+ versions)
- case-correction for February
- replaced dead-link to Platform SDK for VC6 with link to still
available instructions
- replaced redirection URL zlib.org with direct URL zlib.net
- update VS build instructions to be suitable for VS >= 2010
- libmagic marked as optional dependency
- made URLs consistently use a trailing /
- corrected minimum Serf version (1.2.1 -> 1.3.4)
- corrected section numbering and referencing in several cases
- clarify that Python is required for Windows as well
- specify Python >= 3.0 being unsupported atm
- dropping explicit mentioning of Subversion version 1.8 (since the
documentation always applies to the current version)
- added missing prerequisite an install step instruction for SQLite 3.7.12
- added optional-markers to steps which are not required in all cases
- clarified when serf is required
- replaced DRIVE-variable with BUILD_ROOT-variable to make things a bit
easier to understand
- added missing required quotes around SDK-paths which contain spaces
- added sections about building APR, ZLib, and Serf to give some leads
how to build these from source (serf: only TODO-markers)
* INSTALL
documentation updated
]]]
Regards,
Stefan
Bert Huijben wrote:
I'm guessing VC6 still works as that was used in many httpd builds until
recently, but 2002 and 2003 are as far as I know unmaintained for a few
releases and most likely broken.
A patch to INSTALL would be welcome, but I just tried to improve the patch
a bit further. It might be easier to rework the entire document
Can we apply Stefan's patch first, to create that positive feeling
that something's been improved and the patch has been welcome, and
*then* continue the process of further improvement?
- Julian
as things as
'install the sdk' are outdated in the common scenarios. 1.9+ also allows
references to dependencies in an install location instead of only in source
layouts.
Bert
[...]
Index: INSTALL
===================================================================
--- INSTALL (revision 1691627)
+++ INSTALL (working copy)
@@ -146,7 +146,7 @@
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
@@ -295,7 +295,7 @@
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,7 +313,7 @@
newer. The autogen.sh script knows about that.
- 5. Serf library 1.2.1 or newer (OPTIONAL)
+ 5. 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
@@ -356,7 +356,7 @@
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.
@@ -449,10 +449,11 @@
10. Python 2.5 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.5 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 +465,8 @@
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.
@@ -754,15 +755,17 @@
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.
+ of Visual Studio (Visual Studio.NET 2005-2015, Visual C++ Express
+ 2005-2010, Visual Studio Express 2012-2013 and Visual Studio Community
+ 2013-2015) 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.
+ 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
+
https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/e1147034-9b0b-4494-a5bc-6dfebb6b7eb1/download-and-install-microsoft-platform-sdk-febuary-2003-last-version-with-vc6-support?forum=windowssdk
* Python 2.5 or higher, downloaded from http://www.python.org/ which is
used to generate the project files.
+ Note that Python 3.x is not supported.
* Perl 5.8 or higher from http://www.activestate.com/
* 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
@@ -773,8 +776,9 @@
and the Apache 2 source zip. 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/.
+ * SQLite 3.7.12 or higher from http://www.sqlite.org/download.html
* 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
+ dependencies zip file or can be obtained from http://www.zlib.net/
* 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
@@ -799,7 +803,7 @@
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.
+ For more information see Section I.C.7.
* [Optional] Openssl 0.9.7f or higher can be obtained from
http://www.openssl.org/source/openssl-0.9.7f.tar.gz
* [Optional] A modified version of GNU libintl, called
@@ -820,7 +824,7 @@
The 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
@@ -838,7 +842,7 @@
* 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.
+ use the 'Visual Studio 20xx 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:
@@ -861,14 +865,15 @@
* Install Perl (it should add itself to the path)
* 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
+ * [Optional] 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
+ * [Optional] If you checked out Subversion from the repository and want
+ to build Subversion with http/https access support then install the
+ 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.
@@ -883,8 +888,8 @@
SVN\src-trunk\db4-win32\lib. Again, the DLLs should be somewhere in
your 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:
@@ -896,14 +901,20 @@
SVN\apr-util, and SVN\apr-iconv respectively.
* 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.
+ * [Optional] If you want secure connection (https) client support, or if
+ you are building with enabled support for serf extract openssl into
+ SVN\openssl-x.x.x
+ * [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.
* [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.
+ * Download the SQLite amalgemation from
+ http://www.sqlite.org/download.html
+ and extract it into SVN\sqlite-amalgemation.
+ See I.C.12 for alternatives to using the amalgemation package.
E.4 Building the Binaries
@@ -919,14 +930,14 @@
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%
@@ -959,6 +970,41 @@
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.
+
+ Serf
+
+ ### Section about serf might be required/useful to add.
+ ### scons is required too and 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:
@@ -970,7 +1016,7 @@
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 msdev/msdbuild commands.
* 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.
@@ -983,8 +1029,9 @@
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.
+ * If you are using Visual Studio later than VC6 change -t dsw into
+ -t vcproj and add the --vsnet-version=20xx 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
@@ -1015,12 +1062,13 @@
C:>msdev subversion_msvc.dsw /USEENV /MAKE "__ALL_TESTS__ - Win32
Release"
C:>cd ..
- Or, with Visual C++.NET 2002, 2003, 2005:
+ Or, with Visual C++.NET 2005 or C++ Express 2005:
C:>devenv subversion_vcnet.sln /build "Release" /project "__ALL_TESTS__"
C:>cd ..
- Or, with Visual C++ Express 2005:
+ Or, with Visual C++.NET 2008+, C++ Express 2008+, Studio Express 2012+ or
+ Studio Community 2013+:
C:>msbuild subversion_vcnet.sln /t:__ALL_TESTS__ /p:Configuration=Release
C:>cd ..
@@ -1066,7 +1114,7 @@
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
@@ -1171,7 +1219,7 @@
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