Revbump: Add patch for crash on shutdown. Fixes #382913.
authorMarc Schiffbauer <mschiff@gentoo.org>
Wed, 14 Sep 2011 13:26:33 +0000 (13:26 +0000)
committerMarc Schiffbauer <mschiff@gentoo.org>
Wed, 14 Sep 2011 13:26:33 +0000 (13:26 +0000)
Package-Manager: portage-2.2.0_alpha55/cvs/Linux x86_64

app-office/akonadi-server/ChangeLog
app-office/akonadi-server/Manifest
app-office/akonadi-server/akonadi-server-1.6.0-r1.ebuild [new file with mode: 0644]
app-office/akonadi-server/files/akonadi-server-1.6.0_Fix_crash_on_agent_launcher_exit.patch [new file with mode: 0644]

index 34d62bdb1fa374457795d9ffe484ccb02caf0652..131675b748e89743e5b8b54a86cd606712a2c392 100644 (file)
@@ -1,6 +1,14 @@
 # ChangeLog for app-office/akonadi-server
 # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-office/akonadi-server/ChangeLog,v 1.58 2011/07/27 12:11:20 alexxy Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-office/akonadi-server/ChangeLog,v 1.59 2011/09/14 13:26:33 mschiff Exp $
+
+*akonadi-server-1.6.0-r1 (14 Sep 2011)
+
+  14 Sep 2011; Marc Schiffbauer <mschiff@gentoo.org>
+  +akonadi-server-1.6.0-r1.ebuild,
+  +files/akonadi-server-1.6.0_Fix_crash_on_agent_launcher_exit.patch:
+  Revbump: Add patch for crash on shutdown. Fixes #382913. Thanks to
+  krassboter@googlemail.com.
 
 *akonadi-server-1.6.0 (27 Jul 2011)
 
index 73d25440406422d997aa8190f3341d1a6150e46b..deab6490e6f669868bd14dceb7cdfd53dbc6d58e 100644 (file)
@@ -1,6 +1,7 @@
 -----BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA256
+Hash: SHA1
 
+AUX akonadi-server-1.6.0_Fix_crash_on_agent_launcher_exit.patch 2328 RMD160 0d5f6bed9d0b6991d676c032a7c8da4bf2d53acf SHA1 73a55c8fd032c6da4ad0357c315367ae6f60898c SHA256 82774345dcf7389deed1c255b7ada28d2955c999c6130b8a86fd62e8b3db5c50
 DIST akonadi-1.3.1.tar.bz2 193500 RMD160 487408ad3ac49983b9151aba358225f203ed19a1 SHA1 b6e97634878fe52785f3dec7d6394a18579d4a50 SHA256 4b9e99c20d0195ef7e477b399fed21e0533b9863f66a0650bfbddf18b73676dd
 DIST akonadi-1.5.2.tar.bz2 209050 RMD160 51c4658fef5e9d638b2446d7e62f57d339225a7f SHA1 c5d24a2c553ec26e975ab51f98cf74a8a64af633 SHA256 4a4299ff360998c897a528f557013519cceb29be88ee4f235dd88aad41964e68
 DIST akonadi-1.5.3.tar.bz2 209082 RMD160 be3213f03dff13bdfeb16f78398a405af0b269ac SHA1 37764e0e5bc4769ce691e32a771966278e6c1084 SHA256 0c2a903f5c4de0c077e776de1fabf00e6c8acbebb7ea76442397fd8c4a684e8c
@@ -8,23 +9,14 @@ DIST akonadi-1.6.0.tar.bz2 210533 RMD160 70ba7c4e6fcfec6506beb8d15f52d77d540a874
 EBUILD akonadi-server-1.3.1.ebuild 2150 RMD160 dc2be0043c0c6ed61cc0f336ca48176a5e6d4bf9 SHA1 64cb63a490ab8309d5101fdc3771a44ff29c4c27 SHA256 6b02302e1b7ab386950a600d5454bf12f79ce7f8e52c778e638a7040a296878f
 EBUILD akonadi-server-1.5.2.ebuild 2597 RMD160 92f84951098da64460f8c0cb776cb1fde822c992 SHA1 6054943772c151d69154fb8d0434d09c1efa076e SHA256 eff6cf200949557f263fed37cac5ee9fa33817a9996ccc675fd81cffd294386b
 EBUILD akonadi-server-1.5.3.ebuild 2600 RMD160 e12709b79c36ac0cec9ce06b95d95f93172756d2 SHA1 b0ab56df66ee098a8df546770fbc2c1567064d0c SHA256 fb0062433afc364bf0e9ec050c4cf84fa72de5da9bbf0e4415e30ddea5cad240
