diff options
author | Marc Schiffbauer <mschiff@gentoo.org> | 2011-09-14 13:26:33 +0000 |
---|---|---|
committer | Marc Schiffbauer <mschiff@gentoo.org> | 2011-09-14 13:26:33 +0000 |
commit | 587107ac2bdee0e664e4263063631cfa50575fa0 (patch) | |
tree | a659ec2fcbc5154cbe68b2f6937639fc5435a98a /app-office/akonadi-server | |
parent | Version bump. (diff) | |
download | gentoo-2-587107ac2bdee0e664e4263063631cfa50575fa0.tar.gz gentoo-2-587107ac2bdee0e664e4263063631cfa50575fa0.tar.bz2 gentoo-2-587107ac2bdee0e664e4263063631cfa50575fa0.zip |
Revbump: Add patch for crash on shutdown. Fixes #382913.
(Portage version: 2.2.0_alpha55/cvs/Linux x86_64)
Diffstat (limited to 'app-office/akonadi-server')
3 files changed, 173 insertions, 1 deletions
diff --git a/app-office/akonadi-server/ChangeLog b/app-office/akonadi-server/ChangeLog index 34d62bdb1fa3..131675b748e8 100644 --- a/app-office/akonadi-server/ChangeLog +++ b/app-office/akonadi-server/ChangeLog @@ -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) 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 index 000000000000..7958a86fba34 --- /dev/null +++ b/app-office/akonadi-server/akonadi-server-1.6.0-r1.ebuild @@ -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 index 000000000000..49228ef8b8f0 --- /dev/null +++ b/app-office/akonadi-server/files/akonadi-server-1.6.0_Fix_crash_on_agent_launcher_exit.patch @@ -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(); + |