Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Jun 2013 22:02:09 +0000 (UTC)
From:      Raphael Kubo da Costa <rakuco@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r320031 - in head/deskutils/kdepimlibs4: . files
Message-ID:  <201306052202.r55M29b6062649@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: rakuco
Date: Wed Jun  5 22:02:08 2013
New Revision: 320031
URL: http://svnweb.freebsd.org/changeset/ports/320031

Log:
  Apply my upstream patch to fix kdepim4-runtime's build with clang 3.3.
  
  Yes, the patch is to kdepimlibs4, but it should actually fix the build
  problems that people were having with kdepim4-runtime and CURRENT's clang.

Added:
  head/deskutils/kdepimlibs4/files/patch-akonadi__resourcebase.h   (contents, props changed)
Modified:
  head/deskutils/kdepimlibs4/Makefile

Modified: head/deskutils/kdepimlibs4/Makefile
==============================================================================
--- head/deskutils/kdepimlibs4/Makefile	Wed Jun  5 21:56:03 2013	(r320030)
+++ head/deskutils/kdepimlibs4/Makefile	Wed Jun  5 22:02:08 2013	(r320031)
@@ -3,6 +3,7 @@
 
 PORTNAME=	kdepimlibs
 PORTVERSION=	${KDE4_VERSION}
+PORTREVISION=	1
 CATEGORIES=	deskutils kde ipv6
 MASTER_SITES=	${MASTER_SITE_KDE}
 MASTER_SITE_SUBDIR=	${KDE4_BRANCH}/${PORTVERSION}/src

Added: head/deskutils/kdepimlibs4/files/patch-akonadi__resourcebase.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/deskutils/kdepimlibs4/files/patch-akonadi__resourcebase.h	Wed Jun  5 22:02:08 2013	(r320031)
@@ -0,0 +1,55 @@
+commit e65bae22cf6da5c0db468691a8037ac81ffce291
+Author: Raphael Kubo da Costa <rakuco@FreeBSD.org>
+Date:   Sun Jun 2 02:29:49 2013 +0300
+
+    Correctly expose that ResourceState is a friend class.
+    
+    ResourceState is a class that lives in kdepim-runtime and is outside the
+    Akonadi namespace.
+    
+    clang < 3.3 and all versions of GCC erroneously consider the friend
+    declaration in
+    
+      namespace N {
+        class C {
+          friend class A;
+        };
+      }
+    
+      class A {
+      };
+    
+    to refer to the class A outside namespace N (technically speaking, this is
+    item 3 of section 7.3.1.2 of the C++ standard). clang 3.3 fixes this
+    behavior and makes the build of kdepim-runtime fail.
+    
+    Fix it by explicitly referring to ::ResourceState in the friend declaration.
+    
+    Alternatively, we could remove the friend declaration and make
+    ResourceState::collectionsRetrieved use ImapResource::Append instead of
+    Akonadi::ResourceBase::Append (since ImapResource also declares
+    ResourceState as a friend).
+    
+    REVIEW: 110777
+
+diff --git a/akonadi/resourcebase.h b/akonadi/resourcebase.h
+index 2e112b5..cb25ef2 100644
+--- akonadi/resourcebase.h
++++ akonadi/resourcebase.h
+@@ -32,6 +32,7 @@
+ 
+ class KJob;
+ class Akonadi__ResourceAdaptor;
++class ResourceState;
+ 
+ namespace Akonadi {
+ 
+@@ -566,7 +567,7 @@ class AKONADI_EXPORT ResourceBase : public AgentBase
+     void setHierarchicalRemoteIdentifiersEnabled( bool enable );
+ 
+     friend class ResourceScheduler;
+-    friend class ResourceState;
++    friend class ::ResourceState;
+ 
+     /**
+      * Describes the scheduling priority of a task that has been queued



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201306052202.r55M29b6062649>