commit: 0d2f5ff0189b776ae2665383af28cdc79e16df86 Author: Michael Palimaka <kensington <AT> gentoo <DOT> org> AuthorDate: Sat Aug 12 13:23:24 2017 +0000 Commit: Michael Palimaka <kensington <AT> gentoo <DOT> org> CommitDate: Sat Aug 12 13:47:37 2017 +0000 URL: https://gitweb.gentoo.org/proj/kde-sunset.git/commit/?id=0d2f5ff0
kde-apps/akonadi: import from main tree Package-Manager: Portage-2.3.6, Repoman-2.3.3 .../akonadi/akonadi-1.13.1_pre20160203-r1.ebuild | 126 +++++++++++++++++++++ .../files/akonadi-1.13.0-mysql56-crash.patch | 20 ++++ .../akonadi/files/akonadi-1.13.1-mysql.conf.patch | 38 +++++++ .../files/akonadi-17.03.80-mysql56-crash.patch | 40 +++++++ kde-apps/akonadi/metadata.xml | 4 + 5 files changed, 228 insertions(+) diff --git a/kde-apps/akonadi/akonadi-1.13.1_pre20160203-r1.ebuild b/kde-apps/akonadi/akonadi-1.13.1_pre20160203-r1.ebuild new file mode 100644 index 0000000..bdc92a8 --- /dev/null +++ b/kde-apps/akonadi/akonadi-1.13.1_pre20160203-r1.ebuild @@ -0,0 +1,126 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +if [[ ${PV} = *_pre* ]]; then + # KDE quickgit https certificate issue + # COMMIT_ID="18ed37d89b8185ac15a8bfe245de8a88d17f2c64" + # SRC_URI="https://quickgit.kde.org/?p=${PN}.git&a=snapshot&h=${COMMIT_ID}&fmt=tgz -> ${P}.tar.gz" + SRC_URI="https://dev.gentoo.org/~johu/distfiles/${P}.tar.gz" + S="${WORKDIR}/${PN}" +else + SRC_URI="mirror://kde/stable/${PN}/src/${P}.tar.bz2" +fi +inherit cmake-utils + +DESCRIPTION="The server part of Akonadi" +HOMEPAGE="https://pim.kde.org/akonadi" + +LICENSE="LGPL-2.1" +SLOT="4" +KEYWORDS="amd64 ~arm x86" +IUSE="+mysql postgres sqlite test" + +REQUIRED_USE="|| ( sqlite mysql postgres )" + +CDEPEND=" + dev-libs/boost:= + >=dev-qt/qtcore-4.8.5:4 + >=dev-qt/qtdbus-4.8.5:4 + >=dev-qt/qtgui-4.8.5:4 + >=dev-qt/qtsql-4.8.5:4[mysql?,postgres?] + >=dev-qt/qttest-4.8.5:4 + x11-misc/shared-mime-info + sqlite? ( dev-db/sqlite:3 ) +" +DEPEND="${CDEPEND} + dev-libs/libxslt + >=dev-util/automoc-0.9.88 + test? ( sys-apps/dbus ) +" +RDEPEND="${CDEPEND} + mysql? ( virtual/mysql ) + postgres? ( dev-db/postgresql[server] ) +" + +RESTRICT="test" + +PATCHES=( + "${FILESDIR}/${PN}-1.13.0-mysql56-crash.patch" + "${FILESDIR}/${PN}-1.13.1-mysql.conf.patch" +) + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] && tc-is-gcc; then + [[ $(gcc-major-version) -lt 4 ]] || \ + ( [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 7 ]] ) \ + && die "Sorry, but gcc-4.6 and earlier won't work (see bug #520102)." + fi +} + +pkg_setup() { + # Set default storage backend in order: MySQL, SQLite PostgreSQL + # reverse driver check to keep the order + if use postgres; then + DRIVER="QPSQL" + AVAILABLE+=" ${DRIVER}" + fi + + if use sqlite; then + DRIVER="QSQLITE3" + AVAILABLE+=" ${DRIVER}" + fi + + if use mysql; then + DRIVER="QMYSQL" + AVAILABLE+=" ${DRIVER}" + fi + + # Notify about MySQL is recommend by upstream + if use sqlite || has_version "<${CATEGORY}/${P}[sqlite]"; then + ewarn + ewarn "We strongly recommend you change your Akonadi database backend to MySQL in your" + ewarn "user configuration. This is the backend recommended by KDE upstream. PostgreSQL" + ewarn "is also known to work very well but requires manual dump and import on major" + ewarn "upgrades of the DB." + ewarn "You can select the backend in your ~/.config/akonadi/akonadiserverrc." + ewarn "Available drivers are:${AVAILABLE}" + ewarn + fi +} + +src_configure() { + local mycmakeargs=( + -DINSTALL_QSQLITE_IN_QT_PREFIX=ON + -DWITH_SOPRANO=FALSE + -DAKONADI_BUILD_TESTS=$(usex test) + -DAKONADI_BUILD_QSQLITE=$(usex sqlite) + -DQT5_BUILD=OFF + ) + + cmake-utils_src_configure +} + +src_test() { + export $(dbus-launch) + cmake-utils_src_test +} + +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 + + cmake-utils_src_install +} + +pkg_postinst() { + 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/kde-apps/akonadi/files/akonadi-1.13.0-mysql56-crash.patch b/kde-apps/akonadi/files/akonadi-1.13.0-mysql56-crash.patch new file mode 100644 index 0000000..2049618 --- /dev/null +++ b/kde-apps/akonadi/files/akonadi-1.13.0-mysql56-crash.patch @@ -0,0 +1,20 @@ +diff -aruN akonadi-1.13.0.old/server/src/storage/dbconfigmysql.cpp akonadi-1.13.0/server/src/storage/dbconfigmysql.cpp +--- akonadi-1.13.0.old/server/src/storage/dbconfigmysql.cpp 2014-08-10 06:38:58.000000000 -0400 ++++ akonadi-1.13.0/server/src/storage/dbconfigmysql.cpp 2015-01-08 15:08:36.906134212 -0500 +@@ -76,6 +76,7 @@ + << QLatin1String( "/usr/local/sbin" ) + << QLatin1String( "/usr/local/libexec" ) + << QLatin1String( "/usr/libexec" ) ++ << QLatin1String( "/usr/share/mysql/scripts" ) + << QLatin1String( "/opt/mysql/libexec" ) + << QLatin1String( "/opt/local/lib/mysql5/bin" ) + << QLatin1String( "/opt/mysql/sbin" ); +@@ -278,7 +279,7 @@ + // first run, some MySQL versions need a mysql_install_db run for that + const QString confFile = XdgBaseDirs::findResourceFile( "config", QLatin1String( "akonadi/mysql-global.conf" ) ); + if ( QDir( dataDir ).entryList( QDir::NoDotAndDotDot | QDir::AllEntries ).isEmpty() && !mMysqlInstallDbPath.isEmpty() ) { +- const QStringList arguments = QStringList() << QString::fromLatin1( "--force" ) << QString::fromLatin1( "--defaults-file=%1" ).arg( confFile ) << QString::fromLatin1( "--datadir=%1/" ).arg( dataDir ); ++ const QStringList arguments = QStringList() << QString::fromLatin1( "--force" ) << QString::fromLatin1( "--defaults-file=%1" ).arg( confFile ) << QString::fromLatin1( "--datadir=%1/" ).arg( dataDir ) << QString::fromLatin1( "--basedir=/usr" ) ; + QProcess::execute( mMysqlInstallDbPath, arguments ); + } + diff --git a/kde-apps/akonadi/files/akonadi-1.13.1-mysql.conf.patch b/kde-apps/akonadi/files/akonadi-1.13.1-mysql.conf.patch new file mode 100644 index 0000000..a090636 --- /dev/null +++ b/kde-apps/akonadi/files/akonadi-1.13.1-mysql.conf.patch @@ -0,0 +1,38 @@ +From: Daniel Vrátil <dvra...@kde.org> +Date: Tue, 16 Feb 2016 17:26:22 +0000 +Subject: Drop mysql.conf option removed in MySQL 5.7 +X-Git-Url: http://quickgit.kde.org/?p=akonadi.git&a=commitdiff&h=9a9f7eaa38023f70c6fa85a87359a487ccf7a48c +--- +Drop mysql.conf option removed in MySQL 5.7 + +innodb_additional_mem_pool_size option has been deprecated in MySQL 5.6 +and removed in 5.7 so MySQL will no longer start it the option is present +in mysql.conf. + +The option still seems to be supported by MariaDB, but the default value +we had in the mysql.conf was below the minimum allowed value, so the harm +in removing the option for MariaDB should be minimal. + +If options supported by MySQL and MariaDB begin to diverge more in the future +we might consider having separate config files for each database. + +* 2016-02-21: Adjusted path for 1.13 branch +--- + + +--- a/server/src/storage/mysql-global.conf ++++ b/server/src/storage/mysql-global.conf +@@ -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 + diff --git a/kde-apps/akonadi/files/akonadi-17.03.80-mysql56-crash.patch b/kde-apps/akonadi/files/akonadi-17.03.80-mysql56-crash.patch new file mode 100644 index 0000000..0b5e381 --- /dev/null +++ b/kde-apps/akonadi/files/akonadi-17.03.80-mysql56-crash.patch @@ -0,0 +1,40 @@ +Gentoo-bug: 530012 + +diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp +index 50421714d..dfae09c20 100644 +--- a/src/server/storage/dbconfigmysql.cpp ++++ b/src/server/storage/dbconfigmysql.cpp +@@ -81,6 +81,7 @@ bool DbConfigMysql::init(QSettings &settings) + << QStringLiteral("/usr/local/sbin") + << QStringLiteral("/usr/local/libexec") + << QStringLiteral("/usr/libexec") ++ << QStringLiteral("/usr/share/mysql/scripts") + << QStringLiteral("/opt/mysql/libexec") + << QStringLiteral("/opt/local/lib/mysql5/bin") + << QStringLiteral("/opt/mysql/sbin"); +@@ -511,7 +512,7 @@ bool DbConfigMysql::initializeMariaDBDatabase(const QString &confFile, const QSt + return 0 == execute(mMysqlInstallDbPath, { + QStringLiteral("--defaults-file=%1").arg(confFile), + QStringLiteral("--force"), +- QStringLiteral("--basedir=%1").arg(baseDir), ++ QStringLiteral("--basedir=/usr"), + QStringLiteral("--datadir=%1/").arg(dataDir) + }); + } +@@ -525,6 +526,7 @@ bool DbConfigMysql::initializeMySQL5_7_6Database(const QString &confFile, const + return 0 == execute(mMysqldPath, { + QStringLiteral("--defaults-file=%1").arg(confFile), + QStringLiteral("--initialize"), ++ QStringLiteral("--basedir=/usr"), + QStringLiteral("--datadir=%1/").arg(dataDir) + }); + } +@@ -539,7 +541,7 @@ bool DbConfigMysql::initializeMySQLDatabase(const QString &confFile, const QStri + // Don't use --force, it has been removed in MySQL 5.7.5 + return 0 == execute(mMysqlInstallDbPath, { + QStringLiteral("--defaults-file=%1").arg(confFile), +- QStringLiteral("--basedir=%1").arg(baseDir), ++ QStringLiteral("--basedir=/usr"), + QStringLiteral("--datadir=%1/").arg(dataDir) + }); + } diff --git a/kde-apps/akonadi/metadata.xml b/kde-apps/akonadi/metadata.xml new file mode 100644 index 0000000..097975e --- /dev/null +++ b/kde-apps/akonadi/metadata.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +</pkgmetadata>