subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From julianf...@apache.org
Subject svn commit: r1829257 [11/11] - in /subversion/branches/shelve-checkpoint: ./ build/ build/ac-macros/ subversion/bindings/javahl/native/ subversion/bindings/javahl/native/jniwrapper/ subversion/bindings/javahl/src/org/apache/subversion/javahl/ subversio...
Date Mon, 16 Apr 2018 12:21:14 GMT
Modified: subversion/branches/shelve-checkpoint/tools/dev/unix-build/Makefile.svn
URL: http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/tools/dev/unix-build/Makefile.svn?rev=1829257&r1=1829256&r2=1829257&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/tools/dev/unix-build/Makefile.svn (original)
+++ subversion/branches/shelve-checkpoint/tools/dev/unix-build/Makefile.svn Mon Apr 16 12:21:02
2018
@@ -171,7 +171,7 @@ FETCH_CMD	= wget -c
 SUBVERSION_REPOS_URL = https://svn.apache.org/repos/asf/subversion
 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)
+APR_ICONV_URL	= https://archive.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)
@@ -240,6 +240,10 @@ endif
 # We need this to make sure some targets below pick up the right libraries
 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
 
+# We need this to make sure some targets below pick up the right pkg-config files
+PKG_CONFIG_PATH=$(PREFIX)/apr/lib/pkgconfig:$(PREFIX)/neon/lib/pkgconfig:$(PREFIX)/serf/lib/pkgconfig:$(PREFIX)/sqlite/lib/pkgconfig:$(PREFIX)/ruby/lib/pkgconfig:$(PREFIX)/python/lib/pkgconfig:$(PREFIX)/lz4/lib/pkgconfig
+
+
 #######################################################################
 # Main targets.
 #######################################################################
@@ -390,6 +394,7 @@ $(APR_OBJDIR)/.configured: $(APR_OBJDIR)
 	cd $(APR_SRCDIR) && ./buildconf
 	cd $(APR_OBJDIR) \
 		&& env CFLAGS="-O0 -g $(PROFILE_CFLAGS)" GREP="`which grep`" \
+		PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
 		$(APR_SRCDIR)/configure \
 		--prefix=$(PREFIX)/apr \
 		--enable-maintainer-mode \
