From 3c8254eb23afa4faccfa0709712677629503f6d7 Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Wed, 4 Jun 2025 20:18:21 -0700 Subject: [PATCH] Enable bz2 in libarchive and support zip --- cmake/targets/BuildLibArchive.cmake | 2 +- src/libarchive/libarchive-bindings.zig | 16 ++++++++-------- src/libarchive/libarchive.zig | 2 ++ 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/cmake/targets/BuildLibArchive.cmake b/cmake/targets/BuildLibArchive.cmake index da8bfcb7cd..65942a7a84 100644 --- a/cmake/targets/BuildLibArchive.cmake +++ b/cmake/targets/BuildLibArchive.cmake @@ -18,7 +18,7 @@ register_cmake_command( -DENABLE_INSTALL=OFF -DENABLE_TEST=OFF -DENABLE_WERROR=OFF - -DENABLE_BZip2=OFF + -DENABLE_BZip2=ON -DENABLE_CAT=OFF -DENABLE_EXPAT=OFF -DENABLE_ICONV=OFF diff --git a/src/libarchive/libarchive-bindings.zig b/src/libarchive/libarchive-bindings.zig index 4056cfa04d..36aa143a29 100644 --- a/src/libarchive/libarchive-bindings.zig +++ b/src/libarchive/libarchive-bindings.zig @@ -408,10 +408,10 @@ pub const Archive = opaque { pub fn writeAddFilterB64encode(archive: *Archive) Result { return archive_write_add_filter_b64encode(archive); } - // extern fn archive_write_add_filter_bzip2(*Archive) Result; - // pub fn writeAddFilterBzip2(archive: *Archive) Result { - // return archive_write_add_filter_bzip2(archive); - // } + extern fn archive_write_add_filter_bzip2(*Archive) Result; + pub fn writeAddFilterBzip2(archive: *Archive) Result { + return archive_write_add_filter_bzip2(archive); + } extern fn archive_write_add_filter_compress(*Archive) Result; pub fn writeAddFilterCompress(archive: *Archive) Result { return archive_write_add_filter_compress(archive); @@ -677,10 +677,10 @@ pub const Archive = opaque { pub fn readSupportFilterByCode(archive: *Archive, code: i32) Result { return archive_read_support_filter_by_code(archive, code); } - // extern fn archive_read_support_filter_bzip2(*Archive) Result; - // pub fn readSupportFilterbZip2(archive: *Archive) Result { - // return archive_read_support_filter_bzip2(archive); - // } + extern fn archive_read_support_filter_bzip2(*Archive) Result; + pub fn readSupportFilterbZip2(archive: *Archive) Result { + return archive_read_support_filter_bzip2(archive); + } extern fn archive_read_support_filter_compress(*Archive) Result; pub fn readSupportFilterCompress(archive: *Archive) Result { return archive_read_support_filter_compress(archive); diff --git a/src/libarchive/libarchive.zig b/src/libarchive/libarchive.zig index fe81b750a8..b592114245 100644 --- a/src/libarchive/libarchive.zig +++ b/src/libarchive/libarchive.zig @@ -57,6 +57,8 @@ pub const BufferReadStream = struct { _ = this.archive.readSupportFormatTar(); _ = this.archive.readSupportFormatGnutar(); _ = this.archive.readSupportFilterGzip(); + _ = this.archive.readSupportFilterbZip2(); + _ = this.archive.readSupportFormatZip(); // Ignore zeroed blocks in the archive, which occurs when multiple tar archives // have been concatenated together.