[arch-commits] Commit in discover/trunk (PKGBUILD discover-appstream-0.10.3.patch)

Antonio Rojas arojas at archlinux.org
Tue Nov 8 12:32:41 UTC 2016


    Date: Tuesday, November 8, 2016 @ 12:32:41
  Author: arojas
Revision: 195135

appstream-qt 0.10.3 rebuild

Added:
  discover/trunk/discover-appstream-0.10.3.patch
Modified:
  discover/trunk/PKGBUILD

---------------------------------+
 PKGBUILD                        |   13 +
 discover-appstream-0.10.3.patch |  256 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 266 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2016-11-08 12:22:46 UTC (rev 195134)
+++ PKGBUILD	2016-11-08 12:32:41 UTC (rev 195135)
@@ -8,17 +8,24 @@
 arch=(i686 x86_64)
 url='https://projects.kde.org/projects/kde/workspace/discover'
 license=(LGPL)
-depends=(packagekit-qt5 knewstuff kdeclarative qt5-graphicaleffects appstream-qt archlinux-appstream-data hicolor-icon-theme kirigami)
+depends=(packagekit-qt5 knewstuff kdeclarative qt5-graphicaleffects appstream-qt archlinux-appstream-data
+         hicolor-icon-theme kirigami)
 makedepends=(extra-cmake-modules python plasma-framework)
 conflicts=(muon)
 replaces=(muon)
