[kdelibs] * Tue Sep 27 2011 Kevin Kofler <Kevin at tigcc.ticalc.org> 4.7.1-4 - updated Plasma data engine depende

Kevin Kofler kkofler at fedoraproject.org
Tue Sep 27 23:51:46 UTC 2011


commit 66a25543f545e576321ab843418815368e41373d
Author: Kevin Kofler <Kevin at tigcc.ticalc.org>
Date:   Wed Sep 28 01:51:17 2011 +0200

    * Tue Sep 27 2011 Kevin Kofler <Kevin at tigcc.ticalc.org> 4.7.1-4
    - updated Plasma data engine dependency extraction patch:
      - added support for declarativeappletscript QML code
      - plasma-dataengine-depextractor command-line tool:
        - make sure we pass an absolute path to KDesktopFile
        - autodetect the API/language used, drop --api command-line argument

 ...utomatic-scanning-of-source-code-for-requ.patch |   57 ++++++++++++--------
 kdelibs.spec                                       |    9 +++-
 2 files changed, 43 insertions(+), 23 deletions(-)
---
diff --git a/0003-Implement-automatic-scanning-of-source-code-for-requ.patch b/0003-Implement-automatic-scanning-of-source-code-for-requ.patch
index 250e5ea..dc155f7 100644
--- a/0003-Implement-automatic-scanning-of-source-code-for-requ.patch
+++ b/0003-Implement-automatic-scanning-of-source-code-for-requ.patch
@@ -1,5 +1,5 @@
-From 1ce984bda1bb6a06f237240069a9f3a554cbbf37 Mon Sep 17 00:00:00 2001
-Message-Id: <1ce984bda1bb6a06f237240069a9f3a554cbbf37.1313890335.git.kevin.kofler at chello.at>
+From 89e4767148110a5566e463a03b3ed594276b7da0 Mon Sep 17 00:00:00 2001
+Message-Id: <89e4767148110a5566e463a03b3ed594276b7da0.1317166378.git.kevin.kofler at chello.at>
 From: Kevin Kofler <kevin.kofler at chello.at>
 Date: Wed, 17 Aug 2011 04:54:37 +0200
 Subject: [PATCH] Implement automatic scanning of source code for required
@@ -20,11 +20,11 @@ fill in X-Plasma-RequiredDataEngines manually. (Please note that the list is
 expected to be comma-separated.)
 ---
  plasma/CMakeLists.txt                 |   15 ++++
- plasma/depextractor/depextractor.cpp  |  115 +++++++++++++++++++++++++++++++++
+ plasma/depextractor/depextractor.cpp  |  125 +++++++++++++++++++++++++++++++++
  plasma/package.cpp                    |   11 +++
- plasma/private/componentinstaller.cpp |   68 +++++++++++++++++++
- plasma/private/componentinstaller_p.h |   17 +++++-
- 5 files changed, 225 insertions(+), 1 deletions(-)
+ plasma/private/componentinstaller.cpp |   71 +++++++++++++++++++
+ plasma/private/componentinstaller_p.h |   17 ++++-
+ 5 files changed, 238 insertions(+), 1 deletions(-)
 
 diff --git a/plasma/CMakeLists.txt b/plasma/CMakeLists.txt
 index f929967..9a760ef 100644
@@ -58,10 +58,10 @@ index f929967..9a760ef 100644
 +endif(NOT PLASMA_NO_PACKAGEKIT)
 diff --git a/plasma/depextractor/depextractor.cpp b/plasma/depextractor/depextractor.cpp
 new file mode 100644
-index 0000000..221b88b
+index 0000000..c489de7
 --- /dev/null
 +++ b/plasma/depextractor/depextractor.cpp
