Hello community,

here is the log from the commit of package akonadi-runtime for openSUSE:Factory 
checked in at 2013-07-22 16:33:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/akonadi-runtime (Old)
 and      /work/SRC/openSUSE:Factory/.akonadi-runtime.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "akonadi-runtime"

Changes:
--------
--- /work/SRC/openSUSE:Factory/akonadi-runtime/akonadi-runtime.changes  
2013-06-14 15:42:48.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.akonadi-runtime.new/akonadi-runtime.changes     
2013-07-22 16:33:15.000000000 +0200
@@ -1,0 +2,7 @@
+Tue Jul  9 21:52:48 UTC 2013 - [email protected]
+
+- Update to 1.10.0
+  * Memory optimizations
+  * Fix a runtime error on Windows
+
+-------------------------------------------------------------------

Old:
----
  akonadi-1.9.80.tar.bz2

New:
----
  akonadi-1.10.0.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ akonadi-runtime.spec ++++++
--- /var/tmp/diff_new_pack.jnM62B/_old  2013-07-22 16:33:16.000000000 +0200
+++ /var/tmp/diff_new_pack.jnM62B/_new  2013-07-22 16:33:16.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           akonadi-runtime
-Version:        1.9.80
+Version:        1.10.0
 Release:        0
 %define rversion %{version}
 Summary:        PIM Storage Service

++++++ akonadi-1.9.80.tar.bz2 -> akonadi-1.10.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/akonadi-1.9.80/CMakeLists.txt 
new/akonadi-1.10.0/CMakeLists.txt
--- old/akonadi-1.9.80/CMakeLists.txt   2013-06-10 12:16:19.000000000 +0200
+++ new/akonadi-1.10.0/CMakeLists.txt   2013-07-09 18:56:12.000000000 +0200
@@ -72,8 +72,8 @@
 ############### The Akonadi version (used in AkonadiConfig.cmake) 
###############
 
 set(AKONADI_VERSION_MAJOR "1")
-set(AKONADI_VERSION_MINOR "9")
-set(AKONADI_VERSION_PATCH "80")
+set(AKONADI_VERSION_MINOR "10")
+set(AKONADI_VERSION_PATCH "0")
 set(AKONADI_VERSION 
"${AKONADI_VERSION_MAJOR}.${AKONADI_VERSION_MINOR}.${AKONADI_VERSION_PATCH}")
 set(AKONADI_VERSION_STRING "${AKONADI_VERSION}")
 
@@ -402,7 +402,10 @@
 include(CPack) # needs to happen after the above variables are set!
 
 
