[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [PATCH] Documenting Win32 in INSTALL

From: Bruce Atherton <bruce_at_callenish.com>
Date: 2002-02-04 21:57:03 CET

At 08:22 PM 2/4/2002 +0100, Branko =?UTF-8?B?xIxpYmVq?= wrote:
>No. I just deleted tghat from the downloads page. It makes no sense to provide binary packages for stuff that we can automagically build from source. Also, using pre-built binaries makes debugging harder -- the paths embedded in the debug info are wrong.

Good to know.

>Neither OpenSSL nor Zlib are required anywhere, and both can be used on all systems. The neon configure accepts --with-ssl[=DIR] and --with-zlib[=DIR] arguments. For Win32, those settings are embedded in build/win32/build_neon.bat.

Hmm.

> bruce@oilsands:~/subversion$ grep -ilr zlib *
> INSTALL
> build/win32/.svn/text-base/build_neon.bat.svn-base
> build/win32/build_neon.bat
> bruce@oilsands:~/subversion$ grep -ilr with-ssl *
> bruce@oilsands:~/subversion$

The INSTALL file only mentions zlib in the Win32 section. Neither is
even mentioned in the help message of configure. Looks like those
options could do with a bit of documenting.

For most of the entries in the Build Requirements, their necessity
is conditional on a feature being required by the user. SSL and zlib
don't seem different in this to me, so I'd like to include them in
the list unless people consider them to still be too experimental. I
assume that the optional DIR identifies the location of the library
which otherwise defaults to the usual suspect directories, rather
than to source or some config script. Is open-ssl the only
implementation of SSL that is supported? Is zlib the only compression
library? Are particular versions required?

>Now, just one small request:
>[snip]
>
>I think this note should move one paragraph up.

No problem. Here you go:

Log:
Identify the operating systems that installation instructions apply to
and add Windows-specific instructions.

* HACKING
  Removed the build instructions

* INSTALL
  Added the instructions that had formerly been in HACKING, added info
  on bootstrapping Windows, added diff and patch as build requirements,
  and flagged all instructions that were platform specific

Index: ./HACKING
===================================================================
--- ./HACKING
+++ ./HACKING Mon Feb 4 10:27:07 2002
@@ -26,8 +26,6 @@
    * Writing log entries
    * Patch submission guidelines
    * The Configuration/Build System Under Unix
- * Building from a working copy - Unix
- * Building from a working copy - Win32
    * How to create a distribution tarball
 
 
@@ -141,7 +139,7 @@
    * hashes and arrays: apr_hash.h, apr_tables.h
 
 
-
+
 Directory layout
 ================
 
@@ -783,180 +781,6 @@
 
    The voice of experience,
    -Karl
-
-
-
-Building from a working copy - Unix
-===================================
-
-Unlike a packaged distribution, the Subversion working tree does not
-contain a `configure' script nor any other of the generated files
-normally used in configuration and building. You have to regenerate
-them inside your working copy first, then configure, and then build.
-So, first run
-
- $ chmod +x autogen.sh ## needed until Subversion versions file mode bits
- $ ./autogen.sh
-
-which does everything necessary to prepare for the configuration step.
-You are expected to have the `autoheader' and `autoconf' tools
-installed. autogen.sh will check for the source code of external
-packages required to build Subversion (such as APR and Neon), and tell
-you how to get them if you don't have them.
-
-Next, do
-
- $ ./configure [...possibly with options...]
- $ make
- $ make check
- $ make install
-
-Skip the last step if don't want to blow away your previous Subversion
-installation. Also, you may wish to run "./configure" with some
-options; see the end of autogen.sh's output for some hints about this.
-
-Some things to watch out for:
-
-Note that if you have Berkeley DB installed and you try running
-configure with the
-
- --with-berkeley-db=/path/to/BerkeleyDB.3.3
-
-option, you have to make sure that your linker knows where the
-Berkeley DB libs are:
-
-kfogel says:
-
- After you install Berkeley, say in /usr/local/BerkeleyDB.3.3, you
- may need to modify /etc/ld.so.conf or /etc/rc.conf (those seem to
- be Linux and FreeBSD, respectively; Your Mileage May Vary), and run
- `ldconfig' or whatever your system wants.
-
- The problem is that configure tries to build, link, and run a small
- program against Berkeley DB. If the system loader doesn't yet know
- how to do that, configure will claim it can't find Berkeley DB.
-
-
-See also the section "The Configuration/Build System Under Unix" for
-more details about the build process.
-
-
-
-Building in a non-working copy directory - Unix
-===============================================
-
-It is possible to configure and build Subversion on Unix in a
-directory other than the working copy. For example
-
- $ svn co http://svn.collab.net/trunk/repos -d svn
- $ cd svn
- $ # get neon/db/apr as required
- $ chmod +x autogen.sh
- $ ./autogen.sh
- $ mkdir ../obj
- $ cd ../obj
- $ ../svn/configure [...with options as appropriate...]
- $ make
-
-puts the Subversion working copy in the directory svn and builds it in
-a separate, parallel directory obj.
-
-Why would you want to do this? Well there are a number of
-reasons...
-
- * You may prefer to avoid "polluting" the working copy with files
- generated during the build.
-
- * You may want to put the build directory and the working copy on
- different physical disks to improve performance.
-
- * You may want to separate source and object code and only backup
- the source.
-
- * You may want to remote mount the working copy on multiple
- machines, and build for different machines from the same working
- copy.
-
- * You may want to build multiple configurations from the same
- working copy.
-
-The last reason above is possibly the most useful. For instance you
-can have separate debug and optimised builds each using the same
-working copy. Or you may want a client only build and a client-server
-build. Using multiple build directories you can rebuild any or all
-configurations after an edit without the need to either clean and
-reconfigure, or identify and copy changes into a another working copy.
-
-
-
-Building from a working copy - Win32
-====================================
-
-There is some support for building Subversion on Win32 platforms. The
-project files included in the source tree are from Microsoft Visual
-C++ 6.x; earlier versions of the compiler are not supported at this
-time.
-
-To build the client components, you'll need a copy of neon 0.18.5. The
-sources are available at
-
- http://www.webdav.org/neon/neon-0.18.5.tar.gz
-
-Unpack the distribution into the root directory of the Subversion
-source tree (henceforth know as <SVN> -- that's where you found this
-file) and rename the directory neon-0.18.5 to neon.
-
-[NOTE: The neon library supports secure connections with OpenSSL and
- on-the-wire compression with zlib. If you want to use those features,
- you should edit the file <SVN>\build\win32\build_neon.bat to point
- to the appropriate directories.
- You can get a copy of OpenSSL, including instructions for building
- and packaging on Windows, at http://www.openssl.org/.
- Zlib is available from http://www.gzip.org/zlib/. I recommend just
- using the pre-build package,
-
- http://www.gzip.org/zlib/contrib/zlib-Win32.zip
-
- The neon build scripts are set up to use those libraries.]
-
-
-If you want to build the (local) server components, you'll also need a
-copy of Berkeley DB, version 4.0.14 or newer. The sources are available
-at http://www.sleepycat.com. There is a binary distibution on the
-Subversion downloads page, named
-
- db-4.0.14-win32.zip
-
-Unpack the distribution into the root directory of the Subversion source
-tree as <SVN>\db4-win32. It's a good idea to add <SVN>\db4-win32\bin to
-your PATH, so that Subversion can find the Berkeley DB DLLs.
-
-If you build Berkeley DB from the source, you will have to copy the
-file ...db-4.0.14\build_win32\db.h to <SVN>\db4-win32\include, and all
-the import libraries to <SVN>\db4-win32\lib. Again, the DLLs should be
-somewhere in your path.
-
-[NOTE: This binary package of Berkeley DB is provided for convenience
- only. Please don't address questions about Berkeley DB that aren't
- directly related to using Subversion to the project list.]
-
-
-The workspace `subversion.dsw' at the top of the source tree includes
-all the necessary projects. Right now, only static libraries are
-built. The "__build__" project (active by default) builds all the
-libraries and programs. The "__check__" project builds the test
-drivers.
-
-You will have to edit the file svn_private_config.hw to set the
-correct paths for diff and patch.
-
-[NOTE: There have been reports that Subversion will find diff.exe
- and patch.exe if they are in your path. This seems to be caused
- by some inconsistency in APR, so don't rely on this behaviour.]
-
-
-[NOTE: There have been rumours that Subversion on Win32 can be build
- using the latest cygwin. ymmv.]
 
 
 
Index: ./INSTALL
===================================================================
--- ./INSTALL
+++ ./.svn/tmp/INSTALL.63320.00001.tmp Mon Feb 4 12:43:26 2002
@@ -77,7 +77,7 @@
       the "--with-apr=" option of "./configure". It should be able to find
       the apr-config script in the standard location under that directory
       (e.g. ${prefix}/bin).
-
+
       Similar, you can specify the location of APRUTIL using the
       "--with-apr-util=" option to "./configure". It will look for the
       apu-config script relative to that directory.
@@ -89,7 +89,7 @@
               --with-apr-util=/usr/local/apache2 ...
 
 
- 2. autoconf 2.50 or newer
+ 2. autoconf 2.50 or newer (Unix only)
 
       This is required only if you plan to build from the latest source
       (See section II.B). Generally only developers would be doing this,
@@ -97,13 +97,13 @@
       want to do this as well.
 
 
- 3. libtool 1.4 or newer
+ 3. libtool 1.4 or newer (Unix only)
 
       This is required only if you plan to build from the latest source
       (See section II.B), which you probably want to do. See above.
 
 
- 4. bison or yacc
+ 4. bison or yacc (Unix only)
 
       This is required only if you plan to build from the latest source
       (See section II.B), which you probably want to do. See above.
@@ -114,6 +114,11 @@
       and "four hours ago". Note that most modern Unices come with one
       or the other of these programs, and only one is required.
 
+ The reason you don't need one of these programs on a Windows
+ platform is that the date parsing file has been pregenerated
+ and will automatically be copied into place by the Windows
+ Build.
+
 
       5. Neon library 0.18.5
 
@@ -165,6 +170,12 @@
       named Berkeley. You may need to use a different path, of
       course.
 
+ If you are on the Windows platform and want to build Subversion,
+ a precompiled version of the Berkeley DB library is available for
+ download at the Subversion web site:
+
+ http://subversion.tigris.org/servlets/ProjectDownloadList
+
 
       7. Apache Web Server 2.0.31 or newer
 
@@ -179,12 +190,43 @@
       8. Python 2.0
 
       If you want to run "make check" or build from the latest source
- as described in section II.B, install Python 2.0 or higher on
- your system. The majority of the test suite is written in
- Python, as is part of Subversion's build system. Get it from
+ under Unix as described in section II.B, install Python 2.0 or
+ higher on your system. The majority of the test suite is written
+ in Python, as is part of Subversion's build system. Get it from
       http://www.python.org/.
 
 
+ 9. Visual C++ 6.0 or newer (Windows Only)
+
+ To build Subversion under any of the MS Windows platforms, you
+ will need a copy of Microsoft Visual C++. The project files are
+ provided for you.
+
+
+ 10. A gnu-like diff and patch
+
+ Many of the features of the Subversion client require the ability
+ to call out to an external diff or patch program, one that
+ conforms to the behaviour of the GNU versions of these programs.
+
+ On some versions of Unix, this may involve getting a replacement
+ for your already existing diff and patch program. On FreeBSD
+ systems, for example, it requires getting gdiff and gpatch.
+
+ On a Windows platform, Subversion also requires a GNU diff.exe
+ and patch.exe. One implementation is provided by the Cygwin
+ project:
+
+ http://sources.redhat.com/cygwin
+
+ Note that the diff.exe and patch.exe must be installed into the
+ "C:\Program Files\cygnus\cygwin\bin" directory in order for
+ Subversion to find them at this time. If you have Cygwin
+ installed somewhere else, you should create this directory
+ path and copy those two files to it. You'll also need to copy
+ the cygwin1.dll file into the same directory.
+
+
 
 II. INSTALLATION OF SUBVERSION
 
@@ -258,7 +300,7 @@
       one-line build procedure.
 
 
- B. BUILDING THE LATEST SOURCE
+ B. BUILDING THE LATEST SOURCE UNDER UNIX
 
       You can discard the directory created by the tarball; you're
       about to build the latest, greatest Subversion client.
@@ -294,10 +336,14 @@
       installed before "make check" will work.
 
       Additionally, with shared library builds, the destination
- library directory must be listed in either /etc/ld.so.conf or
- $LD_LIBRARY_PATH (for linux systems), so that Subversion will be
- able to dynamically load repository access plugins. If you try
- to do a checkout and see an error like:
+ library directory must be identified in your operating system's
+ library search path. That is in either /etc/ld.so.conf or
+ $LD_LIBRARY_PATH for linux systems and in /etc/rc.conf for
+ FreeBSD, followed by a run of the 'ldconfig' program. Check your
+ system documentation for details. By identifying the destination
+ directory, Subversion will be able to dynamically load repository
+ access plugins. If you try to do a checkout and see an error
+ like:
 
       svn_error: #21068 : <Bad URL passed to RA layer>
          Unrecognized URL scheme: http://svn.collab.net/repos/svn/trunk
@@ -316,6 +362,159 @@
           $ make -jN local-all
           $ make check
           # make install
+
+
+ C. BUILDING UNDER UNIX IN DIFFERENT DIRECTORIES
+
+ It is possible to configure and build Subversion on Unix in a
+ directory other than the working copy. For example
+
+ $ svn co http://svn.collab.net/trunk/repos -d svn
+ $ cd svn
+ $ # get neon/db/apr as required
+ $ chmod +x autogen.sh
+ $ ./autogen.sh
+ $ mkdir ../obj
+ $ cd ../obj
+ $ ../svn/configure [...with options as appropriate...]
+ $ make
+
+ puts the Subversion working copy in the directory svn and builds
+ it in a separate, parallel directory obj.
+
+ Why would you want to do this? Well there are a number of
+ reasons...
+
+ * You may prefer to avoid "polluting" the working copy with
+ files generated during the build.
+
+ * You may want to put the build directory and the working
+ copy on different physical disks to improve performance.
+
+ * You may want to separate source and object code and only
+ backup the source.
+
+ * You may want to remote mount the working copy on multiple
+ machines, and build for different machines from the same
+ working copy.
+
+ * You may want to build multiple configurations from the
+ same working copy.
+
+ The last reason above is possibly the most useful. For instance
+ you can have separate debug and optimised builds each using the
+ same working copy. Or you may want a client only build and a
+ client-server build. Using multiple build directories you can
+ rebuild any or all configurations after an edit without the need
+ to either clean and reconfigure, or identify and copy changes
+ into a another working copy.
+
+
+ D. BOOTSTRAPPING FROM A ZIP FILE UNDER WINDOWS
+
+ Of all the ways of getting a Subversion client, this is the
+ easiest. Just download the 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.
+
+ Now open a DOS box (run either "cmd" or "command" from the
+ Start menu's "Run..." menu option), change to the directory you
+ installed the executables into, and run:
+
+ C:\test>svn co http://svn.collab.net/repos/svn/trunk -d svn
+
+ This will get the latest Subversion sources and put them into the
+ "svn" subdirectory.
+
+ If you want to use this client for more than just downloading
+ the latest sources, though, you will probably need to make sure
+ that Subversion has access to the diff.exe and patch.exe
+ programs, as described in section I.10.
+
+
+ E. BUILDING THE LATEST SOURCE UNDER WINDOWS
+
+ There is some support for building Subversion on Win32 platforms.
+ The project files included in the source tree are from Microsoft
+ Visual C++ 6.x; earlier versions of the compiler are not
+ supported at this time.
+
+ To build the client components, you'll need a copy of neon
+ 0.18.5. The sources are available at
+
+ http://www.webdav.org/neon/neon-0.18.5.tar.gz
+
+ Unpack the distribution into the root directory of the Subversion
+ source tree (henceforth know as <SVN> -- that's where you found
+ this file) and rename the directory neon-0.18.5 to neon.
+
+ [NOTE: The neon library supports secure connections with OpenSSL
+ and on-the-wire compression with zlib. If you want to use
+ those features, you should edit the file
+
+ <SVN>\build\win32\build_neon.bat
+
+ to point to the appropriate directories.
+
+ You can get a copy of OpenSSL, including instructions for
+ building and packaging on Windows, at
+
+ http://www.openssl.org/
+
+ Zlib is available from
+
+ http://www.gzip.org/zlib/
+
+ but I recommend just using the pre-build package,
+
+ http://www.gzip.org/zlib/contrib/zlib-Win32.zip
+
+ The neon build scripts are set up to use those libraries.]
+
+ If you want to build the (local) server components, you'll also
+ need a copy of Berkeley DB, version 4.0.14 or newer. The sources
+ are available at
+
+ http://www.sleepycat.com
+
+ For your convenience, there is also a binary distibution on the
+ Subversion downloads page
+
+ http://subversion.tigris.org/ProjectDownloadList
+
+ The file there is named
+
+ db-4.0.14-win32.zip
+
+ Unpack the distribution into the root directory of the Subversion
+ source tree as <SVN>\db4-win32. It's a good idea to add
+ <SVN>\db4-win32\bin to your PATH, so that Subversion can find the
+ Berkeley DB DLLs.
+
+ [NOTE: This binary package of Berkeley DB is provided for
+ convenience only. Please don't address questions about
+ Berkeley DB that aren't directly related to using Subversion
+ to the project list.]
+
+ If you build Berkeley DB from the source, you will have to copy
+ the file ..db-4.0.14\build_win32\db.h to <SVN>\db4-win32\include,
+ and all the import libraries to <SVN>\db4-win32\lib. Again, the
+ DLLs should be somewhere in your path.
+
+ The workspace `subversion.dsw' at the top of the source tree
+ includes all the necessary projects. Right now, only static
+ libraries are built. The "__build__" project (active by default)
+ builds all the libraries and programs. The "__check__" project
+ builds the test drivers.
+
+ You will have to edit the file svn_private_config.hw to set the
+ correct paths for diff and patch.
+
+ [NOTE: There have been rumours that Subversion on Win32 can be built
+ using the latest cygwin. ymmv.]
+
 
 
 III. BUILDING A SUBVERSION SERVER

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Received on Sat Oct 21 14:37:04 2006

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.