summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Schiffbauer <mschiff@gentoo.org>2011-09-14 13:26:33 +0000
committerMarc Schiffbauer <mschiff@gentoo.org>2011-09-14 13:26:33 +0000
commit587107ac2bdee0e664e4263063631cfa50575fa0 (patch)
treea659ec2fcbc5154cbe68b2f6937639fc5435a98a /app-office/akonadi-server
parentVersion bump. (diff)
downloadgentoo-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')
-rw-r--r--app-office/akonadi-server/ChangeLog10
-rw-r--r--app-office/akonadi-server/akonadi-server-1.6.0-r1.ebuild100
-rw-r--r--app-office/akonadi-server/files/akonadi-server-1.6.0_Fix_crash_on_agent_launcher_exit.patch64
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();
+