@@ -439,6 +444,7 @@ $(APR_ICONV_OBJDIR)/.configured: $(APR_I
 	cd $(APR_ICONV_OBJDIR) \
 		&& env CFLAGS="-g $(PROFILE_CFLAGS) -DAPR_POOL_DEBUG" \
 		GREP="`which grep`" \
+		PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
 		$(APR_ICONV_SRCDIR)/configure \
 		--prefix=$(PREFIX)/apr \
 		--with-apr=$(PREFIX)/apr
@@ -522,6 +528,7 @@ $(GNU_ICONV_OBJDIR)/.configured: $(GNU_I
 		${MAKE} -f Makefile.devel lib/aliases.h
 	cd $(GNU_ICONV_OBJDIR) \
 		&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`"\
+		PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
 		$(GNU_ICONV_SRCDIR)/configure \
 		--prefix=$(PREFIX)/iconv \
 		--enable-extra-encodings
@@ -592,6 +599,7 @@ $(APR_UTIL_OBJDIR)/.configured: $(APR_UT
 	cd $(APR_UTIL_SRCDIR) && ./buildconf --with-apr=$(APR_SRCDIR)
 	cd $(APR_UTIL_OBJDIR) \
 		&& env LD_LIBRARY_PATH=$(PREFIX)/bdb/lib \
+			PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
 			CFLAGS="-O0 -g $(PROFILE_CFLAGS) -DAPR_POOL_DEBUG" \
 			GREP="`which grep`" \
 			$(APR_UTIL_SRCDIR)/configure \
@@ -728,6 +736,7 @@ $(HTTPD_OBJDIR)/.configured: $(HTTPD_OBJ
 	cd $(HTTPD_OBJDIR) \
 		&& env CFLAGS="-g $(PROFILE_CFLAGS) -DAPR_POOL_DEBUG" \
 		GREP="`which grep`" \
+		PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
 		$(HTTPD_SRCDIR)/configure \
 		--prefix=$(PREFIX)/httpd \
 		--enable-maintainer-mode \
@@ -812,6 +821,7 @@ $(NEON_OBJDIR)/.configured: $(NEON_OBJDI
 	fi
 	cd $(NEON_OBJDIR) \
 		&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`" \
+		PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
 		$(NEON_SRCDIR)/configure \
 		PATH=$(NEON_OBJDIR):$$PATH \
 		--prefix=$(PREFIX)/neon \
@@ -874,7 +884,8 @@ $(SERF_OBJDIR)/.compiled: $(SERF_OBJDIR)
 			CFLAGS="-O0 -g $(PROFILE_CFLAGS) -DAPR_POOL_DEBUG" \
 			APR=$(PREFIX)/apr \
 			APU=$(PREFIX)/apr \
-			PREFIX=$(PREFIX)/serf
+			PREFIX=$(PREFIX)/serf \
+			PKG_CONFIG_PATH=$(PKG_CONFIG_PATH)
 	touch $@
 
 # install serf
@@ -966,6 +977,7 @@ endif
 $(SQLITE_OBJDIR)/.configured: $(SQLITE_OBJDIR)/.retrieved
 	cd $(SQLITE_OBJDIR) \
 		&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`" \
+		PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
 		$(SQLITE_SRCDIR)/configure \
 		--prefix=$(PREFIX)/sqlite \
 		$(THREADSAFE_FLAG)
@@ -1036,6 +1048,7 @@ $(CYRUS_SASL_OBJDIR)/.configured: $(CYRU
 		&& env CFLAGS="-g $(PROFILE_CFLAGS)" \
 		CPPFLAGS="-I/usr/include/kerberosV" \
 		GREP="`which grep`" \
+		PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
 		$(CYRUS_SASL_SRCDIR)/configure \
 		--with-dbpath=$(PREFIX)/cyrus-sasl/etc/sasldb2 \
 		--with-plugindir=$(PREFIX)/cyrus-sasl/lib/sasl2 \
@@ -1087,6 +1100,7 @@ $(LIBMAGIC_OBJDIR)/.retrieved: $(DISTDIR
 $(LIBMAGIC_OBJDIR)/.configured: $(LIBMAGIC_OBJDIR)/.retrieved
 	cd $(LIBMAGIC_OBJDIR) \
 		&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`"\
+		PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
 		$(LIBMAGIC_SRCDIR)/configure \
 		--enable-fsect-man5 \
 		--prefix=$(PREFIX)/libmagic
@@ -1121,13 +1135,54 @@ ruby-clean:
 $(DISTDIR)/$(RUBY_DIST):
 	cd $(DISTDIR) && $(FETCH_CMD) $(RUBY_URL)
 
+$(RUBY_OBJDIR)/openssl_missing.patch:
+	mkdir -p $(dir $@)
+	echo > $@.tmp 'Index: ext/openssl/openssl_missing.h'
+	echo >> $@.tmp '--- ext/openssl/openssl_missing.h.orig'
+	echo >> $@.tmp '+++ ext/openssl/openssl_missing.h'
+	echo >> $@.tmp '@@ -119,6 +119,9 @@ void ossl_HMAC_CTX_free(HMAC_CTX *);'
+	echo >> $@.tmp ' #if !defined(HAVE_X509_STORE_SET_EX_DATA)'
+	echo >> $@.tmp ' #  define X509_STORE_set_ex_data(x, idx, data) \'
+	echo >> $@.tmp ' 	CRYPTO_set_ex_data(&(x)->ex_data, (idx), (data))'
+	echo >> $@.tmp '+#endif'
+	echo >> $@.tmp '+'
+	echo >> $@.tmp '+#if !defined(HAVE_X509_STORE_GET_EX_NEW_INDEX)'
+	echo >> $@.tmp ' #  define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \'
+	echo >> $@.tmp ' 	CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, (l), (p), \'
+	echo >> $@.tmp ' 				(newf), (dupf), (freef))'
+	echo >> $@.tmp '@@ -192,6 +195,7 @@ void ossl_X509_REQ_get0_signature(const X509_REQ
*, co'
+	echo >> $@.tmp ' #endif'
+	echo >> $@.tmp ' '
+	echo >> $@.tmp ' #if !defined(HAVE_OPAQUE_OPENSSL)'
+	echo >> $@.tmp '+#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER
< 0x2070000fL'
+	echo >> $@.tmp ' #define IMPL_PKEY_GETTER(_type, _name) \'
+	echo >> $@.tmp ' static inline _type *EVP_PKEY_get0_##_type(EVP_PKEY *pkey) { \'
+	echo >> $@.tmp ' 	return pkey->pkey._name; }'
+	echo >> $@.tmp '@@ -243,6 +247,7 @@ IMPL_PKEY_GETTER(EC_KEY, ec)'
+	echo >> $@.tmp ' #undef IMPL_PKEY_GETTER'
+	echo >> $@.tmp ' #undef IMPL_KEY_ACCESSOR2'
+	echo >> $@.tmp ' #undef IMPL_KEY_ACCESSOR3'
+	echo >> $@.tmp '+#endif'
+	echo >> $@.tmp ' #endif /* HAVE_OPAQUE_OPENSSL */'
+	echo >> $@.tmp ' '
+	echo >> $@.tmp ' #if defined(HAVE_AUTHENTICATED_ENCRYPTION) && !defined(EVP_CTRL_AEAD_GET_TAG)'
+	mv -f $@.tmp $@
+
+ifeq ($(UNAME),OpenBSD)
+RUBY_SSL_EX_NEW_DATA_PATCH = sed -i -e '/^have_func("X509_STORE_set_ex_data")$$/ { p; s/^.*$$/\have_func("X509_STORE_get_ex_new_index")/;
}'
+else
+RUBY_SSL_EX_NEW_DATA_PATCH = true
+endif
+
 # retrieve ruby
 #
-$(RUBY_OBJDIR)/.retrieved: $(DISTDIR)/$(RUBY_DIST)
+$(RUBY_OBJDIR)/.retrieved: $(DISTDIR)/$(RUBY_DIST) $(RUBY_OBJDIR)/openssl_missing.patch
 	$(call do_check_sha256,$(RUBY_DIST))
 	[ -d $(RUBY_OBJDIR) ] || mkdir -p $(RUBY_OBJDIR)
 	tar -C $(SRCDIR) -zxf $(DISTDIR)/$(RUBY_DIST)
 	-which ghead && sed -i -e "s/head -c/ghead -c/" $(RUBY_SRCDIR)/configure
+	$(RUBY_SSL_EX_NEW_DATA_PATCH) $(RUBY_SRCDIR)/ext/openssl/extconf.rb
+	cd $(RUBY_SRCDIR) && patch -p0 < $(RUBY_OBJDIR)/openssl_missing.patch
 	touch $@
 
 ifeq ($(THREADING),yes)
@@ -1140,6 +1195,7 @@ endif
 $(RUBY_OBJDIR)/.configured: $(RUBY_OBJDIR)/.retrieved
 	cd $(RUBY_OBJDIR) \
 		&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`"\
+		PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
 		$(RUBY_SRCDIR)/configure \
 		--prefix=$(PREFIX)/ruby \
 		--enable-shared \
@@ -1250,6 +1306,7 @@ $(PYTHON_OBJDIR)/.configured: $(PYTHON_O
 		CPPFLAGS="-I$(PREFIX)/bz2/include" \
 		LDFLAGS="-Wl,-rpath=$(PREFIX)/python/lib -L$(PREFIX)/bz2/lib" \
 		LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$$LD_LIBRARY_PATH" \
+		PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
 		$(PYTHON_SRCDIR)/configure \
 		--prefix=$(PREFIX)/python \
 		--enable-shared \
@@ -1317,6 +1374,7 @@ $(GETTEXT_OBJDIR)/.configured: $(GETTEXT
 	cd $(GETTEXT_SRCDIR) \
 		&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`"\
 		LDFLAGS="-L$(PREFIX)/iconv/lib" \
+		PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
 		$(GETTEXT_SRCDIR)/configure \
 		--prefix=$(PREFIX)/gettext \
 		--with-libiconv-prefix=$(PREFIX)/iconv \
@@ -1503,6 +1561,17 @@ SVN_WITH_HTTPD=--with-apxs="$(PREFIX)/ht
 SVN_WITH_SASL=--with-sasl="$(PREFIX)/cyrus-sasl"
 endif
 
+# On OpenBSD, MExtUtils -e ldopts outputs -L/usr/local/lib, which can
+# cause us to link Perl bindings against the wrong set of SVN libraries.
+# As a workaround, we patch the configure script after it has been generated.
+ifeq ($(UNAME),OpenBSD)
+SWIG_PL_INCLUDES_HACK= sed -i 's^\($$PERL -MExtUtils::Embed -e ccopts\)^\1 | sed -e s@-I/usr/local/include@@^'
$(svn_builddir)/configure
+SWIG_PL_LINK_HACK= sed -i 's^\($$PERL -MExtUtils::Embed -e ldopts\)^\1 | sed -e s@-L/usr/local/lib@@^'
$(svn_builddir)/configure
+else
+SWIG_PL_INCLUDES_HACK=true
+SWIG_PL_LINK_HACK=true
+endif
+
 $(SVN_OBJDIR)/.configured: $(SVN_OBJDIR)/.retrieved $(DISTDIR)/$(JUNIT_DIST) \
 	$(APR_OBJDIR)/.installed $(APR_UTIL_OBJDIR)/.installed \
 	$(BDB_OBJDIR)/.installed $(SQLITE_OBJDIR)/.installed \
@@ -1511,11 +1580,14 @@ $(SVN_OBJDIR)/.configured: $(SVN_OBJDIR)
 	$(SERF_OBJDIR)/.installed $(SERF_OLD_OBJDIR)/.installed \
 	$(RUBY_OBJDIR)/.installed $(PYTHON_OBJDIR)/.installed
 	cd $(SVN_SRCDIR) && ./autogen.sh
+	$(SWIG_PL_INCLUDES_HACK)
+	$(SWIG_PL_LINK_HACK)
 	cd $(svn_builddir) && \
 		env LDFLAGS="-L$(PREFIX)/neon/lib -L$(PREFIX)/apr/lib $(SERF_LDFLAG) $(LZ4_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" \
+			PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
 			GREP="`which grep`" \
 			PATH=$(PREFIX)/ruby/bin:$(PREFIX)/python/bin:$(PREFIX)/gettext/bin:$$PATH \
 			$(SVN_SRCDIR)/configure \
@@ -1563,6 +1635,17 @@ $(SVN_OBJDIR)/.pre-generated-swig-cleane
 		&& env MAKEFLAGS= make clean-swig
 	touch $@
 
+
+# On OpenBSD, Perl's LDDLFLAGS include -L/usr/local/lib, which can cause
+# us to link Perl bindings against the wrong set of SVN libraries.
+# We manually fix up the generated Makefile.PL to work around this issue.
+ifeq ($(UNAME),OpenBSD)
+MAKEFILE_PL_LDDLFLAGS_HACK= sed -i 's@^WriteMakefile@$$config{LDDLFLAGS} =~ s+-L/usr/local/lib++;
WriteMakefile@' \
+			$(SVN_SRCDIR)/subversion/bindings/swig/perl/native/Makefile.PL
+else
+MAKEFILE_PL_LDDLFLAGS_HACK=true
+endif
+
 $(SVN_OBJDIR)/.bindings-compiled: $(SVN_OBJDIR)/.installed $(SVN_OBJDIR)/.pre-generated-swig-cleaned
 	cd $(svn_builddir) \
 		&& env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
@@ -1571,13 +1654,15 @@ $(SVN_OBJDIR)/.bindings-compiled: $(SVN_
 		env PATH=$(PREFIX)/ruby/bin:$$PATH \
 		LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) env MAKEFLAGS= make -j${MAKE_JOBS} swig-rb
 	if [ $(ENABLE_PERL_BINDINGS) = yes ]; then \
+		cd $(svn_builddir) && make $(SVN_SRCDIR)/subversion/bindings/swig/perl/native/Makefile.PL;
\
+		$(MAKEFILE_PL_LDDLFLAGS_HACK); \
 		cd $(svn_builddir) \
 			&& env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
 				env MAKEFLAGS= make -j${MAKE_JOBS} swig-pl; \
 	fi
 	if [ $(ENABLE_JAVA_BINDINGS) = yes ]; then \
 		cd $(svn_builddir) \
-			&& env MAKEFLAGS= make -j${MAKE_JOBS} javahl; \
+			&& env MAKEFLAGS= make javahl; \
 	fi
 	touch $@
 
@@ -1587,13 +1672,15 @@ $(SVN_OBJDIR)/.bindings-installed: $(SVN
 		env MAKEFLAGS= make install-swig-py
 	cd $(svn_builddir) && \
 		env PATH=$(PREFIX)/ruby/bin:$$PATH \
-		LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) env MAKEFLAGS= make install-swig-rb
+		LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) MAKEFLAGS= make install-swig-rb
 	if [ $(ENABLE_PERL_BINDINGS) = yes ]; then \
 		cd $(svn_builddir) \
