[arch-commits] Commit in kdepim/trunk (PKGBUILD kmail-delete-mails-from-server.patch)

Andrea Scarpino andrea at archlinux.org
Sun Sep 13 19:04:39 UTC 2009


    Date: Sunday, September 13, 2009 @ 15:04:39
  Author: andrea
Revision: 51920

important kmail patch

Added:
  kdepim/trunk/kmail-delete-mails-from-server.patch
Modified:
  kdepim/trunk/PKGBUILD

--------------------------------------+
 PKGBUILD                             |   14 ++++--
 kmail-delete-mails-from-server.patch |   75 +++++++++++++++++++++++++++++++++
 2 files changed, 85 insertions(+), 4 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2009-09-13 19:01:46 UTC (rev 51919)
+++ PKGBUILD	2009-09-13 19:04:39 UTC (rev 51920)
@@ -19,17 +19,23 @@
          'kdepim-libkdepim'
          'kdepim-wizards')
 pkgver=4.3.1
-pkgrel=1
+pkgrel=2
 arch=('i686' 'x86_64')
 url='http://www.kde.org'
 license=('GPL' 'LGPL' 'FDL')
 groups=('kde' 'kdepim')
 makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'kdelibs-experimental' 'kdepimlibs' 'kdepim-runtime' 'gnokii' 'libxss' 'kdebase-runtime' 'pilot-link' 'kde-agent')
-source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
-md5sums=('1029bc586f29c262f5f60eb079623e62')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+	kmail-delete-mails-from-server.patch)
+md5sums=('1029bc586f29c262f5f60eb079623e62'
+         'a3c32cf5d25195c73c6a278861a3629f')
 
 build() {
-	cd $srcdir
+	cd ${srcdir}/${pkgbase}-${pkgver}
+	# Fix important KMail bug
+	patch -Np4 -i ../kmail-delete-mails-from-server.patch || return 1
+
+        cd ${srcdir}
 	mkdir build
 	cd build
 	cmake ../${pkgbase}-${pkgver} \

Added: kmail-delete-mails-from-server.patch
===================================================================
--- kmail-delete-mails-from-server.patch	                        (rev 0)
+++ kmail-delete-mails-from-server.patch	2009-09-13 19:04:39 UTC (rev 51920)
@@ -0,0 +1,75 @@
+Index: branches/KDE/4.3/kdepim/kmail/cachedimapjob.cpp
+===================================================================
+--- branches/KDE/4.3/kdepim/kmail/cachedimapjob.cpp	(revision 1022962)
++++ branches/KDE/4.3/kdepim/kmail/cachedimapjob.cpp	(revision 1022963)
+@@ -510,7 +510,7 @@
+         bool b = kmkernel->iCalIface().isResourceQuiet();
+         kmkernel->iCalIface().setResourceQuiet( true );
+ 
+-        mFolder->take( i );
++        mFolder->takeTemporarily( i );
+         mFolder->addMsgKeepUID( mMsg );
+         mMsg->setTransferInProgress( false );
+ 
+Index: branches/KDE/4.3/kdepim/kmail/kmfoldercachedimap.cpp
+===================================================================
+--- branches/KDE/4.3/kdepim/kmail/kmfoldercachedimap.cpp	(revision 1022962)
++++ branches/KDE/4.3/kdepim/kmail/kmfoldercachedimap.cpp	(revision 1022963)
+@@ -527,6 +527,11 @@
+   return KMFolderMaildir::take( idx );
+ }
+ 
++void KMFolderCachedImap::takeTemporarily( int idx )
++{
++  KMFolderMaildir::take( idx );
++}
++
+ int KMFolderCachedImap::addMsgInternal( KMMessage *msg, bool newMail, int *index_return )
+ {
+   // Possible optimization: Only dirty if not filtered below
+Index: branches/KDE/4.3/kdepim/kmail/kmfoldercachedimap.h
+===================================================================
+--- branches/KDE/4.3/kdepim/kmail/kmfoldercachedimap.h	(revision 1022962)
++++ branches/KDE/4.3/kdepim/kmail/kmfoldercachedimap.h	(revision 1022963)
+@@ -228,10 +228,23 @@
+     /** Reimplemented from KMFolder. Moving is not supported, so aParent must be 0. */
+     virtual int rename( const QString &aName, KMFolderDir *aParent = 0 );
+ 
+-    /** Reimplemented from KMFolderMaildir */
+-    virtual KMMessage *take( int idx );
+     bool canDeleteMessages() const;
+ 
++    /**
++     * Reimplemented from KMFolderMaildir
++     * This deletes the message permanently, also from the server. For this,
++     * rememberDeletion() is called, so that the message can be deleted from
++     * the server on the next sync.
++     */
++    virtual KMMessage* take( int idx );
++
++    /**
++     * Like take(), only that the deletion is not remembered, i.e. the
++     * message will not be deleted from the server. Calling this can cause
++     * inconsistencies, so make sure you re-add the message later!
++     */
++    void takeTemporarily( int idx );
++
+     /** Reimplemented from KMFolderMaildir */
+     virtual int addMsg( KMMessage *msg, int *index_return = 0 );
+ 
+Index: branches/KDE/4.3/kdepim/kmail/kmfoldercachedimap.cpp
+===================================================================
+--- branches/KDE/4.3/kdepim/kmail/kmfoldercachedimap.cpp	(revision 1022963)
++++ branches/KDE/4.3/kdepim/kmail/kmfoldercachedimap.cpp	(revision 1022964)
+@@ -1678,6 +1678,11 @@
+     job->start();
+     return true;
+   } else {
++
++    // Nothing to delete on the server, make sure the map is clear again.
++    // Normally this wouldn't be necessary, but there can be stale maps because of
++    // https://issues.kolab.org/issue3833.
++    mDeletedUIDsSinceLastSync.clear();
+     return false;
+   }
+ }




More information about the arch-commits mailing list