summaryrefslogtreecommitdiffstats
path: root/kde/patch
diff options
context:
space:
mode:
Diffstat (limited to 'kde/patch')
-rw-r--r--kde/patch/README18
-rw-r--r--kde/patch/kde-workspace.patch9
-rw-r--r--kde/patch/kde-workspace/kdebase-workspace.kdm.server.timeout.diff.gzbin0 -> 247 bytes
-rw-r--r--kde/patch/kde-workspace/kdebase-workspace.kwin.effects.performance.diff.gzbin0 -> 1019 bytes
-rw-r--r--kde/patch/kdelibs.patch13
-rw-r--r--kde/patch/kdelibs/kdelibs.docbook.patch.gzbin0 -> 361 bytes
-rw-r--r--kde/patch/kdelibs/kdelibs.klocale.numberfix.patch130
-rw-r--r--kde/patch/kdelibs/kdelibs.kssl.CVE-2011-3365.patch24
-rw-r--r--kde/patch/kdelibs/kdelibs.nepomuk.unicode.patch65
-rw-r--r--kde/patch/kdepim-runtime.patch7
-rw-r--r--kde/patch/kdepim-runtime/0001-Ignore-items-with-empty-remote-ids-here.patch36
-rw-r--r--kde/patch/kdepim-runtime/Kmail-has-duplicated-folders-after-migration-from-previous-version_bug-283467.patch76
-rw-r--r--kde/patch/kdepim.patch6
-rw-r--r--kde/patch/kdepim/kdepim-4.5.85-install-headers.patch124
-rw-r--r--kde/patch/kdepim/kdepim-4.7.1_memleak.patch22
-rw-r--r--kde/patch/kdewebdev.patch5
-rw-r--r--kde/patch/kdewebdev/include-tidy.patch.gzbin0 -> 260 bytes
17 files changed, 535 insertions, 0 deletions
diff --git a/kde/patch/README b/kde/patch/README
new file mode 100644
index 0000000..2478e45
--- /dev/null
+++ b/kde/patch/README
@@ -0,0 +1,18 @@
+
+IMPORTANT!
+
+To fail/exit a script, use this:
+
+[command that fails] || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+
+DO NOT USE THIS:
+
+[command that fails] || exit 1
+
+as it will cause the parent script to exit in the wrong location and possibly
+silently skip building some packages.
+
+Thanks,
+
+The Management
+
diff --git a/kde/patch/kde-workspace.patch b/kde/patch/kde-workspace.patch
new file mode 100644
index 0000000..3168d72
--- /dev/null
+++ b/kde/patch/kde-workspace.patch
@@ -0,0 +1,9 @@
+# Increase the timeout to accomodate slow-to-initialize video chipset drivers:
+zcat $CWD/patch/kde-workspace/kdebase-workspace.kdm.server.timeout.diff.gz | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+
+## Patch for the shutdown issue with KDE 4.6.2 (in Linux, only "halt"
+## understands the '-p' parameter):
+#sed -i -e 's/shutdown -p now/shutdown -h -P now/' kdm/config.def
+
+# Fix a long-standing performance issue (since 4.0) in kwin (not needed for KDE >= 4.7.2):
+#zcat $CWD/patch/kde-workspace/kdebase-workspace.kwin.effects.performance.diff | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
diff --git a/kde/patch/kde-workspace/kdebase-workspace.kdm.server.timeout.diff.gz b/kde/patch/kde-workspace/kdebase-workspace.kdm.server.timeout.diff.gz
new file mode 100644
index 0000000..a9c2bae
--- /dev/null
+++ b/kde/patch/kde-workspace/kdebase-workspace.kdm.server.timeout.diff.gz
Binary files differ
diff --git a/kde/patch/kde-workspace/kdebase-workspace.kwin.effects.performance.diff.gz b/kde/patch/kde-workspace/kdebase-workspace.kwin.effects.performance.diff.gz
new file mode 100644
index 0000000..7596c2e
--- /dev/null
+++ b/kde/patch/kde-workspace/kdebase-workspace.kwin.effects.performance.diff.gz
Binary files differ
diff --git a/kde/patch/kdelibs.patch b/kde/patch/kdelibs.patch
new file mode 100644
index 0000000..1b0fd96
--- /dev/null
+++ b/kde/patch/kdelibs.patch
@@ -0,0 +1,13 @@
+# Slackware ships a different version of XML DTDs:
+zcat $CWD/patch/kdelibs/kdelibs.docbook.patch.gz | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+
+# Fix for CVE-2011-3365 (not needed for KDE >= 4.7.2):
+#cat $CWD/patch/kdelibs/kdelibs.kssl.CVE-2011-3365.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+
+# Fix a bug introduced in kdelibs-4.7.2 which was intended as a fix but
+# prevents any query which does NOT use wide unicode characters to fail:
+#cat $CWD/patch/kdelibs/kdelibs.nepomuk.unicode.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+
+# Fix broken number entry (fixed in KDE >= 4.7.5)
+cat $CWD/patch/kdelibs/kdelibs.klocale.numberfix.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+
diff --git a/kde/patch/kdelibs/kdelibs.docbook.patch.gz b/kde/patch/kdelibs/kdelibs.docbook.patch.gz
new file mode 100644
index 0000000..2de9a66
--- /dev/null
+++ b/kde/patch/kdelibs/kdelibs.docbook.patch.gz
Binary files differ
diff --git a/kde/patch/kdelibs/kdelibs.klocale.numberfix.patch b/kde/patch/kdelibs/kdelibs.klocale.numberfix.patch
new file mode 100644
index 0000000..d27c2a3
--- /dev/null
+++ b/kde/patch/kdelibs/kdelibs.klocale.numberfix.patch
@@ -0,0 +1,130 @@
+commit 2993b24bc21a340695ad35b4f014a684f4d0c651
+Author: John Layt <jlayt@kde.org>
+Date: Sat Dec 17 16:27:51 2011 +0000
+
+ KLocale: Fix readNumber() and readMoney() for lenient group parsing
+
+ Restore the old pre-4.7 behaviour of accepting as valid any numbers
+ that do not contain any group separators but strictly enforce group
+ rules when the number contains 1 or more group separators.
+
+ Distro's will really want to backport this fix to all versions of 4.7
+ as previously number entry for all KDE apps would have been seriously
+ broken.
+
+ I'm amazed I wasn't beaten up for this earlier!
+
+ BUG: 288963
+ FIXED-IN: 4.7.5
+ CCMAIL: kde-packager@kde.org
+
+diff --git a/kdecore/localization/klocale_kde.cpp b/kdecore/localization/klocale_kde.cpp
+index 6cf85f9..6690f4a 100644
+--- a/kdecore/localization/klocale_kde.cpp
++++ b/kdecore/localization/klocale_kde.cpp
+@@ -1894,7 +1894,10 @@ double KLocalePrivate::readNumber(const QString &_str, bool * ok) const
+
+ // Remove group separators
+ bool groupOk = true;
+- str = parseDigitGroup(str, thousandsSeparator(), decimalSymbol(), numericDigitGrouping(), &groupOk);
++ if(str.contains(thousandsSeparator())) {
++ str = parseDigitGroup(str, thousandsSeparator(), decimalSymbol(),
++ numericDigitGrouping(), &groupOk);
++ }
+
+ if (!groupOk) {
+ if (ok) {
+@@ -2013,7 +2016,10 @@ double KLocalePrivate::readMoney(const QString &_str, bool *ok) const
+
+ // Remove group separators
+ bool groupOk = true;
+- str = parseDigitGroup(str, monetaryThousandsSeparator(), monetaryDecimalSymbol(), monetaryDigitGrouping(), &groupOk);
++ if(str.contains(monetaryThousandsSeparator())) {
++ str = parseDigitGroup(str, monetaryThousandsSeparator(), monetaryDecimalSymbol(),
++ monetaryDigitGrouping(), &groupOk);
++ }
+
+ if (!groupOk) {
+ if (ok) {
+diff --git a/kdecore/tests/klocaletest.cpp b/kdecore/tests/klocaletest.cpp
+index 97a3bce..f80de85 100644
+--- a/kdecore/tests/klocaletest.cpp
++++ b/kdecore/tests/klocaletest.cpp
+@@ -180,9 +180,13 @@ KLocaleTest::readNumber()
+ QVERIFY(!ok);
+ QCOMPARE(locale.readNumber(QString("123,456,789.01"), &ok), 0.0);
+ QVERIFY(!ok);
+- QCOMPARE(locale.readNumber(QString("123456789"), &ok), 0.0);
++ QCOMPARE(locale.readNumber(QString("123456789"), &ok), 123456789.0);
++ QVERIFY(ok);
++ QCOMPARE(locale.readNumber(QString("123456789.01"), &ok), 123456789.01);
++ QVERIFY(ok);
++ QCOMPARE(locale.readNumber(QString("123456,789"), &ok), 0.0);
+ QVERIFY(!ok);
+- QCOMPARE(locale.readNumber(QString("123456789.01"), &ok), 0.0);
++ QCOMPARE(locale.readNumber(QString("123456,789.01"), &ok), 0.0);
+ QVERIFY(!ok);
+
+ //Test it parses correctly with an empty separator.
+@@ -204,6 +208,14 @@ KLocaleTest::readNumber()
+ QVERIFY(ok);
+ QCOMPARE(locale.readNumber(QString("123 456 789.01"), &ok), 123456789.01);
+ QVERIFY(ok);
++ QCOMPARE(locale.readNumber(QString("123456789"), &ok), 123456789.0);
++ QVERIFY(ok);
++ QCOMPARE(locale.readNumber(QString("123456789.01"), &ok), 123456789.01);
++ QVERIFY(ok);
++ QCOMPARE(locale.readNumber(QString("123456 789"), &ok), 0.0);
++ QVERIFY(!ok);
++ QCOMPARE(locale.readNumber(QString("123456 789.01"), &ok), 0.0);
++ QVERIFY(!ok);
+ QCOMPARE(locale.readNumber(QString("123,456,789"), &ok), 0.0);
+ QVERIFY(!ok);
+ QCOMPARE(locale.readNumber(QString("123,456,789.01"), &ok), 0.0);
+@@ -479,6 +491,10 @@ void KLocaleTest::readMoney()
+ QVERIFY(ok);
+ QCOMPARE(locale.readMoney("$ 987,654,321.12", &ok), 987654321.12);
+ QVERIFY(ok);
++ QCOMPARE(locale.readMoney("$ 987654321.12", &ok), 987654321.12);
++ QVERIFY(ok);
++ QCOMPARE(locale.readMoney("$ 987654,321.12", &ok), 0.0);
++ QVERIFY(!ok);
+
+ QCOMPARE(locale.readMoney( "$ -1.12", &ok), -1.12);
+ QVERIFY(ok);
+@@ -498,6 +514,10 @@ void KLocaleTest::readMoney()
+ QVERIFY(ok);
+ QCOMPARE(locale.readMoney("$ -987,654,321.12", &ok), -987654321.12);
+ QVERIFY(ok);
++ QCOMPARE(locale.readMoney("$ -987654321.12", &ok), -987654321.12);
++ QVERIFY(ok);
++ QCOMPARE(locale.readMoney("$ -987654,321.12", &ok), 0.0);
++ QVERIFY(!ok);
+
+ // Test incomplete formats
+ QCOMPARE(locale.readMoney( "$ 1", &ok), 1.00);
+@@ -521,17 +541,21 @@ void KLocaleTest::readMoney()
+
+ // Test Grouping
+ locale.d->setMonetaryDigitGrouping(QList<int>());
+- QCOMPARE(locale.readMoney( "$ 987654321.12", &ok), 987654321.12);
++ QCOMPARE(locale.readMoney("$ 987654321.12", &ok), 987654321.12);
+ QVERIFY(ok);
+ QCOMPARE(locale.readMoney("$ -987654321.12", &ok), -987654321.12);
+ QVERIFY(ok);
+ locale.d->setMonetaryDigitGrouping(QList<int>() << 3 << 2);
+- QCOMPARE(locale.readMoney( "$ 98,76,54,321.12", &ok), 987654321.12);
++ QCOMPARE(locale.readMoney("$ 98,76,54,321.12", &ok), 987654321.12);
+ QVERIFY(ok);
+ QCOMPARE(locale.readMoney("$ -98,76,54,321.12", &ok), -987654321.12);
+ QVERIFY(ok);
++ QCOMPARE(locale.readMoney("$ 987654321.12", &ok), 987654321.12);
++ QVERIFY(ok);
++ QCOMPARE(locale.readMoney("$ -987654321.12", &ok), -987654321.12);
++ QVERIFY(ok);
+ locale.d->setMonetaryDigitGrouping(QList<int>() << 3 << -1);
+- QCOMPARE(locale.readMoney( "$ 987654,321.12", &ok), 987654321.12);
++ QCOMPARE(locale.readMoney("$ 987654,321.12", &ok), 987654321.12);
+ QVERIFY(ok);
+ QCOMPARE(locale.readMoney("$ -987654,321.12", &ok), -987654321.12);
+ QVERIFY(ok);
diff --git a/kde/patch/kdelibs/kdelibs.kssl.CVE-2011-3365.patch b/kde/patch/kdelibs/kdelibs.kssl.CVE-2011-3365.patch
new file mode 100644
index 0000000..b44b865
--- /dev/null
+++ b/kde/patch/kdelibs/kdelibs.kssl.CVE-2011-3365.patch
@@ -0,0 +1,24 @@
+commit bd70d4e589711fda9ab07738c46e37eee8376214
+Author: David Faure <faure@kde.org>
+Date: Thu Jun 30 23:43:45 2011 +0200
+
+ Security fix: don't interpret html tags
+
+ Credits to Tim Brown for the find.
+
+diff --git a/kio/kssl/ksslcertificatebox.cpp b/kio/kssl/ksslcertificatebox.cpp
+index 4ffc613..094787a 100644
+--- a/kio/kssl/ksslcertificatebox.cpp
++++ b/kio/kssl/ksslcertificatebox.cpp
+@@ -36,6 +36,10 @@ KSslCertificateBox::KSslCertificateBox(QWidget *parent)
+ d(new KSslCertificateBoxPrivate())
+ {
+ d->ui.setupUi(this);
++ // No fooling us with html tags
++ Q_FOREACH(QLabel* label, qFindChildren<QLabel *>(this)) {
++ label->setTextFormat(Qt::PlainText);
++ }
+ }
+
+
+
diff --git a/kde/patch/kdelibs/kdelibs.nepomuk.unicode.patch b/kde/patch/kdelibs/kdelibs.nepomuk.unicode.patch
new file mode 100644
index 0000000..819a429
--- /dev/null
+++ b/kde/patch/kdelibs/kdelibs.nepomuk.unicode.patch
@@ -0,0 +1,65 @@
+diff --git a/nepomuk/query/querybuilderdata_p.h b/nepomuk/query/querybuilderdata_p.h
+index 055482e..3880e13 100644
+--- a/nepomuk/query/querybuilderdata_p.h
++++ b/nepomuk/query/querybuilderdata_p.h
+@@ -32,6 +32,28 @@
+ #include "query_p.h"
+ #include "groupterm_p.h"
+
++namespace {
++/// A hack to avoid passing extended chars to the bif:search_excerpts method which cannot handle
++/// utf8 chars which use more than one char, ie. wide chars.
++/// Thus, we simply truncate each term at the first wide char.
++QStringList stripExtendedCharsHack(const QStringList& terms) {
++ QStringList newTerms;
++ foreach(const QString& term, terms) {
++ int i = 0;
++ while(i < term.length()) {
++ if(term[i].unicode() > 0x7f) {
++ break;
++ }
++ ++i;
++ }
++ if(i > 0) {
++ newTerms.append(term.left(i));
++ }
++ }
++ return newTerms;
++}
++}
++
+ namespace Nepomuk {
+ namespace Query {
+ class QueryBuilderData
+@@ -246,16 +268,23 @@ namespace Nepomuk {
+ for( QHash<QString, QStringList>::const_iterator it = m_fullTextSearchTerms.constBegin();
+ it != m_fullTextSearchTerms.constEnd(); ++it ) {
+ const QString& varName = it.key();
+- const QStringList& terms = it.value();
+- // bif:search_excerpt wants a vector of all search terms
+- excerptParts
+- << QString::fromLatin1("bif:search_excerpt(bif:vector(bif:charset_recode('%1', '_WIDE_', 'UTF-8')), %2)")
+- .arg( terms.join(QLatin1String("','")),
+- varName );
++ const QStringList terms = stripExtendedCharsHack(it.value());
++ if(terms.count()) {
++ // bif:search_excerpt wants a vector of all search terms
++ excerptParts
++ << QString::fromLatin1("bif:search_excerpt(bif:vector('%1'), %2)")
++ .arg( terms.join(QLatin1String("','")),
++ varName );
++ }
+ }
+
+- return QString::fromLatin1("(bif:concat(%1)) as ?_n_f_t_m_ex_")
+- .arg(excerptParts.join(QLatin1String(",")));
++ if(excerptParts.count()) {
++ return QString::fromLatin1("(bif:concat(%1)) as ?_n_f_t_m_ex_")
++ .arg(excerptParts.join(QLatin1String(",")));
++ }
++ else {
++ return QString();
++ }
+ }
+ else {
+ return QString();
diff --git a/kde/patch/kdepim-runtime.patch b/kde/patch/kdepim-runtime.patch
new file mode 100644
index 0000000..0fa7a5a
--- /dev/null
+++ b/kde/patch/kdepim-runtime.patch
@@ -0,0 +1,7 @@
+# Fix a bug in kdepim-runtime 4.7.1 which can cause an email to be permanently
+# lost when downloading from a POP3 account into a maildir-style mailbox:
+#cat $CWD/patch/kdepim-runtime/0001-Ignore-items-with-empty-remote-ids-here.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+
+# Address bug 283467, fixed in KDE 4.7.3:
+#cat $CWD/patch/kdepim-runtime/kdepim-runtime/Kmail-has-duplicated-folders-after-migration-from-previous-version_bug-283467.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+
diff --git a/kde/patch/kdepim-runtime/0001-Ignore-items-with-empty-remote-ids-here.patch b/kde/patch/kdepim-runtime/0001-Ignore-items-with-empty-remote-ids-here.patch
new file mode 100644
index 0000000..2a8397d
--- /dev/null
+++ b/kde/patch/kdepim-runtime/0001-Ignore-items-with-empty-remote-ids-here.patch
@@ -0,0 +1,36 @@
+From ccd67f3e65c9ffe32858ca521aa1e56a42b026af Mon Sep 17 00:00:00 2001
+From: Volker Krause <vkrause@kde.org>
+Date: Tue, 20 Sep 2011 10:12:40 +0200
+Subject: [PATCH] Ignore items with empty remote ids here.
+
+Items with empty remote id are those not yet stored by the resource,
+ie. we still have pending change replays for those. So, if we do a sync
+during that period (which could happen since the introduction of the
+file system watcher), we would remove a random one of those (only one
+since the map would only contain one without a remote id). This mostly
+affects the POP3 usage pattern.
+(cherry picked from commit f814b46a799ea8418ae17cf77d44da473124d12d)
+---
+ resources/maildir/retrieveitemsjob.cpp | 6 ++++--
+ 1 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/resources/maildir/retrieveitemsjob.cpp b/resources/maildir/retrieveitemsjob.cpp
+index 7253f7e..f0273ef 100644
+--- a/resources/maildir/retrieveitemsjob.cpp
++++ b/resources/maildir/retrieveitemsjob.cpp
+@@ -57,8 +57,10 @@ void RetrieveItemsJob::localListDone ( KJob* job )
+
+ const Akonadi::Item::List items = qobject_cast<Akonadi::ItemFetchJob*>( job )->items();
+ m_localItems.reserve( items.size() );
+- foreach ( const Akonadi::Item &item, items )
+- m_localItems.insert( item.remoteId(), item );
++ foreach ( const Akonadi::Item &item, items ) {
++ if ( !item.remoteId().isEmpty() )
++ m_localItems.insert( item.remoteId(), item );
++ }
+
+ const QStringList entryList = m_maildir.entryList();
+ qint64 previousMtime = m_collection.remoteRevision().toLongLong();
+--
+1.7.1
+
diff --git a/kde/patch/kdepim-runtime/Kmail-has-duplicated-folders-after-migration-from-previous-version_bug-283467.patch b/kde/patch/kdepim-runtime/Kmail-has-duplicated-folders-after-migration-from-previous-version_bug-283467.patch
new file mode 100644
index 0000000..1c1dcc5
--- /dev/null
+++ b/kde/patch/kdepim-runtime/Kmail-has-duplicated-folders-after-migration-from-previous-version_bug-283467.patch
@@ -0,0 +1,76 @@
+From: Montel Laurent <montel@kde.org>
+Date: Fri, 07 Oct 2011 15:14:06 +0000
+Subject: Fix Bug 283467 - Kmail has duplicated folders after migration from previous version.
+X-Git-Url: http://quickgit.kde.org/?p=kdepim-runtime.git&amp;a=commitdiff&amp;h=6bdc6290632be5fc6c103064463d7421b5e3b60d
+---
+Fix Bug 283467 - Kmail has duplicated folders after migration from previous version.
+
+By default in config we don't translate config name.
+We use "inbox" "sent-mail" etc.
+
+BUG: 283467
+FIXED-IN: 4.7.3
+---
+
+
+--- a/migration/kmail/localfolderscollectionmigrator.cpp
++++ b/migration/kmail/localfolderscollectionmigrator.cpp
+@@ -64,23 +64,41 @@ void LocalFoldersCollectionMigrator::set
+
+ const KConfigGroup group( config, QLatin1String( "General" ) );
+
+- QString name = group.readEntry( QLatin1String( "inboxFolder" ), i18nc( "mail folder name for role inbox", "inbox" ) );
+- d->mSystemFolders.insert( name, SpecialMailCollections::Inbox );
+-
+- name = group.readEntry( QLatin1String( "outboxFolder" ), i18nc( "mail folder name for role outbox", "outbox" ) );
+- d->mSystemFolders.insert( name, SpecialMailCollections::Outbox );
+-
+- name = group.readEntry( QLatin1String( "sentFolder" ), i18nc( "mail folder name for role sent-mail", "sent-mail" ) );
+- d->mSystemFolders.insert( name, SpecialMailCollections::SentMail );
+-
+- name = group.readEntry( QLatin1String( "trashFolder" ), i18nc( "mail folder name for role trash", "trash" ) );
+- d->mSystemFolders.insert( name, SpecialMailCollections::Trash );
+-
+- name = group.readEntry( QLatin1String( "draftsFolder" ), i18nc( "mail folder name for role drafts", "drafts" ) );
+- d->mSystemFolders.insert( name, SpecialMailCollections::Drafts );
+-
+- name = group.readEntry( QLatin1String( "templatesFolder" ), i18nc( "mail folder name for role templates", "templates" ) );
+- d->mSystemFolders.insert( name, SpecialMailCollections::Templates );
++ if ( group.hasKey( QLatin1String( "inboxFolder" ) ) ) {
++ const QString name = group.readEntry( QLatin1String( "inboxFolder" ), i18nc( "mail folder name for role inbox", "inbox" ) );
++ d->mSystemFolders.insert( name, SpecialMailCollections::Inbox );
++ } else
++ d->mSystemFolders.insert( QLatin1String( "inbox" ), SpecialMailCollections::Inbox );
++
++ if ( group.hasKey( QLatin1String( "outboxFolder" ) ) ) {
++ const QString name = group.readEntry( QLatin1String( "outboxFolder" ), i18nc( "mail folder name for role outbox", "outbox" ) );
++ d->mSystemFolders.insert( name, SpecialMailCollections::Outbox );
++ } else
++ d->mSystemFolders.insert( QLatin1String( "outbox" ), SpecialMailCollections::Outbox );
++
++ if ( group.hasKey( QLatin1String( "sentFolder" ) ) ) {
++ const QString name = group.readEntry( QLatin1String( "sentFolder" ), i18nc( "mail folder name for role sent-mail", "sent-mail" ) );
++ d->mSystemFolders.insert( name, SpecialMailCollections::SentMail );
++ } else
++ d->mSystemFolders.insert( QLatin1String( "sent-mail" ), SpecialMailCollections::SentMail );
++
++ if ( group.hasKey( QLatin1String( "trashFolder" ) ) ) {
++ const QString name = group.readEntry( QLatin1String( "trashFolder" ), i18nc( "mail folder name for role trash", "trash" ) );
++ d->mSystemFolders.insert( name, SpecialMailCollections::Trash );
++ } else
++ d->mSystemFolders.insert( QLatin1String( "trash" ), SpecialMailCollections::Trash );
++
++ if ( group.hasKey( QLatin1String( "draftsFolder" ) ) ) {
++ const QString name = group.readEntry( QLatin1String( "draftsFolder" ), i18nc( "mail folder name for role drafts", "drafts" ) );
++ d->mSystemFolders.insert( name, SpecialMailCollections::Drafts );
++ } else
++ d->mSystemFolders.insert( QLatin1String( "drafts" ), SpecialMailCollections::Drafts );
++
++ if ( group.hasKey( QLatin1String( "templatesFolder" ) ) ) {
++ const QString name = group.readEntry( QLatin1String( "templatesFolder" ), i18nc( "mail folder name for role templates", "templates" ) );
++ d->mSystemFolders.insert( name, SpecialMailCollections::Templates );
++ } else
++ d->mSystemFolders.insert( QLatin1String( "templates" ), SpecialMailCollections::Templates );
+ }
+
+ void LocalFoldersCollectionMigrator::migrateCollection( const Collection &collection, const QString &folderId )
diff --git a/kde/patch/kdepim.patch b/kde/patch/kdepim.patch
new file mode 100644
index 0000000..b36c707
--- /dev/null
+++ b/kde/patch/kdepim.patch
@@ -0,0 +1,6 @@
+# Install the kleopatra headers, or else kopete-cryptography will not build:
+cat $CWD/patch/kdepim/kdepim-4.5.85-install-headers.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+
+# Fix a memleak in kdepim 4.7.1 (fixed just too late to be included in the
+# 4.7.1 tarball)
+#cat $CWD/patch/kdepim/kdepim-4.7.1_memleak.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
diff --git a/kde/patch/kdepim/kdepim-4.5.85-install-headers.patch b/kde/patch/kdepim/kdepim-4.5.85-install-headers.patch
new file mode 100644
index 0000000..aa43059
--- /dev/null
+++ b/kde/patch/kdepim/kdepim-4.5.85-install-headers.patch
@@ -0,0 +1,124 @@
+diff -ur kdepim-4.5.85/kleopatra/libkleopatraclient/CMakeLists.txt kdepim-4.5.85-install-headers/kleopatra/libkleopatraclient/CMakeLists.txt
+--- kdepim-4.5.85/kleopatra/libkleopatraclient/CMakeLists.txt 2010-01-27 01:22:34.000000000 +0100
++++ kdepim-4.5.85-install-headers/kleopatra/libkleopatraclient/CMakeLists.txt 2010-12-08 14:40:45.000000000 +0100
+@@ -6,3 +6,7 @@
+
+ add_subdirectory( tests )
+
++install(
++ FILES kleopatraclient_export.h
++ DESTINATION ${INCLUDE_INSTALL_DIR}/libkleopatraclient
++ )
+diff -ur kdepim-4.5.85/kleopatra/libkleopatraclient/core/CMakeLists.txt kdepim-4.5.85-install-headers/kleopatra/libkleopatraclient/core/CMakeLists.txt
+--- kdepim-4.5.85/kleopatra/libkleopatraclient/core/CMakeLists.txt 2010-11-19 11:51:51.000000000 +0100
++++ kdepim-4.5.85-install-headers/kleopatra/libkleopatraclient/core/CMakeLists.txt 2010-12-08 14:42:12.000000000 +0100
+@@ -55,4 +55,12 @@
+ DESTINATION ${LIB_INSTALL_DIR}
+ )
+
+-
++install(
++ FILES
++ initialization.h
++ command.h
++ selectcertificatecommand.h
++ signencryptfilescommand.h
++ decryptverifyfilescommand.h
++ DESTINATION ${INCLUDE_INSTALL_DIR}/libkleopatraclient/core
++ )
+diff -ur kdepim-4.5.85/kleopatra/libkleopatraclient/gui/CMakeLists.txt kdepim-4.5.85-install-headers/kleopatra/libkleopatraclient/gui/CMakeLists.txt
+--- kdepim-4.5.85/kleopatra/libkleopatraclient/gui/CMakeLists.txt 2010-07-29 11:58:45.000000000 +0200
++++ kdepim-4.5.85-install-headers/kleopatra/libkleopatraclient/gui/CMakeLists.txt 2010-12-08 14:42:41.000000000 +0100
+@@ -20,3 +20,8 @@
+ DESTINATION ${LIB_INSTALL_DIR}
+ )
+
++install(
++ FILES
++ certificaterequester.h
++ DESTINATION ${INCLUDE_INSTALL_DIR}/libkleopatraclient/gui
++ )
+diff -ur kdepim-4.5.85/libkleo/CMakeLists.txt kdepim-4.5.85-install-headers/libkleo/CMakeLists.txt
+--- kdepim-4.5.85/libkleo/CMakeLists.txt 2010-12-01 23:23:12.000000000 +0100
++++ kdepim-4.5.85-install-headers/libkleo/CMakeLists.txt 2010-12-08 15:22:00.000000000 +0100
+@@ -112,6 +112,64 @@
+ set_target_properties(kleo PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
+ install(TARGETS kleo ${INSTALL_TARGETS_DEFAULT_ARGS})
+
++install( FILES
++ kleo/kleo_export.h
++ kleo/enum.h
++ kleo/oidmap.h
++ kleo/cryptobackend.h
++ kleo/cryptobackendfactory.h
++ kleo/cryptoconfig.h
++ kleo/dn.h
++ kleo/job.h
++ kleo/keylistjob.h
++ kleo/keygenerationjob.h
++ kleo/abstractimportjob.h
++ kleo/importjob.h
++ kleo/importfromkeyserverjob.h
++ kleo/exportjob.h
++ kleo/changeexpiryjob.h
++ kleo/changeownertrustjob.h
++ kleo/downloadjob.h
++ kleo/deletejob.h
++ kleo/encryptjob.h
++ kleo/decryptjob.h
++ kleo/signjob.h
++ kleo/specialjob.h
++ kleo/verifydetachedjob.h
++ kleo/verifyopaquejob.h
++ kleo/decryptverifyjob.h
++ kleo/signencryptjob.h
++ kleo/signkeyjob.h
++ kleo/adduseridjob.h
++ kleo/refreshkeysjob.h
++ kleo/multideletejob.h
++ kleo/hierarchicalkeylistjob.h
++ kleo/keyfilter.h
++ kleo/keyfiltermanager.h
++ kleo/changepasswdjob.h
++ kleo/checksumdefinition.h
++ kleo/exception.h
++ kleo/kconfigbasedkeyfilter.h
++ kleo/listallkeysjob.h
++ kleo/stl_util.h
++ DESTINATION ${INCLUDE_INSTALL_DIR}/kleo COMPONENT Devel)
++
++install ( FILES
++ ui/kdhorizontalline.h
++ ui/messagebox.h
++ ui/progressbar.h
++ ui/progressdialog.h
++ ui/keylistview.h
++ ui/keyselectiondialog.h
++ ui/keyrequester.h
++ ui/keyapprovaldialog.h
++ ui/dnattributeorderconfigwidget.h
++ ui/cryptoconfigmodule.h
++ ui/cryptoconfigdialog.h
++ ui/directoryserviceswidget.h
++ ui/filenamerequester.h
++ DESTINATION ${INCLUDE_INSTALL_DIR}/kleo/ui COMPONENT Devel)
++
+ if ( WIN32 )
+ install ( FILES libkleopatrarc-win32.desktop DESTINATION ${CONFIG_INSTALL_DIR} RENAME libkleopatrarc )
+ else ( WIN32 )
+diff -ur kdepim-4.5.85/libkpgp/CMakeLists.txt kdepim-4.5.85-install-headers/libkpgp/CMakeLists.txt
+--- kdepim-4.5.85/libkpgp/CMakeLists.txt 2010-07-29 11:59:00.000000000 +0200
++++ kdepim-4.5.85-install-headers/libkpgp/CMakeLists.txt 2010-12-08 14:43:33.000000000 +0100
+@@ -35,3 +35,11 @@
+ install(FILES kpgp.upd DESTINATION ${KCONF_UPDATE_INSTALL_DIR})
+ install(PROGRAMS kpgp-3.1-upgrade-address-data.pl DESTINATION ${KCONF_UPDATE_INSTALL_DIR})
+
++install(FILES
++ kpgp.h
++ kpgpbase.h
++ kpgpblock.h
++ kpgpkey.h
++ kpgpui.h
++ libkpgp_export.h
++ DESTINATION ${INCLUDE_INSTALL_DIR}/kpgp COMPONENT Devel )
+
diff --git a/kde/patch/kdepim/kdepim-4.7.1_memleak.patch b/kde/patch/kdepim/kdepim-4.7.1_memleak.patch
new file mode 100644
index 0000000..e959dfa
--- /dev/null
+++ b/kde/patch/kdepim/kdepim-4.7.1_memleak.patch
@@ -0,0 +1,22 @@
+commit 0dbc5c1b233d355dce26868253c0e8f4dede58d4
+Author: Montel Laurent <montel@kde.org>
+Date: Mon Sep 5 16:01:10 2011 +0200
+
+ Fix mem leak (too bad it will not in 4.7.1)
+
+diff --git a/mailcommon/foldercollection.cpp b/mailcommon/foldercollection.cpp
+index 3c31d8e..2d4ca73 100644
+--- a/mailcommon/foldercollection.cpp
++++ b/mailcommon/foldercollection.cpp
+@@ -294,8 +294,10 @@ uint FolderCollection::identity() const
+ OrgKdeAkonadiImapSettingsInterface *imapSettingsInterface = Util::createImapSettingsInterface( mCollection.resource() );
+ if ( imapSettingsInterface->isValid() ) {
+ QDBusReply<bool> useDefault = imapSettingsInterface->useDefaultIdentity();
+- if( useDefault.isValid() && useDefault.value() )
++ if( useDefault.isValid() && useDefault.value() ) {
++ delete imapSettingsInterface;
+ return mIdentity;
++ }
+
+ QDBusReply<int> remoteAccountIdent = imapSettingsInterface->accountIdentity();
+ if ( remoteAccountIdent.isValid() && remoteAccountIdent.value() > 0 ) {
diff --git a/kde/patch/kdewebdev.patch b/kde/patch/kdewebdev.patch
new file mode 100644
index 0000000..ccac0a7
--- /dev/null
+++ b/kde/patch/kdewebdev.patch
@@ -0,0 +1,5 @@
+# Make it find tidy:
+zcat $CWD/patch/kdewebdev/include-tidy.patch.gz \
+ | sed -e "s#/tmp/package-kdewebdev#${SLACK_KDE_BUILD_DIR}/${module}/package-kdewebdev#" \
+ | patch -p0 --verbose \
+ || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
diff --git a/kde/patch/kdewebdev/include-tidy.patch.gz b/kde/patch/kdewebdev/include-tidy.patch.gz
new file mode 100644
index 0000000..be1d83a
--- /dev/null
+++ b/kde/patch/kdewebdev/include-tidy.patch.gz
Binary files differ