rpms/kdelibs/F-9 kdelibs-4.0.4-khtml-stylesheet.patch, NONE, 1.1 kdelibs-4.0.4-kstandarddirs.patch, 1.1, 1.2 kdelibs.spec, 1.321, 1.322

Than Ngo (than) fedora-extras-commits at redhat.com
Fri May 30 17:06:24 UTC 2008


Author: than

Update of /cvs/extras/rpms/kdelibs/F-9
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv30762

Modified Files:
	kdelibs-4.0.4-kstandarddirs.patch kdelibs.spec 
Added Files:
	kdelibs-4.0.4-khtml-stylesheet.patch 
Log Message:
- fix #447965, order issue in kde path, thanks to Kevin
- backport patch to check html style version


kdelibs-4.0.4-khtml-stylesheet.patch:

--- NEW FILE kdelibs-4.0.4-khtml-stylesheet.patch ---
--- kdelibs-4.0.4/khtml/css/html4.css	(Revision 813565)
+++ kdelibs-4.0.4/khtml/css/html4.css	(Revision 813566)
@@ -5,6 +5,8 @@
  * Konqueror/khtml relies on the existence of this style sheet for
  * rendering. Do not remove or modify this file unless you know
  * what you are doing.
+ *
+ * KHTML_STYLE_VERSION: 1
  */
 
 @namespace "http://www.w3.org/1999/xhtml";
--- kdelibs-4.0.4/khtml/css/cssstyleselector.cpp	(Revision 813565)
+++ kdelibs-4.0.4/khtml/css/cssstyleselector.cpp	(Revision 813566)
@@ -62,12 +62,16 @@
 #include <kconfig.h>
 #include <QtCore/QFile>
 #include <QtCore/QString>
+#include <QtCore/QFileInfo>
 
 #include <kdebug.h>
 #include <kurl.h>
 #include <assert.h>
 #include <stdlib.h>
 
+// keep in sync with html4.css'
+#define KHTML_STYLE_VERSION 1
+
 #undef RELATIVE
 #undef ABSOLUTE
 
@@ -386,6 +390,14 @@
 	    file[readbytes] = '\0';
 
 	QString style = QLatin1String( file.data() );
+	
+	QRegExp checkVersion( "KHTML_STYLE_VERSION:\\s*(\\d+)" );
+	checkVersion.setMinimal( true );
+	if (checkVersion.indexIn( style ) == -1 || checkVersion.cap(1).toInt() != KHTML_STYLE_VERSION) {
+	    qFatal( "!!!!!!! ERROR !!!!!!! - KHTML default stylesheet version mismatch. Aborting. Check your installation. File used was: %s. Expected STYLE_VERSION %d\n", 
+	        QFileInfo( f ).absoluteFilePath().toLatin1().data(), KHTML_STYLE_VERSION );
+        }
+	
 	if(s)
 	    style += s->settingsToCSS();
 	DOMString str(style);

kdelibs-4.0.4-kstandarddirs.patch:

