From 1c9d7f419c354a78d4dc67f716befc6fe17f30af Mon Sep 17 00:00:00 2001 From: Than Ngo Date: Tue, 16 Sep 2008 21:44:35 +0000 Subject: [PATCH] - #461725, revert the patch to fix the regression - fix kdelibs-4.1.1-kdeui-widgets-fixes.patch - fix install problem with cmake > 2.5 --- kdelibs-4.1.1-bz#461725-regression.patch | 189 +++++++++++++++++++++++ kdelibs-4.1.1-cmake.patch | 34 ++++ kdelibs-4.1.1-kdeui-widgets-fixes.patch | 9 +- kdelibs.spec | 15 +- 4 files changed, 242 insertions(+), 5 deletions(-) create mode 100644 kdelibs-4.1.1-bz#461725-regression.patch create mode 100644 kdelibs-4.1.1-cmake.patch diff --git a/kdelibs-4.1.1-bz#461725-regression.patch b/kdelibs-4.1.1-bz#461725-regression.patch new file mode 100644 index 0000000..f4515e4 --- /dev/null +++ b/kdelibs-4.1.1-bz#461725-regression.patch @@ -0,0 +1,189 @@ +Index: khtml/khtml_part.cpp +=================================================================== +--- khtml/khtml_part.cpp (Revision 852920) ++++ khtml/khtml_part.cpp (Revision 852919) +@@ -1080,7 +1080,8 @@ + if ( !d->m_frame->m_jscript ) + if (!createJScript(d->m_frame)) + return 0; +- d->m_frame->m_jscript->setDebugEnabled(d->m_bJScriptDebugEnabled); ++ if (d->m_bJScriptDebugEnabled) ++ d->m_frame->m_jscript->setDebugEnabled(true); + + return d->m_frame->m_jscript; + } +Index: khtml/ecma/debugger/debugwindow.cpp +=================================================================== +--- khtml/ecma/debugger/debugwindow.cpp (Revision 852920) ++++ khtml/ecma/debugger/debugwindow.cpp (Revision 852919) +@@ -91,12 +91,23 @@ + using namespace KJSDebugger; + + DebugWindow* DebugWindow::s_debugger = 0; ++DebugWindow *DebugWindow::createInstance() ++{ ++ Q_ASSERT(!s_debugger); ++ s_debugger = new DebugWindow(); ++ return s_debugger; ++} + ++void DebugWindow::destroyInstance() ++{ ++ Q_ASSERT(s_debugger); ++ Q_ASSERT(s_debugger->m_activeSessionCtxs.isEmpty()); ++ s_debugger->hide(); ++ delete s_debugger; ++} ++ + DebugWindow * DebugWindow::window() + { +- if (!s_debugger) +- s_debugger = new DebugWindow(); +- + return s_debugger; + } + +@@ -365,8 +376,6 @@ + assert(m_docsForIntrp.isEmpty()); + assert(m_docForSid.isEmpty()); + assert(m_docForIUKey.isEmpty()); +- assert(m_activeSessionCtxs.isEmpty()); +- s_debugger = 0; + } + + void DebugWindow::closeEvent(QCloseEvent* event) +Index: khtml/ecma/debugger/debugwindow.h +=================================================================== +--- khtml/ecma/debugger/debugwindow.h (Revision 852920) ++++ khtml/ecma/debugger/debugwindow.h (Revision 852919) +@@ -39,7 +39,6 @@ + #include "khtml_pagecache.h" + #include "khtml_part.h" + #include "dom/dom_misc.h" +-#include "misc/shared.h" + + #include + #include +@@ -72,8 +71,7 @@ + * + * There is only one debug window per program. This can be obtained by calling #instance + */ +-class DebugWindow : public KXmlGuiWindow, public KJS::Debugger, public KComponentData, +- public khtml::Shared ++class DebugWindow : public KXmlGuiWindow, public KJS::Debugger, public KComponentData + { + Q_OBJECT + +@@ -81,6 +79,8 @@ + DebugWindow(QWidget *parent = 0); + virtual ~DebugWindow(); + ++ static DebugWindow *createInstance(); ++ static void destroyInstance(); + static DebugWindow *window(); + + // Returns true if the debugger is active, and has blocked the execution +Index: khtml/ecma/kjs_proxy.cpp +=================================================================== +--- khtml/ecma/kjs_proxy.cpp (Revision 852920) ++++ khtml/ecma/kjs_proxy.cpp (Revision 852919) +@@ -66,9 +66,9 @@ + + void initScript(); + void applyUserAgent(); ++ + private: + KJS::ScriptInterpreter* m_script; +- WTF::RefPtr m_debugWindow; + bool m_debugEnabled; + #ifndef NDEBUG + static int s_count; +@@ -141,8 +141,8 @@ + #ifdef KJS_DEBUGGER + if (inlineCode) + filename = "(unknown file)"; +- if (m_debugWindow) +- m_debugWindow->attach(m_script); ++ if (DebugWindow::window()) ++ DebugWindow::window()->attach(m_script); + #else + Q_UNUSED(baseLine); + #endif +@@ -202,8 +202,9 @@ + // (we used to delete and re-create it, previously) + if (m_script) { + #ifdef KJS_DEBUGGER +- if (m_debugWindow) +- m_debugWindow->clearInterpreter(m_script); ++ DebugWindow *debugWin = DebugWindow::window(); ++ if (debugWin) ++ debugWin->clearInterpreter(m_script); + #endif + m_script->clear(); + +@@ -224,14 +225,6 @@ + ; + JSLock::unlock(); + } +- +-#ifdef KJS_DEBUGGER +- // Detach from debugging entirely if it's been turned off. +- if (m_debugWindow && !m_debugEnabled) { +- m_debugWindow->detach(m_script); +- m_debugWindow = 0; +- } +-#endif + } + + DOM::EventListener *KJSProxyImpl::createHTMLEventHandler(QString sourceUrl, QString name, QString code, DOM::NodeImpl *node) +@@ -239,8 +232,8 @@ + initScript(); + + #ifdef KJS_DEBUGGER +- if (m_debugWindow) +- m_debugWindow->attach(m_script); ++ if (DebugWindow::window()) ++ DebugWindow::window()->attach(m_script); + #else + Q_UNUSED(sourceUrl); + #endif +@@ -269,21 +262,30 @@ + { + #ifdef KJS_DEBUGGER + m_debugEnabled = enabled; +- +- // Note that we attach to the debugger only before +- // running a script. Detaches/disabling are done between +- // documents, at clear. Both are done so the debugger +- // see the entire session +- if (enabled) +- m_debugWindow = DebugWindow::window(); ++ //if (m_script) ++ // m_script->setDebuggingEnabled(enabled); ++ // NOTE: this is consistent across all KJSProxyImpl instances, as we only ++ // ever have 1 debug window ++ if (!enabled && DebugWindow::window()) ++ { ++ DebugWindow::destroyInstance(); ++ } ++ else if (enabled && !DebugWindow::window()) ++ { ++ DebugWindow::createInstance(); ++ initScript(); ++ DebugWindow::window()->attach(m_script); ++ } ++#else ++ Q_UNUSED(enabled); + #endif + } + + void KJSProxyImpl::showDebugWindow(bool /*show*/) + { + #ifdef KJS_DEBUGGER +- if (m_debugWindow) +- m_debugWindow->show(); ++ if (DebugWindow::window()) ++ DebugWindow::window()->show(); + #else + //Q_UNUSED(show); + #endif diff --git a/kdelibs-4.1.1-cmake.patch b/kdelibs-4.1.1-cmake.patch new file mode 100644 index 0000000..c83d290 --- /dev/null +++ b/kdelibs-4.1.1-cmake.patch @@ -0,0 +1,34 @@ +diff -up kdelibs-4.1.1/cmake/modules/FindKDE4Internal.cmake.orig kdelibs-4.1.1/cmake/modules/FindKDE4Internal.cmake +--- kdelibs-4.1.1/cmake/modules/FindKDE4Internal.cmake.orig 2008-09-12 23:54:36.000000000 +0200 ++++ kdelibs-4.1.1/cmake/modules/FindKDE4Internal.cmake 2008-09-13 00:02:50.000000000 +0200 +@@ -745,6 +745,7 @@ endif(WIN32) + # CMake generators if no build type is set. + if (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE RelWithDebInfo) ++ set(CMAKE_CONFIGURATION_TYPES ${CMAKE_BUILD_TYPE}) + endif (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) + + +@@ -953,10 +954,6 @@ endif(MSVC) + + + if (CMAKE_COMPILER_IS_GNUCXX) +- if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" GREATER 2.5) +- set (CMAKE_CONFIGURATION_TYPES ${CMAKE_CONFIGURATION_TYPES} "Debugfull") +- endif("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" GREATER 2.5) +- + set (KDE4_ENABLE_EXCEPTIONS -fexceptions) + # Select flags. + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g") +@@ -1063,11 +1060,6 @@ endif (CMAKE_COMPILER_IS_GNUCXX) + + + if (CMAKE_C_COMPILER MATCHES "icc") +- +- if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" GREATER 2.5) +- set (CMAKE_CONFIGURATION_TYPES ${CMAKE_CONFIGURATION_TYPES} "Debugfull") +- endif("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" GREATER 2.5) +- + set (KDE4_ENABLE_EXCEPTIONS -fexceptions) + # Select flags. + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g") diff --git a/kdelibs-4.1.1-kdeui-widgets-fixes.patch b/kdelibs-4.1.1-kdeui-widgets-fixes.patch index a456fc1..64f70a6 100644 --- a/kdelibs-4.1.1-kdeui-widgets-fixes.patch +++ b/kdelibs-4.1.1-kdeui-widgets-fixes.patch @@ -71,10 +71,11 @@ Index: kdeui/widgets/khelpmenu.cpp + d->mMenu->addAction(d->mWhatsThisAction); need_separator = true; } + Index: kdeui/widgets/ktabwidget.cpp =================================================================== ---- kdeui/widgets/ktabwidget.cpp (revision 858490) -+++ kdeui/widgets/ktabwidget.cpp (revision 858491) +--- kdeui/widgets/ktabwidget.cpp (Revision 858490) ++++ kdeui/widgets/ktabwidget.cpp (Revision 858491) @@ -281,14 +281,22 @@ QString KTabWidget::tabText( int index ) const @@ -107,8 +108,8 @@ Index: kdeui/widgets/ktabwidget.cpp void KTabWidget::setTabText( int index, const QString &text ) Index: kdeui/widgets/ktabwidget.h =================================================================== ---- kdeui/widgets/ktabwidget.h (revision 858490) -+++ kdeui/widgets/ktabwidget.h (revision 858491) +--- kdeui/widgets/ktabwidget.h (Revision 858490) ++++ kdeui/widgets/ktabwidget.h (Revision 858491) @@ -187,7 +187,7 @@ * Removes the widget, reimplemented for * internal reasons (keeping labels in sync). diff --git a/kdelibs.spec b/kdelibs.spec index ba258e2..32a021f 100644 --- a/kdelibs.spec +++ b/kdelibs.spec @@ -2,7 +2,7 @@ Summary: K Desktop Environment 4 - Libraries Version: 4.1.1 -Release: 6%{?dist} +Release: 9%{?dist} %if 0%{?fedora} > 8 Name: kdelibs @@ -79,6 +79,8 @@ Patch14: kdelibs-4.0.85-libexecdir.patch Patch18: kdelibs-4.1.0-kstandarddirs.patch # fix running commands in kglobalconfig before KComponentData init (#455130) Patch19: kdelibs-4.1.0-#455130.patch +Patch20: kdelibs-4.1.1-cmake.patch +Patch21: kdelibs-4.1.1-bz#461725-regression.patch ## upstream patches Patch100: kdelibs-4.1.1-kde#169447-khtml-regression.patch @@ -210,6 +212,8 @@ sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanage %patch14 -p1 -b .libexecdir %patch18 -p1 -b .kstandarddirs %patch19 -p1 -b .#455130 +%patch20 -p1 -b .cmake +%patch21 -p0 -b .bz#461725-regression ## upstream patches %patch100 -p0 -b .kde#169447-khtml-regression @@ -377,6 +381,15 @@ rm -rf %{buildroot} %changelog +* Tue Sep 16 2008 Than Ngo 4.1.1-9 +- #461725, revert the patch to fix the regression + +* Sat Sep 13 2008 Than Ngo 4.1.1-8 +- fix kdelibs-4.1.1-kdeui-widgets-fixes.patch + +* Sat Sep 13 2008 Than Ngo 4.1.1-7 +- fix install problem with cmake > 2.5 + * Mon Sep 08 2008 Lukáš Tinkl 4.1.1-6 - fix crashes in plugin selector - fix problems in various kdeui widgets