+EBUILD akonadi-server-1.6.0-r1.ebuild 2679 RMD160 b36162ab499e1451994578f638f22a1d6266cccb SHA1 4cf348c756559e621ceb647f6e6f7f61d8e2d348 SHA256 d24e28328e0e88b5a407134a21654ee754875c268f681a3eedf81805fdb19777
 EBUILD akonadi-server-1.6.0.ebuild 2603 RMD160 3080a6cbff90acbbafb21c46afbae7bc9ac32520 SHA1 4400dc1355d94e3a25b78cad361e4134fa1b30d8 SHA256 66ea95f2e81825315c58b0fd838808c9e2c4a82172e28363a7cfa0dbddef4ce9
-MISC ChangeLog 8671 RMD160 a16d7caf88278d415c38bfdd3c1c74adbf4b1e56 SHA1 d80d9498004dc8bc1b357081e0c9fa700c123d92 SHA256 54098eea7d0b97e2f528ee76fa5fd5eebe87a8d722c7cef1066111ba622e534d
+MISC ChangeLog 8969 RMD160 5022f5caa61e95326f229a4060b90d3026dff293 SHA1 6cff3dd4da93baeaef78dd14d95bef6008b984b3 SHA256 6b43facb6298bbd7afe5708eca8842785528d021fe8a540b117a7d6cc494b0c2
 MISC metadata.xml 236 RMD160 c5cc6cb9745f9f6e3c7358482117892cbc866eb2 SHA1 d1bd263bd36cfc701e7ae12fb77e24d3f6556a88 SHA256 3bf214b7d5dabbbd8f2d607f6166647d91c5d0b7f166a4d5615da31995da06b6
 -----BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.17 (GNU/Linux)
+Version: GnuPG v2.0.18 (GNU/Linux)
 
-iQIcBAEBCAAGBQJOMABtAAoJEOf+E+/4L5LmKHMP/jAdaa9phcKgNJWVODy1rjK9
-hXQOwpoXKsZGNqtAB20G1YjQHHik8lFr2tKJ+jC3qzCnuArij8+eU6Uv3LOKLo3b
-AiVZVwilPIjlNfnfhnZn1oQJXJcf02XQdMgcnPfRERTNeaWbEu2UTzJKUdVGRnZB
-BLBjDS/Yi3tL+QXrjHS3IUJuG3VDdpvdjZJIn9iAKB0IW6q67vvrb/rmaubLwk4n
-n3pk2E0rnDeY+RQQ8kDSvCegzO0BG7v4dAuek+UfT1y9rX4irDaFkrdqh5HsgTGK
-w8AmdCQaAwrPbL+5vTzT6godG29573SnP6hpmFT+9yPkKQz5cFpGOzPeXh75pypb
-3AsbYjWQxgLNMqPuFl6JVz/R1rLpHRRWjpeOqQPhuCzEuY2xwUr9C7Lma1w4fY5n
-M1JQkpUaWrMlXtJyGCrvKxYqo11lBZAG6PfLuaNkLlWr1OTywh6Oe1gLxwcTAjPI
-3Nb184R8AaC7YDuQJ4dbb51KSnILx9Is+lVKBfJM51wkg2ps9i538QaG6K/Pxv3p
-8KrgnMC8+VaSSwAZwlC++TBi7WtcTNK5g1bZPzB0b+t0mcwQCTU8E0O0xJDC8GGi
-vMODakBZaCjdPCO2RRcdqwsbnT60wQQnyfxqwRTtnnvmYckVA2XfkF1MonbGFVRD
-B/zqgB88q1aUw10u7pQE
-=L5yt
+iD8DBQFOcKuSKWxsyjWmQTQRAtfcAJwLgaAhZS4YKheidSaUz0IUeR0ydgCgsoZ2
+Qv5NMEVz0vuqfh0eSGprjbM=
+=bXaX
 -----END PGP SIGNATURE-----
