[arch-commits] Commit in kdevplatform/trunk (PKGBUILD subversion17.patch)

Andrea Scarpino andrea at archlinux.org
Thu Dec 8 09:39:02 UTC 2011


    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 <andrea at archlinux.org>
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea at archlinux.org>
 # Contributor: Giovanni Scafora <giovanni at 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 <mail at 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 <mail at 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




More information about the arch-commits mailing list