-feature_summary(WHAT ALL)
+feature_summary(WHAT ALL
+                     INCLUDE_QUIET_PACKAGES
+                     FATAL_ON_MISSING_REQUIRED_PACKAGES
+               )
 
 # Install the file with the exported targets
 install(EXPORT akonadiLibraryTargets
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/akonadi-1.9.80/Mainpage.dox 
new/akonadi-1.10.0/Mainpage.dox
--- old/akonadi-1.9.80/Mainpage.dox     2013-06-10 12:16:19.000000000 +0200
+++ new/akonadi-1.10.0/Mainpage.dox     2013-07-09 18:56:12.000000000 +0200
@@ -315,6 +315,6 @@
 
 // DOXYGEN_EXCLUDE = sqlplugin server/control server/akonadictl server/tests
 // DOXYGEN_PROJECTNAME=Akonadi
-// DOXYGEN_PROJECTVERSION=1.9.80
+// DOXYGEN_PROJECTVERSION=1.10.0
 
 // vim:ts=4:sw=4:expandtab:filetype=doxygen
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/akonadi-1.9.80/NEWS new/akonadi-1.10.0/NEWS
--- old/akonadi-1.9.80/NEWS     2013-06-10 12:16:19.000000000 +0200
+++ new/akonadi-1.10.0/NEWS     2013-07-09 18:56:12.000000000 +0200
@@ -1,3 +1,8 @@
+1.10.0                            09-July-2013
+----------------------------------------------
+- Memory optimizations
+- Fix a runtime error on Windows
+
 1.9.80                            10-June-2013
 ----------------------------------------------
 - Update item access time less often.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/akonadi-1.9.80/agentserver/agentpluginloader.cpp 
new/akonadi-1.10.0/agentserver/agentpluginloader.cpp
--- old/akonadi-1.9.80/agentserver/agentpluginloader.cpp        2013-06-10 
12:16:19.000000000 +0200
+++ new/akonadi-1.10.0/agentserver/agentpluginloader.cpp        2013-07-09 
18:56:12.000000000 +0200
@@ -43,6 +43,7 @@
     QPluginLoader *loader = new QPluginLoader( pluginFile );
     if ( !loader->load() ) {
       akError() << Q_FUNC_INFO << "Failed to load agent: " << 
loader->errorString();
+      delete loader;
       return 0;
     }
     m_pluginLoaders.insert( pluginFile, loader );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/akonadi-1.9.80/server/src/storage/dbconfigmysql.cpp 
new/akonadi-1.10.0/server/src/storage/dbconfigmysql.cpp
--- old/akonadi-1.9.80/server/src/storage/dbconfigmysql.cpp     2013-06-10 
12:16:19.000000000 +0200
+++ new/akonadi-1.10.0/server/src/storage/dbconfigmysql.cpp     2013-07-09 
18:56:12.000000000 +0200
@@ -57,7 +57,10 @@
   QString defaultServerPath;
   QString defaultCleanShutdownCommand;
 
-  const QString socketDirectory = Utils::preferredSocketDirectory( 
AkStandardDirs::saveDir( "data", QLatin1String( "db_misc" ) ) );
+#ifndef Q_OS_WIN
+  const QString socketDirectory = Utils::preferredSocketDirectory( 
AkStandardDirs::saveDir( "data", QLatin1String( "db_misc" ) )
+  );
+#endif
 
   const bool defaultInternalServer = true;
 #ifdef MYSQLD_EXECUTABLE
@@ -169,7 +172,9 @@
 
   const QString akDir   = AkStandardDirs::saveDir( "data" );
   const QString dataDir = AkStandardDirs::saveDir( "data", QLatin1String( 
"db_data" ) );
+#ifndef Q_OS_WIN
   const QString socketDirectory = Utils::preferredSocketDirectory( 
AkStandardDirs::saveDir( "data", QLatin1String( "db_misc" ) ) );
+#endif
 
   // generate config file
   const QString globalConfig = XdgBaseDirs::findResourceFile( "config", 
QLatin1String( "akonadi/mysql-global.conf" ) );
@@ -218,12 +223,14 @@
   if ( akDir.isEmpty() )
     akFatal() << "Akonadi server was not able to create database log 
directory";
 
+#ifndef Q_OS_WIN
   if ( socketDirectory.isEmpty() )
     akFatal() << "Akonadi server was not able to create database misc 
directory";
 
   // the socket path must not exceed 103 characters, so check for max dir 
length right away
   if ( socketDirectory.length() >= 90 )
       akFatal() << "MySQL cannot deal with a socket path this long. Path was: 
" << socketDirectory;
+#endif
 
   // move mysql error log file out of the way
   const QFileInfo errorLog( dataDir + QDir::separator() + QString::fromLatin1( 
"mysql.err" ) );
@@ -308,7 +315,10 @@
                                                     << QLatin1String( 
"--check-upgrade" )
                                                     << QLatin1String( 
"--all-databases" )
                                                     << QLatin1String( 
"--auto-repair" )
-                                                    << QString::fromLatin1( 
"--socket=%1/mysql.socket" ).arg( socketDirectory );
+#ifndef Q_OS_WIN
+                                                    << QString::fromLatin1( 
"--socket=%1/mysql.socket" ).arg( socketDirectory )
+#endif
+                                                    ;
         QProcess::execute( mMysqlCheckPath, arguments );
       }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/akonadi-1.9.80/server/src/storage/dbinitializer.h 
