Using the svntest scripts -*- Text -*- ========================= 1) Read the INSTALL (http://svn.collab.net/repos/svn/trunk/INSTALL) file, especially the sections about bootstrapping from a tarball and getting the latest APR-0.9, APR-UTIL-0.9 and httpd-2.0 sources. Check out and compile the latest Subversion. You could easily run svntest.sh against APR/APR-UTIL 1.0 and HTTPD 2.1 branches, just checkout corresponding repositories, and edit svntest-config.sh. 2) Copy the svntest scripts from trunk/tools/test-scripts/svntest to somewhere outside the repository. Then read and modify svntest-config.sh to reflect your local installation. Take special care about program locations, program installation locations and e-mail addresses. The svn-breakage list has to be subscribed by the same address that is put to FROM variable. Otherwise report emails will disappear to the black hole of the bits. Also notice that this test script will wipe out following paths during rebuilding: $INST_DIR/, ie. with present configuration the paths are: /home/brane/svn/inst/{apr-0.9,apr-util-0.9,httpd-2.0,svn} 3) Create one or more scripts that configure Subversion in different ways (e.g., configure.shared, configure.static). Here's the script I'm using for static builds on Solaris 7: config.apr-0.9: #!/bin/sh "../apr-0.9/configure" \ "--prefix=/home/brane/svn/inst/apr-0.9" \ "--with-pic" \ "$@" config.apr-util-0.9: #!/bin/sh "../apr-util-0.9/configure" \ "--prefix=/home/brane/svn/inst/apr-util-0.9" \ "--with-apr=/home/brane/svn/inst/apr-0.9" \ "--with-pic" \ "--with-dbm=db4" \ "--with-berkeley-db" \ "--with-expat=/usr" \ "$@" config.httpd-2.0: #!/bin/sh CURR_WD="`pwd`" cd ../httpd-2.0 "./buildconf" \ "--with-apr=/home/brane/svn/apr-0.9" \ "--with-apr-util=/home/brane/svn/apr-util-0.9" cd "$CURR_WD" "../httpd-2.0/configure" \ "--prefix=/home/brane/svn/inst/httpd-2.0" \ "--with-apr=/home/brane/svn/inst/apr-0.9/bin/apr-config" \ "--with-apr-util=/home/brane/svn/inst/apr-util-0.9/bin/apu-config" \ "--enable-dav" \ "$@" config.solaris.static (for subversion): #!/bin/sh env CC='gcc' \ "../svn/configure" \ "--prefix=/home/brane/svn/inst" \ "--with-berkeley-db=/home/brane/svn/db4" \ "--with-apr=/home/brane/svn/inst/apr-0.9/bin/apr-config" \ "--with-apr-util=/home/brane/svn/inst/apr-util-0.9/bin/apu-config" \ "--with-apxs=/home/brane/svn/inst/httpd-2.0/bin/apxs" \ "--disable-shared" \ "$@" At the moment, svntest-rebuild.sh will only recognize shared and static build types, but you can easily change that. If you do, also change svntest.sh so that it tests all the different configurations. 4) Tailor your $HTTPD_NAME.conf (ie. httpd-2.0.conf) to suit your needs, (easiest way to get a template for http-2.0.conf is install Apache httpd at once, and after that copy installed httpd.conf, and edit it). Things to change are probably: i) Listen 127.0.0.1:42024 ii) LoadModule dav_svn_module modules/mod_dav_svn.so iii) User brane Group brane v) ServerName localhost:42024 vi) Add mod_dav_svn block: Include conf/mod_dav_svn.conf vii) mod_dav_svn_shared.conf for shared builds: DAV svn SVNParentPath /home/brane/svn/obj-sh/subversion/tests/clients/cmdline/repositories DAV svn SVNPath /home/brane/svn/obj-sh/subversion/tests/clients/cmdline/local_tmp/repos Don't ever touch config files under $INST_DIR/$HTTPD_NAME/conf, they will be overwritten by the script. 5) Make sure your environment (e.g., LD_LIBRARY_PATH) is set correctly to find Berkeley DB, etc. 6) If you like run test against ramdisk (subversion test data will be held on ramdisk) then you should have something like that in your /etc/fstab (in Linux system): tmpfs /home/brane/svn/obj-sh/subversion/tests tmpfs defaults,user,noauto,exec,size=600m tmpfs /home/brane/svn/obj-st/subversion/tests tmpfs defaults,user,noauto,exec,size=600m The minimum required size for ramdisk is appr. 570 MB at the moment. You should also set RAMDISK=yes, and check mount_ramdisk and umount_ramdisk in the svntest-config.sh file if your system is not GNU/Linux. See http://subversion.tigris.org/project_faq.html#ramdisk-tests for further information. 7) Run svntest.sh to get the latest versions of ARP, APR-UTIL, HTTPPD and Subversion, build and test all the configurations. 8) If you like force rebuilding of some component, you could do: echo "0" > $PROJ_REPO.rb, dependencies are: apr-util depends on apr, and httpd depends on apr and apr-util. Any dependent project will be also rebuild. When you run this script first time, everything will be rebuilt automatically. ====================================================== Need more detailed instructions? Use the Source, Luke!