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;
     }
 


Reply via email to