diff --git a/app-office/akonadi-server/akonadi-server-1.6.0-r1.ebuild b/app-office/akonadi-server/akonadi-server-1.6.0-r1.ebuild
new file mode 100644 (file)
index 0000000..7958a86
--- /dev/null
@@ -0,0 +1,100 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-office/akonadi-server/akonadi-server-1.6.0-r1.ebuild,v 1.1 2011/09/14 13:26:33 mschiff Exp $
+
+EAPI=4
+
+inherit cmake-utils
+
+DESCRIPTION="The server part of Akonadi"
+HOMEPAGE="http://pim.kde.org/akonadi"
+SRC_URI="mirror://kde/stable/${PN/-server/}/src/${P/-server/}.tar.bz2"
+
+LICENSE="LGPL-2.1"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+SLOT="0"
+IUSE="mysql postgres +sqlite test"
+
+CDEPEND="
+       dev-libs/boost
+       >=dev-libs/soprano-2.6.51
+       >=x11-libs/qt-gui-4.5.0:4[dbus]
+       >=x11-libs/qt-sql-4.5.0:4[mysql?,postgres?]
+       >=x11-libs/qt-test-4.5.0:4
+       x11-misc/shared-mime-info
+"
+DEPEND="${CDEPEND}
+       dev-libs/libxslt
+       >=dev-util/automoc-0.9.88
+"
+RDEPEND="${CDEPEND}
+       postgres? ( dev-db/postgresql-server )
+"
+
+REQUIRED_USE="|| ( sqlite mysql postgres )"
+
+PATCHES=(
+       "${FILESDIR}/${P}_Fix_crash_on_agent_launcher_exit.patch"
+)
+
+S=${WORKDIR}/${P/-server/}
+
+pkg_setup() {
+       # Set default storage backend in order: SQLite, MySQL, PostgreSQL
+       if use sqlite; then
+               DRIVER="QSQLITE3"
+               AVAILABLE+=" ${driver}"
+       elif use mysql; then
+               DRIVER="QMYSQL"
+               AVAILABLE+=" ${driver}"
+       elif use postgres; then
+               DRIVER="QPSQL"
+               AVAILABLE+=" ${driver}"
+       fi
+
+       # Notify about driver name change
+       if use sqlite && has_version "<=${CATEGORY}/${PN}-1.4.0[sqlite]"; then
+               ewarn
+               ewarn "SQLite driver name changed from QSQLITE to QSQLITE3."
+               ewarn "Please edit your ~/.config/akonadi/akonadiserverrc."
+       fi
+
+       # Notify about MySQL not being default anymore
+       if ! use mysql && has_version "<=${CATEGORY}/${PN}-1.4.0[mysql]"; then
+               ewarn
+               ewarn "MySQL driver is not enabled by default in Gentoo anymore."
+               ewarn "If you intend to use it, please enable mysql USE flag and reinstall"
+               ewarn "${CATEGORY}/${PN}."
+               ewarn "Otherwise select different driver in your ~/.config/akonadi/akonadiserverrc."
+               ewarn "Available drivers are:${AVAILABLE}"
+       fi
+}
+
+src_configure() {
+       local mycmakeargs=(
+               "-DAKONADI_USE_STRIGI_SEARCH=OFF"
+               $(cmake-utils_use test AKONADI_BUILD_TESTS)
+               $(cmake-utils_use sqlite INSTALL_QSQLITE_IN_QT_PREFIX)
+       )
+
+       cmake-utils_src_configure
+}
+
+src_install() {
+       # Who knows, maybe it accidentally fixes our permission issues
+       cat <<-EOF > "${T}"/akonadiserverrc
+[%General]
+Driver=${DRIVER}
+EOF
+       insinto /usr/share/config/akonadi
+       doins "${T}"/akonadiserverrc || die "doins failed"
+
+       cmake-utils_src_install
+}
+
+pkg_postinst() {
+       echo
+       elog "${DRIVER} has been set as your default akonadi storage backend."
+       elog "You can override it in your ~/.config/akonadi/akonadiserverrc."
+       elog "Available drivers are: ${AVAILABLE}"
+}
diff --git a/app-office/akonadi-server/files/akonadi-server-1.6.0_Fix_crash_on_agent_launcher_exit.patch b/app-office/akonadi-server/files/akonadi-server-1.6.0_Fix_crash_on_agent_launcher_exit.patch
new file mode 100644 (file)
index 0000000..49228ef
--- /dev/null
@@ -0,0 +1,64 @@
+commit c8e45b10c32679bf070af5b7ad9a22b91eb9a02c
+Author: Sergio Martins <iamsergio@gmail.com>
+Date:   Mon Sep 12 13:48:33 2011 +0100
+
+    Fix crash on agent_launcher exit.
+    
+    Don't unload plugins here. They will be unloaded on application exit,
+    so it's redundant.
+    
+    Seems they are being unloaded too early, before QThreadStorage
+    cleanup occurs:
+    
+    ==18802== Invalid read of size 8
+    ==18802==    at 0x53178AE: QThreadStorage<QFontCache*>::deleteData(void*) (in
+    /data/installation/qt/qt-4.7/lib/libQtGui.so.4.7.1)
+    ==18802==    by 0x5E8F8CF: QThreadStorageData::set(void*)
+    (qthreadstorage.cpp:165)
+    ==18802==    by 0x5317940: void
+    qThreadStorage_setLocalData<QFontCache>(QThreadStorageData&, QFontCache**)
+    (qthreadstorage.h:92)
+    ==18802==    by 0x53165BA:
+    QThreadStorage<QFontCache*>::setLocalData(QFontCache*) (qthreadstorage.h:148)
+    ==18802==    by 0x531407A: QFontCache::cleanup() (qfont.cpp:2632)
+    ==18802==    by 0x5406536: QFont::cleanup() (qfont_x11.cpp:182)
+    ==18802==    by 0x5104E35: qt_cleanup() (qapplication_x11.cpp:2647)
+    ==18802==    by 0x50603B2: QApplication::~QApplication()
+    (qapplication.cpp:1172)
+    ==18802==    by 0x41B1F6: main (agentlauncher.cpp:28)
+    ==18802==  Address 0x11a090b0 is not stack'd, malloc'd or (recently) free'd
+    
+    CCBUG: 261788
+
+diff --git a/agentserver/agentpluginloader.cpp b/agentserver/agentpluginloader.cpp
+index 2d62d3b..456a124 100644
+--- a/agentserver/agentpluginloader.cpp
++++ b/agentserver/agentpluginloader.cpp
+@@ -25,13 +25,8 @@ using namespace Akonadi;
+ AgentPluginLoader::~AgentPluginLoader()
+ {
+-  QHash<QString, QPluginLoader*>::iterator it = m_pluginLoaders.begin();
+-  while ( it != m_pluginLoaders.end() ) {
+-    it.value()->unload();
+-    ++it;
+-  }
+-
+   qDeleteAll( m_pluginLoaders );
++  m_pluginLoaders.clear();
+ }
+ QPluginLoader *AgentPluginLoader::load( const QString &pluginName )
+diff --git a/agentserver/agentpluginloader.h b/agentserver/agentpluginloader.h
+index 77f5de9..c8c815f 100644
+--- a/agentserver/agentpluginloader.h
++++ b/agentserver/agentpluginloader.h
+@@ -26,7 +26,7 @@ class AgentPluginLoader
+ {
+   public:
+     /**
+-      Unloads and deletes all instantiated QPluginLoaders.
++      Deletes all instantiated QPluginLoaders.
+      */
+     ~AgentPluginLoader();