Index: kdelibs-4.0.4-kstandarddirs.patch
===================================================================
RCS file: /cvs/extras/rpms/kdelibs/F-9/kdelibs-4.0.4-kstandarddirs.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- kdelibs-4.0.4-kstandarddirs.patch	22 May 2008 18:43:42 -0000	1.1
+++ kdelibs-4.0.4-kstandarddirs.patch	30 May 2008 17:05:09 -0000	1.2
@@ -1,7 +1,97 @@
-diff -up kdelibs-4.0.4/kdecore/kernel/kstandarddirs.cpp.dirs kdelibs-4.0.4/kdecore/kernel/kstandarddirs.cpp
---- kdelibs-4.0.4/kdecore/kernel/kstandarddirs.cpp.dirs	2008-05-22 12:17:33.000000000 -0500
-+++ kdelibs-4.0.4/kdecore/kernel/kstandarddirs.cpp	2008-05-22 12:27:50.000000000 -0500
-@@ -998,6 +998,10 @@ QStringList KStandardDirs::resourceDirs(
+diff -ur kdelibs-4.0.4/kdecore/kernel/kstandarddirs.cpp kdelibs-4.0.4-kstandarddirs/kdecore/kernel/kstandarddirs.cpp
+--- kdelibs-4.0.4/kdecore/kernel/kstandarddirs.cpp	2008-05-01 12:16:52.000000000 +0200
++++ kdelibs-4.0.4-kstandarddirs/kdecore/kernel/kstandarddirs.cpp	2008-05-30 18:01:45.000000000 +0200
+@@ -72,9 +72,12 @@
+     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;
+@@ -945,10 +948,62 @@
+                 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);
+ 
++	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)) {
++            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 (!dirs.isEmpty())
+         {
+             bool local = true;
+@@ -974,13 +1029,6 @@
+                 }
+             }
+ 
+-            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();
+@@ -998,22 +1046,30 @@
                      if ((local || testdir.exists()) && !candidates.contains(path))
                          candidates.append(path);
                  }
@@ -12,4 +102,56 @@
                  local = false;
              }
          }
-diff -up kdelibs-4.0.4/kdecore/kernel/kstandarddirs_unix.cpp.dirs kdelibs-4.0.4/kdecore/kernel/kstandarddirs_unix.cpp
+ 
+         // make sure we find the path where it's installed
+-        QString installdir = installPath( type );
+-        if (!installdir.isEmpty()) {
+-            bool ok = true;
+-            foreach (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);
+@@ -1478,6 +1534,7 @@
+     {
+         localKdeDir = KShell::tildeExpand(localKdeDir);
+         addPrefix(localKdeDir);
++        d->localKdehome=localKdeDir;
+     }
+ 
+     QStringList::ConstIterator end(kdedirList.end());
+@@ -1524,6 +1581,7 @@
+ 
+     localXdgDir = KShell::tildeExpand(localXdgDir);
+     addXdgConfigPrefix(localXdgDir);
++    d->localXdgconfhome=localXdgDir;
+ 
+     for (QStringList::ConstIterator it = xdgdirList.begin();
+          it != xdgdirList.end(); ++it)
+@@ -1568,6 +1626,7 @@
+ 
+     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/F-9/kdelibs.spec,v
retrieving revision 1.321
retrieving revision 1.322
diff -u -r1.321 -r1.322
--- kdelibs.spec	27 May 2008 17:15:57 -0000	1.321
+++ kdelibs.spec	30 May 2008 17:05:09 -0000	1.322
@@ -1,7 +1,7 @@
 
 Summary: K Desktop Environment 4 - Libraries
 Version: 4.0.4
-Release: 10%{?dist}
+Release: 11%{?dist}
 
 %if 0%{?fedora} > 8
 Name: kdelibs
@@ -101,6 +101,7 @@
 Patch23: kdelibs-4.0.4-kdirmodel-crash.patch
 
 ## upstream patches
+Patch100: kdelibs-4.0.4-khtml-stylesheet.patch
 
 BuildRequires: qt4-devel >= 4.3.0
 Requires: qt4 >= %{_qt4_version} 
@@ -227,6 +228,9 @@
 %patch22 -p1 -b .khtml-DOMStyleSheetList
 %patch23 -p1 -b .kdirmodel-crash
 
+# upstream patches
+%patch100 -p1 -b .khtml-stylesheet
+
 %build
 
 mkdir -p %{_target_platform}
@@ -386,6 +390,10 @@
 
 
 %changelog
+* Fri May 30 2008 Than Ngo <than at redhat.com> 4.0.4-11
+- fix #447965, order issue in kde path, thanks to Kevin
+- backport patch to check html style version
+
 * Tue May 27 2008 Lukáš Tinkl <ltinkl at redhat.com> - 4.0.4-10
 - Fixes a crash when you are using two different protocols and move through the tree
 




More information about the fedora-extras-commits mailing list