Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-zipstream-ng for 
openSUSE:Factory checked in at 2026-08-22 21:36:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-zipstream-ng (Old)
 and      /work/SRC/openSUSE:Factory/.python-zipstream-ng.new.1258 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-zipstream-ng"

Sat Aug 22 21:36:42 2026 rev:6 rq:1373084 version:1.9.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-zipstream-ng/python-zipstream-ng.changes  
2026-05-27 16:16:55.300815199 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-zipstream-ng.new.1258/python-zipstream-ng.changes
        2026-08-22 21:38:49.356970187 +0200
@@ -1,0 +2,6 @@
+Sat Aug 22 14:10:16 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 1.9.3:
+  * Fix length calculation when adding extended ascii filenames
+
+-------------------------------------------------------------------

Old:
----
  zipstream_ng-1.9.2.tar.gz

New:
----
  zipstream_ng-1.9.3.tar.gz

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

Other differences:
------------------
++++++ python-zipstream-ng.spec ++++++
--- /var/tmp/diff_new_pack.Z18KcJ/_old  2026-08-22 21:38:50.138998197 +0200
+++ /var/tmp/diff_new_pack.Z18KcJ/_new  2026-08-22 21:38:50.142998340 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           python-zipstream-ng
-Version:        1.9.2
+Version:        1.9.3
 Release:        0
 Summary:        Modern and easy to use streamable zip file generator
 License:        LGPL-3.0-only

++++++ zipstream_ng-1.9.2.tar.gz -> zipstream_ng-1.9.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zipstream_ng-1.9.2/PKG-INFO 
new/zipstream_ng-1.9.3/PKG-INFO
--- old/zipstream_ng-1.9.2/PKG-INFO     2020-02-02 01:00:00.000000000 +0100
+++ new/zipstream_ng-1.9.3/PKG-INFO     2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
-Metadata-Version: 2.4
+Metadata-Version: 2.5
 Name: zipstream-ng
-Version: 1.9.2
+Version: 1.9.3
 Summary: A modern and easy to use streamable zip file generator
 Project-URL: Repository, https://github.com/pR0Ps/zipstream-ng
 Project-URL: Changelog, 
https://github.com/pR0Ps/zipstream-ng/blob/master/CHANGELOG.md
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zipstream_ng-1.9.2/pyproject.toml 
new/zipstream_ng-1.9.3/pyproject.toml
--- old/zipstream_ng-1.9.2/pyproject.toml       2020-02-02 01:00:00.000000000 
+0100
+++ new/zipstream_ng-1.9.3/pyproject.toml       2020-02-02 01:00:00.000000000 
+0100
@@ -1,6 +1,6 @@
 [project]
 name = "zipstream-ng"
-version = "1.9.2"
+version = "1.9.3"
 description = "A modern and easy to use streamable zip file generator"
 urls.Repository = "https://github.com/pR0Ps/zipstream-ng";
 urls.Changelog = 
"https://github.com/pR0Ps/zipstream-ng/blob/master/CHANGELOG.md";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zipstream_ng-1.9.2/src/zipstream/ng.py 
new/zipstream_ng-1.9.3/src/zipstream/ng.py
--- old/zipstream_ng-1.9.2/src/zipstream/ng.py  2020-02-02 01:00:00.000000000 
+0100
+++ new/zipstream_ng-1.9.3/src/zipstream/ng.py  2020-02-02 01:00:00.000000000 
+0100
@@ -42,6 +42,7 @@
 _FLAG_LZMA_EOS_MARKER = 1 << 1
 _FLAG_DATA_DESCRIPTOR = 1 << 3
 _FLAG_IS_DIRECTORY = 1 << 4
+_FLAG_UTF8_FILENAME = 1 << 11
 
 # Size of chunks to read out of files
 # Note that when compressing data the compressor will operate on bigger chunks
@@ -154,6 +155,18 @@
 
         super().__init__(filename, date_time)
 
+    # Overwrite ZipInfo._encodeFilenameFlags to only use ascii/utf-8.
+    # As of python/cpython#150091 Python will attempt to encode the filename
+    # using cp437 instead of ascii to support modifying zips that used cp437
+    # (valid according to the spec). However, since we're creating a new zip, 
we
+    # restrict entries without the utf-8 flag to ascii instead since it's less
+    # likely to be misinterpreted by unarchivers.
+    def _encodeFilenameFlags(self):
+        try:
+            return self.filename.encode("ascii"), self.flag_bits & 
~_FLAG_UTF8_FILENAME
+        except UnicodeEncodeError:
+            return self.filename.encode("utf-8"), self.flag_bits | 
_FLAG_UTF8_FILENAME
+
     def DataDescriptor(self, zip64):
         """Return the data descriptor for the file entry"""
         # Using a data descriptor is an alternate way to encode the file size
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zipstream_ng-1.9.2/tests/test_zipstream.py 
new/zipstream_ng-1.9.3/tests/test_zipstream.py
--- old/zipstream_ng-1.9.2/tests/test_zipstream.py      2020-02-02 
01:00:00.000000000 +0100
+++ new/zipstream_ng-1.9.3/tests/test_zipstream.py      2020-02-02 
01:00:00.000000000 +0100
@@ -406,18 +406,21 @@
     zs.add(None, "☆/")
     zs.add(b"some data", "Здравствуйте")
     zs.add(b"", "你好")
+    zs.add(b"", "ääääääääää")  # valid cp437 but invalid ascii
 
     data = bytes(zs)
     assert len(data) == len(zs)
 
     zinfos = _get_zip(data).infolist()
-    assert len(zinfos) == 3
+    assert len(zinfos) == 4
     assert zinfos[0].filename == "☆/"
     assert zinfos[0].is_dir()
     assert zinfos[1].filename == "Здравствуйте"
     assert not zinfos[1].is_dir()
     assert zinfos[2].filename == "你好"
     assert not zinfos[2].is_dir()
+    assert zinfos[3].filename == "ääääääääää"
+    assert not zinfos[3].is_dir()
 
 
 def test_adding_windows_paths(monkeypatch):

Reply via email to