Author: gstein Date: Thu Dec 14 07:42:34 2023 New Revision: 1914650 URL: http://svn.apache.org/viewvc?rev=1914650&view=rev Log: Add a second test for the mailer.py script, using revisions from Apache Subversion itself, rather than mocked up revisions.
* subversion/tools/hook-scripts/mailer/tests: (svn:ignore): ignore some artifacts from the t1 and t2 tests * subversion/tools/hook-scripts/mailer/tests/mailer-t2.sh: (..): new. fetch a set of dumpfiles for various revisions-of-interest from the primary repository. Use these to construct some local repositories. Run the mailer script on the revisions, and compare the result against the reference/expected result. * subversion/tools/hook-scripts/mailer/tests/t2-reference: (..): new. expected mailer output for each revision-of-interest Added: subversion/trunk/tools/hook-scripts/mailer/tests/mailer-t2.sh (with props) subversion/trunk/tools/hook-scripts/mailer/tests/t2-reference/ subversion/trunk/tools/hook-scripts/mailer/tests/t2-reference/output.1849322 subversion/trunk/tools/hook-scripts/mailer/tests/t2-reference/output.1884610 subversion/trunk/tools/hook-scripts/mailer/tests/t2-reference/output.1902575 subversion/trunk/tools/hook-scripts/mailer/tests/t2-reference/output.1912632 Modified: subversion/trunk/tools/hook-scripts/mailer/tests/ (props changed) Propchange: subversion/trunk/tools/hook-scripts/mailer/tests/ ------------------------------------------------------------------------------ --- svn:ignore (added) +++ svn:ignore Thu Dec 14 07:42:34 2023 @@ -0,0 +1,3 @@ +mailer-t1.current +mailer-init.* +t2-root Added: subversion/trunk/tools/hook-scripts/mailer/tests/mailer-t2.sh URL: http://svn.apache.org/viewvc/subversion/trunk/tools/hook-scripts/mailer/tests/mailer-t2.sh?rev=1914650&view=auto ============================================================================== --- subversion/trunk/tools/hook-scripts/mailer/tests/mailer-t2.sh (added) +++ subversion/trunk/tools/hook-scripts/mailer/tests/mailer-t2.sh Thu Dec 14 07:42:34 2023 @@ -0,0 +1,116 @@ +#!/bin/sh +# +# USAGE: ./mailer-t2.sh +# +# Uses some interesting revisions for testing: +# r1849322 -- copied from; removals +# r1884610 -- copied unchanged; file removed +# r1902575 -- add with props +# r1912632 -- many files modified +# + +SVNRDUMP="/usr/bin/svnrdump" +SVNADMIN="/usr/bin/svnadmin" +SVNDUMPFILTER="/usr/bin/svndumpfilter" + +ROOT_URL="https://svn.apache.org/repos/asf/subversion/trunk" + +THIS_DIR=$(dirname "$0") +THIS_DIR=$(cd "$THIS_DIR" && pwd) + +MAILER="$THIS_DIR"/../mailer.py +CONFIG="$THIS_DIR"/../mailer.conf.example + +T2_ROOT="$THIS_DIR"/t2-root +if (mkdir "$T2_ROOT" 2> /dev/null) || /bin/false; then + echo "Created: $T2_ROOT" +else + echo "Exists: $T2_ROOT" +fi +cd "$T2_ROOT" + +REPOS_DIR="$T2_ROOT"/repos + +REV1=1849322 ; DUMP1=dump.${REV1}.gz +REV2=1884610 ; DUMP2=dump.${REV2}.gz +REV3=1902575 ; DUMP3=dump.${REV3}.gz +REV4=1912632 ; DUMP4=dump.${REV4}.gz + +if test ! -f $DUMP1 ; then + # We need some historical revisions for the copies in $REV1. + # Just get content from the subdir with the bulk of changes, + # and then filter out empty revisions. + RPREV=1849295 + echo Fetching r$RPREV:r$REV1 ... + $SVNRDUMP dump -r $RPREV:$REV1 $ROOT_URL/subversion/bindings \ + | $SVNDUMPFILTER include --drop-empty-revs / \ + | gzip --best \ + > $DUMP1 +fi +if test ! -f $DUMP2 ; then + echo Fetching r$REV2 ... + RPREV=$(($REV2 - 1)) + $SVNRDUMP dump -r $RPREV:$REV2 $ROOT_URL | gzip --best > $DUMP2 +fi +if test ! -f $DUMP3 ; then + echo Fetching r$REV3 ... + RPREV=$(($REV3 - 1)) + $SVNRDUMP dump -r $RPREV:$REV3 $ROOT_URL | gzip --best > $DUMP3 +fi +if test ! -f $DUMP4 ; then + echo Fetching r$REV4 ... + RPREV=$(($REV4 - 1)) + $SVNRDUMP dump -r $RPREV:$REV4 $ROOT_URL | gzip --best > $DUMP4 +fi + +if test ! -d ./repos.$REV1 ; then + echo Creating repos for $REV1 ... + $SVNADMIN create ./repos.$REV1 + gunzip --to-stdout $DUMP1 | $SVNADMIN load --quiet ./repos.$REV1 +fi +# The revision of interest in this repository: r28 +$MAILER commit ./repos.$REV1 28 $CONFIG > output.$REV1 +if cmp --quiet output.$REV1 ../t2-reference/output.$REV1; then + echo SUCCESS for $REV1 +else + echo FAIL -- differences detected for $REV1 +fi + +if test ! -d ./repos.$REV2 ; then + echo Creating repos for $REV2 ... + $SVNADMIN create ./repos.$REV2 + gunzip --to-stdout $DUMP2 | $SVNADMIN load --quiet ./repos.$REV2 +fi +# The revision of interest in this repository: r2 +$MAILER commit ./repos.$REV2 2 $CONFIG > output.$REV2 +if cmp --quiet output.$REV2 ../t2-reference/output.$REV2; then + echo SUCCESS for $REV2 +else + echo FAIL -- differences detected for $REV2 +fi + +if test ! -d ./repos.$REV3 ; then + echo Creating repos for $REV3 ... + $SVNADMIN create ./repos.$REV3 + gunzip --to-stdout $DUMP3 | $SVNADMIN load --quiet ./repos.$REV3 +fi +# The revision of interest in this repository: r2 +$MAILER commit ./repos.$REV3 2 $CONFIG > output.$REV3 +if cmp --quiet output.$REV3 ../t2-reference/output.$REV3; then + echo SUCCESS for $REV3 +else + echo FAIL -- differences detected for $REV3 +fi + +if test ! -d ./repos.$REV4 ; then + echo Creating repos for $REV4 ... + $SVNADMIN create ./repos.$REV4 + gunzip --to-stdout $DUMP4 | $SVNADMIN load --quiet ./repos.$REV4 +fi +# The revision of interest in this repository: r2 +$MAILER commit ./repos.$REV4 2 $CONFIG > output.$REV4 +if cmp --quiet output.$REV4 ../t2-reference/output.$REV4; then + echo SUCCESS for $REV4 +else + echo FAIL -- differences detected for $REV4 +fi Propchange: subversion/trunk/tools/hook-scripts/mailer/tests/mailer-t2.sh ------------------------------------------------------------------------------ svn:executable = * Added: subversion/trunk/tools/hook-scripts/mailer/tests/t2-reference/output.1849322 URL: http://svn.apache.org/viewvc/subversion/trunk/tools/hook-scripts/mailer/tests/t2-reference/output.1849322?rev=1914650&view=auto ============================================================================== --- subversion/trunk/tools/hook-scripts/mailer/tests/t2-reference/output.1849322 (added) +++ subversion/trunk/tools/hook-scripts/mailer/tests/t2-reference/output.1849322 Thu Dec 14 07:42:34 2023 @@ -0,0 +1,599 @@ +Group: defaults +Subject: r28 - in subversion/trunk/subversion/bindings: cxx cxx/include cxx/include/svncxxhl cxx/include/svnxx cxx/src cxx/src/aprwrap cxx/src/private cxx/tests cxxhl + +Author: brane +Date: Wed Dec 19 11:03:16 2018 +New Revision: 28 + +Log: +Rename the C++HL library to SVN++, renaming files, namespaces and directories. + +* Makefile.in + (SVNXX_INCLUDES): Renamed and changed from CXXHL_INCLUDES. + (COMPILE_SVNXX_CXX): Renamed and changed from COMPILE_CXXHL_CXX. +* build.conf + (options.private-includes): Update C++ bindings' header paths. + (libsvnxx): Rename and update target from libsvncxxhl. +* build/generator/gen_make.py + (Generator.write): Use 'svnxx-' instead of 'cxxhl-' for extra-install check. +* build/generator/gen_win.py + (WinGeneratorBase.get_win_includes): Check for 'svnxx', not 'cxxhl'. + +* subversion/bindings/cxx/: Renamed from .../bindings/cxxhl/. +* subversion/bindings/cxx/include/svnxx/: Renamed from .../include/svncxxhl/. +* subversion/bindings/cxx/include/svnxx.hpp: Renamed from .../include/svncxxhl.hpp. +* subversion/bindings/cxx/**: Rename namespaces, include paths and guards. + +Added: + subversion/trunk/subversion/bindings/cxx/ + - copied from r27, subversion/trunk/subversion/bindings/cxxhl/ + subversion/trunk/subversion/bindings/cxx/include/svnxx/ + - copied from r1, subversion/trunk/subversion/bindings/cxxhl/include/svncxxhl/ + subversion/trunk/subversion/bindings/cxx/include/svnxx.hpp + - copied, changed from r1, subversion/trunk/subversion/bindings/cxxhl/include/svncxxhl.hpp +Deleted: + subversion/trunk/subversion/bindings/cxx/include/svncxxhl/ + subversion/trunk/subversion/bindings/cxx/include/svncxxhl.hpp + subversion/trunk/subversion/bindings/cxxhl/ +Modified: + subversion/trunk/subversion/bindings/cxx/include/svnxx/_compat.hpp + subversion/trunk/subversion/bindings/cxx/include/svnxx/exception.hpp + subversion/trunk/subversion/bindings/cxx/include/svnxx/tristate.hpp + subversion/trunk/subversion/bindings/cxx/src/aprwrap.hpp + subversion/trunk/subversion/bindings/cxx/src/aprwrap/array.hpp + subversion/trunk/subversion/bindings/cxx/src/aprwrap/hash.hpp + subversion/trunk/subversion/bindings/cxx/src/aprwrap/impl.cpp + subversion/trunk/subversion/bindings/cxx/src/aprwrap/pool.hpp + subversion/trunk/subversion/bindings/cxx/src/exception.cpp + subversion/trunk/subversion/bindings/cxx/src/private.hpp + subversion/trunk/subversion/bindings/cxx/src/private/exception-private.hpp + subversion/trunk/subversion/bindings/cxx/src/tristate.cpp + subversion/trunk/subversion/bindings/cxx/tests/test_exception.cpp + +Copied and modified: subversion/trunk/subversion/bindings/cxx/include/svnxx.hpp (from r1, subversion/trunk/subversion/bindings/cxxhl/include/svncxxhl.hpp) +============================================================================== +--- subversion/trunk/subversion/bindings/cxxhl/include/svncxxhl.hpp Wed Dec 19 06:53:59 2018 (r1, copy source) ++++ subversion/trunk/subversion/bindings/cxx/include/svnxx.hpp Wed Dec 19 11:03:16 2018 (r28) +@@ -25,13 +25,13 @@ + #error "This is a C++ header file." + #endif + +-#ifndef SVN_CXXHL_HPP +-#define SVN_CXXHL_HPP ++#ifndef SVNXX_HPP ++#define SVNXX_HPP + + // Expose the whole API and alias the default version namespace +-#include "svncxxhl/exception.hpp" +-#include "svncxxhl/tristate.hpp" ++#include "svnxx/exception.hpp" ++#include "svnxx/tristate.hpp" + +-namespace SVN = ::apache::subversion::cxxhl; ++namespace SVN = ::apache::subversion::svnxx; + +-#endif // SVN_CXXHL_HPP ++#endif // SVNXX_HPP + +Modified: subversion/trunk/subversion/bindings/cxx/include/svnxx/_compat.hpp +============================================================================== +--- subversion/trunk/subversion/bindings/cxxhl/include/svncxxhl/_compat.hpp Wed Dec 19 06:53:59 2018 (r1) ++++ subversion/trunk/subversion/bindings/cxx/include/svnxx/_compat.hpp Wed Dec 19 11:03:16 2018 (r28) +@@ -25,58 +25,58 @@ + #error "This is a C++ header file." + #endif + +-#ifndef SVN_CXXHL_COMPAT_HPP +-#define SVN_CXXHL_COMPAT_HPP ++#ifndef SVNXX_COMPAT_HPP ++#define SVNXX_COMPAT_HPP + + // Configuration test: std::shared_ptr<> and friends + // Currently detects: clang++, g++, msvc-2010+ +-#ifndef SVN_CXXHL_HAVE_STD_SMART_PTRS ++#ifndef SVNXX_HAVE_STD_SMART_PTRS + # if (defined(__clang__) && __cplusplus >= 201103L) \ + || (defined(__GNUC__) && defined(__GXX_EXPERIMENTAL_CXX0X__)) \ + || (defined(_MSC_VER) && _MSC_VER >= 1600) +-# define SVN_CXXHL_HAVE_STD_SMART_PTRS ++# define SVNXX_HAVE_STD_SMART_PTRS + # endif // config test: std::shared_ptr<> +-#endif // SVN_CXXHL_HAVE_STD_SMART_PTRS ++#endif // SVNXX_HAVE_STD_SMART_PTRS + + // Configuration test: std::tr1::shared_ptr<> and friends + // Currently detects: clang++, g++ +-#ifndef SVN_CXXHL_HAVE_STD_SMART_PTRS +-# ifndef SVN_CXXHL_HAVE_STD_TR1_SMART_PTRS ++#ifndef SVNXX_HAVE_STD_SMART_PTRS ++# ifndef SVNXX_HAVE_STD_TR1_SMART_PTRS + # if defined(__GNUC__) \ + && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 1) +-# define SVN_CXXHL_HAVE_STD_TR1_SMART_PTRS ++# define SVNXX_HAVE_STD_TR1_SMART_PTRS + # endif // config test: std::tr1::shared_ptr<> +-# endif // SVN_CXXHL_HAVE_STD_TR1_SMART_PTRS +-#endif // SVN_CXXHL_HAVE_STD_SMART_PTRS ++# endif // SVNXX_HAVE_STD_TR1_SMART_PTRS ++#endif // SVNXX_HAVE_STD_SMART_PTRS + + +-#if defined(SVN_CXXHL_HAVE_STD_SMART_PTRS) ++#if defined(SVNXX_HAVE_STD_SMART_PTRS) + + #include <memory> + namespace apache { + namespace subversion { +-namespace cxxhl { ++namespace svnxx { + namespace compat { + using std::weak_ptr; + using std::shared_ptr; + using std::enable_shared_from_this; + } // namespace compat +-} // namespace cxxhl ++} // namespace svnxx + } // namespace subversion + } // namespace apache + +-#elif defined(SVN_CXXHL_HAVE_STD_TR1_SMART_PTRS) ++#elif defined(SVNXX_HAVE_STD_TR1_SMART_PTRS) + + #include <tr1/memory> + namespace apache { + namespace subversion { +-namespace cxxhl { ++namespace svnxx { + namespace compat { + using std::tr1::weak_ptr; + using std::tr1::shared_ptr; + using std::tr1::enable_shared_from_this; + } // namespace compat +-} // namespace cxxhl ++} // namespace svnxx + } // namespace subversion + } // namespace apache + +@@ -85,41 +85,41 @@ + // ::std given known compiler characteristics, then try Boost as a + // last resort. + +-#define SVN_CXXHL_USING_BOOST ++#define SVNXX_USING_BOOST + #include <boost/shared_ptr.hpp> + namespace apache { + namespace subversion { +-namespace cxxhl { ++namespace svnxx { + namespace compat { + using boost::weak_ptr; + using boost::shared_ptr; + using boost::enable_shared_from_this; + } // namespace compat +-} // namespace cxxhl ++} // namespace svnxx + } // namespace subversion + } // namespace apache + +-#endif // SVN_CXXHL_HAVE_STD_SMART_PTRS ++#endif // SVNXX_HAVE_STD_SMART_PTRS + + // Configuration test: noncopyable mixin. +-#ifdef SVN_CXXHL_USING_BOOST ++#ifdef SVNXX_USING_BOOST + + #include <boost/noncopyable.hpp> + namespace apache { + namespace subversion { +-namespace cxxhl { ++namespace svnxx { + namespace compat { + using boost::noncopyable; + } // namespace compat +-} // namespace cxxhl ++} // namespace svnxx + } // namespace subversion + } // namespace apache + +-#else // !SVN_CXXHL_USING_BOOST ++#else // !SVNXX_USING_BOOST + + namespace apache { + namespace subversion { +-namespace cxxhl { ++namespace svnxx { + namespace compat { + namespace noncopyable_ + { +@@ -135,10 +135,10 @@ + } // namespace noncopyable_ + typedef noncopyable_::noncopyable noncopyable; + } // namespace compat +-} // namespace cxxhl ++} // namespace svnxx + } // namespace subversion + } // namespace apache + +-#endif // SVN_CXXHL_USING_BOOST ++#endif // SVNXX_USING_BOOST + +-#endif // SVN_CXXHL_COMPAT_HPP ++#endif // SVNXX_COMPAT_HPP + +Modified: subversion/trunk/subversion/bindings/cxx/include/svnxx/exception.hpp +============================================================================== +--- subversion/trunk/subversion/bindings/cxxhl/include/svncxxhl/exception.hpp Wed Dec 19 06:53:59 2018 (r1) ++++ subversion/trunk/subversion/bindings/cxx/include/svnxx/exception.hpp Wed Dec 19 11:03:16 2018 (r28) +@@ -25,19 +25,19 @@ + #error "This is a C++ header file." + #endif + +-#ifndef SVN_CXXHL_EXCEPTION_HPP +-#define SVN_CXXHL_EXCEPTION_HPP ++#ifndef SVNXX_EXCEPTION_HPP ++#define SVNXX_EXCEPTION_HPP + + #include <exception> + #include <string> + #include <utility> + #include <vector> + +-#include "svncxxhl/_compat.hpp" ++#include "svnxx/_compat.hpp" + + namespace apache { + namespace subversion { +-namespace cxxhl { ++namespace svnxx { + + namespace compat {} // Announce the compat namespace for shared_ptr lookup + +@@ -181,8 +181,8 @@ + {} + }; + +-} // namespace cxxhl ++} // namespace svnxx + } // namespace subversion + } // namespace apache + +-#endif // SVN_CXXHL_EXCEPTION_HPP ++#endif // SVNXX_EXCEPTION_HPP + +Modified: subversion/trunk/subversion/bindings/cxx/include/svnxx/tristate.hpp +============================================================================== +--- subversion/trunk/subversion/bindings/cxxhl/include/svncxxhl/tristate.hpp Wed Dec 19 06:53:59 2018 (r1) ++++ subversion/trunk/subversion/bindings/cxx/include/svnxx/tristate.hpp Wed Dec 19 11:03:16 2018 (r28) +@@ -25,12 +25,12 @@ + #error "This is a C++ header file." + #endif + +-#ifndef SVN_CXXHL_TRISTATE_HPP +-#define SVN_CXXHL_TRISTATE_HPP ++#ifndef SVNXX_TRISTATE_HPP ++#define SVNXX_TRISTATE_HPP + + namespace apache { + namespace subversion { +-namespace cxxhl { ++namespace svnxx { + + class Tristate + { +@@ -57,8 +57,8 @@ + short int m_value; + }; + +-} // namespace cxxhl ++} // namespace svnxx + } // namespace subversion + } // namespace apache + +-#endif // SVN_CXXHL_TRISTATE_HPP ++#endif // SVNXX_TRISTATE_HPP + +Modified: subversion/trunk/subversion/bindings/cxx/src/aprwrap.hpp +============================================================================== +--- subversion/trunk/subversion/bindings/cxxhl/src/aprwrap.hpp Wed Dec 19 10:49:47 2018 (r27) ++++ subversion/trunk/subversion/bindings/cxx/src/aprwrap.hpp Wed Dec 19 11:03:16 2018 (r28) +@@ -21,14 +21,14 @@ + * @endcopyright + */ + +-#ifndef SVN_CXXHL_PRIVATE_APRWRAP_H +-#define SVN_CXXHL_PRIVATE_APRWRAP_H ++#ifndef SVNXX_PRIVATE_APRWRAP_H ++#define SVNXX_PRIVATE_APRWRAP_H + + // Expose the whole APR wrapper API and alias the namespace + #include "aprwrap/pool.hpp" + #include "aprwrap/hash.hpp" + #include "aprwrap/array.hpp" + +-namespace APR = ::apache::subversion::cxxhl::apr; ++namespace APR = ::apache::subversion::svnxx::apr; + +-#endif // SVN_CXXHL_PRIVATE_APRWRAP_H ++#endif // SVNXX_PRIVATE_APRWRAP_H + +Modified: subversion/trunk/subversion/bindings/cxx/src/aprwrap/array.hpp +============================================================================== +--- subversion/trunk/subversion/bindings/cxxhl/src/aprwrap/array.hpp Wed Dec 19 10:49:47 2018 (r27) ++++ subversion/trunk/subversion/bindings/cxx/src/aprwrap/array.hpp Wed Dec 19 11:03:16 2018 (r28) +@@ -21,8 +21,8 @@ + * @endcopyright + */ + +-#ifndef SVN_CXXHL_PRIVATE_APRWRAP_ARRAY_H +-#define SVN_CXXHL_PRIVATE_APRWRAP_ARRAY_H ++#ifndef SVNXX_PRIVATE_APRWRAP_ARRAY_H ++#define SVNXX_PRIVATE_APRWRAP_ARRAY_H + + #include <stdexcept> + +@@ -33,7 +33,7 @@ + + namespace apache { + namespace subversion { +-namespace cxxhl { ++namespace svnxx { + namespace apr { + + /** +@@ -273,8 +273,8 @@ + }; + + } // namespace apr +-} // namespace cxxhl ++} // namespace svnxx + } // namespace subversion + } // namespace apache + +-#endif // SVN_CXXHL_PRIVATE_APRWRAP_HASH_H ++#endif // SVNXX_PRIVATE_APRWRAP_HASH_H + +Modified: subversion/trunk/subversion/bindings/cxx/src/aprwrap/hash.hpp +============================================================================== +--- subversion/trunk/subversion/bindings/cxxhl/src/aprwrap/hash.hpp Wed Dec 19 10:49:47 2018 (r27) ++++ subversion/trunk/subversion/bindings/cxx/src/aprwrap/hash.hpp Wed Dec 19 11:03:16 2018 (r28) +@@ -21,15 +21,15 @@ + * @endcopyright + */ + +-#ifndef SVN_CXXHL_PRIVATE_APRWRAP_HASH_H +-#define SVN_CXXHL_PRIVATE_APRWRAP_HASH_H ++#ifndef SVNXX_PRIVATE_APRWRAP_HASH_H ++#define SVNXX_PRIVATE_APRWRAP_HASH_H + + #include <apr_hash.h> + #include "pool.hpp" + + namespace apache { + namespace subversion { +-namespace cxxhl { ++namespace svnxx { + namespace apr { + + // Template forward declaration +@@ -364,8 +364,8 @@ + + + } // namespace apr +-} // namespace cxxhl ++} // namespace svnxx + } // namespace subversion + } // namespace apache + +-#endif // SVN_CXXHL_PRIVATE_APRWRAP_HASH_H ++#endif // SVNXX_PRIVATE_APRWRAP_HASH_H + +Modified: subversion/trunk/subversion/bindings/cxx/src/aprwrap/impl.cpp +============================================================================== +--- subversion/trunk/subversion/bindings/cxxhl/src/aprwrap/impl.cpp Wed Dec 19 10:49:47 2018 (r27) ++++ subversion/trunk/subversion/bindings/cxx/src/aprwrap/impl.cpp Wed Dec 19 11:03:16 2018 (r28) +@@ -33,7 +33,7 @@ + + namespace apache { + namespace subversion { +-namespace cxxhl { ++namespace svnxx { + namespace apr { + + // +@@ -67,7 +67,7 @@ + state = svn_atomic_cas(&init_state, NONE, NONE); + } + if (state == START) +- throw cxxhl::InternalError( ++ throw svnxx::InternalError( + _("APR pool initialization failed: Timed out")); + return root_pool; + +@@ -79,7 +79,7 @@ + return root_pool; + + default: +- throw cxxhl::InternalError( ++ throw svnxx::InternalError( + _("APR pool initialization failed: Invalid state")); + } + } +@@ -105,6 +105,6 @@ + } + + } // namespace apr +-} // namespace cxxhl ++} // namespace svnxx + } // namespace subversion + } // namespace apache + +Modified: subversion/trunk/subversion/bindings/cxx/src/aprwrap/pool.hpp +============================================================================== +--- subversion/trunk/subversion/bindings/cxxhl/src/aprwrap/pool.hpp Wed Dec 19 10:49:47 2018 (r27) ++++ subversion/trunk/subversion/bindings/cxx/src/aprwrap/pool.hpp Wed Dec 19 11:03:16 2018 (r28) +@@ -21,13 +21,13 @@ + * @endcopyright + */ + +-#ifndef SVN_CXXHL_PRIVATE_APRWRAP_POOL_H +-#define SVN_CXXHL_PRIVATE_APRWRAP_POOL_H ++#ifndef SVNXX_PRIVATE_APRWRAP_POOL_H ++#define SVNXX_PRIVATE_APRWRAP_POOL_H + + #include <cstdlib> + +-#include "svncxxhl/exception.hpp" +-#include "svncxxhl/_compat.hpp" ++#include "svnxx/exception.hpp" ++#include "svnxx/_compat.hpp" + + #include "svn_pools.h" + #undef TRUE +@@ -35,7 +35,7 @@ + + namespace apache { + namespace subversion { +-namespace cxxhl { ++namespace svnxx { + namespace apr { + + // Forward declaration +@@ -191,8 +191,8 @@ + } + + } // namespace apr +-} // namespace cxxhl ++} // namespace svnxx + } // namespace subversion + } // namespace apache + +-#endif // SVN_CXXHL_PRIVATE_APRWRAP_POOL_H ++#endif // SVNXX_PRIVATE_APRWRAP_POOL_H + +Modified: subversion/trunk/subversion/bindings/cxx/src/exception.cpp +============================================================================== +--- subversion/trunk/subversion/bindings/cxxhl/src/exception.cpp Wed Dec 19 10:49:47 2018 (r27) ++++ subversion/trunk/subversion/bindings/cxx/src/exception.cpp Wed Dec 19 11:03:16 2018 (r28) +@@ -27,7 +27,7 @@ + #include <new> + #include <sstream> + +-#include "svncxxhl/exception.hpp" ++#include "svnxx/exception.hpp" + #include "private.hpp" + #include "aprwrap.hpp" + +@@ -41,7 +41,7 @@ + + namespace apache { + namespace subversion { +-namespace cxxhl { ++namespace svnxx { + + namespace detail { + +@@ -326,6 +326,6 @@ + } + } // namespace detail + +-} // namespace cxxhl ++} // namespace svnxx + } // namespace subversion + } // namespace apache + +Modified: subversion/trunk/subversion/bindings/cxx/src/private.hpp +============================================================================== +--- subversion/trunk/subversion/bindings/cxxhl/src/private.hpp Wed Dec 19 10:49:47 2018 (r27) ++++ subversion/trunk/subversion/bindings/cxx/src/private.hpp Wed Dec 19 11:03:16 2018 (r28) +@@ -21,9 +21,9 @@ + * @endcopyright + */ + +-#ifndef SVN_CXXHL_PRIVATE_PRIVATE_H +-#define SVN_CXXHL_PRIVATE_PRIVATE_H ++#ifndef SVNXX_PRIVATE_PRIVATE_H ++#define SVNXX_PRIVATE_PRIVATE_H + + #include "private/exception-private.hpp" + +-#endif // SVN_CXXHL_PRIVATE_PRIVATE_H ++#endif // SVNXX_PRIVATE_PRIVATE_H + +Modified: subversion/trunk/subversion/bindings/cxx/src/private/exception-private.hpp +============================================================================== +--- subversion/trunk/subversion/bindings/cxxhl/src/private/exception-private.hpp Wed Dec 19 10:49:47 2018 (r27) ++++ subversion/trunk/subversion/bindings/cxx/src/private/exception-private.hpp Wed Dec 19 11:03:16 2018 (r28) +@@ -25,14 +25,14 @@ + #error "This is a C++ header file." + #endif + +-#ifndef SVN_CXXHL_PRIVATE_EXCEPTION_HPP +-#define SVN_CXXHL_PRIVATE_EXCEPTION_HPP ++#ifndef SVNXX_PRIVATE_EXCEPTION_HPP ++#define SVNXX_PRIVATE_EXCEPTION_HPP + + #include "svn_error.h" + + namespace apache { + namespace subversion { +-namespace cxxhl { ++namespace svnxx { + namespace detail { + + /** +@@ -42,8 +42,8 @@ + void checked_call(svn_error_t* err); + + } // namespace detail +-} // namespace cxxhl ++} // namespace svnxx + } // namespace subversion + } // namespace apache + +-#endif // SVN_CXXHL_PRIVATE_EXCEPTION_HPP ++#endif // SVNXX_PRIVATE_EXCEPTION_HPP + +Modified: subversion/trunk/subversion/bindings/cxx/src/tristate.cpp +============================================================================== +--- subversion/trunk/subversion/bindings/cxxhl/src/tristate.cpp Wed Dec 19 10:49:47 2018 (r27) ++++ subversion/trunk/subversion/bindings/cxx/src/tristate.cpp Wed Dec 19 11:03:16 2018 (r28) +@@ -21,7 +21,7 @@ + * @endcopyright + */ + +-#include "svncxxhl/tristate.hpp" ++#include "svnxx/tristate.hpp" + + #include "svn_types.h" + #undef TRUE +@@ -29,7 +29,7 @@ + + namespace apache { + namespace subversion { +-namespace cxxhl { ++namespace svnxx { + + Tristate::Tristate(short value) throw() + : m_value(value) +@@ -39,6 +39,6 @@ + const Tristate Tristate::FALSE = Tristate(svn_tristate_false); + const Tristate Tristate::UNKNOWN = Tristate(svn_tristate_unknown); + +-} // namespace cxxhl ++} // namespace svnxx + } // namespace subversion + } // namespace apache + +Modified: subversion/trunk/subversion/bindings/cxx/tests/test_exception.cpp +============================================================================== +--- subversion/trunk/subversion/bindings/cxxhl/tests/test_exception.cpp Wed Dec 19 10:49:47 2018 (r27) ++++ subversion/trunk/subversion/bindings/cxx/tests/test_exception.cpp Wed Dec 19 11:03:16 2018 (r28) +@@ -25,7 +25,7 @@ + #include <ios> + #include <iostream> + +-#include "svncxxhl.hpp" ++#include "svnxx.hpp" + #include "../src/private.hpp" + + #include <apr.h> Added: subversion/trunk/tools/hook-scripts/mailer/tests/t2-reference/output.1884610 URL: http://svn.apache.org/viewvc/subversion/trunk/tools/hook-scripts/mailer/tests/t2-reference/output.1884610?rev=1914650&view=auto ============================================================================== --- subversion/trunk/tools/hook-scripts/mailer/tests/t2-reference/output.1884610 (added) +++ subversion/trunk/tools/hook-scripts/mailer/tests/t2-reference/output.1884610 Thu Dec 14 07:42:34 2023 @@ -0,0 +1,1036 @@ +Group: defaults +Subject: r2 - in subversion/trunk: . build/ac-macros subversion/bindings/swig + +Author: futatuki +Date: Fri Dec 18 09:32:35 2020 +New Revision: 2 + +Log: +Distinguish configure scripts on release mode and non release mode. + +Although makefiles in Subversion's release tarball do not support generating +SWIG language bindings C source files using swig, the configure scripts +shipped with the release tarball had an option to specify how to find +SWIG executable, and checked it. To avoid this, we introduce "release mode" +to the configure script and hide the option and code to check a SWIG +executable on it. + +* . (svn:ignore): + Ignore aclocal.m4. +* Makefile.in (local-extraclean): + Clean up aclocal.m4. +* aclocal.m4.in (): + Renamed from aclocal.m4 +* autogen.sh (): + Write an macro "SVN_RELEASE_MODE" definition to aclocal.m4 if --release + is specfied on the command line. +* build/ac-macros/swig.m4 + (): Also mension about Perl and Ruby. + (SVN_CHECK_SWIG): + - Hide --with-swig option in release mode. + - Check SWIG executable only if non release mode and at least one of + SWIG bindings is specfied to be built. + (SVN_FIND_SWIG): + Move checks for each bindings into new macro SVN_DETERMINE_SWIG_OPTS. + (SVN_DETERMINE_SWIG_OPTS): New macro split from SVN_FIND_SWIG. + - When not in release mode, warn if Perl/Python/Ruby interpreter is set but + SWIG is not found. Also do not build them with make swig-pl/make swig-py/ + make swig-rb in this case. + - Check swig version only when it is needed and when not in release mode. +* configure.ac (): + - Tweak help string for --with-swig-perl, --with-swig-python, + --with-swig-ruby. + - Warn if --with-swig-perl is not specified but variable 'PERL' is set. + - Warn if --with-swig-ruby is not specified but variable 'RUBY' is set, + even the value is not 'no' nor 'none'. +* subversion/bindings/swig/INSTALL (Step 2): + Mention that configure and makefiles in the release tarball don't + support generating SWIG bindings C source files. + +Review by: brane + (commit message, help string, and the structure of + SVN_CHECK_SWIG macro) + +Added: + subversion/trunk/aclocal.m4.in + - copied unchanged from r1, subversion/trunk/aclocal.m4 +Deleted: + subversion/trunk/aclocal.m4 +Modified: + subversion/trunk/ (props changed) + subversion/trunk/Makefile.in + subversion/trunk/autogen.sh + subversion/trunk/build/ac-macros/swig.m4 + subversion/trunk/configure.ac + subversion/trunk/subversion/bindings/swig/INSTALL + +Modified: subversion/trunk/Makefile.in +============================================================================== +--- subversion/trunk/Makefile.in Fri Dec 18 08:23:03 2020 (r1) ++++ subversion/trunk/Makefile.in Fri Dec 18 09:32:35 2020 (r2) +@@ -478,6 +478,7 @@ + local-extraclean: extraclean-bindings local-distclean + rm -f $(top_srcdir)/build-outputs.mk \ + $(top_srcdir)/subversion/svn_private_config.h.in \ ++ $(top_srcdir)/aclocal.m4 \ + $(top_srcdir)/configure \ + $(top_srcdir)/gen-make.opts \ + $(top_srcdir)/build/config.guess \ + +Copied: subversion/trunk/aclocal.m4.in (from r1, subversion/trunk/aclocal.m4) +============================================================================== +--- /dev/null 00:00:00 1970 (empty, because file is newly added) ++++ subversion/trunk/aclocal.m4.in Fri Dec 18 09:32:35 2020 (r2, copy of r1, subversion/trunk/aclocal.m4) +@@ -0,0 +1,61 @@ ++# ++# ++# Licensed to the Apache Software Foundation (ASF) under one ++# or more contributor license agreements. See the NOTICE file ++# distributed with this work for additional information ++# regarding copyright ownership. The ASF licenses this file ++# to you under the Apache License, Version 2.0 (the ++# "License"); you may not use this file except in compliance ++# with the License. You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, ++# software distributed under the License is distributed on an ++# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++# KIND, either express or implied. See the License for the ++# specific language governing permissions and limitations ++# under the License. ++# ++# ++# aclocal.m4: Supplementary macros used by Subversion's configure.ac ++# ++# These are here rather than directly in configure.ac, since this prevents ++# comments in the macro files being copied into configure.ac, producing ++# useless bloat. (This is significant - a 12kB reduction in size!) ++ ++# Include macros distributed by the APR project ++sinclude(build/ac-macros/find_apr.m4) ++sinclude(build/ac-macros/find_apu.m4) ++ ++# Include Subversion's own custom macros ++sinclude(build/ac-macros/svn-macros.m4) ++ ++sinclude(build/ac-macros/apache.m4) ++sinclude(build/ac-macros/apr.m4) ++sinclude(build/ac-macros/aprutil.m4) ++sinclude(build/ac-macros/apr_memcache.m4) ++sinclude(build/ac-macros/ax_boost_base.m4) ++sinclude(build/ac-macros/ax_boost_unit_test_framework.m4) ++sinclude(build/ac-macros/berkeley-db.m4) ++sinclude(build/ac-macros/compiler.m4) ++sinclude(build/ac-macros/ctypesgen.m4) ++sinclude(build/ac-macros/java.m4) ++sinclude(build/ac-macros/sasl.m4) ++sinclude(build/ac-macros/serf.m4) ++sinclude(build/ac-macros/sqlite.m4) ++sinclude(build/ac-macros/py3c.m4) ++sinclude(build/ac-macros/swig.m4) ++sinclude(build/ac-macros/zlib.m4) ++sinclude(build/ac-macros/lz4.m4) ++sinclude(build/ac-macros/kwallet.m4) ++sinclude(build/ac-macros/libsecret.m4) ++sinclude(build/ac-macros/utf8proc.m4) ++sinclude(build/ac-macros/macosx.m4) ++ ++# Include the libtool macros ++sinclude(build/libtool.m4) ++sinclude(build/ltoptions.m4) ++sinclude(build/ltsugar.m4) ++sinclude(build/ltversion.m4) ++sinclude(build/lt~obsolete.m4) + +Modified: subversion/trunk/autogen.sh +============================================================================== +--- subversion/trunk/autogen.sh Fri Dec 18 08:23:03 2020 (r1) ++++ subversion/trunk/autogen.sh Fri Dec 18 09:32:35 2020 (r2) +@@ -51,6 +51,17 @@ + ;; + esac + done ++ ++# Generate aclocal.m4 ++cp -f aclocal.m4.in aclocal.m4 ++if test -n "$RELEASE_MODE"; then ++ cat <<EOF >>aclocal.m4 ++ ++# Generated by 'autogen.sh --release' ++AC_DEFUN([SVN_RELEASE_MODE],[1]) ++EOF ++fi ++ + # ### The order of parameters is important; buildcheck.sh depends on it and + # ### we don't want to copy the fancy option parsing loop there. For the + # ### same reason, all parameters should be quoted, so that buildcheck.sh + +Modified: subversion/trunk/build/ac-macros/swig.m4 +============================================================================== +--- subversion/trunk/build/ac-macros/swig.m4 Fri Dec 18 08:23:03 2020 (r1) ++++ subversion/trunk/build/ac-macros/swig.m4 Fri Dec 18 09:32:35 2020 (r2) +@@ -22,29 +22,39 @@ + dnl if it is, then check to see if we have the correct version of python. + dnl + dnl if we do, then set up the appropriate SWIG_ variables to build the +-dnl python bindings. ++dnl Python, Perl, and Ruby bindings. + + AC_DEFUN(SVN_CHECK_SWIG, + [ +- AC_ARG_WITH(swig, +- AS_HELP_STRING([--with-swig=PATH], +- [Try to use 'PATH/bin/swig' to build the +- swig bindings. If PATH is not specified, +- look for a 'swig' binary in your PATH.]), ++ m4_ifndef([SVN_RELEASE_MODE], + [ +- case "$withval" in ++ AC_ARG_WITH(swig, ++ AS_HELP_STRING([--with-swig=PATH], ++ [Try to use 'PATH/bin/swig' to build the ++ swig bindings. If PATH is not specified, ++ look for a 'swig' binary in your PATH.]), ++ [ ++ case "$withval" in + yes) + svn_find_swig_arg=required + ;; + *) + svn_find_swig_arg=$withval + ;; +- esac +- ], +- [ +- svn_find_swig_arg=check ++ esac ++ ], ++ [ ++ if test "$SWIG_PY_PYTHON" != "none" \ ++ || test "$SWIG_PL_PERL" != "none" \ ++ || test "$SWIG_RB_RUBY" != "none" ; then ++ svn_find_swig_arg=check ++ else ++ svn_find_swig_arg=no ++ fi ++ ]) ++ SVN_FIND_SWIG($svn_find_swig_arg) + ]) +- SVN_FIND_SWIG($svn_find_swig_arg) ++ SVN_DETERMINE_SWIG_OPTS + ]) + + AC_DEFUN(SVN_FIND_SWIG, +@@ -93,92 +103,104 @@ + AC_MSG_WARN([Subversion requires SWIG >= 1.3.24]) + fi + fi ++]) + +- SWIG_PY_COMPILE="none" +- SWIG_PY_LINK="none" +- SWIG_PY_OPTS="none" +- SWIG_PY_ERRMSG="check config.log for details" +- if test "$SWIG_PY_PYTHON" != "none"; then +- AC_MSG_NOTICE([Configuring python swig binding]) + +- AC_CACHE_CHECK([for Python includes], [ac_cv_python_includes],[ +- ac_cv_python_includes="`$SWIG_PY_PYTHON ${abs_srcdir}/build/get-py-info.py --includes`" +- ]) +- SWIG_PY_INCLUDES="\$(SWIG_INCLUDES) $ac_cv_python_includes" +- +- if test "$ac_cv_python_includes" = "none"; then +- SWIG_PY_ERRMSG="no distutils found" +- AC_MSG_WARN([python bindings cannot be built without distutils module]) ++AC_DEFUN(SVN_DETERMINE_SWIG_OPTS, ++[ ++ m4_ifndef([SVN_RELEASE_MODE], ++ [ ++ # not in release mode ++ SWIG_PY_COMPILE="none" ++ SWIG_PY_LINK="none" ++ SWIG_PY_OPTS="none" ++ SWIG_PY_ERRMSG="check config.log for details" ++ if test "$SWIG_PY_PYTHON" = "none"; then ++ SWIG_PY_ERRMSG="You specfied not to build Python bindings or \ ++suitable Python interpreter is not found." + else +- +- python_header_found="no" +- +- save_cppflags="$CPPFLAGS" +- CPPFLAGS="$CPPFLAGS $ac_cv_python_includes" +- AC_CHECK_HEADER(Python.h, [ +- python_header_found="yes" +- ]) +- CPPFLAGS="$save_cppflags" +- +- if test "$python_header_found" = "no"; then +- SWIG_PY_ERRMSG="no Python.h found" +- AC_MSG_WARN([Python.h not found; disabling python swig bindings]) ++ if test "$SWIG" = "none"; then ++ AC_MSG_WARN([You specified to build SWIG Python bindings, but SWIG is not found.]) ++ SWIG_PY_ERRMSG="SWIG is need to build SWIG Python bindings, but it is not found." + else +- SVN_PY3C() ++ AC_MSG_NOTICE([Configuring python swig binding]) + +- if test "$py3c_found" = "no"; then +- SWIG_PY_ERRMSG="py3c library not found" +- AC_MSG_WARN([py3c library not found; disabling python swig bindings]) ++ AC_CACHE_CHECK([for Python includes], [ac_cv_python_includes],[ ++ ac_cv_python_includes="`$SWIG_PY_PYTHON ${abs_srcdir}/build/get-py-info.py --includes`" ++ ]) ++ SWIG_PY_INCLUDES="\$(SWIG_INCLUDES) $ac_cv_python_includes" ++ ++ if test "$ac_cv_python_includes" = "none"; then ++ SWIG_PY_ERRMSG="no distutils found" ++ AC_MSG_WARN([python bindings cannot be built without distutils module]) + else +- AC_CACHE_CHECK([for compiling Python extensions], [ac_cv_python_compile],[ +- ac_cv_python_compile="`$SWIG_PY_PYTHON ${abs_srcdir}/build/get-py-info.py --compile`" +- ]) +- SWIG_PY_COMPILE="$ac_cv_python_compile $CFLAGS" + +- AC_CACHE_CHECK([for linking Python extensions], [ac_cv_python_link],[ +- ac_cv_python_link="`$SWIG_PY_PYTHON ${abs_srcdir}/build/get-py-info.py --link`" +- ]) +- SWIG_PY_LINK="$ac_cv_python_link" ++ python_header_found="no" + +- AC_CACHE_CHECK([for linking Python libraries], [ac_cv_python_libs],[ +- ac_cv_python_libs="`$SWIG_PY_PYTHON ${abs_srcdir}/build/get-py-info.py --libs`" ++ save_cppflags="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS $ac_cv_python_includes" ++ AC_CHECK_HEADER(Python.h, [ ++ python_header_found="yes" + ]) +- SWIG_PY_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($ac_cv_python_libs)`" ++ CPPFLAGS="$save_cppflags" + +- if test "$SWIG" = "none"; then +- SWIG_PY_ERRMSG="" ++ if test "$python_header_found" = "no"; then ++ SWIG_PY_ERRMSG="no Python.h found" ++ AC_MSG_WARN([Python.h not found; disabling python swig bindings]) + else +- # Look more closely at the SWIG and Python versions to +- # determine SWIG_PY_OPTS. We can skip this if we already +- # have the SWIG-generated files. +- AC_CACHE_CHECK([for Python >= 3], [ac_cv_python_is_py3],[ +- ac_cv_python_is_py3="no" +- $SWIG_PY_PYTHON -c 'import sys; sys.exit(0x3000000 > sys.hexversion)' && \ +- ac_cv_python_is_py3="yes" +- ]) ++ SVN_PY3C() + +- if test "$ac_cv_python_is_py3" = "yes"; then +- if test "$SWIG_VERSION" -ge "300010"; then +- dnl SWIG Python bindings successfully configured, clear the error message dnl +- SWIG_PY_ERRMSG="" +- else +- SWIG_PY_ERRMSG="SWIG version is not suitable" +- AC_MSG_WARN([Subversion Python bindings for Python 3 require SWIG 3.0.10 or newer]) +- fi +- if test "$SWIG_VERSION" -lt "400000"; then +- SWIG_PY_OPTS="-python -py3 -nofastunpack -modern" +- else +- SWIG_PY_OPTS="-python -py3 -nofastunpack" +- fi ++ if test "$py3c_found" = "no"; then ++ SWIG_PY_ERRMSG="py3c library not found" ++ AC_MSG_WARN([py3c library not found; disabling python swig bindings]) + else +- if test "$SWIG_VERSION" -lt "400000"; then +- SWIG_PY_OPTS="-python -classic" +- dnl SWIG Python bindings successfully configured, clear the error message dnl +- SWIG_PY_ERRMSG="" ++ AC_CACHE_CHECK([for compiling Python extensions], [ac_cv_python_compile],[ ++ ac_cv_python_compile="`$SWIG_PY_PYTHON ${abs_srcdir}/build/get-py-info.py --compile`" ++ ]) ++ SWIG_PY_COMPILE="$ac_cv_python_compile $CFLAGS" ++ ++ AC_CACHE_CHECK([for linking Python extensions], [ac_cv_python_link],[ ++ ac_cv_python_link="`$SWIG_PY_PYTHON ${abs_srcdir}/build/get-py-info.py --link`" ++ ]) ++ SWIG_PY_LINK="$ac_cv_python_link" ++ ++ AC_CACHE_CHECK([for linking Python libraries], [ac_cv_python_libs],[ ++ ac_cv_python_libs="`$SWIG_PY_PYTHON ${abs_srcdir}/build/get-py-info.py --libs`" ++ ]) ++ SWIG_PY_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($ac_cv_python_libs)`" ++ ++ # Look more closely at the SWIG and Python versions to ++ # determine SWIG_PY_OPTS. We can skip this if we already ++ # have the SWIG-generated files. ++ AC_CACHE_CHECK([for Python >= 3], [ac_cv_python_is_py3],[ ++ ac_cv_python_is_py3="no" ++ $SWIG_PY_PYTHON -c 'import sys; sys.exit(0x3000000 > sys.hexversion)' && \ ++ ac_cv_python_is_py3="yes" ++ ]) ++ ++ if test "$ac_cv_python_is_py3" = "yes"; then ++ if test "$SWIG_VERSION" -ge "300010"; then ++ dnl SWIG Python bindings successfully configured, clear the error message dnl ++ SWIG_PY_ERRMSG="" ++ else ++ SWIG_PY_ERRMSG="SWIG version is not suitable" ++ AC_MSG_WARN([Subversion Python bindings for Python 3 require SWIG 3.0.10 or newer]) ++ fi ++ if test "$SWIG_VERSION" -lt "400000"; then ++ SWIG_PY_OPTS="-python -py3 -nofastunpack -modern" ++ else ++ SWIG_PY_OPTS="-python -py3 -nofastunpack" ++ fi + else +- SWIG_PY_OPTS="-python -nofastunpack" +- SWIG_PY_ERRMSG="SWIG version is not suitable" +- AC_MSG_WARN([Subversion Python bindings for Python 2 require 1.3.24 <= SWIG < 4.0.0]) ++ if test "$SWIG_VERSION" -lt "400000"; then ++ SWIG_PY_OPTS="-python -classic" ++ dnl SWIG Python bindings successfully configured, clear the error message dnl ++ SWIG_PY_ERRMSG="" ++ else ++ SWIG_PY_OPTS="-python -nofastunpack" ++ SWIG_PY_ERRMSG="SWIG version is not suitable" ++ AC_MSG_WARN([Subversion Python bindings for Python 2 require 1.3.24 <= SWIG < 4.0.0]) ++ fi + fi + fi + fi +@@ -186,151 +208,373 @@ + fi + fi + +- fi ++ SWIG_PL_ERRMSG="check config.log for details" ++ if test "$SWIG_PL_PERL" = "none"; then ++ SWIG_PL_ERRMSG="You specfied not to build Perl bindings or \ ++suitable Perl interpreter is not found." ++ else ++ if test "$SWIG" = "none"; then ++ AC_MSG_WARN([You specified to build SWIG Perl bindings, but SWIG is not found.]) ++ SWIG_PL_ERRMSG="SWIG is need to build SWIG Perl bindings, but it is not found." ++ else ++ AC_MSG_CHECKING([perl version]) ++ dnl Note that the q() bit is there to avoid unbalanced brackets ++ dnl which m4 really doesn't like. ++ PERL_VERSION="`$SWIG_PL_PERL -e 'q([[); print $]] * 1000000,$/;'`" ++ AC_MSG_RESULT([$PERL_VERSION]) ++ if test "$PERL_VERSION" -ge "5008000"; then ++ SWIG_PL_INCLUDES="\$(SWIG_INCLUDES) `$SWIG_PL_PERL -MExtUtils::Embed -e ccopts`" ++ SWIG_PL_LINK="`$SWIG_PL_PERL -MExtUtils::Embed -e ldopts`" ++ SWIG_PL_LINK="`SVN_REMOVE_STANDARD_LIB_DIRS($SWIG_PL_LINK)`" + +- SWIG_PL_ERRMSG="check config.log for details" +- if test "$SWIG_PL_PERL" != "none"; then +- AC_MSG_CHECKING([perl version]) +- dnl Note that the q() bit is there to avoid unbalanced brackets +- dnl which m4 really doesn't like. +- PERL_VERSION="`$SWIG_PL_PERL -e 'q([[); print $]] * 1000000,$/;'`" +- AC_MSG_RESULT([$PERL_VERSION]) +- if test "$PERL_VERSION" -ge "5008000"; then +- SWIG_PL_INCLUDES="\$(SWIG_INCLUDES) `$SWIG_PL_PERL -MExtUtils::Embed -e ccopts`" +- SWIG_PL_LINK="`$SWIG_PL_PERL -MExtUtils::Embed -e ldopts`" +- SWIG_PL_LINK="`SVN_REMOVE_STANDARD_LIB_DIRS($SWIG_PL_LINK)`" ++ dnl SWIG Perl bindings successfully configured, clear the error message ++ SWIG_PL_ERRMSG="" ++ else ++ AC_MSG_WARN([perl bindings require perl 5.8.0 or newer.]) ++ fi ++ fi ++ fi + +- dnl SWIG Perl bindings successfully configured, clear the error message +- SWIG_PL_ERRMSG="" ++ SWIG_RB_COMPILE="none" ++ SWIG_RB_LINK="none" ++ SWIG_RB_ERRMSG="check config.log for details" ++ if test "$SWIG_RB_RUBY" = "none"; then ++ SWIG_RB_ERRMSG="You specfied not to build Ruby bindings or \ ++suitable Ruby interpreter is not found." + else +- AC_MSG_WARN([perl bindings require perl 5.8.0 or newer.]) +- fi +- fi ++ if test "$SWIG" = "none"; then ++ AC_MSG_WARN([You specified to build SWIG Ruby bindings, but SWIG is not found.]) ++ SWIG_RB_ERRMSG="SWIG is need to build SWIG Ruby bindings, but it is not found." ++ else ++ if test x"$SWIG_VERSION" = x"3""00""008"; then ++ # Use a local variable to escape the '#' sign. ++ ruby_swig_issue_602='https://subversion.apache.org/docs/release-notes/1.11#ruby-swig-issue-602' ++ AC_MSG_WARN([Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602]) ++ fi ++ rbconfig="$SWIG_RB_RUBY -rrbconfig -e " ++ ++ for var_name in arch archdir CC LDSHARED DLEXT LIBS LIBRUBYARG \ ++ rubyhdrdir rubyarchhdrdir sitedir sitelibdir sitearchdir libdir ++ do ++ rbconfig_tmp=`$rbconfig "print RbConfig::CONFIG@<:@'$var_name'@:>@"` ++ eval "rbconfig_$var_name=\"$rbconfig_tmp\"" ++ done ++ ++ AC_MSG_NOTICE([Configuring Ruby SWIG binding]) ++ ++ AC_CACHE_CHECK([for Ruby include path], [svn_cv_ruby_includes],[ ++ if test -d "$rbconfig_rubyhdrdir"; then ++ dnl Ruby >=1.9 ++ svn_cv_ruby_includes="-I. -I$rbconfig_rubyhdrdir" ++ if test -d "$rbconfig_rubyarchhdrdir"; then ++ dnl Ruby >=2.0 ++ svn_cv_ruby_includes="$svn_cv_ruby_includes -I$rbconfig_rubyarchhdrdir" ++ else ++ svn_cv_ruby_includes="$svn_cv_ruby_includes -I$rbconfig_rubyhdrdir/$rbconfig_arch" ++ fi ++ else ++ dnl Ruby 1.8 ++ svn_cv_ruby_includes="-I. -I$rbconfig_archdir" ++ fi ++ ]) ++ SWIG_RB_INCLUDES="\$(SWIG_INCLUDES) $svn_cv_ruby_includes" + +- SWIG_RB_COMPILE="none" +- SWIG_RB_LINK="none" +- SWIG_RB_ERRMSG="check config.log for details" +- if test "$SWIG_RB_RUBY" != "none"; then +- if test x"$SWIG_VERSION" = x"3""00""008"; then +- # Use a local variable to escape the '#' sign. +- ruby_swig_issue_602='https://subversion.apache.org/docs/release-notes/1.11#ruby-swig-issue-602' +- AC_MSG_WARN([Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602]) ++ AC_CACHE_CHECK([how to compile Ruby extensions], [svn_cv_ruby_compile],[ ++ svn_cv_ruby_compile="$rbconfig_CC $CFLAGS" ++ ]) ++ SWIG_RB_COMPILE="$svn_cv_ruby_compile" ++ SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-ansi]) ++ SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-std=c89]) ++ SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-std=c90]) ++ dnl FIXME: Check that the compiler for Ruby actually supports this flag ++ SWIG_RB_COMPILE="$SWIG_RB_COMPILE -Wno-int-to-pointer-cast" ++ ++ AC_CACHE_CHECK([how to link Ruby extensions], [svn_cv_ruby_link],[ ++ svn_cv_ruby_link="`$SWIG_RB_RUBY -e 'ARGV.shift; print ARGV.join(%q( ))' \ ++ $rbconfig_LDSHARED`" ++ svn_cv_ruby_link="$rbconfig_CC $svn_cv_ruby_link" ++ svn_cv_ruby_link="$svn_cv_ruby_link -shrext .$rbconfig_DLEXT" ++ ]) ++ SWIG_RB_LINK="$svn_cv_ruby_link" ++ ++ AC_CACHE_CHECK([how to link Ruby libraries], [ac_cv_ruby_libs], [ ++ ac_cv_ruby_libs="$rbconfig_LIBRUBYARG $rbconfig_LIBS" ++ ]) ++ SWIG_RB_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($ac_cv_ruby_libs)`" ++ ++ AC_MSG_CHECKING([for rb_errinfo]) ++ old_CFLAGS="$CFLAGS" ++ old_LIBS="$LIBS" ++ CFLAGS="$CFLAGS $svn_cv_ruby_includes" ++ SVN_STRIP_FLAG([CFLAGS], [-ansi]) ++ SVN_STRIP_FLAG([CFLAGS], [-std=c89]) ++ SVN_STRIP_FLAG([CFLAGS], [-std=c90]) ++ LIBS="$SWIG_RB_LIBS" ++ AC_LINK_IFELSE([AC_LANG_SOURCE([[ ++#include <ruby.h> ++int main() ++{rb_errinfo();}]])], have_rb_errinfo="yes", have_rb_errinfo="no") ++ if test "$have_rb_errinfo" = "yes"; then ++ AC_MSG_RESULT([yes]) ++ AC_DEFINE([HAVE_RB_ERRINFO], [1], ++ [Define to 1 if you have the `rb_errinfo' function.]) ++ else ++ AC_MSG_RESULT([no]) ++ fi ++ CFLAGS="$old_CFLAGS" ++ LIBS="$old_LIBS" ++ ++ AC_CACHE_VAL([svn_cv_ruby_sitedir],[ ++ svn_cv_ruby_sitedir="$rbconfig_sitedir" ++ ]) ++ AC_ARG_WITH([ruby-sitedir], ++ AS_HELP_STRING([--with-ruby-sitedir=SITEDIR], ++ [install Ruby bindings in SITEDIR ++ (default is same as ruby's one)]), ++ [svn_ruby_installdir="$withval"], ++ [svn_ruby_installdir="$svn_cv_ruby_sitedir"]) ++ ++ AC_MSG_CHECKING([where to install Ruby scripts]) ++ AC_CACHE_VAL([svn_cv_ruby_sitedir_libsuffix],[ ++ svn_cv_ruby_sitedir_libsuffix="`echo "$rbconfig_sitelibdir" | \ ++ $SED -e "s,^$rbconfig_sitedir,,"`" ++ ]) ++ SWIG_RB_SITE_LIB_DIR="${svn_ruby_installdir}${svn_cv_ruby_sitedir_libsuffix}" ++ AC_MSG_RESULT([$SWIG_RB_SITE_LIB_DIR]) ++ ++ AC_MSG_CHECKING([where to install Ruby extensions]) ++ AC_CACHE_VAL([svn_cv_ruby_sitedir_archsuffix],[ ++ svn_cv_ruby_sitedir_archsuffix="`echo "$rbconfig_sitearchdir" | \ ++ $SED -e "s,^$rbconfig_sitedir,,"`" ++ ]) ++ SWIG_RB_SITE_ARCH_DIR="${svn_ruby_installdir}${svn_cv_ruby_sitedir_archsuffix}" ++ AC_MSG_RESULT([$SWIG_RB_SITE_ARCH_DIR]) ++ ++ AC_MSG_CHECKING([how to use output level for Ruby bindings tests]) ++ AC_CACHE_VAL([svn_cv_ruby_test_verbose],[ ++ svn_cv_ruby_test_verbose="normal" ++ ]) ++ AC_ARG_WITH([ruby-test-verbose], ++ AS_HELP_STRING([--with-ruby-test-verbose=LEVEL], ++ [how to use output level for Ruby bindings tests ++ (default is normal)]), ++ [svn_ruby_test_verbose="$withval"], ++ [svn_ruby_test_verbose="$svn_cv_ruby_test_verbose"]) ++ SWIG_RB_TEST_VERBOSE="$svn_ruby_test_verbose" ++ AC_MSG_RESULT([$SWIG_RB_TEST_VERBOSE]) ++ ++ dnl SWIG Ruby bindings successfully configured, clear the error message ++ SWIG_RB_ERRMSG="" ++ fi + fi +- rbconfig="$SWIG_RB_RUBY -rrbconfig -e " ++ ], ++ [ ++ # in release mode ++ SWIG_PY_COMPILE="none" ++ SWIG_PY_LINK="none" ++ SWIG_PY_OPTS="none" ++ SWIG_PY_ERRMSG="check config.log for details" ++ if test "$SWIG_PY_PYTHON" = "none"; then ++ SWIG_PY_ERRMSG="You specfied not to build Python bindings or \ ++suitable Python interpreter is not found." ++ else ++ AC_MSG_NOTICE([Configuring python swig binding]) ++ ++ AC_CACHE_CHECK([for Python includes], [ac_cv_python_includes],[ ++ ac_cv_python_includes="`$SWIG_PY_PYTHON ${abs_srcdir}/build/get-py-info.py --includes`" ++ ]) ++ SWIG_PY_INCLUDES="\$(SWIG_INCLUDES) $ac_cv_python_includes" + +- for var_name in arch archdir CC LDSHARED DLEXT LIBS LIBRUBYARG \ +- rubyhdrdir rubyarchhdrdir sitedir sitelibdir sitearchdir libdir +- do +- rbconfig_tmp=`$rbconfig "print RbConfig::CONFIG@<:@'$var_name'@:>@"` +- eval "rbconfig_$var_name=\"$rbconfig_tmp\"" +- done +- +- AC_MSG_NOTICE([Configuring Ruby SWIG binding]) +- +- AC_CACHE_CHECK([for Ruby include path], [svn_cv_ruby_includes],[ +- if test -d "$rbconfig_rubyhdrdir"; then +- dnl Ruby >=1.9 +- svn_cv_ruby_includes="-I. -I$rbconfig_rubyhdrdir" +- if test -d "$rbconfig_rubyarchhdrdir"; then +- dnl Ruby >=2.0 +- svn_cv_ruby_includes="$svn_cv_ruby_includes -I$rbconfig_rubyarchhdrdir" ++ if test "$ac_cv_python_includes" = "none"; then ++ SWIG_PY_ERRMSG="no distutils found" ++ AC_MSG_WARN([python bindings cannot be built without distutils module]) + else +- svn_cv_ruby_includes="$svn_cv_ruby_includes -I$rbconfig_rubyhdrdir/$rbconfig_arch" ++ ++ python_header_found="no" ++ ++ save_cppflags="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS $ac_cv_python_includes" ++ AC_CHECK_HEADER(Python.h, [ ++ python_header_found="yes" ++ ]) ++ CPPFLAGS="$save_cppflags" ++ ++ if test "$python_header_found" = "no"; then ++ SWIG_PY_ERRMSG="no Python.h found" ++ AC_MSG_WARN([Python.h not found; disabling python swig bindings]) ++ else ++ SVN_PY3C() ++ ++ if test "$py3c_found" = "no"; then ++ SWIG_PY_ERRMSG="py3c library not found" ++ AC_MSG_WARN([py3c library not found; disabling python swig bindings]) ++ else ++ AC_CACHE_CHECK([for compiling Python extensions], [ac_cv_python_compile],[ ++ ac_cv_python_compile="`$SWIG_PY_PYTHON ${abs_srcdir}/build/get-py-info.py --compile`" ++ ]) ++ SWIG_PY_COMPILE="$ac_cv_python_compile $CFLAGS" ++ ++ AC_CACHE_CHECK([for linking Python extensions], [ac_cv_python_link],[ ++ ac_cv_python_link="`$SWIG_PY_PYTHON ${abs_srcdir}/build/get-py-info.py --link`" ++ ]) ++ SWIG_PY_LINK="$ac_cv_python_link" ++ ++ AC_CACHE_CHECK([for linking Python libraries], [ac_cv_python_libs],[ ++ ac_cv_python_libs="`$SWIG_PY_PYTHON ${abs_srcdir}/build/get-py-info.py --libs`" ++ ]) ++ SWIG_PY_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($ac_cv_python_libs)`" ++ ++ SWIG_PY_ERRMSG="" ++ fi ++ fi + fi ++ fi ++ ++ SWIG_PL_ERRMSG="check config.log for details" ++ if test "$SWIG_PL_PERL" = "none"; then ++ SWIG_PL_ERRMSG="You specfied not to build Perl bindings or \ ++suitable Perl interpreter is not found." + else +- dnl Ruby 1.8 +- svn_cv_ruby_includes="-I. -I$rbconfig_archdir" ++ AC_MSG_CHECKING([perl version]) ++ dnl Note that the q() bit is there to avoid unbalanced brackets ++ dnl which m4 really doesn't like. ++ PERL_VERSION="`$SWIG_PL_PERL -e 'q([[); print $]] * 1000000,$/;'`" ++ AC_MSG_RESULT([$PERL_VERSION]) ++ if test "$PERL_VERSION" -ge "5008000"; then ++ SWIG_PL_INCLUDES="\$(SWIG_INCLUDES) `$SWIG_PL_PERL -MExtUtils::Embed -e ccopts`" ++ SWIG_PL_LINK="`$SWIG_PL_PERL -MExtUtils::Embed -e ldopts`" ++ SWIG_PL_LINK="`SVN_REMOVE_STANDARD_LIB_DIRS($SWIG_PL_LINK)`" ++ ++ dnl SWIG Perl bindings successfully configured, clear the error message ++ SWIG_PL_ERRMSG="" ++ else ++ AC_MSG_WARN([perl bindings require perl 5.8.0 or newer.]) ++ fi + fi +- ]) +- SWIG_RB_INCLUDES="\$(SWIG_INCLUDES) $svn_cv_ruby_includes" + +- AC_CACHE_CHECK([how to compile Ruby extensions], [svn_cv_ruby_compile],[ +- svn_cv_ruby_compile="$rbconfig_CC $CFLAGS" +- ]) +- SWIG_RB_COMPILE="$svn_cv_ruby_compile" +- SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-ansi]) +- SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-std=c89]) +- SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-std=c90]) +- dnl FIXME: Check that the compiler for Ruby actually supports this flag +- SWIG_RB_COMPILE="$SWIG_RB_COMPILE -Wno-int-to-pointer-cast" +- +- AC_CACHE_CHECK([how to link Ruby extensions], [svn_cv_ruby_link],[ +- svn_cv_ruby_link="`$SWIG_RB_RUBY -e 'ARGV.shift; print ARGV.join(%q( ))' \ +- $rbconfig_LDSHARED`" +- svn_cv_ruby_link="$rbconfig_CC $svn_cv_ruby_link" +- svn_cv_ruby_link="$svn_cv_ruby_link -shrext .$rbconfig_DLEXT" +- ]) +- SWIG_RB_LINK="$svn_cv_ruby_link" ++ SWIG_RB_COMPILE="none" ++ SWIG_RB_LINK="none" ++ SWIG_RB_ERRMSG="check config.log for details" ++ if test "$SWIG_RB_RUBY" = "none"; then ++ SWIG_RB_ERRMSG="You specfied not to build Ruby bindings or \ ++suitable Ruby interpreter is not found." ++ else ++ rbconfig="$SWIG_RB_RUBY -rrbconfig -e " + +- AC_CACHE_CHECK([how to link Ruby libraries], [ac_cv_ruby_libs], [ +- ac_cv_ruby_libs="$rbconfig_LIBRUBYARG $rbconfig_LIBS" +- ]) +- SWIG_RB_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($ac_cv_ruby_libs)`" ++ for var_name in arch archdir CC LDSHARED DLEXT LIBS LIBRUBYARG \ ++ rubyhdrdir rubyarchhdrdir sitedir sitelibdir sitearchdir libdir ++ do ++ rbconfig_tmp=`$rbconfig "print RbConfig::CONFIG@<:@'$var_name'@:>@"` ++ eval "rbconfig_$var_name=\"$rbconfig_tmp\"" ++ done ++ ++ AC_MSG_NOTICE([Configuring Ruby SWIG binding]) ++ ++ AC_CACHE_CHECK([for Ruby include path], [svn_cv_ruby_includes],[ ++ if test -d "$rbconfig_rubyhdrdir"; then ++ dnl Ruby >=1.9 ++ svn_cv_ruby_includes="-I. -I$rbconfig_rubyhdrdir" ++ if test -d "$rbconfig_rubyarchhdrdir"; then ++ dnl Ruby >=2.0 ++ svn_cv_ruby_includes="$svn_cv_ruby_includes -I$rbconfig_rubyarchhdrdir" ++ else ++ svn_cv_ruby_includes="$svn_cv_ruby_includes -I$rbconfig_rubyhdrdir/$rbconfig_arch" ++ fi ++ else ++ dnl Ruby 1.8 ++ svn_cv_ruby_includes="-I. -I$rbconfig_archdir" ++ fi ++ ]) ++ SWIG_RB_INCLUDES="\$(SWIG_INCLUDES) $svn_cv_ruby_includes" + +- AC_MSG_CHECKING([for rb_errinfo]) +- old_CFLAGS="$CFLAGS" +- old_LIBS="$LIBS" +- CFLAGS="$CFLAGS $svn_cv_ruby_includes" +- SVN_STRIP_FLAG([CFLAGS], [-ansi]) +- SVN_STRIP_FLAG([CFLAGS], [-std=c89]) +- SVN_STRIP_FLAG([CFLAGS], [-std=c90]) +- LIBS="$SWIG_RB_LIBS" +- AC_LINK_IFELSE([AC_LANG_SOURCE([[ ++ AC_CACHE_CHECK([how to compile Ruby extensions], [svn_cv_ruby_compile],[ ++ svn_cv_ruby_compile="$rbconfig_CC $CFLAGS" ++ ]) ++ SWIG_RB_COMPILE="$svn_cv_ruby_compile" ++ SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-ansi]) ++ SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-std=c89]) ++ SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-std=c90]) ++ dnl FIXME: Check that the compiler for Ruby actually supports this flag ++ SWIG_RB_COMPILE="$SWIG_RB_COMPILE -Wno-int-to-pointer-cast" ++ ++ AC_CACHE_CHECK([how to link Ruby extensions], [svn_cv_ruby_link],[ ++ svn_cv_ruby_link="`$SWIG_RB_RUBY -e 'ARGV.shift; print ARGV.join(%q( ))' \ ++ $rbconfig_LDSHARED`" ++ svn_cv_ruby_link="$rbconfig_CC $svn_cv_ruby_link" ++ svn_cv_ruby_link="$svn_cv_ruby_link -shrext .$rbconfig_DLEXT" ++ ]) ++ SWIG_RB_LINK="$svn_cv_ruby_link" ++ ++ AC_CACHE_CHECK([how to link Ruby libraries], [ac_cv_ruby_libs], [ ++ ac_cv_ruby_libs="$rbconfig_LIBRUBYARG $rbconfig_LIBS" ++ ]) ++ SWIG_RB_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($ac_cv_ruby_libs)`" ++ ++ AC_MSG_CHECKING([for rb_errinfo]) ++ old_CFLAGS="$CFLAGS" ++ old_LIBS="$LIBS" ++ CFLAGS="$CFLAGS $svn_cv_ruby_includes" ++ SVN_STRIP_FLAG([CFLAGS], [-ansi]) ++ SVN_STRIP_FLAG([CFLAGS], [-std=c89]) ++ SVN_STRIP_FLAG([CFLAGS], [-std=c90]) ++ LIBS="$SWIG_RB_LIBS" ++ AC_LINK_IFELSE([AC_LANG_SOURCE([[ + #include <ruby.h> + int main() + {rb_errinfo();}]])], have_rb_errinfo="yes", have_rb_errinfo="no") +- if test "$have_rb_errinfo" = "yes"; then +- AC_MSG_RESULT([yes]) +- AC_DEFINE([HAVE_RB_ERRINFO], [1], +- [Define to 1 if you have the `rb_errinfo' function.]) +- else +- AC_MSG_RESULT([no]) +- fi +- CFLAGS="$old_CFLAGS" +- LIBS="$old_LIBS" ++ if test "$have_rb_errinfo" = "yes"; then ++ AC_MSG_RESULT([yes]) ++ AC_DEFINE([HAVE_RB_ERRINFO], [1], ++ [Define to 1 if you have the `rb_errinfo' function.]) ++ else ++ AC_MSG_RESULT([no]) ++ fi ++ CFLAGS="$old_CFLAGS" ++ LIBS="$old_LIBS" + +- AC_CACHE_VAL([svn_cv_ruby_sitedir],[ +- svn_cv_ruby_sitedir="$rbconfig_sitedir" +- ]) +- AC_ARG_WITH([ruby-sitedir], +- AS_HELP_STRING([--with-ruby-sitedir=SITEDIR], +- [install Ruby bindings in SITEDIR +- (default is same as ruby's one)]), +- [svn_ruby_installdir="$withval"], +- [svn_ruby_installdir="$svn_cv_ruby_sitedir"]) +- +- AC_MSG_CHECKING([where to install Ruby scripts]) +- AC_CACHE_VAL([svn_cv_ruby_sitedir_libsuffix],[ +- svn_cv_ruby_sitedir_libsuffix="`echo "$rbconfig_sitelibdir" | \ +- $SED -e "s,^$rbconfig_sitedir,,"`" +- ]) +- SWIG_RB_SITE_LIB_DIR="${svn_ruby_installdir}${svn_cv_ruby_sitedir_libsuffix}" +- AC_MSG_RESULT([$SWIG_RB_SITE_LIB_DIR]) ++ AC_CACHE_VAL([svn_cv_ruby_sitedir],[ ++ svn_cv_ruby_sitedir="$rbconfig_sitedir" ++ ]) ++ AC_ARG_WITH([ruby-sitedir], ++ AS_HELP_STRING([--with-ruby-sitedir=SITEDIR], ++ [install Ruby bindings in SITEDIR ++ (default is same as ruby's one)]), ++ [svn_ruby_installdir="$withval"], ++ [svn_ruby_installdir="$svn_cv_ruby_sitedir"]) ++ ++ AC_MSG_CHECKING([where to install Ruby scripts]) ++ AC_CACHE_VAL([svn_cv_ruby_sitedir_libsuffix],[ ++ svn_cv_ruby_sitedir_libsuffix="`echo "$rbconfig_sitelibdir" | \ ++ $SED -e "s,^$rbconfig_sitedir,,"`" ++ ]) ++ SWIG_RB_SITE_LIB_DIR="${svn_ruby_installdir}${svn_cv_ruby_sitedir_libsuffix}" ++ AC_MSG_RESULT([$SWIG_RB_SITE_LIB_DIR]) + +- AC_MSG_CHECKING([where to install Ruby extensions]) +- AC_CACHE_VAL([svn_cv_ruby_sitedir_archsuffix],[ +- svn_cv_ruby_sitedir_archsuffix="`echo "$rbconfig_sitearchdir" | \ +- $SED -e "s,^$rbconfig_sitedir,,"`" +- ]) +- SWIG_RB_SITE_ARCH_DIR="${svn_ruby_installdir}${svn_cv_ruby_sitedir_archsuffix}" +- AC_MSG_RESULT([$SWIG_RB_SITE_ARCH_DIR]) ++ AC_MSG_CHECKING([where to install Ruby extensions]) ++ AC_CACHE_VAL([svn_cv_ruby_sitedir_archsuffix],[ ++ svn_cv_ruby_sitedir_archsuffix="`echo "$rbconfig_sitearchdir" | \ ++ $SED -e "s,^$rbconfig_sitedir,,"`" ++ ]) ++ SWIG_RB_SITE_ARCH_DIR="${svn_ruby_installdir}${svn_cv_ruby_sitedir_archsuffix}" ++ AC_MSG_RESULT([$SWIG_RB_SITE_ARCH_DIR]) + +- AC_MSG_CHECKING([how to use output level for Ruby bindings tests]) +- AC_CACHE_VAL([svn_cv_ruby_test_verbose],[ +- svn_cv_ruby_test_verbose="normal" +- ]) +- AC_ARG_WITH([ruby-test-verbose], +- AS_HELP_STRING([--with-ruby-test-verbose=LEVEL], +- [how to use output level for Ruby bindings tests +- (default is normal)]), +- [svn_ruby_test_verbose="$withval"], +- [svn_ruby_test_verbose="$svn_cv_ruby_test_verbose"]) +- SWIG_RB_TEST_VERBOSE="$svn_ruby_test_verbose" +- AC_MSG_RESULT([$SWIG_RB_TEST_VERBOSE]) ++ AC_MSG_CHECKING([how to use output level for Ruby bindings tests]) ++ AC_CACHE_VAL([svn_cv_ruby_test_verbose],[ ++ svn_cv_ruby_test_verbose="normal" ++ ]) ++ AC_ARG_WITH([ruby-test-verbose], ++ AS_HELP_STRING([--with-ruby-test-verbose=LEVEL], ++ [how to use output level for Ruby bindings tests ++ (default is normal)]), ++ [svn_ruby_test_verbose="$withval"], ++ [svn_ruby_test_verbose="$svn_cv_ruby_test_verbose"]) ++ SWIG_RB_TEST_VERBOSE="$svn_ruby_test_verbose" ++ AC_MSG_RESULT([$SWIG_RB_TEST_VERBOSE]) + +- dnl SWIG Ruby bindings successfully configured, clear the error message +- SWIG_RB_ERRMSG="" +- fi ++ dnl SWIG Ruby bindings successfully configured, clear the error message ++ SWIG_RB_ERRMSG="" ++ fi ++ ]) + AC_SUBST(SWIG) + AC_SUBST(SWIG_PY_INCLUDES) + AC_SUBST(SWIG_PY_COMPILE) + +Modified: subversion/trunk/configure.ac +============================================================================== +--- subversion/trunk/configure.ac Fri Dec 18 08:23:03 2020 (r1) ++++ subversion/trunk/configure.ac Fri Dec 18 09:32:35 2020 (r2) +@@ -1321,21 +1321,36 @@ + + AC_ARG_WITH(swig_perl, + [AS_HELP_STRING([[--with-swig-perl[=PATH|auto|no]|--without-swig-perl]], +- [specify path to SWIG bindings target Perl interpreter [default=auto]])], ++ [Specify path to SWIG bindings target Perl interpreter ++ [default=auto]. If the option value is 'auto' or it is not ++ specfied, search for the Perl program.] ++ m4_ifndef([SVN_RELEASE_MODE], ++ [[Implies --with-swig=yes if PATH is specfied or Perl ++ is found on 'auto' detection.]])) ++], + [], + [ +-if test "$PERL" = "no" -o "$PERL" = "none"; then +- with_swig_perl=no +- AC_MSG_WARN([Disabling the SWIG Perl bindings' build by setting the PERL]) +- AC_MSG_WARN([environment variable to "none" is deprecated.]) +- AC_MSG_WARN([]) +- AC_MSG_WARN([Please use --without-swig-perl instead.]) ++if test -n "$PERL"; then ++ if test "$PERL" = "no" -o "$PERL" = "none"; then ++ with_swig_perl=no ++ AC_MSG_WARN([Disabling the SWIG Perl bindings' build by setting the PERL]) ++ AC_MSG_WARN([environment variable to "none" is deprecated.]) ++ AC_MSG_WARN([]) ++ AC_MSG_WARN([Please use --without-swig-perl instead.]) ++ else ++ with_swig_perl=auto ++ AC_MSG_WARN([Specfying the Perl path for SWIG Perl bindings' build]) ++ AC_MSG_WARN([by setting the PERL environment variable is deprecated.]) ++ AC_MSG_WARN([]) ++ AC_MSG_WARN([Please use --with-swig-perl=PATH instead.]) ++ fi + else + with_swig_perl=auto + fi + ]) + case $with_swig_perl in + yes|auto|"") ++ # honor PERL variable only if it is set and is full path. + AC_PATH_PROG(PERL, perl, none) + SWIG_PL_PERL="$PERL" + ;; +@@ -1351,14 +1366,16 @@ + # Python: as a target of SWIG Python bindings + AC_ARG_WITH(swig_python, + [AS_HELP_STRING([[--with-swig-python[=PATH|auto|no]|--without-swig-python]], +- [specify path to SWIG bindings target Python interpreter [default=auto]])], ++ [Specify path to SWIG bindings target Python interpreter ++ [default=auto]. If the option value is 'auto' or it is not ++ specfied, search for the Python program.] ++ m4_ifndef([SVN_RELEASE_MODE], ++ [[Implies --with-swig=yes if PATH is specfied or Python ++ is found on 'auto' detection.]])) ++], + [], + [ +-if test "$PYTHON" = "no" -o "$PYTHON" = "none"; then +- with_swig_python=no +-else + with_swig_python=auto +-fi + ]) + case $with_swig_python in + yes|auto|"") +@@ -1375,21 +1392,36 @@ + + AC_ARG_WITH(swig_ruby, + [AS_HELP_STRING([[--with-swig-ruby[=PATH|auto|no]|--without-swig-ruby]], +- [specify path to SWIG bindings target Ruby interpreter [default=auto]])], ++ [specify path to SWIG bindings target Ruby interpreter ++ [default=auto]. If the option value is 'auto' or it is not ++ specfied, search for the Ruby program.] ++ m4_ifndef([SVN_RELEASE_MODE], ++ [[Implies --with-swig=yes if PATH is specfied or Ruby ++ is found on 'auto' detection.]])) ++], + [], + [ +-if test "$RUBY" = "no" -o "$RUBY" = "none"; then +- with_swig_ruby=no +- AC_MSG_WARN([Disabling the SWIG Ruby bindings' build by setting the RUBY]) +- AC_MSG_WARN([environment variable to "none" is deprecated.]) +- AC_MSG_WARN([]) +- AC_MSG_WARN([Please use --without-swig-ruby instead.]) ++if test -n "$RUBY"; then ++ if test "$RUBY" = "no" -o "$RUBY" = "none"; then ++ with_swig_ruby=no ++ AC_MSG_WARN([Disabling the SWIG Ruby bindings' build by setting the RUBY]) ++ AC_MSG_WARN([environment variable to "none" is deprecated.]) ++ AC_MSG_WARN([]) ++ AC_MSG_WARN([Please use --without-swig-ruby instead.]) ++ else ++ with_swig_ruby="$RUBY" ++ AC_MSG_WARN([Specfying the Ruby path for SWIG Ruby bindings' build]) ++ AC_MSG_WARN([by setting the RUBY environment variable is deprecated.]) ++ AC_MSG_WARN([]) ++ AC_MSG_WARN([Please use --with-swig-ruby=PATH instead.]) ++ fi + else + with_swig_ruby=auto + fi + ]) + case $with_swig_ruby in + yes|auto|"") ++ # honor RUBY variable only if it is set and is full path. + AC_PATH_PROGS(RUBY, ruby ruby1 ruby1.8 ruby18 ruby1.9 ruby19 ruby1.9.3 ruby193 ruby2 ruby2.0 ruby20 ruby2.1 ruby21 ruby2.2 ruby22 ruby2.3 ruby23 ruby2.4 ruby24, none) + SWIG_RB_RUBY="$RUBY" + ;; + +Modified: subversion/trunk/subversion/bindings/swig/INSTALL +============================================================================== +--- subversion/trunk/subversion/bindings/swig/INSTALL Fri Dec 18 08:23:03 2020 (r1) ++++ subversion/trunk/subversion/bindings/swig/INSTALL Fri Dec 18 09:32:35 2020 (r2) +@@ -141,7 +141,13 @@ + + See Subversion's own INSTALL file for details. + +- Make sure that Subversion's ./configure script sees your installed SWIG! ++ If you are using a Subversion distribution tarball and want to rebuild ++ the SWIG language bindings C source files with your installed SWIG, ++ you need to execute autogen.sh, because the bundled configure script ++ and makefiles don't support it. ++ ++ If you don't use SWIG bindings C source files already generated, ++ make sure that Subversion's ./configure script sees your installed SWIG! + It tries to detect SWIG near the very end of its output. + You can find it by running 'grep "^SWIG=" config.log'. + Added: subversion/trunk/tools/hook-scripts/mailer/tests/t2-reference/output.1902575 URL: http://svn.apache.org/viewvc/subversion/trunk/tools/hook-scripts/mailer/tests/t2-reference/output.1902575?rev=1914650&view=auto ============================================================================== --- subversion/trunk/tools/hook-scripts/mailer/tests/t2-reference/output.1902575 (added) +++ subversion/trunk/tools/hook-scripts/mailer/tests/t2-reference/output.1902575 Thu Dec 14 07:42:34 2023 @@ -0,0 +1,59 @@ +Group: defaults +Subject: r2 - subversion/trunk/tools/dist + +Author: hartmannathan +Date: Fri Jul 8 11:41:30 2022 +New Revision: 2 + +Log: +* tools/dist/make-keys.sh: Adding make-keys.sh script that was floating + around on the mailing list. This generates a KEYS file by fetching the + public keys of full committers in COMMITTERS. + +Suggested by: dsahlberg + +Added: + subversion/trunk/tools/dist/make-keys.sh (contents, props changed) + +Added: subversion/trunk/tools/dist/make-keys.sh +============================================================================== +--- /dev/null 00:00:00 1970 (empty, because file is newly added) ++++ subversion/trunk/tools/dist/make-keys.sh Fri Jul 8 11:41:30 2022 (r2) +@@ -0,0 +1,37 @@ ++#!/bin/sh ++ ++# Script to construct a KEYS file by fetching public keys of full ++# committers as listed in the COMMITTERS file from people.apache.org. ++# ++# Based on "a piece of code" posted by danielsh on 22 Mar 2022 in the ++# thread "Questions on Release Management Process": ++# https://mail-archives.apache.org/mod_mbox/subversion-dev/202203.mbox/%3C20220323035056.GY7687%40tarpaulin.shahaf.local2%3E ++# ++# Run in the top directory of a checkout of SVN's sources, where the ++# COMMITTERS file is located. ++# ++# This will download a bunch of .asc files and then cat them together ++# to form a KEYS file. ++# ++# Requires curl. (Could be reworked to use wget, too, I suppose.) ++ ++if [ ! -f COMMITTERS ]; then ++ echo "COMMITTERS file not found." ++ exit 1 ++fi ++ ++for availid in $( perl -anE 'say $F[0] if (/^Blanket/../END ACTIVE FULL.*SCRIPTS LOOK FOR IT/ and /@/)' < COMMITTERS ) ++do ++ key_url=https://people.apache.org/keys/committer/${availid}.asc ++ ++ echo -n "Fetching ${key_url}..." ++ curl -sSfO ${key_url} 2> /dev/null ++ ++ if [ $? -eq 0 ]; then ++ echo " OK" ++ else ++ echo " MISSING" ++ fi ++done ++ ++cat *.asc > KEYS