Last Update: Mon Sep 22 16:31:59 EDT 2003

Prepared for doc RPM build in later releases.
Added svnadmin.static conversion from redhat-8+ package for safety.

Shamim Islam
BA BS

---------------------------------------------------------------

There is a new Makefile in place with additional support files.

These files make things much simpler and smoother for maintaining and
building a Subversion RPM.

You will find a slew of configuration elements that allow you to preset
any and all necessary items for your particular machine prior to build.

Such as the name of the available packages (Neon, swig, etc).

After that, you should be able to just make on a stock Mandrake system.

If you had previously created .rpmrc or .rpmmacros as per MandrakeSoft
instructions, they will be picked up for the most part as per standard.

However, you are no longer required to create these files as safe defaults
will be used if you supply nothing.

Also, it is possible to build multiple revisions of subversion simultaneously
without collision as long as the revision number (including release) is 
different or if it's a blessed build.

Blessed builds do not indicate their release number as the release is
defined. Unblessed development builds always append the tree revision number
and as such, collisions will be rare.

Compiling from the trunk also creates the next minor revision greater, and 
will prepend a "pre" in front of the revision number, a la Linux Kernels.

Development builds on --version parameters report complete machine details.

Blessed builds do not. Non-subversion installations report error and possible
fix for biuld now, instead of just complaining.

Removed python patch file as it was never referred to anywhere.

This is a tentative update - further refinement will follow

Shamim Islam
BA BS

Report any problems in this directory to me on the developers list
or the users mailing list. I check these frequently.

My email on both these lists is files@poetryunlimited.com.
-----------------------------------------------------------------------
Note: When I built the new RPMs - after some time having not built any -
the svn binary that was produced was linked to libsvn_auth. That library
is deprecated, and I can only imagine that because I had an old version
sitting in /usr/lib it was picked up by some kind of errant build script.
So, you may need to uninstall your subversion RPMs before making new ones.

Note 2: You may need to change the Requires: line for swig to swig-runtime
depending on the origin of your swig rpm.

New Update: Look towards the bottom of the readme for some helpful notes
from Mark Proctor <mproctor@cisco.com> experience with building subversion
on mandrake 9.1.

-----------------
Mandrake SVN RPM:
-----------------

These are the files required to build a mandrake 9.1 RPM for subversion.
Mandrake 9.1 (thankfully) has most of the software required to build
and install subversion. The only thing it does NOT have is a recent enough
version of NEON. You will need to build and install your own recent 
version, or get the source RPM from cooker or what not and update it
yourself.

To build the RPMs directly from this directory, you should be able to
just `make'. You must have followed the setup directions in the mandrake
rpm howto though, and, of course, you must have the appropriate
development packages. (also available at the above url) You might want to
read the top of the makefile for some other notes.

Now notes on the RPMs this spec file produces:

subversion-base:
----------------
This is the base set of common libraries required by subversion
components. All further packages depend on this one. This package
requires the apache portability runtime libraries and the apr-util
libraries.

subversion-client-common:
-------------------------
Subversion is written so that any number of RA modules can be built to
access repositories. This package includes the basic `svn' executable and
man page, and other client parts required to run it, but it does not
include any of the RA modules. This is a prerequisite for any of the
other subversion-client-something RPMs.

subversion-client-dav:
----------------------
This RPM includes the RA module for WebDAV repositories. In other words,
if you are going to access remote repositories, you want to install this
one. This package depends on subversion-client-common. This package also
depends on the NEON libraries.

subversion-client-local:
------------------------
This RPM includes the RA module for local repositories. This is so you
can access repositories stored in DB files on the local mounts. This
package requires the common client package, subversion-repos, and DB4.0.

subversion-client-svn:
----------------------
This RPM includes the RA module for SVN network protocol hosted 
repositories. This is a reasonably new way of accessing networked
repositories without apache.

subversion-devel:
-----------------
This RPM includes the static libraries, header files, and linker scripts
for subversion.

subversion-repos:
-----------------
This RPM includes the libraries required to access local repositories.
This is a required package for client-local, and the server RPM.

subversion-server:
------------------
This package will install the mod_dav_svn.so apache DSO, and a
configuration file called 46_mod_dav_svn.conf in /etc/httpd/conf.d. The
later file being the one you should modify to include your subversion
directory roots. Setting up the repositories and adding any users or
groups for the process is left to the user.

