rpms/kdelibs/devel kdelibs-4.0.83-kstandarddirs.patch, NONE, 1.1 kdelibs.spec, 1.332, 1.333 kdelibs-4.0.80-kstandarddirs.patch, 1.1, NONE

Than Ngo (than) fedora-extras-commits at redhat.com
Thu Jun 19 15:17:33 UTC 2008


Author: than

Update of /cvs/extras/rpms/kdelibs/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv6879

Modified Files:
	kdelibs.spec 
Added Files:
	kdelibs-4.0.83-kstandarddirs.patch 
Removed Files:
	kdelibs-4.0.80-kstandarddirs.patch 
Log Message:
patch kstandarddirs.patch


kdelibs-4.0.83-kstandarddirs.patch:

--- NEW FILE kdelibs-4.0.83-kstandarddirs.patch ---
diff -up kdelibs-4.0.83/kdecore/kernel/kstandarddirs.cpp.kstandarddirs kdelibs-4.0.83/kdecore/kernel/kstandarddirs.cpp
--- kdelibs-4.0.83/kdecore/kernel/kstandarddirs.cpp.kstandarddirs	2008-06-19 14:23:20.000000000 +0200
+++ kdelibs-4.0.83/kdecore/kernel/kstandarddirs.cpp	2008-06-19 15:44:23.000000000 +0200
@@ -75,9 +75,12 @@ public:
     bool checkRestrictions : 1;
     QMap<QByteArray, bool> restrictions;
     QStringList xdgdata_prefixes;
+    QString localXdgdatahome;
     QStringList xdgconf_prefixes;
+    QString localXdgconfhome;
 
     QStringList prefixes;
+    QString localKdehome;
 
     // Directory dictionaries
     QMap<QByteArray, QStringList> absolutes;
@@ -952,12 +955,63 @@ QStringList KStandardDirs::resourceDirs(
                 restrictionActive = true;
             d->dataRestrictionActive = false; // Reset
         }
+        const QStringList *prefixList = 0;
+        QString home;
+        if (strncmp(type, "xdgdata-", 8) == 0)
+        {
+            prefixList = &(d->xdgdata_prefixes);
+            home=d->localXdgdatahome;
+        }
+            else if (strncmp(type, "xdgconf-", 8) == 0)
+        {
+            prefixList = &(d->xdgconf_prefixes);
+            home=d->localXdgconfhome;
+        }
+            else
+        {
+            prefixList = &d->prefixes;
+            home=d->localKdehome;
+        }
 
         QStringList dirs;
         dirs = d->relatives.value(type);
         QString installdir = installPath( type );
         QString installprefix = installPath("kdedir");
 
+        if(!home.isNull())
+        {
+                for (QStringList::ConstIterator it = dirs.begin();
+                     it != dirs.end(); ++it)
+                {
+                    if ( (*it).startsWith('%'))
+                        continue;
+                    QString path = realPath( home + *it );
+                    testdir.setPath(path);
+                    if (restrictionActive)
+                        continue;
+                    if (!candidates.contains(path))
+                        candidates.append(path);
+                }
+
+        }
+ 
+        // make sure we find the path where it's installed
+        // for non-config files, we want the installed path _first_, so /usr/share/kde4 takes precedence over /usr/share
+        if (strcmp("config", type)) {
+            if (!installdir.isEmpty()) {
+                bool ok = true;
+                foreach (const QString &s, candidates) {
+                    if (installdir.startsWith(s)) {
+                        ok = false;
+                        break;
+                    }
+                }
+                if (ok) {
+                        candidates.append(installdir);
+                }
+            }
+        }
+
         if (!dirs.isEmpty())
         {
             bool local = true;
@@ -983,13 +1037,6 @@ QStringList KStandardDirs::resourceDirs(
                 }
             }
 
-            const QStringList *prefixList = 0;
-            if (strncmp(type, "xdgdata-", 8) == 0)
-                prefixList = &(d->xdgdata_prefixes);
-            else if (strncmp(type, "xdgconf-", 8) == 0)
-                prefixList = &(d->xdgconf_prefixes);
-            else
-                prefixList = &d->prefixes;
 
             for (QStringList::ConstIterator pit = prefixList->begin();
                  pit != prefixList->end();
@@ -1009,6 +1056,10 @@ QStringList KStandardDirs::resourceDirs(
                         if ((local || testdir.exists()) && !candidates.contains(path))
                             candidates.append(path);
                     }
+                    // UGLY HACK - forward porting Chris CHeney's HACK - Rex Dieter
+                    if ( local && (!strcmp("config", type)))
+                       candidates.append("/etc/kde/");
+                    //
                     local = false;
                 }
 	        else
@@ -1021,17 +1072,21 @@ QStringList KStandardDirs::resourceDirs(
 	    }
         }
 
-        // make sure we find the path where it's installed
-        if (!installdir.isEmpty()) {
-            bool ok = true;
-            foreach (const QString &s, candidates) {
-                if (installdir.startsWith(s)) {
-                    ok = false;
-                    break;
+        // for config files, we want the installed path _last_, so profiles take precedence
+        if (!strcmp("config", type)) {
+            QString installdir = installPath( type );
+            if (!installdir.isEmpty()) {
+                bool ok = true;
+                foreach (const QString &s, candidates) {
+                    if (installdir.startsWith(s)) {
+                        ok = false;
+                        break;
+                    }
+                }
+                if (ok) {
+                        candidates.append(installdir);
                 }
             }
-            if (ok)
-                candidates.append(installdir);
         }
 
         dirs = d->absolutes.value(type);
@@ -1500,6 +1555,7 @@ void KStandardDirs::addKDEDefaults()
     {
         localKdeDir = KShell::tildeExpand(localKdeDir);
         addPrefix(localKdeDir);
+        d->localKdehome=localKdeDir;
     }
 
 #ifdef Q_WS_MACX
@@ -1558,6 +1614,7 @@ void KStandardDirs::addKDEDefaults()
 
     localXdgDir = KShell::tildeExpand(localXdgDir);
     addXdgConfigPrefix(localXdgDir);
+    d->localXdgconfhome=localXdgDir;
 
     for (QStringList::ConstIterator it = xdgdirList.begin();
          it != xdgdirList.end(); ++it)
@@ -1606,6 +1663,7 @@ void KStandardDirs::addKDEDefaults()
 
     localXdgDir = KShell::tildeExpand(localXdgDir);
     addXdgDataPrefix(localXdgDir);
+    d->localXdgdatahome=localXdgDir;
 
     for (QStringList::ConstIterator it = xdgdirList.begin();
          it != xdgdirList.end(); ++it)


Index: kdelibs.spec
===================================================================
RCS file: /cvs/extras/rpms/kdelibs/devel/kdelibs.spec,v
retrieving revision 1.332
retrieving revision 1.333
diff -u -r1.332 -r1.333
--- kdelibs.spec	19 Jun 2008 10:11:50 -0000	1.332
+++ kdelibs.spec	19 Jun 2008 15:16:50 -0000	1.333
@@ -77,7 +77,7 @@
 # patch by Sergey Saukh: http://bugs.kde.org/show_bug.cgi?id=155707#c46
 Patch15: kdelibs-4.0.82-proxy.patch
 # forward port kstandarddirs hack to search /etc/kde
-Patch18: kdelibs-4.0.80-kstandarddirs.patch
+Patch18: kdelibs-4.0.83-kstandarddirs.patch
 
 # upstream patches
 


--- kdelibs-4.0.80-kstandarddirs.patch DELETED ---




More information about the fedora-extras-commits mailing list