Log some svnserve errors (I'm sure we have a lot more we could log).
[svn.git] / tools / dist / construct-rolling-environment.sh
blob6cb40189b687384abc9e6fa618ff9706dc150a95
1 #!/bin/sh
2 set -e
4 AUTOCONF=autoconf-2.62
5 LIBTOOL=libtool-1.5.26
6 SWIG=swig-1.3.31
8 APR=apr-1.2.12
9 APR_UTIL=apr-util-1.2.12
10 NEON=neon-0.28.2
11 SERF=serf-0.1.2
12 ZLIB=zlib-1.2.3
14 HTTPD=httpd-2.2.8
15 HTTPD_OOPS=
16 APR_ICONV=apr-iconv-1.2.1
17 APR_ICONV_OOPS=
19 WIN32_APR_VIA_HTTPD=1
21 LOCATION=${LOCATION-US}
23 usage() {
24 echo >&2 "
25 Welcome, this is Subversion's construct-rolling-environment.sh.
27 Change to a directory in which you would like to create a Subversion
28 rolling environment, and run:
29 construct-rolling-environment.sh prefix
30 to download, build, and install autoconf, libtool, and swig into a prefix
31 subdirectory. Run:
32 construct-rolling-environment.sh deps
33 to download and extract the various bundled dependencies needed to build
34 tarballs and zipfiles into unix-dependencies and win32-dependencies
35 subdirectories.
37 Downloaded files and temporary build directories will be located within
38 a temp subdirectory.
40 The environment variable LOCATION provides a crude mirror selection tool
41 - examine the script source for details.
43 exit 1
46 BASEDIR=`pwd`
47 PREFIX=$BASEDIR/prefix
48 TEMPDIR=$BASEDIR/temp
50 case $LOCATION in
51 US)
52 APACHE_MIRROR=http://www.pangex.com/pub/apache
53 SOURCEFORGE_MIRROR=http://internap.dl.sourceforge.net/sourceforge
55 UK)
56 APACHE_MIRROR=http://apache.rmplc.co.uk
57 SOURCEFORGE_MIRROR=http://kent.dl.sourceforge.net/sourceforge
60 echo "Unknown LOCATION" >&2
61 exit 1
63 esac
65 # Need this uncommented if any of the specific versions of the ASF tarballs to
66 # be downloaded are no longer available on the general mirrors.
67 APACHE_MIRROR=http://archive.apache.org/dist
69 setup() {
70 mkdir -p $TEMPDIR
71 cd $TEMPDIR
74 create_prefix() {
75 wget -nc http://ftp.gnu.org/gnu/autoconf/$AUTOCONF.tar.bz2
76 wget -nc http://ftp.gnu.org/gnu/libtool/$LIBTOOL.tar.gz
77 wget -nc $SOURCEFORGE_MIRROR/swig/$SWIG.tar.gz
79 tar jxvf $AUTOCONF.tar.bz2
80 cd $AUTOCONF
81 ./configure --prefix=$PREFIX
82 make
83 make install
84 cd ..
86 tar zxvf $LIBTOOL.tar.gz
87 cd $LIBTOOL
88 ./configure --prefix=$PREFIX
89 make
90 make install
91 cd ..
93 tar zxvf $SWIG.tar.gz
94 cd $SWIG
95 ./configure --prefix=$PREFIX
96 make
97 make install
98 cd ..
101 create_deps() {
102 wget -nc $APACHE_MIRROR/apr/$APR.tar.bz2
103 wget -nc $APACHE_MIRROR/apr/$APR_UTIL.tar.bz2
104 if [ -n "$WIN32_APR_VIA_HTTPD" ]; then
105 wget -nc $APACHE_MIRROR/httpd/$HTTPD-win32-src$HTTPD_OOPS.zip
106 else
107 wget -nc $APACHE_MIRROR/apr/$APR-win32-src.zip
108 wget -nc $APACHE_MIRROR/apr/$APR_UTIL-win32-src.zip
109 wget -nc $APACHE_MIRROR/apr/$APR_ICONV-win32-src$APR_ICONV_OOPS.zip
111 wget -nc http://webdav.org/neon/$NEON.tar.gz
112 wget -nc http://serf.googlecode.com/files/$SERF.tar.bz2
113 wget -nc http://www.zlib.net/$ZLIB.tar.bz2
115 mkdir $BASEDIR/unix-dependencies
116 cd $BASEDIR/unix-dependencies
117 tar zxvf $TEMPDIR/$NEON.tar.gz
118 tar jxvf $TEMPDIR/$ZLIB.tar.bz2
119 tar jxvf $TEMPDIR/$SERF.tar.bz2
120 mv $NEON neon
121 mv $ZLIB zlib
122 mv $SERF serf
123 tar jxvf $TEMPDIR/$APR.tar.bz2
124 tar jxvf $TEMPDIR/$APR_UTIL.tar.bz2
125 mv $APR apr
126 mv $APR_UTIL apr-util
127 cd $TEMPDIR
129 mkdir $BASEDIR/win32-dependencies
130 cd $BASEDIR/win32-dependencies
131 tar zxvf $TEMPDIR/$NEON.tar.gz
132 tar jxvf $TEMPDIR/$ZLIB.tar.bz2
133 tar jxvf $TEMPDIR/$SERF.tar.bz2
134 mv $NEON neon
135 mv $ZLIB zlib
136 mv $SERF serf
137 if [ -n "$WIN32_APR_VIA_HTTPD" ]; then
138 unzip $TEMPDIR/$HTTPD-win32-src$HTTPD_OOPS.zip
139 for i in apr apr-util apr-iconv; do
140 mv $HTTPD/srclib/$i .
141 done
142 rm -rf $HTTPD
143 else
144 unzip $TEMPDIR/$APR-win32-src.zip
145 unzip $TEMPDIR/$APR_UTIL-win32-src.zip
146 unzip $TEMPDIR/$APR_ICONV-win32-src$APR_ICONV_OOPS.zip
147 mv $APR apr
148 mv $APR_UTIL apr-util
149 mv $APR_ICONV apr-iconv
151 cd $TEMPDIR
154 if [ "$#" -ne 1 ]; then
155 usage
157 case $1 in
158 prefix) setup; create_prefix ;;
159 deps) setup; create_deps ;;
160 *) usage ;;
161 esac