commit:     a345b0125e742258af851925482b72336e76317c
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat Jan  7 23:06:55 2017 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat Jan  7 23:06:55 2017 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=a345b012

kde-apps/akonadi: Remove hardcoded absolute path to stdlib header

This breaks on any GCC upgrade.

Package-Manager: portage-2.3.0

 kde-apps/akonadi/akonadi-16.12.49.9999.ebuild      |  6 +-
 .../files/akonadi-16.12.1-rename-header.patch      | 77 ++++++++++++++++++++++
 .../files/akonadi-16.12.1-revert-abs-path.patch    | 70 ++++++++++++++++++++
 3 files changed, 152 insertions(+), 1 deletion(-)

diff --git a/kde-apps/akonadi/akonadi-16.12.49.9999.ebuild 
b/kde-apps/akonadi/akonadi-16.12.49.9999.ebuild
index 8ae3948..74c041d 100644
--- a/kde-apps/akonadi/akonadi-16.12.49.9999.ebuild
+++ b/kde-apps/akonadi/akonadi-16.12.49.9999.ebuild
@@ -58,7 +58,11 @@ RDEPEND="${COMMON_DEPEND}
 # some akonadi tests time out, that probably needs more work as it's ~700 tests
 RESTRICT+=" test"
 
-PATCHES=( "${FILESDIR}/${PN}-16.12.0-mysql56-crash.patch" )
+PATCHES=(
+       "${FILESDIR}/${PN}-16.12.0-mysql56-crash.patch"
+       "${FILESDIR}/${PN}-16.12.1-revert-abs-path.patch"
+       "${FILESDIR}/${PN}-16.12.1-rename-header.patch"
+)
 
 pkg_setup() {
        # Set default storage backend in order: MySQL, SQLite PostgreSQL

diff --git a/kde-apps/akonadi/files/akonadi-16.12.1-rename-header.patch 
b/kde-apps/akonadi/files/akonadi-16.12.1-rename-header.patch
new file mode 100644
index 0000000..73347f0
--- /dev/null
+++ b/kde-apps/akonadi/files/akonadi-16.12.1-rename-header.patch
@@ -0,0 +1,77 @@
+commit 248671e8200ff0883877b6d0e56700ef99ff3b51
+Author: Andreas Sturmlechner <[email protected]>
+Date:   Sat Jan 7 14:38:17 2017 +0100
+
+    Rename exception.h to exceptionbase.h
+    
+    REVIEW: 129788
+
+diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
+index 6ac851e..fa996b9 100644
+--- a/src/core/CMakeLists.txt
++++ b/src/core/CMakeLists.txt
+@@ -95,7 +95,7 @@ ecm_generate_headers(AkonadiCore_base_HEADERS
+     EntityDeletedAttribute
+     EntityDisplayAttribute
+     EntityHiddenAttribute
+-    Exception
++    ExceptionBase
+     GidExtractorInterface
+     IndexPolicyAttribute
+     Item
+diff --git a/src/core/exception.cpp b/src/core/exception.cpp
+index f229c1a..14f7330 100644
+--- a/src/core/exception.cpp
++++ b/src/core/exception.cpp
+@@ -17,7 +17,7 @@
+     02110-1301, USA.
+ */
+ 
+-#include "exception.h"
++#include "exceptionbase.h"
+ 
+ #include <QString>
+ 
+diff --git a/src/core/exception.h b/src/core/exceptionbase.h
+similarity index 100%
+rename from src/core/exception.h
+rename to src/core/exceptionbase.h
+diff --git a/src/core/item.h b/src/core/item.h
+index de71cad..5ec62c8 100644
+--- a/src/core/item.h
++++ b/src/core/item.h
+@@ -23,7 +23,7 @@
+ 
+ #include "akonadicore_export.h"
+ #include "attribute.h"
+-#include "exception.h"
++#include "exceptionbase.h"
+ #include "tag.h"
+ #include "collection.h"
+ #include "relation.h"
+diff --git a/src/core/itempayloadinternals_p.h 
b/src/core/itempayloadinternals_p.h
+index 0a4de3c..1626f10 100644
+--- a/src/core/itempayloadinternals_p.h
++++ b/src/core/itempayloadinternals_p.h
+@@ -32,7 +32,7 @@
+ 
+ #include <boost/shared_ptr.hpp>
+ 
+-#include "exception.h"
++#include "exceptionbase.h"
+ 
+ //@cond PRIVATE Doxygen 1.7.1 hangs processing this file. so skip it.
+ //for more info, see https://bugzilla.gnome.org/show_bug.cgi?id=531637
+diff --git a/src/core/protocolhelper.cpp b/src/core/protocolhelper.cpp
+index f740e9d..c218f0c 100644
+--- a/src/core/protocolhelper.cpp
++++ b/src/core/protocolhelper.cpp
+@@ -23,7 +23,7 @@
+ #include "collectionstatistics.h"
+ #include "item_p.h"
+ #include "collection_p.h"
+-#include "exception.h"
++#include "exceptionbase.h"
+ #include "itemserializer_p.h"
+ #include "itemserializerplugin.h"
+ #include "servermanager.h"

diff --git a/kde-apps/akonadi/files/akonadi-16.12.1-revert-abs-path.patch 
b/kde-apps/akonadi/files/akonadi-16.12.1-revert-abs-path.patch
new file mode 100644
index 0000000..3b48253
--- /dev/null
+++ b/kde-apps/akonadi/files/akonadi-16.12.1-revert-abs-path.patch
@@ -0,0 +1,70 @@
+commit d98e29a07f4acc3bf01f06f25b3eef5522397e2e
+Author: Andreas Sturmlechner <[email protected]>
+Date:   Thu Jan 5 22:41:02 2017 +0100
+
+    Revert "Workaround an include loop on case-insensitive systems"
+    
+    Do not hardcode absolute patchs to GCC headers.
+    
+    This reverts commit 59b9d6b79425c9ec1e5df059a2593580048c4adf.
+    
+    REVIEW: 129788
+
+diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
+index 72589cd..6ac851e 100644
+--- a/src/core/CMakeLists.txt
++++ b/src/core/CMakeLists.txt
+@@ -257,21 +257,6 @@ ecm_generate_headers(AkonadiCore_jobs_HEADERS
+     RELATIVE jobs
+ )
+ 
+-# This is a workaround for conflict between our "Exception" fancy header and
+-# C++ stdlib's "exception" header which occurs in case-insensitive systems.
+-# For that reason we generate std_exception.h file, which contains an absolute
+-# path to the stdlib's exception header file, which resolves the ambiguity
+-# when including <exception> from within Akonadi.
+-include(FindStdlibInclude)
+-findStdlibInclude("exception" std_exception_file)
+-if (NOT "${std_exception_file}" STREQUAL "")
+-    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/std_exception.h.in
+-                   ${CMAKE_CURRENT_BINARY_DIR}/std_exception.h
+-    )
+-else()
+-    message(FATAL_ERROR "stdlib <exception> include absolute path not found")
+-endif()
+-
+ set(akonadicore_dbus_xml 
${Akonadi_SOURCE_DIR}/src/interfaces/org.freedesktop.Akonadi.NotificationManager.xml)
+ qt5_add_dbus_interface(akonadicore_dbus_SRCS ${akonadicore_dbus_xml} 
notificationmanagerinterface)
+ 
+@@ -338,7 +323,6 @@ install(TARGETS
+ 
+ install(FILES
+     ${CMAKE_CURRENT_BINARY_DIR}/akonadicore_export.h
+-    ${CMAKE_CURRENT_BINARY_DIR}/std_exception.h
+     ${AkonadiCore_base_HEADERS}
+     ${AkonadiCore_models_HEADERS}
+     ${AkonadiCore_jobs_HEADERS}
+diff --git a/src/core/exception.h b/src/core/exception.h
+index d07ca71..2a376df 100644
+--- a/src/core/exception.h
++++ b/src/core/exception.h
+@@ -20,16 +20,11 @@
+ #ifndef AKONADI_EXCEPTION_H
+ #define AKONADI_EXCEPTION_H
+ 
+-// The std_exception.h file is generated at build-time and #includes C++ 
stdlib
+-// header "exception" by aboslute path. This is to workaround an include loop 
on
+-// case-insensitive systems, where #include <exception> includes our 
"Exception"
+-// fancy header instead of stdlib's exception, causing an endless loop of
+-// includes between "Exception" and "exception.h".
+-#include "std_exception.h"
+-
+ #include "akonadicore_export.h"
++#include <QObject>
++#include <QByteArray>
++#include <exception>
+ 
+-class QByteArray;
+ class QString;
+ 
+ namespace Akonadi

Reply via email to