libyal / libewf

Libewf is a library to access the Expert Witness Compression Format (EWF)
GNU Lesser General Public License v3.0
263 stars 76 forks source link

pyewf: missing support for deflate compression when writing E01 #162

Closed Octsec closed 2 years ago

Octsec commented 2 years ago

Hi. The library is working fine. However, an error appears in the middle and asks a question. in pyewf , my python version 3.6.8 , pyewf version 20171104, os : windows 10 64 bit

my source : import pyewf f = pyewf.open(["C:\test1028"],"w") f.write_buffer(b"0"*32768) f.close()

but, error occurred >> an error occurred , osError

pyewf_handle_write_buffer: unable to write data. libewf_compress_data: missing support for deflate compression. libewf_section_write_compressed_string: unable to compress string. libewf_segment_file_write_header2_section: unable to write header2 section. libewf_segment_file_write_header_sections: unable to write first header2 section. libewf_segment_file_write_start: unable to write header sections. libewf_write_io_handle_write_new_chunk: unable to write segment file start. libewf_internal_handle_write_buffer_to_file_io_pool: unable to write new chunk. libewf_handle_write_buffer: unable to write buffer.

buffer size less than 32768 bytes, write function works, but the next write fuction does not proceed. please tell me what error it is

joachimmetz commented 2 years ago

pyewf_handle_write_buffer: unable to write data. libewf_compress_data: missing support for deflate compression.

if you want compression you need to compile it with zlib support

joachimmetz commented 2 years ago

Also see: https://github.com/libyal/libewf/issues/32

joachimmetz commented 2 years ago

Also I don't recommend using a very old version like 20171104, use the latest stable https://github.com/libyal/libewf-legacy/releases (or latest experimental if you know what to expect).

Octsec commented 2 years ago

Hi , Thank you for your answer. I changed version 20140812 lastest stable. and i used to windows os , read building documennt and building again. but same function error occur,
OSError: pyewf_handle_open: unable to open handle. libewf_handle_open_wide: write access currently not supported - compiled without zlib. I understand why write function is not working. because without zlib . i read this issue #157. but i don't know why occur this error...

i use to build msys-mingw : result is

Building: libcerror support: local libcthreads support: local libcdata support: local libcdatetime support: local libclocale support: local libcnotify support: local libcsplit support: local libuna support: local libcfile support: local libcpath support: local libbfio support: local libfcache support: local libfdata support: local libfvalue support: local libmfdata support: local ADLER32 checksum support: zlib DEFLATE compression support: zlib libhmac support: local MD5 support: local SHA1 support: local SHA256 support: local libodraw support: local libsmdev support: local libsmraw support: local GUID/UUID support: librpcrt4 FUSE support: no

Features: Multi-threading support: winapi Wide character type support: yes Write support: yes ewftools are build as static executables: no Python (pyewf) support: no Verbose output: no Debug output: no Version 1 API compatibility: no

but python write function execute , OSError: pyewf_handle_open: unable to open handle. libewf_handle_open_wide: write access currently not supported - compiled without zlib.

i dont understand.... What should i do..?

joachimmetz commented 2 years ago

i dont understand.... What should i do..?

compile with zlib, install zlib and necessary development files. How are you building the Python bindings? with msys-mingw or with setup.py ?

Octsec commented 2 years ago

i installed zlib.. building first try setup.py.. but didn't work. 2nd try msys-mingw ..this doesn't work either.

add to windows cmd excute setup.py build result image

is that right ? I saw building, features info when I ran this command on Linux. Thanks always for the reply.

joachimmetz commented 2 years ago

setup.py will not use msys-mingw by default (unless you've adjusted your build environment) nor will it use zlib by default and therefore NOT enable write mode

use the provided visual studio build configuration if you need Python bindings with write support, or make the necessary changes to your build environment and setup.py