summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'kde-base/kdelibs')
-rw-r--r--kde-base/kdelibs/Manifest3
-rw-r--r--kde-base/kdelibs/files/dist/01_gentoo_set_xdg_menu_prefix-1.patch18
-rw-r--r--kde-base/kdelibs/files/dist/02_gentoo_append_xdg_config_dirs-1.patch30
-rw-r--r--kde-base/kdelibs/files/kdelibs-4.10.0-udisks.patch51
-rw-r--r--kde-base/kdelibs/files/kdelibs-4.14.0-mimetypes.patch39
-rw-r--r--kde-base/kdelibs/files/kdelibs-4.14.3-trim-crash.patch610
-rw-r--r--kde-base/kdelibs/files/kdelibs-4.14.5-fatalwarnings.patch16
-rw-r--r--kde-base/kdelibs/files/kdelibs-4.14.5-mimetypes.patch27
-rw-r--r--kde-base/kdelibs/files/kdelibs-4.3.80-kdeui_util_kkeyserver_mac.patch46
-rw-r--r--kde-base/kdelibs/files/kdelibs-4.4.90-xslt.patch12
-rw-r--r--kde-base/kdelibs/files/kdelibs-4.6.2-armlinking.patch14
-rw-r--r--kde-base/kdelibs/files/kdelibs-4.6.3-no_suid_kdeinit.patch19
-rw-r--r--kde-base/kdelibs/files/kdelibs-4.8.1-norpath.patch18
-rw-r--r--kde-base/kdelibs/files/kdelibs-4.9.3-werror.patch20
-rw-r--r--kde-base/kdelibs/kdelibs-4.14.10.ebuild306
-rw-r--r--kde-base/kdelibs/kdelibs-4.14.3-r1.ebuild307
-rw-r--r--kde-base/kdelibs/kdelibs-4.14.8.ebuild306
-rw-r--r--kde-base/kdelibs/metadata.xml9
18 files changed, 1851 insertions, 0 deletions
diff --git a/kde-base/kdelibs/Manifest b/kde-base/kdelibs/Manifest
new file mode 100644
index 000000000000..fa803fc3e75a
--- /dev/null
+++ b/kde-base/kdelibs/Manifest
@@ -0,0 +1,3 @@
+DIST kdelibs-4.14.10.tar.xz 11644204 SHA256 00f5a7bdb0b2bcb786ea630844c639ebe89c45eb1e88443dde421baa0895ca94 SHA512 051322f6ee24e09f7b705e17aa8cc755bc6728855afe5b310910e976737167d7902f01a6a8ca51b60b1f0904429522d35eeec1b09ac6cfbdcab97e0fdd5429df WHIRLPOOL 4d4b8d6c25af95e4074606f5ffa7f33134a6a625a22ba7912b1b1a5af3474702d9adc12e71da86cedf46ac150678e53dd7a8bafb444a3b687f1efb633af7ff2d
+DIST kdelibs-4.14.3.tar.xz 11600500 SHA256 f8206da1106184ef0bd031b82701c4910b8dade331c4cdaf1cd9c6c5208cfd9e SHA512 7713cec4851fd4d7d5376afd905515902395ca469cefe1924c05ac0cd4499c28ab6a3c3e7bee10c4cfb3584f2fe93cfb6129d5b550d56d18217866f5fde748cf WHIRLPOOL 9b6d525136cee8e43b832dbbe7451494cc30e15cc58cc34eeab8c9040a9cbe893dc8ba794be50cdb3462e20279bfb41bee22385d3d106a353ef738da510f5c04
+DIST kdelibs-4.14.8.tar.xz 11648060 SHA256 705fa8a9b3b3c962aa99d040eb32e68863ba4c2f567b82b9513379defbc39bbb SHA512 0cd5e8dd5cec7cf84bc66c6732f4967610211e521898da41601d24174f909043bafacbb9bd9775666cebb132747e2861c6c8ff07de61be708975f44dbbfb856e WHIRLPOOL 6405ee6b273899a26c39fa005c18be7270888113f93302990003b92ca96c52303ce853c5378c812f4ddf53f40c7b6ff9e2a958bc86a676d1e3abbfe4f3d96bd4
diff --git a/kde-base/kdelibs/files/dist/01_gentoo_set_xdg_menu_prefix-1.patch b/kde-base/kdelibs/files/dist/01_gentoo_set_xdg_menu_prefix-1.patch
new file mode 100644
index 000000000000..228914fbb82c
--- /dev/null
+++ b/kde-base/kdelibs/files/dist/01_gentoo_set_xdg_menu_prefix-1.patch
@@ -0,0 +1,18 @@
+Set XDG_MENU_PREFIX to kde-4- if not set. This fixes "empty-applications-menu" when running
+KDE4 applications outside of KDE4 environment.
+
+Index: kded/vfolder_menu.cpp
+===================================================================
+--- kded/vfolder_menu.cpp (revision 1014368)
++++ kded/vfolder_menu.cpp (working copy)
+@@ -770,7 +770,9 @@
+ QString result;
+
+ QString xdgMenuPrefix = QString::fromLocal8Bit(qgetenv("XDG_MENU_PREFIX"));
+- if (!xdgMenuPrefix.isEmpty())
++ if (xdgMenuPrefix.isEmpty())
++ xdgMenuPrefix = "kde-4-";
++
+ {
+ QFileInfo fileInfo(fileName);
+
diff --git a/kde-base/kdelibs/files/dist/02_gentoo_append_xdg_config_dirs-1.patch b/kde-base/kdelibs/files/dist/02_gentoo_append_xdg_config_dirs-1.patch
new file mode 100644
index 000000000000..3049b0a7a28c
--- /dev/null
+++ b/kde-base/kdelibs/files/dist/02_gentoo_append_xdg_config_dirs-1.patch
@@ -0,0 +1,30 @@
+Set up XDG_CONFIG_DIRS lookup in order:
+1. custom XDG_CONFIG_DIRS from env
+2. kdeprefix xdg config dirs
+3. /etc/xdg
+
+Index: kdecore/kernel/kstandarddirs.cpp
+===================================================================
+--- kdecore/kernel/kstandarddirs.cpp (revision 1014759)
++++ kdecore/kernel/kstandarddirs.cpp (working copy)
+@@ -1664,16 +1664,13 @@
+ {
+ tokenize(xdgdirList, xdgdirs, QString(QChar(KPATH_SEPARATOR)));
+ }
+- else
+- {
+- xdgdirList.clear();
+- xdgdirList.append(QString::fromLatin1("/etc/xdg"));
++
+ #ifdef Q_WS_WIN
+- xdgdirList.append(installPath("kdedir") + QString::fromLatin1("etc/xdg"));
++ xdgdirList.append(installPath("kdedir") + QString::fromLatin1("etc/xdg"));
+ #else
+- xdgdirList.append(QFile::decodeName(KDESYSCONFDIR "/xdg"));
++ xdgdirList.append(QFile::decodeName(KDESYSCONFDIR "/xdg"));
+ #endif
+- }
++ xdgdirList.append(QString::fromLatin1("/etc/xdg"));
+
+ QString localXdgDir = readEnvPath("XDG_CONFIG_HOME");
+ if (!localXdgDir.isEmpty())
diff --git a/kde-base/kdelibs/files/kdelibs-4.10.0-udisks.patch b/kde-base/kdelibs/files/kdelibs-4.10.0-udisks.patch
new file mode 100644
index 000000000000..7de5ec960ead
--- /dev/null
+++ b/kde-base/kdelibs/files/kdelibs-4.10.0-udisks.patch
@@ -0,0 +1,51 @@
+udisks1 is deprecated and going away, so removing this clause
+will permit us to build without udisks at all.
+
+--- solid/solid/CMakeLists.txt
++++ solid/solid/CMakeLists.txt
+@@ -283,20 +283,6 @@
+ backends/udisks2/udisksgenericinterface.cpp
+ backends/udisks2/dbus/manager.cpp
+ )
+- else ( WITH_SOLID_UDISKS2 )
+- message(STATUS "Building Solid UDisks backend." )
+- set(solid_LIB_SRCS ${solid_LIB_SRCS}
+- backends/udisks/udisksmanager.cpp
+- backends/udisks/udisksdevice.cpp
+- backends/udisks/udisksblock.cpp
+- backends/udisks/udisksstoragevolume.cpp
+- backends/udisks/udisksdeviceinterface.cpp
+- backends/udisks/udisksopticaldisc.cpp
+- backends/udisks/udisksopticaldrive.cpp
+- backends/udisks/udisksstoragedrive.cpp
+- backends/udisks/udisksstorageaccess.cpp
+- backends/udisks/udisksgenericinterface.cpp
+- )
+ endif ( WITH_SOLID_UDISKS2 )
+ endif (CMAKE_SYSTEM_NAME MATCHES Linux)
+
+--- solid/solid/managerbase.cpp
++++ solid/solid/managerbase.cpp
+@@ -33,8 +33,6 @@
+ #include "backends/hal/halmanager.h"
+ #if defined (WITH_SOLID_UDISKS2)
+ #include "backends/udisks2/udisksmanager.h"
+-#else
+-#include "backends/udisks/udisksmanager.h"
+ #endif
+ #include "backends/upower/upowermanager.h"
+
+@@ -88,11 +86,9 @@
+ m_backends << new Solid::Backends::UDev::UDevManager(0);
+ # endif
+ # if defined(WITH_SOLID_UDISKS2)
+- m_backends << new Solid::Backends::UDisks2::Manager(0)
+-# else
+- m_backends << new Solid::Backends::UDisks::UDisksManager(0)
++ m_backends << new Solid::Backends::UDisks2::Manager(0);
+ # endif
+- << new Solid::Backends::UPower::UPowerManager(0)
++ m_backends << new Solid::Backends::UPower::UPowerManager(0)
+ << new Solid::Backends::Fstab::FstabManager(0);
+ }
+ # endif
diff --git a/kde-base/kdelibs/files/kdelibs-4.14.0-mimetypes.patch b/kde-base/kdelibs/files/kdelibs-4.14.0-mimetypes.patch
new file mode 100644
index 000000000000..5e543902d7b5
--- /dev/null
+++ b/kde-base/kdelibs/files/kdelibs-4.14.0-mimetypes.patch
@@ -0,0 +1,39 @@
+Remove fake MIME types that cause warnings.
+
+The offending MIME types are commented out rather than
+physically removed because doing so would cause the patch
+to be too large.
+
+diff --git a/mimetypes/kde.xml b/mimetypes/kde.xml
+index 76303db..23351c4 100644
+--- a/mimetypes/kde.xml
++++ b/mimetypes/kde.xml
+@@ -1783,8 +1783,8 @@ Notes:
+ </magic>
+ <glob pattern="*.abc"/>
+ </mime-type>
+-
+- <!-- all/ fake mime types -->
++<!--
++ all/ fake mime types
+ <mime-type type="all/all">
+ <comment>all files and folders</comment>
+ <comment xml:lang="ar">كل الملفات و المجلدات</comment>
+@@ -1902,7 +1902,7 @@ Notes:
+ <comment xml:lang="zh_TW">所有檔案</comment>
+ </mime-type>
+
+- <!-- uri/ fake mime types -->
++ uri/ fake mime types
+ <mime-type type="uri/mms">
+ <comment>mms: URIs</comment>
+ <comment xml:lang="ar">mms: وصلات</comment>
+@@ -2245,7 +2245,7 @@ Notes:
+ <comment xml:lang="zh_CN">rtspu: 地址</comment>
+ <comment xml:lang="zh_TW">rtspu: 網址</comment>
+ </mime-type>
+-
++-->
+ <mime-type type="application/vnd.kde.fontspackage">
+ <sub-class-of type="application/zip"/>
+ <comment>fonts package</comment>
diff --git a/kde-base/kdelibs/files/kdelibs-4.14.3-trim-crash.patch b/kde-base/kdelibs/files/kdelibs-4.14.3-trim-crash.patch
new file mode 100644
index 000000000000..12c84dcfe93e
--- /dev/null
+++ b/kde-base/kdelibs/files/kdelibs-4.14.3-trim-crash.patch
@@ -0,0 +1,610 @@
+From 570425a30c008297df09ef48b60486108fcf33e9 Mon Sep 17 00:00:00 2001
+From: Andrea Iacovitti <aiacovitti@libero.it>
+Date: Tue, 11 Nov 2014 07:54:28 +0100
+Subject: [PATCH] Introduce DOMString::trimSpaces(), useful for removing space
+ characters from url string.
+
+---
+ khtml/css/css_valueimpl.cpp | 4 ++--
+ khtml/css/cssparser.cpp | 4 ++--
+ khtml/dom/dom_string.cpp | 32 ++++++++++++++++++++++++++++++++
+ khtml/dom/dom_string.h | 7 +++++++
+ khtml/dom/html_base.cpp | 8 ++++----
+ khtml/dom/html_document.cpp | 2 +-
+ khtml/dom/html_form.cpp | 4 ++--
+ khtml/dom/html_head.cpp | 12 ++++++------
+ khtml/dom/html_image.cpp | 8 ++++----
+ khtml/dom/html_inline.cpp | 4 ++--
+ khtml/ecma/kjs_html.cpp | 4 ++--
+ khtml/ecma/xmlhttprequest.cpp | 3 ++-
+ khtml/html/html_baseimpl.cpp | 6 +++---
+ khtml/html/html_formimpl.cpp | 2 +-
+ khtml/html/html_headimpl.cpp | 12 ++++++------
+ khtml/html/html_imageimpl.cpp | 6 +++---
+ khtml/html/html_inlineimpl.cpp | 2 +-
+ khtml/html/html_objectimpl.cpp | 4 ++--
+ khtml/html/html_tableimpl.cpp | 4 ++--
+ khtml/html/htmlparser.cpp | 4 ++--
+ khtml/html/htmlprospectivetokenizer.cpp | 4 ++--
+ khtml/khtml_part.cpp | 4 ++--
+ khtml/khtmlview.cpp | 2 +-
+ khtml/rendering/render_image.cpp | 8 ++++----
+ khtml/xml/dom_docimpl.cpp | 7 ++++---
+ 25 files changed, 99 insertions(+), 58 deletions(-)
+
+diff --git a/khtml/css/css_valueimpl.cpp b/khtml/css/css_valueimpl.cpp
+index 98f33e6..aa825b7 100644
+--- a/khtml/css/css_valueimpl.cpp
++++ b/khtml/css/css_valueimpl.cpp
+@@ -1383,9 +1383,9 @@ CSSImageValueImpl::CSSImageValueImpl(const DOMString &url, StyleBaseImpl* style)
+ : CSSPrimitiveValueImpl(url, CSSPrimitiveValue::CSS_URI)
+ {
+ m_image = 0;
+- const QString imgUrl = url.string().trimmed();
++ const DOMString imgUrl = url.trimSpaces();
+ if (!imgUrl.isEmpty()) {
+- m_fullImageUrl = KUrl(style->baseURL(), imgUrl).url();
++ m_fullImageUrl = KUrl(style->baseURL(), imgUrl.string()).url();
+ } else {
+ m_fullImageUrl.clear();
+ }
+diff --git a/khtml/css/cssparser.cpp b/khtml/css/cssparser.cpp
+index e8f8493..600d205 100644
+--- a/khtml/css/cssparser.cpp
++++ b/khtml/css/cssparser.cpp
+@@ -2309,8 +2309,8 @@ bool CSSParser::parseFontFaceSrc()
+ while ((val = valueList->current())) {
+ CSSFontFaceSrcValueImpl* parsedValue = 0;
+ if (val->unit == CSSPrimitiveValue::CSS_URI && !expectComma && styleElement) {
+- const QString uri = qString(val->string).trimmed();
+- parsedValue = new CSSFontFaceSrcValueImpl(DOMString(KUrl(styleElement->baseURL(), uri).url()), false /*local*/);
++ const DOMString uri = domString(val->string).trimSpaces();
++ parsedValue = new CSSFontFaceSrcValueImpl(DOMString(KUrl(styleElement->baseURL(), uri.string()).url()), false /*local*/);
+ uriValue = parsedValue;
+ allowFormat = true;
+ expectComma = true;
+diff --git a/khtml/dom/dom_string.cpp b/khtml/dom/dom_string.cpp
+index d54d037..4a10221 100644
+--- a/khtml/dom/dom_string.cpp
++++ b/khtml/dom/dom_string.cpp
+@@ -290,6 +290,38 @@ bool DOMString::startsWith(const DOMString& str) const
+ return impl->startsWith(str.implementation());
+ }
+
++static inline bool isSpaceCharacter(const ushort &c)
++{
++ // http://dev.w3.org/html5/spec-LC/common-microsyntaxes.html#space-character
++ return ((c < 0x0021) &&
++ (c == 0x0020 || c == 0x0009 || c == 0x000A || c == 0x000C || c == 0x000D));
++}
++
++DOMString DOMString::trimSpaces() const
++{
++ if (!impl || !impl->l) {
++ return *this;
++ }
++
++ const QChar *s = impl->s;
++ unsigned int start = 0;
++ unsigned int end = impl->l - 1;
++
++ while ((start <= end) && isSpaceCharacter(s[start].unicode())) {
++ ++start;
++ }
++
++ if (start > end) {
++ return DOMString("");
++ }
++
++ while (end && isSpaceCharacter(s[end].unicode())) {
++ --end;
++ }
++
++ return new DOMStringImpl(s + start, end - start + 1);
++}
++
+ // ------------------------------------------------------------------------
+
+ bool DOM::strcasecmp( const DOMString &as, const DOMString &bs )
+diff --git a/khtml/dom/dom_string.h b/khtml/dom/dom_string.h
+index 13b4265..84b1378 100644
+--- a/khtml/dom/dom_string.h
++++ b/khtml/dom/dom_string.h
+@@ -125,6 +125,13 @@ public:
+ bool startsWith(const DOMString& str) const;
+
+ /**
++ * Returns a string with Space Characters removed from the start and the end.
++ * Space Characters as defined in
++ * http://dev.w3.org/html5/spec-LC/common-microsyntaxes.html#space-character
++ */
++ DOMString trimSpaces() const;
++
++ /**
+ * @internal get a handle to the imlementation of the DOMString
+ * Use at own risk!!!
+ */
+diff --git a/khtml/dom/html_base.cpp b/khtml/dom/html_base.cpp
+index c5e9048..11ee331 100644
+--- a/khtml/dom/html_base.cpp
++++ b/khtml/dom/html_base.cpp
+@@ -231,8 +231,8 @@ void HTMLFrameElement::setScrolling( const DOMString &value )
+ DOMString HTMLFrameElement::src() const
+ {
+ if(!impl) return DOMString();
+- const QString s = ((ElementImpl *)impl)->getAttribute(ATTR_SRC).string().trimmed();
+- return !s.isNull() ? impl->document()->completeURL(s) : DOMString();
++ const DOMString s = ((ElementImpl *)impl)->getAttribute(ATTR_SRC).trimSpaces();
++ return !s.isNull() ? impl->document()->completeURL(s.string()) : s;
+ }
+
+ void HTMLFrameElement::setSrc( const DOMString &value )
+@@ -367,8 +367,8 @@ void HTMLIFrameElement::setScrolling( const DOMString &value )
+ DOMString HTMLIFrameElement::src() const
+ {
+ if(!impl) return DOMString();
+- const QString s = ((ElementImpl *)impl)->getAttribute(ATTR_SRC).string().trimmed();
+- return !s.isNull() ? impl->document()->completeURL(s) : DOMString();
++ const DOMString s = ((ElementImpl *)impl)->getAttribute(ATTR_SRC).trimSpaces();
++ return !s.isNull() ? impl->document()->completeURL(s.string()) : s;
+ }
+
+ void HTMLIFrameElement::setSrc( const DOMString &value )
+diff --git a/khtml/dom/html_document.cpp b/khtml/dom/html_document.cpp
+index 042bc5a..2acf683 100644
+--- a/khtml/dom/html_document.cpp
++++ b/khtml/dom/html_document.cpp
+@@ -100,7 +100,7 @@ DOMString HTMLDocument::referrer() const
+ DOMString HTMLDocument::completeURL(const DOMString& str) const
+ {
+ if(!impl) return str;
+- return ((HTMLDocumentImpl *)impl)->completeURL(str.string().trimmed());
++ return ((HTMLDocumentImpl *)impl)->completeURL(str.trimSpaces().string());
+ }
+
+ DOMString HTMLDocument::domain() const
+diff --git a/khtml/dom/html_form.cpp b/khtml/dom/html_form.cpp
+index 425cb3d..6d44261 100644
+--- a/khtml/dom/html_form.cpp
++++ b/khtml/dom/html_form.cpp
+@@ -504,8 +504,8 @@ void HTMLInputElement::setSize( long value )
+ DOMString HTMLInputElement::src() const
+ {
+ if(!impl) return DOMString();
+- const QString s = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_SRC).string().trimmed();
+- return !s.isNull() ? impl->document()->completeURL(s) : DOMString();
++ const DOMString s = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_SRC).trimSpaces();
++ return !s.isNull() ? impl->document()->completeURL(s.string()) : s;
+ }
+
+ void HTMLInputElement::setSrc( const DOMString &value )
+diff --git a/khtml/dom/html_head.cpp b/khtml/dom/html_head.cpp
+index 4812631..23fe125 100644
+--- a/khtml/dom/html_head.cpp
++++ b/khtml/dom/html_head.cpp
+@@ -58,8 +58,8 @@ HTMLBaseElement::~HTMLBaseElement()
+ DOMString HTMLBaseElement::href() const
+ {
+ if(!impl) return DOMString();
+- const QString href = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_HREF).string().trimmed();
+- return !href.isNull() ? impl->document()->completeURL(href) : DOMString();
++ const DOMString href = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_HREF).trimSpaces();
++ return !href.isNull() ? impl->document()->completeURL(href.string()) : href;
+ }
+
+ void HTMLBaseElement::setHref( const DOMString &value )
+@@ -134,8 +134,8 @@ void HTMLLinkElement::setCharset( const DOMString &value )
+ DOMString HTMLLinkElement::href() const
+ {
+ if(!impl) return DOMString();
+- const QString href = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_HREF).string().trimmed();
+- return !href.isNull() ? impl->document()->completeURL(href) : DOMString();
++ const DOMString href = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_HREF).trimSpaces();
++ return !href.isNull() ? impl->document()->completeURL(href.string()) : href;
+ }
+
+ void HTMLLinkElement::setHref( const DOMString &value )
+@@ -379,8 +379,8 @@ void HTMLScriptElement::setDefer( bool _defer )
+ DOMString HTMLScriptElement::src() const
+ {
+ if(!impl) return DOMString();
+- const QString s = ((ElementImpl *)impl)->getAttribute(ATTR_SRC).string().trimmed();
+- return !s.isNull() ? impl->document()->completeURL(s) : DOMString();
++ const DOMString s = ((ElementImpl *)impl)->getAttribute(ATTR_SRC).trimSpaces();
++ return !s.isNull() ? impl->document()->completeURL(s.string()) : s;
+ }
+
+ void HTMLScriptElement::setSrc( const DOMString &value )
+diff --git a/khtml/dom/html_image.cpp b/khtml/dom/html_image.cpp
+index db1f5ea..a8b4ae0 100644
+--- a/khtml/dom/html_image.cpp
++++ b/khtml/dom/html_image.cpp
+@@ -95,8 +95,8 @@ void HTMLAreaElement::setCoords( const DOMString &value )
+ DOMString HTMLAreaElement::href() const
+ {
+ if(!impl) return DOMString();
+- const QString href = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_HREF).string().trimmed();
+- return !href.isNull() ? impl->document()->completeURL(href) : DOMString();
++ const DOMString href = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_HREF).trimSpaces();
++ return !href.isNull() ? impl->document()->completeURL(href.string()) : href;
+ }
+
+ void HTMLAreaElement::setHref( const DOMString &value )
+@@ -302,8 +302,8 @@ void HTMLImageElement::setLongDesc( const DOMString &value )
+ DOMString HTMLImageElement::src() const
+ {
+ if(!impl) return DOMString();
+- const QString s = ((ElementImpl *)impl)->getAttribute(ATTR_SRC).string().trimmed();
+- return !s.isNull() ? impl->document()->completeURL(s) : DOMString();
++ const DOMString s = ((ElementImpl *)impl)->getAttribute(ATTR_SRC).trimSpaces();
++ return !s.isNull() ? impl->document()->completeURL(s.string()) : s;
+ }
+
+ void HTMLImageElement::setSrc( const DOMString &value )
+diff --git a/khtml/dom/html_inline.cpp b/khtml/dom/html_inline.cpp
+index c01f668..2f74713 100644
+--- a/khtml/dom/html_inline.cpp
++++ b/khtml/dom/html_inline.cpp
+@@ -95,8 +95,8 @@ void HTMLAnchorElement::setCoords( const DOMString &value )
+ DOMString HTMLAnchorElement::href() const
+ {
+ if(!impl) return DOMString();
+- const QString href = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_HREF).string().trimmed();
+- return !href.isNull() ? impl->document()->completeURL(href) : DOMString();
++ const DOMString href = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_HREF).trimSpaces();
++ return !href.isNull() ? impl->document()->completeURL(href.string()) : href;
+ }
+
+ void HTMLAnchorElement::setHref( const DOMString &value )
+diff --git a/khtml/ecma/kjs_html.cpp b/khtml/ecma/kjs_html.cpp
+index ea15929..d5693af 100644
+--- a/khtml/ecma/kjs_html.cpp
++++ b/khtml/ecma/kjs_html.cpp
+@@ -1587,8 +1587,8 @@ QHash<int, const HTMLElement::BoundPropInfo*>* HTMLElement::boundPropInfo()
+
+ QString KJS::HTMLElement::getURLArg(unsigned id) const
+ {
+- const QString rel = impl()->getAttribute(id).string().trimmed();
+- return !rel.isNull() ? impl()->document()->completeURL(rel) : rel;
++ const DOMString rel = impl()->getAttribute(id).trimSpaces();
++ return !rel.isNull() ? impl()->document()->completeURL(rel.string()) : QString();
+ }
+
+ DOM::HTMLElementImpl *toHTMLElement(JSValue *val) {
+diff --git a/khtml/ecma/xmlhttprequest.cpp b/khtml/ecma/xmlhttprequest.cpp
+index f9fae5d..45c5a4b 100644
+--- a/khtml/ecma/xmlhttprequest.cpp
++++ b/khtml/ecma/xmlhttprequest.cpp
+@@ -906,7 +906,8 @@ JSValue *XMLHttpRequestProtoFunc::callAsFunction(ExecState *exec, JSObject *this
+ return throwError(exec, SyntaxError, "Not enough arguments");
+
+ QString method = args[0]->toString(exec).qstring();
+- KUrl url = KUrl(request->doc->completeURL(args[1]->toString(exec).qstring()));
++ DOMString urlArg = args[1]->toString(exec).domString().trimSpaces();
++ KUrl url = KUrl(request->doc->completeURL(urlArg.string()));
+
+ bool async = true;
+ if (args.size() >= 3) {
+diff --git a/khtml/html/html_baseimpl.cpp b/khtml/html/html_baseimpl.cpp
+index 5b4a77a..102b56e 100644
+--- a/khtml/html/html_baseimpl.cpp
++++ b/khtml/html/html_baseimpl.cpp
+@@ -71,7 +71,7 @@ void HTMLBodyElementImpl::parseAttribute(AttributeImpl *attr)
+
+ case ATTR_BACKGROUND:
+ {
+- QString url = attr->val()->string().trimmed();
++ QString url = attr->value().trimSpaces().string();
+ if (!url.isEmpty()) {
+ url = document()->completeURL( url );
+ addCSSProperty(CSS_PROP_BACKGROUND_IMAGE, DOMString("url('"+url+"')") );
+@@ -325,7 +325,7 @@ void HTMLFrameElementImpl::parseAttribute(AttributeImpl *attr)
+ switch(attr->id())
+ {
+ case ATTR_SRC:
+- setLocation(attr->value().string().trimmed());
++ setLocation(attr->value().trimSpaces().string());
+ break;
+ case ATTR_FRAMEBORDER:
+ {
+@@ -755,7 +755,7 @@ void HTMLIFrameElementImpl::parseAttribute(AttributeImpl *attr )
+ addHTMLAlignment( attr->value() );
+ break;
+ case ATTR_SRC:
+- url = attr->value().string().trimmed();
++ url = attr->value().trimSpaces().string();
+ setNeedComputeContent();
+ // ### synchronously start the process?
+ break;
+diff --git a/khtml/html/html_formimpl.cpp b/khtml/html/html_formimpl.cpp
+index 134851a..d227481 100644
+--- a/khtml/html/html_formimpl.cpp
++++ b/khtml/html/html_formimpl.cpp
+@@ -679,7 +679,7 @@ void HTMLFormElementImpl::submit( )
+ }
+ #endif // KHTML_NO_WALLET
+
+- QString url = getAttribute(ATTR_ACTION).string().trimmed();
++ QString url = getAttribute(ATTR_ACTION).trimSpaces().string();
+ // ignore base url if 'action' attribute is empty.
+ if (url.isEmpty())
+ url = formUrl.url();
+diff --git a/khtml/html/html_headimpl.cpp b/khtml/html/html_headimpl.cpp
+index 0de904d..a265ae1 100644
+--- a/khtml/html/html_headimpl.cpp
++++ b/khtml/html/html_headimpl.cpp
+@@ -55,7 +55,7 @@ void HTMLBaseElementImpl::parseAttribute(AttributeImpl *attr)
+ switch(attr->id())
+ {
+ case ATTR_HREF:
+- m_href = attr->value().string().trimmed();
++ m_href = attr->value().trimSpaces().string();
+ process();
+ break;
+ case ATTR_TARGET:
+@@ -116,9 +116,9 @@ void HTMLLinkElementImpl::parseAttribute(AttributeImpl *attr)
+ switch (attr->id())
+ {
+ case ATTR_HREF: {
+- const QString hrefUrl = attr->val()->string().trimmed();
++ const DOMString hrefUrl = attr->value().trimSpaces();
+ if (!hrefUrl.isEmpty()) {
+- m_url = document()->completeURL(hrefUrl);
++ m_url = document()->completeURL(hrefUrl.string());
+ }
+ process();
+ break;
+@@ -385,7 +385,7 @@ void HTMLScriptElementImpl::parseAttribute(AttributeImpl *attr)
+ // we'll only start doing things once we get insertedIntoDocument()
+ if (m_evaluated || m_cachedScript || m_createdByParser || !inDocument())
+ return;
+- QString url = attr->value().string().trimmed();
++ const DOMString url = attr->value().trimSpaces();
+ if (!url.isEmpty())
+ loadFromUrl(url);
+ break;
+@@ -490,7 +490,7 @@ void HTMLScriptElementImpl::insertedIntoDocument()
+ if (m_createdByParser)
+ return;
+
+- QString url = getAttribute(ATTR_SRC).string().trimmed();
++ const DOMString url = getAttribute(ATTR_SRC).trimSpaces();
+ if (!url.isEmpty()) {
+ loadFromUrl(url);
+ return;
+@@ -622,7 +622,7 @@ void HTMLScriptElementImpl::setDefer(bool defer)
+
+ DOMString HTMLScriptElementImpl::src() const
+ {
+- return document()->completeURL(getAttribute(ATTR_SRC).string().trimmed());
++ return document()->completeURL(getAttribute(ATTR_SRC).trimSpaces().string());
+ }
+
+ void HTMLScriptElementImpl::setSrc(const DOMString &value)
+diff --git a/khtml/html/html_imageimpl.cpp b/khtml/html/html_imageimpl.cpp
+index 51695a8..15a8302 100644
+--- a/khtml/html/html_imageimpl.cpp
++++ b/khtml/html/html_imageimpl.cpp
+@@ -84,7 +84,7 @@ void HTMLImageElementImpl::parseAttribute(AttributeImpl *attr)
+ setChanged();
+
+ //Start loading the image already, to generate events
+- const QString imgSrcUrl = attr->value().string().trimmed();
++ const DOMString imgSrcUrl = attr->value().trimSpaces();
+ if (!imgSrcUrl.isEmpty()) { //### why do we not hide or something when setting this?
+ CachedImage* newImage = document()->docLoader()->requestImage(imgSrcUrl);
+ if (newImage && newImage != m_image) {
+@@ -151,7 +151,7 @@ void HTMLImageElementImpl::parseAttribute(AttributeImpl *attr)
+ if ( attr->value()[0] == '#' )
+ usemap = attr->value().lower();
+ else {
+- QString url = document()->completeURL(attr->value().string().trimmed());
++ QString url = document()->completeURL(attr->value().trimSpaces().string());
+ // ### we remove the part before the anchor and hope
+ // the map is on the same html page....
+ usemap = url;
+@@ -438,7 +438,7 @@ void HTMLMapElementImpl::parseAttribute(AttributeImpl *attr)
+ }
+ else {
+ // add name with full url:
+- const QString url = document()->completeURL(attr->value().string().trimmed());
++ const QString url = document()->completeURL(attr->value().trimSpaces().string());
+ if(document()->isHTMLDocument())
+ static_cast<HTMLDocumentImpl*>(document())->mapMap[url] = this;
+ }
+diff --git a/khtml/html/html_inlineimpl.cpp b/khtml/html/html_inlineimpl.cpp
+index fc2e6f6..6e9bdd8 100644
+--- a/khtml/html/html_inlineimpl.cpp
++++ b/khtml/html/html_inlineimpl.cpp
+@@ -81,7 +81,7 @@ void HTMLAnchorElementImpl::defaultEventHandler(EventImpl *evt)
+ if (k->qKeyEvent()) k->qKeyEvent()->accept();
+ }
+
+- QString url = getAttribute(ATTR_HREF).string().trimmed();
++ QString url = getAttribute(ATTR_HREF).trimSpaces().string();
+ QString utarget = getAttribute(ATTR_TARGET).string();
+
+ if ( e && e->button() == 1 )
+diff --git a/khtml/html/html_objectimpl.cpp b/khtml/html/html_objectimpl.cpp
+index 863afe6..f5aef26 100644
+--- a/khtml/html/html_objectimpl.cpp
++++ b/khtml/html/html_objectimpl.cpp
+@@ -695,7 +695,7 @@ void HTMLEmbedElementImpl::parseAttribute(AttributeImpl *attr)
+ {
+ case ATTR_CODE:
+ case ATTR_SRC:
+- url = attr->val()->string().trimmed();
++ url = attr->value().trimSpaces().string();
+ setNeedComputeContent();
+ break;
+ case ATTR_BORDER:
+@@ -775,7 +775,7 @@ void HTMLObjectElementImpl::parseAttribute(AttributeImpl *attr)
+ switch ( attr->id() )
+ {
+ case ATTR_DATA:
+- url = attr->val()->string().trimmed();
++ url = attr->value().trimSpaces().string();
+ setNeedComputeContent();
+ break;
+ case ATTR_CLASSID:
+diff --git a/khtml/html/html_tableimpl.cpp b/khtml/html/html_tableimpl.cpp
+index 8323093..c135545 100644
+--- a/khtml/html/html_tableimpl.cpp
++++ b/khtml/html/html_tableimpl.cpp
+@@ -495,7 +495,7 @@ void HTMLTableElementImpl::parseAttribute(AttributeImpl *attr)
+ break;
+ case ATTR_BACKGROUND:
+ {
+- QString url = attr->val()->string().trimmed();
++ QString url = attr->value().trimSpaces().string();
+ if (!url.isEmpty()) {
+ url = document()->completeURL( url );
+ addCSSProperty(CSS_PROP_BACKGROUND_IMAGE, DOMString("url('"+url+"')") );
+@@ -638,7 +638,7 @@ void HTMLTablePartElementImpl::parseAttribute(AttributeImpl *attr)
+ break;
+ case ATTR_BACKGROUND:
+ {
+- QString url = attr->val()->string().trimmed();
++ QString url = attr->value().trimSpaces().string();
+ if (!url.isEmpty()) {
+ url = document()->completeURL( url );
+ addCSSProperty(CSS_PROP_BACKGROUND_IMAGE, DOMString("url('"+url+"')") );
+diff --git a/khtml/html/htmlparser.cpp b/khtml/html/htmlparser.cpp
+index ce5be3e..49b8068 100644
+--- a/khtml/html/htmlparser.cpp
++++ b/khtml/html/htmlparser.cpp
+@@ -974,7 +974,7 @@ NodeImpl *KHTMLParser::getElement(Token* t)
+ KHTMLGlobal::defaultHTMLSettings()->isHideAdsEnabled() &&
+ !strcasecmp( t->attrs->getValue( ATTR_TYPE ), "image" ) )
+ {
+- const QString url = doc()->completeURL(t->attrs->getValue(ATTR_SRC)->string().trimmed());
++ const QString url = doc()->completeURL(DOMString(t->attrs->getValue(ATTR_SRC)).trimSpaces().string());
+ if (KHTMLGlobal::defaultHTMLSettings()->isAdFiltered(url))
+ return 0;
+ }
+@@ -1104,7 +1104,7 @@ NodeImpl *KHTMLParser::getElement(Token* t)
+ KHTMLGlobal::defaultHTMLSettings()->isAdFilterEnabled()&&
+ KHTMLGlobal::defaultHTMLSettings()->isHideAdsEnabled())
+ {
+- const QString url = doc()->completeURL(t->attrs->getValue(ATTR_SRC)->string().trimmed());
++ const QString url = doc()->completeURL(DOMString(t->attrs->getValue(ATTR_SRC)).trimSpaces().string());
+ if (KHTMLGlobal::defaultHTMLSettings()->isAdFiltered(url))
+ return 0;
+ }
+diff --git a/khtml/html/htmlprospectivetokenizer.cpp b/khtml/html/htmlprospectivetokenizer.cpp
+index 83c4c16..585a449 100644
+--- a/khtml/html/htmlprospectivetokenizer.cpp
++++ b/khtml/html/htmlprospectivetokenizer.cpp
+@@ -706,7 +706,7 @@ void ProspectiveTokenizer::processAttribute()
+ LocalName attrLocal = LocalName::fromString(&attrDS, IDS_NormalizeLower);
+ uint attribute = attrLocal.id();
+ if (attribute == localNamePart(ATTR_SRC) && m_urlToLoad.isEmpty())
+- m_urlToLoad = DOMString(QString(m_attributeValue.data(), m_attributeValue.size()).trimmed());
++ m_urlToLoad = DOMString(m_attributeValue.data(), m_attributeValue.size()).trimSpaces();
+ break;
+ }
+ case ID_LINK:
+@@ -715,7 +715,7 @@ void ProspectiveTokenizer::processAttribute()
+ LocalName attrLocal = LocalName::fromString(&attrDS, IDS_NormalizeLower);
+ uint attribute = attrLocal.id();
+ if (attribute == localNamePart(ATTR_HREF) && m_urlToLoad.isEmpty())
+- m_urlToLoad = DOMString(QString(m_attributeValue.data(), m_attributeValue.size()).trimmed());
++ m_urlToLoad = DOMString(m_attributeValue.data(), m_attributeValue.size()).trimSpaces();
+ else if (attribute == localNamePart(ATTR_REL)) {
+ DOMStringImpl* lowerAttribute = DOMStringImpl(DOMStringImpl::ShallowCopy, m_attributeValue.data(), m_attributeValue.size()).lower();
+ QString val = lowerAttribute->string();
+diff --git a/khtml/khtml_part.cpp b/khtml/khtml_part.cpp
+index 15ea3c9..6c4ed17 100644
+--- a/khtml/khtml_part.cpp
++++ b/khtml/khtml_part.cpp
+@@ -6420,7 +6420,7 @@ bool KHTMLPart::handleMouseMoveEventDrag(khtml::MouseMoveEvent *event)
+ if (url.isEmpty() && innerNodeImpl && innerNodeImpl->id() == ID_IMG)
+ {
+ img = static_cast<HTMLImageElementImpl *>(innerNodeImpl);
+- u = completeURL(img->getAttribute(ATTR_SRC).string().trimmed());
++ u = completeURL(img->getAttribute(ATTR_SRC).trimSpaces().string());
+ pix = KIconLoader::global()->loadIcon("image-x-generic", KIconLoader::Desktop);
+ }
+ else
+@@ -6719,7 +6719,7 @@ void KHTMLPart::runAdFilter()
+ node->id() == ID_IFRAME ||
+ (node->id() == ID_INPUT && static_cast<HTMLInputElementImpl *>(node)->inputType() == HTMLInputElementImpl::IMAGE ))
+ {
+- if (KHTMLGlobal::defaultHTMLSettings()->isAdFiltered(d->m_doc->completeURL(static_cast<ElementImpl *>(node)->getAttribute(ATTR_SRC).string().trimmed())))
++ if (KHTMLGlobal::defaultHTMLSettings()->isAdFiltered(d->m_doc->completeURL(static_cast<ElementImpl *>(node)->getAttribute(ATTR_SRC).trimSpaces().string())))
+ {
+ // Since any kids of node will be deleted, too, fastforward nextNode
+ // until we get outside of node.
+diff --git a/khtml/khtmlview.cpp b/khtml/khtmlview.cpp
+index 0c4e317..8078fdc 100644
+--- a/khtml/khtmlview.cpp
++++ b/khtml/khtmlview.cpp
+@@ -2780,7 +2780,7 @@ QMap< ElementImpl*, QChar > KHTMLView::buildFallbackAccessKeys() const
+ bool text_before = false;
+ switch( element->id()) {
+ case ID_A:
+- url = element->getAttribute(ATTR_HREF).string().trimmed();
++ url = element->getAttribute(ATTR_HREF).trimSpaces().string();
+ if( url.isEmpty()) // doesn't have href, it's only an anchor
+ continue;
+ text = static_cast< HTMLElementImpl* >( element )->innerText().string().simplified();
+diff --git a/khtml/rendering/render_image.cpp b/khtml/rendering/render_image.cpp
+index dee27ab..6741858 100644
+--- a/khtml/rendering/render_image.cpp
++++ b/khtml/rendering/render_image.cpp
+@@ -427,16 +427,16 @@ void RenderImage::updateFromElement()
+ else if (element()->id() == ID_IMG)
+ alt = static_cast<HTMLImageElementImpl*>(element())->altText();
+
+- const QString u = element()->id() == ID_OBJECT ?
+- element()->getAttribute(ATTR_DATA).string().trimmed() : element()->getAttribute(ATTR_SRC).string().trimmed();
++ const DOMString u = element()->id() == ID_OBJECT ?
++ element()->getAttribute(ATTR_DATA).trimSpaces() : element()->getAttribute(ATTR_SRC).trimSpaces();
+
+ if (!u.isEmpty()) {
+ // Need to compute completeURL, as 'u' can be relative
+ // while m_cachedImage->url() is always full url
+ DocumentImpl *docImpl = element()->document();
+- const QString fullUrl = docImpl->completeURL(u);
++ const QString fullUrl = docImpl->completeURL(u.string());
+ if (!m_cachedImage || m_cachedImage->url() != fullUrl) {
+- CachedImage *new_image = docImpl->docLoader()->requestImage(fullUrl);
++ CachedImage *new_image = docImpl->docLoader()->requestImage(DOMString(fullUrl));
+ if (new_image && new_image != m_cachedImage) {
+ updateImage(new_image);
+ }
+diff --git a/khtml/xml/dom_docimpl.cpp b/khtml/xml/dom_docimpl.cpp
+index 0a3e4ed..b8e5910 100644
+--- a/khtml/xml/dom_docimpl.cpp
++++ b/khtml/xml/dom_docimpl.cpp
+@@ -1979,7 +1979,7 @@ void DocumentImpl::processHttpEquiv(const DOMString &equiv, const DOMString &con
+ v->part()->scheduleRedirection(delay, v->part()->url().url() );
+ } else {
+ pos++;
+- while(pos < (int)str.length() && str[pos].isSpace()) pos++;
++ while(pos < str.length() && str[pos].isSpace()) pos++;
+ str = str.mid(pos);
+ if(str.indexOf("url", 0, Qt::CaseInsensitive ) == 0) str = str.mid(3);
+ str = str.trimmed();
+@@ -1987,7 +1987,8 @@ void DocumentImpl::processHttpEquiv(const DOMString &equiv, const DOMString &con
+ while (str.length() && (str[str.length()-1] == ';' || str[str.length()-1] == ',')) {
+ str.resize(str.length()-1);
+ }
+- QString newURL = document()->completeURL(str.trimmed());
++ str = DOMString(str).trimSpaces().string();
++ QString newURL = document()->completeURL(str);
+ if ( ok )
+ v->part()->scheduleRedirection(delay, newURL, delay < 2 || newURL == URL().url());
+ }
+@@ -2047,7 +2048,7 @@ bool DocumentImpl::prepareMouseEvent( bool readonly, int _x, int _y, MouseEvent
+ //qDebug("urlnode: %s (%d)", getTagName(renderInfo.URLElement()->id()).string().toLatin1().constData(), renderInfo.URLElement()->id());
+
+ ElementImpl* e = static_cast<ElementImpl*>(renderInfo.URLElement());
+- const DOMString href = e->getAttribute(ATTR_HREF).string().trimmed();
++ const DOMString href = e->getAttribute(ATTR_HREF).trimSpaces();
+ const DOMString target = e->getAttribute(ATTR_TARGET);
+
+ if (!target.isNull() && !href.isNull()) {
+--
+2.0.4
+
diff --git a/kde-base/kdelibs/files/kdelibs-4.14.5-fatalwarnings.patch b/kde-base/kdelibs/files/kdelibs-4.14.5-fatalwarnings.patch
new file mode 100644
index 000000000000..78c1ac77dcbe
--- /dev/null
+++ b/kde-base/kdelibs/files/kdelibs-4.14.5-fatalwarnings.patch
@@ -0,0 +1,16 @@
+Avoid build failure due to harmless warnings on some platforms (eg. ARM) being
+forced fatal.
+
+--- cmake/modules/FindKDE4Internal.cmake
++++ cmake/modules/FindKDE4Internal.cmake
+@@ -1100,8 +1100,8 @@
+ if (CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME STREQUAL GNU)
+ if (CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+ set ( _KDE4_PLATFORM_DEFINITIONS -D_XOPEN_SOURCE=500 -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE)
+- set ( CMAKE_SHARED_LINKER_FLAGS "-Wl,--fatal-warnings -Wl,--no-undefined -lc ${CMAKE_SHARED_LINKER_FLAGS}")
+- set ( CMAKE_MODULE_LINKER_FLAGS "-Wl,--fatal-warnings -Wl,--no-undefined -lc ${CMAKE_MODULE_LINKER_FLAGS}")
++ set ( CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined -lc ${CMAKE_SHARED_LINKER_FLAGS}")
++ set ( CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined -lc ${CMAKE_MODULE_LINKER_FLAGS}")
+
+ set ( CMAKE_SHARED_LINKER_FLAGS "-Wl,--enable-new-dtags ${CMAKE_SHARED_LINKER_FLAGS}")
+ set ( CMAKE_MODULE_LINKER_FLAGS "-Wl,--enable-new-dtags ${CMAKE_MODULE_LINKER_FLAGS}")
diff --git a/kde-base/kdelibs/files/kdelibs-4.14.5-mimetypes.patch b/kde-base/kdelibs/files/kdelibs-4.14.5-mimetypes.patch
new file mode 100644
index 000000000000..dc8f87e678ea
--- /dev/null
+++ b/kde-base/kdelibs/files/kdelibs-4.14.5-mimetypes.patch
@@ -0,0 +1,27 @@
+Remove fake MIME types that cause warnings.
+
+The offending MIME types are commented out rather than
+physically removed because doing so would cause the patch
+to be too large.
+
+--- mimetypes/kde.xml
++++ mimetypes/kde.xml
+@@ -1784,7 +1784,8 @@
+ <glob pattern="*.abc"/>
+ </mime-type>
+
+- <!-- all/ fake mime types -->
++ <!--
++ all/ fake mime types
+ <mime-type type="all/all">
+ <comment>all files and folders</comment>
+ <comment xml:lang="ar">كل الملفات و المجلدات</comment>
+@@ -1901,7 +1902,7 @@
+ <comment xml:lang="zh_CN">全部文件</comment>
+ <comment xml:lang="zh_TW">所有檔案</comment>
+ </mime-type>
+-
++ -->
+ <mime-type type="application/vnd.kde.fontspackage">
+ <sub-class-of type="application/zip"/>
+ <comment>fonts package</comment>
diff --git a/kde-base/kdelibs/files/kdelibs-4.3.80-kdeui_util_kkeyserver_mac.patch b/kde-base/kdelibs/files/kdelibs-4.3.80-kdeui_util_kkeyserver_mac.patch
new file mode 100644
index 000000000000..22e6279e63a9
--- /dev/null
+++ b/kde-base/kdelibs/files/kdelibs-4.3.80-kdeui_util_kkeyserver_mac.patch
@@ -0,0 +1,46 @@
+diff -purN kdelibs-4.3.80.orig/kdeui/util/kkeyserver_mac.cpp kdelibs-4.3.80/kdeui/util/kkeyserver_mac.cpp
+--- kdelibs-4.3.80.orig/kdeui/util/kkeyserver_mac.cpp 2009-12-14 17:05:26.284881642 -0500
++++ kdelibs-4.3.80/kdeui/util/kkeyserver_mac.cpp 2009-12-14 17:11:23.393094384 -0500
+@@ -68,7 +68,7 @@ namespace KKeyServer {
+ #ifdef QT_MAC_USE_COCOA
+ static TISInputSourceRef lastLayout = 0;
+ #else
+- static KeyboardLayoutRef lastLayout = NULL;
++ static TISInputSourceRef lastLayout = NULL;
+ #endif
+
+ void updateScancodes() {
+@@ -125,16 +125,27 @@ namespace KKeyServer {
+ #endif
+ lastLayout = layout;
+ scancodes.clear();
+- void *kchr;
+- if (KLGetKeyboardLayoutProperty(layout, kKLKCHRData, const_cast<const void**>(&kchr)) != noErr) {
++ UCKeyboardLayout *uchr = (UCKeyboardLayout *)TISGetInputSourceProperty(layout, kTISPropertyUnicodeKeyLayoutData);
++ if (uchr == NULL) {
+ kWarning() << "Couldn't load active keyboard layout";
+ } else {
+ for (int i = 0; i < 128; i++) {
+ UInt32 tmpState = 0;
+- UInt32 chr = KeyTranslate(kchr, i, &tmpState);
+- if (chr && chr != kFunctionKeyCharCode) {
+- scancodes.insert(chr, i);
+- }
++ UInt32 deadKeyState = 0;
++ UInt32 flags = 0;
++ UniCharCount maxStringLength = 255;
++ UniCharCount actualStringLength = 0;
++ UniChar unicodeString[maxStringLength];
++
++ UCKeyTranslate(uchr, i, kUCKeyActionDown,
++ flags, LMGetKbdType(),
++ 1, &deadKeyState, maxStringLength, &actualStringLength, unicodeString);
++ fprintf(stderr, "Got key: %s\n", unicodeString);
++ fflush(stderr);
++ //UInt32 chr = KeyTranslate(kchr, i, &tmpState);
++ //if (chr && chr != kFunctionKeyCharCode) {
++ // scancodes.insert(chr, i);
++ //}
+ }
+ }
+ }
diff --git a/kde-base/kdelibs/files/kdelibs-4.4.90-xslt.patch b/kde-base/kdelibs/files/kdelibs-4.4.90-xslt.patch
new file mode 100644
index 000000000000..0d25ada337b0
--- /dev/null
+++ b/kde-base/kdelibs/files/kdelibs-4.4.90-xslt.patch
@@ -0,0 +1,12 @@
+diff -r -u kdelibs-4.4.90.orig/kdoctools/customization/htdig_index.xsl kdelibs-4.4.90/kdoctools/customization/htdig_index.xsl
+--- kdelibs-4.4.90.orig/kdoctools/customization/htdig_index.xsl 2008-05-21 13:07:13.000000000 +0200
++++ kdelibs-4.4.90/kdoctools/customization/htdig_index.xsl 2010-07-08 23:32:28.184204481 +0200
+@@ -35,7 +35,7 @@
+ </entry>
+ </xsl:template>
+
+-<xsl:template match="sect*/title|emphasis">
++<xsl:template match="*[starts-with(local-name(), 'sect')]/title|emphasis">
+ <entry header="2">
+ <xsl:apply-templates/>
+ </entry>
diff --git a/kde-base/kdelibs/files/kdelibs-4.6.2-armlinking.patch b/kde-base/kdelibs/files/kdelibs-4.6.2-armlinking.patch
new file mode 100644
index 000000000000..a207d1088348
--- /dev/null
+++ b/kde-base/kdelibs/files/kdelibs-4.6.2-armlinking.patch
@@ -0,0 +1,14 @@
+diff -ruN kdelibs-4.6.2.orig/cmake/modules/FindKDE4Internal.cmake kdelibs-4.6.2/cmake/modules/FindKDE4Internal.cmake
+--- kdelibs-4.6.2.orig/cmake/modules/FindKDE4Internal.cmake 2011-04-01 15:56:18.000000000 +0200
++++ kdelibs-4.6.2/cmake/modules/FindKDE4Internal.cmake 2011-04-11 23:53:19.067196607 +0200
+@@ -1092,8 +1092,8 @@
+ if (CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME STREQUAL GNU)
+ if (CMAKE_COMPILER_IS_GNUCXX)
+ set ( _KDE4_PLATFORM_DEFINITIONS -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_GNU_SOURCE)
+- set ( CMAKE_SHARED_LINKER_FLAGS "-Wl,--fatal-warnings -Wl,--no-undefined -lc ${CMAKE_SHARED_LINKER_FLAGS}")
+- set ( CMAKE_MODULE_LINKER_FLAGS "-Wl,--fatal-warnings -Wl,--no-undefined -lc ${CMAKE_MODULE_LINKER_FLAGS}")
++ set ( CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined -lc ${CMAKE_SHARED_LINKER_FLAGS}")
++ set ( CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined -lc ${CMAKE_MODULE_LINKER_FLAGS}")
+
+ set ( CMAKE_SHARED_LINKER_FLAGS "-Wl,--enable-new-dtags ${CMAKE_SHARED_LINKER_FLAGS}")
+ set ( CMAKE_MODULE_LINKER_FLAGS "-Wl,--enable-new-dtags ${CMAKE_MODULE_LINKER_FLAGS}")
diff --git a/kde-base/kdelibs/files/kdelibs-4.6.3-no_suid_kdeinit.patch b/kde-base/kdelibs/files/kdelibs-4.6.3-no_suid_kdeinit.patch
new file mode 100644
index 000000000000..4b34f62c2be4
--- /dev/null
+++ b/kde-base/kdelibs/files/kdelibs-4.6.3-no_suid_kdeinit.patch
@@ -0,0 +1,19 @@
+diff -urN kdelibs-4.6.3.old/kinit/CMakeLists.txt kdelibs-4.6.3/kinit/CMakeLists.txt
+--- kdelibs-4.6.3.old/kinit/CMakeLists.txt 2011-05-02 00:19:10.000000000 +0200
++++ kdelibs-4.6.3/kinit/CMakeLists.txt 2011-05-02 00:20:32.000000000 +0200
+@@ -170,15 +170,6 @@
+ install(TARGETS start_kdeinit_wrapper DESTINATION ${LIBEXEC_INSTALL_DIR})
+ endif (NOT WIN32)
+
+-if (CMAKE_SYSTEM_NAME MATCHES Linux)
+- MESSAGE(STATUS "Using setuid root kdeinit wrapper in order to protect it from bad Linux OOM-killer")
+- set(KDEINIT_OOM_PROTECT 1)
+- install(CODE "
+- set(START_KDEINIT_PATH \"\$ENV{DESTDIR}${LIBEXEC_INSTALL_DIR}/start_kdeinit\")
+- EXECUTE_PROCESS(COMMAND sh -c \"chown 0 '\${START_KDEINIT_PATH}' && chmod u+s '\${START_KDEINIT_PATH}'\")
+- ")
+-endif (CMAKE_SYSTEM_NAME MATCHES Linux)
+-
+ ########### install files ###############
+
+ install( FILES ${CMAKE_CURRENT_BINARY_DIR}/org.kde.KLauncher.xml DESTINATION ${DBUS_INTERFACES_INSTALL_DIR} )
diff --git a/kde-base/kdelibs/files/kdelibs-4.8.1-norpath.patch b/kde-base/kdelibs/files/kdelibs-4.8.1-norpath.patch
new file mode 100644
index 000000000000..83d5576ac023
--- /dev/null
+++ b/kde-base/kdelibs/files/kdelibs-4.8.1-norpath.patch
@@ -0,0 +1,18 @@
+diff -ruN kdelibs-4.8.1.orig/cmake/modules/FindKDE4Internal.cmake kdelibs-4.8.1/cmake/modules/FindKDE4Internal.cmake
+--- kdelibs-4.8.1.orig/cmake/modules/FindKDE4Internal.cmake 2012-02-29 22:55:52.000000000 +0100
++++ kdelibs-4.8.1/cmake/modules/FindKDE4Internal.cmake 2012-03-24 17:18:59.452942648 +0100
+@@ -1045,7 +1045,13 @@
+
+ set(CMAKE_SKIP_BUILD_RPATH FALSE)
+ set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
+- set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
++
++ # the RPATH to be used when installing
++ SET(CMAKE_INSTALL_RPATH "")
++
++ # don't add the automatically determined parts of the RPATH
++ # which point to directories outside the build tree to the install RPATH
++ SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH FALSE)
+ endif (APPLE)
+ endif (UNIX)
+
diff --git a/kde-base/kdelibs/files/kdelibs-4.9.3-werror.patch b/kde-base/kdelibs/files/kdelibs-4.9.3-werror.patch
new file mode 100644
index 000000000000..6ec0b7d9a3ef
--- /dev/null
+++ b/kde-base/kdelibs/files/kdelibs-4.9.3-werror.patch
@@ -0,0 +1,20 @@
+--- cmake/modules/FindKDE4Internal.cmake
++++ cmake/modules/FindKDE4Internal.cmake
+@@ -1204,7 +1204,7 @@
+ set(CMAKE_C_FLAGS_DEBUGFULL "-g3 -fno-inline")
+ set(CMAKE_C_FLAGS_PROFILE "-g3 -fno-inline -ftest-coverage -fprofile-arcs")
+
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-long-long -std=iso9899:1990 -Wundef -Wcast-align -Werror-implicit-function-declaration -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-common")
++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-long-long -std=iso9899:1990 -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-common")
+ # As of Qt 4.6.x we need to override the new exception macros if we want compile with -fno-exceptions
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-exceptions -DQT_NO_EXCEPTIONS -fno-check-new -fno-common")
+
+@@ -1295,7 +1295,7 @@
+ endif(NOT _compile_result)
+
+ if (GCC_IS_NEWER_THAN_4_2)
+- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=return-type -fvisibility-inlines-hidden")
++ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden")
+ endif (GCC_IS_NEWER_THAN_4_2)
+ else (__KDE_HAVE_GCC_VISIBILITY AND GCC_IS_NEWER_THAN_4_1 AND NOT _GCC_COMPILED_WITH_BAD_ALLOCATOR AND NOT WIN32)
+ set (__KDE_HAVE_GCC_VISIBILITY 0)
diff --git a/kde-base/kdelibs/kdelibs-4.14.10.ebuild b/kde-base/kdelibs/kdelibs-4.14.10.ebuild
new file mode 100644
index 000000000000..f5a8d60d32e5
--- /dev/null
+++ b/kde-base/kdelibs/kdelibs-4.14.10.ebuild
@@ -0,0 +1,306 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+CPPUNIT_REQUIRED="optional"
+DECLARATIVE_REQUIRED="always"
+OPENGL_REQUIRED="optional"
+KDE_HANDBOOK="optional"
+inherit kde4-base fdo-mime multilib toolchain-funcs flag-o-matic
+
+EGIT_BRANCH="KDE/4.14"
+
+DESCRIPTION="KDE libraries needed by all KDE programs"
+
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+LICENSE="LGPL-2.1"
+IUSE="cpu_flags_x86_3dnow acl alsa altivec +bzip2 +crypt debug doc fam jpeg2k
+kerberos lzma cpu_flags_x86_mmx nepomuk nls openexr +policykit spell
+cpu_flags_x86_sse cpu_flags_x86_sse2 ssl +udev +udisks +upower zeroconf"
+
+REQUIRED_USE="
+ udisks? ( udev )
+ upower? ( udev )
+"
+
+# needs the kate regression testsuite from svn
+RESTRICT="test"
+
+COMMONDEPEND="
+ >=app-misc/strigi-0.7.7
+ app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xsl-stylesheets
+ >=dev-libs/libattica-0.4.2
+ >=dev-libs/libdbusmenu-qt-0.3.2[qt4(+)]
+ dev-libs/libpcre[unicode]
+ dev-libs/libxml2
+ dev-libs/libxslt
+ media-libs/fontconfig
+ media-libs/freetype:2
+ media-libs/giflib
+ media-libs/libpng:0=
+ media-libs/phonon[qt4]
+ sys-libs/zlib
+ virtual/jpeg:0
+ >=x11-misc/shared-mime-info-0.60
+ acl? ( virtual/acl )
+ alsa? ( media-libs/alsa-lib )
+ !aqua? (
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXau
+ x11-libs/libXcursor
+ x11-libs/libXdmcp
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXft
+ x11-libs/libXpm
+ x11-libs/libXrender
+ x11-libs/libXScrnSaver
+ x11-libs/libXtst
+ !kernel_SunOS? (
+ || (
+ sys-libs/libutempter
+ >=sys-freebsd/freebsd-lib-9.0
+ )
+ )
+ )
+ bzip2? ( app-arch/bzip2 )
+ crypt? ( app-crypt/qca:2[qt4(+)] )
+ fam? ( virtual/fam )
+ jpeg2k? ( media-libs/jasper )
+ kerberos? ( virtual/krb5 )
+ nepomuk? (
+ >=dev-libs/shared-desktop-ontologies-0.11.0
+ >=dev-libs/soprano-2.9.0[dbus,raptor,redland]
+ )
+ openexr? (
+ media-libs/openexr:=
+ media-libs/ilmbase:=
+ )
+ policykit? ( >=sys-auth/polkit-qt-0.103.0[qt4(+)] )
+ spell? ( app-text/enchant )
+ ssl? ( dev-libs/openssl:0 )
+ udev? ( virtual/udev )
+ zeroconf? ( net-dns/avahi[mdnsresponder-compat] )
+"
+DEPEND="${COMMONDEPEND}
+ doc? ( app-doc/doxygen )
+ nls? ( virtual/libintl )
+"
+RDEPEND="${COMMONDEPEND}
+ !dev-qt/qtphonon
+ !<=kde-base/plasma-workspace-4.7.1:4
+ !<=kde-base/kcontrol-4.4.50:4
+ >=app-crypt/gnupg-2.0.11
+ app-misc/ca-certificates
+ $(add_kdebase_dep kde-env '' 4.14.3)
+ sys-apps/dbus[X]
+ !aqua? (
+ udisks? ( sys-fs/udisks:2 )
+ x11-apps/iceauth
+ x11-apps/rgb
+ >=x11-misc/xdg-utils-1.0.2-r3
+ upower? ( || ( >=sys-power/upower-0.9.23 sys-power/upower-pm-utils ) )
+ )
+ udev? ( app-misc/media-player-info )
+"
+PDEPEND="
+ $(add_kdebase_dep katepart '' 4.14.3)
+ || (
+ $(add_kdeapps_dep kfmclient '' 4.14.3)
+ x11-misc/xdg-utils
+ )
+ handbook? (
+ || (
+ $(add_kdebase_dep khelpcenter '' 4.14.3)
+ kde-plasma/khelpcenter:5[compat(+)]
+ )
+ )
+ nepomuk? (
+ $(add_kdebase_dep nepomuk-core '' 4.14.3)
+ $(add_kdebase_dep nepomuk-widgets '' 4.14.3)
+ )
+ policykit? ( || (
+ >=sys-auth/polkit-kde-agent-0.99
+ kde-plasma/polkit-kde-agent
+ ) )
+"
+
+PATCHES=(
+ "${FILESDIR}/dist/01_gentoo_set_xdg_menu_prefix-1.patch"
+ "${FILESDIR}/dist/02_gentoo_append_xdg_config_dirs-1.patch"
+ "${FILESDIR}/${PN}-4.14.5-fatalwarnings.patch"
+ "${FILESDIR}/${PN}-4.14.5-mimetypes.patch"
+ "${FILESDIR}/${PN}-4.4.90-xslt.patch"
+ "${FILESDIR}/${PN}-4.6.3-no_suid_kdeinit.patch"
+ "${FILESDIR}/${PN}-4.8.1-norpath.patch"
+ "${FILESDIR}/${PN}-4.9.3-werror.patch"
+ "${FILESDIR}/${PN}-4.10.0-udisks.patch"
+)
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ [[ $(gcc-major-version) -lt 4 ]] || \
+ ( [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -le 3 ]] ) \
+ && die "Sorry, but gcc-4.3 and earlier won't work for KDE SC 4.6 (see bug #354837)."
+ fi
+}
+
+src_prepare() {
+ kde4-base_src_prepare
+
+ # Rename applications.menu (needs 01_gentoo_set_xdg_menu_prefix-1.patch to work)
+ sed -e 's|FILES[[:space:]]applications.menu|FILES applications.menu RENAME kde-4-applications.menu|g' \
+ -i kded/CMakeLists.txt || die "Sed on CMakeLists.txt for applications.menu failed."
+
+ if use aqua; then
+ sed -i -e \
+ "s:BUNDLE_INSTALL_DIR \"/Applications:BUNDLE_INSTALL_DIR \"${EPREFIX}/${APP_BUNDLE_DIR}:g" \
+ cmake/modules/FindKDE4Internal.cmake || die "failed to sed FindKDE4Internal.cmake"
+
+ #if [[ ${CHOST} == *-darwin8 ]]; then
+ sed -i -e \
+ "s:set(_add_executable_param MACOSX_BUNDLE):remove(_add_executable_param MACOSX_BUNDLE):g" \
+ cmake/modules/KDE4Macros.cmake || die "failed to sed KDE4Macros.cmake"
+ #fi
+
+ # solid/solid/backends/iokit doesn't properly link, so disable it.
+ sed -e "s|\(APPLE\)|(FALSE)|g" -i solid/solid/CMakeLists.txt \
+ || die "disabling solid/solid/backends/iokit failed"
+ sed -e "s|m_backend = .*Backends::IOKit.*;|m_backend = 0;|g" -i solid/solid/managerbase.cpp \
+ || die "disabling solid/solid/backends/iokit failed"
+
+ # There's no fdatasync on OSX and the check fails to detect that.
+ sed -e "/HAVE_FDATASYNC/ d" -i config.h.cmake \
+ || die "disabling fdatasync failed"
+
+ # Fix nameser include to nameser8_compat
+ sed -e "s|nameser8_compat.h|nameser_compat.h|g" -i kio/misc/kpac/discovery.cpp \
+ || die "fixing nameser include failed"
+ append-flags -DHAVE_ARPA_NAMESER8_COMPAT_H=1
+
+ # Try to fix kkeyserver_mac
+ epatch "${FILESDIR}"/${PN}-4.3.80-kdeui_util_kkeyserver_mac.patch
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DWITH_HSPELL=OFF
+ -DWITH_ASPELL=OFF
+ -DWITH_DNSSD=OFF
+ -DKDE_DEFAULT_HOME=.kde4
+ -DKAUTH_BACKEND=POLKITQT-1
+ -DBUILD_libkactivities=OFF
+ $(cmake-utils_use_build handbook doc)
+ $(cmake-utils_use_has cpu_flags_x86_3dnow X86_3DNOW)
+ $(cmake-utils_use_has altivec PPC_ALTIVEC)
+ $(cmake-utils_use_has cpu_flags_x86_mmx X86_MMX)
+ $(cmake-utils_use_has cpu_flags_x86_sse X86_SSE)
+ $(cmake-utils_use_has cpu_flags_x86_sse2 X86_SSE2)
+ $(cmake-utils_use_with acl)
+ $(cmake-utils_use_with alsa)
+ $(cmake-utils_use_with bzip2 BZip2)
+ $(cmake-utils_use_with crypt QCA2)
+ $(cmake-utils_use_with fam)
+ $(cmake-utils_use_with jpeg2k Jasper)
+ $(cmake-utils_use_with kerberos GSSAPI)
+ $(cmake-utils_use_with lzma LibLZMA)
+ $(cmake-utils_use_with nepomuk Soprano)
+ $(cmake-utils_use_with nepomuk SharedDesktopOntologies)
+ $(cmake-utils_use_with nls Libintl)
+ $(cmake-utils_use_with openexr OpenEXR)
+ $(cmake-utils_use_with opengl OpenGL)
+ $(cmake-utils_use_with policykit PolkitQt-1)
+ $(cmake-utils_use_with spell ENCHANT)
+ $(cmake-utils_use_with ssl OpenSSL)
+ $(cmake-utils_use_with udev UDev)
+ $(cmake-utils_use_with udisks SOLID_UDISKS2)
+ $(cmake-utils_use_with zeroconf Avahi)
+ )
+ kde4-base_src_configure
+}
+
+src_compile() {
+ kde4-base_src_compile
+
+ # The building of apidox is not managed anymore by the build system
+ if use doc; then
+ einfo "Building API documentation"
+ cd "${S}"/doc/api/
+ ./doxygen.sh "${S}" || die "APIDOX generation failed"
+ fi
+}
+
+src_install() {
+ kde4-base_src_install
+
+ # use system certificates
+ rm -f "${ED}"/usr/share/apps/kssl/ca-bundle.crt || die
+ dosym /etc/ssl/certs/ca-certificates.crt /usr/share/apps/kssl/ca-bundle.crt
+
+ if use doc; then
+ einfo "Installing API documentation. This could take a bit of time."
+ cd "${S}"/doc/api/
+ docinto /HTML/en/kdelibs-apidox
+ dohtml -r ${P}-apidocs/*
+ fi
+
+ if use aqua; then
+ einfo "fixing ${PN} plugins"
+
+ local _PV=${PV:0:3}.0
+ local _dir=${EPREFIX}/usr/$(get_libdir)/kde4/plugins/script
+
+ install_name_tool -id \
+ "${_dir}/libkrossqtsplugin.${_PV}.dylib" \
+ "${D}/${_dir}/libkrossqtsplugin.${_PV}.dylib" \
+ || die "failed fixing libkrossqtsplugin.${_PV}.dylib"
+
+ einfo "fixing ${PN} cmake detection files"
+ #sed -i -e \
+ # "s:if (HAVE_XKB):if (HAVE_XKB AND NOT APPLE):g" \
+ echo -e "set(XKB_FOUND FALSE)\nset(HAVE_XKB FALSE)" > \
+ "${ED}"/usr/share/apps/cmake/modules/FindXKB.cmake \
+ || die "failed fixing FindXKB.cmake"
+ fi
+
+ einfo Installing environment file.
+ # Since 44qt4 is sourced earlier QT_PLUGIN_PATH is defined.
+ echo "COLON_SEPARATED=QT_PLUGIN_PATH" > "${T}/77kde"
+ echo "QT_PLUGIN_PATH=${EPREFIX}/usr/$(get_libdir)/kde4/plugins" >> "${T}/77kde"
+ doenvd "${T}/77kde"
+}
+
+pkg_postinst() {
+ fdo-mime_mime_database_update
+
+ if use zeroconf; then
+ echo
+ elog "To make zeroconf support available in KDE make sure that the avahi daemon"
+ elog "is running."
+ echo
+ einfo "If you also want to use zeroconf for hostname resolution, emerge sys-auth/nss-mdns"
+ einfo "and enable multicast dns lookups by editing the 'hosts:' line in /etc/nsswitch.conf"
+ einfo "to include 'mdns', e.g.:"
+ einfo " hosts: files mdns dns"
+ echo
+ fi
+
+ kde4-base_pkg_postinst
+}
+
+pkg_prerm() {
+ # Remove ksycoca4 global database
+ rm -f "${EROOT}${PREFIX}"/share/kde4/services/ksycoca4
+}
+
+pkg_postrm() {
+ fdo-mime_mime_database_update
+
+ kde4-base_pkg_postrm
+}
diff --git a/kde-base/kdelibs/kdelibs-4.14.3-r1.ebuild b/kde-base/kdelibs/kdelibs-4.14.3-r1.ebuild
new file mode 100644
index 000000000000..070c8e71b920
--- /dev/null
+++ b/kde-base/kdelibs/kdelibs-4.14.3-r1.ebuild
@@ -0,0 +1,307 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+CPPUNIT_REQUIRED="optional"
+DECLARATIVE_REQUIRED="always"
+OPENGL_REQUIRED="optional"
+KDE_HANDBOOK="optional"
+inherit kde4-base fdo-mime multilib toolchain-funcs flag-o-matic
+
+EGIT_BRANCH="KDE/4.14"
+
+DESCRIPTION="KDE libraries needed by all KDE programs"
+
+KEYWORDS="amd64 ~arm ppc ppc64 x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+LICENSE="LGPL-2.1"
+IUSE="cpu_flags_x86_3dnow acl alsa altivec +bzip2 +crypt debug doc fam jpeg2k
+kerberos lzma cpu_flags_x86_mmx nepomuk nls openexr +policykit spell
+cpu_flags_x86_sse cpu_flags_x86_sse2 ssl +udev +udisks +upower zeroconf"
+
+REQUIRED_USE="
+ udisks? ( udev )
+ upower? ( udev )
+"
+
+# needs the kate regression testsuite from svn
+RESTRICT="test"
+
+COMMONDEPEND="
+ >=app-misc/strigi-0.7.7
+ app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xsl-stylesheets
+ >=dev-libs/libattica-0.4.2
+ >=dev-libs/libdbusmenu-qt-0.3.2[qt4(+)]
+ dev-libs/libpcre[unicode]
+ dev-libs/libxml2
+ dev-libs/libxslt
+ media-libs/fontconfig
+ media-libs/freetype:2
+ media-libs/giflib
+ media-libs/libpng:0=
+ media-libs/phonon[qt4]
+ sys-libs/zlib
+ virtual/jpeg:0
+ >=x11-misc/shared-mime-info-0.60
+ acl? ( virtual/acl )
+ alsa? ( media-libs/alsa-lib )
+ !aqua? (
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXau
+ x11-libs/libXcursor
+ x11-libs/libXdmcp
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXft
+ x11-libs/libXpm
+ x11-libs/libXrender
+ x11-libs/libXScrnSaver
+ x11-libs/libXtst
+ !kernel_SunOS? (
+ || (
+ sys-libs/libutempter
+ >=sys-freebsd/freebsd-lib-9.0
+ )
+ )
+ )
+ bzip2? ( app-arch/bzip2 )
+ crypt? ( app-crypt/qca:2[qt4(+)] )
+ fam? ( virtual/fam )
+ jpeg2k? ( media-libs/jasper )
+ kerberos? ( virtual/krb5 )
+ nepomuk? (
+ >=dev-libs/shared-desktop-ontologies-0.11.0
+ >=dev-libs/soprano-2.9.0[dbus,raptor,redland]
+ )
+ openexr? (
+ media-libs/openexr:=
+ media-libs/ilmbase:=
+ )
+ policykit? ( >=sys-auth/polkit-qt-0.103.0[qt4(+)] )
+ spell? ( app-text/enchant )
+ ssl? ( dev-libs/openssl )
+ udev? ( virtual/udev )
+ zeroconf? ( net-dns/avahi[mdnsresponder-compat] )
+"
+DEPEND="${COMMONDEPEND}
+ doc? ( app-doc/doxygen )
+ nls? ( virtual/libintl )
+"
+RDEPEND="${COMMONDEPEND}
+ !dev-qt/qtphonon
+ !<=kde-base/plasma-workspace-4.7.1:4
+ !<=kde-base/kcontrol-4.4.50:4
+ >=app-crypt/gnupg-2.0.11
+ app-misc/ca-certificates
+ $(add_kdebase_dep kde-env)
+ sys-apps/dbus[X]
+ !aqua? (
+ udisks? ( sys-fs/udisks:2 )
+ x11-apps/iceauth
+ x11-apps/rgb
+ >=x11-misc/xdg-utils-1.0.2-r3
+ upower? ( || ( >=sys-power/upower-0.9.23 sys-power/upower-pm-utils ) )
+ )
+ udev? ( app-misc/media-player-info )
+"
+PDEPEND="
+ $(add_kdebase_dep katepart)
+ || (
+ $(add_kdeapps_dep kfmclient)
+ x11-misc/xdg-utils
+ )
+ handbook? (
+ || (
+ $(add_kdebase_dep khelpcenter)
+ kde-plasma/khelpcenter:5[compat(+)]
+ )
+ )
+ nepomuk? (
+ $(add_kdebase_dep nepomuk-core)
+ $(add_kdebase_dep nepomuk-widgets)
+ )
+ policykit? ( || (
+ >=sys-auth/polkit-kde-agent-0.99
+ kde-plasma/polkit-kde-agent
+ ) )
+"
+
+PATCHES=(
+ "${FILESDIR}/dist/01_gentoo_set_xdg_menu_prefix-1.patch"
+ "${FILESDIR}/dist/02_gentoo_append_xdg_config_dirs-1.patch"
+ "${FILESDIR}/${PN}-4.14.0-mimetypes.patch"
+ "${FILESDIR}/${PN}-4.4.90-xslt.patch"
+ "${FILESDIR}/${PN}-4.6.2-armlinking.patch"
+ "${FILESDIR}/${PN}-4.6.3-no_suid_kdeinit.patch"
+ "${FILESDIR}/${PN}-4.8.1-norpath.patch"
+ "${FILESDIR}/${PN}-4.9.3-werror.patch"
+ "${FILESDIR}/${PN}-4.10.0-udisks.patch"
+ "${FILESDIR}/${PN}-4.14.3-trim-crash.patch"
+)
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ [[ $(gcc-major-version) -lt 4 ]] || \
+ ( [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -le 3 ]] ) \
+ && die "Sorry, but gcc-4.3 and earlier won't work for KDE SC 4.6 (see bug #354837)."
+ fi
+}
+
+src_prepare() {
+ kde4-base_src_prepare
+
+ # Rename applications.menu (needs 01_gentoo_set_xdg_menu_prefix-1.patch to work)
+ sed -e 's|FILES[[:space:]]applications.menu|FILES applications.menu RENAME kde-4-applications.menu|g' \
+ -i kded/CMakeLists.txt || die "Sed on CMakeLists.txt for applications.menu failed."
+
+ if use aqua; then
+ sed -i -e \
+ "s:BUNDLE_INSTALL_DIR \"/Applications:BUNDLE_INSTALL_DIR \"${EPREFIX}/${APP_BUNDLE_DIR}:g" \
+ cmake/modules/FindKDE4Internal.cmake || die "failed to sed FindKDE4Internal.cmake"
+
+ #if [[ ${CHOST} == *-darwin8 ]]; then
+ sed -i -e \
+ "s:set(_add_executable_param MACOSX_BUNDLE):remove(_add_executable_param MACOSX_BUNDLE):g" \
+ cmake/modules/KDE4Macros.cmake || die "failed to sed KDE4Macros.cmake"
+ #fi
+
+ # solid/solid/backends/iokit doesn't properly link, so disable it.
+ sed -e "s|\(APPLE\)|(FALSE)|g" -i solid/solid/CMakeLists.txt \
+ || die "disabling solid/solid/backends/iokit failed"
+ sed -e "s|m_backend = .*Backends::IOKit.*;|m_backend = 0;|g" -i solid/solid/managerbase.cpp \
+ || die "disabling solid/solid/backends/iokit failed"
+
+ # There's no fdatasync on OSX and the check fails to detect that.
+ sed -e "/HAVE_FDATASYNC/ d" -i config.h.cmake \
+ || die "disabling fdatasync failed"
+
+ # Fix nameser include to nameser8_compat
+ sed -e "s|nameser8_compat.h|nameser_compat.h|g" -i kio/misc/kpac/discovery.cpp \
+ || die "fixing nameser include failed"
+ append-flags -DHAVE_ARPA_NAMESER8_COMPAT_H=1
+
+ # Try to fix kkeyserver_mac
+ epatch "${FILESDIR}"/${PN}-4.3.80-kdeui_util_kkeyserver_mac.patch
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DWITH_HSPELL=OFF
+ -DWITH_ASPELL=OFF
+ -DWITH_DNSSD=OFF
+ -DKDE_DEFAULT_HOME=.kde4
+ -DKAUTH_BACKEND=POLKITQT-1
+ -DBUILD_libkactivities=OFF
+ $(cmake-utils_use_build handbook doc)
+ $(cmake-utils_use_has cpu_flags_x86_3dnow X86_3DNOW)
+ $(cmake-utils_use_has altivec PPC_ALTIVEC)
+ $(cmake-utils_use_has cpu_flags_x86_mmx X86_MMX)
+ $(cmake-utils_use_has cpu_flags_x86_sse X86_SSE)
+ $(cmake-utils_use_has cpu_flags_x86_sse2 X86_SSE2)
+ $(cmake-utils_use_with acl)
+ $(cmake-utils_use_with alsa)
+ $(cmake-utils_use_with bzip2 BZip2)
+ $(cmake-utils_use_with crypt QCA2)
+ $(cmake-utils_use_with fam)
+ $(cmake-utils_use_with jpeg2k Jasper)
+ $(cmake-utils_use_with kerberos GSSAPI)
+ $(cmake-utils_use_with lzma LibLZMA)
+ $(cmake-utils_use_with nepomuk Soprano)
+ $(cmake-utils_use_with nepomuk SharedDesktopOntologies)
+ $(cmake-utils_use_with nls Libintl)
+ $(cmake-utils_use_with openexr OpenEXR)
+ $(cmake-utils_use_with opengl OpenGL)
+ $(cmake-utils_use_with policykit PolkitQt-1)
+ $(cmake-utils_use_with spell ENCHANT)
+ $(cmake-utils_use_with ssl OpenSSL)
+ $(cmake-utils_use_with udev UDev)
+ $(cmake-utils_use_with udisks SOLID_UDISKS2)
+ $(cmake-utils_use_with zeroconf Avahi)
+ )
+ kde4-base_src_configure
+}
+
+src_compile() {
+ kde4-base_src_compile
+
+ # The building of apidox is not managed anymore by the build system
+ if use doc; then
+ einfo "Building API documentation"
+ cd "${S}"/doc/api/
+ ./doxygen.sh "${S}" || die "APIDOX generation failed"
+ fi
+}
+
+src_install() {
+ kde4-base_src_install
+
+ # use system certificates
+ rm -f "${ED}"/usr/share/apps/kssl/ca-bundle.crt || die
+ dosym /etc/ssl/certs/ca-certificates.crt /usr/share/apps/kssl/ca-bundle.crt
+
+ if use doc; then
+ einfo "Installing API documentation. This could take a bit of time."
+ cd "${S}"/doc/api/
+ docinto /HTML/en/kdelibs-apidox
+ dohtml -r ${P}-apidocs/*
+ fi
+
+ if use aqua; then
+ einfo "fixing ${PN} plugins"
+
+ local _PV=${PV:0:3}.0
+ local _dir=${EPREFIX}/usr/$(get_libdir)/kde4/plugins/script
+
+ install_name_tool -id \
+ "${_dir}/libkrossqtsplugin.${_PV}.dylib" \
+ "${D}/${_dir}/libkrossqtsplugin.${_PV}.dylib" \
+ || die "failed fixing libkrossqtsplugin.${_PV}.dylib"
+
+ einfo "fixing ${PN} cmake detection files"
+ #sed -i -e \
+ # "s:if (HAVE_XKB):if (HAVE_XKB AND NOT APPLE):g" \
+ echo -e "set(XKB_FOUND FALSE)\nset(HAVE_XKB FALSE)" > \
+ "${ED}"/usr/share/apps/cmake/modules/FindXKB.cmake \
+ || die "failed fixing FindXKB.cmake"
+ fi
+
+ einfo Installing environment file.
+ # Since 44qt4 is sourced earlier QT_PLUGIN_PATH is defined.
+ echo "COLON_SEPARATED=QT_PLUGIN_PATH" > "${T}/77kde"
+ echo "QT_PLUGIN_PATH=${EPREFIX}/usr/$(get_libdir)/kde4/plugins" >> "${T}/77kde"
+ doenvd "${T}/77kde"
+}
+
+pkg_postinst() {
+ fdo-mime_mime_database_update
+
+ if use zeroconf; then
+ echo
+ elog "To make zeroconf support available in KDE make sure that the avahi daemon"
+ elog "is running."
+ echo
+ einfo "If you also want to use zeroconf for hostname resolution, emerge sys-auth/nss-mdns"
+ einfo "and enable multicast dns lookups by editing the 'hosts:' line in /etc/nsswitch.conf"
+ einfo "to include 'mdns', e.g.:"
+ einfo " hosts: files mdns dns"
+ echo
+ fi
+
+ kde4-base_pkg_postinst
+}
+
+pkg_prerm() {
+ # Remove ksycoca4 global database
+ rm -f "${EROOT}${PREFIX}"/share/kde4/services/ksycoca4
+}
+
+pkg_postrm() {
+ fdo-mime_mime_database_update
+
+ kde4-base_pkg_postrm
+}
diff --git a/kde-base/kdelibs/kdelibs-4.14.8.ebuild b/kde-base/kdelibs/kdelibs-4.14.8.ebuild
new file mode 100644
index 000000000000..6ca0376cfa7e
--- /dev/null
+++ b/kde-base/kdelibs/kdelibs-4.14.8.ebuild
@@ -0,0 +1,306 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+CPPUNIT_REQUIRED="optional"
+DECLARATIVE_REQUIRED="always"
+OPENGL_REQUIRED="optional"
+KDE_HANDBOOK="optional"
+inherit kde4-base fdo-mime multilib toolchain-funcs flag-o-matic
+
+EGIT_BRANCH="KDE/4.14"
+
+DESCRIPTION="KDE libraries needed by all KDE programs"
+
+KEYWORDS="amd64 ~arm ppc ~ppc64 x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+LICENSE="LGPL-2.1"
+IUSE="cpu_flags_x86_3dnow acl alsa altivec +bzip2 +crypt debug doc fam jpeg2k
+kerberos lzma cpu_flags_x86_mmx nepomuk nls openexr +policykit spell
+cpu_flags_x86_sse cpu_flags_x86_sse2 ssl +udev +udisks +upower zeroconf"
+
+REQUIRED_USE="
+ udisks? ( udev )
+ upower? ( udev )
+"
+
+# needs the kate regression testsuite from svn
+RESTRICT="test"
+
+COMMONDEPEND="
+ >=app-misc/strigi-0.7.7
+ app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xsl-stylesheets
+ >=dev-libs/libattica-0.4.2
+ >=dev-libs/libdbusmenu-qt-0.3.2[qt4(+)]
+ dev-libs/libpcre[unicode]
+ dev-libs/libxml2
+ dev-libs/libxslt
+ media-libs/fontconfig
+ media-libs/freetype:2
+ media-libs/giflib
+ media-libs/libpng:0=
+ media-libs/phonon[qt4]
+ sys-libs/zlib
+ virtual/jpeg:0
+ >=x11-misc/shared-mime-info-0.60
+ acl? ( virtual/acl )
+ alsa? ( media-libs/alsa-lib )
+ !aqua? (
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXau
+ x11-libs/libXcursor
+ x11-libs/libXdmcp
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXft
+ x11-libs/libXpm
+ x11-libs/libXrender
+ x11-libs/libXScrnSaver
+ x11-libs/libXtst
+ !kernel_SunOS? (
+ || (
+ sys-libs/libutempter
+ >=sys-freebsd/freebsd-lib-9.0
+ )
+ )
+ )
+ bzip2? ( app-arch/bzip2 )
+ crypt? ( app-crypt/qca:2[qt4(+)] )
+ fam? ( virtual/fam )
+ jpeg2k? ( media-libs/jasper )
+ kerberos? ( virtual/krb5 )
+ nepomuk? (
+ >=dev-libs/shared-desktop-ontologies-0.11.0
+ >=dev-libs/soprano-2.9.0[dbus,raptor,redland]
+ )
+ openexr? (
+ media-libs/openexr:=
+ media-libs/ilmbase:=
+ )
+ policykit? ( >=sys-auth/polkit-qt-0.103.0[qt4(+)] )
+ spell? ( app-text/enchant )
+ ssl? ( dev-libs/openssl:0 )
+ udev? ( virtual/udev )
+ zeroconf? ( net-dns/avahi[mdnsresponder-compat] )
+"
+DEPEND="${COMMONDEPEND}
+ doc? ( app-doc/doxygen )
+ nls? ( virtual/libintl )
+"
+RDEPEND="${COMMONDEPEND}
+ !dev-qt/qtphonon
+ !<=kde-base/plasma-workspace-4.7.1:4
+ !<=kde-base/kcontrol-4.4.50:4
+ >=app-crypt/gnupg-2.0.11
+ app-misc/ca-certificates
+ $(add_kdebase_dep kde-env '' 4.14.3)
+ sys-apps/dbus[X]
+ !aqua? (
+ udisks? ( sys-fs/udisks:2 )
+ x11-apps/iceauth
+ x11-apps/rgb
+ >=x11-misc/xdg-utils-1.0.2-r3
+ upower? ( || ( >=sys-power/upower-0.9.23 sys-power/upower-pm-utils ) )
+ )
+ udev? ( app-misc/media-player-info )
+"
+PDEPEND="
+ $(add_kdebase_dep katepart '' 4.14.3)
+ || (
+ $(add_kdeapps_dep kfmclient '' 4.14.3)
+ x11-misc/xdg-utils
+ )
+ handbook? (
+ || (
+ $(add_kdebase_dep khelpcenter '' 4.14.3)
+ kde-plasma/khelpcenter:5[compat(+)]
+ )
+ )
+ nepomuk? (
+ $(add_kdebase_dep nepomuk-core '' 4.14.3)
+ $(add_kdebase_dep nepomuk-widgets '' 4.14.3)
+ )
+ policykit? ( || (
+ >=sys-auth/polkit-kde-agent-0.99
+ kde-plasma/polkit-kde-agent
+ ) )
+"
+
+PATCHES=(
+ "${FILESDIR}/dist/01_gentoo_set_xdg_menu_prefix-1.patch"
+ "${FILESDIR}/dist/02_gentoo_append_xdg_config_dirs-1.patch"
+ "${FILESDIR}/${PN}-4.14.5-fatalwarnings.patch"
+ "${FILESDIR}/${PN}-4.14.5-mimetypes.patch"
+ "${FILESDIR}/${PN}-4.4.90-xslt.patch"
+ "${FILESDIR}/${PN}-4.6.3-no_suid_kdeinit.patch"
+ "${FILESDIR}/${PN}-4.8.1-norpath.patch"
+ "${FILESDIR}/${PN}-4.9.3-werror.patch"
+ "${FILESDIR}/${PN}-4.10.0-udisks.patch"
+)
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ [[ $(gcc-major-version) -lt 4 ]] || \
+ ( [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -le 3 ]] ) \
+ && die "Sorry, but gcc-4.3 and earlier won't work for KDE SC 4.6 (see bug #354837)."
+ fi
+}
+
+src_prepare() {
+ kde4-base_src_prepare
+
+ # Rename applications.menu (needs 01_gentoo_set_xdg_menu_prefix-1.patch to work)
+ sed -e 's|FILES[[:space:]]applications.menu|FILES applications.menu RENAME kde-4-applications.menu|g' \
+ -i kded/CMakeLists.txt || die "Sed on CMakeLists.txt for applications.menu failed."
+
+ if use aqua; then
+ sed -i -e \
+ "s:BUNDLE_INSTALL_DIR \"/Applications:BUNDLE_INSTALL_DIR \"${EPREFIX}/${APP_BUNDLE_DIR}:g" \
+ cmake/modules/FindKDE4Internal.cmake || die "failed to sed FindKDE4Internal.cmake"
+
+ #if [[ ${CHOST} == *-darwin8 ]]; then
+ sed -i -e \
+ "s:set(_add_executable_param MACOSX_BUNDLE):remove(_add_executable_param MACOSX_BUNDLE):g" \
+ cmake/modules/KDE4Macros.cmake || die "failed to sed KDE4Macros.cmake"
+ #fi
+
+ # solid/solid/backends/iokit doesn't properly link, so disable it.
+ sed -e "s|\(APPLE\)|(FALSE)|g" -i solid/solid/CMakeLists.txt \
+ || die "disabling solid/solid/backends/iokit failed"
+ sed -e "s|m_backend = .*Backends::IOKit.*;|m_backend = 0;|g" -i solid/solid/managerbase.cpp \
+ || die "disabling solid/solid/backends/iokit failed"
+
+ # There's no fdatasync on OSX and the check fails to detect that.
+ sed -e "/HAVE_FDATASYNC/ d" -i config.h.cmake \
+ || die "disabling fdatasync failed"
+
+ # Fix nameser include to nameser8_compat
+ sed -e "s|nameser8_compat.h|nameser_compat.h|g" -i kio/misc/kpac/discovery.cpp \
+ || die "fixing nameser include failed"
+ append-flags -DHAVE_ARPA_NAMESER8_COMPAT_H=1
+
+ # Try to fix kkeyserver_mac
+ epatch "${FILESDIR}"/${PN}-4.3.80-kdeui_util_kkeyserver_mac.patch
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DWITH_HSPELL=OFF
+ -DWITH_ASPELL=OFF
+ -DWITH_DNSSD=OFF
+ -DKDE_DEFAULT_HOME=.kde4
+ -DKAUTH_BACKEND=POLKITQT-1
+ -DBUILD_libkactivities=OFF
+ $(cmake-utils_use_build handbook doc)
+ $(cmake-utils_use_has cpu_flags_x86_3dnow X86_3DNOW)
+ $(cmake-utils_use_has altivec PPC_ALTIVEC)
+ $(cmake-utils_use_has cpu_flags_x86_mmx X86_MMX)
+ $(cmake-utils_use_has cpu_flags_x86_sse X86_SSE)
+ $(cmake-utils_use_has cpu_flags_x86_sse2 X86_SSE2)
+ $(cmake-utils_use_with acl)
+ $(cmake-utils_use_with alsa)
+ $(cmake-utils_use_with bzip2 BZip2)
+ $(cmake-utils_use_with crypt QCA2)
+ $(cmake-utils_use_with fam)
+ $(cmake-utils_use_with jpeg2k Jasper)
+ $(cmake-utils_use_with kerberos GSSAPI)
+ $(cmake-utils_use_with lzma LibLZMA)
+ $(cmake-utils_use_with nepomuk Soprano)
+ $(cmake-utils_use_with nepomuk SharedDesktopOntologies)
+ $(cmake-utils_use_with nls Libintl)
+ $(cmake-utils_use_with openexr OpenEXR)
+ $(cmake-utils_use_with opengl OpenGL)
+ $(cmake-utils_use_with policykit PolkitQt-1)
+ $(cmake-utils_use_with spell ENCHANT)
+ $(cmake-utils_use_with ssl OpenSSL)
+ $(cmake-utils_use_with udev UDev)
+ $(cmake-utils_use_with udisks SOLID_UDISKS2)
+ $(cmake-utils_use_with zeroconf Avahi)
+ )
+ kde4-base_src_configure
+}
+
+src_compile() {
+ kde4-base_src_compile
+
+ # The building of apidox is not managed anymore by the build system
+ if use doc; then
+ einfo "Building API documentation"
+ cd "${S}"/doc/api/
+ ./doxygen.sh "${S}" || die "APIDOX generation failed"
+ fi
+}
+
+src_install() {
+ kde4-base_src_install
+
+ # use system certificates
+ rm -f "${ED}"/usr/share/apps/kssl/ca-bundle.crt || die
+ dosym /etc/ssl/certs/ca-certificates.crt /usr/share/apps/kssl/ca-bundle.crt
+
+ if use doc; then
+ einfo "Installing API documentation. This could take a bit of time."
+ cd "${S}"/doc/api/
+ docinto /HTML/en/kdelibs-apidox
+ dohtml -r ${P}-apidocs/*
+ fi
+
+ if use aqua; then
+ einfo "fixing ${PN} plugins"
+
+ local _PV=${PV:0:3}.0
+ local _dir=${EPREFIX}/usr/$(get_libdir)/kde4/plugins/script
+
+ install_name_tool -id \
+ "${_dir}/libkrossqtsplugin.${_PV}.dylib" \
+ "${D}/${_dir}/libkrossqtsplugin.${_PV}.dylib" \
+ || die "failed fixing libkrossqtsplugin.${_PV}.dylib"
+
+ einfo "fixing ${PN} cmake detection files"
+ #sed -i -e \
+ # "s:if (HAVE_XKB):if (HAVE_XKB AND NOT APPLE):g" \
+ echo -e "set(XKB_FOUND FALSE)\nset(HAVE_XKB FALSE)" > \
+ "${ED}"/usr/share/apps/cmake/modules/FindXKB.cmake \
+ || die "failed fixing FindXKB.cmake"
+ fi
+
+ einfo Installing environment file.
+ # Since 44qt4 is sourced earlier QT_PLUGIN_PATH is defined.
+ echo "COLON_SEPARATED=QT_PLUGIN_PATH" > "${T}/77kde"
+ echo "QT_PLUGIN_PATH=${EPREFIX}/usr/$(get_libdir)/kde4/plugins" >> "${T}/77kde"
+ doenvd "${T}/77kde"
+}
+
+pkg_postinst() {
+ fdo-mime_mime_database_update
+
+ if use zeroconf; then
+ echo
+ elog "To make zeroconf support available in KDE make sure that the avahi daemon"
+ elog "is running."
+ echo
+ einfo "If you also want to use zeroconf for hostname resolution, emerge sys-auth/nss-mdns"
+ einfo "and enable multicast dns lookups by editing the 'hosts:' line in /etc/nsswitch.conf"
+ einfo "to include 'mdns', e.g.:"
+ einfo " hosts: files mdns dns"
+ echo
+ fi
+
+ kde4-base_pkg_postinst
+}
+
+pkg_prerm() {
+ # Remove ksycoca4 global database
+ rm -f "${EROOT}${PREFIX}"/share/kde4/services/ksycoca4
+}
+
+pkg_postrm() {
+ fdo-mime_mime_database_update
+
+ kde4-base_pkg_postrm
+}
diff --git a/kde-base/kdelibs/metadata.xml b/kde-base/kdelibs/metadata.xml
new file mode 100644
index 000000000000..6ed669a2644d
--- /dev/null
+++ b/kde-base/kdelibs/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>kde</herd>
+ <use>
+ <flag name="nepomuk">Enable Nepomuk based semantic desktop support (deprecated)</flag>
+ <flag name="opengl">Enable OpenGL support for Plasma (GLApplet)</flag>
+ </use>
+</pkgmetadata>