This commit is contained in:
Jaroslav Reznik 2012-06-08 15:49:56 +02:00
parent 98dd339b82
commit abcc464497
4 changed files with 25 additions and 47 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
/kdelibs-4.6.5.tar.bz2
/kdelibs-4.8.3.tar.xz
/kdelibs-4.8.80.tar.xz
/kdelibs-4.8.90.tar.xz

View File

@ -1,28 +1,7 @@
From 00a8b22ad6dbb03eea18090f6d9f578101632752 Mon Sep 17 00:00:00 2001
Message-Id: <00a8b22ad6dbb03eea18090f6d9f578101632752.1313007841.git.kevin.kofler@chello.at>
From: Kevin Kofler <kevin.kofler@chello.at>
Date: Wed, 10 Aug 2011 21:48:19 +0200
Subject: [PATCH] Trigger installation of missing components when installing a
package.
For script engines, the existing metadata (X-Plasma-API) is sufficient.
For data engines, we introduce a new metadata entry:
X-Plasma-RequiredDataEngines. Third-party packages will have to add this entry
to benefit from this feature at this time. Automatic support for scanning
package source code on installation (at least for some languages) is planned,
but the metadata entry is definitely the most efficient method.
---
plasma/package.cpp | 39 +++++++++++++++++++++++++++++++++++++++
plasma/packagemetadata.cpp | 13 +++++++++++++
plasma/packagemetadata.h | 7 +++++++
3 files changed, 59 insertions(+), 0 deletions(-)
diff --git a/plasma/package.cpp b/plasma/package.cpp
index 4c00d36..0a45c87 100644
--- a/plasma/package.cpp
+++ b/plasma/package.cpp
@@ -49,8 +49,11 @@
diff -up kdelibs-4.8.90/plasma/package.cpp.libplasma-pk-0002 kdelibs-4.8.90/plasma/package.cpp
--- kdelibs-4.8.90/plasma/package.cpp.libplasma-pk-0002 2012-06-05 10:47:01.000000000 +0200
+++ kdelibs-4.8.90/plasma/package.cpp 2012-06-08 15:40:14.219728253 +0200
@@ -43,8 +43,11 @@
#include <kdebug.h>
#include "authorizationmanager.h"
@ -34,10 +13,11 @@ index 4c00d36..0a45c87 100644
#include "private/package_p.h"
#include "private/plasmoidservice_p.h"
#include "private/service_p.h"
@@ -603,6 +606,42 @@ bool Package::installPackage(const QString &package,
@@ -580,6 +583,41 @@ bool Package::installPackage(const QStri
// no need to remove the temp dir (which has been successfully moved if it's an archive)
tempdir.setAutoRemove(false);
}
+ // check for missing dependencies
+ QString requiredScriptEngine = meta.implementationApi();
+ if (!requiredScriptEngine.isEmpty()) {
@ -73,14 +53,12 @@ index 4c00d36..0a45c87 100644
+ }
+ }
+ }
+
if (!servicePrefix.isEmpty()) {
// and now we register it as a service =)
QString metaPath = targetName + "/metadata.desktop";
diff --git a/plasma/packagemetadata.cpp b/plasma/packagemetadata.cpp
index 59163b2..8cfaf64 100644
--- a/plasma/packagemetadata.cpp
+++ b/plasma/packagemetadata.cpp
diff -up kdelibs-4.8.90/plasma/packagemetadata.cpp.libplasma-pk-0002 kdelibs-4.8.90/plasma/packagemetadata.cpp
--- kdelibs-4.8.90/plasma/packagemetadata.cpp.libplasma-pk-0002 2012-05-23 01:45:26.000000000 +0200
+++ kdelibs-4.8.90/plasma/packagemetadata.cpp 2012-06-08 15:24:24.439149182 +0200
@@ -52,6 +52,7 @@ class PackageMetadataPrivate
QString serviceType;
QString api;
@ -89,7 +67,7 @@ index 59163b2..8cfaf64 100644
};
PackageMetadata::PackageMetadata(const PackageMetadata &other)
@@ -106,6 +107,7 @@ void PackageMetadata::write(const QString &filename) const
@@ -108,6 +109,7 @@ void PackageMetadata::write(const QStrin
config.writeEntry("X-KDE-ParentApp", d->app);
config.writeEntry("Type", d->type);
config.writeEntry("X-Plasma-RemoteLocation", d->location);
@ -97,7 +75,7 @@ index 59163b2..8cfaf64 100644
}
void PackageMetadata::read(const QString &filename)
@@ -133,6 +135,7 @@ void PackageMetadata::read(const QString &filename)
@@ -154,6 +156,7 @@ void PackageMetadata::read(const QString
d->app = config.readEntry("X-KDE-ParentApp", d->app);
d->type = config.readEntry("Type", d->type);
d->location = config.readEntry("X-Plasma-RemoteLocation", d->location);
@ -105,7 +83,7 @@ index 59163b2..8cfaf64 100644
}
QString PackageMetadata::name() const
@@ -225,6 +228,11 @@ QString PackageMetadata::implementationApi() const
@@ -246,6 +249,11 @@ QString PackageMetadata::implementationA
return d->api;
}
@ -117,7 +95,7 @@ index 59163b2..8cfaf64 100644
void PackageMetadata::setImplementationApi(const QString &api)
{
d->api = api;
@@ -300,6 +308,11 @@ void PackageMetadata::setRemoteLocation(const KUrl &location)
@@ -321,6 +329,11 @@ void PackageMetadata::setRemoteLocation(
d->location = location;
}
@ -129,10 +107,9 @@ index 59163b2..8cfaf64 100644
void PackageMetadata::setType(const QString &type)
{
d->type = type;
diff --git a/plasma/packagemetadata.h b/plasma/packagemetadata.h
index b10f0e4..ec396a6 100644
--- a/plasma/packagemetadata.h
+++ b/plasma/packagemetadata.h
diff -up kdelibs-4.8.90/plasma/packagemetadata.h.libplasma-pk-0002 kdelibs-4.8.90/plasma/packagemetadata.h
--- kdelibs-4.8.90/plasma/packagemetadata.h.libplasma-pk-0002 2012-05-23 01:45:26.000000000 +0200
+++ kdelibs-4.8.90/plasma/packagemetadata.h 2012-06-08 15:24:24.481149665 +0200
@@ -21,6 +21,7 @@
#define PLASMA_PACKAGEMETADATA_H
@ -161,6 +138,3 @@ index b10f0e4..ec396a6 100644
private:
PackageMetadataPrivate * const d;
};
--
1.7.4.4

View File

@ -24,8 +24,8 @@
%global dbusmenu_qt_version %(pkg-config --modversion dbusmenu-qt 2>/dev/null || echo %{dbusmenu_qt_ver})
Summary: KDE Libraries
Version: 4.8.80
Release: 2%{?dist}
Version: 4.8.90
Release: 1%{?dist}
Name: kdelibs
Epoch: 6
@ -610,6 +610,9 @@ rm -rf %{buildroot}
%changelog
* Fri Jun 08 2012 Jaroslav Reznik <jreznik@redhat.com> - 6:4.8.90-1
- 4.8.90
* Fri Jun 01 2012 Jaroslav Reznik <jreznik@redhat.com> - 6:4.8.80-2
- respin

View File

@ -1 +1 @@
7fd66295f951001e1a33eb78ada261fa kdelibs-4.8.80.tar.xz
2dae6b0ada291ed9db52e0dcb3886e47 kdelibs-4.8.90.tar.xz