Версия пакета: python3-module-isal-1.8.0-alt1 --- `isal_zlib.compressobj(zdict=...)` использует предустановленный словарь при сжатии, но не записывает информацию о нём в zlib-заголовок. Полученный поток не распаковывается стандартным модулем Python `zlib` даже при передаче того же словаря. Это нарушает совместимость при обмене сжатыми данными между реализациями zlib. --- Шаги воспроизведения: 1) $ PYTHONNOUSERSITE=1 python3 - <<'PY' import zlib from isal import isal_zlib dictionary = b'hello world' data = dictionary * 10 compressor = isal_zlib.compressobj(level=1, zdict=dictionary) packed = compressor.compress(data) + compressor.flush() print('Stream:', packed.hex(), 'FDICT:', bool(packed[1] & 0x20)) decompressor = zlib.decompressobj(zdict=dictionary) assert decompressor.decompress(packed) + decompressor.flush() == data print('PASS') PY --- Фактический результат: Stream: 785ea32f130072d92b99 FDICT: False zlib.error: Error -3 while decompressing data: invalid distance too far back --- Причина и исправление: В isal_zlib_compressobj_impl файла src/isal/isal_zlibmodule.c вызывается isal_deflate_set_dict, но для zlib-режима не создаётся заголовок с dict_flag и dict_id. Deflate-тело уже использует историю словаря, о наличии которой поток не сообщает декодеру. Причина подтверждена экспериментально: замена только заголовка устраняет ошибку стандартного zlib при неизменных deflate-теле и trailer. Raw deflate с тем же словарём проходит проверку. Исправление сохраняет поля словарного заголовка и записывает его один раз перед первым compress() либо flush(). Дальнейшее сжатие выполняется с IGZIP_ZLIB_NO_HDR, сохраняя Adler-32 trailer. Upstream-вариант дополнительно явно записывает DICTID в network byte order для совместимости со старой встроенной ISA-L. Исправление отправлено upstream: PR:https://github.com/pycompression/python-isal/pull/257, коммит dff90d1e1986cc1f6b7deedc28915fa24de3d41a.
ждём реакции апстрима.
python3-module-isal-1.9.0-alt1 -> sisyphus: Tue Nov 03 2026 Sergey Bolshakov <sbolshakov@altlinux> 1.9.0-alt1 - 1.9.0 released (closes: 60741, 60742)