From 5cc40efed199ce250db146dea980bf4b0b8560dd Mon Sep 17 00:00:00 2001 From: Than Ngo Date: Feb 27 2009 12:21:02 +0000 Subject: 4.2.1 --- diff --git a/.cvsignore b/.cvsignore index c14a696..a11118b 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1,2 @@ kdelibs-4.2.0.tar.bz2 +kdelibs-4.2.1.tar.bz2 diff --git a/kdelibs-4.2.0-kded-kdirwatch.patch b/kdelibs-4.2.0-kded-kdirwatch.patch deleted file mode 100644 index e181b12..0000000 --- a/kdelibs-4.2.0-kded-kdirwatch.patch +++ /dev/null @@ -1,88 +0,0 @@ ---- branches/KDE/4.2/kdelibs/kded/kded.cpp 2009/01/12 21:32:29 910250 -+++ branches/KDE/4.2/kdelibs/kded/kded.cpp 2009/01/30 20:28:25 918838 -@@ -115,9 +115,8 @@ - KToolInvocation::kdeinitExecWait( "kdontchangethehostname", args ); - } - --Kded::Kded(bool checkUpdates) -- : b_checkUpdates(checkUpdates), -- m_needDelayedCheck(false) -+Kded::Kded() -+ : m_needDelayedCheck(false) - { - _self = this; - -@@ -280,7 +279,7 @@ - KSharedConfig::Ptr config = KGlobal::config(); - // Ensure the service exists. - KService::Ptr service = KService::serviceByDesktopPath("kded/"+obj+".desktop"); -- if (!service) -+ if (!service) - return; - KConfigGroup cg(config, QString("Module-%1").arg(service->desktopEntryName())); - cg.writeEntry("autoload", autoload); -@@ -290,7 +289,7 @@ - bool Kded::isModuleAutoloaded(const QString &obj) const - { - KService::Ptr s = KService::serviceByDesktopPath("kded/"+obj+".desktop"); -- if (!s) -+ if (!s) - return false; - return isModuleAutoloaded(s); - } -@@ -307,7 +306,7 @@ - bool Kded::isModuleLoadedOnDemand(const QString &obj) const - { - KService::Ptr s = KService::serviceByDesktopPath("kded/"+obj+".desktop"); -- if (!s) -+ if (!s) - return false; - return isModuleLoadedOnDemand(s); - } -@@ -446,7 +445,7 @@ - - void Kded::updateDirWatch() - { -- if (!b_checkUpdates) return; -+ if (!bCheckUpdates) return; - - delete m_pDirWatch; - m_pDirWatch = new KDirWatch; -@@ -471,7 +470,7 @@ - { - delete KSycoca::self(); - -- if (!b_checkUpdates) return; -+ if (!bCheckUpdates) return; - - if (delayedCheck) return; - -@@ -921,7 +920,7 @@ - checkStamps = cg.readEntry("CheckFileStamps", true); - delayedCheck = cg.readEntry("DelayedCheck", false); - -- Kded *kded = new Kded(false); // Build data base -+ Kded *kded = new Kded(); // Build data base - - KDE_signal(SIGTERM, sighandler); - KDE_signal(SIGHUP, sighandler); ---- branches/KDE/4.2/kdelibs/kded/kded.h 2009/01/06 17:13:38 906699 -+++ branches/KDE/4.2/kdelibs/kded/kded.h 2009/01/30 20:28:25 918838 -@@ -41,7 +41,7 @@ - { - Q_OBJECT - public: -- Kded(bool checkUpdates); -+ Kded(); - virtual ~Kded(); - - static Kded *self() { return _self;} -@@ -186,8 +186,6 @@ - */ - KDirWatch* m_pDirWatch; - -- bool b_checkUpdates; -- - /** - * When a desktop file is updated, a timer is started (5 sec) - * before rebuilding the binary - so that multiple updates result diff --git a/kdelibs-4.2.0-kded.patch b/kdelibs-4.2.0-kded.patch deleted file mode 100644 index de033bc..0000000 --- a/kdelibs-4.2.0-kded.patch +++ /dev/null @@ -1,301 +0,0 @@ -Index: kded/kbuildsycoca.cpp -=================================================================== ---- kded/kbuildsycoca.cpp (Revision 921137) -+++ kded/kbuildsycoca.cpp (Revision 921138) -@@ -514,7 +514,7 @@ - - // Calculate per-servicetype/mimetype data - mimeTypeFactory->parseSubclasses(); -- serviceFactory->populateServiceTypes(); -+ serviceFactory->postProcessServices(); - - // Write factory data.... - for(KSycocaFactoryList::Iterator factory = factories()->begin(); -Index: kded/kbuildservicefactory.cpp -=================================================================== ---- kded/kbuildservicefactory.cpp (Revision 921137) -+++ kded/kbuildservicefactory.cpp (Revision 921138) -@@ -193,13 +193,50 @@ - } - } - -+void KBuildServiceFactory::postProcessServices() -+{ -+ // By doing all this here rather than in addEntry (and removing when replacing -+ // with local override), we only do it for the final applications. - -+ // For every service... -+ KSycocaEntryDict::Iterator itserv = m_entryDict->begin(); -+ const KSycocaEntryDict::Iterator endserv = m_entryDict->end(); -+ for( ; itserv != endserv ; ++itserv ) { -+ -+ KSycocaEntry::Ptr entry = *itserv; -+ KService::Ptr service = KService::Ptr::staticCast(entry); -+ -+ if (!service->isDeleted()) { -+ const QString parent = service->parentApp(); -+ if (!parent.isEmpty()) -+ m_serviceGroupFactory->addNewChild(parent, KSycocaEntry::Ptr::staticCast(service)); -+ } -+ -+ const QString name = service->desktopEntryName(); -+ m_nameDict->add(name, entry); -+ m_nameMemoryHash.insert(name, service); -+ -+ const QString relName = service->entryPath(); -+ //kDebug(7021) << "adding service" << service.data() << service->menuId() << "name=" << name << "relName=" << relName; -+ m_relNameDict->add(relName, entry); -+ m_relNameMemoryHash.insert(relName, service); // for KMimeAssociations -+ -+ const QString menuId = service->menuId(); -+ if (!menuId.isEmpty()) { // empty for services, non-empty for applications -+ m_menuIdDict->add(menuId, entry); -+ m_menuIdMemoryHash.insert(menuId, service); // for KMimeAssociations -+ } -+ } -+ populateServiceTypes(); -+} -+ - void KBuildServiceFactory::populateServiceTypes() - { - // For every service... - KSycocaEntryDict::Iterator itserv = m_entryDict->begin(); - const KSycocaEntryDict::Iterator endserv = m_entryDict->end(); - for( ; itserv != endserv ; ++itserv ) { -+ - KService::Ptr service = KService::Ptr::staticCast(*itserv); - QVector serviceTypeList = service->_k_accessServiceTypes(); - //bool hasAllAll = false; -@@ -336,30 +373,18 @@ - if (m_dupeDict.contains(newEntry)) - return; - -- KSycocaFactory::addEntry(newEntry); -- - const KService::Ptr service = KService::Ptr::staticCast( newEntry ); - m_dupeDict.insert(newEntry); - -- if (!service->isDeleted()) { -- const QString parent = service->parentApp(); -- if (!parent.isEmpty()) -- m_serviceGroupFactory->addNewChild(parent, KSycocaEntry::Ptr::staticCast(service)); -+ KSycocaEntry::Ptr oldEntry = m_entryDict->value(newEntry->storageId()); -+ if (oldEntry) { -+ // Already exists -> replace -+ //KService::Ptr oldService = KService::Ptr::staticCast(oldEntry); -+ // We found a more-local override, e.g. ~/.local/share/applications/kde4/foo.desktop -+ // So forget about the more global file. -+ //kDebug(7021) << "removing" << oldService.data() << oldService->entryPath() << "because of" << service->entryPath(); -+ KSycocaFactory::removeEntry(newEntry->storageId()); - } - -- const QString name = service->desktopEntryName(); -- m_nameDict->add( name, newEntry ); -- m_nameMemoryHash.insert(name, service); -- -- const QString relName = service->entryPath(); -- //kDebug(7021) << "adding service" << service->menuId() << "name=" << name << "relName=" << relName; -- m_relNameDict->add( relName, newEntry ); -- m_relNameMemoryHash.insert(relName, service); // for KMimeAssociations -- -- const QString menuId = service->menuId(); -- if (!menuId.isEmpty()) { -- m_menuIdDict->add( menuId, newEntry ); -- m_menuIdMemoryHash.insert(menuId, service); // for KMimeAssociations -- } -+ KSycocaFactory::addEntry(newEntry); - } -- -Index: kded/vfolder_menu.cpp -=================================================================== ---- kded/vfolder_menu.cpp (Revision 921137) -+++ kded/vfolder_menu.cpp (Revision 921138) -@@ -349,7 +349,7 @@ - VFolderMenu::addApplication(const QString &id, KService::Ptr service) - { - service->setMenuId(id); -- m_appsInfo->applications.insert(id, service); -+ m_appsInfo->applications.insert(id, service); // replaces, if already there - m_serviceFactory->addEntry(KSycocaEntry::Ptr::staticCast(service)); - } - -@@ -1029,7 +1029,7 @@ - void - VFolderMenu::processKDELegacyDirs() - { --kDebug(7021) << "processKDELegacyDirs()"; -+ kDebug(7021); - - QHash items; - QString prefix = "kde4-"; -@@ -1091,7 +1091,7 @@ - void - VFolderMenu::processLegacyDir(const QString &dir, const QString &relDir, const QString &prefix) - { --kDebug(7021).nospace() << "processLegacyDir(" << dir << ", " << relDir << ", " << prefix << ")"; -+ kDebug(7021).nospace() << "processLegacyDir(" << dir << ", " << relDir << ", " << prefix << ")"; - - QHash items; - // We look for a set of files. -Index: kded/kbuildservicefactory.h -=================================================================== ---- kded/kbuildservicefactory.h (Revision 921137) -+++ kded/kbuildservicefactory.h (Revision 921138) -@@ -83,9 +83,10 @@ - */ - static QStringList resourceTypes(); - -- void populateServiceTypes(); -+ void postProcessServices(); - - private: -+ void populateServiceTypes(); - void saveOfferList(QDataStream &str); - void collectInheritedServices(); - void collectInheritedServices(KMimeType::Ptr mime, QSet& visitedMimes); -Index: kdecore/sycoca/ksycocaentry_p.h -=================================================================== ---- kdecore/sycoca/ksycocaentry_p.h (Revision 921137) -+++ kdecore/sycoca/ksycocaentry_p.h (Revision 921138) -@@ -23,7 +23,7 @@ - - #define K_SYCOCATYPE( type, baseclass ) \ - virtual bool isType(KSycocaType t) const { if (t == type) return true; return baseclass::isType(t);} \ -- virtual KSycocaType sycocaType() const { return type; } -+ virtual KSycocaType sycocaType() const { return type; } - - - class KSycocaEntryPrivate -@@ -68,6 +68,8 @@ - - virtual QString name() const = 0; - -+ virtual QString storageId() const { return name(); } -+ - int offset; - bool deleted; - QString path; -Index: kdecore/sycoca/ksycocaentry.cpp -=================================================================== ---- kdecore/sycoca/ksycocaentry.cpp (Revision 921137) -+++ kdecore/sycoca/ksycocaentry.cpp (Revision 921138) -@@ -106,6 +106,12 @@ - return d->path; - } - -+QString KSycocaEntry::storageId() const -+{ -+ Q_D(const KSycocaEntry); -+ return d->storageId(); -+} -+ - bool KSycocaEntry::isDeleted() const - { - Q_D(const KSycocaEntry); -@@ -164,5 +170,3 @@ - Q_D(const KSycocaEntry); - return d->property(name); - } -- -- -Index: kdecore/sycoca/ksycocaentry.h -=================================================================== ---- kdecore/sycoca/ksycocaentry.h (Revision 921137) -+++ kdecore/sycoca/ksycocaentry.h (Revision 921138) -@@ -86,6 +86,13 @@ - QString entryPath() const; - - /** -+ * @return the unique ID for this entry -+ * In practice, this is storageId() for KService and name() for everything else. -+ * \since 4.2.1 -+ */ -+ QString storageId() const; -+ -+ /** - * @return true if valid - */ - bool isValid() const; -@@ -117,7 +124,7 @@ - */ - void setDeleted( bool deleted ); - -- -+ - /* - * @returns true, if this is a separator - */ -Index: kdecore/sycoca/ksycocafactory.cpp -=================================================================== ---- kdecore/sycoca/ksycocafactory.cpp (Revision 921137) -+++ kdecore/sycoca/ksycocafactory.cpp (Revision 921138) -@@ -150,12 +150,8 @@ - - if (!d->m_sycocaDict) return; // Error! - -- // Note that we use a QMultiHash since there can be several entries -- // with the same name (e.g. kfmclient.desktop and konqbrowser.desktop both -- // have Name=Konqueror). -- -- const QString name = newEntry->name(); -- m_entryDict->insertMulti( name, newEntry ); -+ const QString name = newEntry->storageId(); -+ m_entryDict->insert( name, newEntry ); - d->m_sycocaDict->add( name, newEntry ); - } - -Index: kdecore/sycoca/ksycoca.cpp -=================================================================== ---- kdecore/sycoca/ksycoca.cpp (Revision 921137) -+++ kdecore/sycoca/ksycoca.cpp (Revision 921138) -@@ -43,7 +43,7 @@ - * If the existing file is outdated, it will not get read - * but instead we'll ask kded to regenerate a new one... - */ --#define KSYCOCA_VERSION 130 -+#define KSYCOCA_VERSION 131 - - /** - * Sycoca file name, used internally (by kbuildsycoca) -Index: kdecore/services/kservice_p.h -=================================================================== ---- kdecore/services/kservice_p.h (Revision 921137) -+++ kdecore/services/kservice_p.h (Revision 921138) -@@ -51,6 +51,13 @@ - return m_strName; - } - -+ virtual QString storageId() const -+ { -+ if (!menuId.isEmpty()) -+ return menuId; -+ return path; -+ } -+ - virtual bool isValid() const - { - return m_bValid; -Index: kdecore/services/kservice.cpp -=================================================================== ---- kdecore/services/kservice.cpp (Revision 921137) -+++ kdecore/services/kservice.cpp (Revision 921138) -@@ -704,7 +704,7 @@ - return QString(); - } - } -- -+ - return it->toString(); - } - -@@ -736,9 +736,7 @@ - QString KService::storageId() const - { - Q_D(const KService); -- if (!d->menuId.isEmpty()) -- return d->menuId; -- return entryPath(); -+ return d->storageId(); - } - - QString KService::locateLocal() const diff --git a/kdelibs-4.2.0-kmainwindow-crash.patch b/kdelibs-4.2.0-kmainwindow-crash.patch deleted file mode 100644 index c8454a2..0000000 --- a/kdelibs-4.2.0-kmainwindow-crash.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: kdeui/widgets/kmainwindow.cpp -=================================================================== ---- kdeui/widgets/kmainwindow.cpp (Revision 918168) -+++ kdeui/widgets/kmainwindow.cpp (Revision 918169) -@@ -461,6 +461,7 @@ - KMainWindow::~KMainWindow() - { - sMemberList->removeAll( this ); -+ delete k_ptr->dockResizeListener; //so we don't get anymore events after k_ptr is destroyed - delete k_ptr; - KGlobal::deref(); - } diff --git a/kdelibs-4.2.0-plasma-qt45.patch b/kdelibs-4.2.0-plasma-qt45.patch deleted file mode 100644 index c5633d5..0000000 --- a/kdelibs-4.2.0-plasma-qt45.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -up kdelibs-4.2.0/plasma/extender.cpp.orig kdelibs-4.2.0/plasma/extender.cpp ---- kdelibs-4.2.0/plasma/extender.cpp.orig 2009-02-12 21:55:46.000000000 +0100 -+++ kdelibs-4.2.0/plasma/extender.cpp 2009-02-12 21:56:54.000000000 +0100 -@@ -467,6 +467,9 @@ void ExtenderPrivate::updateBorders() - - void ExtenderPrivate::adjustSizeHints() - { -+#if (QT_VERSION >= QT_VERSION_CHECK(4, 90, 0)) -+ return; -+#endif - //FIXME: what happens in this function are some nasty workarounds for a bug in qt4.4's QGL. - //Alexis has told me they are working on a fix for qt4.5, so this can be removed once the bug - //has been fixed in Qt. diff --git a/kdelibs-4.2.0-ssl_proxy.patch b/kdelibs-4.2.0-ssl_proxy.patch deleted file mode 100644 index 7ea8fa1..0000000 --- a/kdelibs-4.2.0-ssl_proxy.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- trunk/KDE/kdelibs/kio/kio/tcpslavebase.cpp 2009/01/14 00:07:11 910707 -+++ trunk/KDE/kdelibs/kio/kio/tcpslavebase.cpp 2009/01/14 00:07:20 910708 -@@ -177,8 +177,6 @@ - success = d->socket.waitForBytesWritten(0); - } - -- d->socket.flush(); //this is supposed to get the data on the wire faster -- - if (d->socket.state() != KTcpSocket::ConnectedState || !success) { - kDebug(7027) << "Write failed, will return -1! Socket error is" - << d->socket.error() << ", Socket state is" << d->socket.state() -@@ -198,10 +196,12 @@ - return -1; - } - -- if (d->isBlocking && !d->socket.bytesAvailable()) { -- d->socket.waitForReadyRead(-1); -- } else { -- d->socket.waitForReadyRead(0); -+ if (!d->socket.bytesAvailable()) { -+ if (d->isBlocking) { -+ d->socket.waitForReadyRead(-1); -+ } else { -+ d->socket.waitForReadyRead(0); -+ } - } - - return d->socket.read(data, len); diff --git a/kdelibs-4.2.1-kde#917170.patch b/kdelibs-4.2.1-kde#917170.patch deleted file mode 100644 index 8f2d6bc..0000000 --- a/kdelibs-4.2.1-kde#917170.patch +++ /dev/null @@ -1,130 +0,0 @@ -Index: kio/kio/copyjob.h -=================================================================== ---- kio/kio/copyjob.h (revision 917169) -+++ kio/kio/copyjob.h (revision 917170) -@@ -245,6 +245,7 @@ - - protected: - CopyJob(CopyJobPrivate &dd); -+ void emitResult(); - - private: - Q_PRIVATE_SLOT(d_func(), void slotStart()) -Index: kio/kio/copyjob.cpp -=================================================================== ---- kio/kio/copyjob.cpp (revision 917169) -+++ kio/kio/copyjob.cpp (revision 917170) -@@ -153,7 +153,7 @@ - QList dirs; - KUrl::List dirsToRemove; - KUrl::List m_srcList; -- KUrl::List m_skippedSourceUrls; -+ KUrl::List m_successSrcList; - KUrl::List::const_iterator m_currentStatSrc; - bool m_bCurrentSrcIsDir; - bool m_bCurrentOperationIsLink; -@@ -770,10 +770,6 @@ - - void CopyJobPrivate::skip( const KUrl & sourceUrl ) - { -- // If this is one if toplevel sources, -- // remove it from d->m_srcList, for a correct FilesRemoved() signal -- // But don't do it right away, we have iterators into that list (#157601) -- m_skippedSourceUrls.append( sourceUrl ); - dirsToRemove.removeAll( sourceUrl ); - } - -@@ -857,6 +853,7 @@ - { - //this is required for the undo feature - emit q->copyingDone( q, (*it).uSource, (*it).uDest, (*it).mtime, true, false ); -+ m_successSrcList.append((*it).uSource); - m_directoriesCopied.append( *it ); - dirs.erase( it ); - } -@@ -1118,6 +1115,7 @@ - emit q->copyingDone( q, (*it).uSource, (*it).uDest, (*it).mtime, false, false ); - if (m_mode == CopyJob::Move) - org::kde::KDirNotify::emitFileMoved( (*it).uSource.url(), (*it).uDest.url() ); -+ m_successSrcList.append((*it).uSource); - } - // remove from list, to move on to next file - files.erase( it ); -@@ -1372,7 +1370,7 @@ - KIO::Job * newjob = 0; - if ( m_mode == CopyJob::Link ) { - // User requested that a symlink be made -- JobFlags flags = bOverwrite ? Overwrite : DefaultFlags; -+ const JobFlags flags = bOverwrite ? Overwrite : DefaultFlags; - newjob = linkNextFile(uSource, uDest, flags); - if (!newjob) - return; -@@ -1384,7 +1382,7 @@ - (uSource.pass() == uDest.pass())) - // Copying a symlink - only on the same protocol/host/etc. (#5601, downloading an FTP file through its link), - { -- JobFlags flags = bOverwrite ? Overwrite : DefaultFlags; -+ const JobFlags flags = bOverwrite ? Overwrite : DefaultFlags; - KIO::SimpleJob *newJob = KIO::symlink( (*it).linkDest, uDest, flags | HideProgressInfo /*no GUI*/ ); - Scheduler::scheduleJob(newJob); - newjob = newJob; -@@ -1509,23 +1507,6 @@ - // but then we need to jump to the else part below. Maybe with a recursive call? - #endif - } else { -- // Finished - tell the world -- if ( !m_bOnlyRenames ) -- { -- KUrl url( m_globalDest ); -- if ( m_globalDestinationState != DEST_IS_DIR || m_asMethod ) -- url.setPath( url.directory() ); -- //kDebug(7007) << "KDirNotify'ing FilesAdded " << url; -- org::kde::KDirNotify::emitFilesAdded( url.url() ); -- -- Q_FOREACH(const KUrl& url, m_skippedSourceUrls) -- m_srcList.removeAll(url); -- -- if ( m_mode == CopyJob::Move && !m_srcList.isEmpty() ) { -- //kDebug(7007) << "KDirNotify'ing FilesRemoved " << m_srcList.toStringList(); -- org::kde::KDirNotify::emitFilesRemoved( m_srcList.toStringList() ); -- } -- } - if (m_reportTimer) - m_reportTimer->stop(); - --m_processedFiles; // undo the "start at 1" hack -@@ -1535,6 +1516,27 @@ - } - } - -+void CopyJob::emitResult() -+{ -+ Q_D(CopyJob); -+ // Before we go, tell the world about the changes that were made. -+ // Even if some error made us abort midway, we might still have done -+ // part of the job so we better update the views! (#118583) -+ if (!d->m_bOnlyRenames) { -+ KUrl url(d->m_globalDest); -+ if (d->m_globalDestinationState != DEST_IS_DIR || d->m_asMethod) -+ url.setPath(url.directory()); -+ //kDebug(7007) << "KDirNotify'ing FilesAdded " << url; -+ org::kde::KDirNotify::emitFilesAdded( url.url() ); -+ -+ if (d->m_mode == CopyJob::Move && !d->m_successSrcList.isEmpty()) { -+ kDebug(7007) << "KDirNotify'ing FilesRemoved" << d->m_successSrcList.toStringList(); -+ org::kde::KDirNotify::emitFilesRemoved(d->m_successSrcList.toStringList()); -+ } -+ } -+ Job::emitResult(); -+} -+ - void CopyJobPrivate::slotProcessedSize( KJob*, qulonglong data_size ) - { - Q_Q(CopyJob); -@@ -1801,6 +1803,7 @@ - kDebug(7007) << "Renaming succeeded, move on"; - ++m_processedFiles; - emit q->copyingDone( q, *m_currentStatSrc, dest, -1 /*mtime unknown, and not needed*/, true, true ); -+ m_successSrcList.append(*m_currentStatSrc); - statNextSrc(); - } - } diff --git a/kdelibs-4.2.1-kde#918403.patch b/kdelibs-4.2.1-kde#918403.patch deleted file mode 100644 index 7100073..0000000 --- a/kdelibs-4.2.1-kde#918403.patch +++ /dev/null @@ -1,87 +0,0 @@ -Index: kinit/klauncher.cpp -=================================================================== ---- kinit/klauncher.cpp (revision 918402) -+++ kinit/klauncher.cpp (revision 918403) -@@ -167,7 +167,7 @@ - - KLauncher::KLauncher(int _kdeinitSocket) - : QObject(0), -- kdeinitSocket(_kdeinitSocket), dontBlockReading(false) -+ kdeinitSocket(_kdeinitSocket) - { - #ifdef Q_WS_X11 - mCached_dpy = NULL; -@@ -276,8 +276,24 @@ - { - ssize_t result; - int bytes_left = len; -- while ( bytes_left > 0) -- { -+ while (bytes_left > 0) { -+ // in case we get a request to start an application and data arrive -+ // to kdeinitSocket at the same time, requestStart() will already -+ // call slotKDEInitData(), so we must check there's still something -+ // to read, otherwise this would block -+ -+ // Same thing if kdeinit dies without warning. -+ -+ fd_set in; -+ timeval tm = { 30, 0 }; // 30 seconds timeout, so we're not stuck in case kdeinit dies on us -+ FD_ZERO ( &in ); -+ FD_SET( sock, &in ); -+ select( sock + 1, &in, 0, 0, &tm ); -+ if( !FD_ISSET( sock, &in )) { -+ kDebug(7016) << "read_socket" << sock << "nothing to read, kdeinit4 must be dead"; -+ return -1; -+ } -+ - result = read(sock, buffer, bytes_left); - if (result > 0) - { -@@ -298,21 +314,7 @@ - { - klauncher_header request_header; - QByteArray requestData; -- if( dontBlockReading ) -- { -- // in case we get a request to start an application and data arrive -- // to kdeinitSocket at the same time, requestStart() will already -- // call slotKDEInitData(), so we must check there's still something -- // to read, otherwise this would block -- fd_set in; -- timeval tm = { 0, 0 }; -- FD_ZERO ( &in ); -- FD_SET( kdeinitSocket, &in ); -- select( kdeinitSocket + 1, &in, 0, 0, &tm ); -- if( !FD_ISSET( kdeinitSocket, &in )) -- return; -- } -- dontBlockReading = false; -+ - int result = read_socket(kdeinitSocket, (char *) &request_header, - sizeof( request_header)); - if (result == -1) -@@ -647,17 +649,21 @@ - request_header.cmd = LAUNCHER_EXEC_NEW; - #endif - request_header.arg_length = requestData.length(); -+ -+#ifdef KLAUNCHER_VERBOSE_OUTPUT -+ kDebug(7016) << "Asking kdeinit to start" << request->name << request->arg_list -+ << "cmd=" << commandToString(request_header.cmd); -+#endif -+ - write(kdeinitSocket, &request_header, sizeof(request_header)); - write(kdeinitSocket, requestData.data(), requestData.length()); - - // Wait for pid to return. - lastRequest = request; -- dontBlockReading = false; - do { - slotKDEInitData( kdeinitSocket ); - } - while (lastRequest != 0); -- dontBlockReading = true; - #endif - } - diff --git a/kdelibs-4.2.1-kde#918654.patch b/kdelibs-4.2.1-kde#918654.patch deleted file mode 100644 index 10af463..0000000 --- a/kdelibs-4.2.1-kde#918654.patch +++ /dev/null @@ -1,129 +0,0 @@ -Index: kinit/klauncher.cpp -=================================================================== ---- kinit/klauncher.cpp (revision 918653) -+++ kinit/klauncher.cpp (revision 918654) -@@ -58,6 +58,9 @@ - - // #define KLAUNCHER_VERBOSE_OUTPUT - -+static const char* const s_DBusStartupTypeToString[] = -+ { "DBusNone", "DBusUnique", "DBusMulti", "DBusWait", "ERROR" }; -+ - using namespace KIO; - - IdleSlave::IdleSlave(QObject *parent) -@@ -393,15 +396,19 @@ - if (request->pid == pid) - { - if (request->dbus_startup_type == KService::DBusWait) -- request->status = KLaunchRequest::Done; -+ request->status = KLaunchRequest::Done; - else if ((request->dbus_startup_type == KService::DBusUnique) -- && QDBusConnection::sessionBus().interface()->isServiceRegistered(request->dbus_name)) -- request->status = KLaunchRequest::Running; -- else -- request->status = KLaunchRequest::Error; -+ && QDBusConnection::sessionBus().interface()->isServiceRegistered(request->dbus_name)) { -+ request->status = KLaunchRequest::Running; - #ifdef KLAUNCHER_VERBOSE_OUTPUT -- kDebug(7016) << pid << "died, requestDone. status=" << request->status; -+ kDebug(7016) << pid << "running as a unique app"; - #endif -+ } else { -+ request->status = KLaunchRequest::Error; -+#ifdef KLAUNCHER_VERBOSE_OUTPUT -+ kDebug(7016) << pid << "died, requestDone. status=" << request->status; -+#endif -+ } - requestDone(request); - return; - } -@@ -446,19 +453,29 @@ - if (request->status != KLaunchRequest::Launching) - continue; - -+#ifdef KLAUNCHER_VERBOSE_OUTPUT -+ kDebug(7016) << "had pending request" << request->name << s_DBusStartupTypeToString[request->dbus_startup_type] << "dbus_name" << request->dbus_name << request->tolerant_dbus_name; -+#endif - // For unique services check the requested service name first -- if ((request->dbus_startup_type == KService::DBusUnique) && -- ((appId == request->dbus_name) || -- QDBusConnection::sessionBus().interface()->isServiceRegistered(request->dbus_name))) -- { -- request->status = KLaunchRequest::Running; -- requestDone(request); -- continue; -+ if (request->dbus_startup_type == KService::DBusUnique) { -+ if ((appId == request->dbus_name) || // just started -+ QDBusConnection::sessionBus().interface()->isServiceRegistered(request->dbus_name)) { // was already running -+ request->status = KLaunchRequest::Running; -+#ifdef KLAUNCHER_VERBOSE_OUTPUT -+ kDebug(7016) << "OK, unique app" << request->dbus_name << "is running"; -+#endif -+ requestDone(request); -+ continue; -+ } else { -+#ifdef KLAUNCHER_VERBOSE_OUTPUT -+ kDebug(7016) << "unique app" << request->dbus_name << "not running yet"; -+#endif -+ } - } - -- const QString rAppId = request->dbus_name; -+ const QString rAppId = !request->tolerant_dbus_name.isEmpty() ? request->tolerant_dbus_name : request->dbus_name; - #ifdef KLAUNCHER_VERBOSE_OUTPUT -- kDebug(7016) << "had pending request" << rAppId; -+ //kDebug(7016) << "using" << rAppId << "for matching"; - #endif - if (rAppId.isEmpty()) - continue; -@@ -818,11 +835,18 @@ - request->dbus_name = v.toString().toUtf8(); - } - if (request->dbus_name.isEmpty()) { -- request->dbus_name = "*." + QFile::encodeName(KRun::binaryName(service->exec(), true)); -+ const QString binName = KRun::binaryName(service->exec(), true); -+ request->dbus_name = "org.kde." + binName; -+ request->tolerant_dbus_name = "*." + binName; - } - } - } - -+#ifdef KLAUNCHER_VERBOSE_OUTPUT -+ kDebug(7016) << "name=" << request->name << "dbus_name=" << request->dbus_name -+ << "startup type=" << s_DBusStartupTypeToString[request->dbus_startup_type]; -+#endif -+ - request->pid = 0; - request->envs = envs; - send_service_startup_info( request, service, startup_id, envs ); -@@ -938,7 +962,7 @@ - request->arg_list.append(arg.toLocal8Bit()); - } - -- request->name = app.toLocal8Bit(); -+ request->name = app; - - if (wait) - request->dbus_startup_type = KService::DBusWait; -@@ -1113,7 +1137,7 @@ - } - if (mSlaveValgrind == arg1) - { -- arg_list.prepend(QFile::encodeName(KLibLoader::findLibrary(name.toLocal8Bit()))); -+ arg_list.prepend(QFile::encodeName(KLibLoader::findLibrary(name))); - arg_list.prepend(QFile::encodeName(KStandardDirs::locate("exe", "kioslave"))); - name = "valgrind"; - if (!mSlaveValgrindSkin.isEmpty()) { -Index: kinit/klauncher.h -=================================================================== ---- kinit/klauncher.h (revision 918653) -+++ kinit/klauncher.h (revision 918654) -@@ -87,6 +87,7 @@ - QString name; - QStringList arg_list; - QString dbus_name; -+ QString tolerant_dbus_name; - enum status_t { Init = 0, Launching, Running, Error, Done }; - pid_t pid; - status_t status; diff --git a/kdelibs.spec b/kdelibs.spec index fa50f69..25aeb89 100644 --- a/kdelibs.spec +++ b/kdelibs.spec @@ -1,6 +1,6 @@ Summary: K Desktop Environment 4 - Libraries -Version: 4.2.0 -Release: 17%{?dist} +Version: 4.2.1 +Release: 1%{?dist} %if 0%{?fedora} > 8 Name: kdelibs @@ -84,21 +84,10 @@ Patch24: kdelibs-4.2.0-kjs-gcc44-crash.patch Patch25: kdelibs-4.2.0-gcc44-misc.patch # upstream -# 4.3 branch -Patch101: kdelibs-4.1.96-AllowExternalPaths.patch - # 4.2 branch -Patch110: kdelibs-4.2.1-kde#917170.patch -Patch111: kdelibs-4.2.1-kde#918403.patch -Patch112: kdelibs-4.2.1-kde#918654.patch -Patch113: kdelibs-4.2.0-kded-kdirwatch.patch -# http://bugs.kde.org/179934 -Patch114: kdelibs-4.2.0-ssl_proxy.patch -Patch115: kdelibs-4.2.0-kded.patch -Patch116: kdelibs-4.2.0-plasma-qt45.patch -# fix crash in ~KMainWindow triggered by sending messages in KNode (kde#182322) -# http://websvn.kde.org/?view=rev&revision=918169 -Patch117: kdelibs-4.2.0-kmainwindow-crash.patch + +# 4.3 branch +Patch200: kdelibs-4.1.96-AllowExternalPaths.patch BuildRequires: qt4-devel >= 4.4.0 # qt4%{_?_isa} isn't provided yet -- Rex @@ -231,15 +220,10 @@ sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanage %patch25 -p1 -b .gcc44-misc # upstream patches -%patch101 -p1 -b .AllowExternalPaths -%patch110 -p0 -b .kde#917170 -%patch111 -p0 -b .kde#918403 -%patch112 -p0 -b .kde#918654 -%patch113 -p4 -b .kde#182472 -%patch114 -p3 -b .kde#179934 -%patch115 -p0 -b .kded -%patch116 -p1 -b .qt45 -%patch117 -p0 -b .kmainwindow-crash +# 4.2 + +# 4.3 +%patch200 -p1 -b .AllowExternalPaths %build @@ -417,6 +401,9 @@ rm -rf %{buildroot} %changelog +* Fri Feb 27 2009 Than Ngo - 4.2.1-1 +- 4.2.1 + * Thu Feb 26 2009 Than Ngo 4.2.0-17 - fix build issue against gcc44 diff --git a/sources b/sources index 672ef83..c84374e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -2d830a922195fefe6e073111850247ac kdelibs-4.2.0.tar.bz2 +3ccc094df33db9d61f5ad065b9b857ac kdelibs-4.2.1.tar.bz2