Hello community,

here is the log from the commit of package rdiff-backup for openSUSE:Factory 
checked in at 2014-11-05 15:54:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rdiff-backup (Old)
 and      /work/SRC/openSUSE:Factory/.rdiff-backup.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rdiff-backup"

Changes:
--------
--- /work/SRC/openSUSE:Factory/rdiff-backup/rdiff-backup.changes        
2014-05-24 07:41:17.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rdiff-backup.new/rdiff-backup.changes   
2014-11-05 15:55:15.000000000 +0100
@@ -1,0 +2,7 @@
+Mon Jun 30 19:24:48 UTC 2014 - [email protected]
+
+- add rdiff-backup-1.2.8-sparse-no-seek-in-gzip.diff:
+  the sparse code makes no sense in gzip compressed case and it
+  triggers an IO error in gzip.py when trying to seek backwards
+
+-------------------------------------------------------------------

New:
----
  rdiff-backup-1.2.8-sparse-no-seek-in-gzip.diff

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

Other differences:
------------------
++++++ rdiff-backup.spec ++++++
--- /var/tmp/diff_new_pack.a3TeRf/_old  2014-11-05 15:55:17.000000000 +0100
+++ /var/tmp/diff_new_pack.a3TeRf/_new  2014-11-05 15:55:17.000000000 +0100
@@ -28,6 +28,10 @@
 # well, upstream is apparently dead, but I found this patch on the upstream 
mailing list.
 # PATCH-FEATURE-UPSTREAM rdiff-backup-1.2.8-sparsefiles.diff -- 
[email protected]
 Patch1:         rdiff-backup-1.2.8-sparsefiles.diff
+# the above patch is slightly broken, fix it by not using sparse code when 
writing
+# compressed files
+# PATCH-FIX-OPENSUSE rdiff-backup-1.2.8-sparse-no-seek-in-gzip.diff 
[email protected]
+Patch11:        rdiff-backup-1.2.8-sparse-no-seek-in-gzip.diff
 # in order not stumble on handle hardlinks, these two patches are necessary 
 # http://savannah.nongnu.org/bugs/?26848
 # PATCH-FEATURE-UPSTREAM Hardlink.py.revised-patch compare.py.patch -- 
[email protected]
@@ -72,6 +76,7 @@
 %setup -q
 %patch0 -p1
 %patch1 -p1
+%patch11 -p1
 %patch2 -p0
 %patch3 -p0
 %patch4 -p1

++++++ rdiff-backup-1.2.8-sparse-no-seek-in-gzip.diff ++++++
Date: 2016-06-29
Author: Stefan Seyfried <[email protected]>
Subject: do not try to seek in GzipFile; it does not help and the
         later seek(-1, os.SEEK_CUR) fails

I suddenly got a strange error from gzip.py "Negative seek in write mode"
which I avoid by not using sparse code in compressed case. No idea why this
only turned up now, maybe a strange combination of files to back up?

Index: b/rdiff_backup/rpath.py
===================================================================
--- a/rdiff_backup/rpath.py
+++ b/rdiff_backup/rpath.py
@@ -61,6 +61,11 @@ def copyfileobj(inputfp, outputfp):
 
        sparse = False
        buf = None
+       """Negative seeks are not supported by GzipFile"""
+       compressed = False
+       if isinstance(outputfp, GzipFile):
+               compressed = True
+
        while 1:
                inbuf = inputfp.read(blocksize)
                if not inbuf: break
@@ -75,7 +80,7 @@ def copyfileobj(inputfp, outputfp):
                        continue
 
                buflen = len(buf)
-               if buf == "\x00" * buflen:
+               if not compressed and buf == "\x00" * buflen:
                        outputfp.seek(buflen, os.SEEK_CUR)
                        buf = None
                        # flag sparse=True, that we seek()ed, but have not 
written yet
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to