-@@ -0,0 +1,115 @@
+@@ -0,0 +1,125 @@
 +/* Plasma Data Engine dependency extractor
 +   Copyright (C) 2011 Kevin Kofler <kevin.kofler at chello.at>
 +
@@ -92,6 +92,21 @@ index 0000000..221b88b
 +
 +#include "private/componentinstaller_p.h"
 +
++static QString scriptingApi(const QString &desktopFile)
++{
++    KDesktopFile desktop(desktopFile);
++    KConfigGroup desktopGroup = desktop.desktopGroup();
++    if (desktopGroup.readEntry("X-KDE-ServiceTypes", QStringList())
++                      .contains("Plasma/ScriptEngine")
++        || desktopGroup.readEntry("ServiceTypes", QStringList())
++                         .contains("Plasma/ScriptEngine")) {
++        /* Script engines are always written in C++. Their X-Plasma-API is the
++           API they export, not the language they're written in. */
++        return QString();
++    }
++    return desktopGroup.readEntry("X-Plasma-API", QString());
++}
++
 +static void writeDataEngineDependencies(const QStringList &deps,
 +                                        const QString &desktopFile)
 +{
@@ -105,16 +120,13 @@ index 0000000..221b88b
 +{
 +    KAboutData aboutData("plasma-dataengine-depextractor", QByteArray(),
 +                        ki18n("Plasma Data Engine dependency extractor"),
-+                        "1",
++                        "2",
 +                        ki18n("Plasma Data Engine dependency extractor"));
 +    aboutData.addAuthor(ki18n("Kevin Kofler"), ki18n("Author"),
 +                        "kevin.kofler at chello.at");
 +
 +    KCmdLineArgs::init(argc, argv, &aboutData);
 +    KCmdLineOptions options;
-+    options.add("a")
-+           .add("api <name>",
-+                ki18n("Sets the name of the scripting API/language"));
 +    options.add("+[path]",
 +                ki18n("Source path (default: .)"));
 +    options.add("+[file]",
@@ -129,10 +141,7 @@ index 0000000..221b88b
 +
 +    int exitCode = 0;
 +
-+    QString api, path, desktopFile;
-+    if (args->isSet("api")) {
-+        api = args->getOption("api");
-+    }
++    QString path, desktopFile;
 +    int argCount = args->count();
 +    switch (argCount) {
 +        case 0:
@@ -159,12 +168,13 @@ index 0000000..221b88b
 +
 +    if (!exitCode) {
 +        if (QFileInfo(desktopFile).isRelative())
-+            desktopFile = QDir(path).filePath(desktopFile);
++            desktopFile = QDir(path).absoluteFilePath(desktopFile);
 +
 +        if (QFileInfo(desktopFile).exists()) {
 +            writeDataEngineDependencies(Plasma::ComponentInstaller::self()
-+                                          ->extractDataEngineDependencies(path,
-+                                                                          api),
++                                          ->extractDataEngineDependencies(
++                                              path,
++                                              scriptingApi(desktopFile)),
 +                                        desktopFile);
 +        } else {
 +            QTextStream err(stderr, QIODevice::WriteOnly | QIODevice::Text);
@@ -200,7 +210,7 @@ index 0a45c87..131f204 100644
          QStringList knownDataEngines = DataEngineManager::self()->listAllEngines(meta.application());
          foreach (const QString &requiredDataEngine, requiredDataEngines) {
 diff --git a/plasma/private/componentinstaller.cpp b/plasma/private/componentinstaller.cpp
-index 870667f..2c8c2dd 100644
+index 870667f..087d1c6 100644
 --- a/plasma/private/componentinstaller.cpp
 +++ b/plasma/private/componentinstaller.cpp
 @@ -28,6 +28,10 @@
@@ -228,7 +238,7 @@ index 870667f..2c8c2dd 100644
      QStringList resources;
      resources.append(searchString);
      packageKit.asyncCall(QLatin1String("InstallResources"), (unsigned int) wid,
-@@ -100,4 +108,64 @@ void ComponentInstaller::installMissingComponent(const QString &type,
+@@ -100,4 +108,67 @@ void ComponentInstaller::installMissingComponent(const QString &type,
  #endif
  }
  
@@ -251,6 +261,9 @@ index 870667f..2c8c2dd 100644
 +        nameFilters.append("*.hxx");
 +        nameFilters.append("*.hh");
 +        nameFilters.append("*.H");
++    } else if (api == "declarativeappletscript") {
++        nameFilters.append("*.qml");
++        searchRegExp = QRegExp("(?:^\\s*engine:\\s*|dataEngine *\\( *)\"([^\"]+)\"");
 +    } else if (api == "javascript") {
 +        nameFilters.append("*.js");
 +    } else if (api == "python") {
@@ -329,5 +342,5 @@ index f85cbb6..d0d9c75 100644
          /**
           * Default constructor. The singleton method self() is the
 -- 
-1.7.4.4
+1.7.6.2
 
diff --git a/kdelibs.spec b/kdelibs.spec
index d8cf154..e20828f 100644
--- a/kdelibs.spec
+++ b/kdelibs.spec
@@ -20,7 +20,7 @@
 
 Summary: KDE Libraries
 Version: 4.7.1
-Release: 3%{?dist}
+Release: 4%{?dist}
 
 Name: kdelibs
 Epoch: 6
@@ -562,6 +562,13 @@ rm -rf %{buildroot}
 
 
 %changelog
+* Tue Sep 27 2011 Kevin Kofler <Kevin at tigcc.ticalc.org> 4.7.1-4
+- updated Plasma data engine dependency extraction patch:
+  - added support for declarativeappletscript QML code
+  - plasma-dataengine-depextractor command-line tool:
+    - make sure we pass an absolute path to KDesktopFile
+    - autodetect the API/language used, drop --api command-line argument
+
 * Thu Sep 22 2011 Rex Dieter <rdieter at fedoraproject.org> 4.7.1-3
 - pkgconfig-style deps
 - move kde4_appsdir/kdewidgets to main pkg (pairs with kdewidgets designer plugin)


More information about the scm-commits mailing list