summaryrefslogtreecommitdiff
path: root/tools/dev/unix-build/Makefile.svn
diff options
context:
space:
mode:
Diffstat (limited to 'tools/dev/unix-build/Makefile.svn')
-rw-r--r--tools/dev/unix-build/Makefile.svn467
1 files changed, 335 insertions, 132 deletions
diff --git a/tools/dev/unix-build/Makefile.svn b/tools/dev/unix-build/Makefile.svn
index 0bdddd5..d6032e3 100644
--- a/tools/dev/unix-build/Makefile.svn
+++ b/tools/dev/unix-build/Makefile.svn
@@ -29,16 +29,19 @@
# | the bot's health after making changes to this file. |
# |______________________________________________________________|
-ENABLE_PERL_BINDINGS ?= yes
+PERL ?= yes
+ENABLE_PERL_BINDINGS = $(PERL)
THREADING ?= yes
ifeq ($(THREADING),yes)
-ENABLE_JAVA_BINDINGS ?= yes
+JAVA ?= yes
else
-ENABLE_JAVA_BINDINGS ?= no
+JAVA ?= no
endif
+ENABLE_JAVA_BINDINGS = $(JAVA)
USE_APR_ICONV ?= no # set to yes to use APR iconv instead of GNU iconv
PARALLEL ?= 1
CLEANUP ?= 1
+EXCLUSIVE_WC_LOCKS ?= 1
USE_HTTPV1 ?= no
USE_AUTHZ_SHORT_CIRCUIT ?= no
RAMDISK ?= /ramdisk
@@ -65,21 +68,22 @@ OBJDIR = $(PWD)/objdir
BDB_MAJOR_VER = 4.7
BDB_VER = $(BDB_MAJOR_VER).25
-APR_VER = 1.4.6
+APR_VER = 1.5.1
APR_ICONV_VER = 1.2.1
GNU_ICONV_VER = 1.14
-APR_UTIL_VER = 1.4.1
-HTTPD_VER = 2.2.22
-NEON_VER = 0.29.6
-SERF_VER = 1.2.0
+APR_UTIL_VER = 1.5.3
+HTTPD_VER = 2.2.29
+NEON_VER = 0.30.0
+SERF_VER = 1.3.8
SERF_OLD_VER = 0.3.1
CYRUS_SASL_VER = 2.1.25
-SQLITE_VER = 3071600
-LIBMAGIC_VER = 5.11
+SQLITE_VER = 3080500
+LIBMAGIC_VER = 5.19
RUBY_VER = 1.8.7-p358
BZ2_VER = 1.0.6
-PYTHON_VER = 2.7.3
+PYTHON_VER = 2.7.8
JUNIT_VER = 4.10
+GETTEXT_VER = 0.18.3.1
BDB_DIST = db-$(BDB_VER).tar.gz
APR_ICONV_DIST = apr-iconv-$(APR_ICONV_VER).tar.gz
@@ -87,12 +91,40 @@ GNU_ICONV_DIST = libiconv-$(GNU_ICONV_VER).tar.gz
NEON_DIST = neon-$(NEON_VER).tar.gz
SQLITE_DIST = sqlite-autoconf-$(SQLITE_VER).tar.gz
CYRUS_SASL_DIST = cyrus-sasl-$(CYRUS_SASL_VER).tar.gz
-HTTPD_DIST = httpd-$(HTTPD_VER).tar.bz2
+HTTPD_DIST = httpd-$(HTTPD_VER).tar.gz
LIBMAGIC_DIST = file-$(LIBMAGIC_VER).tar.gz
RUBY_DIST = ruby-$(RUBY_VER).tar.gz
BZ2_DIST = bzip2-$(BZ2_VER).tar.gz
PYTHON_DIST = Python-$(PYTHON_VER).tgz
JUNIT_DIST = junit-${JUNIT_VER}.jar
+GETTEXT_DIST = gettext-$(GETTEXT_VER).tar.gz
+
+SHA256_${BDB_DIST} = f14fd96dd38915a1d63dcb94a63fbb8092334ceba6b5060760427096f631263e
+SHA256_${APR_ICONV_DIST} = 19381959d50c4a5f3b9c84d594a5f9ffb3809786919b3058281f4c87e1f4b245
+SHA256_${GNU_ICONV_DIST} = 72b24ded17d687193c3366d0ebe7cde1e6b18f0df8c55438ac95be39e8a30613
+SHA256_${HTTPD_DIST} = cec2878884b758b0d159a1385b2667a2ae0ca21b0bc7bcc8a9a41b5cfa5452ff
+SHA256_${NEON_DIST} = 2962cfcb5d30f3272e3d2fa0e473434419770a3801afe3d46e5d1650787990c2
+SHA256_${CYRUS_SASL_DIST} = 418c16e6240a4f9b637cbe3d62937b9675627bad27c622191d47de8686fe24fe
+SHA256_${SQLITE_DIST} = 98c33abe4106e508e73fda648b2657ac9e969fe24695f543dcde68cc71f3091b
+SHA256_${LIBMAGIC_DIST} = 9484b3bbda1acc7b13a4f71031a85ce10c77bd0ffec7226741a219ef587e3a7c
+SHA256_${RUBY_DIST} = 9e0856d58830e08f1e38233947d859898ae09d4780cb1a502108e41308de33cb
+SHA256_${BZ2_DIST} = a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd
+SHA256_${PYTHON_DIST} = 74d70b914da4487aa1d97222b29e9554d042f825f26cb2b93abd20fdda56b557
+SHA256_${JUNIT_DIST} = 36a747ca1e0b86f6ea88055b8723bb87030d627766da6288bf077afdeeb0f75a
+SHA256_${GETTEXT_DIST} = 0d8f9a33531b77776b3dc473e7940019ca19bfca5b4c06db6e96065eeb07245d
+
+define do_check_sha256
+if [ -x /bin/sha256 ]; then \
+ (cd $(DISTDIR) && \
+ echo "SHA256 (${1}) = ${SHA256_${1}}" | /bin/sha256 -C /dev/stdin "${1}"); \
+elif [ -x /usr/bin/sha256sum ]; then \
+ (cd $(DISTDIR) && \
+ echo "${SHA256_${1}} ${1}" | /usr/bin/sha256sum --quiet --check); \
+else \
+ echo "Error: No tool found to verify checksum"; \
+ false; \
+fi
+endef
DISTFILES = $(DISTDIR)/$(NEON_DIST) \
$(DISTDIR)/$(SERF_DIST) \
@@ -105,28 +137,29 @@ DISTFILES = $(DISTDIR)/$(NEON_DIST) \
$(DISTDIR)/$(RUBY_DIST) \
$(DISTDIR)/$(BZ2_DIST) \
$(DISTDIR)/$(PYTHON_DIST) \
- $(DISTDIR)/$(JUNIT_DIST)
+ $(DISTDIR)/$(JUNIT_DIST) \
+ $(DISTDIR)/$(GETTEXT_DIST)
FETCH_CMD = wget -c
SUBVERSION_REPOS_URL = https://svn.apache.org/repos/asf/subversion
-BDB_URL = http://ftp2.de.freebsd.org/pub/FreeBSD/distfiles/bdb/$(BDB_DIST)
-APR_URL = http://svn.apache.org/repos/asf/apr/apr
-APR_ICONV_URL = http://www.apache.org/dist/apr/$(APR_ICONV_DIST)
-GNU_ICONV_URL = http://ftp.gnu.org/pub/gnu/libiconv/$(GNU_ICONV_DIST)
-APR_UTIL_URL = http://svn.apache.org/repos/asf/apr/apr-util
-HTTPD_URL = http://archive.apache.org/dist/httpd/$(HTTPD_DIST)
+BDB_URL = http://download.oracle.com/berkeley-db/$(BDB_DIST)
+APR_URL = https://svn.apache.org/repos/asf/apr/apr
+APR_ICONV_URL = https://www.apache.org/dist/apr/$(APR_ICONV_DIST)
+GNU_ICONV_URL = https://ftp.gnu.org/pub/gnu/libiconv/$(GNU_ICONV_DIST)
+APR_UTIL_URL = https://svn.apache.org/repos/asf/apr/apr-util
+HTTPD_URL = https://archive.apache.org/dist/httpd/$(HTTPD_DIST)
NEON_URL = http://webdav.org/neon/$(NEON_DIST)
-#SERF_URL = http://serf.googlecode.com/files/$(SERF_DIST)
-SERF_URL = http://serf.googlecode.com/svn/tags/$(SERF_VER)
-SERF_OLD_URL = http://serf.googlecode.com/svn/tags/$(SERF_OLD_VER)
-SQLITE_URL = http://www.sqlite.org/2013/$(SQLITE_DIST)
+SERF_URL = https://svn.apache.org/repos/asf/serf/tags/$(SERF_VER)
+SERF_OLD_URL = https://svn.apache.org/repos/asf/serf/tags/$(SERF_OLD_VER)
+SQLITE_URL = https://www.sqlite.org/2014/$(SQLITE_DIST)
CYRUS_SASL_URL = ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/$(CYRUS_SASL_DIST)
LIBMAGIC_URL = ftp://ftp.astron.com/pub/file/$(LIBMAGIC_DIST)
RUBY_URL = http://ftp.ruby-lang.org/pub/ruby/1.8/$(RUBY_DIST)
BZ2_URL = http://bzip.org/$(BZ2_VER)/$(BZ2_DIST)
-PYTHON_URL = http://python.org/ftp/python/$(PYTHON_VER)/$(PYTHON_DIST)
-JUNIT_URL = http://cloud.github.com/downloads/KentBeck/junit/$(JUNIT_DIST)
+PYTHON_URL = https://python.org/ftp/python/$(PYTHON_VER)/$(PYTHON_DIST)
+JUNIT_URL = https://downloads.sourceforge.net/project/junit/junit/$(JUNIT_VER)/$(JUNIT_DIST)
+GETTEXT_URL = https://ftp.gnu.org/pub/gnu/gettext/$(GETTEXT_DIST)
BDB_SRCDIR = $(SRCDIR)/db-$(BDB_VER)
@@ -144,6 +177,7 @@ LIBMAGIC_SRCDIR = $(SRCDIR)/file-$(LIBMAGIC_VER)
RUBY_SRCDIR = $(SRCDIR)/ruby-$(RUBY_VER)
BZ2_SRCDIR = $(SRCDIR)/bzip2-$(BZ2_VER)
PYTHON_SRCDIR = $(SRCDIR)/Python-$(PYTHON_VER)
+GETTEXT_SRCDIR = $(SRCDIR)/gettext-$(GETTEXT_VER)
SVN_SRCDIR = $(SVN_WC)
BDB_OBJDIR = $(OBJDIR)/db-$(BDB_VER)
@@ -161,6 +195,7 @@ LIBMAGIC_OBJDIR = $(OBJDIR)/file-$(LIBMAGIC_VER)
RUBY_OBJDIR = $(OBJDIR)/ruby-$(RUBY_VER)
BZ2_OBJDIR = $(OBJDIR)/bzip2-$(BZ2_VER)
PYTHON_OBJDIR = $(OBJDIR)/python-$(PYTHON_VER)
+GETTEXT_OBJDIR = $(OBJDIR)/gettext-$(GETTEXT_VER)
SVN_OBJDIR = $(OBJDIR)/$(SVN_REL_WC)
# Tweak this for out-of-tree builds. Note that running individual
@@ -173,30 +208,30 @@ PROFILE_CFLAGS=-pg
endif
# We need this to make sure some targets below pick up the right libraries
-LD_LIBRARY_PATH=$(PREFIX)/apr/lib:$(PREFIX)/iconv/lib:$(PREFIX)/bdb/lib:$(PREFIX)/neon/lib:$(PREFIX)/serf/lib:$(PREFIX)/sqlite/lib:$(PREFIX)/cyrus-sasl/lib:$(PREFIX)/iconv/lib:$(PREFIX)/libmagic/lib:$(PREFIX)/ruby/lib:$(PREFIX)/python/lib:$(PREFIX)/svn-$(WC)/lib
+LD_LIBRARY_PATH=$(PREFIX)/apr/lib:$(PREFIX)/gettext/lib:$(PREFIX)/iconv/lib:$(PREFIX)/bdb/lib:$(PREFIX)/neon/lib:$(PREFIX)/serf/lib:$(PREFIX)/sqlite/lib:$(PREFIX)/cyrus-sasl/lib:$(PREFIX)/iconv/lib:$(PREFIX)/libmagic/lib:$(PREFIX)/ruby/lib:$(PREFIX)/python/lib:$(PREFIX)/svn-$(WC)/lib
#######################################################################
# Main targets.
#######################################################################
-.PHONY: all reset clean nuke
+.PHONY: all reset clean nuke fetch
all: dirs-create bdb-install apr-install iconv-install apr-util-install \
httpd-install neon-install serf-install serf-old-install \
sqlite-install cyrus-sasl-install libmagic-install \
- ruby-install bz2-install python-install \
+ ruby-install bz2-install python-install gettext-install \
svn-install svn-bindings-install
# Use these to start a build from the beginning.
reset: dirs-reset bdb-reset apr-reset iconv-reset apr-util-reset \
httpd-reset neon-reset serf-reset serf-old-reset sqlite-reset \
cyrus-sasl-reset libmagic-reset ruby-reset python-reset \
- bz2-reset svn-reset
+ bz2-reset gettext-reset svn-reset
# Use to save disk space.
clean: bdb-clean apr-clean iconv-clean apr-util-clean httpd-clean \
neon-clean serf-clean serf-old-clean sqlite-clean cyrus-sasl-clean \
- libmagic-clean ruby-clean bz2-clean python-clean svn-clean
+ libmagic-clean ruby-clean bz2-clean python-clean gettext-clean svn-clean
# Nukes everything (including installed binaries!)
# Use this to start ALL OVER AGAIN! Use with caution!
@@ -222,6 +257,8 @@ nuke:
;; \
esac
+fetch: $(DISTFILES)
+
#######################################################################
# directories
#######################################################################
@@ -248,7 +285,7 @@ bdb-reset:
rm -f $(BDB_OBJDIR)/$(f);)
bdb-clean:
- -(cd $(BDB_SRCDIR)/build_unix/ && make clean)
+ -(cd $(BDB_SRCDIR)/build_unix/ && env MAKEFLAGS= make clean)
# fetch distfile for bdb
$(DISTDIR)/$(BDB_DIST):
@@ -256,6 +293,7 @@ $(DISTDIR)/$(BDB_DIST):
# retrieve bdb
$(BDB_OBJDIR)/.retrieved: $(DISTDIR)/$(BDB_DIST)
+ $(call do_check_sha256,$(BDB_DIST))
[ -d $(BDB_OBJDIR) ] || mkdir -p $(BDB_OBJDIR)
tar -C $(SRCDIR) -zxf $(DISTDIR)/$(BDB_DIST)
touch $@
@@ -271,12 +309,12 @@ $(BDB_OBJDIR)/.configured: $(BDB_OBJDIR)/.retrieved
# compile bdb
$(BDB_OBJDIR)/.compiled: $(BDB_OBJDIR)/.configured
- (cd $(BDB_SRCDIR)/build_unix && make)
+ (cd $(BDB_SRCDIR)/build_unix && env MAKEFLAGS= make)
touch $@
# install bdb
$(BDB_OBJDIR)/.installed: $(BDB_OBJDIR)/.compiled
- (cd $(BDB_SRCDIR)/build_unix && make install)
+ (cd $(BDB_SRCDIR)/build_unix && env MAKEFLAGS= make install)
touch $@
#######################################################################
@@ -292,7 +330,7 @@ apr-reset:
rm -f $(APR_OBJDIR)/$(f);)
apr-clean:
- -(cd $(APR_OBJDIR) && make clean)
+ -(cd $(APR_OBJDIR) && env MAKEFLAGS= make clean)
# retrieve apr if not present yet
$(APR_OBJDIR)/.retrieved:
@@ -310,10 +348,14 @@ endif
ifdef POOL_DEBUG
POOL_DEBUG_FLAG=--enable-pool-debug=all
+else
+# Map apr_palloc()/apr_pool_{clear,destroy}() to malloc()/free().
+# This also puts poison bytes into freed memory to help detect use after free.
+POOL_DEBUG_FLAG=--enable-pool-debug=yes
endif
# configure apr
-$(APR_OBJDIR)/.configured: $(APR_OBJDIR)/.retrieved
+$(APR_OBJDIR)/.configured: $(APR_OBJDIR)/.retrieved $(BDB_OBJDIR)/.installed
cd $(APR_SRCDIR) && ./buildconf
cd $(APR_OBJDIR) \
&& env CFLAGS="-O0 -g $(PROFILE_CFLAGS)" GREP="`which grep`" \
@@ -326,12 +368,12 @@ $(APR_OBJDIR)/.configured: $(APR_OBJDIR)/.retrieved
# compile apr
$(APR_OBJDIR)/.compiled: $(APR_OBJDIR)/.configured
- (cd $(APR_OBJDIR) && make)
+ (cd $(APR_OBJDIR) && env MAKEFLAGS= make)
touch $@
# install apr
$(APR_OBJDIR)/.installed: $(APR_OBJDIR)/.compiled
- (cd $(APR_OBJDIR) && make install)
+ (cd $(APR_OBJDIR) && env MAKEFLAGS= make install)
touch $@
#######################################################################
@@ -347,7 +389,7 @@ apr-iconv-reset:
rm -f $(APR_ICONV_OBJDIR)/$(f);)
apr-iconv-clean:
- -(cd $(APR_ICONV_OBJDIR) && make clean)
+ -(cd $(APR_ICONV_OBJDIR) && env MAKEFLAGS= make clean)
# fetch distfile for apr-iconv
$(DISTDIR)/$(APR_ICONV_DIST):
@@ -355,14 +397,17 @@ $(DISTDIR)/$(APR_ICONV_DIST):
# retrieve apr-iconv
$(APR_ICONV_OBJDIR)/.retrieved: $(DISTDIR)/$(APR_ICONV_DIST)
+ $(call do_check_sha256,$(APR_ICONV_DIST))
[ -d $(APR_ICONV_OBJDIR) ] || mkdir -p $(APR_ICONV_OBJDIR)
tar -C $(SRCDIR) -zxf $(DISTDIR)/$(APR_ICONV_DIST)
touch $@
# configure apr-iconv
-$(APR_ICONV_OBJDIR)/.configured: $(APR_ICONV_OBJDIR)/.retrieved
+$(APR_ICONV_OBJDIR)/.configured: $(APR_ICONV_OBJDIR)/.retrieved \
+ $(APR_OBJDIR)/.installed
cd $(APR_ICONV_OBJDIR) \
- && env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`" \
+ && env CFLAGS="-g $(PROFILE_CFLAGS) -DAPR_POOL_DEBUG" \
+ GREP="`which grep`" \
$(APR_ICONV_SRCDIR)/configure \
--prefix=$(PREFIX)/apr \
--with-apr=$(PREFIX)/apr
@@ -371,12 +416,12 @@ $(APR_ICONV_OBJDIR)/.configured: $(APR_ICONV_OBJDIR)/.retrieved
# compile apr-iconv
$(APR_ICONV_OBJDIR)/.compiled: $(APR_ICONV_OBJDIR)/.configured
(cd $(APR_ICONV_OBJDIR) \
- && make CPPFLAGS="-D_OSD_POSIX" CFLAGS="-g -O0 $(PROFILE_CFLAGS)")
+ && env MAKEFLAGS= make CPPFLAGS="-D_OSD_POSIX" CFLAGS="-g -O0 $(PROFILE_CFLAGS)")
touch $@
# install apr-iconv
$(APR_ICONV_OBJDIR)/.installed: $(APR_ICONV_OBJDIR)/.compiled
- (cd $(APR_ICONV_OBJDIR) && make install)
+ (cd $(APR_ICONV_OBJDIR) && env MAKEFLAGS= make install)
touch $@
#######################################################################
@@ -392,7 +437,7 @@ gnu-iconv-reset:
rm -f $(GNU_ICONV_OBJDIR)/$(f);)
gnu-iconv-clean:
- -(cd $(GNU_ICONV_OBJDIR) && make clean)
+ -(cd $(GNU_ICONV_OBJDIR) && env MAKEFLAGS= make clean)
rm -f $(GNU_ICONV_OBJDIR)/lib_encodings.def.diff
rm -f $(GNU_ICONV_OBJDIR)/lib_aliases.gperf.diff
@@ -433,6 +478,7 @@ $(GNU_ICONV_OBJDIR)/lib_aliases.gperf.diff:
$(GNU_ICONV_OBJDIR)/.retrieved: $(DISTDIR)/$(GNU_ICONV_DIST) \
$(GNU_ICONV_OBJDIR)/lib_encodings.def.diff \
$(GNU_ICONV_OBJDIR)/lib_aliases.gperf.diff
+ $(call do_check_sha256,$(GNU_ICONV_DIST))
tar -C $(SRCDIR) -zxf $(DISTDIR)/$(GNU_ICONV_DIST)
cd $(SRCDIR)/libiconv-$(GNU_ICONV_VER) && \
patch -p0 < $(GNU_ICONV_OBJDIR)/lib_encodings.def.diff && \
@@ -452,12 +498,12 @@ $(GNU_ICONV_OBJDIR)/.configured: $(GNU_ICONV_OBJDIR)/.retrieved
# compile gnu-iconv
$(GNU_ICONV_OBJDIR)/.compiled: $(GNU_ICONV_OBJDIR)/.configured
- (cd $(GNU_ICONV_OBJDIR) && make)
+ (cd $(GNU_ICONV_OBJDIR) && env MAKEFLAGS= make)
touch $@
# install gnu-iconv
$(GNU_ICONV_OBJDIR)/.installed: $(GNU_ICONV_OBJDIR)/.compiled
- (cd $(GNU_ICONV_OBJDIR) && make install)
+ (cd $(GNU_ICONV_OBJDIR) && env MAKEFLAGS= make install)
touch $@
#######################################################################
@@ -489,7 +535,7 @@ apr-util-reset:
rm -f $(APR_UTIL_OBJDIR)/$(f);)
apr-util-clean:
- -(cd $(APR_UTIL_OBJDIR) && make clean)
+ -(cd $(APR_UTIL_OBJDIR) && env MAKEFLAGS= make clean)
# retrieve apr-util if not present yet
@@ -503,16 +549,19 @@ $(APR_UTIL_OBJDIR)/.retrieved:
ifeq ($(USE_APR_ICONV),yes)
ICONV_FLAG=--with-iconv=$(PREFIX)/apr
+ICONV_OBJDIR=$(APR_ICONV_OBJDIR)
else
ICONV_FLAG=--with-iconv=$(PREFIX)/iconv
+ICONV_OBJDIR=$(GNU_ICONV_OBJDIR)
endif
# configure apr-util
-$(APR_UTIL_OBJDIR)/.configured: $(APR_UTIL_OBJDIR)/.retrieved
+$(APR_UTIL_OBJDIR)/.configured: $(APR_UTIL_OBJDIR)/.retrieved \
+ $(APR_OBJDIR)/.installed $(ICONV_OBJDIR)/.installed
cd $(APR_UTIL_SRCDIR) && ./buildconf --with-apr=$(APR_SRCDIR)
cd $(APR_UTIL_OBJDIR) \
&& env LD_LIBRARY_PATH=$(PREFIX)/bdb/lib \
- CFLAGS="-O0 -g $(PROFILE_CFLAGS)" \
+ CFLAGS="-O0 -g $(PROFILE_CFLAGS) -DAPR_POOL_DEBUG" \
GREP="`which grep`" \
$(APR_UTIL_SRCDIR)/configure \
--prefix=$(PREFIX)/apr \
@@ -524,12 +573,12 @@ $(APR_UTIL_OBJDIR)/.configured: $(APR_UTIL_OBJDIR)/.retrieved
# compile apr-util
$(APR_UTIL_OBJDIR)/.compiled: $(APR_UTIL_OBJDIR)/.configured
- (cd $(APR_UTIL_OBJDIR) && make)
+ (cd $(APR_UTIL_OBJDIR) && env MAKEFLAGS= make)
touch $@
# install apr-util
$(APR_UTIL_OBJDIR)/.installed: $(APR_UTIL_OBJDIR)/.compiled
- (cd $(APR_UTIL_OBJDIR) && make install)
+ (cd $(APR_UTIL_OBJDIR) && env MAKEFLAGS= make install)
touch $@
#######################################################################
@@ -546,22 +595,64 @@ httpd-reset:
rm -f $(HTTPD_OBJDIR)/$(f);)
httpd-clean:
- -(cd $(HTTPD_OBJDIR) && make clean)
+ -(cd $(HTTPD_OBJDIR) && env MAKEFLAGS= make clean)
# fetch distfile for httpd
$(DISTDIR)/$(HTTPD_DIST):
cd $(DISTDIR) && $(FETCH_CMD) $(HTTPD_URL)
+$(HTTPD_OBJDIR)/chil-engine.diff:
+ mkdir -p $(dir $@)
+ echo > $@.tmp '--- modules/ssl/ssl_engine_init.c.orig Mon Apr 14 13:20:57 2014'
+ echo >>$@.tmp '+++ modules/ssl/ssl_engine_init.c Mon Apr 14 13:21:22 2014'
+ echo >>$@.tmp '@@ -406,9 +406,11 @@ void ssl_init_Engine(server_rec *s, apr_pool_t *p)'
+ echo >>$@.tmp ' ssl_die();'
+ echo >>$@.tmp ' }'
+ echo >>$@.tmp ' '
+ echo >>$@.tmp '+#ifdef ENGINE_CTRL_CHIL_SET_FORKCHECK'
+ echo >>$@.tmp ' if (strEQ(mc->szCryptoDevice, "chil")) {'
+ echo >>$@.tmp ' ENGINE_ctrl(e, ENGINE_CTRL_CHIL_SET_FORKCHECK, 1, 0, 0);'
+ echo >>$@.tmp ' }'
+ echo >>$@.tmp '+#endif'
+ echo >>$@.tmp ' '
+ echo >>$@.tmp ' if (!ENGINE_set_default(e, ENGINE_METHOD_ALL)) {'
+ echo >>$@.tmp ' ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,'
+ mv -f $@.tmp $@
+
+
# retrieve httpd
-$(HTTPD_OBJDIR)/.retrieved: $(DISTDIR)/$(HTTPD_DIST)
+$(HTTPD_OBJDIR)/.retrieved: $(DISTDIR)/$(HTTPD_DIST) \
+ $(HTTPD_OBJDIR)/chil-engine.diff
+ $(call do_check_sha256,$(HTTPD_DIST))
[ -d $(HTTPD_OBJDIR) ] || mkdir -p $(HTTPD_OBJDIR)
- tar -C $(SRCDIR) -jxf $(DISTDIR)/$(HTTPD_DIST)
+ tar -C $(SRCDIR) -zxf $(DISTDIR)/$(HTTPD_DIST)
+ cd $(HTTPD_SRCDIR) && patch -p0 < $(HTTPD_OBJDIR)/chil-engine.diff
+ cp $(HTTPD_SRCDIR)/modules/ssl/ssl_toolkit_compat.h \
+ $(HTTPD_SRCDIR)/modules/ssl/ssl_toolkit_compat.h.orig
+ sed '/^#define HAVE_SSL_RAND_EGD/d' \
+ < $(HTTPD_SRCDIR)/modules/ssl/ssl_toolkit_compat.h.orig \
+ > $(HTTPD_SRCDIR)/modules/ssl/ssl_toolkit_compat.h
+ cp $(HTTPD_SRCDIR)/modules/ssl/ssl_engine_vars.c \
+ $(HTTPD_SRCDIR)/modules/ssl/ssl_engine_vars.c.orig
+ sed 's/^\(#if (OPENSSL_VERSION_NUMBER >= 0x00908000)\)$$/\1 \&\& !defined(OPENSSL_NO_COMP)/' \
+ < $(HTTPD_SRCDIR)/modules/ssl/ssl_engine_vars.c.orig \
+ > $(HTTPD_SRCDIR)/modules/ssl/ssl_engine_vars.c
+ cp $(HTTPD_SRCDIR)/modules/ssl/ssl_engine_init.c \
+ $(HTTPD_SRCDIR)/modules/ssl/ssl_engine_init.c.orig
+ $(foreach f, ssl_engine_init.c ssl_util_ssl.c ssl_util_ssl.h, \
+ cp $(HTTPD_SRCDIR)/modules/ssl/${f} $(HTTPD_SRCDIR)/modules/ssl/${f}.orig; \
+ sed 's/SSL_CTX_use_certificate_chain/_SSL_CTX_use_certificate_chain/' \
+ < $(HTTPD_SRCDIR)/modules/ssl/${f}.orig \
+ > $(HTTPD_SRCDIR)/modules/ssl/${f};\
+ )
touch $@
# configure httpd
-$(HTTPD_OBJDIR)/.configured: $(HTTPD_OBJDIR)/.retrieved
+$(HTTPD_OBJDIR)/.configured: $(HTTPD_OBJDIR)/.retrieved \
+ $(APR_UTIL_OBJDIR)/.installed
cd $(HTTPD_OBJDIR) \
- && env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`" \
+ && env CFLAGS="-g $(PROFILE_CFLAGS) -DAPR_POOL_DEBUG" \
+ GREP="`which grep`" \
$(HTTPD_SRCDIR)/configure \
--prefix=$(PREFIX)/httpd \
--enable-maintainer-mode \
@@ -574,12 +665,12 @@ $(HTTPD_OBJDIR)/.configured: $(HTTPD_OBJDIR)/.retrieved
# compile httpd
$(HTTPD_OBJDIR)/.compiled: $(HTTPD_OBJDIR)/.configured
- (cd $(HTTPD_OBJDIR) && make)
+ (cd $(HTTPD_OBJDIR) && env MAKEFLAGS= make)
touch $@
# install httpd
$(HTTPD_OBJDIR)/.installed: $(HTTPD_OBJDIR)/.compiled
- (cd $(HTTPD_OBJDIR) && make install)
+ (cd $(HTTPD_OBJDIR) && env MAKEFLAGS= make install)
touch $@
# create a httpd.conf for mod_dav_svn
@@ -617,26 +708,17 @@ neon-reset:
rm -f $(NEON_OBJDIR)/$(f);)
neon-clean:
- -(cd $(NEON_OBJDIR) && make clean)
+ -(cd $(NEON_OBJDIR) && env MAKEFLAGS= make clean)
# fetch distfile for neon
$(DISTDIR)/$(NEON_DIST):
cd $(DISTDIR) && $(FETCH_CMD) $(NEON_URL)
# retrieve neon
-NEON_SVN_URL=http://svn.webdav.org/repos/projects/neon/trunk
$(NEON_OBJDIR)/.retrieved: $(DISTDIR)/$(NEON_DIST)
+ $(call do_check_sha256,$(NEON_DIST))
[ -d $(NEON_OBJDIR) ] || mkdir -p $(NEON_OBJDIR)
tar -C $(SRCDIR) -zxf $(DISTDIR)/$(NEON_DIST)
- # fix build with OpenSSL lacking SSLv2 support:
- cd $(NEON_SRCDIR)/src && svn diff -c 1865 \
- $(NEON_SVN_URL)/src/ne_openssl.c | patch -p0
- cd $(NEON_SRCDIR)/src && svn diff -c 1872 \
- $(NEON_SVN_URL)/src/ne_openssl.c | patch -p0
- cd $(NEON_SRCDIR)/src && svn diff -c 1865 \
- $(NEON_SVN_URL)/src/ne_ssl.h | patch -p0
- cd $(NEON_SRCDIR)/src && svn diff -c 1865 \
- $(NEON_SVN_URL)/src/ne_session.c | patch -p0
touch $@
# OpenBSD does not have krb5-config in PATH, but the neon port has
@@ -664,12 +746,12 @@ $(NEON_OBJDIR)/.configured: $(NEON_OBJDIR)/.retrieved
# compile neon
$(NEON_OBJDIR)/.compiled: $(NEON_OBJDIR)/.configured
- (cd $(NEON_OBJDIR) && make)
+ (cd $(NEON_OBJDIR) && env MAKEFLAGS= make)
touch $@
# install neon
$(NEON_OBJDIR)/.installed: $(NEON_OBJDIR)/.compiled
- (cd $(NEON_OBJDIR) && make install)
+ (cd $(NEON_OBJDIR) && env MAKEFLAGS= make install)
touch $@
@@ -686,7 +768,7 @@ serf-reset:
rm -f $(SERF_OBJDIR)/$(f);)
serf-clean:
- -(cd $(SERF_SRCDIR) && ./serfmake clean)
+ -(cd $(SERF_SRCDIR) && scons -c)
# fetch distfile for serf
@@ -710,21 +792,24 @@ $(SERF_OBJDIR)/.retrieved:
touch $@
# compile serf (serf won't compile outside its source tree)
-$(SERF_OBJDIR)/.compiled: $(SERF_OBJDIR)/.retrieved
+$(SERF_OBJDIR)/.compiled: $(SERF_OBJDIR)/.retrieved \
+ $(APR_UTIL_OBJDIR)/.installed
cd $(SERF_SRCDIR) && \
- env CFLAGS="-O0 -g $(PROFILE_CFLAGS)" \
- ./serfmake --with-apr=$(PREFIX)/apr \
- --prefix=$(PREFIX)/serf \
- build
+ scons DEBUG=1 \
+ CFLAGS="-O0 -g $(PROFILE_CFLAGS) -DAPR_POOL_DEBUG" \
+ APR=$(PREFIX)/apr \
+ APU=$(PREFIX)/apr \
+ PREFIX=$(PREFIX)/serf
touch $@
# install serf
$(SERF_OBJDIR)/.installed: $(SERF_OBJDIR)/.compiled
+ rm -rf $(PREFIX)/serf # XXX scons cannot reinstall :(
cd $(SERF_SRCDIR) && \
- ./serfmake --with-apr=$(PREFIX)/apr \
- --with-apr-util=$(PREFIX)/apr \
- --prefix=$(PREFIX)/serf \
- install
+ scons install
+ # work around unportable scons shared lib support
+ -ln -s libserf-1.so.$(shell echo $(SERF_VER) | sed -e 's/[0-9]$$/0/') \
+ $(PREFIX)/serf/lib/libserf-1.so
touch $@
#######################################################################
@@ -751,9 +836,10 @@ $(SERF_OLD_OBJDIR)/.retrieved:
touch $@
# compile serf (serf won't compile outside its source tree)
-$(SERF_OLD_OBJDIR)/.compiled: $(SERF_OLD_OBJDIR)/.retrieved
+$(SERF_OLD_OBJDIR)/.compiled: $(SERF_OLD_OBJDIR)/.retrieved \
+ $(APR_UTIL_OBJDIR)/.installed
cd $(SERF_OLD_SRCDIR) && \
- env CFLAGS="-O0 -g $(PROFILE_CFLAGS)" \
+ env CFLAGS="-O0 -g $(PROFILE_CFLAGS) -DAPR_POOL_DEBUG" \
./serfmake --with-apr=$(PREFIX)/apr \
--prefix=$(PREFIX)/serf-old \
build
@@ -782,7 +868,7 @@ sqlite-reset:
rm -f $(SQLITE_OBJDIR)/$(f);)
sqlite-clean:
- -cd $(SQLITE_OBJDIR) && make clean
+ -cd $(SQLITE_OBJDIR) && env MAKEFLAGS= make clean
# fetch distfile for sqlite
$(DISTDIR)/$(SQLITE_DIST):
@@ -790,6 +876,7 @@ $(DISTDIR)/$(SQLITE_DIST):
# retrieve sqlite
$(SQLITE_OBJDIR)/.retrieved: $(DISTDIR)/$(SQLITE_DIST)
+ $(call do_check_sha256,$(SQLITE_DIST))
[ -d $(SQLITE_OBJDIR) ] || mkdir -p $(SQLITE_OBJDIR)
tar -C $(SRCDIR) -zxf $(DISTDIR)/$(SQLITE_DIST)
touch $@
@@ -811,12 +898,12 @@ $(SQLITE_OBJDIR)/.configured: $(SQLITE_OBJDIR)/.retrieved
# compile sqlite
$(SQLITE_OBJDIR)/.compiled: $(SQLITE_OBJDIR)/.configured
- (cd $(SQLITE_OBJDIR) && make)
+ (cd $(SQLITE_OBJDIR) && env MAKEFLAGS= make)
touch $@
# install sqlite
$(SQLITE_OBJDIR)/.installed: $(SQLITE_OBJDIR)/.compiled
- (cd $(SQLITE_OBJDIR) && make install)
+ (cd $(SQLITE_OBJDIR) && env MAKEFLAGS= make install)
touch $@
#######################################################################
@@ -832,7 +919,7 @@ cyrus-sasl-reset:
rm -f $(CYRUS_SASL_OBJDIR)/$(f);)
cyrus-sasl-clean:
- -(cd $(CYRUS_SASL_OBJDIR) && make distclean)
+ -(cd $(CYRUS_SASL_OBJDIR) && env MAKEFLAGS= make distclean)
# fetch distfile for cyrus-sasl
$(DISTDIR)/$(CYRUS_SASL_DIST):
@@ -840,6 +927,7 @@ $(DISTDIR)/$(CYRUS_SASL_DIST):
# retrieve cyrus-sasl
$(CYRUS_SASL_OBJDIR)/.retrieved: $(DISTDIR)/$(CYRUS_SASL_DIST)
+ $(call do_check_sha256,$(CYRUS_SASL_DIST))
[ -d $(CYRUS_SASL_OBJDIR) ] || mkdir -p $(CYRUS_SASL_OBJDIR)
tar -C $(SRCDIR) -zxf $(DISTDIR)/$(CYRUS_SASL_DIST)
# fixes build on Debian:
@@ -867,7 +955,8 @@ endif
touch $@
# configure cyrus-sasl
-$(CYRUS_SASL_OBJDIR)/.configured: $(CYRUS_SASL_OBJDIR)/.retrieved
+$(CYRUS_SASL_OBJDIR)/.configured: $(CYRUS_SASL_OBJDIR)/.retrieved \
+ $(BDB_OBJDIR)/.installed $(SQLITE_OBJDIR)/.installed
cd $(CYRUS_SASL_OBJDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS)" \
CPPFLAGS="-I/usr/include/kerberosV" \
@@ -885,12 +974,12 @@ $(CYRUS_SASL_OBJDIR)/.configured: $(CYRUS_SASL_OBJDIR)/.retrieved
# compile cyrus-sasl
$(CYRUS_SASL_OBJDIR)/.compiled: $(CYRUS_SASL_OBJDIR)/.configured
- (cd $(CYRUS_SASL_OBJDIR) && make)
+ (cd $(CYRUS_SASL_OBJDIR) && env MAKEFLAGS= make)
touch $@
# install cyrus-sasl
$(CYRUS_SASL_OBJDIR)/.installed: $(CYRUS_SASL_OBJDIR)/.compiled
- (cd $(CYRUS_SASL_OBJDIR) && make install)
+ (cd $(CYRUS_SASL_OBJDIR) && env MAKEFLAGS= make install)
touch $@
#######################################################################
@@ -906,7 +995,7 @@ libmagic-reset:
rm -f $(LIBMAGIC_OBJDIR)/$(f);)
libmagic-clean:
- -(cd $(LIBMAGIC_OBJDIR) && make distclean)
+ -(cd $(LIBMAGIC_OBJDIR) && env MAKEFLAGS= make distclean)
# fetch distfile for libmagic
$(DISTDIR)/$(LIBMAGIC_DIST):
@@ -914,6 +1003,7 @@ $(DISTDIR)/$(LIBMAGIC_DIST):
# retrieve libmagic
$(LIBMAGIC_OBJDIR)/.retrieved: $(DISTDIR)/$(LIBMAGIC_DIST)
+ $(call do_check_sha256,$(LIBMAGIC_DIST))
[ -d $(LIBMAGIC_OBJDIR) ] || mkdir -p $(LIBMAGIC_OBJDIR)
tar -C $(SRCDIR) -zxf $(DISTDIR)/$(LIBMAGIC_DIST)
touch $@
@@ -929,12 +1019,12 @@ $(LIBMAGIC_OBJDIR)/.configured: $(LIBMAGIC_OBJDIR)/.retrieved
# compile libmagic
$(LIBMAGIC_OBJDIR)/.compiled: $(LIBMAGIC_OBJDIR)/.configured
- (cd $(LIBMAGIC_OBJDIR) && make)
+ (cd $(LIBMAGIC_OBJDIR) && env MAKEFLAGS= make)
touch $@
# install libmagic
$(LIBMAGIC_OBJDIR)/.installed: $(LIBMAGIC_OBJDIR)/.compiled
- (cd $(LIBMAGIC_OBJDIR) && make install)
+ (cd $(LIBMAGIC_OBJDIR) && env MAKEFLAGS= make install)
touch $@
#######################################################################
@@ -950,7 +1040,7 @@ ruby-reset:
rm -f $(RUBY_OBJDIR)/$(f);)
ruby-clean:
- -(cd $(RUBY_OBJDIR) && make distclean)
+ -(cd $(RUBY_OBJDIR) && env MAKEFLAGS= make distclean)
# fetch distfile for ruby
$(DISTDIR)/$(RUBY_DIST):
@@ -959,6 +1049,7 @@ $(DISTDIR)/$(RUBY_DIST):
# retrieve ruby
#
$(RUBY_OBJDIR)/.retrieved: $(DISTDIR)/$(RUBY_DIST)
+ $(call do_check_sha256,$(RUBY_DIST))
[ -d $(RUBY_OBJDIR) ] || mkdir -p $(RUBY_OBJDIR)
tar -C $(SRCDIR) -zxf $(DISTDIR)/$(RUBY_DIST)
touch $@
@@ -981,12 +1072,12 @@ $(RUBY_OBJDIR)/.configured: $(RUBY_OBJDIR)/.retrieved
# compile ruby
$(RUBY_OBJDIR)/.compiled: $(RUBY_OBJDIR)/.configured
- (cd $(RUBY_OBJDIR) && make)
+ (cd $(RUBY_OBJDIR) && env MAKEFLAGS= make)
touch $@
# install ruby
$(RUBY_OBJDIR)/.installed: $(RUBY_OBJDIR)/.compiled
- (cd $(RUBY_OBJDIR) && make install)
+ (cd $(RUBY_OBJDIR) && env MAKEFLAGS= make install)
touch $@
#######################################################################
@@ -1001,7 +1092,7 @@ bz2-reset:
rm -f $(BZ2_OBJDIR)/$(f);)
bz2-clean:
- -(cd $(BZ2_SRCDIR) && make distclean)
+ -(cd $(BZ2_SRCDIR) && env MAKEFLAGS= make distclean)
# fetch distfile for bz2
$(DISTDIR)/$(BZ2_DIST):
@@ -1009,18 +1100,19 @@ $(DISTDIR)/$(BZ2_DIST):
# retrieve bz2
$(BZ2_OBJDIR)/.retrieved: $(DISTDIR)/$(BZ2_DIST)
+ $(call do_check_sha256,$(BZ2_DIST))
[ -d $(BZ2_OBJDIR) ] || mkdir -p $(BZ2_OBJDIR)
tar -C $(SRCDIR) -zxf $(DISTDIR)/$(BZ2_DIST)
touch $@
# compile bz2
$(BZ2_OBJDIR)/.compiled: $(BZ2_OBJDIR)/.retrieved
- (cd $(BZ2_SRCDIR) && make CFLAGS="-g $(PROFILE_CFLAGS) -fPIC")
+ (cd $(BZ2_SRCDIR) && env MAKEFLAGS= make CFLAGS="-g $(PROFILE_CFLAGS) -fPIC")
touch $@
# install bz2
$(BZ2_OBJDIR)/.installed: $(BZ2_OBJDIR)/.compiled
- (cd $(BZ2_SRCDIR) && make install PREFIX=$(PREFIX)/bz2)
+ (cd $(BZ2_SRCDIR) && env MAKEFLAGS= make install PREFIX=$(PREFIX)/bz2)
touch $@
@@ -1037,7 +1129,7 @@ python-reset:
rm -f $(PYTHON_OBJDIR)/$(f);)
python-clean:
- -(cd $(PYTHON_OBJDIR) && make distclean)
+ -(cd $(PYTHON_OBJDIR) && env MAKEFLAGS= make distclean)
# fetch distfile for python
$(DISTDIR)/$(PYTHON_DIST):
@@ -1046,13 +1138,14 @@ $(DISTDIR)/$(PYTHON_DIST):
# retrieve python
#
$(PYTHON_OBJDIR)/.retrieved: $(DISTDIR)/$(PYTHON_DIST)
+ $(call do_check_sha256,$(PYTHON_DIST))
[ -d $(PYTHON_OBJDIR) ] || mkdir -p $(PYTHON_OBJDIR)
tar -C $(SRCDIR) -zxf $(DISTDIR)/$(PYTHON_DIST)
# Make setup.py use our own dependencies instead of system ones
sed -e "s#sqlite_inc_paths = \[ '/usr/include',#sqlite_inc_paths = [ '$(PREFIX)/sqlite/include',#" \
-e "s#'/usr/include/db4'#'$(PREFIX)/bdb/include'#" \
- -e "s|\(add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')\)|#\1|" \
- -e "s|\(add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')\)|#\1|" \
+ -e "s|\(add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')\)|pass #\1|" \
+ -e "s|\(add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')\)|pass #\1|" \
-e "s#find_library_file(lib_dirs, 'bz2'#find_library_file(['$(PREFIX)/bz2/lib'] + lib_dirs, 'bz2'#" \
< $(PYTHON_SRCDIR)/setup.py \
> $(PYTHON_SRCDIR)/setup.py.patched
@@ -1074,7 +1167,8 @@ $(PYTHON_OBJDIR)/.retrieved: $(DISTDIR)/$(PYTHON_DIST)
ifdef PROFILE
PYTHON_PROFILING=--enable-profiling
endif
-$(PYTHON_OBJDIR)/.configured: $(PYTHON_OBJDIR)/.retrieved
+$(PYTHON_OBJDIR)/.configured: $(PYTHON_OBJDIR)/.retrieved \
+ $(BZ2_OBJDIR)/.installed
cd $(PYTHON_OBJDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`" \
CPPFLAGS="-I$(PREFIX)/bz2/include" \
@@ -1089,12 +1183,12 @@ $(PYTHON_OBJDIR)/.configured: $(PYTHON_OBJDIR)/.retrieved
# compile python
$(PYTHON_OBJDIR)/.compiled: $(PYTHON_OBJDIR)/.configured
- (cd $(PYTHON_OBJDIR) && make)
+ (cd $(PYTHON_OBJDIR) && env MAKEFLAGS= make)
touch $@
# install python
$(PYTHON_OBJDIR)/.installed: $(PYTHON_OBJDIR)/.compiled
- (cd $(PYTHON_OBJDIR) && make install)
+ (cd $(PYTHON_OBJDIR) && env MAKEFLAGS= make install)
touch $@
@@ -1105,6 +1199,65 @@ $(PYTHON_OBJDIR)/.installed: $(PYTHON_OBJDIR)/.compiled
# fetch distfile for junit
$(DISTDIR)/$(JUNIT_DIST):
cd $(DISTDIR) && $(FETCH_CMD) $(JUNIT_URL)
+ $(call do_check_sha256,$(JUNIT_DIST))
+
+
+#######################################################################
+# gettext
+#######################################################################
+
+gettext-retrieve: $(GETTEXT_OBJDIR)/.retrieved
+gettext-configure: $(GETTEXT_OBJDIR)/.configured
+gettext-compile: $(GETTEXT_OBJDIR)/.compiled
+gettext-install: $(GETTEXT_OBJDIR)/.installed
+gettext-reset:
+ $(foreach f, .retrieved .configured .compiled .installed, \
+ rm -f $(GETTEXT_OBJDIR)/$(f);)
+
+gettext-clean:
+ -(cd $(GETTEXT_OBJDIR) && env MAKEFLAGS= make clean)
+
+# fetch distfile for gettext
+$(DISTDIR)/$(GETTEXT_DIST):
+ cd $(DISTDIR) && $(FETCH_CMD) $(GETTEXT_URL)
+
+# retrieve gettext
+$(GETTEXT_OBJDIR)/.retrieved: $(DISTDIR)/$(GETTEXT_DIST)
+ $(call do_check_sha256,$(GETTEXT_DIST))
+ [ -d $(GETTEXT_OBJDIR) ] || mkdir -p $(GETTEXT_OBJDIR)
+ tar -C $(SRCDIR) -zxf $(DISTDIR)/$(GETTEXT_DIST)
+ touch $@
+
+# (gettext won't compile outside its source tree)
+# configure gettext
+$(GETTEXT_OBJDIR)/.configured: $(GETTEXT_OBJDIR)/.retrieved
+ cd $(GETTEXT_SRCDIR) \
+ && env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`"\
+ LDFLAGS="-L$(PREFIX)/iconv/lib" \
+ $(GETTEXT_SRCDIR)/configure \
+ --prefix=$(PREFIX)/gettext \
+ --with-libiconv-prefix=$(PREFIX)/iconv \
+ --disable-c++ \
+ --disable-java \
+ --disable-csharp \
+ $(THREADS_FLAG)
+ -which gsed && \
+ sed -e 's/sed /gsed /g' < $(GETTEXT_SRCDIR)/build-aux/moopp \
+ > $(GETTEXT_SRCDIR)/build-aux/moopp.fixed && \
+ mv $(GETTEXT_SRCDIR)/build-aux/moopp.fixed \
+ $(GETTEXT_SRCDIR)/build-aux/moopp && \
+ chmod +x $(GETTEXT_SRCDIR)/build-aux/moopp
+ touch $@
+
+# compile gettext
+$(GETTEXT_OBJDIR)/.compiled: $(GETTEXT_OBJDIR)/.configured
+ (cd $(GETTEXT_SRCDIR) && env MAKEFLAGS= make)
+ touch $@
+
+# install gettext
+$(GETTEXT_OBJDIR)/.installed: $(GETTEXT_OBJDIR)/.compiled
+ (cd $(GETTEXT_SRCDIR) && env MAKEFLAGS= make install)
+ touch $@
#######################################################################
# svn
@@ -1129,7 +1282,7 @@ svn-reset: svn-bindings-reset
rm -f $(SVN_OBJDIR)/$(f);)
svn-clean:
- -(cd $(svn_builddir) && make distclean)
+ -(cd $(svn_builddir) && env MAKEFLAGS= make distclean)
# retrieve svn if not present yet
$(SVN_OBJDIR)/.retrieved:
@@ -1153,16 +1306,20 @@ $(SVN_OBJDIR)/.retrieved:
ifeq ($(BRANCH_MAJOR),1.7)
BDB_FLAG=db.h:$(PREFIX)/bdb/include:$(PREFIX)/bdb/lib:db-$(BDB_MAJOR_VER)
SERF_FLAG=--with-serf="$(PREFIX)/serf"
+SERF_LDFLAG=-Wl,-rpath,$(PREFIX)/serf/lib -Wl,-rpath,$(PREFIX)/bdb/lib
MOD_DAV_SVN=modules/svn-$(WC)/mod_dav_svn.so
MOD_AUTHZ_SVN=modules/svn-$(WC)/mod_authz_svn.so
+MOD_DONTDOTHAT=modules/svn-$(WC)/mod_dontdothat.so
LIBMAGIC_FLAG=--with-libmagic=$(PREFIX)/libmagic
NEON_FLAG=--with-neon="$(PREFIX)/neon"
JAVAHL_CHECK_TARGET=check-javahl
else ifeq ($(BRANCH_MAJOR),1.6)
BDB_FLAG=db.h:$(PREFIX)/bdb/include:$(PREFIX)/bdb/lib:db-$(BDB_MAJOR_VER)
SERF_FLAG=--with-serf="$(PREFIX)/serf"
+SERF_LDFLAG=-Wl,-rpath,$(PREFIX)/serf/lib -Wl,-rpath,$(PREFIX)/bdb/lib
MOD_DAV_SVN=modules/svn-$(WC)/mod_dav_svn.so
MOD_AUTHZ_SVN=modules/svn-$(WC)/mod_authz_svn.so
+MOD_DONTDOTHAT=modules/svn-$(WC)/mod_dontdothat.so
W_NO_SYSTEM_HEADERS=-Wno-system-headers
NEON_FLAG=--with-neon="$(PREFIX)/neon"
JAVAHL_CHECK_TARGET=check-javahl
@@ -1171,6 +1328,7 @@ BDB_FLAG=$(PREFIX)/bdb
SERF_FLAG=--with-serf="$(PREFIX)/serf-old"
MOD_DAV_SVN=modules/mod_dav_svn.so
MOD_AUTHZ_SVN=modules/mod_authz_svn.so
+MOD_DONTDOTHAT=modules/mod_dontdothat.so
DISABLE_NEON_VERSION_CHECK=--disable-neon-version-check
W_NO_SYSTEM_HEADERS=-Wno-system-headers
NEON_FLAG=--with-neon="$(PREFIX)/neon"
@@ -1178,8 +1336,12 @@ JAVAHL_CHECK_TARGET=check-javahl
else # 1.8
BDB_FLAG=db.h:$(PREFIX)/bdb/include:$(PREFIX)/bdb/lib:db-$(BDB_MAJOR_VER)
SERF_FLAG=--with-serf="$(PREFIX)/serf"
+# serf >= 1.3.0 is built with scons and no longer sets up rpath linker flags,
+# so we have to do that ourselves :(
+SERF_LDFLAG=-Wl,-rpath,$(PREFIX)/serf/lib -Wl,-rpath,$(PREFIX)/bdb/lib
MOD_DAV_SVN=modules/svn-$(WC)/mod_dav_svn.so
MOD_AUTHZ_SVN=modules/svn-$(WC)/mod_authz_svn.so
+MOD_DONTDOTHAT=modules/svn-$(WC)/mod_dontdothat.so
LIBMAGIC_FLAG=--with-libmagic=$(PREFIX)/libmagic
JAVAHL_CHECK_TARGET=check-all-javahl
endif
@@ -1192,21 +1354,29 @@ else
endif
ifdef PROFILE
-SVN_ALL_STATIC=--enable-all-static
+SVN_STATIC_FLAG=--enable-all-static
else
+SVN_STATIC_FLAG=--disable-static
SVN_WITH_HTTPD=--with-apxs="$(PREFIX)/httpd/bin/apxs" \
--with-apache-libexecdir="$(PREFIX)/httpd/modules/svn-$(WC)"
SVN_WITH_SASL=--with-sasl="$(PREFIX)/cyrus-sasl"
endif
-# configure svn
-$(SVN_OBJDIR)/.configured: $(SVN_OBJDIR)/.retrieved $(DISTDIR)/$(JUNIT_DIST)
+$(SVN_OBJDIR)/.configured: $(SVN_OBJDIR)/.retrieved $(DISTDIR)/$(JUNIT_DIST) \
+ $(APR_OBJDIR)/.installed $(APR_UTIL_OBJDIR)/.installed \
+ $(BDB_OBJDIR)/.installed $(SQLITE_OBJDIR)/.installed \
+ $(HTTPD_OBJDIR)/.installed $(CYRUS_SASL_OBJDIR)/.installed \
+ $(LIBMAGIC_OBJDIR)/.installed $(NEON_OBJDIR)/.installed \
+ $(SERF_OBJDIR)/.installed $(SERF_OLD_OBJDIR)/.installed \
+ $(RUBY_OBJDIR)/.installed $(PYTHON_OBJDIR)/.installed
cd $(SVN_SRCDIR) && ./autogen.sh
cd $(svn_builddir) && \
- env LDFLAGS="-L$(PREFIX)/neon/lib -L$(PREFIX)/apr/lib" \
+ env LDFLAGS="-L$(PREFIX)/neon/lib -L$(PREFIX)/apr/lib $(SERF_LDFLAG) -L$(PREFIX)/gettext/lib -L$(PREFIX)/iconv/lib" \
+ CFLAGS="-I$(PREFIX)/gettext/include -DAPR_POOL_DEBUG" \
+ CXXFLAGS="-I$(PREFIX)/gettext/include -DAPR_POOL_DEBUG" \
LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$$LD_LIBRARY_PATH" \
GREP="`which grep`" \
- PATH=$(PREFIX)/ruby/bin:$(PREFIX)/python/bin:$$PATH \
+ PATH=$(PREFIX)/ruby/bin:$(PREFIX)/python/bin:$(PREFIX)/gettext/bin:$$PATH \
$(SVN_SRCDIR)/configure \
--enable-maintainer-mode \
--with-ssl \
@@ -1223,20 +1393,20 @@ $(SVN_OBJDIR)/.configured: $(SVN_OBJDIR)/.retrieved $(DISTDIR)/$(JUNIT_DIST)
--disable-mod-activation \
$(JAVAHL_FLAG) \
$(LIBMAGIC_FLAG) \
- $(SVN_ALL_STATIC) \
+ $(SVN_STATIC_FLAG) \
$(DISABLE_NEON_VERSION_CHECK)
touch $@
# compile svn
$(SVN_OBJDIR)/.compiled: $(SVN_OBJDIR)/.configured
cd $(svn_builddir) \
- && make EXTRA_CFLAGS="$(PROFILE_CFLAGS) $(W_NO_SYSTEM_HEADERS)"
+ && env MAKEFLAGS= make EXTRA_CFLAGS="$(PROFILE_CFLAGS) $(W_NO_SYSTEM_HEADERS)"
touch $@
# install svn
$(SVN_OBJDIR)/.installed: $(SVN_OBJDIR)/.compiled
cd $(svn_builddir) \
- && make install
+ && env MAKEFLAGS= make install install-tools
touch $@
# SWIG 1.x and 2.x are not compatible. If SWIG 2.x is used to generated .swg
@@ -1246,44 +1416,44 @@ $(SVN_OBJDIR)/.installed: $(SVN_OBJDIR)/.compiled
# by the same version of SWIG.
$(SVN_OBJDIR)/.pre-generated-swig-cleaned:
-cd $(svn_builddir) \
- && make extraclean-swig
+ && env MAKEFLAGS= make clean-swig
touch $@
$(SVN_OBJDIR)/.bindings-compiled: $(SVN_OBJDIR)/.installed $(SVN_OBJDIR)/.pre-generated-swig-cleaned
cd $(svn_builddir) \
&& env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
- make swig-py
+ env MAKEFLAGS= make swig-py
cd $(svn_builddir) && \
env PATH=$(PREFIX)/ruby/bin:$$PATH \
- LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) make swig-rb
+ LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) env MAKEFLAGS= make swig-rb
if [ $(ENABLE_PERL_BINDINGS) = yes ]; then \
cd $(svn_builddir) \
&& env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
- make swig-pl; \
+ env MAKEFLAGS= make swig-pl; \
fi
if [ $(ENABLE_JAVA_BINDINGS) = yes ]; then \
cd $(svn_builddir) \
- && make javahl; \
+ && env MAKEFLAGS= make javahl; \
fi
touch $@
$(SVN_OBJDIR)/.bindings-installed: $(SVN_OBJDIR)/.bindings-compiled
cd $(svn_builddir) \
&& env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
- make install-swig-py
+ env MAKEFLAGS= make install-swig-py
cd $(svn_builddir) && \
env PATH=$(PREFIX)/ruby/bin:$$PATH \
- LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) make install-swig-rb
+ LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) env MAKEFLAGS= make install-swig-rb
if [ $(ENABLE_PERL_BINDINGS) = yes ]; then \
cd $(svn_builddir) \
- && make install-swig-pl-lib; \
+ && env MAKEFLAGS= make install-swig-pl-lib; \
cd subversion/bindings/swig/perl/native \
&& perl Makefile.PL PREFIX="$(SVN_PREFIX)" \
- && make install; \
+ && env MAKEFLAGS= make install; \
fi
if [ $(ENABLE_JAVA_BINDINGS) = yes ]; then \
cd $(svn_builddir) \
- && make install-javahl; \
+ && env MAKEFLAGS= make install-javahl; \
fi
touch $@
@@ -1291,6 +1461,13 @@ $(SVN_OBJDIR)/.bindings-installed: $(SVN_OBJDIR)/.bindings-compiled
HTTPD_CHECK_CONF=$(PREFIX)/httpd/conf/httpd-svn-check-$(WC).conf
HTTPD_CHECK_USERS=$(PREFIX)/httpd/conf/httpd-svn-check-users
HTTPD_CHECK_PORT=8081
+MOD_DONTDOTHAT_CONF=$(PREFIX)/httpd/conf/dontdothat
+
+$(MOD_DONTDOTHAT_CONF):
+ mkdir -p $(dir $@)
+ echo > $@.tmp '[recursive-actions]'
+ echo >>$@.tmp '/ = deny'
+ mv -f $@.tmp $@
$(HTTPD_CHECK_USERS):
mkdir -p $(dir $@)
@@ -1298,12 +1475,13 @@ $(HTTPD_CHECK_USERS):
echo >>$@.tmp 'jconstant:xCGl35kV9oWCY'
mv -f $@.tmp $@
-$(HTTPD_CHECK_CONF): $(HTTPD_CHECK_USERS)
+$(HTTPD_CHECK_CONF): $(HTTPD_CHECK_USERS) $(MOD_DONTDOTHAT_CONF)
echo > $@.tmp '# httpd config for make check'
echo >>$@.tmp 'ServerRoot "$(PREFIX)/httpd"'
echo >>$@.tmp 'Listen localhost:$(HTTPD_CHECK_PORT)'
echo >>$@.tmp 'LoadModule dav_svn_module $(MOD_DAV_SVN)'
echo >>$@.tmp 'LoadModule authz_svn_module $(MOD_AUTHZ_SVN)'
+ echo >>$@.tmp 'LoadModule dontdothat_module $(MOD_DONTDOTHAT)'
echo >>$@.tmp 'DocumentRoot "$(PREFIX)/httpd/htdocs"'
echo >>$@.tmp '# These two Locations are used for "make check"'
echo >>$@.tmp '<Directory />'
@@ -1347,15 +1525,38 @@ endif
echo >>$@.tmp ' DAV svn'
echo >>$@.tmp ' SVNParentPath /tmp'
echo >>$@.tmp ' Allow from all'
+ echo >>$@.tmp ' #AuthType Basic'
+ echo >>$@.tmp ' #AuthName "Subversion Repository"'
+ echo >>$@.tmp ' #AuthUserFile $(HTTPD_CHECK_USERS)'
+ echo >>$@.tmp ' #Require valid-user'
ifeq ($(USE_HTTPV1),yes)
- echo >>$@.tmp ' SVNAdvertiseV2Protocol off'
+ echo >> $@.tmp ' SVNAdvertiseV2Protocol off'
endif
ifeq ($(USE_AUTHZ_SHORT_CIRCUIT),yes)
- echo >>$@.tmp ' SVNPathAuthz short_circuit'
+ echo >> $@.tmp ' SVNPathAuthz short_circuit'
endif
echo >>$@.tmp '</Location>'
+ echo >>$@.tmp '# Location for tests using mod_dontdothat'
+ echo >>$@.tmp '<Location /ddt-test-work/repositories>'
+ echo >> $@.tmp 'DAV svn'
+ echo >> $@.tmp 'SVNParentPath "$(SVN_WC)/subversion/tests/cmdline/svn-test-work/repositories"'
+ echo >> $@.tmp 'AuthzSVNAccessFile "$(SVN_WC)/subversion/tests/cmdline/svn-test-work/authz"'
+ echo >> $@.tmp 'AuthType Basic'
+ echo >> $@.tmp 'AuthName "Subversion Repository"'
+ echo >> $@.tmp 'AuthzSVNAccessFile $(SVN_WC)/subversion/tests/cmdline/svn-test-work/authz'
+ echo >> $@.tmp 'AuthUserFile $(HTTPD_CHECK_USERS)'
+ echo >> $@.tmp 'Require valid-user'
+ifeq ($(USE_HTTPV1),yes)
+ echo >> $@.tmp ' SVNAdvertiseV2Protocol off'
+endif
+ echo >> $@.tmp 'DontDoThatConfigFile "$(MOD_DONTDOTHAT_CONF)"'
+ echo >> $@.tmp '</Location>'
echo >>$@.tmp 'RedirectMatch permanent ^/svn-test-work/repositories/REDIRECT-PERM-(.*)$$ /svn-test-work/repositories/$$1'
echo >>$@.tmp 'RedirectMatch ^/svn-test-work/repositories/REDIRECT-TEMP-(.*)$$ /svn-test-work/repositories/$$1'
+ echo >>$@.tmp 'Include "conf/$(SVN_REL_WC)*-custom.conf"'
+ echo >> $@.tmp '#SVNInMemoryCacheSize 0'
+ echo >> $@.tmp '#SVNCacheTextDeltas Off'
+ echo >> $@.tmp '#SVNCacheRevProps Off'
mv -f $@.tmp $@
.PHONY: libpath
@@ -1407,7 +1608,7 @@ start-httpd-debug: $(HTTPD_CHECK_CONF)
@sleep 1
gdb $(PREFIX)/httpd/bin/httpd `cat $(PREFIX)/httpd/logs/httpd.pid`
-stop-httpd:
+stop-httpd: $(HTTPD_CHECK_CONF)
$(HTTPD_STOP_CMD)
start-svnserve: $(SVN_OBJDIR)/.compiled
@@ -1421,7 +1622,9 @@ define do_check
echo "Begin test: $(subst svn-check-,,$@) x $$fs"; \
test -d "$(RAMDISK)/tmp" && export TMPDIR="$(RAMDISK)/tmp"; \
env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(LIB_PTHREAD_HACK) \
- make check PARALLEL=$(PARALLEL) CLEANUP=$(CLEANUP) $1 FS_TYPE=$$fs; \
+ env MAKEFLAGS= make check PARALLEL=$(PARALLEL) CLEANUP=$(CLEANUP) \
+ EXCLUSIVE_WC_LOCKS=$(EXCLUSIVE_WC_LOCKS) \
+ MEMCACHED_SERVER=$(MEMCACHED_SERVER) $1 FS_TYPE=$$fs; \
for log in tests.log fails.log; do \
test -f $$log && mv -f $$log $$log.$@-$$fs; \
done; \
@@ -1477,14 +1680,14 @@ svn-check-swig-pl:
(cd $(svn_builddir) && \
env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
$(LIB_PTHREAD_HACK) \
- make check-swig-pl 2>&1) | \
+ env MAKEFLAGS= make check-swig-pl 2>&1) | \
tee $(svn_builddir)/tests.log.bindings.pl; \
fi
svn-check-swig-py:
-(cd $(svn_builddir) && \
env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
- make check-swig-py 2>&1) | \
+ env MAKEFLAGS= make check-swig-py 2>&1) | \
tee $(svn_builddir)/tests.log.bindings.py
# We add the svn prefix to PATH here because the ruby tests
@@ -1495,14 +1698,14 @@ svn-check-swig-rb:
LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
PATH=$(SVN_PREFIX)/bin:$$PATH \
$(LIB_PTHREAD_HACK) \
- make check-swig-rb 2>&1) | \
+ env MAKEFLAGS= make check-swig-rb 2>&1) | \
tee $(svn_builddir)/tests.log.bindings.rb
svn-check-javahl:
-if [ $(ENABLE_JAVA_BINDINGS) = yes ]; then \
(cd $(svn_builddir) && \
env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
- make $(JAVAHL_CHECK_TARGET) 2>&1) | \
+ env MAKEFLAGS= make $(JAVAHL_CHECK_TARGET) 2>&1) | \
tee $(svn_builddir)/tests.log.bindings.javahl; \
fi