From f0e568d52525996afab62c47f3d1c370833b721d Mon Sep 17 00:00:00 2001 From: rakuco Date: Fri, 27 Jan 2012 14:05:21 +0000 Subject: Add a few upstream patches to make KDevelop not crash with SVN 1.7. Reported by: Luca Pizzamiglio on #kde-freebsd --- devel/kdevplatform/Makefile | 2 +- ...ch-plugins__subversion__kdevsvncpp__context.cpp | 95 ++++++++++++++++++++++ ...patch-plugins__subversion__kdevsvncpp__path.cpp | 32 ++++++++ 3 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 devel/kdevplatform/files/patch-plugins__subversion__kdevsvncpp__context.cpp create mode 100644 devel/kdevplatform/files/patch-plugins__subversion__kdevsvncpp__path.cpp diff --git a/devel/kdevplatform/Makefile b/devel/kdevplatform/Makefile index 8c7583a..6d0e5eb 100644 --- a/devel/kdevplatform/Makefile +++ b/devel/kdevplatform/Makefile @@ -6,7 +6,7 @@ PORTNAME= kdevplatform PORTVERSION= ${KDEVELOP_VERSION:S/4./1./} -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= devel kde MASTER_SITES= ${MASTER_SITE_KDE} MASTER_SITE_SUBDIR= ${KDEVELOP_BRANCH}/kdevelop/${KDEVELOP_VERSION}/src diff --git a/devel/kdevplatform/files/patch-plugins__subversion__kdevsvncpp__context.cpp b/devel/kdevplatform/files/patch-plugins__subversion__kdevsvncpp__context.cpp new file mode 100644 index 0000000..7de6463 --- /dev/null +++ b/devel/kdevplatform/files/patch-plugins__subversion__kdevsvncpp__context.cpp @@ -0,0 +1,95 @@ +commit cc7f0798d314cdac14b90e427abe22e99c6bd591 +Author: Milian Wolff +Date: Fri Nov 18 16:23:36 2011 +0100 + + properly initialize client context for compatibility with subversion API + + this should hopefully fix the crash with svn 1.7 in kdevelop, please test + + BUG: 284061 + +diff --git a/plugins/subversion/kdevsvncpp/context.cpp b/plugins/subversion/kdevsvncpp/context.cpp +index d277591..ddbb657 100644 +--- ./plugins/subversion/kdevsvncpp/context.cpp ++++ ./plugins/subversion/kdevsvncpp/context.cpp +@@ -65,7 +65,7 @@ public: + bool logIsSet; + int promptCounter; + Pool pool; +- svn_client_ctx_t ctx; ++ svn_client_ctx_t * ctx; + std::string username; + std::string password; + std::string logMessage; +@@ -205,26 +205,26 @@ public: + svn_auth_open(&ab, providers, pool); + + // initialize ctx structure +- memset(&ctx, 0, sizeof(ctx)); ++ svn_client_create_context(&ctx, pool); + + // get the config based on the configDir passed in +- svn_config_get_config(&ctx.config, c_configDir, pool); ++ svn_config_get_config(&ctx->config, c_configDir, pool); + + // tell the auth functions where the config is + svn_auth_set_parameter(ab, SVN_AUTH_PARAM_CONFIG_DIR, + c_configDir); + +- ctx.auth_baton = ab; +- ctx.log_msg_func = onLogMsg; +- ctx.log_msg_baton = this; +- ctx.notify_func = onNotify; +- ctx.notify_baton = this; +- ctx.cancel_func = onCancel; +- ctx.cancel_baton = this; ++ ctx->auth_baton = ab; ++ ctx->log_msg_func = onLogMsg; ++ ctx->log_msg_baton = this; ++ ctx->notify_func = onNotify; ++ ctx->notify_baton = this; ++ ctx->cancel_func = onCancel; ++ ctx->cancel_baton = this; + + #if (SVN_VER_MAJOR >= 1) && (SVN_VER_MINOR >= 2) +- ctx.notify_func2 = onNotify2; +- ctx.notify_baton2 = this; ++ ctx->notify_func2 = onNotify2; ++ ctx->notify_baton2 = this; + #endif + } + +@@ -234,7 +234,7 @@ public: + if (!value) + param = (void *)"1"; + +- svn_auth_set_parameter(ctx.auth_baton, ++ svn_auth_set_parameter(ctx->auth_baton, + SVN_AUTH_PARAM_NO_AUTH_CACHE, + param); + } +@@ -245,7 +245,7 @@ public: + username = usr; + password = pwd; + +- svn_auth_baton_t * ab = ctx.auth_baton; ++ svn_auth_baton_t * ab = ctx->auth_baton; + svn_auth_set_parameter(ab, SVN_AUTH_PARAM_DEFAULT_USERNAME, + username.c_str()); + svn_auth_set_parameter(ab, SVN_AUTH_PARAM_DEFAULT_PASSWORD, +@@ -654,13 +654,13 @@ public: + + Context::operator svn_client_ctx_t * () + { +- return &(m->ctx); ++ return m->ctx; + } + + svn_client_ctx_t * + Context::ctx() + { +- return &(m->ctx); ++ return m->ctx; + } + + void diff --git a/devel/kdevplatform/files/patch-plugins__subversion__kdevsvncpp__path.cpp b/devel/kdevplatform/files/patch-plugins__subversion__kdevsvncpp__path.cpp new file mode 100644 index 0000000..f0f7cea --- /dev/null +++ b/devel/kdevplatform/files/patch-plugins__subversion__kdevsvncpp__path.cpp @@ -0,0 +1,32 @@ +commit 74dec52749e3c3af2ac6492f50e2676128f35b27 +Author: Milian Wolff +Date: Fri Nov 18 16:26:06 2011 +0100 + + fix svn api usage: use svn_dirent_canonicalize instead of svn_path_internal_style + + this was suggested by Stephan Sperling + + CCBUG: 284061 + +diff --git a/plugins/subversion/kdevsvncpp/path.cpp b/plugins/subversion/kdevsvncpp/path.cpp +index eaa84c1..4dced08 100644 +--- ./plugins/subversion/kdevsvncpp/path.cpp ++++ ./plugins/subversion/kdevsvncpp/path.cpp +@@ -24,6 +24,7 @@ + + // subversion api + #include "svn_path.h" ++#include "svn_dirent_uri.h" + + // apr api + #include "apr_file_io.h" +@@ -63,8 +64,7 @@ namespace svn + m_path = ""; + else + { +- const char * int_path = +- svn_path_internal_style(path, pool.pool()); ++ const char * int_path = svn_dirent_canonicalize(path, pool); + + m_path = int_path; + -- cgit v1.1