diff options
Diffstat (limited to 'libre/kdepim-libre')
-rw-r--r-- | libre/kdepim-libre/PKGBUILD | 282 | ||||
-rw-r--r-- | libre/kdepim-libre/fix-completion.patch | 182 | ||||
-rw-r--r-- | libre/kdepim-libre/kdepim-akregator.install | 12 | ||||
-rw-r--r-- | libre/kdepim-libre/kdepim-kleopatra.install | 12 | ||||
-rw-r--r-- | libre/kdepim-libre/kdepim-kmail.install | 12 | ||||
-rw-r--r-- | libre/kdepim-libre/kdepim-knode.install | 12 | ||||
-rw-r--r-- | libre/kdepim-libre/kdepim-korganizer.install | 12 | ||||
-rw-r--r-- | libre/kdepim-libre/kdepim-ktnef.install | 12 | ||||
-rw-r--r-- | libre/kdepim-libre/kdepim.install | 11 |
9 files changed, 547 insertions, 0 deletions
diff --git a/libre/kdepim-libre/PKGBUILD b/libre/kdepim-libre/PKGBUILD new file mode 100644 index 000000000..be15c03fb --- /dev/null +++ b/libre/kdepim-libre/PKGBUILD @@ -0,0 +1,282 @@ +# $Id: PKGBUILD 205354 2014-02-04 14:04:58Z svenstaro $ +# Maintainer: Andrea Scarpino <andrea@archlinux.org> +# Contributor: Pierre Schmitz <pierre@archlinux.de> +# Maintainer (Parabola): André Silva <emulatorman@parabola.nu> + +_pkgbase=kdepim +pkgbase=kdepim-libre +pkgname=('kdepim-akonadiconsole-libre' + 'kdepim-akregator-libre' + 'kdepim-blogilo-libre' + 'kdepim-console-libre' + 'kdepim-kaddressbook-libre' + 'kdepim-kalarm-libre' + 'kdepim-kjots-libre' + 'kdepim-kleopatra-libre' + 'kdepim-kmail-libre' + 'kdepim-knode-libre' + 'kdepim-knotes-libre' + 'kdepim-kontact-libre' + 'kdepim-korganizer-libre' + 'kdepim-kresources-libre' + 'kdepim-ktimetracker-libre' + 'kdepim-ktnef-libre' + 'kdepim-libkdepim-libre') +pkgver=4.12.2 +pkgrel=1 +arch=('i686' 'x86_64' 'mips64el') +url='http://pim.kde.org' +license=('GPL' 'LGPL' 'FDL') +groups=('kde' 'kdepim-libre') +makedepends=('cmake' 'automoc4' 'boost' 'kdepim-runtime' 'libxss' + 'nepomuk-widgets' 'link-grammar') +source=("http://download.kde.org/stable/${pkgver}/src/${_pkgbase}-${pkgver}.tar.xz") +sha1sums=('c1e5f3284ab23233632ae27edb85f80588bb7e86') + +build() { + mkdir build + cd build + cmake ../${_pkgbase}-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DKDE4_BUILD_TESTS=OFF \ + -DCMAKE_SKIP_RPATH=ON \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DKDEPIM_BUILD_MOBILE=OFF + make +} + +package_kdepim-akonadiconsole-libre() { + pkgdesc='Akonadi Management and Debugging Console, without nonfree pilot-link support' + depends=('kdepim-libkdepim' 'nepomuk-widgets') + url='http://pim.kde.org' + replaces=('kdepim-akonadiconsole') + conflicts=('kdepim-akonadiconsole') + provides=("kdepim-akonadiconsole=${pkgver}") + install='kdepim.install' + cd "${srcdir}"/build/akonadiconsole + make DESTDIR="${pkgdir}" install +} + +package_kdepim-akregator-libre() { + pkgdesc='A Feed Reader for KDE, without nonfree pilot-link support' + depends=('kdepim-libkdepim') + url="http://kde.org/applications/internet/akregator/" + replaces=('kdepim-akregator') + conflicts=('kdepim-akregator') + provides=("kdepim-akregator=${pkgver}") + install='kdepim-akregator.install' + cd "${srcdir}"/build/akregator + make DESTDIR="${pkgdir}" install + cd "${srcdir}"/build/kontact/plugins/akregator + make DESTDIR="${pkgdir}" install +} + +package_kdepim-blogilo-libre() { + pkgdesc='A KDE Blogging Client, without nonfree pilot-link support' + depends=('kdepim-libkdepim') + url="http://kde.org/applications/internet/blogilo/" + replaces=('kdepim-blogilo' 'blogilo') + conflicts=('kdepim-blogilo' 'blogilo') + provides=("kdepim-blogilo=${pkgver}") + install='kdepim.install' + cd "${srcdir}"/build/blogilo + make DESTDIR="${pkgdir}" install + cd "${srcdir}"/build/composereditor-ng + make DESTDIR="${pkgdir}" install +} + +package_kdepim-console-libre() { + pkgdesc='Command line tool for accessing calendar files, without nonfree pilot-link support' + depends=('kdepim-libkdepim') + url='http://pim.kde.org' + replaces=('kdepim-console') + conflicts=('kdepim-console') + provides=("kdepim-console=${pkgver}") + install='kdepim.install' + cd "${srcdir}"/build/console + make DESTDIR="${pkgdir}" install +} + +package_kdepim-kaddressbook-libre() { + pkgdesc='Contact Manager, without nonfree pilot-link support' + depends=('kdepim-libkdepim') + url="http://kde.org/applications/office/kaddressbook/" + replaces=('kdepim-kaddressbook') + conflicts=('kdepim-kaddressbook') + provides=("kdepim-kaddressbook=${pkgver}") + install='kdepim.install' + for i in kaddressbook kontact/plugins/kaddressbook \ + plugins/kaddressbook contactthemeeditor; do + cd "${srcdir}"/build/${i} + make DESTDIR="${pkgdir}" install + done +} + +package_kdepim-kalarm-libre() { + pkgdesc='Personal Alarm Scheduler, without nonfree pilot-link support' + depends=('kdepim-libkdepim') + url="http://kde.org/applications/utilities/kalarm/" + replaces=('kdepim-kalarm') + conflicts=('kdepim-kalarm') + provides=("kdepim-kalarm=${pkgver}") + install='kdepim.install' + cd "${srcdir}"/build/kalarm + make DESTDIR="${pkgdir}" install +} + +package_kdepim-kjots-libre() { + pkgdesc='Note Taker, without nonfree pilot-link support' + depends=('kdepim-libkdepim') + url="http://kde.org/applications/utilities/kjots/" + replaces=('kdepim-kjots') + conflicts=('kdepim-kjots') + provides=("kdepim-kjots=${pkgver}") + install='kdepim.install' + cd "${srcdir}"/build/kjots + make DESTDIR="${pkgdir}" install + cd "${srcdir}"/build/kontact/plugins/kjots + make DESTDIR="${pkgdir}" install +} + +package_kdepim-kleopatra-libre() { + pkgdesc='Certificate Manager and Unified Crypto GUI, without nonfree pilot-link support' + depends=('kdepim-libkdepim') + install='kdepim-kleopatra.install' + url="http://kde.org/applications/utilities/kleopatra/" + replaces=('kdepim-kleopatra') + conflicts=('kdepim-kleopatra') + provides=("kdepim-kleopatra=${pkgver}") + cd "${srcdir}"/build/kleopatra + make DESTDIR="${pkgdir}" install +} + +package_kdepim-kmail-libre() { + pkgdesc='Mail Client, without nonfree pilot-link support' + depends=('kdepim-libkdepim') + url="http://kde.org/applications/internet/kmail/" + install='kdepim-kmail.install' + conflicts=('kdepim-kmail' 'kdepim-kmailcvt' 'kdepim-ksendemail' 'kdepim-libksieve' + 'kdepim-mimelib' 'kdepim-plugins') + replaces=('kdepim-kmail' 'kdepim-kmailcvt' 'kdepim-ksendemail' 'kdepim-libksieve' + 'kdepim-mimelib' 'kdepim-plugins') + provides=("kdepim-kmail=${pkgver}") + for i in kmail kmailcvt agents/archivemailagent agents/folderarchiveagent\ + agents/mailfilteragent importwizard ksendemail libksieve messagelist \ + ontologies kontact/plugins/kmail headerthemeeditor mboximporter; do + cd "${srcdir}"/build/${i} + make DESTDIR="${pkgdir}" install + done +} + +package_kdepim-knode-libre() { + pkgdesc='News Reader, without nonfree pilot-link support' + depends=('kdepim-libkdepim') + url="http://kde.org/applications/internet/knode/" + replaces=('kdepim-knode') + conflicts=('kdepim-knode') + provides=("kdepim-knode=${pkgver}") + install='kdepim-knode.install' + cd "${srcdir}"/build/knode + make DESTDIR="${pkgdir}" install + cd "${srcdir}"/build/kontact/plugins/knode + make DESTDIR="${pkgdir}" install +} + +package_kdepim-knotes-libre() { + pkgdesc='Popup Notes, without nonfree pilot-link support' + depends=('kdepim-libkdepim') + url="http://kde.org/applications/utilities/knotes/" + replaces=('kdepim-knotes') + conflicts=('kdepim-knotes') + provides=("kdepim-knotes=${pkgver}") + install='kdepim.install' + cd "${srcdir}"/build/knotes + make DESTDIR="${pkgdir}" install + cd "${srcdir}"/build/kontact/plugins/knotes + make DESTDIR="${pkgdir}" install +} + +package_kdepim-kontact-libre() { + pkgdesc='Personal Information Manager, without nonfree pilot-link support' + depends=('kdepim-libkdepim') + url="http://kde.org/applications/office/kontact/" + install='kdepim.install' + conflicts=('kdepim-kontact' 'kdepim-kontactinterfaces') + replaces=('kdepim-kontact' 'kdepim-kontactinterfaces') + provides=("kdepim-kontact=${pkgver}") + for i in kontact/src kontact/plugins/summary \ + kontact/plugins/specialdates; do + cd "${srcdir}"/build/${i} + make DESTDIR="${pkgdir}" install + done +} + +package_kdepim-korganizer-libre() { + pkgdesc='Calendar and Scheduling Program, without nonfree pilot-link support' + depends=('kdepim-libkdepim') + url="http://kde.org/applications/office/korganizer" + replaces=('kdepim-korganizer') + conflicts=('kdepim-korganizer') + provides=("kdepim-korganizer=${pkgver}") + install='kdepim-korganizer.install' + for i in korganizer korgac kontact/plugins/korganizer calendarviews; do + cd "${srcdir}"/build/${i} + make DESTDIR="${pkgdir}" install + done +} + +package_kdepim-kresources-libre() { + pkgdesc='KDE PIM resources, without nonfree pilot-link support' + depends=('kdepim-libkdepim') + url='http://pim.kde.org' + replaces=('kdepim-kresources') + conflicts=('kdepim-kresources') + provides=("kdepim-kresources=${pkgver}") + cd "${srcdir}"/build/kresources + make DESTDIR="${pkgdir}" install +} + +package_kdepim-ktimetracker-libre() { + pkgdesc='Personal Time Tracker, without nonfree pilot-link support' + depends=('kdepim-kresources') + url="http://kde.org/applications/utilities/ktimetracker/" + replaces=('kdepim-ktimetracker') + conflicts=('kdepim-ktimetracker') + provides=("kdepim-ktimetracker=${pkgver}") + install='kdepim.install' + cd "${srcdir}"/build/ktimetracker + make DESTDIR="${pkgdir}" install +} + +package_kdepim-ktnef-libre() { + pkgdesc='A viewer/extractor for TNEF files, without nonfree pilot-link support' + depends=('kdebase-runtime' 'kdepimlibs') + url="https://projects.kde.org/projects/kde/kdepim/ktnef" + install=kdepim-ktnef.install + replaces=('kdepim-ktnef') + conflicts=('kdepim-ktnef') + provides=("kdepim-ktnef=${pkgver}") + cd "${srcdir}"/build/ktnef + make DESTDIR="${pkgdir}" install +} + +package_kdepim-libkdepim-libre() { + pkgdesc='Library for KDE PIM, without nonfree pilot-link support' + groups=() + depends=('kde-agent' 'kdepim-runtime' 'link-grammar') + url='http://pim.kde.org' + conflicts=('kdepim-libkdepim' 'kdepim-icons' 'kdepim-libkleo' 'kdepim-libkpgp' + 'kdepim-akonadi') + replaces=('kdepim-libkdepim' 'kdepim-icons' 'kdepim-libkleo' 'kdepim-libkpgp' + 'kdepim-akonadi') + provides=("kdepim-libkdepim=${pkgver}") + for i in agents/sendlateragent akonadi_next calendarsupport \ + incidenceeditor-ng kaddressbookgrantlee kdgantt2 libkdepim \ + libkdepimdbusinterfaces libkleo libkpgp mailcommon mailimporter \ + messagecomposer messagecore messageviewer icons templateparser \ + plugins/messageviewer grammar grantleetheme grantleethemeeditor \ + plugins/ktexteditor pimactivity pimcommon pimsettingexporter; do + cd "${srcdir}"/build/${i} + make DESTDIR="${pkgdir}" install + done +} diff --git a/libre/kdepim-libre/fix-completion.patch b/libre/kdepim-libre/fix-completion.patch new file mode 100644 index 000000000..c2edefe00 --- /dev/null +++ b/libre/kdepim-libre/fix-completion.patch @@ -0,0 +1,182 @@ +commit 6a06c57f52a00018d607085efa7570deb91dc707 +Author: David Faure <faure@kde.org> +Date: Mon Apr 8 17:41:39 2013 +0200 + + Fix kmail autocompletion from akonadi. + + My commit 02f5f0214e made autocompletion from nepomuk work better, but broke + completion from akonadi. I kept the "keywords" based code, but now it's only + used for the special case of nickname-based search (because the nickname shouldn't + appear in the completion item). For everything else it really doesn't make sense + to have a search engine (akonadi/nepomuk) on top of a search engine + (the one inside KCompletion). + + This time I verified that: + * nepomuk search still works + * contacts from akonadi work again + * contact groups from akonadi work (after previous commit) + * nickname-search in akonadi still doesn't work, but it didn't before. More work + needed for that one. This is the only reason to keep KMailCompletion around btw, + everything else would work without it. + + BUG: 259949 + FIXED-IN: 4.10.3 + +diff --git a/libkdepim/addresseelineedit.cpp b/libkdepim/addresseelineedit.cpp +index b7b11be..ec4caf9 100644 +--- a/libkdepim/addresseelineedit.cpp ++++ b/libkdepim/addresseelineedit.cpp +@@ -30,6 +30,8 @@ + #include "completionordereditor.h" + #endif + ++#include "kmailcompletion.h" ++ + #include <Akonadi/Contact/ContactSearchJob> + #include <Akonadi/Contact/ContactGroupSearchJob> + #include <Akonadi/CollectionFetchJob> +@@ -77,6 +79,10 @@ + + using namespace KPIM; + ++namespace KPIM { ++ typedef QMap< QString, QPair<int,int> > CompletionItemsMap; ++} ++ + class AddresseeLineEditStatic + { + public: +@@ -496,11 +502,9 @@ void AddresseeLineEdit::Private::addCompletionItem( const QString &string, int w + s_static->completionItemMap.insert( string, qMakePair( weight, completionItemSource ) ); + } + +- if ( keyWords == 0 ) { +- s_static->completion->addItem( string, weight ); +- } else { +- s_static->completion->addItemWithKeys( string, weight, keyWords ); +- } ++ s_static->completion->addItem(string, weight); ++ if (keyWords && !keyWords->isEmpty()) ++ s_static->completion->addItemWithKeys(string, weight, keyWords); // see kmailcompletion.cpp + } + + const QStringList KPIM::AddresseeLineEdit::Private::adjustedCompletionItems( bool fullSearch ) +@@ -1348,17 +1352,13 @@ void AddresseeLineEdit::addItem( const Akonadi::Item &item, int weight, int sour + void AddresseeLineEdit::addContactGroup( const KABC::ContactGroup &group, int weight, int source ) + { + d->addCompletionItem( group.name(), weight, source ); +- QStringList keyWords; +- keyWords.append( group.name() ); +- d->addCompletionItem( group.name(), weight, source, &keyWords ); + } + + void AddresseeLineEdit::addContact( const KABC::Addressee &addr, int weight, int source ) + { + const QStringList emails = addr.emails(); + QStringList::ConstIterator it; +- const int prefEmailWeight = 1; //increment weight by prefEmailWeight +- int isPrefEmail = prefEmailWeight; //first in list is preferredEmail ++ int isPrefEmail = 1; //first in list is preferredEmail + QStringList::ConstIterator end( emails.constEnd() ); + for ( it = emails.constBegin(); it != end; ++it ) { + //TODO: highlight preferredEmail +@@ -1368,40 +1368,6 @@ void AddresseeLineEdit::addContact( const KABC::Addressee &addr, int weight, int + const QString nickName = addr.nickName(); + QString fullEmail = addr.fullEmail( email ); + +- // Prepare keywords (for CompletionShell, CompletionPopup) +- QStringList keyWords; +- const QString realName = addr.realName(); +- +- if ( !givenName.isEmpty() && !familyName.isEmpty() ) { +- keyWords.append( givenName + QLatin1Char( ' ' ) + familyName ); +- keyWords.append( familyName + QLatin1Char( ' ' ) + givenName ); +- keyWords.append( familyName + QLatin1String( ", " ) + givenName ); +- } else if ( !givenName.isEmpty() ) { +- keyWords.append( givenName ); +- } else if ( !familyName.isEmpty() ) { +- keyWords.append( familyName ); +- } +- +- if ( !nickName.isEmpty() ) { +- keyWords.append( nickName ); +- } +- +- if ( !realName.isEmpty() ) { +- keyWords.append( realName ); +- } +- +- keyWords.append( email ); +- +- /* KMailCompletion does not have knowledge about identities, it stores emails and +- * keywords for each email. KMailCompletion::allMatches does a lookup on the +- * keywords and returns an ordered list of emails. In order to get the preferred +- * email before others for each identity we use this little trick. +- * We remove the <blank> in adjustedCompletionItems. +- */ +- if ( isPrefEmail == prefEmailWeight ) { +- fullEmail.replace( QLatin1String( " <" ), QLatin1String( " <" ) ); +- } +- + // Prepare "givenName" + ' ' + "familyName" + QString fullName = givenName; + if (!familyName.isEmpty()) { +@@ -1413,12 +1379,16 @@ void AddresseeLineEdit::addContact( const KABC::Addressee &addr, int weight, int + // Finally, we can add the completion items + if (!fullName.isEmpty()) { + const QString address = KPIMUtils::normalizedAddress(fullName, email, QString()); +- d->addCompletionItem(address, weight + isPrefEmail, source, &keyWords); ++ if (fullEmail != address) { ++ // This happens when fullEmail contains a middle name, while our own fullName+email only has "first last". ++ // Let's offer both, the fullEmail with 3 parts, looks a tad formal. ++ d->addCompletionItem(address, weight + isPrefEmail, source); ++ } + } + +- if ( !nickName.isEmpty() ) { +- const QString address = KPIMUtils::normalizedAddress(nickName, email, QString()); +- d->addCompletionItem(address, weight + isPrefEmail, source, &keyWords); ++ QStringList keyWords; ++ if (!nickName.isEmpty()) { ++ keyWords.append(nickName); + } + + d->addCompletionItem( fullEmail, weight + isPrefEmail, source, &keyWords ); +diff --git a/libkdepim/addresseelineedit.h b/libkdepim/addresseelineedit.h +index 4e6784b..b2af4a9 100644 +--- a/libkdepim/addresseelineedit.h ++++ b/libkdepim/addresseelineedit.h +@@ -27,7 +27,6 @@ + #ifndef KDEPIM_ADDRESSEELINEEDIT_H + #define KDEPIM_ADDRESSEELINEEDIT_H + +-#include "kmailcompletion.h" + #include "kdepim_export.h" + + #include "ldap/ldapclient.h" +@@ -50,10 +49,6 @@ namespace KABC { + class ContactGroup; + } + +-namespace KPIM { +- typedef QMap< QString, QPair<int,int> > CompletionItemsMap; +-} +- + namespace Nepomuk2 { + namespace Query { + class Result; +diff --git a/libkdepim/kmailcompletion.h b/libkdepim/kmailcompletion.h +index e8574cc..93771d3 100644 +--- a/libkdepim/kmailcompletion.h ++++ b/libkdepim/kmailcompletion.h +@@ -32,7 +32,9 @@ namespace KPIM { + + /** + * KMailCompletion allows lookup of email addresses by keyword. +- * Typically a keywods would be firstname, lastname, nickname or domain. ++ * This is used for lookup by nickname, since we don't want the nickname to appear in the final email. ++ * E.g. you have a nickname "idiot" for your boss, you want to type "idiot" but you want the completion ++ * to offer "Full Name <email@domain>", without the nickname being visible. + */ + class KMailCompletion : public KCompletion + { diff --git a/libre/kdepim-libre/kdepim-akregator.install b/libre/kdepim-libre/kdepim-akregator.install new file mode 100644 index 000000000..5787df72f --- /dev/null +++ b/libre/kdepim-libre/kdepim-akregator.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/libre/kdepim-libre/kdepim-kleopatra.install b/libre/kdepim-libre/kdepim-kleopatra.install new file mode 100644 index 000000000..5787df72f --- /dev/null +++ b/libre/kdepim-libre/kdepim-kleopatra.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/libre/kdepim-libre/kdepim-kmail.install b/libre/kdepim-libre/kdepim-kmail.install new file mode 100644 index 000000000..5787df72f --- /dev/null +++ b/libre/kdepim-libre/kdepim-kmail.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/libre/kdepim-libre/kdepim-knode.install b/libre/kdepim-libre/kdepim-knode.install new file mode 100644 index 000000000..5787df72f --- /dev/null +++ b/libre/kdepim-libre/kdepim-knode.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/libre/kdepim-libre/kdepim-korganizer.install b/libre/kdepim-libre/kdepim-korganizer.install new file mode 100644 index 000000000..5787df72f --- /dev/null +++ b/libre/kdepim-libre/kdepim-korganizer.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/libre/kdepim-libre/kdepim-ktnef.install b/libre/kdepim-libre/kdepim-ktnef.install new file mode 100644 index 000000000..5787df72f --- /dev/null +++ b/libre/kdepim-libre/kdepim-ktnef.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/libre/kdepim-libre/kdepim.install b/libre/kdepim-libre/kdepim.install new file mode 100644 index 000000000..e70c054ec --- /dev/null +++ b/libre/kdepim-libre/kdepim.install @@ -0,0 +1,11 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} |