new/akonadi-1.10.0/server/src/storage/dbinitializer.h
--- old/akonadi-1.9.80/server/src/storage/dbinitializer.h       2013-06-10 
12:16:19.000000000 +0200
+++ new/akonadi-1.10.0/server/src/storage/dbinitializer.h       2013-07-09 
18:56:12.000000000 +0200
@@ -35,7 +35,7 @@
 class TestInterface
 {
   public:
-    virtual ~TestInterface() {};
+    virtual ~TestInterface() {}
     virtual void execStatement( const QString &statement ) = 0;
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/akonadi-1.9.80/server/src/storage/querycache.cpp 
new/akonadi-1.10.0/server/src/storage/querycache.cpp
--- old/akonadi-1.9.80/server/src/storage/querycache.cpp        2013-06-10 
12:16:19.000000000 +0200
+++ new/akonadi-1.10.0/server/src/storage/querycache.cpp        2013-07-09 
18:56:12.000000000 +0200
@@ -24,35 +24,73 @@
 #include <QSqlQuery>
 #include <QThreadStorage>
 #include <QtCore/QHash>
+#include <QtCore/QTimer>
 
 using namespace Akonadi;
 
-static QThreadStorage< QHash<QString, QSqlQuery>* > g_queryCache;
+enum {
+  // After these seconds without activity the cache is cleaned
+  CLEANUP_TIMEOUT = 30 // seconds
+};
 
-static QHash<QString, QSqlQuery>* cache()
+class Cache : public QObject
+{
+  Q_OBJECT
+public:
+
+  Cache()
+  {
+    connect( &m_cleanupTimer, SIGNAL(timeout()), SLOT(cleanup()));
+    m_cleanupTimer.setSingleShot(true);
+  }
+
+  QSqlQuery query( const QString &queryStatement)
+  {
+    m_cleanupTimer.start( CLEANUP_TIMEOUT*1000 );
+    return m_cache.value( queryStatement );
+  }
+
+public Q_SLOTS:
+  void cleanup()
+  {
+    m_cache.clear();
+  }
+
+public: // public, this is just a helper class
+  QHash<QString, QSqlQuery> m_cache;
+  QTimer m_cleanupTimer;
+};
+
+static QThreadStorage<Cache*> g_queryCache;
+
+static Cache* perThreadCache()
 {
   if ( !g_queryCache.hasLocalData() )
-    g_queryCache.setLocalData( new QHash<QString, QSqlQuery>() );
+    g_queryCache.setLocalData( new Cache() );
+
   return g_queryCache.localData();
 }
 
-bool QueryCache::contains(const QString& queryStatement)
+bool QueryCache::contains(const QString &queryStatement)
 {
   if ( DbType::type( DataStore::self()->database() ) == DbType::Sqlite ) {
     return false;
   } else {
-    return cache()->contains( queryStatement );
+    return perThreadCache()->m_cache.contains( queryStatement );
   }
 }
 
-QSqlQuery QueryCache::query(const QString& queryStatement)
+QSqlQuery QueryCache::query(const QString &queryStatement)
 {
-  return cache()->value( queryStatement );
+  return perThreadCache()->query( queryStatement );
 }
 
-void QueryCache::insert(const QString& queryStatement, const QSqlQuery& query)
+void QueryCache::insert(const QString &queryStatement, const QSqlQuery &query)
 {
   if ( DbType::type( DataStore::self()->database() ) != DbType::Sqlite ) {
-    cache()->insert( queryStatement, query );
+    perThreadCache()->m_cache.insert( queryStatement, query );
   }
 }
+
+
+#include <querycache.moc>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/akonadi-1.9.80/server/src/storagejanitor.cpp 
new/akonadi-1.10.0/server/src/storagejanitor.cpp
--- old/akonadi-1.9.80/server/src/storagejanitor.cpp    2013-06-10 
12:16:19.000000000 +0200
+++ new/akonadi-1.10.0/server/src/storagejanitor.cpp    2013-07-09 
18:56:12.000000000 +0200
@@ -219,7 +219,7 @@
 
   qb.exec();
   const Collection::List orphans = qb.result();
-  if ( orphans.size() > 0 ) {
+  if ( !orphans.isEmpty() ) {
     inform( QLatin1Literal( "Found " ) + QString::number( orphans.size() ) + 
QLatin1Literal( " orphan collections." ) );
     // TODO: attach to lost+found resource
   }

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to