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>

Reply via email to