1251881Speter#!/bin/sh 2251881Speter# 3251881Speter# 4251881Speter# Licensed to the Apache Software Foundation (ASF) under one 5251881Speter# or more contributor license agreements. See the NOTICE file 6251881Speter# distributed with this work for additional information 7251881Speter# regarding copyright ownership. The ASF licenses this file 8251881Speter# to you under the Apache License, Version 2.0 (the 9251881Speter# "License"); you may not use this file except in compliance 10251881Speter# with the License. You may obtain a copy of the License at 11251881Speter# 12251881Speter# http://www.apache.org/licenses/LICENSE-2.0 13251881Speter# 14251881Speter# Unless required by applicable law or agreed to in writing, 15251881Speter# software distributed under the License is distributed on an 16251881Speter# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17251881Speter# KIND, either express or implied. See the License for the 18251881Speter# specific language governing permissions and limitations 19251881Speter# under the License. 20251881Speter# 21251881Speter# 22251881Speter# 23251881Speter# get-deps.sh -- download the dependencies useful for building Subversion 24251881Speter# 25251881Speter 26251881Speter# If changing this file please take care to try to make your changes as 27251881Speter# portable as possible. That means at a minimum only use POSIX supported 28251881Speter# features and functions. However, it may be desirable to use an even 29251881Speter# more narrow set of features than POSIX, e.g. Solaris /bin/sh only has 30251881Speter# a subset of the POSIX shell features. If in doubt, limit yourself to 31251881Speter# features already used in the file. Reviewing the history of changes 32251881Speter# may be useful as well. 33251881Speter 34362181SdimAPR_VERSION=${APR_VERSION:-"1.5.0"} 35251881SpeterAPU_VERSION=${APU_VERSION:-"1.5.1"} 36362181SdimPY3C_VERSION=${PY3C_VERSION:='1.1'} 37286506SpeterSERF_VERSION=${SERF_VERSION:-"1.3.8"} 38251881SpeterZLIB_VERSION=${ZLIB_VERSION:-"1.2.8"} 39362181SdimSQLITE_VERSION=${SQLITE_VERSION:-"3.8.11.1"} 40362181Sdim# Used to construct the SQLite download URL. 41362181SdimSQLITE_VERSION_REL_YEAR=2015 42269833SpeterHTTPD_VERSION=${HTTPD_VERSION:-"2.4.10"} 43251881SpeterAPR_ICONV_VERSION=${APR_ICONV_VERSION:-"1.2.1"} 44251881Speter 45251881SpeterAPR=apr-${APR_VERSION} 46251881SpeterAPR_UTIL=apr-util-${APU_VERSION} 47362181SdimPY3C=py3c-${PY3C_VERSION} 48251881SpeterSERF=serf-${SERF_VERSION} 49251881SpeterZLIB=zlib-${ZLIB_VERSION} 50251881SpeterSQLITE_VERSION_LIST=`echo $SQLITE_VERSION | sed -e 's/\./ /g'` 51251881SpeterSQLITE=sqlite-amalgamation-`printf %d%02d%02d%02d $SQLITE_VERSION_LIST` 52251881Speter 53251881SpeterHTTPD=httpd-${HTTPD_VERSION} 54251881SpeterAPR_ICONV=apr-iconv-${APR_ICONV_VERSION} 55251881Speter 56251881SpeterBASEDIR=`pwd` 57251881SpeterTEMPDIR=$BASEDIR/temp 58251881Speter 59251881SpeterHTTP_FETCH= 60251881Speter[ -z "$HTTP_FETCH" ] && type wget >/dev/null 2>&1 && HTTP_FETCH="wget -q -nc" 61269833Speter[ -z "$HTTP_FETCH" ] && type curl >/dev/null 2>&1 && HTTP_FETCH="curl -sOL" 62251881Speter[ -z "$HTTP_FETCH" ] && type fetch >/dev/null 2>&1 && HTTP_FETCH="fetch -q" 63251881Speter 64251881Speter# Need this uncommented if any of the specific versions of the ASF tarballs to 65251881Speter# be downloaded are no longer available on the general mirrors. 66362181SdimAPACHE_MIRROR=https://archive.apache.org/dist 67251881Speter 68251881Speter# helpers 69251881Speterusage() { 70251881Speter echo "Usage: $0" 71362181Sdim echo "Usage: $0 [ apr | py3c | serf | zlib | sqlite ] ..." 72251881Speter exit $1 73251881Speter} 74251881Speter 75251881Speter# getters 76251881Speterget_apr() { 77251881Speter cd $TEMPDIR 78251881Speter test -d $BASEDIR/apr || $HTTP_FETCH $APACHE_MIRROR/apr/$APR.tar.bz2 79251881Speter test -d $BASEDIR/apr-util || $HTTP_FETCH $APACHE_MIRROR/apr/$APR_UTIL.tar.bz2 80251881Speter cd $BASEDIR 81251881Speter 82251881Speter test -d $BASEDIR/apr || bzip2 -dc $TEMPDIR/$APR.tar.bz2 | tar -xf - 83251881Speter test -d $BASEDIR/apr-util || bzip2 -dc $TEMPDIR/$APR_UTIL.tar.bz2 | tar -xf - 84251881Speter 85251881Speter test -d $BASEDIR/apr || mv $APR apr 86251881Speter test -d $BASEDIR/apr-util || mv $APR_UTIL apr-util 87251881Speter} 88251881Speter 89362181Sdimget_py3c() { 90362181Sdim test -d $BASEDIR/py3c && return 91362181Sdim py3cdist=v${PY3C_VERSION}.tar.gz 92362181Sdim 93362181Sdim cd $TEMPDIR 94362181Sdim $HTTP_FETCH https://github.com/encukou/py3c/archive/${py3cdist} 95362181Sdim cd $BASEDIR 96362181Sdim 97362181Sdim gzip -dc $TEMPDIR/${py3cdist} | tar -xf - 98362181Sdim 99362181Sdim mv $PY3C py3c 100362181Sdim} 101362181Sdim 102251881Speterget_serf() { 103251881Speter test -d $BASEDIR/serf && return 104251881Speter 105251881Speter cd $TEMPDIR 106309511Speter $HTTP_FETCH https://archive.apache.org/dist/serf/$SERF.tar.bz2 107251881Speter cd $BASEDIR 108251881Speter 109251881Speter bzip2 -dc $TEMPDIR/$SERF.tar.bz2 | tar -xf - 110251881Speter 111251881Speter mv $SERF serf 112251881Speter} 113251881Speter 114251881Speterget_zlib() { 115251881Speter test -d $BASEDIR/zlib && return 116251881Speter 117251881Speter cd $TEMPDIR 118362181Sdim $HTTP_FETCH https://sourceforge.net/projects/libpng/files/zlib/$ZLIB_VERSION/$ZLIB.tar.gz 119251881Speter cd $BASEDIR 120251881Speter 121251881Speter gzip -dc $TEMPDIR/$ZLIB.tar.gz | tar -xf - 122251881Speter 123251881Speter mv $ZLIB zlib 124251881Speter} 125251881Speter 126251881Speterget_sqlite() { 127251881Speter test -d $BASEDIR/sqlite-amalgamation && return 128251881Speter 129251881Speter cd $TEMPDIR 130362181Sdim $HTTP_FETCH https://www.sqlite.org/$SQLITE_VERSION_REL_YEAR/$SQLITE.zip 131251881Speter cd $BASEDIR 132251881Speter 133251881Speter unzip -q $TEMPDIR/$SQLITE.zip 134251881Speter 135251881Speter mv $SQLITE sqlite-amalgamation 136251881Speter 137251881Speter} 138251881Speter 139251881Speter# main() 140251881Speterget_deps() { 141251881Speter mkdir -p $TEMPDIR 142251881Speter 143362181Sdim for i in zlib serf sqlite-amalgamation py3c apr apr-util; do 144251881Speter if [ -d $i ]; then 145251881Speter echo "Local directory '$i' already exists; the downloaded copy won't be used" >&2 146251881Speter fi 147251881Speter done 148251881Speter 149251881Speter if [ $# -gt 0 ]; then 150251881Speter for target in "$@"; do 151251881Speter if [ "$target" != "deps" ]; then 152251881Speter get_$target || usage 153251881Speter else 154251881Speter usage 155251881Speter fi 156251881Speter done 157251881Speter else 158251881Speter get_apr 159362181Sdim get_py3c 160251881Speter get_serf 161251881Speter get_zlib 162251881Speter get_sqlite 163251881Speter 164251881Speter echo 165251881Speter echo "If you require mod_dav_svn, the recommended version of httpd is:" 166251881Speter echo " $APACHE_MIRROR/httpd/$HTTPD.tar.bz2" 167251881Speter 168251881Speter echo 169251881Speter echo "If you require apr-iconv, its recommended version is:" 170251881Speter echo " $APACHE_MIRROR/apr/$APR_ICONV.tar.bz2" 171251881Speter fi 172251881Speter 173251881Speter rm -rf $TEMPDIR 174251881Speter} 175251881Speter 176251881Speterget_deps "$@" 177