- Fix two serious bugs with local MySQL backend:
* let Akonadi install default 'mysql' database; * lower 'wait_timeout' to avoid overflow and avoid premature connection closing. - Add update instructions to UPDATING. [1] - Convert to OPTIONSng. - Bump PORTREVISION. KMail 2 and other Akonadi-enabled programs are now working successfully. Thanks to Dwayne MacKinnon and Mel Flynn who helped investigating the bug. Reviewed by: rakuco [1]
This commit is contained in:
parent
42201a3a02
commit
eb90251931
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=299296
29
UPDATING
29
UPDATING
@ -5,6 +5,35 @@ they are unavoidable.
|
||||
You should get into the habit of checking this file for changes each time
|
||||
you update your ports collection, before attempting any port upgrades.
|
||||
|
||||
20120615:
|
||||
AFFECTS: users of databases/akonadi
|
||||
AUTHOR: kde@FreeBSD.org
|
||||
|
||||
The latest Akonadi update includes critical bug fixes. Manual
|
||||
intervention is required for people using local MySQL database (the
|
||||
default configuration) as backend:
|
||||
|
||||
$ akonadictl stop
|
||||
|
||||
Wait a bit, and make sure that akonadiserver and akonadi_control are
|
||||
not running. Kill them if needed. Then, you have two alternatives:
|
||||
|
||||
$ mysql_install_db --force \
|
||||
--defaults-file=~/.local/share/akonadi/mysql.conf \
|
||||
--datadir=~/.local/share/akonadi/db_data \
|
||||
--basedir=$(dirname `dirname $(which mysql_install_db)`)
|
||||
$ rm ~/.local/share/akonadi/mysql.conf
|
||||
|
||||
...or...
|
||||
|
||||
$ rm -r ~/.local/share/akonadi
|
||||
|
||||
In the latter case, Akonadi will have to recache your personal data
|
||||
(might take a while). Akonadi is only a cache, no data will be lost.
|
||||
Then:
|
||||
|
||||
$ akonadictl start
|
||||
|
||||
20120613:
|
||||
AFFECTS: users of graphics/djvulibre and graphics/djvulibre-nox11
|
||||
AUTHOR: bf@FreeBSD.org
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
PORTNAME= akonadi
|
||||
PORTVERSION= 1.7.2
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
CATEGORIES= databases kde ipv6
|
||||
MASTER_SITES= ${MASTER_SITE_KDE}
|
||||
MASTER_SITE_SUBDIR= stable/${PORTNAME}/src/
|
||||
@ -23,11 +23,11 @@ LIB_DEPENDS= boost_thread:${PORTSDIR}/devel/boost-libs
|
||||
LIB_DEPENDS+= execinfo.1:${PORTSDIR}/devel/libexecinfo
|
||||
BUILD_DEPENDS= xsltproc:${PORTSDIR}/textproc/libxslt
|
||||
|
||||
USE_BZIP2= yes
|
||||
USE_QT4= corelib network qtestlib dbus gui sql \
|
||||
qmake_build moc_build rcc_build uic_build
|
||||
USE_KDE4= kdehier kdeprefix sharedmime automoc4 soprano
|
||||
KDE4_BUILDENV= yes
|
||||
USE_QT4= dbus gui network qtestlib sql \
|
||||
moc_build qmake_build rcc_build uic_build
|
||||
USE_BZIP2= yes
|
||||
CMAKE_ARGS+= -DAKONADI_BUILD_TESTS:BOOL=FALSE \
|
||||
-DINSTALL_QSQLITE_IN_QT_PREFIX:BOOL=TRUE \
|
||||
-DCMAKE_REQUIRED_INCLUDES:STRING="${LOCALBASE}/include"
|
||||
@ -35,26 +35,31 @@ MAKE_JOBS_UNSAFE= yes
|
||||
|
||||
PLIST_SUB+= QT_PREFIX=${QT_PREFIX}
|
||||
|
||||
OPTIONS= MYSQL "Install MySQL plugin and server (recommended)" on \
|
||||
PGSQL "Install PostgreSQL plugin" off \
|
||||
SQLITE "Enable SQLite backend (unused)" off
|
||||
OPTIONS_MULTI= BACKEND
|
||||
OPTIONS_MULTI_BACKEND= MYSQL PGSQL SQLITE
|
||||
|
||||
MYSQL_DESC= Install MySQL Qt plugin and server
|
||||
PGSQL_DESC= Install PostgreSQL Qt plugin
|
||||
SQLITE_DESC= Enable SQLite backend (unused)
|
||||
|
||||
OPTIONS_DEFAULT= MYSQL
|
||||
|
||||
.include <bsd.port.options.mk>
|
||||
|
||||
.ifndef(WITHOUT_MYSQL)
|
||||
.if ${PORT_OPTIONS:MMYSQL}
|
||||
USE_MYSQL= server
|
||||
USE_QT4+= sql-mysql_run
|
||||
.endif
|
||||
|
||||
.ifdef(WITH_PGSQL)
|
||||
.if ${PORT_OPTIONS:MPGSQL}
|
||||
# Do not add a dependency on PostgreSQL server as someone preferring
|
||||
# it over MySQL might like to use some advanced configuration like a
|
||||
# it over MySQL might like to use some advanced configuration, like a
|
||||
# remote server.
|
||||
#USE_PGSQL= server
|
||||
USE_QT4+= sql-pgsql_run
|
||||
.endif
|
||||
|
||||
.ifdef(WITH_SQLITE)
|
||||
.if ${PORT_OPTIONS:MSQLITE}
|
||||
USE_SQLITE= 3
|
||||
PLIST_SUB+= SQLITE=""
|
||||
.else
|
||||
@ -62,7 +67,7 @@ PLIST_SUB+= SQLITE="@comment "
|
||||
.endif
|
||||
|
||||
post-patch:
|
||||
.ifndef(WITH_SQLITE)
|
||||
.if ${PORT_OPTIONS:MSQLITE} == ""
|
||||
${REINPLACE_CMD} -e '/find_package(Sqlite)/ d' \
|
||||
${PATCH_WRKSRC}/CMakeLists.txt
|
||||
.endif
|
||||
@ -70,6 +75,12 @@ post-patch:
|
||||
${PATCH_WRKSRC}/CMakeLists.txt
|
||||
${REINPLACE_CMD} -e '/find_program/ s|mysqld|mysqld_safe ${LOCALBASE}/bin|g' \
|
||||
${PATCH_WRKSRC}/server/CMakeLists.txt
|
||||
${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \
|
||||
${PATCH_WRKSRC}/server/src/storage/dbconfigmysql.cpp
|
||||
# MySQL seems to have this limit on FreeBSD (same of Windows
|
||||
# but undocumented and unstable).
|
||||
${REINPLACE_CMD} -e '/wait_timeout/ s|31536000|2147483|' \
|
||||
${PATCH_WRKSRC}/server/src/storage/*.conf
|
||||
# Prevent updating MIME during build.
|
||||
${REINPLACE_CMD} -e '/^update_xdg_mimetypes/ d; /SharedMimeInfo/ d' \
|
||||
${PATCH_WRKSRC}/CMakeLists.txt
|
||||
|
@ -0,0 +1,11 @@
|
||||
--- ./server/src/storage/dbconfigmysql.cpp.orig 2012-06-13 02:11:19.473370856 +0200
|
||||
+++ ./server/src/storage/dbconfigmysql.cpp 2012-06-13 02:11:50.113468897 +0200
|
||||
@@ -242,7 +242,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=%%LOCALBASE%%" );
|
||||
QProcess::execute( mMysqlInstallDbPath, arguments );
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user