Hello community, here is the log from the commit of package karchive for openSUSE:Factory checked in at 2015-04-13 20:26:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/karchive (Old) and /work/SRC/openSUSE:Factory/.karchive.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "karchive" Changes: -------- --- /work/SRC/openSUSE:Factory/karchive/karchive.changes 2015-03-16 09:33:11.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.karchive.new/karchive.changes 2015-04-13 20:26:25.000000000 +0200 @@ -1,0 +2,10 @@ +Sat Apr 4 14:40:52 UTC 2015 - hrvoje.sen...@gmail.com + +- Update to 5.9.0 + * Respect KZip::extraField setting also when writing + central header entries + * Remove two erroneous asserts, happening when disk is full, kde#343214 + * For more details please see: + https://www.kde.org/announcements/kde-frameworks-5.9.0.php + +------------------------------------------------------------------- Old: ---- karchive-5.8.0.tar.xz New: ---- karchive-5.9.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ karchive.spec ++++++ --- /var/tmp/diff_new_pack.zg8s0K/_old 2015-04-13 20:26:25.000000000 +0200 +++ /var/tmp/diff_new_pack.zg8s0K/_new 2015-04-13 20:26:25.000000000 +0200 @@ -17,12 +17,12 @@ %define lname libKF5Archive5 -%define _tar_path 5.8 +%define _tar_path 5.9 Name: karchive -Version: %{_tar_path}.0 +Version: 5.9.0 Release: 0 BuildRequires: cmake >= 2.8.12 -BuildRequires: extra-cmake-modules >= 1.8.0 +BuildRequires: extra-cmake-modules >= %{_tar_path} BuildRequires: fdupes BuildRequires: kf5-filesystem BuildRequires: pkgconfig(Qt5Core) >= 5.2.0 @@ -79,7 +79,7 @@ %install %kf5_makeinstall -C build - %fdupes -s %{buildroot} + %fdupes %{buildroot} %post -n %lname -p /sbin/ldconfig ++++++ karchive-5.8.0.tar.xz -> karchive-5.9.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/karchive-5.8.0/CMakeLists.txt new/karchive-5.9.0/CMakeLists.txt --- old/karchive-5.8.0/CMakeLists.txt 2015-02-25 15:17:06.000000000 +0100 +++ new/karchive-5.9.0/CMakeLists.txt 2015-04-04 13:46:49.000000000 +0200 @@ -2,7 +2,7 @@ project(KArchive) -find_package(ECM 1.8.0 REQUIRED NO_MODULE) +find_package(ECM 5.9.0 REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) @@ -45,7 +45,7 @@ include(ECMSetupVersion) include(ECMGenerateHeaders) -set(KF5_VERSION "5.8.0") # handled by release scripts +set(KF5_VERSION "5.9.0") # handled by release scripts ecm_setup_version(${KF5_VERSION} VARIABLE_PREFIX KARCHIVE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/karchive-5.8.0/src/kzip.cpp new/karchive-5.9.0/src/kzip.cpp --- old/karchive-5.8.0/src/kzip.cpp 2015-02-25 15:17:06.000000000 +0100 +++ new/karchive-5.9.0/src/kzip.cpp 2015-04-04 13:46:49.000000000 +0200 @@ -861,8 +861,8 @@ QByteArray path = QFile::encodeName(it.value()->path()); - const int extra_field_len = 9; - int bufferSize = extra_field_len + path.length() + 46; + const int extra_field_len = (d->m_extraField == ModificationTime) ? 9 : 0; + const int bufferSize = extra_field_len + path.length() + 46; char *buffer = new char[ bufferSize ]; memset(buffer, 0, 46); // zero is a nice default for most header fields @@ -920,19 +920,22 @@ //qDebug() << "closearchive length to write: " << bufferSize; // extra field - char *extfield = buffer + 46 + path.length(); - extfield[0] = 'U'; - extfield[1] = 'T'; - extfield[2] = 5; - extfield[3] = 0; - extfield[4] = 1 | 2 | 4; // specify flags from local field - // (unless I misread the spec) - // provide only modification time - unsigned long time = (unsigned long)it.value()->date().toTime_t(); - extfield[5] = char(time); - extfield[6] = char(time >> 8); - extfield[7] = char(time >> 16); - extfield[8] = char(time >> 24); + if (d->m_extraField == ModificationTime) { + char *extfield = buffer + 46 + path.length(); + // "Extended timestamp" header (0x5455) + extfield[0] = 'U'; + extfield[1] = 'T'; + extfield[2] = 5; // data size + extfield[3] = 0; + extfield[4] = 1 | 2 | 4; // specify flags from local field + // (unless I misread the spec) + // provide only modification time + unsigned long time = (unsigned long)it.value()->date().toTime_t(); + extfield[5] = char(time); + extfield[6] = char(time >> 8); + extfield[7] = char(time >> 16); + extfield[8] = char(time >> 24); + } crc = crc32(crc, (Bytef *)buffer, bufferSize); bool ok = (device()->write(buffer, bufferSize) == bufferSize); @@ -1018,7 +1021,10 @@ return false; } - Q_ASSERT(device()); + if (!device()) { + //qWarning("doPrepareWriting: cannot create a device. Disk full?") + return false; + } // set right offset in zip. if (!device()->seek(d->m_offset)) { @@ -1153,8 +1159,8 @@ d->m_crc = 0; delete[] buffer; - Q_ASSERT(b); if (!b) { + // qWarning("doPrepareWriting: Could not write to the archive. Disk full?"); return false; }