Date: Sunday, July 25, 2021 @ 14:05:32 Author: arojas Revision: 420386
archrelease: copy trunk to extra-x86_64 Added: digikam/repos/extra-x86_64/49ee18fb.patch (from rev 420385, digikam/trunk/49ee18fb.patch) digikam/repos/extra-x86_64/PKGBUILD (from rev 420385, digikam/trunk/PKGBUILD) Deleted: digikam/repos/extra-x86_64/PKGBUILD ----------------+ 49ee18fb.patch | 193 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ PKGBUILD | 86 +++++++++++++----------- 2 files changed, 239 insertions(+), 40 deletions(-) Copied: digikam/repos/extra-x86_64/49ee18fb.patch (from rev 420385, digikam/trunk/49ee18fb.patch) =================================================================== --- 49ee18fb.patch (rev 0) +++ 49ee18fb.patch 2021-07-25 14:05:32 UTC (rev 420386) @@ -0,0 +1,193 @@ +From 49ee18fbf2220baedbc015f51b74f67930115287 Mon Sep 17 00:00:00 2001 +From: Maik Qualmann <metzping...@gmail.com> +Date: Sun, 25 Jul 2021 15:44:56 +0200 +Subject: [PATCH] perform a database upgrade if the server / database version + is different BUGS: 440212 BUGS: 440030 FIXED-IN: 7.4.0 + +diff --git a/core/libs/database/server/databaseserver.cpp b/core/libs/database/server/databaseserver.cpp +index 7133148379..cebe9d0f6a 100644 +--- a/core/libs/database/server/databaseserver.cpp ++++ b/core/libs/database/server/databaseserver.cpp +@@ -73,6 +73,7 @@ public: + QString fileDataDir; + QString actualConfig; + QString globalConfig; ++ QString dbVersion; + }; + + DatabaseServer::DatabaseServer(const DbEngineParameters& params, DatabaseServerStarter* const parent) +@@ -224,8 +225,6 @@ bool DatabaseServer::isRunning() const + + DatabaseServerError DatabaseServer::startMysqlDatabaseProcess() + { +- DatabaseServerError result; +- + DatabaseServerError error = checkDatabaseDirs(); + + if (error.getErrorType() != DatabaseServerError::NoErrors) +@@ -265,7 +264,14 @@ DatabaseServerError DatabaseServer::startMysqlDatabaseProcess() + + databaseServerStateEnum = running; + +- return result; ++ error = checkUpgradeMysqlDatabase(); ++ ++ if (error.getErrorType() != DatabaseServerError::NoErrors) ++ { ++ return error; ++ } ++ ++ return error; + } + + DatabaseServerError DatabaseServer::checkDatabaseDirs() const +@@ -677,6 +683,25 @@ DatabaseServerError DatabaseServer::initMysqlDatabase() const + + db.close(); + } ++ else ++ { ++ if (query.exec(QLatin1String("SELECT VERSION();"))) ++ { ++ if (query.next() && (query.lastError().type() == QSqlError::NoError)) ++ { ++ ++ QRegExp reg(QLatin1String("\\d+\\.\\d+\\.\\d+")); ++ ++ if (reg.indexIn(query.value(0).toString()) != -1) ++ { ++ d->dbVersion = reg.capturedTexts().first(); ++ ++ qCDebug(DIGIKAM_DATABASESERVER_LOG) << "Database version:" ++ << d->dbVersion; ++ } ++ } ++ } ++ } + } + + QSqlDatabase::removeDatabase(initCon); +@@ -684,6 +709,104 @@ DatabaseServerError DatabaseServer::initMysqlDatabase() const + return result; + } + ++DatabaseServerError DatabaseServer::checkUpgradeMysqlDatabase() ++{ ++ DatabaseServerError result; ++ ++ // Synthesize the server command line arguments ++ ++ QStringList versionCmdArgs; ++ versionCmdArgs << QLatin1String("--version"); ++ ++ // Start the database server ++ ++ QProcess* const versionProcess = new QProcess(); ++ versionProcess->setProcessEnvironment(adjustedEnvironmentForAppImage()); ++ versionProcess->start(d->mysqldCmd, versionCmdArgs); ++ ++ if (!versionProcess->waitForFinished() || (versionProcess->exitCode() != 0)) ++ { ++ QString errorMsg = processErrorLog(versionProcess, ++ i18n("Could not get mysql server version.")); ++ ++ delete versionProcess; ++ ++ return DatabaseServerError(DatabaseServerError::StartError, errorMsg); ++ } ++ ++ QString serverVersion; ++ QRegExp reg(QLatin1String("\\d+\\.\\d+\\.\\d+")); ++ ++ if (reg.indexIn(QString::fromUtf8(versionProcess->readAllStandardOutput())) != -1) ++ { ++ serverVersion = reg.capturedTexts().first(); ++ ++ qCDebug(DIGIKAM_DATABASESERVER_LOG) << "MySQL server version:" ++ << serverVersion; ++ } ++ ++ delete versionProcess; ++ ++ if (serverVersion == d->dbVersion) ++ { ++ return result; ++ } ++ ++ // Synthesize the mysql upgrade command line arguments ++ ++ QStringList upgradeCmdArgs; ++ ++#ifdef Q_OS_WIN ++ ++ upgradeCmdArgs << QLatin1String("--port=3307"); ++ ++#else ++ ++ upgradeCmdArgs << QString::fromLatin1("--socket=%1/mysql.socket").arg(d->miscDir); ++ ++#endif ++ ++ // Start the upgrade ptogram ++ ++ QUrl upgradeUrl = QUrl::fromLocalFile(d->mysqlAdminPath).adjusted(QUrl::RemoveFilename); ++ upgradeUrl.setPath(upgradeUrl.path() + QLatin1String("mysql_upgrade")); ++ ++ QProcess* const upgradeProcess = new QProcess(); ++ upgradeProcess->setProcessEnvironment(adjustedEnvironmentForAppImage()); ++ upgradeProcess->start(upgradeUrl.toLocalFile(), upgradeCmdArgs); ++ ++ qCDebug(DIGIKAM_DATABASESERVER_LOG) << "Upgrade database:" ++ << upgradeProcess->program() ++ << upgradeProcess->arguments(); ++ ++ if (!upgradeProcess->waitForFinished() || (upgradeProcess->exitCode() != 0)) ++ { ++ QString errorMsg = processErrorLog(upgradeProcess, ++ i18n("Could not upgrade database.")); ++ ++ delete upgradeProcess; ++ ++ return DatabaseServerError(DatabaseServerError::StartError, errorMsg); ++ } ++ ++ delete upgradeProcess; ++ ++ // Restart the database server. ++ ++ stopDatabaseProcess(); ++ ++ result = startMysqlServer(); ++ ++ if (result.getErrorType() != DatabaseServerError::NoErrors) ++ { ++ return result; ++ } ++ ++ result = initMysqlDatabase(); ++ ++ return result; ++} ++ + QString DatabaseServer::getcurrentAccountUserName() const + { + QString name = QString::fromUtf8(qgetenv("USER")); // Linux and OSX +diff --git a/core/libs/database/server/databaseserver.h b/core/libs/database/server/databaseserver.h +index 0b96d5ceb1..d1140e23ed 100644 +--- a/core/libs/database/server/databaseserver.h ++++ b/core/libs/database/server/databaseserver.h +@@ -127,6 +127,11 @@ private: + */ + DatabaseServerError initMysqlDatabase() const; + ++ /** ++ * Check for a mysql database upgrade. ++ */ ++ DatabaseServerError checkUpgradeMysqlDatabase(); ++ + /** + * Return the current user account name. + */ +-- +GitLab + Deleted: PKGBUILD =================================================================== --- PKGBUILD 2021-07-25 14:04:14 UTC (rev 420385) +++ PKGBUILD 2021-07-25 14:05:32 UTC (rev 420386) @@ -1,40 +0,0 @@ -# $Id: PKGBUILD 320127 2018-03-24 09:48:28Z arojas $ -# Maintainer: Ronald van Haren <ron...@archlinux.org> -# Maintainer: Antonio Rojas <aro...@archlinux.org> -# Contributor: Andrea Scarpino <and...@archlinux.org> -# Contributor: Tobias Powalowski <tp...@archlinux.org> - -pkgname=digikam -_pkgver=7.3.0 -pkgver=${_pkgver//-/_} # for beta versions -pkgrel=2 -pkgdesc='An advanced digital photo management application' -arch=(x86_64) -license=(GPL) -url='https://www.digikam.org/' -depends=(lensfun opencv akonadi-contacts knotifyconfig libksane kfilemetadata qtav marble-common threadweaver kcalendarcore - qt5-xmlpatterns imagemagick jasper glu perl-image-exiftool) -makedepends=(extra-cmake-modules doxygen eigen boost kdoctools) -optdepends=('hugin: panorama tool' 'qt5-imageformats: support for additional image formats (WEBP, TIFF)' - 'rawtherapee: RAW import' 'darktable: RAW import' - 'perl: for digitaglinktree') -source=(https://download.kde.org/stable/$pkgname/$pkgver/$pkgname-$_pkgver.tar.xz{,.sig}) -sha256sums=('95aea93be1cfd39bb52333b82b3e57bf68080c7d1319d754d167a20f6dbe4551' - 'SKIP') -validpgpkeys=(D1CF2444A7858C5F2FB095B74A77747BC2386E50) # digiKam.org (digiKam project) <digikamdevelo...@gmail.com> - -build() { - cmake -B build -S $pkgname-$_pkgver \ - -DBUILD_TESTING=OFF \ - -DENABLE_KFILEMETADATASUPPORT=ON \ - -DENABLE_MEDIAPLAYER=ON \ - -DENABLE_AKONADICONTACTSUPPORT=ON \ - -DENABLE_MYSQLSUPPORT=ON \ - -DENABLE_APPSTYLES=ON \ - -DENABLE_QWEBENGINE=ON - cmake --build build -} - -package() { - DESTDIR="$pkgdir" cmake --install build -} Copied: digikam/repos/extra-x86_64/PKGBUILD (from rev 420385, digikam/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2021-07-25 14:05:32 UTC (rev 420386) @@ -0,0 +1,46 @@ +# $Id: PKGBUILD 320127 2018-03-24 09:48:28Z arojas $ +# Maintainer: Ronald van Haren <ron...@archlinux.org> +# Maintainer: Antonio Rojas <aro...@archlinux.org> +# Contributor: Andrea Scarpino <and...@archlinux.org> +# Contributor: Tobias Powalowski <tp...@archlinux.org> + +pkgname=digikam +_pkgver=7.3.0 +pkgver=${_pkgver//-/_} # for beta versions +pkgrel=3 +pkgdesc='An advanced digital photo management application' +arch=(x86_64) +license=(GPL) +url='https://www.digikam.org/' +depends=(lensfun opencv akonadi-contacts knotifyconfig libksane kfilemetadata qtav marble-common threadweaver kcalendarcore + qt5-xmlpatterns imagemagick jasper glu perl-image-exiftool) +makedepends=(extra-cmake-modules doxygen eigen boost kdoctools) +optdepends=('hugin: panorama tool' 'qt5-imageformats: support for additional image formats (WEBP, TIFF)' + 'rawtherapee: RAW import' 'darktable: RAW import' + 'perl: for digitaglinktree') +source=(https://download.kde.org/stable/$pkgname/$pkgver/$pkgname-$_pkgver.tar.xz{,.sig} + 49ee18fb.patch) +sha256sums=('95aea93be1cfd39bb52333b82b3e57bf68080c7d1319d754d167a20f6dbe4551' + 'SKIP' + 'e1980cd4ee76160e1262ec1044d5072a1c8ea1e36a020882e53f5cb7edd0ce23') +validpgpkeys=(D1CF2444A7858C5F2FB095B74A77747BC2386E50) # digiKam.org (digiKam project) <digikamdevelo...@gmail.com> + +prepare() { + patch -d $pkgname-$pkgver -p1 < 49ee18fb.patch # Upgrade database on mysql version updates +} + +build() { + cmake -B build -S $pkgname-$_pkgver \ + -DBUILD_TESTING=OFF \ + -DENABLE_KFILEMETADATASUPPORT=ON \ + -DENABLE_MEDIAPLAYER=ON \ + -DENABLE_AKONADICONTACTSUPPORT=ON \ + -DENABLE_MYSQLSUPPORT=ON \ + -DENABLE_APPSTYLES=ON \ + -DENABLE_QWEBENGINE=ON + cmake --build build +} + +package() { + DESTDIR="$pkgdir" cmake --install build +}