-source=("http://download.kde.org/stable/plasma/$pkgver/$pkgname-$pkgver.tar.xz"{,.sig})
+source=("http://download.kde.org/stable/plasma/$pkgver/$pkgname-$pkgver.tar.xz"{,.sig}
+        discover-appstream-0.10.3.patch)
 md5sums=('555043b0cdeb1cfdb00ee45ec5dec7c6'
-         'SKIP')
+         'SKIP'
+         'da8766914efcb8fb248bcdf8f1c38396')
 validpgpkeys=(2D1D5B0588357787DE9EE225EC94D18F7F05997E) # Jonathan Riddell <jr at jriddell.org>
 
 prepare() {
   mkdir -p build
+
+# Port to appstream-qt 0.10.3 API (Debian)
+  cd $pkgname-$pkgver
+  patch -p1 -i ../discover-appstream-0.10.3.patch
 }
 
 build() {

Added: discover-appstream-0.10.3.patch
===================================================================
--- discover-appstream-0.10.3.patch	                        (rev 0)
+++ discover-appstream-0.10.3.patch	2016-11-08 12:32:41 UTC (rev 195135)
@@ -0,0 +1,256 @@
+commit 5748ab0d65df220ce1e084939b07e32c676f853b
+Author: Matthias Klumpp <matthias at tenstral.net>
+Date:   Sat Nov 5 16:30:43 2016 +0100
+
+    Make Discover compile with newer AppStreamQt releases
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 48a9b77..c59d7ad 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -28,7 +28,15 @@ if (NOT packagekitqt5_FOUND)
+         find_package(KF5 REQUIRED IconThemes Notifications KIO)
+     endif()
+ endif()
+-find_package(AppstreamQt 0.10)
++
++find_package(AppStreamQt 0.10)
++set(AppStreamTarget "AppStreamQt")
++if (NOT AppStreamQt_FOUND)
++    find_package(AppstreamQt 0.10)
++    set(AppStreamTarget "AppstreamQt")
++    set(AppStreamQt_FOUND TRUE)
++endif()
++
+ find_package(KF5Attica 5.23)
+ find_package(KF5NewStuff 5.23)
+ 
+diff --git a/libdiscover/backends/CMakeLists.txt b/libdiscover/backends/CMakeLists.txt
+index 93497f6..8eb7365 100644
+--- a/libdiscover/backends/CMakeLists.txt
++++ b/libdiscover/backends/CMakeLists.txt
+@@ -20,7 +20,7 @@ if(BODEGA_FOUND)
+     add_subdirectory(BodegaBackend)
+ endif()
+ 
+-if(packagekitqt5_FOUND AND AppstreamQt_FOUND)
++if(packagekitqt5_FOUND AND AppStreamQt_FOUND)
+     add_subdirectory(PackageKitBackend)
+ endif()
+ 
+diff --git a/libdiscover/backends/PackageKitBackend/AppPackageKitResource.cpp 
+b/libdiscover/backends/PackageKitBackend/AppPackageKitResource.cpp
+index 658019f..5256db3 100644
+--- a/libdiscover/backends/PackageKitBackend/AppPackageKitResource.cpp
++++ b/libdiscover/backends/PackageKitBackend/AppPackageKitResource.cpp
+@@ -19,8 +19,14 @@
+  ***************************************************************************/
+ 
+ #include "AppPackageKitResource.h"
++#ifdef NEWAPPSTREAM
++#include <AppStreamQt/icon.h>
++#include <AppStreamQt/screenshot.h>
++#include <AppStreamQt/image.h>
++#else
+ #include <AppstreamQt/screenshot.h>
+ #include <AppstreamQt/image.h>
++#endif
+ // #include <AppstreamQt/release.h>
+ #include <KLocalizedString>
+ #include <KToolInvocation>
+@@ -52,7 +58,23 @@ QString AppPackageKitResource::longDescription()
+ QVariant AppPackageKitResource::icon() const
+ {
+     QIcon ret;
+-
++#ifdef NEWAPPSTREAM
++    const auto icons = m_appdata.icons();
++    if (icons.isEmpty()) {
++        ret = QIcon::fromTheme(QStringLiteral("package-x-generic"));
++    } else foreach(const AppStream::Icon &icon, icons) {
++        switch(icon.kind()) {
++            case AppStream::Icon::KindLocal:
++                ret.addFile(icon.url().toLocalFile(), icon.size());
++                break;
++            case AppStream::Icon::KindCached:
++                ret.addFile(icon.url().toLocalFile(), icon.size());
++                break;
++            default:
++                break;
++        }
++    }
++#else
+     const auto icons = m_appdata.iconUrls();
+     if (icons.isEmpty())
+         return m_appdata.name();
+@@ -66,7 +88,7 @@ QVariant AppPackageKitResource::icon() const
+     if (ret.isNull()) {
+         ret = QIcon::fromTheme(QStringLiteral("package-x-generic"));
+     }
+-
++#endif
+     return ret;
+ }
+ 
+@@ -105,7 +127,11 @@ QString AppPackageKitResource::appstreamId() const
+ 
+ QUrl AppPackageKitResource::homepage()
+ {
++#ifdef NEWAPPSTREAM
++    return m_appdata.url(Appstream::Component::UrlKindHomepage);
++#else
+     return m_appdata.urls().value(Appstream::Component::UrlKindHomepage);
++#endif
+ }
+ 
+ bool AppPackageKitResource::isTechnical() const
+@@ -150,13 +176,20 @@ static QUrl screenshot(const Appstream::Component& comp, Appstream::Image::Kind
+ 
+ QUrl AppPackageKitResource::screenshotUrl()
+ {
++#ifdef NEWAPPSTREAM
++    return screenshot(m_appdata, Appstream::Image::KindSource);
++#else
+     return screenshot(m_appdata, Appstream::Image::Plain);
+-
++#endif
+ }
+ 
+ QUrl AppPackageKitResource::thumbnailUrl()
+ {
++#ifdef NEWAPPSTREAM
++    return screenshot(m_appdata, Appstream::Image::KindThumbnail);
++#else
+     return screenshot(m_appdata, Appstream::Image::Thumbnail);
++#endif
+ }
+ 
+ void AppPackageKitResource::fetchScreenshots()
+@@ -164,8 +197,13 @@ void AppPackageKitResource::fetchScreenshots()
+     QList<QUrl> thumbnails, screenshots;
+ 
+     Q_FOREACH (const Appstream::Screenshot &s, m_appdata.screenshots()) {
++#ifdef NEWAPPSTREAM
++        const QUrl thumbnail = imageOfKind(s.images(), Appstream::Image::KindThumbnail);
++        const QUrl plain = imageOfKind(s.images(), Appstream::Image::KindSource);
++#else
+         const QUrl thumbnail = imageOfKind(s.images(), Appstream::Image::Thumbnail);
+         const QUrl plain = imageOfKind(s.images(), Appstream::Image::Plain);
++#endif
+         if (plain.isEmpty())
+             qWarning() << "invalid screenshot for" << name();
+ 
+@@ -183,11 +221,15 @@ bool AppPackageKitResource::canExecute() const
+ 
+ QStringList AppPackageKitResource::findProvides(Appstream::Provides::Kind kind) const
+ {
++#ifdef NEWAPPSTREAM
++    return m_appdata.provided(kind).items();
++#else
+     QStringList ret;
+     Q_FOREACH (Appstream::Provides p, m_appdata.provides())
+         if (p.kind() == kind)
+             ret += p.value();
+     return ret;
++#endif
+ }
+ 
+ QStringList AppPackageKitResource::allPackageNames() const
+diff --git a/libdiscover/backends/PackageKitBackend/AppPackageKitResource.h 
+b/libdiscover/backends/PackageKitBackend/AppPackageKitResource.h
+index 08d133d..4ec3681 100644
+--- a/libdiscover/backends/PackageKitBackend/AppPackageKitResource.h
++++ b/libdiscover/backends/PackageKitBackend/AppPackageKitResource.h
+@@ -24,6 +24,10 @@
+ #include "PackageKitResource.h"
+ #include "PackageKitBackend.h"
+ 
++#ifdef NEWAPPSTREAM
++namespace Appstream = AppStream;
++#endif
++
+ class AppPackageKitResource : public PackageKitResource
+ {
+     Q_OBJECT
+diff --git a/libdiscover/backends/PackageKitBackend/CMakeLists.txt b/libdiscover/backends/PackageKitBackend/CMakeLists.txt
+index e31ea86..cfebaff 100644
+--- a/libdiscover/backends/PackageKitBackend/CMakeLists.txt
++++ b/libdiscover/backends/PackageKitBackend/CMakeLists.txt
+@@ -10,7 +10,13 @@ add_library(packagekit-backend MODULE PackageKitBackend.cpp
+     PackageKitSourcesBackend.cpp
+     AppstreamReviews.cpp
+ )
+-target_link_libraries(packagekit-backend PRIVATE Discover::Common Qt5::Core PK::packagekitqt5 KF5::ConfigGui KF5::Service KF5::KIOWidgets KF5::Archive AppstreamQt)
++
++if (${AppStreamQt_VERSION} VERSION_LESS 0.10.3)
++    target_compile_definitions(packagekit-backend PRIVATE -DNEWAPPSTREAM=0)
++else()
++    target_compile_definitions(packagekit-backend PRIVATE -DNEWAPPSTREAM=1)
++endif()
++target_link_libraries(packagekit-backend PRIVATE Discover::Common Qt5::Core PK::packagekitqt5 KF5::ConfigGui KF5::Service KF5::KIOWidgets KF5::Archive ${AppStreamTarget})
+ 
+ install(TARGETS packagekit-backend DESTINATION ${PLUGIN_INSTALL_DIR}/discover)
+ install(FILES packagekit-backend.desktop DESTINATION ${DATA_INSTALL_DIR}/libdiscover/backends)
+diff --git a/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp b/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp
+index d2698e9..3f180e5 100644
+--- a/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp
++++ b/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp
+@@ -54,7 +54,11 @@ PackageKitBackend::PackageKitBackend(QObject* parent)
+     , m_isFetching(0)
+     , m_reviews(new AppstreamReviews(this))
+ {
++#ifdef NEWAPPSTREAM
++    bool b = m_appdata.load();
++#else
+     bool b = m_appdata.open();
++#endif
+     if (!b) {
+         qWarning() << "Could not open the AppStream metadata pool";
+ 
+@@ -122,7 +126,11 @@ void PackageKitBackend::reloadPackageList()
+         disconnect(m_refresher.data(), &PackageKit::Transaction::finished, this, &PackageKitBackend::reloadPackageList);
+     }
+ 
++#ifdef NEWAPPSTREAM
++    const auto components = m_appdata.components();
++#else
+     const auto components = m_appdata.allComponents();
++#endif
+     QStringList neededPackages;
+     neededPackages.reserve(components.size());
+     foreach(const Appstream::Component& component, components) {
+@@ -343,7 +351,11 @@ AbstractResource* PackageKitBackend::resourceByPackageName(const QString& name)
+ 
+ QList<AbstractResource*> PackageKitBackend::searchPackageName(const QString& searchText)
+ {
++#ifdef NEWAPPSTREAM
++    const QList<Appstream::Component> components = m_appdata.search(searchText);
++#else
+     const QList<Appstream::Component> components = m_appdata.findComponentsByString(searchText, {});
++#endif
+     const QStringList ids = kTransform<QStringList>(components, [](const Appstream::Component& comp) { return comp.id(); });
+ 
+     return resourcesByPackageNames<QList<AbstractResource*>>(ids);
+diff --git a/libdiscover/backends/PackageKitBackend/PackageKitBackend.h b/libdiscover/backends/PackageKitBackend/PackageKitBackend.h
+index 7b8d3fb..562099e 100644
+--- a/libdiscover/backends/PackageKitBackend/PackageKitBackend.h
++++ b/libdiscover/backends/PackageKitBackend/PackageKitBackend.h
+@@ -29,7 +29,18 @@
+ #include <QTimer>
+ #include <QSet>
+ #include <PackageKit/Transaction>
++
++#ifdef NEWAPPSTREAM
++#include <AppStreamQt/pool.h>
++#include <AppStreamQt/provided.h>
++namespace AppStream {
++    typedef Provided Provides;
++    typedef Pool Database;
++}
++namespace Appstream = AppStream;
++#else
+ #include <AppstreamQt/database.h>
++#endif
+ 
+ class AppstreamReviews;
+ class AppPackageKitResource;



More information about the arch-commits mailing list