Hello community,
here is the log from the commit of package kdelibs4 for openSUSE:Factory
checked in at Thu Jun 3 17:40:22 CEST 2010.
--------
--- KDE/kdelibs4/kdelibs4.changes 2010-05-17 14:45:45.000000000 +0200
+++ /mounts/work_src_done/STABLE/kdelibs4/kdelibs4.changes 2010-06-01 15:34:24.000000000 +0200
@@ -1,0 +2,22 @@
+Tue Jun 1 12:53:39 UTC 2010 - llunak@novell.com
+
+- make ksuseinstall refresh also newly enabled repos (bnc#608562)
+
+-------------------------------------------------------------------
+Mon May 31 17:17:35 UTC 2010 - llunak@novell.com
+
+- fix 'Super User Mode' applications sometimes not working
+ properly (bnc#450203)
+
+-------------------------------------------------------------------
+Tue May 25 08:04:47 UTC 2010 - llunak@novell.com
+
+- do not consider type/* mimetypes for application installation,
+ most packages do not provide them anyway
+
+-------------------------------------------------------------------
+Wed May 19 11:10:03 UTC 2010 - llunak@novell.com
+
+- avoid going back in Novell bugzilla increasing severity (bnc#561367)
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
khtml-bnc561367.diff
kinit-su-xauthority.diff
ksuseinstall_11.2.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdelibs4.spec ++++++
--- /var/tmp/diff_new_pack.1jEoqI/_old 2010-06-03 17:40:02.000000000 +0200
+++ /var/tmp/diff_new_pack.1jEoqI/_new 2010-06-03 17:40:02.000000000 +0200
@@ -49,7 +49,7 @@
Summary: KDE Base Libraries
Url: http://www.kde.org
Version: 4.4.3
-Release: 2
+Release: 3
Requires: soprano >= %( echo `rpm -q --queryformat '%{VERSION}' libsoprano-devel`)
Recommends: strigi >= %( echo `rpm -q --queryformat '%{VERSION}' strigi-devel`)
Requires: kdelibs4-core = %version
@@ -81,7 +81,12 @@
Patch22: enable_final.diff
Patch23: kde4-serialize-tool.diff
Patch24: ksuseinstall.diff
-Patch25: kdelibs-r1111606-kfiledialog-keyboard.diff
+%if %suse_version < 1130
+Patch25: ksuseinstall_11.2.diff
+%endif
+Patch26: khtml-bnc561367.diff
+Patch27: kinit-su-xauthority.diff
+Patch28: kdelibs-r1111606-kfiledialog-keyboard.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %suse_version > 1010
%requires_ge libqt4-x11
@@ -159,7 +164,12 @@
%patch22
%patch23
%patch24 -p1
+%if %suse_version < 1130
%patch25
+%endif
+%patch26
+%patch27
+%patch28
##KDE44 is this still needed?
#%patch21 -p1
#
@@ -489,7 +499,12 @@
License: X11
Group: Development/Libraries/KDE
Summary: On-demand installation of packages
+%if %suse_version >= 1130
+# see ksuseinstall_11.2.diff
+Requires: yast2-packager >= 2.19.7 zypper
+%else
Requires: yast2-packager zypper
+%endif
Recommends: ptools
%description -n libksuseinstall1
++++++ khtml-bnc561367.diff ++++++
------------------------------------------------------------------------
r1128237 | orlovich | 2010-05-18 18:55:12 +0000 (Tue, 18 May 2010) | 7 lines
Changed paths:
M /trunk/KDE/kdelibs/khtml/html/html_formimpl.cpp
M /trunk/KDE/kdelibs/khtml/html/html_formimpl.h
Smartify the selection state encoding/restoration:
- Permity it to store single selection by ID
- Sanity-check the position-encoded ones.
Fixes the "returning bumps severity by one" bug in the SuSE bugzilla.
CCMAIL: l.lunak@kde.org
------------------------------------------------------------------------
Index: html/html_formimpl.cpp
===================================================================
--- khtml/html/html_formimpl.cpp (revision 1128236)
+++ khtml/html/html_formimpl.cpp (revision 1128237)
@@ -2248,7 +2248,7 @@
setRecalcListItems();
}
-DOMString HTMLSelectElementImpl::value( ) const
+HTMLOptionElementImpl* HTMLSelectElementImpl::firstSelectedItem() const
{
uint i;
const QVector items = listItems();
@@ -2256,8 +2256,16 @@
for (i = 0; i < itemsSize; ++i) {
if ( items[i]->id() == ID_OPTION
&& static_cast(items[i])->selectedBit())
- return static_cast(items[i])->value();
+ return static_cast(items[i]);
}
+ return 0;
+}
+
+DOMString HTMLSelectElementImpl::value( ) const
+{
+ HTMLOptionElementImpl* o = firstSelectedItem();
+ if (o)
+ return o->value();
return DOMString("");
}
@@ -2280,6 +2288,15 @@
const int l = items.count();
+ // We have two encoding schemes: for single-select ones, if the selected
+ // element has an ID, we encoded it as iFoo.
+ if (!multiple()) {
+ HTMLOptionElementImpl* item = firstSelectedItem();
+ if (item->hasID())
+ return QString::fromLatin1("i") + item->getAttribute(ATTR_ID).string();
+ }
+
+ // Otherwise we merely go positional..
state.fill('.', l);
for(int i = 0; i < l; ++i)
if(items[i]->id() == ID_OPTION && static_cast(items[i])->selectedBit())
@@ -2293,14 +2310,39 @@
recalcListItems();
QString state = _state;
+ const QVector items = listItems();
+ const int l = items.count();
+
+ // First see if we have an id-tagged one, and if it's correct.
+ if (state.startsWith(QLatin1Char('i'))) {
+ DOM::DOMString id = state.mid(1);
+ DOM::ElementImpl* cand = document()->getElementById(id);
+
+ // No such ID or not an option -> wrong
+ if (!cand || cand->id() != ID_OPTION)
+ return;
+
+ // See if it's one of ours, and select if so.
+ for (int i = 0; i < l; ++i) {
+ if (items[i] == cand)
+ static_cast(cand)->setSelected(true);
+ }
+
+ // If we succeeded, our state is updated --- if not, we better
+ // leave this be.
+ return;
+ }
+
if(!state.isEmpty() && !state.contains('X') && !m_multiple && m_size <= 1) {
qWarning("should not happen in restoreState!");
state[0] = 'X';
}
- const QVector items = listItems();
+ // Now we have positional encoding. Make sure the length matches.
+ if (m_length != state.length()) // m_length == number of <option>, while
+ // l == items.length() includes optgroups, too.
+ return;
- const int l = items.count();
for(int i = 0; i < l; ++i) {
if(items[i]->id() == ID_OPTION) {
HTMLOptionElementImpl* const oe = static_cast(items[i]);
Index: html/html_formimpl.h
===================================================================
--- khtml/html/html_formimpl.h (revision 1128236)
+++ khtml/html/html_formimpl.h (revision 1128237)
@@ -457,6 +457,7 @@
private:
void recalcListItems() const;
+ HTMLOptionElementImpl* firstSelectedItem() const;
protected:
mutable QVector m_listItems;
------------------------------------------------------------------------
r1128533 | orlovich | 2010-05-19 15:09:27 +0000 (Wed, 19 May 2010) | 3 lines
Changed paths:
M /trunk/KDE/kdelibs/khtml/html/html_formimpl.cpp
Better add a null check here. Somehow this state can happen --- studying how, but extra paranoia won't
hurt. (Thanks to teve for reporting this)
------------------------------------------------------------------------
Index: khtml/html/html_formimpl.cpp
===================================================================
--- khtml/html/html_formimpl.cpp (revision 1128532)
+++ khtml/html/html_formimpl.cpp (revision 1128533)
@@ -2292,7 +2292,7 @@
// element has an ID, we encoded it as iFoo.
if (!multiple()) {
HTMLOptionElementImpl* item = firstSelectedItem();
- if (item->hasID())
+ if (item && item->hasID())
return QString::fromLatin1("i") + item->getAttribute(ATTR_ID).string();
}
++++++ kinit-su-xauthority.diff ++++++
Subject: Make kdeinit work with kdesu sessions
From: Lubos Lunak
Bug: bnc#450203
Patch-upstream: yes
See the comment in patch.
--- kinit/kinit.cpp.sav 2010-03-16 13:26:22.000000000 +0100
+++ kinit/kinit.cpp 2010-05-31 19:08:32.000000000 +0200
@@ -64,6 +64,7 @@
#include
#include
#include
+#include
#ifdef Q_OS_LINUX
#include
@@ -1574,6 +1575,42 @@ static void setupX()
{
XSetIOErrorHandler(kdeinit_xio_errhandler);
XSetErrorHandler(kdeinit_x_errhandler);
+/*
+ Handle the tricky case of running via kdesu/su/sudo/etc. There the usual case
+ is that kdesu (etc.) creates a file with xauth information, sets XAUTHORITY,
+ runs the command and removes the xauth file after the command finishes. However,
+ dbus and kdeinit daemon currently don't clean up properly and keeping running.
+ Which means that running a KDE app via kdesu the second time talks to kdeinit
+ with obsolete xauth information, which makes it unable to connect to X or launch
+ any X11 applications.
+ Even fixing the cleanup probably wouldn't be sufficient, since it'd be possible to
+ launch one kdesu session, another one, exit the first one and the app from the second
+ session would be using kdeinit from the first one.
+ So the trick here is to duplicate the xauth file to another file in KDE's tmp
+ location, make the file have a consistent name so that future sessions will use it
+ as well, point XAUTHORITY there and never remove the file (except for possible
+ tmp cleanup).
+*/
+ if( !qgetenv( "XAUTHORITY" ).isEmpty()) {
+ QByteArray display = qgetenv( DISPLAY );
+ int i;
+ if((i = display.lastIndexOf('.')) > display.lastIndexOf(':') && i >= 0)
+ display.truncate(i);
+ display.replace(':','_');
+#ifdef __APPLE__
+ display.replace('/','_');
+#endif
+ QString xauth = s_instance->dirs()->saveLocation( "tmp" ) + QLatin1String( "xauth-" )
+ + QString::number( getuid()) + QLatin1String( "-" ) + QString::fromLocal8Bit( display );
+ KSaveFile xauthfile( xauth );
+ QFile xauthfrom( QFile::decodeName( qgetenv( "XAUTHORITY" )));
+ if( !xauthfrom.open( QFile::ReadOnly ) || !xauthfile.open( QFile::WriteOnly )
+ || xauthfile.write( xauthfrom.readAll()) != xauthfrom.size() || !xauthfile.finalize()) {
+ xauthfile.abort();
+ } else {
+ setenv( "XAUTHORITY", QFile::encodeName( xauth ), true );
+ }
+ }
}
// Borrowed from kdebase/kaudio/kaudioserver.cpp
++++++ ksuseinstall.diff ++++++
--- /var/tmp/diff_new_pack.1jEoqI/_old 2010-06-03 17:40:02.000000000 +0200
+++ /var/tmp/diff_new_pack.1jEoqI/_new 2010-06-03 17:40:02.000000000 +0200
@@ -1,6 +1,6 @@
---- kdelibs/CMakeLists.txt.sav 2010-03-16 13:26:56.000000000 +0100
-+++ kdelibs/CMakeLists.txt 2010-03-18 14:59:11.000000000 +0100
-@@ -242,6 +242,7 @@ endif(Soprano_FOUND AND SHAREDDESKTOPONT
+--- kdelibs/CMakeLists.txt.sav 2010-05-25 09:57:06.000000000 +0200
++++ kdelibs/CMakeLists.txt 2010-05-25 09:57:43.000000000 +0200
+@@ -251,6 +251,7 @@ check_library_exists(socket connect "" H
add_subdirectory( cmake )
add_subdirectory( kdecore )
add_subdirectory( kdeui )
@@ -9,8 +9,8 @@
add_subdirectory( kpty )
add_subdirectory( kdesu )
---- kdelibs/kdeui/dialogs/kmessagebox.cpp.sav 2010-04-19 11:55:36.000000000 +0200
-+++ kdelibs/kdeui/dialogs/kmessagebox.cpp 2010-04-19 16:17:38.000000000 +0200
+--- kdelibs/kdeui/dialogs/kmessagebox.cpp.sav 2010-05-25 09:57:06.000000000 +0200
++++ kdelibs/kdeui/dialogs/kmessagebox.cpp 2010-05-25 09:57:43.000000000 +0200
@@ -609,7 +609,7 @@ int KMessageBox::warningYesNoListWId(WId
dialog->setModal( true );
dialog->setButtonGuiItem( KDialog::Yes, buttonYes );
@@ -20,8 +20,8 @@
dialog->setEscapeButton( KDialog::No );
if ( options & PlainCaption ) {
dialog->setPlainCaption( caption );
---- kdelibs/kio/CMakeLists.txt.sav 2010-03-18 14:59:05.000000000 +0100
-+++ kdelibs/kio/CMakeLists.txt 2010-03-18 14:59:11.000000000 +0100
+--- kdelibs/kio/CMakeLists.txt.sav 2010-05-25 09:57:05.000000000 +0200
++++ kdelibs/kio/CMakeLists.txt 2010-05-25 09:57:43.000000000 +0200
@@ -19,6 +19,7 @@ include_directories(
${KDE4_KDEUI_INCLUDES}
${CMAKE_SOURCE_DIR}/solid
@@ -38,8 +38,8 @@
set(SYS_INOTIFY_H_FOUND 0)
if(SYS_INOTIFY_H_FOUND)
---- kdelibs/kio/kio/krun.cpp.sav 2010-04-01 16:08:32.000000000 +0200
-+++ kdelibs/kio/kio/krun.cpp 2010-04-01 17:07:57.000000000 +0200
+--- kdelibs/kio/kio/krun.cpp.sav 2010-05-25 09:57:05.000000000 +0200
++++ kdelibs/kio/kio/krun.cpp 2010-05-25 09:57:43.000000000 +0200
@@ -82,6 +82,8 @@
#include
#endif
@@ -57,8 +57,8 @@
KService::Ptr offer = KMimeTypeTrader::self()->preferredService(_mimetype);
if (!offer) {
---- kdelibs/suseinstall/CMakeLists.txt.sav 2010-03-18 14:59:11.000000000 +0100
-+++ kdelibs/suseinstall/CMakeLists.txt 2010-04-01 17:04:09.000000000 +0200
+--- kdelibs/suseinstall/CMakeLists.txt.sav 2010-05-25 09:57:43.000000000 +0200
++++ kdelibs/suseinstall/CMakeLists.txt 2010-05-25 09:57:43.000000000 +0200
@@ -0,0 +1,27 @@
+#cmake_minimum_required( VERSION 2.6 )
+
@@ -87,8 +87,8 @@
+ DESTINATION ${INCLUDE_INSTALL_DIR} COMPONENT Devel
+ )
+
---- kdelibs/suseinstall/kbuildsycocaprogressdialog.cpp.sav 2010-04-01 18:02:05.000000000 +0200
-+++ kdelibs/suseinstall/kbuildsycocaprogressdialog.cpp 2010-04-01 17:05:54.000000000 +0200
+--- kdelibs/suseinstall/kbuildsycocaprogressdialog.cpp.sav 2010-05-25 09:57:43.000000000 +0200
++++ kdelibs/suseinstall/kbuildsycocaprogressdialog.cpp 2010-05-25 09:57:43.000000000 +0200
@@ -0,0 +1,110 @@
+/* This file is part of the KDE project
+ Copyright (C) 2003 Waldo Bastian
@@ -200,8 +200,8 @@
+}
+
+#include "kbuildsycocaprogressdialog.moc"
---- kdelibs/suseinstall/kbuildsycocaprogressdialog.h.sav 2010-04-01 18:02:07.000000000 +0200
-+++ kdelibs/suseinstall/kbuildsycocaprogressdialog.h 2010-04-01 17:09:06.000000000 +0200
+--- kdelibs/suseinstall/kbuildsycocaprogressdialog.h.sav 2010-05-25 09:57:43.000000000 +0200
++++ kdelibs/suseinstall/kbuildsycocaprogressdialog.h 2010-05-25 09:57:43.000000000 +0200
@@ -0,0 +1,60 @@
+/* This file is part of the KDE project
+ Copyright (C) 2003 Waldo Bastian
@@ -263,9 +263,9 @@
+}
+
+#endif
---- kdelibs/suseinstall/ksuseinstall.cpp.sav 2010-03-18 14:59:11.000000000 +0100
-+++ kdelibs/suseinstall/ksuseinstall.cpp 2010-04-19 17:23:07.000000000 +0200
-@@ -0,0 +1,572 @@
+--- kdelibs/suseinstall/ksuseinstall.cpp.sav 2010-05-25 09:57:43.000000000 +0200
++++ kdelibs/suseinstall/ksuseinstall.cpp 2010-06-01 14:49:29.000000000 +0200
+@@ -0,0 +1,579 @@
+/*****************************************************************************
+
+Copyright (C) 2010 Lubos Lunak
@@ -419,12 +419,14 @@
+ QStringList mimetypes;
+ mimetypes << ( "mimetype(" + mimetype + ")" );
+ mimetypes << ( "mimehandler(" + mimetype + ")" ); // used by rpm 4.9
++#if 0 // do not use wildcarded mimetypes - the only provider for image/* is Evince and for text/* is some Gtk editor
+ if( mimetype.contains( '/' ) && !mimetype.endsWith( "/*" )) // video/avi -> try also video/*
+ {
+ QString mimeWildcard = mimetype.left( mimetype.indexOf( '/' )) + "/*";
+ mimetypes << ( "mimetype(" + mimeWildcard + ")" );
+ mimetypes << ( "mimehandler(" + mimeWildcard + ")" ); // used by rpm 4.9
+ }
++#endif
+ bool changes;
+ bool ret = performInstallCapabilities( mimetypes, OneItemInstall, parent, &changes );
+ if( ret && changes )
@@ -594,6 +596,11 @@
+ if( parent != NULL )
+ proc << "--attach" << QString::number( parent->window()->winId());
+ proc << "--" << "yast2" << "repositories";
++// Only 11.3 and newer have the extra argument that makes all enabled repos also be refreshed (bnc#608562)
++#define HAVE_YAST2_REPOSITORIES_REFRESH_ENABLED
++#ifdef HAVE_YAST2_REPOSITORIES_REFRESH_ENABLED
++ proc << "refresh-enabled";
++#endif
+ return run( proc );
+ }
+
@@ -838,8 +845,8 @@
+ {
+ description->setText( descriptions[ list->indexOfTopLevelItem( list->currentItem()) ] );
+ }
---- kdelibs/suseinstall/ksuseinstall.h.sav 2010-03-18 14:59:11.000000000 +0100
-+++ kdelibs/suseinstall/ksuseinstall.h 2010-04-19 11:31:36.000000000 +0200
+--- kdelibs/suseinstall/ksuseinstall.h.sav 2010-05-25 09:57:43.000000000 +0200
++++ kdelibs/suseinstall/ksuseinstall.h 2010-05-25 09:57:43.000000000 +0200
@@ -0,0 +1,93 @@
+/*****************************************************************************
+
@@ -934,8 +941,8 @@
+ };
+
+#endif
---- kdelibs/suseinstall/ksuseinstall_export.h.sav 2010-03-18 14:59:11.000000000 +0100
-+++ kdelibs/suseinstall/ksuseinstall_export.h 2010-03-18 14:59:11.000000000 +0100
+--- kdelibs/suseinstall/ksuseinstall_export.h.sav 2010-05-25 09:57:43.000000000 +0200
++++ kdelibs/suseinstall/ksuseinstall_export.h 2010-05-25 09:57:43.000000000 +0200
@@ -0,0 +1,40 @@
+/*****************************************************************************
+
++++++ ksuseinstall_11.2.diff ++++++
--- suseinstall/ksuseinstall.cpp.v1 2010-06-01 14:49:29.000000000 +0200
+++ suseinstall/ksuseinstall.cpp 2010-06-01 14:52:40.000000000 +0200
@@ -329,7 +329,7 @@ bool KSUSEInstall::tryAddRepositories( b
proc << "--attach" << QString::number( parent->window()->winId());
proc << "--" << "yast2" << "repositories";
// Only 11.3 and newer have the extra argument that makes all enabled repos also be refreshed (bnc#608562)
-#define HAVE_YAST2_REPOSITORIES_REFRESH_ENABLED
+//#define HAVE_YAST2_REPOSITORIES_REFRESH_ENABLED
#ifdef HAVE_YAST2_REPOSITORIES_REFRESH_ENABLED
proc << "refresh-enabled";
#endif
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org