Building Subversion 1.5.6 on HP-UX 11.23/IA ------------------------------------------- These (long) build instructions will make a subversion server that is embedded in Apache 2.2.11 as a DAV module. Everything ends up cleanly under /opt/subversion_server_1.5.6, on which you can symlink /opt/svn (I use this to facilitate "almost online" upgrades). Almost *every* library is rebuilt from scratch and dropped under /opt/subversion_server_1.5.6/lib to prevent any other library upgrade from messing it up. The only libraries that it depends upon are OpenSSL (for which the stock one that comes with HP-UX is used) and, of course, the C library. :) Why am I doing this instead of using the one from the Porting Center? Because I wanted the DAV module, which the center doesn't have, and further more I wanted to prevent a library hell as much as possible. The drawback of this, of course, is that any security issue with Apache and others must be dealt with by rebuilding everything. REQUIRED ======== download subversion-1-5-6 http://subversion.tigris.org/downloads/subversion-1.5.6.tar.bz2 download zlib 1.2.3 http://www.zlib.net/zlib-1.2.3.tar.gz download apache 2.2.11 http://apache.sunsite.ualberta.ca/httpd/httpd-2.2.11.tar.bz2 download neon 0.28.4 http://www.webdav.org/neon/neon-0.28.4.tar.gz download libiconv 1.13 http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.tar.gz download gettext 0.17 http://ftp.gnu.org/pub/gnu/gettext/gettext-0.17.tar.gz download apr 1.3.3 http://gulus.usherbrooke.ca/pub/appl/apache/apr/apr-1.3.3.tar.bz2 download apr-util 1.3.4 http://gulus.usherbrooke.ca/pub/appl/apache/apr/apr-util-1.3.4.tar.bz2 install python from the Internet Express (used to test the server) COMPILE LIBICONV ================ On systems other than GNU/Linux, the iconv program will be internationalized only if GNU gettext has been built and installed before GNU libiconv. This means that the first time GNU libiconv is installed, we have a circular dependency between the GNU libiconv and GNU gettext packages, which can be resolved by building and installing first libiconv, then gettext, then libiconv again. # gunzip libiconv-1.13.tar.gz # tar xvf libiconv-1.13.tar # cd libiconv-1.13 # unset LDOPTS # ./configure --prefix=/opt/subversion_server_1.5.6 # make # make install COMPILE GETTEXT =============== # gunzip gettext-0.17.tar.gz # tar xvf gettext-0.17.tar.gz.tar # cd gettext-0.17 # unset LDOPTS # PATH="/opt/subversion_server_1.5.6/bin:/usr/bin:/usr/local/bin" ./configure --prefix=/opt/subversion_server_1.5.6 # make # make install On met le PATH limité afin d'éviter que configure trouve un gettext ailleurs que dans /opt/subversion_client RE-COMPILE LIBICONV =================== # cd .. # rm -rf libiconv-1.13 # tar xvf libiconv-1.13.tar # cd libiconv-1.13 # PATH="/opt/subversion_server_1.5.6/bin:/usr/bin:/usr/local/bin" ./configure --prefix=/opt/subversion_server_1.5.6 # make # make install COMPILE ZLIB ============ # gunzip zlib-1.2.3.tar.gz # tar xvf zlib-1.2.3.tar # cd zlib-1.2.3 # ./configure -s --prefix=/opt/subversion_server_1.5.6 # make # make install COMPILE APR =========== # bunzip2 apr-1.3.3.tar.bz2 # tar xvf apr-1.3.3.tar # cd apr-1.3.3 # ./configure --prefix=/opt/subversion_server_1.5.6 # make # make install COMPILE APR-UTIL ================ # bunzip2 apr-util-1.3.4.tar.bz2 # tar xvf apr-util-1.3.4.tar # cd apr-util-1.3.4 # ./configure --prefix=/opt/subversion_server_1.5.6 --with-apr=/opt/subversion_server_1.5.6 \ --with-iconv=/opt/subversion_server_1.5.6 # make # make install COMPILE APACHE ============== # bunzip2 httpd-2.2.11.tar.bz2 # tar xvf httpd-2.2.11.tar # cd httpd-2.2.11 # export LDOPTS="+s -L/opt/openssl/lib/hpux32 -L/opt/subversion_server_1.5.6" # ./configure --prefix=/opt/subversion_server_1.5.6 --enable-dav --enable-so --enable-maintainer-mode \ --enable-ssl --enable-deflate --with-z=/opt/subversion_server_1.5.6 \ --with-apr=/opt/subversion_server_1.5.6 --with-apr-util=/opt/subversion_server_1.5.6 # make # make install COMPILE NEON ============ # gunzip neon-0.28.4.tar.gz # tar xvf neon-0.28.4.tar # cd neon-0.28.4 # export LDOPTS="+s -L /opt/openssl/lib/hpux32" # ./configure --prefix=/opt/subversion_server_1.5.6 --with-libs=/opt/subversion_server_1.5.6 \ --with-ssl=openssl # make # make install COMPILE SUBVERSION ================== # bunzip2 subversion-1.5.6.tar.bz2 # tar xvf subversion-1.5.6.tar # cd subversion-1.5.6 # export LDFLAGS="-L/opt/openssl/lib/hpux32" # export PATH=$PATH:/opt/iexpress/python/bin # ./configure --prefix=/opt/subversion_server_1.5.6 \ --without-berkeley-db \ --with-apxs=/opt/subversion_server_1.5.6/bin/apxs \ --with-apr=/opt/subversion_server_1.5.6 \ --with-apr-util=/opt/subversion_server_1.5.6 \ --with-neon=/opt/subversion_server_1.5.6 \ --with-zlib=/opt/subversion_server_1.5.6 # make # make install # make check # lance le test suite CONFIGURATION ============= Remove the Apache manuals, etc: # rm /opt/subversion_server_1.5.6/htdocs/* # rm -rf /opt/subversion_server_1.5.6/manual # rm -rf /opt/subversion_server_1.5.6/share/doc # rm -rf /opt/subversion_server_1.5.6/icons Put some dummy index.html in htdocs, to your taste. Create an "svn" user, and "svn" group. Apache will run using this user. Ensure apache can write logs under this username: # chown svn:svn /opt/subversion_server_1.5.6/logs Create a repository directory and assign it to the svn user, e.g. /var/opt/subversion: # mkdir /var/opt/subversion # chown svn:svn /var/opt/subversion # chmod 700 /var/opt/subversion Edit httpd.conf: # vi /opt/subversion_server_1.5.6/conf/httpd.conf a. Changer the group and user User svn Group svn b. Load the required modules LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so c. Add your repository DAV svn SVNParentPath /var/opt/subversion AuthType Basic AuthName "Subversion repository" AuthUserFile /opt/subversion_server_1.5.6/conf/svn-auth-file Require valid-user SetOutputFilter DEFLATE That oughta do it. Good luck!!!