Date: Thursday, December 8, 2011 @ 04:39:02 Author: andrea Revision: 144745
upgpkg: kdevplatform 1.2.3-2 Fix crash with subversion 1.7.x Added: kdevplatform/trunk/subversion17.patch Modified: kdevplatform/trunk/PKGBUILD --------------------+ PKGBUILD | 16 ++++-- subversion17.patch | 127 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 138 insertions(+), 5 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2011-12-08 09:21:46 UTC (rev 144744) +++ PKGBUILD 2011-12-08 09:39:02 UTC (rev 144745) @@ -1,23 +1,29 @@ # $Id$ -# Maintainer: Andrea Scarpino <and...@archlinux.org> +# Maintainer: +# Contributor: Andrea Scarpino <and...@archlinux.org> # Contributor: Giovanni Scafora <giova...@archlinux.org> pkgname=kdevplatform pkgver=1.2.3 _pkgver=4.2.3 -pkgrel=1 +pkgrel=2 pkgdesc="A C/C++ development platform for KDE" arch=('i686' 'x86_64') url="http://www.kdevelop.org/" license=('GPL') -depends=('kdelibs' 'boost-libs' 'subversion' 'qjson') +depends=('kdelibs''subversion' 'qjson') optdepends=("kdesdk-kompare: difference checking") makedepends=('cmake' 'automoc4' 'boost') install=${pkgname}.install -source=("http://download.kde.org/stable/kdevelop/${_pkgver}/src/${pkgname}-${pkgver}.tar.bz2") -sha1sums=('c8badd157c2477b1b299403d01d40f68a1ba14cd') +source=("http://download.kde.org/stable/kdevelop/${_pkgver}/src/${pkgname}-${pkgver}.tar.bz2" + 'subversion17.patch') +sha1sums=('c8badd157c2477b1b299403d01d40f68a1ba14cd' + '08e2ab2005a7a447f1733e8449a9bc926035fb9e') build() { + cd "${srcdir}"/${pkgname}-${pkgver} + patch -p1 -i "${srcdir}"/subversion17.patch + cd "${srcdir}" mkdir build cd build Added: subversion17.patch =================================================================== --- subversion17.patch (rev 0) +++ subversion17.patch 2011-12-08 09:39:02 UTC (rev 144745) @@ -0,0 +1,127 @@ +commit 74dec52749e3c3af2ac6492f50e2676128f35b27 +Author: Milian Wolff <m...@milianw.de> +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 +--- a/plugins/subversion/kdevsvncpp/path.cpp ++++ b/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; + +commit cc7f0798d314cdac14b90e427abe22e99c6bd591 +Author: Milian Wolff <m...@milianw.de> +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 +--- a/plugins/subversion/kdevsvncpp/context.cpp ++++ b/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