aboutsummaryrefslogtreecommitdiffstats
path: root/deskutils
diff options
context:
space:
mode:
authorrakuco <rakuco@FreeBSD.org>2013-06-06 06:02:08 +0800
committerrakuco <rakuco@FreeBSD.org>2013-06-06 06:02:08 +0800
commit29a03370887af0c77e569c6a1d223daa34d1473f (patch)
tree38a8e86a88d2648d026b9c9d20d70230e62cd26a /deskutils
parent72186c7855eb8131559d515cd6e0a159e48c6160 (diff)
downloadfreebsd-ports-gnome-29a03370887af0c77e569c6a1d223daa34d1473f.tar.gz
freebsd-ports-gnome-29a03370887af0c77e569c6a1d223daa34d1473f.tar.zst
freebsd-ports-gnome-29a03370887af0c77e569c6a1d223daa34d1473f.zip
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.
Diffstat (limited to 'deskutils')
-rw-r--r--deskutils/kdepimlibs4/Makefile1
-rw-r--r--deskutils/kdepimlibs4/files/patch-akonadi__resourcebase.h55
2 files changed, 56 insertions, 0 deletions
diff --git a/deskutils/kdepimlibs4/Makefile b/deskutils/kdepimlibs4/Makefile
index 490fcc964f55..f6e9d3534d34 100644
--- a/deskutils/kdepimlibs4/Makefile
+++ b/deskutils/kdepimlibs4/Makefile
@@ -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
diff --git a/deskutils/kdepimlibs4/files/patch-akonadi__resourcebase.h b/deskutils/kdepimlibs4/files/patch-akonadi__resourcebase.h
new file mode 100644
index 000000000000..a2d816e29515
--- /dev/null
+++ b/deskutils/kdepimlibs4/files/patch-akonadi__resourcebase.h
@@ -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