-	    && env MAKEFLAGS= make install-swig-pl-lib; \
-	  cd subversion/bindings/swig/perl/native \
-		  && perl Makefile.PL PREFIX="$(SVN_PREFIX)" \
-		  && env MAKEFLAGS= make install; \
+			&& env MAKEFLAGS= LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
+				make install-swig-pl-lib; \
+		cd subversion/bindings/swig/perl/native \
+			&& perl Makefile.PL PREFIX="$(SVN_PREFIX)" \
+			&& env MAKEFLAGS= LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
+				make install; \
 	fi
 	if [ $(ENABLE_JAVA_BINDINGS) = yes ]; then \
 		cd $(svn_builddir) \
@@ -1924,6 +2011,7 @@ endif
 
 HTTPD_CMD = env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(LIB_PTHREAD_HACK) \
 		$(PREFIX)/httpd/bin/apachectl
+HTTPD_LOG_ROTATE = mv $(PREFIX)/httpd/logs/error_log $(PREFIX)/httpd/logs/error_log.old
 HTTPD_START_CMD = $(HTTPD_CMD) -f $(HTTPD_CHECK_CONF) -k start
 HTTPD_START_CMD_PROXY = $(HTTPD_CMD) -f $(HTTPD_PROXY_CONF)
 HTTPD_START_CMD_DEBUG = $(HTTPD_START_CMD) -X
