From kde-commits Tue May 15 11:39:48 2018 From: Alexander Volkov Date: Tue, 15 May 2018 11:39:48 +0000 To: kde-commits Subject: [kcm-grub2/frameworks] /: Port QPkBackend to PackageKitQt5 Message-Id: X-MARC-Message: https://marc.info/?l=kde-commits&m=152638481806847 Git commit c767e19cffd9636e5ebe8d2820a1240ec34c9b7f by Alexander Volkov. Committed on 15/05/2018 at 11:31. Pushed by volkov into branch 'frameworks'. Port QPkBackend to PackageKitQt5 M +3 -3 CMakeLists.txt D +0 -40 cmake/modules/FindQPackageKit.cmake M +1 -3 src/CMakeLists.txt M +67 -78 src/qPkBackend.cpp M +7 -7 src/qPkBackend.h M +6 -2 src/removeDlg.cpp M +8 -4 src/removeDlg.h https://commits.kde.org/kcm-grub2/c767e19cffd9636e5ebe8d2820a1240ec34c9b7f diff --git a/CMakeLists.txt b/CMakeLists.txt index 6f02713..2e026f2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,12 +65,12 @@ else() set(HAVE_QAPT 0) endif() = -find_package(QPackageKit) -set_package_properties(QPackageKit PROPERTIES +find_package(PackageKitQt5) +set_package_properties(PackageKitQt5 PROPERTIES DESCRIPTION "Remove unneeded old entries (qpackagek= it backend)" URL "http://www.packagekit.org/" TYPE OPTIONAL) -if(QPACKAGEKIT_FOUND) +if(PackageKitQt5_FOUND) set(HAVE_QPACKAGEKIT 1) else() set(HAVE_QPACKAGEKIT 0) diff --git a/cmake/modules/FindQPackageKit.cmake b/cmake/modules/FindQPacka= geKit.cmake deleted file mode 100644 index 5efc79a..0000000 --- a/cmake/modules/FindQPackageKit.cmake +++ /dev/null @@ -1,40 +0,0 @@ -# - Try to find QPackageKit -# Once done this will define -# -# QPACKAGEKIT_FOUND - system has QPackageKit -# QPACKAGEKIT_INCLUDE_DIR - the QPackageKit include directory -# QPACKAGEKIT_LIB - Link these to use QPackageKit -# QPACKAGEKIT_DEFINITIONS - Compiler switches required for using QPackage= Kit - -# Copyright (c) 2008, Adrien Bustany, -# -# Redistribution and use is allowed according to the terms of the GPLv2+ l= icense. - -IF (QPACKAGEKIT_INCLUDE_DIR AND QPACKAGEKIT_LIB) - SET(QPACKAGEKIT_FIND_QUIETLY TRUE) -ENDIF (QPACKAGEKIT_INCLUDE_DIR AND QPACKAGEKIT_LIB) - -FIND_PATH( QPACKAGEKIT_INCLUDE_DIR PackageKit/packagekit-qt/QPackageKit ) - -FIND_LIBRARY( QPACKAGEKIT_LIB NAMES packagekit-qt ) - -IF (QPACKAGEKIT_INCLUDE_DIR AND QPACKAGEKIT_LIB) - SET(QPACKAGEKIT_FOUND TRUE) -ELSE (QPACKAGEKIT_INCLUDE_DIR AND QPACKAGEKIT_LIB) - SET(QPACKAGEKIT_FOUND FALSE) -ENDIF (QPACKAGEKIT_INCLUDE_DIR AND QPACKAGEKIT_LIB) - -SET(QPACKAGEKIT_INCLUDE_DIR ${QPACKAGEKIT_INCLUDE_DIR}/PackageKit/packagek= it-qt) - -IF (QPACKAGEKIT_FOUND) - IF (NOT QPACKAGEKIT_FIND_QUIETLY) - MESSAGE(STATUS "Found QPackageKit: ${QPACKAGEKIT_LIB}") - ENDIF (NOT QPACKAGEKIT_FIND_QUIETLY) -ELSE (QPACKAGEKIT_FOUND) - IF (QPACKAGEKIT_FIND_REQUIRED) - MESSAGE(FATAL_ERROR "Could NOT find QPackageKit") - ENDIF (QPACKAGEKIT_FIND_REQUIRED) -ENDIF (QPACKAGEKIT_FOUND) - -MARK_AS_ADVANCED(QPACKAGEKIT_INCLUDE_DIR QPACKAGEKIT_LIB) - diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7c43a34..ae4e8ed 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -8,8 +8,6 @@ if(HAVE_IMAGEMAGICK) endif(HAVE_IMAGEMAGICK) if(HAVE_QAPT) set(kcm_grub2_INCLUDE_DIRS ${kcm_grub2_INCLUDE_DIRS} ${QAPT_INCLUDE_DI= R}) -elseif(HAVE_QPACKAGEKIT) - set(kcm_grub2_INCLUDE_DIRS ${kcm_grub2_INCLUDE_DIRS} ${QPACKAGEKIT_INC= LUDE_DIR}) endif(HAVE_QAPT) = # Set Sources @@ -40,7 +38,7 @@ endif(HAVE_IMAGEMAGICK) if(HAVE_QAPT) set(kcm_grub2_LINK_LIBS ${kcm_grub2_LINK_LIBS} ${QAPT_LIBRARY}) elseif(HAVE_QPACKAGEKIT) - set(kcm_grub2_LINK_LIBS ${kcm_grub2_LINK_LIBS} ${QPACKAGEKIT_LIB}) + set(kcm_grub2_LINK_LIBS ${kcm_grub2_LINK_LIBS} ${PackageKitQt5_LIBRARI= ES}) endif(HAVE_QAPT) = # Definitions diff --git a/src/qPkBackend.cpp b/src/qPkBackend.cpp index 8d4bc8a..5f8f7ae 100644 --- a/src/qPkBackend.cpp +++ b/src/qPkBackend.cpp @@ -18,123 +18,122 @@ //Own #include "qPkBackend.h" = +//Qt +#include + //KDE #include = +//PackageKit +#include + //Taken from KDE playground/sysadmin/apper "as is" -static QString statusToString(PackageKit::Enum::Status status) +static QString statusToString(PackageKit::Transaction::Status status) { switch (status) { - case PackageKit::Enum::LastStatus: - case PackageKit::Enum::UnknownStatus: - return i18nc("This is when the transaction status is not known", - "Unknown state"); - case PackageKit::Enum::StatusSetup: + case PackageKit::Transaction::StatusSetup: return i18nc("transaction state, the daemon is in the process of s= tarting", "Waiting for service to start"); - case PackageKit::Enum::StatusWait: + case PackageKit::Transaction::StatusWait: return i18nc("transaction state, the transaction is waiting for an= other to complete", "Waiting for other tasks"); - case PackageKit::Enum::StatusRunning: + case PackageKit::Transaction::StatusRunning: return i18nc("transaction state, just started", "Running task"); - case PackageKit::Enum::StatusQuery: + case PackageKit::Transaction::StatusQuery: return i18nc("transaction state, is querying data", "Querying"); - case PackageKit::Enum::StatusInfo: + case PackageKit::Transaction::StatusInfo: return i18nc("transaction state, getting data from a server", "Getting information"); - case PackageKit::Enum::StatusRemove: + case PackageKit::Transaction::StatusRemove: return i18nc("transaction state, removing packages", "Removing packages"); - case PackageKit::Enum::StatusDownload: + case PackageKit::Transaction::StatusDownload: return i18nc("transaction state, downloading package files", "Downloading packages"); - case PackageKit::Enum::StatusInstall: + case PackageKit::Transaction::StatusInstall: return i18nc("transaction state, installing packages", "Installing packages"); - case PackageKit::Enum::StatusRefreshCache: + case PackageKit::Transaction::StatusRefreshCache: return i18nc("transaction state, refreshing internal lists", "Refreshing software list"); - case PackageKit::Enum::StatusUpdate: + case PackageKit::Transaction::StatusUpdate: return i18nc("transaction state, installing updates", "Updating packages"); - case PackageKit::Enum::StatusCleanup: + case PackageKit::Transaction::StatusCleanup: return i18nc("transaction state, removing old packages, and cleani= ng config files", "Cleaning up packages"); - case PackageKit::Enum::StatusObsolete: + case PackageKit::Transaction::StatusObsolete: return i18nc("transaction state, obsoleting old packages", "Obsoleting packages"); - case PackageKit::Enum::StatusDepResolve: + case PackageKit::Transaction::StatusDepResolve: return i18nc("transaction state, checking the transaction before w= e do it", "Resolving dependencies"); - case PackageKit::Enum::StatusSigCheck: + case PackageKit::Transaction::StatusSigCheck: return i18nc("transaction state, checking if we have all the secur= ity keys for the operation", "Checking signatures"); - case PackageKit::Enum::StatusRollback: - return i18nc("transaction state, when we return to a previous syst= em state", - "Rolling back"); - case PackageKit::Enum::StatusTestCommit: + case PackageKit::Transaction::StatusTestCommit: return i18nc("transaction state, when we're doing a test transacti= on", "Testing changes"); - case PackageKit::Enum::StatusCommit: + case PackageKit::Transaction::StatusCommit: return i18nc("transaction state, when we're writing to the system = package database", "Committing changes"); - case PackageKit::Enum::StatusRequest: + case PackageKit::Transaction::StatusRequest: return i18nc("transaction state, requesting data from a server", "Requesting data"); - case PackageKit::Enum::StatusFinished: + case PackageKit::Transaction::StatusFinished: return i18nc("transaction state, all done!", "Finished"); - case PackageKit::Enum::StatusCancel: + case PackageKit::Transaction::StatusCancel: return i18nc("transaction state, in the process of cancelling", "Cancelling"); - case PackageKit::Enum::StatusDownloadRepository: + case PackageKit::Transaction::StatusDownloadRepository: return i18nc("transaction state, downloading metadata", "Downloading repository information"); - case PackageKit::Enum::StatusDownloadPackagelist: + case PackageKit::Transaction::StatusDownloadPackagelist: return i18nc("transaction state, downloading metadata", "Downloading list of packages"); - case PackageKit::Enum::StatusDownloadFilelist: + case PackageKit::Transaction::StatusDownloadFilelist: return i18nc("transaction state, downloading metadata", "Downloading file lists"); - case PackageKit::Enum::StatusDownloadChangelog: + case PackageKit::Transaction::StatusDownloadChangelog: return i18nc("transaction state, downloading metadata", "Downloading lists of changes"); - case PackageKit::Enum::StatusDownloadGroup: + case PackageKit::Transaction::StatusDownloadGroup: return i18nc("transaction state, downloading metadata", "Downloading groups"); - case PackageKit::Enum::StatusDownloadUpdateinfo: + case PackageKit::Transaction::StatusDownloadUpdateinfo: return i18nc("transaction state, downloading metadata", "Downloading update information"); - case PackageKit::Enum::StatusRepackaging: + case PackageKit::Transaction::StatusRepackaging: return i18nc("transaction state, repackaging delta files", "Repackaging files"); - case PackageKit::Enum::StatusLoadingCache: + case PackageKit::Transaction::StatusLoadingCache: return i18nc("transaction state, loading databases", "Loading cache"); - case PackageKit::Enum::StatusScanApplications: + case PackageKit::Transaction::StatusScanApplications: return i18nc("transaction state, scanning for running processes", "Scanning installed applications"); - case PackageKit::Enum::StatusGeneratePackageList: + case PackageKit::Transaction::StatusGeneratePackageList: return i18nc("transaction state, generating a list of packages ins= talled on the system", "Generating package lists"); - case PackageKit::Enum::StatusWaitingForLock: + case PackageKit::Transaction::StatusWaitingForLock: return i18nc("transaction state, when we're waiting for the native= tools to exit", "Waiting for package manager lock"); - case PackageKit::Enum::StatusWaitingForAuth: + case PackageKit::Transaction::StatusWaitingForAuth: return i18nc("waiting for user to type in a password", "Waiting for authentication"); - case PackageKit::Enum::StatusScanProcessList: + case PackageKit::Transaction::StatusScanProcessList: return i18nc("we are updating the list of processes", "Updating the list of running applications"); - case PackageKit::Enum::StatusCheckExecutableFiles: + case PackageKit::Transaction::StatusCheckExecutableFiles: return i18nc("we are checking executable files in use", "Checking for applications currently in use"); - case PackageKit::Enum::StatusCheckLibraries: + case PackageKit::Transaction::StatusCheckLibraries: return i18nc("we are checking for libraries in use", "Checking for libraries currently in use"); - case PackageKit::Enum::StatusCopyFiles: + case PackageKit::Transaction::StatusCopyFiles: return i18nc("we are copying package files to prepare to install", "Copying files"); } @@ -151,24 +150,21 @@ QPkBackend::~QPkBackend() = QStringList QPkBackend::ownerPackage(const QString &fileName) { - PackageKit::Transaction t(QString(), this); - if (t.error() !=3D PackageKit::Client::NoError) { - return QStringList(); - } - m_package.clear(); + auto *t =3D PackageKit::Daemon::searchFiles(fileName); + m_packageId.clear(); QEventLoop loop; - connect(&t, SIGNAL(finished(PackageKit::Enum::Exit,uint)), &loop, SLOT= (quit())); - connect(&t, SIGNAL(finished(PackageKit::Enum::Exit,uint)), this, SLOT(= slotFinished(PackageKit::Enum::Exit,uint))); - connect(&t, SIGNAL(package(QSharedPointer)), this= , SLOT(slotPackage(QSharedPointer))); - t.searchFiles(fileName); + connect(t, &PackageKit::Transaction::finished, &loop, &QEventLoop::qui= t); + connect(t, &PackageKit::Transaction::finished, this, &QPkBackend::slot= Finished); + connect(t, &PackageKit::Transaction::package, this, &QPkBackend::slotP= ackage); loop.exec(); - return m_status =3D=3D PackageKit::Enum::ExitSuccess && !m_package.isN= ull() ? QStringList() << m_package->name() << m_package->version() : QStrin= gList(); + return m_status =3D=3D PackageKit::Transaction::ExitSuccess && !m_pack= ageId.isNull() ? + QStringList() << PackageKit::Transaction::packageName(m_pa= ckageId) << PackageKit::Transaction::packageVersion(m_packageId) : QStringL= ist(); } void QPkBackend::markForRemoval(const QString &packageName) { if (!m_remove.contains(packageName) && packageExists(packageName)) { - m_remove.append(m_package->name()); - m_removePtrs.append(m_package); + m_remove.append(PackageKit::Transaction::packageName(m_packageId)); + m_removeIds.append(m_packageId); } } QStringList QPkBackend::markedForRemoval() const @@ -177,31 +173,28 @@ QStringList QPkBackend::markedForRemoval() const } void QPkBackend::removePackages() { - m_t =3D new PackageKit::Transaction(QString(), this); - if (m_t->error() !=3D PackageKit::Client::NoError) { - return; - } - connect(m_t, SIGNAL(changed()), this, SLOT(slotUpdateProgress())); - connect(m_t, SIGNAL(finished(PackageKit::Enum::Exit,uint)), this, SLOT= (slotFinished(PackageKit::Enum::Exit,uint))); - m_t->removePackages(m_removePtrs, false, true); + m_t =3D PackageKit::Daemon::removePackages(m_removeIds, false, true); + connect(m_t, &PackageKit::Transaction::percentageChanged, this, &QPkBa= ckend::slotUpdateProgress); + connect(m_t, &PackageKit::Transaction::statusChanged, this, &QPkBacken= d::slotUpdateProgress); + connect(m_t, &PackageKit::Transaction::finished, this, &QPkBackend::sl= otFinished); } void QPkBackend::undoChanges() { m_remove.clear(); - m_removePtrs.clear(); + m_removeIds.clear(); } = -void QPkBackend::slotFinished(PackageKit::Enum::Exit status, uint runtime) +void QPkBackend::slotFinished(PackageKit::Transaction::Exit status, uint r= untime) { Q_UNUSED(runtime) m_status =3D status; - if (m_t && m_t->role() =3D=3D PackageKit::Enum::RoleRemovePackages) { - Q_EMIT finished(m_status =3D=3D PackageKit::Enum::ExitSuccess); + if (m_t && m_t->role() =3D=3D PackageKit::Transaction::RoleRemovePacka= ges) { + Q_EMIT finished(m_status =3D=3D PackageKit::Transaction::ExitSucce= ss); } } -void QPkBackend::slotPackage(const QSharedPointer &pa= ckage) +void QPkBackend::slotPackage(PackageKit::Transaction::Info, const QString = &packageId, const QString &) { - m_package =3D package; + m_packageId =3D packageId; } void QPkBackend::slotUpdateProgress() { @@ -210,16 +203,12 @@ void QPkBackend::slotUpdateProgress() = bool QPkBackend::packageExists(const QString &packageName) { - PackageKit::Transaction t(QString(), this); - if (t.error() !=3D PackageKit::Client::NoError) { - return false; - } - m_package.clear(); + auto *t =3D PackageKit::Daemon::resolve(packageName); + m_packageId.clear(); QEventLoop loop; - connect(&t, SIGNAL(finished(PackageKit::Enum::Exit,uint)), &loop, SLOT= (quit())); - connect(&t, SIGNAL(finished(PackageKit::Enum::Exit,uint)), this, SLOT(= slotFinished(PackageKit::Enum::Exit,uint))); - connect(&t, SIGNAL(package(QSharedPointer)), this= , SLOT(slotPackage(QSharedPointer))); - t.resolve(packageName); + connect(t, &PackageKit::Transaction::finished, &loop, &QEventLoop::qui= t); + connect(t, &PackageKit::Transaction::finished, this, &QPkBackend::slot= Finished); + connect(t, &PackageKit::Transaction::package, this, &QPkBackend::slotP= ackage); loop.exec(); - return m_status =3D=3D PackageKit::Enum::ExitSuccess && !m_package.isN= ull(); + return m_status =3D=3D PackageKit::Transaction::ExitSuccess && !m_pack= ageId.isNull(); } diff --git a/src/qPkBackend.h b/src/qPkBackend.h index 24f1f59..755ae6b 100644 --- a/src/qPkBackend.h +++ b/src/qPkBackend.h @@ -21,8 +21,8 @@ //Qt #include = -//QPackageKit -#include +//PackageKit +#include = class QPkBackend : public QObject { @@ -40,17 +40,17 @@ Q_SIGNALS: void finished(bool success); void progress(const QString &status, int percentage); private Q_SLOTS: - void slotFinished(PackageKit::Enum::Exit status, uint runtime); - void slotPackage(const QSharedPointer &package); + void slotFinished(PackageKit::Transaction::Exit status, uint runtime); + void slotPackage(PackageKit::Transaction::Info info, const QString &pa= ckageId, const QString &summary); void slotUpdateProgress(); private: bool packageExists(const QString &packageName); = PackageKit::Transaction *m_t; - PackageKit::Enum::Exit m_status; - QSharedPointer m_package; + PackageKit::Transaction::Exit m_status; + QString m_packageId; QStringList m_remove; - QList< QSharedPointer > m_removePtrs; + QStringList m_removeIds; }; = #endif diff --git a/src/removeDlg.cpp b/src/removeDlg.cpp index 24e71a6..23f1247 100644 --- a/src/removeDlg.cpp +++ b/src/removeDlg.cpp @@ -27,8 +27,10 @@ #include #include #include +#include = //KDE +#include #include = //Project @@ -60,10 +62,12 @@ RemoveDialog::RemoveDialog(const QList &entries,= QWidget *parent) : QDial = m_progressDlg =3D 0; = -#if HAVE_QAPT && QAPT_VERSION_MAJOR =3D=3D 1 +#if HAVE_QAPT +#if QAPT_VERSION_MAJOR =3D=3D 1 m_backend =3D new QAptBackend; -#elif HAVE_QAPT && QAPT_VERSION_MAJOR =3D=3D 2 +#elif QAPT_VERSION_MAJOR =3D=3D 2 m_backend =3D new QApt2Backend; +#endif #elif HAVE_QPACKAGEKIT m_backend =3D new QPkBackend; #endif diff --git a/src/removeDlg.h b/src/removeDlg.h index b5fdb0b..bdb3b51 100644 --- a/src/removeDlg.h +++ b/src/removeDlg.h @@ -28,10 +28,12 @@ class QProgressDialog; //Project #include class Entry; -#if HAVE_QAPT && QAPT_VERSION_MAJOR =3D=3D 1 +#if HAVE_QAPT +#if QAPT_VERSION_MAJOR =3D=3D 1 #include "qaptBackend.h" -#elif HAVE_QAPT && QAPT_VERSION_MAJOR =3D=3D 2 +#elif QAPT_VERSION_MAJOR =3D=3D 2 #include "qapt2Backend.h" +#endif #elif HAVE_QPACKAGEKIT #include "qPkBackend.h" #endif @@ -56,10 +58,12 @@ private Q_SLOTS: private: void detectCurrentKernelImage(); = -#if HAVE_QAPT && QAPT_VERSION_MAJOR =3D=3D 1 +#if HAVE_QAPT +#if QAPT_VERSION_MAJOR =3D=3D 1 QAptBackend *m_backend; -#elif HAVE_QAPT && QAPT_VERSION_MAJOR =3D=3D 2 +#elif QAPT_VERSION_MAJOR =3D=3D 2 QApt2Backend *m_backend; +#endif #elif HAVE_QPACKAGEKIT QPkBackend *m_backend; #endif