summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorZeph332015-09-04 20:44:03 +0200
committerZeph332015-09-04 20:44:03 +0200
commit7f2d688155cf59a2fa09513a81490b40d3703e22 (patch)
tree91bd831769ee45f28acad0b619a057d334d977e3
parent4a8cda0f027036c90e778eeb4444e90fc4f6b4a7 (diff)
downloadaur-7f2d688155cf59a2fa09513a81490b40d3703e22.tar.gz
patch for svn 1.9
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD9
-rw-r--r--svn1.9.patch833
3 files changed, 841 insertions, 5 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 21ff09a1816c..1f4614873e01 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = python2-pysvn
pkgdesc = Python2 SVN Extension.
pkgver = 1.7.10
- pkgrel = 1
+ pkgrel = 2
url = http://pysvn.tigris.org
arch = any
license = APACHE
@@ -16,7 +16,9 @@ pkgbase = python2-pysvn
conflicts = pysvn-py2
replaces = pysvn-py2
source = http://pysvn.barrys-emacs.org/source_kits/pysvn-1.7.10.tar.gz
+ source = svn1.9.patch
md5sums = bf7527591d5086bd6d01cdc0d09a076e
+ md5sums = cca4189218e968f4ceebdfa3fc14cd09
pkgname = python2-pysvn
diff --git a/PKGBUILD b/PKGBUILD
index 02116b532fa7..84ef07c89046 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,7 +2,7 @@
pkgname=python2-pysvn
pkgver=1.7.10
-pkgrel=1
+pkgrel=2
pkgdesc="Python2 SVN Extension."
arch=('any')
url="http://pysvn.tigris.org"
@@ -12,11 +12,12 @@ depends=('python2>=2.7' 'subversion' 'apr' 'expat' 'neon' 'openssl')
conflicts=('pysvn<=1.7.4-3' 'pysvn-py2')
replaces=('pysvn-py2')
provides=('pysvn-py2')
-source=("http://pysvn.barrys-emacs.org/source_kits/pysvn-$pkgver.tar.gz")
-md5sums=('bf7527591d5086bd6d01cdc0d09a076e')
+source=("http://pysvn.barrys-emacs.org/source_kits/pysvn-$pkgver.tar.gz" 'svn1.9.patch')
+md5sums=('bf7527591d5086bd6d01cdc0d09a076e' 'cca4189218e968f4ceebdfa3fc14cd09')
build() {
- cd $srcdir/pysvn-$pkgver/Source
+ cd $srcdir/pysvn-$pkgver/Source
+ patch -p1 -i $srcdir/svn1.9.patch
python2 setup.py configure || return 1
make || return 1
}
diff --git a/svn1.9.patch b/svn1.9.patch
new file mode 100644
index 000000000000..9ae8bf7f177f
--- /dev/null
+++ b/svn1.9.patch
@@ -0,0 +1,833 @@
+diff -crB old/pysvn_client_cmd_info.cpp new/pysvn_client_cmd_info.cpp
+*** old/pysvn_client_cmd_info.cpp 2013-04-26 10:31:54.000000000 +0200
+--- new/pysvn_client_cmd_info.cpp 2015-09-04 20:17:52.734971925 +0200
+***************
+*** 20,26 ****
+ #include "pysvn_svnenv.hpp"
+ #include "svn_path.h"
+ #include "svn_config.h"
+- #include "svn_sorts.h"
+ #include "pysvn_static_strings.hpp"
+
+ static const char *g_utf_8 = "utf-8";
+--- 20,25 ----
+***************
+*** 1380,1395 ****
+ throw_client_error( e );
+ }
+
+! apr_array_header_t *statusarray = svn_sort__hash( status_hash, svn_sort_compare_items_as_paths, pool );
+
+! // Loop over array, printing each name/status-structure
+! for (int i = statusarray->nelts-1; i >= 0; i--)
+ {
+! const svn_sort__item_t *item = &APR_ARRAY_IDX( statusarray, i, const svn_sort__item_t );
+! pysvn_wc_status_t *status = (pysvn_wc_status_t *)item->value;
+
+ entries_list.append( toObject(
+! Py::String( osNormalisedPath( (const char *)item->key, pool ), "UTF-8" ),
+ *status,
+ pool,
+ m_wrapper_status,
+--- 1379,1398 ----
+ throw_client_error( e );
+ }
+
+! // Loop over array, returning each name/status-structure
+
+! for( apr_hash_index_t *hi = apr_hash_first( pool, status_hash );
+! hi != NULL;
+! hi = apr_hash_next( hi ) )
+ {
+! const void *key;
+! void *val;
+! apr_hash_this( hi, &key, NULL, &val );
+!
+! pysvn_wc_status_t *status = (pysvn_wc_status_t *)val;
+
+ entries_list.append( toObject(
+! Py::String( osNormalisedPath( (const char *)key, pool ), "UTF-8" ),
+ *status,
+ pool,
+ m_wrapper_status,
+***************
+*** 1397,1401 ****
+--- 1400,1406 ----
+ m_wrapper_lock ) );
+ }
+
++ entries_list.sort();
++
+ return entries_list;
+ }
+diff -crB old/pysvn_client_cmd_list.cpp new/pysvn_client_cmd_list.cpp
+*** old/pysvn_client_cmd_list.cpp 2010-01-17 17:54:24.000000000 +0100
+--- new/pysvn_client_cmd_list.cpp 2015-09-04 20:19:02.504631028 +0200
+***************
+*** 20,33 ****
+ #include "pysvn_svnenv.hpp"
+ #include "svn_path.h"
+ #include "svn_config.h"
+- #include "svn_sorts.h"
+ #include "pysvn_static_strings.hpp"
+
+- static int compare_items_as_paths( const svn_sort__item_t *a, const svn_sort__item_t *b)
+- {
+- return svn_path_compare_paths ((const char *)a->key, (const char *)b->key);
+- }
+-
+ Py::Object pysvn_client::cmd_ls( const Py::Tuple &a_args, const Py::Dict &a_kws )
+ {
+ static argument_description args_desc[] =
+--- 20,27 ----
+***************
+*** 100,108 ****
+ throw_client_error( e );
+ }
+
+-
+- apr_array_header_t *array = svn_sort__hash( hash, compare_items_as_paths, pool );
+-
+ std::string base_path;
+ if( !norm_path.empty() )
+ {
+--- 94,99 ----
+***************
+*** 113,124 ****
+ // convert the entries into python objects
+ Py::List entries_list;
+
+! for( int i = 0; i < array->nelts; ++i )
+ {
+! svn_sort__item_t *item = &APR_ARRAY_IDX( array, i, svn_sort__item_t );
+
+! const char *utf8_entryname = static_cast<const char *>( item->key );
+! svn_dirent_t *dirent = static_cast<svn_dirent_t *>( apr_hash_get( hash, utf8_entryname, item->klen ) );
+
+ std::string full_name( base_path );
+ full_name += utf8_entryname;
+--- 104,119 ----
+ // convert the entries into python objects
+ Py::List entries_list;
+
+! for( apr_hash_index_t *hi = apr_hash_first( pool, hash );
+! hi != NULL;
+! hi = apr_hash_next( hi ) )
+ {
+! const void *key;
+! void *val;
+! apr_hash_this( hi, &key, NULL, &val );
+
+! const char *utf8_entryname = static_cast<const char *>( key );
+! svn_dirent_t *dirent = static_cast<svn_dirent_t *>( val );
+
+ std::string full_name( base_path );
+ full_name += utf8_entryname;
+diff -crB old/pysvn_enum_string.cpp new/pysvn_enum_string.cpp
+*** old/pysvn_enum_string.cpp 2013-07-01 11:12:18.000000000 +0200
+--- new/pysvn_enum_string.cpp 2015-09-04 20:18:50.842688024 +0200
+***************
+*** 22,49 ****
+ : m_type_name( "opt_revision_kind" )
+ {
+ // No revision information given.
+! add(svn_opt_revision_unspecified, "unspecified");
+
+ // revision given as number
+! add(svn_opt_revision_number, "number");
+
+ // revision given as date
+! add(svn_opt_revision_date, "date");
+
+ // rev of most recent change
+! add(svn_opt_revision_committed, "committed");
+
+ // (rev of most recent change) - 1
+! add(svn_opt_revision_previous, "previous");
+
+ // .svn/entries current revision
+! add(svn_opt_revision_base, "base");
+
+ // current, plus local mods
+! add(svn_opt_revision_working, "working");
+
+ // repository youngest
+! add(svn_opt_revision_head, "head");
+ }
+
+ template <> EnumString< svn_wc_notify_action_t >::EnumString()
+--- 22,49 ----
+ : m_type_name( "opt_revision_kind" )
+ {
+ // No revision information given.
+! add( svn_opt_revision_unspecified, "unspecified" );
+
+ // revision given as number
+! add( svn_opt_revision_number, "number" );
+
+ // revision given as date
+! add( svn_opt_revision_date, "date" );
+
+ // rev of most recent change
+! add( svn_opt_revision_committed, "committed" );
+
+ // (rev of most recent change) - 1
+! add( svn_opt_revision_previous, "previous" );
+
+ // .svn/entries current revision
+! add( svn_opt_revision_base, "base" );
+
+ // current, plus local mods
+! add( svn_opt_revision_working, "working" );
+
+ // repository youngest
+! add( svn_opt_revision_head, "head" );
+ }
+
+ template <> EnumString< svn_wc_notify_action_t >::EnumString()
+***************
+*** 183,188 ****
+--- 184,196 ----
+ add( svn_wc_notify_foreign_copy_begin, "foreign_copy_begin" );
+ add( svn_wc_notify_move_broken, "move_broken" );
+ #endif
++ #if defined( PYSVN_HAS_SVN_1_9 )
++ add( svn_wc_notify_cleanup_external, "cleanup_external" );
++ add( svn_wc_notify_failed_requires_target, "failed_requires_target" );
++ add( svn_wc_notify_info_external, "info_external" );
++ add( svn_wc_notify_commit_finalizing, "commit_finalizing" );
++ #endif
++
+ }
+
+ template <> EnumString< svn_wc_status_kind >::EnumString()
+***************
+*** 275,280 ****
+--- 283,292 ----
+
+ // Modified state got conflicting mods.
+ add( svn_wc_notify_state_conflicted, "conflicted" );
++
++ // QQQ: When was this symbol added?
++ // The source to copy the file from is missing.
++ add( svn_wc_notify_state_source_missing, "source_missing" );
+ }
+
+ template <> EnumString< svn_wc_schedule_t >::EnumString()
+***************
+*** 307,312 ****
+--- 319,332 ----
+
+ // something's here, but we don't know what
+ add( svn_node_unknown, "unknown" );
++
++ #if defined( PYSVN_HAS_SVN_1_8 )
++ // symbolic link
++ // @note This value is not currently used by the public API.
++ add( svn_node_symlink, "symlink" );
++ #endif
++
++
+ }
+
+ #if defined( PYSVN_HAS_DIFF_FILE_IGNORE_SPACE )
+***************
+*** 399,410 ****
+ // If their were files to choose from, select one as a way of
+ // resolving the conflict here and now. libsvn_wc will then do the
+ // work of "installing" the chosen file.
+! add( svn_wc_conflict_choose_base, "base" ); // user chooses the original version
+! add( svn_wc_conflict_choose_theirs_full, "theirs_full" ); // user chooses incoming version
+! add( svn_wc_conflict_choose_mine_full, "mine_full" ); // user chooses own version
+! add( svn_wc_conflict_choose_theirs_conflict, "theirs_conflict" ); // user chooses incoming (for conflicted hunks)
+! add( svn_wc_conflict_choose_mine_conflict, "mine_conflict" ); // user chooses own (for conflicted hunks)
+! add( svn_wc_conflict_choose_merged, "merged" ); // user chooses the merged version
+ }
+ #endif
+
+--- 419,440 ----
+ // If their were files to choose from, select one as a way of
+ // resolving the conflict here and now. libsvn_wc will then do the
+ // work of "installing" the chosen file.
+! // user chooses the original version
+! add( svn_wc_conflict_choose_base, "base" );
+! // user chooses incoming version
+! add( svn_wc_conflict_choose_theirs_full, "theirs_full" );
+! // user chooses own version
+! add( svn_wc_conflict_choose_mine_full, "mine_full" );
+! // user chooses incoming (for conflicted hunks)
+! add( svn_wc_conflict_choose_theirs_conflict, "theirs_conflict" );
+! // user chooses own (for conflicted hunks)
+! add( svn_wc_conflict_choose_mine_conflict, "mine_conflict" );
+! // user chooses the merged version
+! add( svn_wc_conflict_choose_merged, "merged" );
+! #if defined( PYSVN_HAS_SVN_1_8 )
+! //undecided
+! add( svn_wc_conflict_choose_unspecified, "unspecified" );
+! #endif
+ }
+ #endif
+
+***************
+*** 422,436 ****
+ //--------------------------------------------------------------------------------
+ template <> void pysvn_enum< svn_opt_revision_kind >::init_type(void)
+ {
+! behaviors().name("opt_revision_kind");
+! behaviors().doc("opt_revision_kind enumeration");
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_opt_revision_kind >::init_type(void)
+ {
+! behaviors().name("opt_revision_kind");
+! behaviors().doc("opt_revision_kind value");
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+--- 452,466 ----
+ //--------------------------------------------------------------------------------
+ template <> void pysvn_enum< svn_opt_revision_kind >::init_type(void)
+ {
+! behaviors().name( "opt_revision_kind" );
+! behaviors().doc( "opt_revision_kind enumeration" );
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_opt_revision_kind >::init_type(void)
+ {
+! behaviors().name( "opt_revision_kind" );
+! behaviors().doc( "opt_revision_kind value" );
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+***************
+*** 440,454 ****
+
+ template <> void pysvn_enum< svn_wc_notify_action_t >::init_type(void)
+ {
+! behaviors().name("wc_notify_action");
+! behaviors().doc("wc_notify_action enumeration");
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_wc_notify_action_t >::init_type(void)
+ {
+! behaviors().name("wc_notify_action");
+! behaviors().doc("wc_notify_action value");
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+--- 470,484 ----
+
+ template <> void pysvn_enum< svn_wc_notify_action_t >::init_type(void)
+ {
+! behaviors().name( "wc_notify_action" );
+! behaviors().doc( "wc_notify_action enumeration" );
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_wc_notify_action_t >::init_type(void)
+ {
+! behaviors().name( "wc_notify_action" );
+! behaviors().doc( "wc_notify_action value" );
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+***************
+*** 458,472 ****
+
+ template <> void pysvn_enum< svn_wc_status_kind >::init_type(void)
+ {
+! behaviors().name("wc_status_kind");
+! behaviors().doc("wc_status_kind enumeration");
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_wc_status_kind >::init_type(void)
+ {
+! behaviors().name("wc_status_kind");
+! behaviors().doc("wc_status_kind value");
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+--- 488,502 ----
+
+ template <> void pysvn_enum< svn_wc_status_kind >::init_type(void)
+ {
+! behaviors().name( "wc_status_kind" );
+! behaviors().doc( "wc_status_kind enumeration" );
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_wc_status_kind >::init_type(void)
+ {
+! behaviors().name( "wc_status_kind" );
+! behaviors().doc( "wc_status_kind value" );
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+***************
+*** 476,490 ****
+
+ template <> void pysvn_enum< svn_wc_schedule_t >::init_type(void)
+ {
+! behaviors().name("wc_schedule");
+! behaviors().doc("wc_schedule enumeration");
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_wc_schedule_t >::init_type(void)
+ {
+! behaviors().name("wc_schedule");
+! behaviors().doc("wc_schedule value");
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+--- 506,520 ----
+
+ template <> void pysvn_enum< svn_wc_schedule_t >::init_type(void)
+ {
+! behaviors().name( "wc_schedule" );
+! behaviors().doc( "wc_schedule enumeration" );
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_wc_schedule_t >::init_type(void)
+ {
+! behaviors().name( "wc_schedule" );
+! behaviors().doc( "wc_schedule value" );
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+***************
+*** 494,508 ****
+
+ template <> void pysvn_enum< svn_wc_merge_outcome_t >::init_type(void)
+ {
+! behaviors().name("wc_merge_outcome");
+! behaviors().doc("wc_merge_outcome enumeration");
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_wc_merge_outcome_t >::init_type(void)
+ {
+! behaviors().name("wc_merge_outcome");
+! behaviors().doc("wc_merge_outcome value");
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+--- 524,538 ----
+
+ template <> void pysvn_enum< svn_wc_merge_outcome_t >::init_type(void)
+ {
+! behaviors().name( "wc_merge_outcome" );
+! behaviors().doc( "wc_merge_outcome enumeration" );
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_wc_merge_outcome_t >::init_type(void)
+ {
+! behaviors().name( "wc_merge_outcome" );
+! behaviors().doc( "wc_merge_outcome value" );
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+***************
+*** 512,526 ****
+
+ template <> void pysvn_enum< svn_wc_notify_state_t >::init_type(void)
+ {
+! behaviors().name("wc_notify_state");
+! behaviors().doc("wc_notify_state enumeration");
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_wc_notify_state_t >::init_type(void)
+ {
+! behaviors().name("wc_notify_state");
+! behaviors().doc("wc_notify_state value");
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+--- 542,556 ----
+
+ template <> void pysvn_enum< svn_wc_notify_state_t >::init_type(void)
+ {
+! behaviors().name( "wc_notify_state" );
+! behaviors().doc( "wc_notify_state enumeration" );
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_wc_notify_state_t >::init_type(void)
+ {
+! behaviors().name( "wc_notify_state" );
+! behaviors().doc( "wc_notify_state value" );
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+***************
+*** 530,544 ****
+
+ template <> void pysvn_enum< svn_node_kind_t >::init_type(void)
+ {
+! behaviors().name("node_kind");
+! behaviors().doc("node_kind enumeration");
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_node_kind_t >::init_type(void)
+ {
+! behaviors().name("node_kind");
+! behaviors().doc("node_kind value");
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+--- 560,574 ----
+
+ template <> void pysvn_enum< svn_node_kind_t >::init_type(void)
+ {
+! behaviors().name( "node_kind" );
+! behaviors().doc( "node_kind enumeration" );
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_node_kind_t >::init_type(void)
+ {
+! behaviors().name( "node_kind" );
+! behaviors().doc( "node_kind value" );
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+***************
+*** 549,563 ****
+ #if defined( PYSVN_HAS_DIFF_FILE_IGNORE_SPACE )
+ template <> void pysvn_enum< svn_diff_file_ignore_space_t >::init_type(void)
+ {
+! behaviors().name("diff_file_ignore_space");
+! behaviors().doc("diff_file_ignore_space enumeration");
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_diff_file_ignore_space_t >::init_type(void)
+ {
+! behaviors().name("diff_file_ignore_space");
+! behaviors().doc("diff_file_ignore_space value");
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+--- 579,593 ----
+ #if defined( PYSVN_HAS_DIFF_FILE_IGNORE_SPACE )
+ template <> void pysvn_enum< svn_diff_file_ignore_space_t >::init_type(void)
+ {
+! behaviors().name( "diff_file_ignore_space" );
+! behaviors().doc( "diff_file_ignore_space enumeration" );
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_diff_file_ignore_space_t >::init_type(void)
+ {
+! behaviors().name( "diff_file_ignore_space" );
+! behaviors().doc( "diff_file_ignore_space value" );
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+***************
+*** 569,583 ****
+ #if defined( PYSVN_HAS_CLIENT_DIFF_SUMMARIZE )
+ template <> void pysvn_enum< svn_client_diff_summarize_kind_t >::init_type(void)
+ {
+! behaviors().name("client_diff_summarize_kind");
+! behaviors().doc("client_diff_summarize_kind enumeration");
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_client_diff_summarize_kind_t >::init_type(void)
+ {
+! behaviors().name("client_diff_summarize_kind");
+! behaviors().doc("client_diff_summarize_kind value");
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+--- 599,613 ----
+ #if defined( PYSVN_HAS_CLIENT_DIFF_SUMMARIZE )
+ template <> void pysvn_enum< svn_client_diff_summarize_kind_t >::init_type(void)
+ {
+! behaviors().name( "client_diff_summarize_kind" );
+! behaviors().doc( "client_diff_summarize_kind enumeration" );
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_client_diff_summarize_kind_t >::init_type(void)
+ {
+! behaviors().name( "client_diff_summarize_kind" );
+! behaviors().doc( "client_diff_summarize_kind value" );
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+***************
+*** 589,603 ****
+ #if defined( PYSVN_HAS_SVN__DEPTH_PARAMETER )
+ template <> void pysvn_enum< svn_depth_t >::init_type(void)
+ {
+! behaviors().name("depth");
+! behaviors().doc("depth enumeration");
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_depth_t >::init_type(void)
+ {
+! behaviors().name("depth");
+! behaviors().doc("depth value");
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+--- 619,633 ----
+ #if defined( PYSVN_HAS_SVN__DEPTH_PARAMETER )
+ template <> void pysvn_enum< svn_depth_t >::init_type(void)
+ {
+! behaviors().name( "depth" );
+! behaviors().doc( "depth enumeration" );
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_depth_t >::init_type(void)
+ {
+! behaviors().name( "depth" );
+! behaviors().doc( "depth value" );
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+***************
+*** 609,623 ****
+ #if defined( PYSVN_HAS_SVN_WC_CONFLICT_CHOICE_T )
+ template <> void pysvn_enum< svn_wc_conflict_choice_t >::init_type(void)
+ {
+! behaviors().name("wc_conflict_choice");
+! behaviors().doc("wc_conflict_choice enumeration");
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_wc_conflict_choice_t >::init_type(void)
+ {
+! behaviors().name("wc_conflict_choice");
+! behaviors().doc("wc_conflict_choice value");
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+--- 639,653 ----
+ #if defined( PYSVN_HAS_SVN_WC_CONFLICT_CHOICE_T )
+ template <> void pysvn_enum< svn_wc_conflict_choice_t >::init_type(void)
+ {
+! behaviors().name( "wc_conflict_choice" );
+! behaviors().doc( "wc_conflict_choice enumeration" );
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_wc_conflict_choice_t >::init_type(void)
+ {
+! behaviors().name( "wc_conflict_choice" );
+! behaviors().doc( "wc_conflict_choice value" );
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+***************
+*** 628,642 ****
+
+ template <> void pysvn_enum< svn_wc_conflict_action_t >::init_type(void)
+ {
+! behaviors().name("wc_conflict_action");
+! behaviors().doc("wc_conflict_action enumeration");
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_wc_conflict_action_t >::init_type(void)
+ {
+! behaviors().name("wc_conflict_action");
+! behaviors().doc("wc_conflict_action value");
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+--- 658,672 ----
+
+ template <> void pysvn_enum< svn_wc_conflict_action_t >::init_type(void)
+ {
+! behaviors().name( "wc_conflict_action" );
+! behaviors().doc( "wc_conflict_action enumeration" );
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_wc_conflict_action_t >::init_type(void)
+ {
+! behaviors().name( "wc_conflict_action" );
+! behaviors().doc( "wc_conflict_action value" );
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+***************
+*** 647,661 ****
+
+ template <> void pysvn_enum< svn_wc_conflict_kind_t >::init_type(void)
+ {
+! behaviors().name("wc_conflict_kind");
+! behaviors().doc("wc_conflict_kind enumeration");
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_wc_conflict_kind_t >::init_type(void)
+ {
+! behaviors().name("wc_conflict_kind");
+! behaviors().doc("wc_conflict_kind value");
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+--- 677,691 ----
+
+ template <> void pysvn_enum< svn_wc_conflict_kind_t >::init_type(void)
+ {
+! behaviors().name( "wc_conflict_kind" );
+! behaviors().doc( "wc_conflict_kind enumeration" );
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_wc_conflict_kind_t >::init_type(void)
+ {
+! behaviors().name( "wc_conflict_kind" );
+! behaviors().doc( "wc_conflict_kind value" );
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+***************
+*** 665,679 ****
+
+ template <> void pysvn_enum< svn_wc_conflict_reason_t >::init_type(void)
+ {
+! behaviors().name("wc_conflict_reason");
+! behaviors().doc("wc_conflict_reason enumeration");
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_wc_conflict_reason_t >::init_type(void)
+ {
+! behaviors().name("wc_conflict_reason");
+! behaviors().doc("wc_conflict_reason value");
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+--- 695,709 ----
+
+ template <> void pysvn_enum< svn_wc_conflict_reason_t >::init_type(void)
+ {
+! behaviors().name( "wc_conflict_reason" );
+! behaviors().doc( "wc_conflict_reason enumeration" );
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_wc_conflict_reason_t >::init_type(void)
+ {
+! behaviors().name( "wc_conflict_reason" );
+! behaviors().doc( "wc_conflict_reason value" );
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+***************
+*** 685,699 ****
+ #if defined( PYSVN_HAS_SVN_WC_OPERATION_T )
+ template <> void pysvn_enum< svn_wc_operation_t >::init_type(void)
+ {
+! behaviors().name("wc_operation");
+! behaviors().doc("wc_operation enumeration");
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_wc_operation_t >::init_type(void)
+ {
+! behaviors().name("wc_operation");
+! behaviors().doc("wc_operation value");
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+--- 715,729 ----
+ #if defined( PYSVN_HAS_SVN_WC_OPERATION_T )
+ template <> void pysvn_enum< svn_wc_operation_t >::init_type(void)
+ {
+! behaviors().name( "wc_operation" );
+! behaviors().doc( "wc_operation enumeration" );
+ behaviors().supportGetattr();
+ }
+
+ template <> void pysvn_enum_value< svn_wc_operation_t >::init_type(void)
+ {
+! behaviors().name( "wc_operation" );
+! behaviors().doc( "wc_operation value" );
+ behaviors().supportCompare();
+ behaviors().supportRichCompare();
+ behaviors().supportRepr();
+diff -crB old/pysvn_svnenv.hpp new/pysvn_svnenv.hpp
+*** old/pysvn_svnenv.hpp 2013-07-01 11:12:18.000000000 +0200
+--- new/pysvn_svnenv.hpp 2015-09-04 20:18:37.928751133 +0200
+***************
+*** 214,219 ****
+--- 214,228 ----
+ #define PYSVN_HAS_CLIENT_CREATE_CONTEXT2 1
+ #endif
+
++ #if (SVN_VER_MAJOR == 1 && SVN_VER_MINOR >= 9) || SVN_VER_MAJOR > 1
++ #define PYSVN_HAS_SVN_1_9
++ #define PYSVN_HAS_CLIENT_VACUUM QQQ
++ #define PYSVN_HAS_CLIENT_REVERT3 QQQ
++ #define PYSVN_HAS_CLIENT_COPY7 QQQ
++ #define PYSVN_HAS_CLIENT_CAT3 QQQ
++ #define PYSVN_HAS_CLIENT_INFO4 QQQ
++ #endif
++
+ #if defined( PYSVN_HAS_CLIENT_STATUS3 )
+ typedef svn_wc_status2_t pysvn_wc_status_t;
+
+diff -crB old/setup_configure.py new/setup_configure.py
+*** old/setup_configure.py 2015-09-04 20:21:42.512848464 +0200
+--- new/setup_configure.py 2015-09-04 20:17:27.954092949 +0200
+***************
+*** 70,75 ****
+--- 70,76 ----
+ '--svn-bin-dir': (1, '<dir>'),
+ '--svn-root-dir': (1, '<dir>'),
+ '--verbose': (0, None),
++ '--disable-deprecated-functions-warnings': (0, None),
+ }
+
+ def __init__( self, argv ):
+***************
+*** 1099,1107 ****
+ '/usr/pkg/include/subversion-1', # netbsd
+ ]
+ self._find_paths_svn_bin = [
+! '/usr/bin', # typical Linux
+! '/usr/local/bin', # typical *BSD
+! '/usr/pkg/bin', # netbsd
+ ]
+ self._find_paths_svn_lib = [
+ '/usr/lib64', # typical 64bit Linux
+--- 1100,1108 ----
+ '/usr/pkg/include/subversion-1', # netbsd
+ ]
+ self._find_paths_svn_bin = [
+! '/usr/bin', # typical Linux
+! '/usr/local/bin', # typical *BSD
+! '/usr/pkg/bin', # netbsd
+ ]
+ self._find_paths_svn_lib = [
+ '/usr/lib64', # typical 64bit Linux
+***************
+*** 1169,1174 ****
+--- 1170,1179 ----
+ print( 'Info: Debug enabled' )
+ py_cflags_list.append( '-g' )
+
++ if self.options.hasOption( '--disable-deprecated-functions-warnings' ):
++ print( 'Info: Disable deprecated functions warnings' )
++ py_cflags_list.append( '-Wno-deprecated-declarations' )
++
+ self._addVar( 'CCCFLAGS', ' '.join( py_cflags_list ) )
+ self._addVar( 'LDLIBS', ' '.join( self._getLdLibs() ) )
+ self._addVar( 'LDSHARED', '%(CCC)s -shared -g' )