@@ -1942,6 +2030,7 @@ SVNSERVE_STOP_CMD = kill `cat $(PWD)/svn
 			rm -f $(PWD)/svnserve-$(WC).pid
 
 start-httpd: $(HTTPD_CHECK_CONF)
+	-$(HTTPD_LOG_ROTATE)
 	$(HTTPD_START_CMD)
 	@echo "To run tests over http, run:"
 	@echo "    make check BASE_URL=http://localhost:$(HTTPD_CHECK_PORT)"
@@ -2064,7 +2153,7 @@ svn-check-javahl:
 	-if [ $(ENABLE_JAVA_BINDINGS) = yes ]; then \
 		(cd $(svn_builddir) && \
 			env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
-			env MAKEFLAGS= make $(JAVAHL_CHECK_TARGET) 2>&1) | \
+			MAKEFLAGS= make $(JAVAHL_CHECK_TARGET) 2>&1) | \
 				tee $(svn_builddir)/tests.log.bindings.javahl; \
 	fi
 

Modified: subversion/branches/shelve-checkpoint/tools/dev/wc-ng/svn-wc-db-tester.c
URL: http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/tools/dev/wc-ng/svn-wc-db-tester.c?rev=1829257&r1=1829256&r2=1829257&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/tools/dev/wc-ng/svn-wc-db-tester.c (original)
+++ subversion/branches/shelve-checkpoint/tools/dev/wc-ng/svn-wc-db-tester.c Mon Apr 16 12:21:02
2018
@@ -44,7 +44,7 @@
 static svn_error_t *
 version(apr_pool_t *pool)
 {
-  return svn_opt_print_help4(NULL, "svn-wc-db-tester", TRUE, FALSE, FALSE,
+  return svn_opt_print_help5(NULL, "svn-wc-db-tester", TRUE, FALSE, FALSE,
                              NULL, NULL, NULL, NULL, NULL, NULL, pool);
 }
 

Modified: subversion/branches/shelve-checkpoint/tools/dist/README.backport
URL: http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/tools/dist/README.backport?rev=1829257&r1=1829256&r2=1829257&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/tools/dist/README.backport (original)
+++ subversion/branches/shelve-checkpoint/tools/dist/README.backport Mon Apr 16 12:21:02 2018
@@ -7,20 +7,23 @@ F1. Auto-merge bot; the nightly svn-role
 
 F2. Conflicts detector bot; the svn-backport-conflicts-1.9.x buildbot task.
 
-And two interactive functions, described later.
+And two interactive functions¹:
+
+F3. Reviewing STATUS nominations and casting votes.
+
+F4. Adding new entries to STATUS.
 
 
 
 The scripts are:
 
 backport.pl:
-    oldest script, implements both [F1] and [F2], plus two interactive
-    functions¹.  As of March 2015, used in production by svn-role and
-    by svn-backport-conflicts-1.9.x.
+    oldest script, implements [F1], [F2], and [F3].  As of Feb 2018, used in
+    production by svn-role (running on svn-qavm3) and by svn-backport-conflicts-1.9.x
+    (a buildbot job).
 
 nominate.pl:
-    Symlink to backport.pl.  Implements one of the two interactive features.
-    Not used by bots.
+    Symlink to backport.pl.  Implements [F4].  (The script inspects its argv[0].)
 
 backport_tests_pl.py:
     Regression tests for backport.pl.
@@ -39,9 +42,11 @@ backport/*.py:
 
 detect-conflicting-backports.py:
     Implementation of [F2] using backport.py.
+    Not currently used in production.
 
 merge-approved-backports.py:
     Implementation of [F1] using backport.py.
+    Not currently used in production.
 
 backport_tests_py.py:
     Regression tests for detect-conflicting-backports.py and merge-approved-backports.py
@@ -52,13 +57,28 @@ backport_tests.py:
     svntest framework (../../subversion/tests/cmdline/svntest/), which is
     written in Python 2.
 
-backport*.dump:
+    Note that backport_tests.py and backport/*.py are written in different
+    languages, so they never 'import' each other.  backport_tests.py invokes
+    detect-conflicting-backports.py, merge-approved-backports.py, and
+    backport.pl in the same manner: through subprocess.check_call().
+
+backport_tests_data/backport*.dump:
     Expected output files for backport_tests.py; see the BackportTest
-    decorator.
+    decorator in backport_tests.py.
 
 
 All scripts can be run with '--help' to display their usage messages.
 
+backport.pl is considered deprecated since backport.py is better architected
+and is written in a language that many more active developers are comfortable
+with.  The unattended jobs [F1] and [F2] should be converted to using
+backport.py whenever someone gets around to do the legwork.  The interactive
+versions [F3] and [F4] are still in active use, however, so the physical
+backport.pl script should be kept around until Python versions of these are
+available.
+
+
+TODO: document that "Notes: ... --accept=foo ..." is parsed, see backport_tests.py #3.
 
 
 ¹ For backport.pl's interactive features, see:

Modified: subversion/branches/shelve-checkpoint/tools/dist/backport.pl
URL: http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/tools/dist/backport.pl?rev=1829257&r1=1829256&r2=1829257&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/tools/dist/backport.pl (original)
+++ subversion/branches/shelve-checkpoint/tools/dist/backport.pl Mon Apr 16 12:21:02 2018
@@ -9,11 +9,11 @@ use v5.10.0; # needed for $^V
 # experimental and "subject to change" in v5.18 (see perl5180delta).  Every
 # use of it now triggers a warning.
 #
-# As of Perl v5.24.1, the semantics of given/when provided by Perl are
+# As of Perl v5.26.1, the semantics of given/when provided by Perl are
 # compatible with those expected by the script, so disable the warning for
 # those Perls.  But don't try to disable the the warning category on Perls
 # that don't know that category, since that breaks compilation.
-no if (v5.17.0 le $^V and $^V le v5.24.1),
+no if (v5.17.0 le $^V and $^V le v5.26.1),
    warnings => 'experimental::smartmatch';
 
 # Licensed to the Apache Software Foundation (ASF) under one
@@ -791,7 +791,7 @@ sub vote {
 
     # Add to state votes that aren't '+0' or 'edit'
     $state->{$_->{digest}}++ for grep
-                                   +{ qw/-1 t -0 t +1 t/ }->{$_->{vote}},
+                                 ($_->{approval} or $_->{vote} =~ /^(-1|-0|[+]1)$/),
                                  @votesarray;
   }
 }
@@ -1279,7 +1279,7 @@ sub nominate_main {
   # Open the file in line-mode (not paragraph-mode).
   my @STATUS;
   tie @STATUS, "Tie::File", $STATUS, recsep => "\n";
-  my ($index) = grep { $STATUS[$_] =~ /^Veto/ } (0..$#STATUS);
+  my ($index) = grep { $STATUS[$_] =~ /^Veto|^Approved/ } (0..$#STATUS);
   die "Couldn't find where to add an entry" unless $index;
 
   # Add an empty line if needed.

Modified: subversion/branches/shelve-checkpoint/tools/dist/backport/status.py
URL: http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/tools/dist/backport/status.py?rev=1829257&r1=1829256&r2=1829257&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/tools/dist/backport/status.py (original)
+++ subversion/branches/shelve-checkpoint/tools/dist/backport/status.py Mon Apr 16 12:21:02
2018
@@ -194,10 +194,10 @@ class StatusFile:
         try:
           entry = StatusEntry(para_text, status_file=self)
           kind = Kind.nomination
-        except ParseException:
+        except ParseException as e:
           kind = Kind.unknown
-          logger.warning("Failed to parse entry {!r} in {!r}".format(
-                          para_text, status_fp))
+          logger.warning("Failed to parse entry {!r} in {!r}: {}".format(
+                          para_text, status_fp, e))
       else:
         kind = Kind.preamble
 
@@ -379,9 +379,11 @@ class StatusEntry:
       raise ParseException("Entry found with neither branch nor revisions")
 
     # Parse the logsummary.
-    while lines and not self._is_subheader(lines[0]):
+    while True:
       self.logsummary.append(lines[0])
       lines = lines[1:]
+      if (not lines) or self._is_subheader(lines[0]):
+        break
 
     # Parse votes.
     if "Votes:" in lines:

Modified: subversion/branches/shelve-checkpoint/tools/dist/backport_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/tools/dist/backport_tests.py?rev=1829257&r1=1829256&r2=1829257&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/tools/dist/backport_tests.py (original)
+++ subversion/branches/shelve-checkpoint/tools/dist/backport_tests.py Mon Apr 16 12:21:02
2018
@@ -660,6 +660,21 @@ def backport_unicode_entry(sbox):
   # Run it.
   run_backport(sbox)
 
+#----------------------------------------------------------------------
+@BackportTest('76cee987-25c9-4d6c-ad40-000000000013')
+def backport_logsummary_colon(sbox):
+  "a logsummary that looks like a header"
+
+  # r6: nominate r4
+  approved_entries = [
+    make_entry([4], logsummary="HTTPv2: Add comments."),
+  ]
+  sbox.simple_append(STATUS, serialize_STATUS(approved_entries))
+  sbox.simple_commit(message='Nominate r4')
+
+  # Run it.
+  run_backport(sbox)
+
 
 #----------------------------------------------------------------------
 
@@ -680,6 +695,7 @@ test_list = [ None,
               backport_otherproject_change,
               backport_STATUS_mods,
               backport_unicode_entry,
+              backport_logsummary_colon,
               # When adding a new test, include the test number in the last
               # 6 bytes of the UUID, in decimal.
              ]

Modified: subversion/branches/shelve-checkpoint/tools/dist/release.py
URL: http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/tools/dist/release.py?rev=1829257&r1=1829256&r2=1829257&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/tools/dist/release.py (original)
+++ subversion/branches/shelve-checkpoint/tools/dist/release.py Mon Apr 16 12:21:02 2018
@@ -71,16 +71,16 @@ tool_versions = {
             '954bd69b391edc12d6a4a51a2dd1476543da5c6bbf05a95b59dc0dd6fd4c2969'],
             'libtool'  : ['2.4.6',
             'e3bd4d5d3d025a36c21dd6af7ea818a2afcd4dfc1ea5a17b39d7854bcd0c06e3'],
-            'swig'     : ['3.0.10',
-            '2939aae39dec06095462f1b95ce1c958ac80d07b926e48871046d17c0094f44c'],
+            'swig'     : ['3.0.12',
+            '7cf9f447ae7ed1c51722efc45e7f14418d15d7a1e143ac9f09a668999f4fc94d'],
   },
   '1.10' : {
             'autoconf' : ['2.69',
             '954bd69b391edc12d6a4a51a2dd1476543da5c6bbf05a95b59dc0dd6fd4c2969'],
             'libtool'  : ['2.4.6',
             'e3bd4d5d3d025a36c21dd6af7ea818a2afcd4dfc1ea5a17b39d7854bcd0c06e3'],
-            'swig'     : ['3.0.10',
-            '2939aae39dec06095462f1b95ce1c958ac80d07b926e48871046d17c0094f44c'],
+            'swig'     : ['3.0.12',
+            '7cf9f447ae7ed1c51722efc45e7f14418d15d7a1e143ac9f09a668999f4fc94d'],
   },
   '1.9' : {
             'autoconf' : ['2.69',
@@ -102,7 +102,7 @@ tool_versions = {
 
 # The version that is our current recommended release
 # ### TODO: derive this from svn_version.h; see ../../build/getversion.py
-recommended_release = '1.9'
+recommended_release = '1.10'
 
 # Some constants
 repos = 'https://svn.apache.org/repos/asf/subversion'
@@ -737,8 +737,12 @@ def sign_candidates(args):
     def sign_file(filename):
         asc_file = open(filename + '.asc', 'a')
         logging.info("Signing %s" % filename)
-        proc = subprocess.check_call(['gpg', '-ba', '-o', '-', filename],
-                                     stdout=asc_file)
+        if args.userid:
+            proc = subprocess.check_call(['gpg', '-ba', '-u', args.userid,
+                                         '-o', '-', filename], stdout=asc_file)
+        else:
+            proc = subprocess.check_call(['gpg', '-ba', '-o', '-', filename],
+                                         stdout=asc_file)
         asc_file.close()
 
     target = get_target(args)
@@ -828,11 +832,14 @@ def create_tag(args):
                               (args.version.major, args.version.minor,
                                args.version.patch + 1))
 
+        HEAD = subprocess.check_output(['svn', 'info', '--show-item=revision',
+                                        '--', url]).strip()
+        HEAD = int(HEAD)
         def file_object_for(relpath):
             fd = tempfile.NamedTemporaryFile()
             url = branch + '/' + relpath
             fd.url = url
-            subprocess.check_call(['svn', 'cat', '%s@%d' % (url, args.revnum)],
+            subprocess.check_call(['svn', 'cat', '%s@%d' % (url, HEAD)],
                                   stdout=fd)
             return fd
 
@@ -846,7 +853,7 @@ def create_tag(args):
 
         svn_version_h.seek(0, os.SEEK_SET)
         STATUS.seek(0, os.SEEK_SET)
-        subprocess.check_call(['svnmucc', '-r', str(args.revnum),
+        subprocess.check_call(['svnmucc', '-r', str(HEAD),
                                '-m', 'Post-release housekeeping: '
                                      'bump the %s branch to %s.'
                                % (branch.split('/')[-1], str(new_version)),
@@ -956,6 +963,7 @@ def get_sha1info(args):
     target = get_target(args)
 
     sha1s = glob.glob(os.path.join(target, 'subversion*-%s*.sha1' % args.version))
+    sha1s.sort()
 
     class info(object):
         pass
@@ -1398,6 +1406,10 @@ def main():
     subparser.add_argument('--target',
                     help='''The full path to the directory containing
                             release artifacts.''')
+    subparser.add_argument('--userid',
+                    help='''The (optional) USER-ID specifying the key to be
+                            used for signing, such as '110B1C95' (Key-ID). If
+                            omitted, uses the default key.''')
 
     # Setup the parser for the post-candidates subcommand
     subparser = subparsers.add_parser('post-candidates',

Modified: subversion/branches/shelve-checkpoint/tools/dist/templates/download.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/tools/dist/templates/download.ezt?rev=1829257&r1=1829256&r2=1829257&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/tools/dist/templates/download.ezt (original)
+++ subversion/branches/shelve-checkpoint/tools/dist/templates/download.ezt Mon Apr 16 12:21:02
2018
@@ -11,7 +11,7 @@
   <td class="checksum">[fileinfo.sha1]</td>
   <!-- The sha512 line does not have a class="checksum" since the link needn't
        be rendered in monospace. -->
-  <td>[<a href="http://www.apache.org/dist/subversion/[fileinfo.filename].sha512">SHA-512</a>]</td>
-  <td>[<a href="http://www.apache.org/dist/subversion/[fileinfo.filename].asc">PGP</a>]</td>
+  <td>[<a href="https://www.apache.org/dist/subversion/[fileinfo.filename].sha512">SHA-512</a>]</td>
+  <td>[<a href="https://www.apache.org/dist/subversion/[fileinfo.filename].asc">PGP</a>]</td>
 </tr>[end]
 </table>

Modified: subversion/branches/shelve-checkpoint/tools/dist/templates/rc-news.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/tools/dist/templates/rc-news.ezt?rev=1829257&r1=1829256&r2=1829257&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/tools/dist/templates/rc-news.ezt (original)
+++ subversion/branches/shelve-checkpoint/tools/dist/templates/rc-news.ezt Mon Apr 16 12:21:02
2018
@@ -11,7 +11,7 @@
    <a href="">release
    announcement</a> for more information about this release, and the
    <a href="/docs/release-notes/[major-minor].html">release notes</a> and 
-   <a href="http://svn.apache.org/repos/asf/subversion/tags/[version]/CHANGES"> 
+   <a href="https://svn.apache.org/repos/asf/subversion/tags/[version]/CHANGES"> 
    change log</a> for information about what will eventually be
    in the [version_base] release.</p> 
  

Modified: subversion/branches/shelve-checkpoint/tools/dist/templates/rc-release-ann.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/tools/dist/templates/rc-release-ann.ezt?rev=1829257&r1=1829256&r2=1829257&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/tools/dist/templates/rc-release-ann.ezt (original)
+++ subversion/branches/shelve-checkpoint/tools/dist/templates/rc-release-ann.ezt Mon Apr
16 12:21:02 2018
@@ -5,7 +5,7 @@ Subject: [[]ANNOUNCE] Apache Subversion
 I'm happy to announce the release of Apache Subversion [version].
 Please choose the mirror closest to you by visiting:
 
-    http://subversion.apache.org/download.cgi#[anchor]
+    https://subversion.apache.org/download.cgi#[anchor]
 
 The SHA1 checksums are:
 
@@ -19,9 +19,9 @@ SHA-512 checksums are available at:
 
 PGP Signatures are available at:
 
-    http://www.apache.org/dist/subversion/subversion-[version].tar.bz2.asc
-    http://www.apache.org/dist/subversion/subversion-[version].tar.gz.asc
-    http://www.apache.org/dist/subversion/subversion-[version].zip.asc
+    https://www.apache.org/dist/subversion/subversion-[version].tar.bz2.asc
+    https://www.apache.org/dist/subversion/subversion-[version].tar.gz.asc
+    https://www.apache.org/dist/subversion/subversion-[version].zip.asc
 
 For this release, the following people have provided PGP signatures:
 
@@ -57,13 +57,18 @@ end users please.
 
 Release notes for the [major-minor].x release series may be found at:
 
-    http://subversion.apache.org/docs/release-notes/[major-minor].html
+    https://subversion.apache.org/docs/release-notes/[major-minor].html
 
 You can find the list of changes between [version] and earlier versions at:
 
-    http://svn.apache.org/repos/asf/subversion/tags/[version]/CHANGES
+    https://svn.apache.org/repos/asf/subversion/tags/[version]/CHANGES
 
 Questions, comments, and bug reports to users@subversion.apache.org.
 
 Thanks,
 - The Subversion Team
+
+--
+To unsubscribe, please see:
+
+    https://subversion.apache.org/mailing-lists.html#unsubscribing

Modified: subversion/branches/shelve-checkpoint/tools/dist/templates/stable-news.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/tools/dist/templates/stable-news.ezt?rev=1829257&r1=1829256&r2=1829257&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/tools/dist/templates/stable-news.ezt (original)
+++ subversion/branches/shelve-checkpoint/tools/dist/templates/stable-news.ezt Mon Apr 16
12:21:02 2018
@@ -12,8 +12,8 @@
 [end]   Please see the
    <a href=""
    >release announcement</a> and the
-   <a href="http://svn.apache.org/repos/asf/subversion/tags/[version]/CHANGES"
-   >change log</a> for more information about this release.</p> 
+   <a href="/docs/release-notes/[major-minor]"
+   >release notes</a> for more information about this release.</p> 
  
 <p>To get this release from the nearest mirror, please visit our
    <a href="/download.cgi#[anchor]">download page</a>.</p> 

Modified: subversion/branches/shelve-checkpoint/tools/dist/templates/stable-release-ann.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/tools/dist/templates/stable-release-ann.ezt?rev=1829257&r1=1829256&r2=1829257&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/tools/dist/templates/stable-release-ann.ezt (original)
+++ subversion/branches/shelve-checkpoint/tools/dist/templates/stable-release-ann.ezt Mon
Apr 16 12:21:02 2018
@@ -7,7 +7,7 @@ To: announce@subversion.apache.org, user
 I'm happy to announce the release of Apache Subversion [version].
 Please choose the mirror closest to you by visiting:
 
-    http://subversion.apache.org/download.cgi#[anchor]
+    https://subversion.apache.org/download.cgi#[anchor]
 [if-any dot-zero]
 This is a stable feature release of the Apache Subversion open source
 version control system.
@@ -30,22 +30,27 @@ SHA-512 checksums are available at:
 
 PGP Signatures are available at:
 
-    http://www.apache.org/dist/subversion/subversion-[version].tar.bz2.asc
-    http://www.apache.org/dist/subversion/subversion-[version].tar.gz.asc
-    http://www.apache.org/dist/subversion/subversion-[version].zip.asc
+    https://www.apache.org/dist/subversion/subversion-[version].tar.bz2.asc
+    https://www.apache.org/dist/subversion/subversion-[version].tar.gz.asc
+    https://www.apache.org/dist/subversion/subversion-[version].zip.asc
 
 For this release, the following people have provided PGP signatures:
 
 [siginfo]
 Release notes for the [major-minor].x release series may be found at:
 
-    http://subversion.apache.org/docs/release-notes/[major-minor].html
+    https://subversion.apache.org/docs/release-notes/[major-minor].html
 
 You can find the list of changes between [version] and earlier versions at:
 
-    http://svn.apache.org/repos/asf/subversion/tags/[version]/CHANGES
+    https://svn.apache.org/repos/asf/subversion/tags/[version]/CHANGES
 
 Questions, comments, and bug reports to users@subversion.apache.org.
 
 Thanks,
 - The Subversion Team
+
+--
+To unsubscribe, please see:
+
+    https://subversion.apache.org/mailing-lists.html#unsubscribing

Modified: subversion/branches/shelve-checkpoint/tools/hook-scripts/mailer/mailer.py
URL: http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/tools/hook-scripts/mailer/mailer.py?rev=1829257&r1=1829256&r2=1829257&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/tools/hook-scripts/mailer/mailer.py (original)
+++ subversion/branches/shelve-checkpoint/tools/hook-scripts/mailer/mailer.py Mon Apr 16 12:21:02
2018
@@ -71,16 +71,10 @@ _MIN_SVN_VERSION = [1, 5, 0]
 
 # Import the Subversion Python bindings, making sure they meet our
 # minimum version requirements.
-try:
-  import svn.fs
-  import svn.delta
-  import svn.repos
-  import svn.core
-except ImportError:
-  sys.stderr.write(
-    "You need version %s or better of the Subversion Python bindings.\n" \
-    % ".".join([str(x) for x in _MIN_SVN_VERSION]))
-  sys.exit(1)
+import svn.fs
+import svn.delta
+import svn.repos
+import svn.core
 if _MIN_SVN_VERSION > [svn.core.SVN_VER_MAJOR,
                        svn.core.SVN_VER_MINOR,
                        svn.core.SVN_VER_PATCH]:

Modified: subversion/branches/shelve-checkpoint/tools/server-side/svnauthz.c
URL: http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/tools/server-side/svnauthz.c?rev=1829257&r1=1829256&r2=1829257&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/tools/server-side/svnauthz.c (original)
+++ subversion/branches/shelve-checkpoint/tools/server-side/svnauthz.c Mon Apr 16 12:21:02
2018
@@ -110,29 +110,34 @@ static svn_opt_subcommand_t
 /* Array of available subcommands.
  * The entire list must be terminated with an entry of nulls.
  */
-static const svn_opt_subcommand_desc2_t cmd_table[] =
+static const svn_opt_subcommand_desc3_t cmd_table[] =
 {
-  {"help", subcommand_help, {"?", "h"},
-   ("usage: svnauthz help [SUBCOMMAND...]\n\n"
-    "Describe the usage of this program or its subcommands.\n"),
+  {"help", subcommand_help, {"?", "h"}, {(
+    "usage: svnauthz help [SUBCOMMAND...]\n"
+    "\n"
+    "Describe the usage of this program or its subcommands.\n"
+    )},
    {0} },
-  {"validate", subcommand_validate, {0} /* no aliases */,
-   ("Checks the syntax of an authz file.\n"
+  {"validate", subcommand_validate, {0} /* no aliases */, {(
+    "Checks the syntax of an authz file.\n"
     "usage: 1. svnauthz validate TARGET\n"
-    "       2. svnauthz validate --transaction TXN REPOS_PATH FILE_PATH\n\n"
+    "       2. svnauthz validate --transaction TXN REPOS_PATH FILE_PATH\n"
+    "\n"
     "  1. Loads and validates the syntax of the authz file at TARGET.\n"
     "     TARGET can be a path to a file or an absolute file:// URL to an authz\n"
-    "     file in a repository, but cannot be a repository relative URL (^/).\n\n"
+    "     file in a repository, but cannot be a repository relative URL (^/).\n"
+    "\n"
     "  2. Loads and validates the syntax of the authz file at FILE_PATH in the\n"
-    "     transaction TXN in the repository at REPOS_PATH.\n\n"
+    "     transaction TXN in the repository at REPOS_PATH.\n"
+    "\n"
     "Returns:\n"
     "    0   when syntax is OK.\n"
     "    1   when syntax is invalid.\n"
     "    2   operational error\n"
-    ),
+    )},
    {'t'} },
-  {"accessof", subcommand_accessof, {0} /* no aliases */,
-   ("Print or test the permissions set by an authz file.\n"
+  {"accessof", subcommand_accessof, {0} /* no aliases */, {(
+    "Print or test the permissions set by an authz file.\n"
     "usage: 1. svnauthz accessof TARGET\n"
     "       2. svnauthz accessof -t TXN REPOS_PATH FILE_PATH\n"
     "\n"
@@ -159,10 +164,10 @@ static const svn_opt_subcommand_desc2_t
     "    1   when syntax is invalid.\n"
     "    2   operational error\n"
     "    3   when '--is' argument doesn't match\n"
-    ),
+    )},
    {'t', svnauthz__username, svnauthz__path, svnauthz__repos, svnauthz__is,
     svnauthz__groups_file, 'R'} },
-  { NULL, NULL, {0}, NULL, {0} }
+  { NULL, NULL, {0}, {NULL}, {0} }
 };
 
 static svn_error_t *
@@ -171,11 +176,14 @@ subcommand_help(apr_getopt_t *os, void *
   struct svnauthz_opt_state *opt_state = baton;
   const char *header =
     ("general usage: svnauthz SUBCOMMAND TARGET [ARGS & OPTIONS ...]\n"
-     "               " SVNAUTHZ_COMPAT_NAME " TARGET\n\n"
+     "               " SVNAUTHZ_COMPAT_NAME " TARGET\n"
+    "\n"
      "If the command name starts with '" SVNAUTHZ_COMPAT_NAME "', runs in\n"
-     "pre-1.8 compatibility mode: run the 'validate' subcommand on TARGET.\n\n"
+     "pre-1.8 compatibility mode: run the 'validate' subcommand on TARGET.\n"
+    "\n"
      "Type 'svnauthz help <subcommand>' for help on a specific subcommand.\n"
-     "Type 'svnauthz --version' to see the program version.\n\n"
+     "Type 'svnauthz --version' to see the program version.\n"
+    "\n"
      "Available subcommands:\n");
 
   const char *fs_desc_start
@@ -186,7 +194,7 @@ subcommand_help(apr_getopt_t *os, void *
   version_footer = svn_stringbuf_create(fs_desc_start, pool);
   SVN_ERR(svn_fs_print_modules(version_footer, pool));
 
-  SVN_ERR(svn_opt_print_help4(os, "svnauthz",
+  SVN_ERR(svn_opt_print_help5(os, "svnauthz",
                               opt_state ? opt_state->version : FALSE,
                               FALSE, /* quiet */
                               FALSE, /* verbose */
@@ -459,7 +467,7 @@ sub_main(int *exit_code, int argc, const
 {
   svn_error_t *err;
 
-  const svn_opt_subcommand_desc2_t *subcommand = NULL;
+  const svn_opt_subcommand_desc3_t *subcommand = NULL;
   struct svnauthz_opt_state opt_state = { 0 };
   apr_getopt_t *os;
   apr_array_header_t *received_opts;
@@ -545,9 +553,9 @@ sub_main(int *exit_code, int argc, const
     {
       /* Pre 1.8 compatibility mode. */
       if (argc == 1) /* No path argument */
-        subcommand = svn_opt_get_canonical_subcommand2(cmd_table, "help");
+        subcommand = svn_opt_get_canonical_subcommand3(cmd_table, "help");
       else
-        subcommand = svn_opt_get_canonical_subcommand2(cmd_table, "validate");
+        subcommand = svn_opt_get_canonical_subcommand3(cmd_table, "validate");
     }
 
   /* If the user asked for help, then the rest of the arguments are
@@ -555,7 +563,7 @@ sub_main(int *exit_code, int argc, const
      just typos/mistakes.  Whatever the case, the subcommand to
      actually run is subcommand_help(). */
   if (opt_state.help)
-    subcommand = svn_opt_get_canonical_subcommand2(cmd_table, "help");
+    subcommand = svn_opt_get_canonical_subcommand3(cmd_table, "help");
 
   if (subcommand == NULL)
     {
@@ -564,8 +572,8 @@ sub_main(int *exit_code, int argc, const
           if (opt_state.version)
             {
               /* Use the "help" subcommand to handle the "--version" option. */
-              static const svn_opt_subcommand_desc2_t pseudo_cmd =
-                { "--version", subcommand_help, {0}, "",
+              static const svn_opt_subcommand_desc3_t pseudo_cmd =
+                { "--version", subcommand_help, {0}, {""},
                   {svnauthz__version /* must accept its own option */ } };
 
               subcommand = &pseudo_cmd;
@@ -585,7 +593,7 @@ sub_main(int *exit_code, int argc, const
 
           SVN_ERR(svn_utf_cstring_to_utf8(&first_arg, os->argv[os->ind++],
                                           pool));
-          subcommand = svn_opt_get_canonical_subcommand2(cmd_table, first_arg);
+          subcommand = svn_opt_get_canonical_subcommand3(cmd_table, first_arg);
           if (subcommand == NULL)
             {
               os->ind++;
@@ -658,11 +666,11 @@ sub_main(int *exit_code, int argc, const
       if (opt_id == 'h' || opt_id == '?')
         continue;
 
-      if (! svn_opt_subcommand_takes_option3(subcommand, opt_id, NULL))
+      if (! svn_opt_subcommand_takes_option4(subcommand, opt_id, NULL))
         {
           const char *optstr;
           const apr_getopt_option_t *badopt =
-            svn_opt_get_option_from_code2(opt_id, options_table, subcommand,
+            svn_opt_get_option_from_code3(opt_id, options_table, subcommand,
                                           pool);
           svn_opt_format_option(&optstr, badopt, FALSE, pool);
           if (subcommand->name[0] == '-')



Mime
View raw message