diff --git a/kdelibs-4.0.5-kio-ftp-overwrite.patch b/kdelibs-4.0.5-kio-ftp-overwrite.patch new file mode 100644 index 0000000..c131907 --- /dev/null +++ b/kdelibs-4.0.5-kio-ftp-overwrite.patch @@ -0,0 +1,30 @@ +--- kdelibs/kioslave/ftp/ftp.cpp 2008/06/09 12:31:52 818728 ++++ kdelibs/kioslave/ftp/ftp.cpp 2008/06/09 12:41:22 818729 +@@ -1041,12 +1041,23 @@ + error( ERR_CANNOT_RENAME, src.path() ); + } + +-bool Ftp::ftpRename( const QString & src, const QString & dst, KIO::JobFlags ) ++bool Ftp::ftpRename( const QString & src, const QString & dst, KIO::JobFlags jobFlags) + { +- // TODO honor overwrite +- assert( m_bLoggedOn ); ++ assert( m_bLoggedOn ); ++ ++ // Must check if dst already exists, RNFR+RNTO overwrites by default (#127793). ++ if (!(jobFlags & KIO::Overwrite)) { ++ if (ftpSize(dst, 'I')) { ++ error(ERR_FILE_ALREADY_EXIST, dst); ++ return false; ++ } ++ } ++ if (ftpFolder(dst, false)) { ++ error(ERR_DIR_ALREADY_EXIST, dst); ++ return false; ++ } + +- int pos = src.lastIndexOf("/"); ++ int pos = src.lastIndexOf('/'); + if( !ftpFolder(src.left(pos+1), false) ) + return false; + diff --git a/kdelibs-4.0.5-kio-subjob.patch b/kdelibs-4.0.5-kio-subjob.patch new file mode 100644 index 0000000..7622d8b --- /dev/null +++ b/kdelibs-4.0.5-kio-subjob.patch @@ -0,0 +1,25 @@ +--- kdelibs/kio/kio/job.cpp 2008/06/02 11:36:24 815621 ++++ kdelibs/kio/kio/job.cpp 2008/06/02 11:38:26 815622 +@@ -2096,14 +2096,20 @@ + else if (job == d->m_getJob) + { + d->m_getJob = 0L; +- if (d->m_putJob) ++ if (d->m_putJob) ++ { + d->m_putJob->kill( Quietly ); ++ removeSubjob( d->m_putJob ); ++ } + } + else if (job == d->m_putJob) + { + d->m_putJob = 0L; +- if (d->m_getJob) ++ if (d->m_getJob) ++ { + d->m_getJob->kill( Quietly ); ++ removeSubjob( d->m_getJob ); ++ } + } + setError( job->error() ); + setErrorText( job->errorText() ); diff --git a/kdelibs-4.0.5-kprotocolcombo.patch b/kdelibs-4.0.5-kprotocolcombo.patch new file mode 100644 index 0000000..3b2977a --- /dev/null +++ b/kdelibs-4.0.5-kprotocolcombo.patch @@ -0,0 +1,20 @@ +--- kdelibs/kfile/kprotocolcombo.cpp 2008/06/01 16:35:46 815383 ++++ kdelibs/kfile/kprotocolcombo.cpp 2008/06/01 16:37:33 815384 +@@ -36,15 +36,11 @@ + { + qSort(m_protocols); + QStringList::iterator it = m_protocols.begin(); +- QStringList::iterator itEnd = m_protocols.end(); + menu = new QMenu(this); +- while (it != itEnd) { ++ while (it != m_protocols.end()) { + const KUrl url(*it + "://"); + if (!KProtocolManager::supportsListing(url)) { +- QStringList::iterator tempIt = it; +- ++tempIt; +- m_protocols.erase(it); +- it = tempIt; ++ it = m_protocols.erase(it); + } else { + ++it; + } diff --git a/kdelibs-4.0.5-strigi-metainfo.patch b/kdelibs-4.0.5-strigi-metainfo.patch new file mode 100644 index 0000000..089eeaa --- /dev/null +++ b/kdelibs-4.0.5-strigi-metainfo.patch @@ -0,0 +1,28 @@ +--- kdelibs/kio/kio/kfilemetainfo.cpp 2008/06/06 22:10:03 817892 ++++ kdelibs/kio/kio/kfilemetainfo.cpp 2008/06/06 22:13:15 817893 +@@ -56,7 +56,7 @@ + QIODevice& in; + int32_t fillBuffer(char* start, int32_t space); + public: +- QIODeviceInputStream(QIODevice& i) :in(i) {} ++ QIODeviceInputStream(QIODevice& i); + }; + int32_t + QIODeviceInputStream::fillBuffer(char* start, int32_t space) { +@@ -74,6 +74,16 @@ + } + return nwritten; + } ++ ++QIODeviceInputStream::QIODeviceInputStream(QIODevice &i) :in(i) ++{ ++ // determine if we have a character device, which will likely never eof and thereby ++ // potentially cause an infinite loop. ++ if(i.isSequential()) { ++ in.close(); // cause fillBuffer to return -1 ++ } ++} ++ + /** + * @brief KMetaInfoWriter handles the data returned by the Strigi analyzers and + * store it in a KFileMetaInfo. diff --git a/kdelibs.spec b/kdelibs.spec index 026b439..d9d1ec3 100644 --- a/kdelibs.spec +++ b/kdelibs.spec @@ -1,7 +1,7 @@ Summary: K Desktop Environment 4 - Libraries Version: 4.0.5 -Release: 1%{?dist} +Release: 2%{?dist} %if 0%{?fedora} > 8 Name: kdelibs @@ -77,6 +77,14 @@ Patch14: kdelibs-4.0.3-libexecdir.patch Patch15: kdelibs-4.0.4-proxy.patch # forward port kstandarddirs hack to search /etc/kde Patch18: kdelibs-4.0.4-kstandarddirs.patch +# kdebug:162956: Kopete Press File Transfer crash +Patch19: kdelibs-4.0.5-kprotocolcombo.patch +# kdebug:162285: click on add network folder crashes dolphin +Patch20: kdelibs-4.0.5-kio-subjob.patch +# kdebug:163050: Strigi indexing of large/unbounded files causes KFileMetaInfo to freeze +Patch21: kdelibs-4.0.5-strigi-metainfo.patch +# kdebug:127793: Renaming in FTP overwrites existing files without confirmation +Patch22: kdelibs-4.0.5-kio-ftp-overwrite.patch ## upstream patches Patch100: kdelibs-4.0.4-khtml-stylesheet.patch @@ -198,13 +206,16 @@ sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanage %patch14 -p1 -b .libexecdir %patch15 -p0 -b .proxy %patch18 -p1 -b .kstandarddirs +%patch19 -p1 -b .kprotocolcombo +%patch20 -p1 -b .kio-subjob +%patch21 -p1 -b .strigi-metainfo +%patch22 -p1 -b .kio-ftp-overwrite # upstream patches %patch100 -p1 -b .khtml-stylesheet %patch101 -p1 -b .iconload %build - mkdir -p %{_target_platform} pushd %{_target_platform} %{cmake_kde4} -DKDE_DISTRIBUTION_TEXT="%{version}-%{release} Fedora" .. @@ -362,11 +373,17 @@ rm -rf %{buildroot} %changelog -* Sat May 31 2008 Than Ngo 4.0.5-1 +* Tue Jun 10 2008 Lukáš Tinkl - 4.0.5-2 +- kopete crashes with sending files over AIM/ICQ (kdebug:162956) +- fix crashes when adding a new network folder (kdebug:162285) +- KFileMetaInfo freezes when Strigi indexes non-sequential files (kdebug:163050) +- renaming in FTP overwrites existing files without confirmation (kdebug:127793) + +* Sat May 31 2008 Than Ngo - 4.0.5-1 - 4.0.5 - backport patch from 4.1 branch to fix inherit issue in iconload, #448536 -* Fri May 30 2008 Than Ngo 4.0.4-11 +* Fri May 30 2008 Than Ngo - 4.0.4-11 - fix #447965, order issue in kde path, thanks to Kevin - backport patch from 4.1 branch to check html style version