diff options
-rw-r--r-- | gnu/local.mk | 2 | ||||
-rw-r--r-- | gnu/packages/kde.scm | 12 | ||||
-rw-r--r-- | gnu/packages/patches/kpmcore-fix-tests.patch | 30 | ||||
-rw-r--r-- | gnu/packages/patches/kpmcore-remove-broken-test.patch | 139 |
4 files changed, 177 insertions, 6 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 5dab77f899..90bf272d07 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1014,6 +1014,8 @@ dist_patch_DATA = \ %D%/packages/patches/kmod-module-directory.patch \ %D%/packages/patches/kmscon-runtime-keymap-switch.patch \ %D%/packages/patches/kpackage-allow-external-paths.patch \ + %D%/packages/patches/kpmcore-fix-tests.patch \ + %D%/packages/patches/kpmcore-remove-broken-test.patch \ %D%/packages/patches/kobodeluxe-paths.patch \ %D%/packages/patches/kobodeluxe-enemies-pipe-decl.patch \ %D%/packages/patches/kobodeluxe-const-charp-conversion.patch \ diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index e81224e8c0..9755f66aca 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -30,6 +30,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils) + #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages apr) #:use-module (gnu packages boost) @@ -470,7 +471,7 @@ cards.") (define-public kpmcore (package (name "kpmcore") - (version "3.3.0") + (version "4.0.1") (source (origin (method url-fetch) (uri (string-append @@ -479,20 +480,19 @@ cards.") name "-" version ".tar.xz")) (sha256 (base32 - "0s6v0jfrhjg31ri5p6h9n4w29jvasf5dj954j3vfpzl91lygmmmq")))) + "1sslkwcj2cyrn7bpjdjdwikp1q8wrsxpsg2sxxd8hsairgy7ygh3")) + (patches (search-patches "kpmcore-fix-tests.patch" + "kpmcore-remove-broken-test.patch")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) ("pkg-config" ,pkg-config))) (inputs `(("kconfigwidgets" ,kconfigwidgets) - ("kiconthemes" ,kiconthemes) ("kio" ,kio) ("ki18n" ,ki18n) - ("kservice" ,kservice) - ("libatasmart" ,libatasmart) - ("parted" ,parted) ("qtbase" ,qtbase) + ("qca" ,qca) ("util-linux" ,util-linux))) (home-page "https://community.kde.org/Frameworks") (synopsis "Library for managing partitions") diff --git a/gnu/packages/patches/kpmcore-fix-tests.patch b/gnu/packages/patches/kpmcore-fix-tests.patch new file mode 100644 index 0000000000..12043abe72 --- /dev/null +++ b/gnu/packages/patches/kpmcore-fix-tests.patch @@ -0,0 +1,30 @@ +Git commit c02d59aa6d314678cef9683f96b28e2a1abd82b7 by Andrius Štikonas, on behalf of Hartmut Goebel. +Committed on 07/11/2019 at 22:16. +Pushed by stikonas into branch '4.0'. + +Fix test for kpmcore: stop helper only if formerly started. + +See https://bugs.kde.org/413851 and https://phabricator.kde.org/D25161 + +diff --git a/src/util/externalcommand.cpp b/src/util/externalcommand.cpp +--- a/src/util/externalcommand.cpp ++++ b/src/util/externalcommand.cpp +@@ -433,14 +433,17 @@ + + void ExternalCommand::stopHelper() + { ++ if (!helperStarted) ++ return; + auto *interface = new org::kde::kpmcore::externalcommand(QStringLiteral("org.kde.kpmcore.externalcommand"), + QStringLiteral("/Helper"), QDBusConnection::systemBus()); + QByteArray request; + const quint64 nonce = interface->getNonce(); + request.setNum(nonce); + QByteArray hash = QCryptographicHash::hash(request, QCryptographicHash::Sha512); + interface->exit(privateKey->signMessage(hash, QCA::EMSA3_Raw), nonce); + ++ helperStarted = false; + delete privateKey; + delete init; + } + diff --git a/gnu/packages/patches/kpmcore-remove-broken-test.patch b/gnu/packages/patches/kpmcore-remove-broken-test.patch new file mode 100644 index 0000000000..d02cca7883 --- /dev/null +++ b/gnu/packages/patches/kpmcore-remove-broken-test.patch @@ -0,0 +1,139 @@ +From c9a08a593bac8b8610a647db118fea6f2958156d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= <andrius@stikonas.eu> +Date: Thu, 7 Nov 2019 22:12:00 +0000 +Subject: [PATCH] Remove broken smart unit test. + +BUG: 413853 +--- + test/CMakeLists.txt | 9 ---- + test/testsmart.cpp | 102 -------------------------------------------- + 2 files changed, 111 deletions(-) + delete mode 100644 test/testsmart.cpp + +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index 67f63a2..6a300d3 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -53,12 +53,3 @@ find_package (Threads) + # Execute external commands as root + kpm_test(testexternalcommand testexternalcommand.cpp) + add_test(NAME testexternalcommand COMMAND testexternalcommand ${BACKEND}) +- +-# Including SMART files reference +-set(SMARTPARSER ${CMAKE_SOURCE_DIR}/src/core/smartdiskinformation.cpp +- ${CMAKE_SOURCE_DIR}/src/core/smartattributeparseddata.cpp +- ${CMAKE_SOURCE_DIR}/src/core/smartparser.cpp) +- +-# Test SMART support +-kpm_test(testsmart testsmart.cpp ${SMARTPARSER}) +-add_test(NAME testsmart COMMAND testsmart ${BACKEND}) +diff --git a/test/testsmart.cpp b/test/testsmart.cpp +deleted file mode 100644 +index 2236af7..0000000 +--- a/test/testsmart.cpp ++++ /dev/null +@@ -1,102 +0,0 @@ +-#include "helpers.h" +- +-#include "util/externalcommand.h" +-#include "backend/corebackend.h" +-#include "backend/corebackendmanager.h" +-#include "core/smartstatus.h" +-#include "core/smartparser.h" +- +-#include <QCoreApplication> +-#include <QDebug> +- +-static QString getDefaultDevicePath(); +-static bool testSmartStatus(); +-static bool testSmartParser(); +- +-int main(int argc, char **argv) +-{ +- QCoreApplication app(argc, argv); +- +- KPMCoreInitializer i; +- +- if (argc == 2) +- i = KPMCoreInitializer(argv[1]); +- +- if (!i.isValid()) +- return 1; +- +- CoreBackend *backend = CoreBackendManager::self()->backend(); +- +- if (!backend) +- { +- qWarning() << "Couldn't get backend."; +- return 1; +- } +- +- if (!testSmartStatus() || !testSmartParser()) +- return 1; +- +- return app.exec(); +-} +- +-static QString getDefaultDevicePath() +-{ +- // Getting default home partition using 'df -P /home | awk 'END{print $1}'' command +- ExternalCommand command(QStringLiteral("df"), { QStringLiteral("-P"), QStringLiteral("/home"), QStringLiteral("|"), +- QStringLiteral("awk"), QStringLiteral("\'END{print $1}\'") }); +- +- if (command.run() && command.exitCode() == 0) { +- QString output = command.output(); +- return output; +- } +- +- return QString(); +-} +- +-static bool testSmartStatus() +-{ +- QString devicePath = getDefaultDevicePath(); +- +- SmartStatus smart(devicePath); +- +- if (smart.devicePath() != devicePath) +- return false; +- +- if (!smart.status()) +- return false; +- +- if (smart.modelName() == QString()) +- return false; +- +- if (smart.firmware() == QString()) +- return false; +- +- if (smart.serial() == QString()) +- return false; +- +- if (smart.selfTestStatus() != SmartStatus::SelfTestStatus::Success) +- return false; +- +- if (!smart.isValid()) +- return false; +- +- return true; +-} +- +-static bool testSmartParser() +-{ +- QString devicePath = getDefaultDevicePath(); +- +- SmartParser parser(devicePath); +- +- if (!parser.init()) +- return false; +- +- if (parser.devicePath() != devicePath) +- return false; +- +- if (!parser.diskInformation()) +- return false; +- +- return true; +-} +-- +2.17.1 |