Hello community,

here is the log from the commit of package karchive for openSUSE:Factory 
checked in at 2018-06-22 13:17:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/karchive (Old)
 and      /work/SRC/openSUSE:Factory/.karchive.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "karchive"

Fri Jun 22 13:17:44 2018 rev:54 rq:616738 version:5.47.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/karchive/karchive.changes        2018-05-18 
14:20:11.895336677 +0200
+++ /work/SRC/openSUSE:Factory/.karchive.new/karchive.changes   2018-06-22 
13:18:47.571451954 +0200
@@ -1,0 +2,11 @@
+Tue Jun 12 21:26:02 UTC 2018 - lbeltr...@kde.org
+
+- Update to 5.47.0
+  * New feature release
+  * For more details please see:
+  * https://www.kde.org/announcements/kde-frameworks-5.47.0.php
+- Changes since 5.46.0:
+  * Bring back kzip.cpp to where it belongs
+  * handle zip files embedded within zip files (kde#73821)
+
+-------------------------------------------------------------------

Old:
----
  karchive-5.46.0.tar.xz

New:
----
  karchive-5.47.0.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ karchive.spec ++++++
--- /var/tmp/diff_new_pack.zqXMZV/_old  2018-06-22 13:18:49.235390256 +0200
+++ /var/tmp/diff_new_pack.zqXMZV/_new  2018-06-22 13:18:49.239390109 +0200
@@ -17,13 +17,13 @@
 
 
 %define lname   libKF5Archive5
-%define _tar_path 5.46
+%define _tar_path 5.47
 # Full KF5 version (e.g. 5.33.0)
 %{!?_kf5_version: %global _kf5_version %{version}}
 # Last major and minor KF5 version (e.g. 5.33)
 %{!?_kf5_bugfix_version: %global _kf5_bugfix_version %(echo %{_kf5_version} | 
awk -F. '{print $1"."$2}')}
 Name:           karchive
-Version:        5.46.0
+Version:        5.47.0
 Release:        0
 BuildRequires:  cmake >= 3.0
 BuildRequires:  extra-cmake-modules >= %{_kf5_bugfix_version}

++++++ karchive-5.46.0.tar.xz -> karchive-5.47.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/karchive-5.46.0/CMakeLists.txt 
new/karchive-5.47.0/CMakeLists.txt
--- old/karchive-5.46.0/CMakeLists.txt  2018-05-05 14:38:16.000000000 +0200
+++ new/karchive-5.47.0/CMakeLists.txt  2018-06-02 18:26:35.000000000 +0200
@@ -1,10 +1,10 @@
 cmake_minimum_required(VERSION 3.0)
 
-set(KF5_VERSION "5.46.0") # handled by release scripts
+set(KF5_VERSION "5.47.0") # handled by release scripts
 project(KArchive VERSION ${KF5_VERSION})
 
 include(FeatureSummary)
-find_package(ECM 5.46.0  NO_MODULE)
+find_package(ECM 5.47.0  NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL 
"https://projects.kde.org/projects/kdesupport/extra-cmake-modules";)
 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/karchive-5.46.0/src/kzip.cpp 
new/karchive-5.47.0/src/kzip.cpp
--- old/karchive-5.46.0/src/kzip.cpp    2018-05-05 14:38:16.000000000 +0200
+++ new/karchive-5.47.0/src/kzip.cpp    2018-06-02 18:26:35.000000000 +0200
@@ -311,9 +311,10 @@
  * To be called when a 'P' has been found.
  * @param buffer start of buffer with the 3 bytes behind 'P'
  * @param dev device that is read from
+ * @param dataDescriptor only search for data descriptor
  * @return true if a local or central header begin is or could be reached
  */
-static bool handlePossibleHeaderBegin(const char *buffer, QIODevice *dev)
+static bool handlePossibleHeaderBegin(const char *buffer, QIODevice *dev, bool 
dataDescriptor)
 {
     // we have to detect three magic tokens here:
     // PK34 for the next local header in case there is no data descriptor
@@ -329,8 +330,8 @@
             return true;
         }
 
-        if ((buffer[1] == 1 && buffer[2] == 2)
-            || (buffer[1] == 3 && buffer[2] == 4)) {
+        if (!dataDescriptor && ((buffer[1] == 1 && buffer[2] == 2)
+            || (buffer[1] == 3 && buffer[2] == 4))) {
             // central/local header token found
             dev->seek(dev->pos() - 4);
             // go back 4 bytes, so that the magic bytes can be found
@@ -347,7 +348,7 @@
  * @param dev device that is read from
  * @return true if a local or central header token could be reached, false on 
error
  */
-static bool seekToNextHeaderToken(QIODevice *dev)
+static bool seekToNextHeaderToken(QIODevice *dev, bool dataDescriptor)
 {
     bool headerTokenFound = false;
     char buffer[3];
@@ -369,7 +370,7 @@
             return false;
         }
 
-        if (handlePossibleHeaderBegin(buffer, dev)) {
+        if (handlePossibleHeaderBegin(buffer, dev, dataDescriptor)) {
             headerTokenFound = true;
         } else {
             for (int i = 0; i < 3; ++i) {
@@ -543,7 +544,7 @@
             if (gpf & 8) {
                 // here we have to read through the compressed data to find
                 // the next PKxx
-                if (!seekToNextHeaderToken(dev)) {
+                if (!seekToNextHeaderToken(dev, true)) {
                     setErrorString(tr("Could not seek to next header token"));
                     return false;
                 }
@@ -566,7 +567,7 @@
                     if (compr_size > dev->size()) {
                         // here we cannot trust the compressed size, so scan 
through the compressed
                         // data to find the next header
-                        if (!seekToNextHeaderToken(dev)) {
+                        if (!seekToNextHeaderToken(dev, false)) {
                             setErrorString(tr("Could not seek to next header 
token"));
                             return false;
                         }
@@ -594,7 +595,7 @@
                         return false;
                     }
 
-                    if (buffer[0] != 'P' || !handlePossibleHeaderBegin(buffer 
+ 1, dev)) {
+                    if (buffer[0] != 'P' || !handlePossibleHeaderBegin(buffer 
+ 1, dev, false)) {
                         // assume data descriptor without signature
                         dev->seek(dev->pos() + 8); // skip rest of the 
'data_descriptor'
                     }
@@ -813,7 +814,7 @@
         } else {
             setErrorString(
                 tr("Invalid ZIP file. Unrecognized header at offset %1")
-                .arg(offset));
+                .arg(dev->pos() - 4));
             return false;
         }
     }


Reply via email to