subversion-tools:
-----------------
This packaged contains the python bindings and all the tools bundled
with subversion - including cvs2svn.


So, many combinations of packages are available depending on the type of
installation you want to do. The apr, apr-util, and subversion-base
packages are always required, but then you could just simply install
neon, client-common, and client-dav to get a subversion setup for network
repositories. Add client-local, and repos, for local repositories, or 
add repos and server to setup a subversion server.

--------
Contact:
--------

Please let me know if you have problems or additions to the spec file. My
email address is: ballbach@rten.net. Thanks.

--------------------------
Mark's Installation Notes:
--------------------------

I couldn't get SVN to pick up db4 so I downloaded the latest src and placed in top level dir as db. i did the same for neon.

-- Note from Ballbach:
!! NOTE -- db4.0 comes with mandrake 9.1, you should be able to compile subversion
against it with the --with-berkeley-db=/usr switch to ./configure. Neon you will
need to build and install a newer version of. You can either install it from a
tarball, or get the source RPM and build a new one. I've done the later a few
times and it was pretty simple.

Also, try to build the RPMs before installing straight from CVS.
-- end of note

download
http://www.sleepycat.com/update/snapshot/db-4.0.14.zip
http://www.webdav.org/neon/neon-0.23.7.tar.gz
unpack each to top level and rename to db and neon respectively
---------------------------------------------------------------------------
Install following RPMS, devel packages are important
libpython2.2-2.2.2-6mdk
python-base-2.2.2-6mdk
python-2.2.2-6mdk (not just python-base)

apache2-modules-2.0.45-5mdk
apache2-devel-2.0.45-5mdk
apache-conf-2.0.45-4mdk
apache2-2.0.45-5mdk
apache2-manual-2.0.45-5mdk
apache2-common-2.0.45-5mdk
apache2-mod_dav-2.0.45-5mdk

zlib
zlib-devel

libopenssl0.9.7-devel-0.9.7b-2mdk
libopenssl0.9.7-0.9.7b-2mdk
openssl-0.9.7b-2mdk

---------------------------------------------------------------------------
Even though i had libldap2-2.0.27-4mdk I get the following error:

which stopped the following error
cd subversion/libsvn_subr && /bin/sh /home/mproctor/subversion/libtool --silent --mode=link gcc  -pthread  -DNEON_ZLIB -DNEON_SSL  -L/usr/lib  -rpath /usr/local/lib -o libsvn_subr-1.la auth.lo cmdline.lo config.lo config_auth.lo config_file.lo config_win.lo error.lo getdate.lo hash.lo io.lo md5.lo opt.lo path.lo pool.lo quoprint.lo sorts.lo stream.lo subst.lo svn_base64.lo svn_string.lo target.lo time.lo utf.lo validate.lo xml.lo /usr/lib/libaprutil-0.la -lldap -llber -lgdbm -ldb-4.0 -lexpat /usr/lib/libapr-0.la -lm -lcrypt -lnsl  -ldl
/usr/bin/ld: cannot find -lldap
collect2: ld returned 1 exit status
make: *** [subversion/libsvn_subr/libsvn_subr-1.la] Error 1

update usr/bin/apu-config and change the following line
LIBS="-lldap -llber -lgdbm -ldb-4.0 -lexpat"
to
LIBS="-lgdbm -ldb-4.0 -lexpat"
---------------------------------------------------------------------------
execute ./autogen.sh

---------------------------------------------------------------------------
./configure --with-apxs=/usr/sbin/apxs2 --with-apr=/usr/bin/apr-config --with-apr-util=/usr/bin/apu-config --enable-ssl --enable-deflate

---------------------------------------------------------------------------
Subversion correctly adds web_dav_svn.so to your httpd2.conf but make sure that mod_dav.so is loaded first otherwise you get the error:
/etc/httpd/2.0/modules/mod_dav_svn.so into server: /etc/httpd/2.0/modules/mod_dav_svn.so: undefined symbol: dav_xml_get_cdata

Make sure this line is placed before mod_dav_svn is loaded
LoadModule dav_module modules/mod_dav.so
---------------------------------------------------------------------------





