[arch-commits] Commit in digikam/repos/extra-x86_64 (49ee18fb.patch PKGBUILD PKGBUILD)
Antonio Rojas
arojas at gemini.archlinux.org
Sun Jul 25 14:05:32 UTC 2021
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 <metzpinguin at 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 <ronald at archlinux.org>
-# Maintainer: Antonio Rojas <arojas at archlinux.org>
-# Contributor: Andrea Scarpino <andrea at archlinux.org>
-# Contributor: Tobias Powalowski <tpowa at 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) <digikamdeveloper at 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 <ronald at archlinux.org>
+# Maintainer: Antonio Rojas <arojas at archlinux.org>
+# Contributor: Andrea Scarpino <andrea at archlinux.org>
+# Contributor: Tobias Powalowski <tpowa at 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) <digikamdeveloper at 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
+}
More information about the arch-commits
mailing list