diff -Nru akonadi-15.12.1/debian/changelog akonadi-15.12.3/debian/changelog --- akonadi-15.12.1/debian/changelog 2016-04-12 14:34:08.000000000 +0000 +++ akonadi-15.12.3/debian/changelog 2016-04-14 21:44:15.000000000 +0000 @@ -1,15 +1,9 @@ -akonadi (4:15.12.1-0ubuntu4) xenial; urgency=medium +akonadi (4:15.12.3-0ubuntu1) xenial; urgency=medium + + * New upstream bugfix release + * New upstream bugfix release - * Depend on mysql-{server,client}-core-5.7, not 5.6, for the switch to - MySQL 5.7. - - -- Robie Basak Tue, 12 Apr 2016 14:33:29 +0000 - -akonadi (4:15.12.1-0ubuntu3) xenial; urgency=medium - - * Rebuild against libmysqlclient20. - - -- Robie Basak Tue, 05 Apr 2016 12:11:54 +0000 + -- Scarlett Clark Thu, 14 Apr 2016 14:44:15 -0700 akonadi (4:15.12.1-0ubuntu2) xenial; urgency=medium diff -Nru akonadi-15.12.1/debian/control akonadi-15.12.3/debian/control --- akonadi-15.12.1/debian/control 2016-04-12 14:33:29.000000000 +0000 +++ akonadi-15.12.3/debian/control 2016-04-14 21:44:15.000000000 +0000 @@ -70,8 +70,8 @@ Section: misc Architecture: all Depends: libqt5sql5-mysql, - mysql-client-core-5.7 | virtual-mysql-client-core, - mysql-server-core-5.7 | virtual-mysql-server-core, + mysql-client-core-5.6 | virtual-mysql-client-core, + mysql-server-core-5.6 | virtual-mysql-server-core, ${misc:Depends} Recommends: akonadi-server Replaces: akonadi-server (<< 1.3.60~) diff -Nru akonadi-15.12.1/src/akonadicontrol/agenttype.cpp akonadi-15.12.3/src/akonadicontrol/agenttype.cpp --- akonadi-15.12.1/src/akonadicontrol/agenttype.cpp 2015-12-17 22:42:16.000000000 +0000 +++ akonadi-15.12.3/src/akonadicontrol/agenttype.cpp 2016-03-11 00:10:30.000000000 +0000 @@ -47,20 +47,14 @@ if (value.isNull()) { return QString(); } else if (value.canConvert()) { - return QString::fromUtf8(value.toByteArray()); + return value.toString(); } else if (value.canConvert()) { // This is a workaround for QSettings interpreting value with a comma as // a QStringList, which is not compatible with KConfig. KConfig reads everything // as a QByteArray and splits it to a list when requested. See BKO#330010 // TODO KF5: If we end up in Tier 2 or above, depend on KConfig for parsing // .desktop files - const QStringList parts = value.toStringList(); - QStringList utf8Parts; - utf8Parts.reserve(parts.size()); - Q_FOREACH (const QString &part, parts) { - utf8Parts << QString::fromUtf8(part.toLatin1()); - } - return utf8Parts.join(QStringLiteral(", ")); + return value.toStringList().join(QStringLiteral(", ")); } else { akError() << "Agent desktop file" << file.fileName() << "contains invalid value for key" << key; return QString(); @@ -72,6 +66,7 @@ Q_UNUSED(manager); QSettings file(fileName, QSettings::IniFormat); + file.setIniCodec("UTF-8"); file.beginGroup(QStringLiteral("Desktop Entry")); Q_FOREACH (const QString &key, file.allKeys()) { diff -Nru akonadi-15.12.1/src/server/storage/dbupdate.xml akonadi-15.12.3/src/server/storage/dbupdate.xml --- akonadi-15.12.1/src/server/storage/dbupdate.xml 2015-12-17 22:42:16.000000000 +0000 +++ akonadi-15.12.3/src/server/storage/dbupdate.xml 2016-03-11 00:10:30.000000000 +0000 @@ -256,4 +256,64 @@ WHERE PimItemTable.id IS NULL) + + + + DELETE FROM PimItemFlagRelation WHERE pimItem_id IN ( + SELECT id FROM ( + SELECT pimItem_id AS id FROM PimItemFlagRelation + LEFT JOIN PimItemTable ON PimItemFlagRelation.pimItem_id = PimItemTable.id + WHERE PimItemTable.id IS NULL) x) + + DELETE FROM PimItemFlagRelation WHERE flag_id IN ( + SELECT id FROM ( + SELECT flag_id AS id FROM PimItemFlagRelation + LEFT JOIN FlagTable ON PimItemFlagRelation.flag_id = FlagTable.id + WHERE FlagTable.id IS NULL) x) + + + DELETE FROM PimItemTagRelation WHERE pimItem_id IN ( + SELECT id FROM ( + SELECT pimItem_id AS id FROM PimItemTagRelation + LEFT JOIN PimItemTable ON PimItemTagRelation.pimItem_id = PimItemTable.id + WHERE PimItemTable.id IS NULL) x) + + DELETE FROM PimItemTagRelation WHERE tag_id IN ( + SELECT id FROM ( + SELECT tag_id AS id FROM PimItemTagRelation + LEFT JOIN TagTable ON PimItemTagRelation.tag_id = TagTable.id + WHERE TagTable.id IS NULL) x) + + + DELETE FROM CollectionMimeTypeRelation WHERE collection_id IN ( + SELECT id FROM ( + SELECT collection_id AS id FROM CollectionMimeTypeRelation + LEFT JOIN CollectionTable ON CollectionMimeTypeRelation.collection_id = CollectionTable.id + WHERE CollectionTable.id IS NULL) x) + + DELETE FROM CollectionMimeTypeRelation WHERE mimeType_id IN ( + SELECT id FROM ( + SELECT mimeType_id AS id FROM CollectionMimeTypeRelation + LEFT JOIN MimeTypeTable ON CollectionMimeTypeRelation.mimeType_id = MimeTypeTable.id + WHERE MimeTypeTable.id IS NULL) x) + + + DELETE FROM CollectionPimItemRelation WHERE collection_id IN ( + SELECT id FROM ( + SELECT collection_id AS id FROM CollectionPimItemRelation + LEFT JOIN CollectionTable ON CollectionPimItemRelation.collection_id = CollectionTable.id + WHERE CollectionTable.id IS NULL) x) + + DELETE FROM CollectionPimItemRelation WHERE pimItem_id IN ( + SELECT id FROM ( + SELECT pimItem_id AS id FROM CollectionPimItemRelation + LEFT JOIN PimItemTable ON CollectionPimItemRelation.pimItem_id = PimItemTable.id + WHERE PimItemTable.id IS NULL) x) + + diff -Nru akonadi-15.12.1/src/server/storage/mysql-global.conf akonadi-15.12.3/src/server/storage/mysql-global.conf --- akonadi-15.12.1/src/server/storage/mysql-global.conf 2015-12-17 22:42:16.000000000 +0000 +++ akonadi-15.12.3/src/server/storage/mysql-global.conf 2016-03-11 00:10:30.000000000 +0000 @@ -37,9 +37,9 @@ # use InnoDB for transactions and better crash recovery default_storage_engine=innodb -# memory pool InnoDB uses to store data dictionary information and other internal data structures (default:1M) -# Deprecated in MySQL >= 5.6.3 -innodb_additional_mem_pool_size=1M +# memory pool InnoDB uses to store data dictionary information and other internal data structures (default:8M) +# Deprecated in MySQL >= 5.6.3, removed in 5.7 (works in MariaDB) +# innodb_additional_mem_pool_size=8M # memory buffer InnoDB uses to cache data and indexes of its tables (default:128M) # Larger values means less I/O