Vibhav Pant (@vibhavp) commented about dlls/opcservices/compress.c:
compress_write(archive, archive->files[i] + 1, archive->files[i]->name_length);
dir_end.directory_size += archive->files[i]->name_length + sizeof(*archive->files[i]);
struct zip64_end_of_central_directory_locator locator;
struct zip64_end_of_central_directory eocd64;
uint64_t eocd64_offset = archive->position;
struct zip64_extra_field extra_field;
for (i = 0; i < archive->file_count; ++i)
{
const struct zip_file *file = archive->files[i];
cdh.signature = ZIP32_CDFH;
cdh.version = ZIP64_VERSION;
cdh.min_version = ZIP64_VERSION;
cdh.flags = USE_DATA_DESCRIPTOR;
cdh.method = 8; /* Z_DEFLATED */
When using `OPC_COMPRESSION_NONE`, `method` is set to 0 in native. We should also set the bits to denote the compression speed, as described by the [PKZIP appnote](https://pkwaredownloads.blob.core.windows.net/pkware-general/Documentation/A...) (4.4.4 general purpose bit flag):
Bit 2 Bit 1 \ 0 0 Normal (-en) compression option was used.
0 1 Maximum (-exx/-ex) compression option was used.
1 0 Fast (-ef) compression option was used.
1 1 Super Fast (-es) compression option was used.
Native also does the same, as these fields are needed to implement`IOpcPart::GetCompressionOptions` while reading packages.