libarchive-static 1.0.6 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/extconf.rb +2 -9
- data/ext/libarchive-0.1.1/ext/archive_read_support_compression.c +6 -6
- data/ext/libarchive-0.1.1/ext/archive_read_support_compression.o +0 -0
- data/ext/libarchive-0.1.1/ext/archive_read_support_format.o +0 -0
- data/ext/libarchive-0.1.1/ext/archive_write_open_rb_str.c +1 -1
- data/ext/libarchive-0.1.1/ext/archive_write_open_rb_str.o +0 -0
- data/ext/libarchive-0.1.1/ext/archive_write_set_compression.c +5 -5
- data/ext/libarchive-0.1.1/ext/archive_write_set_compression.o +0 -0
- data/ext/libarchive-0.1.1/ext/config.h +23 -0
- data/ext/libarchive-0.1.1/ext/config.log +230 -0
- data/ext/libarchive-0.1.1/ext/config.status +671 -0
- data/ext/libarchive-0.1.1/ext/libarchive.c +1 -1
- data/ext/libarchive-0.1.1/ext/libarchive.o +0 -0
- data/ext/libarchive-0.1.1/ext/libarchive_archive.c +7 -7
- data/ext/libarchive-0.1.1/ext/libarchive_archive.o +0 -0
- data/ext/libarchive-0.1.1/ext/libarchive_entry.c +6 -0
- data/ext/libarchive-0.1.1/ext/libarchive_entry.o +0 -0
- data/ext/libarchive-0.1.1/ext/libarchive_reader.c +6 -4
- data/ext/libarchive-0.1.1/ext/libarchive_reader.o +0 -0
- data/ext/libarchive-0.1.1/ext/libarchive_ruby.so +0 -0
- data/ext/libarchive-0.1.1/ext/libarchive_win32.h +1 -1
- data/ext/libarchive-0.1.1/ext/libarchive_writer.c +2 -2
- data/ext/libarchive-0.1.1/ext/libarchive_writer.o +0 -0
- data/ext/libarchive-3.6.2/Makefile.in +16892 -0
- data/ext/libarchive-3.6.2/build/autoconf/ax_append_compile_flags.m4 +67 -0
- data/ext/libarchive-3.6.2/build/autoconf/ax_append_flag.m4 +71 -0
- data/ext/libarchive-3.6.2/build/autoconf/ax_check_compile_flag.m4 +74 -0
- data/ext/libarchive-3.6.2/build/autoconf/ax_require_defined.m4 +37 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/autoconf/check_stdcall_func.m4 +0 -0
- data/ext/libarchive-3.6.2/build/autoconf/compile +348 -0
- data/ext/libarchive-3.6.2/build/autoconf/config.guess +1754 -0
- data/ext/libarchive-3.6.2/build/autoconf/config.rpath +696 -0
- data/ext/libarchive-3.6.2/build/autoconf/config.sub +1890 -0
- data/ext/libarchive-3.6.2/build/autoconf/depcomp +791 -0
- data/ext/libarchive-3.6.2/build/autoconf/iconv.m4 +271 -0
- data/ext/libarchive-3.6.2/build/autoconf/install-sh +541 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/autoconf/la_uid_t.m4 +0 -0
- data/ext/libarchive-3.6.2/build/autoconf/lib-ld.m4 +109 -0
- data/ext/libarchive-3.6.2/build/autoconf/lib-link.m4 +777 -0
- data/ext/libarchive-3.6.2/build/autoconf/lib-prefix.m4 +224 -0
- data/ext/libarchive-3.6.2/build/autoconf/ltmain.sh +11251 -0
- data/ext/libarchive-3.6.2/build/autoconf/m4_ax_compile_check_sizeof.m4 +115 -0
- data/ext/libarchive-3.6.2/build/autoconf/missing +215 -0
- data/ext/libarchive-3.6.2/build/autoconf/test-driver +153 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/pkgconfig/libarchive.pc.in +4 -1
- data/ext/libarchive-3.6.2/config.h.in +1504 -0
- data/ext/libarchive-3.6.2/configure +25558 -0
- data/ext/libarchive-3.6.2/libarchive/archive.h +1212 -0
- data/ext/libarchive-3.6.2/libarchive/archive_acl.c +2097 -0
- data/ext/libarchive-3.6.2/libarchive/archive_acl_private.h +83 -0
- data/ext/libarchive-3.6.2/libarchive/archive_blake2.h +197 -0
- data/ext/libarchive-3.6.2/libarchive/archive_blake2_impl.h +161 -0
- data/ext/libarchive-3.6.2/libarchive/archive_blake2s_ref.c +369 -0
- data/ext/libarchive-3.6.2/libarchive/archive_blake2sp_ref.c +361 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_check_magic.c +63 -22
- data/ext/libarchive-3.6.2/libarchive/archive_cmdline.c +227 -0
- data/ext/libarchive-3.6.2/libarchive/archive_cmdline_private.h +47 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_crc32.h +17 -0
- data/ext/libarchive-3.6.2/libarchive/archive_cryptor.c +534 -0
- data/ext/libarchive-3.6.2/libarchive/archive_cryptor_private.h +188 -0
- data/ext/libarchive-3.6.2/libarchive/archive_digest.c +1505 -0
- data/ext/libarchive-3.6.2/libarchive/archive_digest_private.h +416 -0
- data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_darwin.c +559 -0
- data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_freebsd.c +712 -0
- data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_linux.c +760 -0
- data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_sunos.c +824 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_endian.h +48 -15
- data/ext/libarchive-3.6.2/libarchive/archive_entry.c +2149 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry.h +305 -106
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_copy_bhfi.c +5 -4
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_copy_stat.c +9 -3
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_link_resolver.c +104 -62
- data/ext/libarchive-3.6.2/libarchive/archive_entry_locale.h +92 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_private.h +65 -49
- data/ext/libarchive-3.6.2/libarchive/archive_entry_sparse.c +156 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_stat.c +6 -6
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_strmode.c +1 -1
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_xattr.c +4 -6
- data/ext/libarchive-3.6.2/libarchive/archive_getdate.c +1165 -0
- data/ext/libarchive-3.6.2/libarchive/archive_getdate.h +39 -0
- data/ext/libarchive-3.6.2/libarchive/archive_hmac.c +334 -0
- data/ext/libarchive-3.6.2/libarchive/archive_hmac_private.h +117 -0
- data/ext/libarchive-3.6.2/libarchive/archive_match.c +1875 -0
- data/ext/libarchive-3.6.2/libarchive/archive_openssl_evp_private.h +53 -0
- data/ext/libarchive-3.6.2/libarchive/archive_openssl_hmac_private.h +54 -0
- data/ext/libarchive-3.6.2/libarchive/archive_options.c +218 -0
- data/ext/libarchive-3.6.2/libarchive/archive_options_private.h +51 -0
- data/ext/libarchive-3.6.2/libarchive/archive_pack_dev.c +337 -0
- data/ext/libarchive-3.6.2/libarchive/archive_pack_dev.h +49 -0
- data/ext/libarchive-3.6.2/libarchive/archive_pathmatch.c +463 -0
- data/ext/libarchive-3.6.2/libarchive/archive_pathmatch.h +52 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_platform.h +77 -9
- data/ext/libarchive-3.6.2/libarchive/archive_platform_acl.h +55 -0
- data/ext/libarchive-3.6.2/libarchive/archive_platform_xattr.h +47 -0
- data/ext/libarchive-3.6.2/libarchive/archive_ppmd7.c +1168 -0
- data/ext/libarchive-3.6.2/libarchive/archive_ppmd7_private.h +119 -0
- data/ext/libarchive-3.6.2/libarchive/archive_ppmd8.c +1287 -0
- data/ext/libarchive-3.6.2/libarchive/archive_ppmd8_private.h +148 -0
- data/ext/libarchive-3.6.2/libarchive/archive_ppmd_private.h +151 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_private.h +74 -18
- data/ext/libarchive-3.6.2/libarchive/archive_random.c +272 -0
- data/ext/libarchive-3.6.2/libarchive/archive_random_private.h +36 -0
- data/ext/libarchive-3.6.2/libarchive/archive_rb.c +709 -0
- data/ext/libarchive-3.6.2/libarchive/archive_rb.h +113 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read.c +1756 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_add_passphrase.c +190 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_append_filter.c +204 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_data_into_fd.c +64 -18
- data/ext/libarchive-3.6.2/libarchive/archive_read_disk_entry_from_file.c +1086 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_disk_posix.c +2732 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_disk_private.h +40 -4
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_disk_set_standard_lookup.c +21 -11
- data/ext/libarchive-3.6.2/libarchive/archive_read_disk_windows.c +2479 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_extract.c +60 -0
- data/ext/{libarchive-2.8.4/libarchive/archive_read_extract.c → libarchive-3.6.2/libarchive/archive_read_extract2.c} +34 -61
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_fd.c +70 -49
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_file.c +38 -23
- data/ext/libarchive-3.6.2/libarchive/archive_read_open_filename.c +586 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_memory.c +58 -28
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_private.h +127 -59
- data/ext/libarchive-3.6.2/libarchive/archive_read_set_format.c +117 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_set_options.c +133 -0
- data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_all.c → libarchive-3.6.2/libarchive/archive_read_support_filter_all.c} +35 -10
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_by_code.c +83 -0
- data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_bzip2.c → libarchive-3.6.2/libarchive/archive_read_support_filter_bzip2.c} +38 -26
- data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_compress.c → libarchive-3.6.2/libarchive/archive_read_support_filter_compress.c} +52 -44
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_grzip.c +112 -0
- data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_gzip.c → libarchive-3.6.2/libarchive/archive_read_support_filter_gzip.c} +108 -37
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lrzip.c +122 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lz4.c +742 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lzop.c +499 -0
- data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_none.c → libarchive-3.6.2/libarchive/archive_read_support_filter_none.c} +15 -3
- data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_program.c → libarchive-3.6.2/libarchive/archive_read_support_filter_program.c} +114 -77
- data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_rpm.c → libarchive-3.6.2/libarchive/archive_read_support_filter_rpm.c} +31 -31
- data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_uu.c → libarchive-3.6.2/libarchive/archive_read_support_filter_uu.c} +141 -85
- data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_xz.c → libarchive-3.6.2/libarchive/archive_read_support_filter_xz.c} +369 -284
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_zstd.c +297 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_7zip.c +3900 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_all.c +89 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_ar.c +126 -72
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_by_code.c +92 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_cab.c +3228 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_cpio.c +1104 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_empty.c +14 -11
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_iso9660.c +990 -541
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_lha.c +2916 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_mtree.c +2150 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_rar.c +3797 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_rar5.c +4251 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_raw.c +38 -31
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_tar.c +1157 -629
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_warc.c +848 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_xar.c +439 -258
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_zip.c +4270 -0
- data/ext/libarchive-3.6.2/libarchive/archive_string.c +4240 -0
- data/ext/libarchive-3.6.2/libarchive/archive_string.h +243 -0
- data/ext/libarchive-3.6.2/libarchive/archive_string_composition.h +2292 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_string_sprintf.c +44 -16
- data/ext/libarchive-3.6.2/libarchive/archive_util.c +655 -0
- data/ext/libarchive-3.6.2/libarchive/archive_version_details.c +151 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_virtual.c +85 -16
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_windows.c +214 -541
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_windows.h +74 -106
- data/ext/libarchive-3.6.2/libarchive/archive_write.c +828 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter.c +72 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_b64encode.c +304 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_by_name.c +77 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_bzip2.c +401 -0
- data/ext/{libarchive-2.8.4/libarchive/archive_write_set_compression_compress.c → libarchive-3.6.2/libarchive/archive_write_add_filter_compress.c} +86 -131
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_grzip.c +135 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_gzip.c +442 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lrzip.c +197 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lz4.c +700 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lzop.c +478 -0
- data/ext/{libarchive-2.8.4/libarchive/archive_read_support_format_all.c → libarchive-3.6.2/libarchive/archive_write_add_filter_none.c} +11 -11
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_program.c +391 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_uuencode.c +295 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_xz.c +545 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_zstd.c +418 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_disk_posix.c +4711 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_disk_private.h +9 -2
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_disk_set_standard_lookup.c +30 -29
- data/ext/libarchive-3.6.2/libarchive/archive_write_disk_windows.c +2842 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_fd.c +15 -10
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_file.c +15 -9
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_filename.c +128 -20
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_memory.c +7 -18
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_private.h +72 -29
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format.c +56 -3
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_7zip.c +2322 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_ar.c +54 -34
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_by_name.c +20 -2
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio.c +11 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_binary.c +610 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_newc.c +457 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_odc.c +500 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_filter_by_ext.c +142 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_gnutar.c +755 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_iso9660.c +8165 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_mtree.c +2217 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_pax.c +1049 -387
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_private.h +42 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_raw.c +125 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_shar.c +62 -47
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_ustar.c +279 -108
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_v7tar.c +638 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_warc.c +453 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_xar.c +3259 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_zip.c +1704 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_options.c +130 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_passphrase.c +95 -0
- data/ext/libarchive-3.6.2/libarchive/archive_xxhash.h +48 -0
- data/ext/libarchive-3.6.2/libarchive/config_freebsd.h +271 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/filter_fork.h +10 -5
- data/ext/{libarchive-2.8.4/libarchive/filter_fork.c → libarchive-3.6.2/libarchive/filter_fork_posix.c} +98 -19
- data/ext/libarchive-3.6.2/libarchive/filter_fork_windows.c +236 -0
- data/ext/libarchive-3.6.2/libarchive/xxhash.c +525 -0
- data/ext/libarchive-static-makefile +144 -80
- data/ext/libarchive-static-wrapper-makefile +1 -1
- data/ext/zlib-1.2.13/Makefile.in +404 -0
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/adler32.c +51 -34
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/compress.c +27 -21
- data/ext/zlib-1.2.13/configure +922 -0
- data/ext/zlib-1.2.13/crc32.c +1125 -0
- data/ext/zlib-1.2.13/crc32.h +9446 -0
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/deflate.c +842 -459
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/deflate.h +37 -33
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzclose.c +0 -0
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzguts.h +103 -16
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzlib.c +155 -53
- data/ext/zlib-1.2.13/gzread.c +650 -0
- data/ext/zlib-1.2.13/gzwrite.c +677 -0
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/infback.c +24 -12
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffast.c +49 -66
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffast.h +0 -0
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffixed.h +3 -3
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inflate.c +209 -94
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inflate.h +9 -5
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inftrees.c +24 -50
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inftrees.h +1 -1
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/trees.c +135 -198
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/trees.h +0 -0
- data/ext/zlib-1.2.13/uncompr.c +93 -0
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/zconf.h +182 -63
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/zlib.h +617 -295
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/zutil.c +50 -41
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/zutil.h +83 -82
- metadata +241 -133
- data/ext/libarchive-0.1.1/libarchive.c +0 -1762
- data/ext/libarchive-2.8.4/Makefile.in +0 -7076
- data/ext/libarchive-2.8.4/build/autoconf/compile +0 -143
- data/ext/libarchive-2.8.4/build/autoconf/config.guess +0 -1502
- data/ext/libarchive-2.8.4/build/autoconf/config.sub +0 -1708
- data/ext/libarchive-2.8.4/build/autoconf/depcomp +0 -630
- data/ext/libarchive-2.8.4/build/autoconf/install-sh +0 -291
- data/ext/libarchive-2.8.4/build/autoconf/ltmain.sh +0 -8406
- data/ext/libarchive-2.8.4/build/autoconf/missing +0 -376
- data/ext/libarchive-2.8.4/config.h.in +0 -772
- data/ext/libarchive-2.8.4/configure +0 -17916
- data/ext/libarchive-2.8.4/libarchive/archive.h +0 -741
- data/ext/libarchive-2.8.4/libarchive/archive_entry.c +0 -2202
- data/ext/libarchive-2.8.4/libarchive/archive_hash.h +0 -281
- data/ext/libarchive-2.8.4/libarchive/archive_read.c +0 -1249
- data/ext/libarchive-2.8.4/libarchive/archive_read_disk.c +0 -198
- data/ext/libarchive-2.8.4/libarchive/archive_read_disk_entry_from_file.c +0 -570
- data/ext/libarchive-2.8.4/libarchive/archive_read_open_filename.c +0 -272
- data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_cpio.c +0 -777
- data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_mtree.c +0 -1304
- data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_zip.c +0 -903
- data/ext/libarchive-2.8.4/libarchive/archive_string.c +0 -453
- data/ext/libarchive-2.8.4/libarchive/archive_string.h +0 -148
- data/ext/libarchive-2.8.4/libarchive/archive_util.c +0 -391
- data/ext/libarchive-2.8.4/libarchive/archive_write.c +0 -466
- data/ext/libarchive-2.8.4/libarchive/archive_write_disk.c +0 -2628
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_bzip2.c +0 -408
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_gzip.c +0 -477
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_none.c +0 -257
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_program.c +0 -347
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_xz.c +0 -438
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_cpio.c +0 -344
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_cpio_newc.c +0 -295
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_mtree.c +0 -1050
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_zip.c +0 -667
- data/ext/libarchive-2.8.4/libarchive/config_freebsd.h +0 -154
- data/ext/libarchive-2.8.4/libarchive/filter_fork_windows.c +0 -113
- data/ext/zlib-1.2.5/Makefile.in +0 -257
- data/ext/zlib-1.2.5/configure +0 -596
- data/ext/zlib-1.2.5/crc32.c +0 -442
- data/ext/zlib-1.2.5/crc32.h +0 -441
- data/ext/zlib-1.2.5/example.c +0 -565
- data/ext/zlib-1.2.5/gzread.c +0 -653
- data/ext/zlib-1.2.5/gzwrite.c +0 -531
- data/ext/zlib-1.2.5/minigzip.c +0 -440
- data/ext/zlib-1.2.5/uncompr.c +0 -59
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*-
|
|
2
|
-
* Copyright (c) 2009 Michihiro NAKAJIMA
|
|
2
|
+
* Copyright (c) 2009-2011 Michihiro NAKAJIMA
|
|
3
3
|
* Copyright (c) 2003-2008 Tim Kientzle and Miklos Vajna
|
|
4
4
|
* All rights reserved.
|
|
5
5
|
*
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
#include "archive_platform.h"
|
|
28
28
|
|
|
29
|
-
__FBSDID("$FreeBSD
|
|
29
|
+
__FBSDID("$FreeBSD$");
|
|
30
30
|
|
|
31
31
|
#ifdef HAVE_ERRNO_H
|
|
32
32
|
#include <errno.h>
|
|
@@ -43,8 +43,6 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_read_support_compression_xz.c 20
|
|
|
43
43
|
#endif
|
|
44
44
|
#if HAVE_LZMA_H
|
|
45
45
|
#include <lzma.h>
|
|
46
|
-
#elif HAVE_LZMADEC_H
|
|
47
|
-
#include <lzmadec.h>
|
|
48
46
|
#endif
|
|
49
47
|
|
|
50
48
|
#include "archive.h"
|
|
@@ -60,26 +58,28 @@ struct private_data {
|
|
|
60
58
|
size_t out_block_size;
|
|
61
59
|
int64_t total_out;
|
|
62
60
|
char eof; /* True = found end of compressed data. */
|
|
61
|
+
char in_stream;
|
|
62
|
+
|
|
63
|
+
/* Following variables are used for lzip only. */
|
|
64
|
+
char lzip_ver;
|
|
65
|
+
uint32_t crc32;
|
|
66
|
+
int64_t member_in;
|
|
67
|
+
int64_t member_out;
|
|
63
68
|
};
|
|
64
69
|
|
|
65
|
-
|
|
70
|
+
#if LZMA_VERSION_MAJOR >= 5
|
|
71
|
+
/* Effectively disable the limiter. */
|
|
72
|
+
#define LZMA_MEMLIMIT UINT64_MAX
|
|
73
|
+
#else
|
|
74
|
+
/* NOTE: This needs to check memory size which running system has. */
|
|
75
|
+
#define LZMA_MEMLIMIT (1U << 30)
|
|
76
|
+
#endif
|
|
77
|
+
|
|
78
|
+
/* Combined lzip/lzma/xz filter */
|
|
66
79
|
static ssize_t xz_filter_read(struct archive_read_filter *, const void **);
|
|
67
80
|
static int xz_filter_close(struct archive_read_filter *);
|
|
68
81
|
static int xz_lzma_bidder_init(struct archive_read_filter *);
|
|
69
82
|
|
|
70
|
-
#elif HAVE_LZMADEC_H && HAVE_LIBLZMADEC
|
|
71
|
-
|
|
72
|
-
struct private_data {
|
|
73
|
-
lzmadec_stream stream;
|
|
74
|
-
unsigned char *out_block;
|
|
75
|
-
size_t out_block_size;
|
|
76
|
-
int64_t total_out;
|
|
77
|
-
char eof; /* True = found end of compressed data. */
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
/* Lzma-only filter */
|
|
81
|
-
static ssize_t lzma_filter_read(struct archive_read_filter *, const void **);
|
|
82
|
-
static int lzma_filter_close(struct archive_read_filter *);
|
|
83
83
|
#endif
|
|
84
84
|
|
|
85
85
|
/*
|
|
@@ -94,53 +94,105 @@ static int xz_bidder_init(struct archive_read_filter *);
|
|
|
94
94
|
static int lzma_bidder_bid(struct archive_read_filter_bidder *,
|
|
95
95
|
struct archive_read_filter *);
|
|
96
96
|
static int lzma_bidder_init(struct archive_read_filter *);
|
|
97
|
+
static int lzip_has_member(struct archive_read_filter *);
|
|
98
|
+
static int lzip_bidder_bid(struct archive_read_filter_bidder *,
|
|
99
|
+
struct archive_read_filter *);
|
|
100
|
+
static int lzip_bidder_init(struct archive_read_filter *);
|
|
101
|
+
|
|
102
|
+
#if ARCHIVE_VERSION_NUMBER < 4000000
|
|
103
|
+
/* Deprecated; remove in libarchive 4.0 */
|
|
104
|
+
int
|
|
105
|
+
archive_read_support_compression_xz(struct archive *a)
|
|
106
|
+
{
|
|
107
|
+
return archive_read_support_filter_xz(a);
|
|
108
|
+
}
|
|
109
|
+
#endif
|
|
110
|
+
|
|
111
|
+
static const struct archive_read_filter_bidder_vtable
|
|
112
|
+
xz_bidder_vtable = {
|
|
113
|
+
.bid = xz_bidder_bid,
|
|
114
|
+
.init = xz_bidder_init,
|
|
115
|
+
};
|
|
97
116
|
|
|
98
117
|
int
|
|
99
|
-
|
|
118
|
+
archive_read_support_filter_xz(struct archive *_a)
|
|
100
119
|
{
|
|
101
120
|
struct archive_read *a = (struct archive_read *)_a;
|
|
102
|
-
struct archive_read_filter_bidder *bidder = __archive_read_get_bidder(a);
|
|
103
121
|
|
|
104
|
-
|
|
105
|
-
|
|
122
|
+
if (__archive_read_register_bidder(a, NULL, "xz",
|
|
123
|
+
&xz_bidder_vtable) != ARCHIVE_OK)
|
|
106
124
|
return (ARCHIVE_FATAL);
|
|
107
125
|
|
|
108
|
-
bidder->data = NULL;
|
|
109
|
-
bidder->bid = xz_bidder_bid;
|
|
110
|
-
bidder->init = xz_bidder_init;
|
|
111
|
-
bidder->options = NULL;
|
|
112
|
-
bidder->free = NULL;
|
|
113
126
|
#if HAVE_LZMA_H && HAVE_LIBLZMA
|
|
114
127
|
return (ARCHIVE_OK);
|
|
115
128
|
#else
|
|
116
129
|
archive_set_error(_a, ARCHIVE_ERRNO_MISC,
|
|
117
|
-
"Using external
|
|
130
|
+
"Using external xz program for xz decompression");
|
|
118
131
|
return (ARCHIVE_WARN);
|
|
119
132
|
#endif
|
|
120
133
|
}
|
|
121
134
|
|
|
135
|
+
#if ARCHIVE_VERSION_NUMBER < 4000000
|
|
122
136
|
int
|
|
123
|
-
archive_read_support_compression_lzma(struct archive *
|
|
137
|
+
archive_read_support_compression_lzma(struct archive *a)
|
|
138
|
+
{
|
|
139
|
+
return archive_read_support_filter_lzma(a);
|
|
140
|
+
}
|
|
141
|
+
#endif
|
|
142
|
+
|
|
143
|
+
static const struct archive_read_filter_bidder_vtable
|
|
144
|
+
lzma_bidder_vtable = {
|
|
145
|
+
.bid = lzma_bidder_bid,
|
|
146
|
+
.init = lzma_bidder_init,
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
int
|
|
150
|
+
archive_read_support_filter_lzma(struct archive *_a)
|
|
124
151
|
{
|
|
125
152
|
struct archive_read *a = (struct archive_read *)_a;
|
|
126
|
-
struct archive_read_filter_bidder *bidder = __archive_read_get_bidder(a);
|
|
127
153
|
|
|
128
|
-
|
|
129
|
-
|
|
154
|
+
if (__archive_read_register_bidder(a, NULL, "lzma",
|
|
155
|
+
&lzma_bidder_vtable) != ARCHIVE_OK)
|
|
130
156
|
return (ARCHIVE_FATAL);
|
|
131
157
|
|
|
132
|
-
bidder->data = NULL;
|
|
133
|
-
bidder->bid = lzma_bidder_bid;
|
|
134
|
-
bidder->init = lzma_bidder_init;
|
|
135
|
-
bidder->options = NULL;
|
|
136
|
-
bidder->free = NULL;
|
|
137
158
|
#if HAVE_LZMA_H && HAVE_LIBLZMA
|
|
138
159
|
return (ARCHIVE_OK);
|
|
139
|
-
#
|
|
160
|
+
#else
|
|
161
|
+
archive_set_error(_a, ARCHIVE_ERRNO_MISC,
|
|
162
|
+
"Using external lzma program for lzma decompression");
|
|
163
|
+
return (ARCHIVE_WARN);
|
|
164
|
+
#endif
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
#if ARCHIVE_VERSION_NUMBER < 4000000
|
|
169
|
+
int
|
|
170
|
+
archive_read_support_compression_lzip(struct archive *a)
|
|
171
|
+
{
|
|
172
|
+
return archive_read_support_filter_lzip(a);
|
|
173
|
+
}
|
|
174
|
+
#endif
|
|
175
|
+
|
|
176
|
+
static const struct archive_read_filter_bidder_vtable
|
|
177
|
+
lzip_bidder_vtable = {
|
|
178
|
+
.bid = lzip_bidder_bid,
|
|
179
|
+
.init = lzip_bidder_init,
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
int
|
|
183
|
+
archive_read_support_filter_lzip(struct archive *_a)
|
|
184
|
+
{
|
|
185
|
+
struct archive_read *a = (struct archive_read *)_a;
|
|
186
|
+
|
|
187
|
+
if (__archive_read_register_bidder(a, NULL, "lzip",
|
|
188
|
+
&lzip_bidder_vtable) != ARCHIVE_OK)
|
|
189
|
+
return (ARCHIVE_FATAL);
|
|
190
|
+
|
|
191
|
+
#if HAVE_LZMA_H && HAVE_LIBLZMA
|
|
140
192
|
return (ARCHIVE_OK);
|
|
141
193
|
#else
|
|
142
194
|
archive_set_error(_a, ARCHIVE_ERRNO_MISC,
|
|
143
|
-
"Using external
|
|
195
|
+
"Using external lzip program for lzip decompression");
|
|
144
196
|
return (ARCHIVE_WARN);
|
|
145
197
|
#endif
|
|
146
198
|
}
|
|
@@ -154,7 +206,6 @@ xz_bidder_bid(struct archive_read_filter_bidder *self,
|
|
|
154
206
|
{
|
|
155
207
|
const unsigned char *buffer;
|
|
156
208
|
ssize_t avail;
|
|
157
|
-
int bits_checked;
|
|
158
209
|
|
|
159
210
|
(void)self; /* UNUSED */
|
|
160
211
|
|
|
@@ -165,27 +216,10 @@ xz_bidder_bid(struct archive_read_filter_bidder *self,
|
|
|
165
216
|
/*
|
|
166
217
|
* Verify Header Magic Bytes : FD 37 7A 58 5A 00
|
|
167
218
|
*/
|
|
168
|
-
|
|
169
|
-
if (buffer[0] != 0xFD)
|
|
170
|
-
return (0);
|
|
171
|
-
bits_checked += 8;
|
|
172
|
-
if (buffer[1] != 0x37)
|
|
173
|
-
return (0);
|
|
174
|
-
bits_checked += 8;
|
|
175
|
-
if (buffer[2] != 0x7A)
|
|
176
|
-
return (0);
|
|
177
|
-
bits_checked += 8;
|
|
178
|
-
if (buffer[3] != 0x58)
|
|
179
|
-
return (0);
|
|
180
|
-
bits_checked += 8;
|
|
181
|
-
if (buffer[4] != 0x5A)
|
|
182
|
-
return (0);
|
|
183
|
-
bits_checked += 8;
|
|
184
|
-
if (buffer[5] != 0x00)
|
|
219
|
+
if (memcmp(buffer, "\xFD\x37\x7A\x58\x5A\x00", 6) != 0)
|
|
185
220
|
return (0);
|
|
186
|
-
bits_checked += 8;
|
|
187
221
|
|
|
188
|
-
return (
|
|
222
|
+
return (48);
|
|
189
223
|
}
|
|
190
224
|
|
|
191
225
|
/*
|
|
@@ -250,8 +284,8 @@ lzma_bidder_bid(struct archive_read_filter_bidder *self,
|
|
|
250
284
|
/* Second through fifth bytes are dictionary size, stored in
|
|
251
285
|
* little-endian order. The minimum dictionary size is
|
|
252
286
|
* 1 << 12(4KiB) which the lzma of LZMA SDK uses with option
|
|
253
|
-
* -d12 and the
|
|
254
|
-
* which the one uses with option -
|
|
287
|
+
* -d12 and the maximum dictionary size is 1 << 29(512MiB)
|
|
288
|
+
* which the one uses with option -d29.
|
|
255
289
|
* NOTE: A comment of LZMA SDK source code says this dictionary
|
|
256
290
|
* range is from 1 << 12 to 1 << 30. */
|
|
257
291
|
dicsize = archive_le32dec(buffer+1);
|
|
@@ -307,6 +341,49 @@ lzma_bidder_bid(struct archive_read_filter_bidder *self,
|
|
|
307
341
|
return (bits_checked);
|
|
308
342
|
}
|
|
309
343
|
|
|
344
|
+
static int
|
|
345
|
+
lzip_has_member(struct archive_read_filter *filter)
|
|
346
|
+
{
|
|
347
|
+
const unsigned char *buffer;
|
|
348
|
+
ssize_t avail;
|
|
349
|
+
int bits_checked;
|
|
350
|
+
int log2dic;
|
|
351
|
+
|
|
352
|
+
buffer = __archive_read_filter_ahead(filter, 6, &avail);
|
|
353
|
+
if (buffer == NULL)
|
|
354
|
+
return (0);
|
|
355
|
+
|
|
356
|
+
/*
|
|
357
|
+
* Verify Header Magic Bytes : 4C 5A 49 50 (`LZIP')
|
|
358
|
+
*/
|
|
359
|
+
bits_checked = 0;
|
|
360
|
+
if (memcmp(buffer, "LZIP", 4) != 0)
|
|
361
|
+
return (0);
|
|
362
|
+
bits_checked += 32;
|
|
363
|
+
|
|
364
|
+
/* A version number must be 0 or 1 */
|
|
365
|
+
if (buffer[4] != 0 && buffer[4] != 1)
|
|
366
|
+
return (0);
|
|
367
|
+
bits_checked += 8;
|
|
368
|
+
|
|
369
|
+
/* Dictionary size. */
|
|
370
|
+
log2dic = buffer[5] & 0x1f;
|
|
371
|
+
if (log2dic < 12 || log2dic > 29)
|
|
372
|
+
return (0);
|
|
373
|
+
bits_checked += 8;
|
|
374
|
+
|
|
375
|
+
return (bits_checked);
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
static int
|
|
379
|
+
lzip_bidder_bid(struct archive_read_filter_bidder *self,
|
|
380
|
+
struct archive_read_filter *filter)
|
|
381
|
+
{
|
|
382
|
+
|
|
383
|
+
(void)self; /* UNUSED */
|
|
384
|
+
return (lzip_has_member(filter));
|
|
385
|
+
}
|
|
386
|
+
|
|
310
387
|
#if HAVE_LZMA_H && HAVE_LIBLZMA
|
|
311
388
|
|
|
312
389
|
/*
|
|
@@ -315,7 +392,7 @@ lzma_bidder_bid(struct archive_read_filter_bidder *self,
|
|
|
315
392
|
static int
|
|
316
393
|
xz_bidder_init(struct archive_read_filter *self)
|
|
317
394
|
{
|
|
318
|
-
self->code =
|
|
395
|
+
self->code = ARCHIVE_FILTER_XZ;
|
|
319
396
|
self->name = "xz";
|
|
320
397
|
return (xz_lzma_bidder_init(self));
|
|
321
398
|
}
|
|
@@ -323,11 +400,73 @@ xz_bidder_init(struct archive_read_filter *self)
|
|
|
323
400
|
static int
|
|
324
401
|
lzma_bidder_init(struct archive_read_filter *self)
|
|
325
402
|
{
|
|
326
|
-
self->code =
|
|
403
|
+
self->code = ARCHIVE_FILTER_LZMA;
|
|
327
404
|
self->name = "lzma";
|
|
328
405
|
return (xz_lzma_bidder_init(self));
|
|
329
406
|
}
|
|
330
407
|
|
|
408
|
+
static int
|
|
409
|
+
lzip_bidder_init(struct archive_read_filter *self)
|
|
410
|
+
{
|
|
411
|
+
self->code = ARCHIVE_FILTER_LZIP;
|
|
412
|
+
self->name = "lzip";
|
|
413
|
+
return (xz_lzma_bidder_init(self));
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
/*
|
|
417
|
+
* Set an error code and choose an error message
|
|
418
|
+
*/
|
|
419
|
+
static void
|
|
420
|
+
set_error(struct archive_read_filter *self, int ret)
|
|
421
|
+
{
|
|
422
|
+
|
|
423
|
+
switch (ret) {
|
|
424
|
+
case LZMA_STREAM_END: /* Found end of stream. */
|
|
425
|
+
case LZMA_OK: /* Decompressor made some progress. */
|
|
426
|
+
break;
|
|
427
|
+
case LZMA_MEM_ERROR:
|
|
428
|
+
archive_set_error(&self->archive->archive, ENOMEM,
|
|
429
|
+
"Lzma library error: Cannot allocate memory");
|
|
430
|
+
break;
|
|
431
|
+
case LZMA_MEMLIMIT_ERROR:
|
|
432
|
+
archive_set_error(&self->archive->archive, ENOMEM,
|
|
433
|
+
"Lzma library error: Out of memory");
|
|
434
|
+
break;
|
|
435
|
+
case LZMA_FORMAT_ERROR:
|
|
436
|
+
archive_set_error(&self->archive->archive,
|
|
437
|
+
ARCHIVE_ERRNO_MISC,
|
|
438
|
+
"Lzma library error: format not recognized");
|
|
439
|
+
break;
|
|
440
|
+
case LZMA_OPTIONS_ERROR:
|
|
441
|
+
archive_set_error(&self->archive->archive,
|
|
442
|
+
ARCHIVE_ERRNO_MISC,
|
|
443
|
+
"Lzma library error: Invalid options");
|
|
444
|
+
break;
|
|
445
|
+
case LZMA_DATA_ERROR:
|
|
446
|
+
archive_set_error(&self->archive->archive,
|
|
447
|
+
ARCHIVE_ERRNO_MISC,
|
|
448
|
+
"Lzma library error: Corrupted input data");
|
|
449
|
+
break;
|
|
450
|
+
case LZMA_BUF_ERROR:
|
|
451
|
+
archive_set_error(&self->archive->archive,
|
|
452
|
+
ARCHIVE_ERRNO_MISC,
|
|
453
|
+
"Lzma library error: No progress is possible");
|
|
454
|
+
break;
|
|
455
|
+
default:
|
|
456
|
+
/* Return an error. */
|
|
457
|
+
archive_set_error(&self->archive->archive,
|
|
458
|
+
ARCHIVE_ERRNO_MISC,
|
|
459
|
+
"Lzma decompression failed: Unknown error");
|
|
460
|
+
break;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
static const struct archive_read_filter_vtable
|
|
465
|
+
xz_lzma_reader_vtable = {
|
|
466
|
+
.read = xz_filter_read,
|
|
467
|
+
.close = xz_filter_close,
|
|
468
|
+
};
|
|
469
|
+
|
|
331
470
|
/*
|
|
332
471
|
* Setup the callbacks.
|
|
333
472
|
*/
|
|
@@ -352,49 +491,39 @@ xz_lzma_bidder_init(struct archive_read_filter *self)
|
|
|
352
491
|
self->data = state;
|
|
353
492
|
state->out_block_size = out_block_size;
|
|
354
493
|
state->out_block = out_block;
|
|
355
|
-
self->
|
|
356
|
-
self->skip = NULL; /* not supported */
|
|
357
|
-
self->close = xz_filter_close;
|
|
494
|
+
self->vtable = &xz_lzma_reader_vtable;
|
|
358
495
|
|
|
359
496
|
state->stream.avail_in = 0;
|
|
360
497
|
|
|
361
498
|
state->stream.next_out = state->out_block;
|
|
362
499
|
state->stream.avail_out = state->out_block_size;
|
|
363
500
|
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
501
|
+
state->crc32 = 0;
|
|
502
|
+
if (self->code == ARCHIVE_FILTER_LZIP) {
|
|
503
|
+
/*
|
|
504
|
+
* We have to read a lzip header and use it to initialize
|
|
505
|
+
* compression library, thus we cannot initialize the
|
|
506
|
+
* library for lzip here.
|
|
507
|
+
*/
|
|
508
|
+
state->in_stream = 0;
|
|
509
|
+
return (ARCHIVE_OK);
|
|
510
|
+
} else
|
|
511
|
+
state->in_stream = 1;
|
|
512
|
+
|
|
513
|
+
/* Initialize compression library. */
|
|
514
|
+
if (self->code == ARCHIVE_FILTER_XZ)
|
|
370
515
|
ret = lzma_stream_decoder(&(state->stream),
|
|
371
|
-
|
|
516
|
+
LZMA_MEMLIMIT,/* memlimit */
|
|
372
517
|
LZMA_CONCATENATED);
|
|
373
518
|
else
|
|
374
519
|
ret = lzma_alone_decoder(&(state->stream),
|
|
375
|
-
|
|
520
|
+
LZMA_MEMLIMIT);/* memlimit */
|
|
376
521
|
|
|
377
522
|
if (ret == LZMA_OK)
|
|
378
523
|
return (ARCHIVE_OK);
|
|
379
524
|
|
|
380
525
|
/* Library setup failed: Choose an error message and clean up. */
|
|
381
|
-
|
|
382
|
-
case LZMA_MEM_ERROR:
|
|
383
|
-
archive_set_error(&self->archive->archive, ENOMEM,
|
|
384
|
-
"Internal error initializing compression library: "
|
|
385
|
-
"Cannot allocate memory");
|
|
386
|
-
break;
|
|
387
|
-
case LZMA_OPTIONS_ERROR:
|
|
388
|
-
archive_set_error(&self->archive->archive,
|
|
389
|
-
ARCHIVE_ERRNO_MISC,
|
|
390
|
-
"Internal error initializing compression library: "
|
|
391
|
-
"Invalid or unsupported options");
|
|
392
|
-
break;
|
|
393
|
-
default:
|
|
394
|
-
archive_set_error(&self->archive->archive, ARCHIVE_ERRNO_MISC,
|
|
395
|
-
"Internal error initializing lzma library");
|
|
396
|
-
break;
|
|
397
|
-
}
|
|
526
|
+
set_error(self, ret);
|
|
398
527
|
|
|
399
528
|
free(state->out_block);
|
|
400
529
|
free(state);
|
|
@@ -402,193 +531,132 @@ xz_lzma_bidder_init(struct archive_read_filter *self)
|
|
|
402
531
|
return (ARCHIVE_FATAL);
|
|
403
532
|
}
|
|
404
533
|
|
|
405
|
-
|
|
406
|
-
*
|
|
407
|
-
*/
|
|
408
|
-
static ssize_t
|
|
409
|
-
xz_filter_read(struct archive_read_filter *self, const void **p)
|
|
534
|
+
static int
|
|
535
|
+
lzip_init(struct archive_read_filter *self)
|
|
410
536
|
{
|
|
411
537
|
struct private_data *state;
|
|
412
|
-
|
|
538
|
+
const unsigned char *h;
|
|
539
|
+
lzma_filter filters[2];
|
|
540
|
+
unsigned char props[5];
|
|
413
541
|
ssize_t avail_in;
|
|
414
|
-
|
|
542
|
+
uint32_t dicsize;
|
|
543
|
+
int log2dic, ret;
|
|
415
544
|
|
|
416
545
|
state = (struct private_data *)self->data;
|
|
546
|
+
h = __archive_read_filter_ahead(self->upstream, 6, &avail_in);
|
|
547
|
+
if (h == NULL)
|
|
548
|
+
return (ARCHIVE_FATAL);
|
|
417
549
|
|
|
418
|
-
/*
|
|
419
|
-
state->
|
|
420
|
-
state->stream.avail_out = state->out_block_size;
|
|
550
|
+
/* Get a version number. */
|
|
551
|
+
state->lzip_ver = h[4];
|
|
421
552
|
|
|
422
|
-
/*
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
if (state->stream.next_in == NULL && avail_in < 0)
|
|
427
|
-
return (ARCHIVE_FATAL);
|
|
428
|
-
state->stream.avail_in = avail_in;
|
|
553
|
+
/*
|
|
554
|
+
* Setup lzma property.
|
|
555
|
+
*/
|
|
556
|
+
props[0] = 0x5d;
|
|
429
557
|
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
return (ARCHIVE_FATAL);
|
|
459
|
-
case LZMA_DATA_ERROR:
|
|
460
|
-
archive_set_error(&self->archive->archive,
|
|
461
|
-
ARCHIVE_ERRNO_MISC,
|
|
462
|
-
"Lzma library error: Corrupted input data");
|
|
463
|
-
return (ARCHIVE_FATAL);
|
|
464
|
-
case LZMA_BUF_ERROR:
|
|
465
|
-
archive_set_error(&self->archive->archive,
|
|
466
|
-
ARCHIVE_ERRNO_MISC,
|
|
467
|
-
"Lzma library error: No progress is possible");
|
|
468
|
-
return (ARCHIVE_FATAL);
|
|
469
|
-
default:
|
|
470
|
-
/* Return an error. */
|
|
471
|
-
archive_set_error(&self->archive->archive,
|
|
472
|
-
ARCHIVE_ERRNO_MISC,
|
|
473
|
-
"Lzma decompression failed: Unknown error");
|
|
474
|
-
return (ARCHIVE_FATAL);
|
|
475
|
-
}
|
|
558
|
+
/* Get dictionary size. */
|
|
559
|
+
log2dic = h[5] & 0x1f;
|
|
560
|
+
if (log2dic < 12 || log2dic > 29)
|
|
561
|
+
return (ARCHIVE_FATAL);
|
|
562
|
+
dicsize = 1U << log2dic;
|
|
563
|
+
if (log2dic > 12)
|
|
564
|
+
dicsize -= (dicsize / 16) * (h[5] >> 5);
|
|
565
|
+
archive_le32enc(props+1, dicsize);
|
|
566
|
+
|
|
567
|
+
/* Consume lzip header. */
|
|
568
|
+
__archive_read_filter_consume(self->upstream, 6);
|
|
569
|
+
state->member_in = 6;
|
|
570
|
+
|
|
571
|
+
filters[0].id = LZMA_FILTER_LZMA1;
|
|
572
|
+
filters[0].options = NULL;
|
|
573
|
+
filters[1].id = LZMA_VLI_UNKNOWN;
|
|
574
|
+
filters[1].options = NULL;
|
|
575
|
+
|
|
576
|
+
ret = lzma_properties_decode(&filters[0], NULL, props, sizeof(props));
|
|
577
|
+
if (ret != LZMA_OK) {
|
|
578
|
+
set_error(self, ret);
|
|
579
|
+
return (ARCHIVE_FATAL);
|
|
580
|
+
}
|
|
581
|
+
ret = lzma_raw_decoder(&(state->stream), filters);
|
|
582
|
+
free(filters[0].options);
|
|
583
|
+
if (ret != LZMA_OK) {
|
|
584
|
+
set_error(self, ret);
|
|
585
|
+
return (ARCHIVE_FATAL);
|
|
476
586
|
}
|
|
477
|
-
|
|
478
|
-
decompressed = state->stream.next_out - state->out_block;
|
|
479
|
-
state->total_out += decompressed;
|
|
480
|
-
if (decompressed == 0)
|
|
481
|
-
*p = NULL;
|
|
482
|
-
else
|
|
483
|
-
*p = state->out_block;
|
|
484
|
-
return (decompressed);
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
/*
|
|
488
|
-
* Clean up the decompressor.
|
|
489
|
-
*/
|
|
490
|
-
static int
|
|
491
|
-
xz_filter_close(struct archive_read_filter *self)
|
|
492
|
-
{
|
|
493
|
-
struct private_data *state;
|
|
494
|
-
|
|
495
|
-
state = (struct private_data *)self->data;
|
|
496
|
-
lzma_end(&(state->stream));
|
|
497
|
-
free(state->out_block);
|
|
498
|
-
free(state);
|
|
499
587
|
return (ARCHIVE_OK);
|
|
500
588
|
}
|
|
501
589
|
|
|
502
|
-
#else
|
|
503
|
-
|
|
504
|
-
#if HAVE_LZMADEC_H && HAVE_LIBLZMADEC
|
|
505
|
-
|
|
506
|
-
/*
|
|
507
|
-
* If we have the older liblzmadec library, then we can handle
|
|
508
|
-
* LZMA streams but not XZ streams.
|
|
509
|
-
*/
|
|
510
|
-
|
|
511
|
-
/*
|
|
512
|
-
* Setup the callbacks.
|
|
513
|
-
*/
|
|
514
590
|
static int
|
|
515
|
-
|
|
591
|
+
lzip_tail(struct archive_read_filter *self)
|
|
516
592
|
{
|
|
517
|
-
static const size_t out_block_size = 64 * 1024;
|
|
518
|
-
void *out_block;
|
|
519
593
|
struct private_data *state;
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
self->name = "lzma";
|
|
594
|
+
const unsigned char *f;
|
|
595
|
+
ssize_t avail_in;
|
|
596
|
+
int tail;
|
|
524
597
|
|
|
525
|
-
state = (struct private_data *)
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
598
|
+
state = (struct private_data *)self->data;
|
|
599
|
+
if (state->lzip_ver == 0)
|
|
600
|
+
tail = 12;
|
|
601
|
+
else
|
|
602
|
+
tail = 20;
|
|
603
|
+
f = __archive_read_filter_ahead(self->upstream, tail, &avail_in);
|
|
604
|
+
if (f == NULL && avail_in < 0)
|
|
532
605
|
return (ARCHIVE_FATAL);
|
|
606
|
+
if (f == NULL || avail_in < tail) {
|
|
607
|
+
archive_set_error(&self->archive->archive, ARCHIVE_ERRNO_MISC,
|
|
608
|
+
"Lzip: Remaining data is less bytes");
|
|
609
|
+
return (ARCHIVE_FAILED);
|
|
533
610
|
}
|
|
534
611
|
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
state->
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
__archive_read_filter_ahead(self->upstream, 18, &avail_in);
|
|
545
|
-
if (state->stream.next_in == NULL)
|
|
546
|
-
return (ARCHIVE_FATAL);
|
|
547
|
-
state->stream.avail_in = avail_in;
|
|
548
|
-
state->stream.next_out = state->out_block;
|
|
549
|
-
state->stream.avail_out = state->out_block_size;
|
|
550
|
-
|
|
551
|
-
/* Initialize compression library. */
|
|
552
|
-
ret = lzmadec_init(&(state->stream));
|
|
553
|
-
__archive_read_filter_consume(self->upstream,
|
|
554
|
-
avail_in - state->stream.avail_in);
|
|
555
|
-
if (ret == LZMADEC_OK)
|
|
556
|
-
return (ARCHIVE_OK);
|
|
557
|
-
|
|
558
|
-
/* Library setup failed: Clean up. */
|
|
559
|
-
archive_set_error(&self->archive->archive, ARCHIVE_ERRNO_MISC,
|
|
560
|
-
"Internal error initializing lzma library");
|
|
612
|
+
/* Check the crc32 value of the uncompressed data of the current
|
|
613
|
+
* member */
|
|
614
|
+
if (state->crc32 != archive_le32dec(f)) {
|
|
615
|
+
#ifndef DONT_FAIL_ON_CRC_ERROR
|
|
616
|
+
archive_set_error(&self->archive->archive, ARCHIVE_ERRNO_MISC,
|
|
617
|
+
"Lzip: CRC32 error");
|
|
618
|
+
return (ARCHIVE_FAILED);
|
|
619
|
+
#endif
|
|
620
|
+
}
|
|
561
621
|
|
|
562
|
-
/*
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
"Internal error initializing compression library: "
|
|
568
|
-
"invalid header");
|
|
569
|
-
break;
|
|
570
|
-
case LZMADEC_MEM_ERROR:
|
|
571
|
-
archive_set_error(&self->archive->archive, ENOMEM,
|
|
572
|
-
"Internal error initializing compression library: "
|
|
573
|
-
"out of memory");
|
|
574
|
-
break;
|
|
622
|
+
/* Check the uncompressed size of the current member */
|
|
623
|
+
if ((uint64_t)state->member_out != archive_le64dec(f + 4)) {
|
|
624
|
+
archive_set_error(&self->archive->archive, ARCHIVE_ERRNO_MISC,
|
|
625
|
+
"Lzip: Uncompressed size error");
|
|
626
|
+
return (ARCHIVE_FAILED);
|
|
575
627
|
}
|
|
576
628
|
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
629
|
+
/* Check the total size of the current member */
|
|
630
|
+
if (state->lzip_ver == 1 &&
|
|
631
|
+
(uint64_t)state->member_in + tail != archive_le64dec(f + 12)) {
|
|
632
|
+
archive_set_error(&self->archive->archive, ARCHIVE_ERRNO_MISC,
|
|
633
|
+
"Lzip: Member size error");
|
|
634
|
+
return (ARCHIVE_FAILED);
|
|
635
|
+
}
|
|
636
|
+
__archive_read_filter_consume(self->upstream, tail);
|
|
637
|
+
|
|
638
|
+
/* If current lzip data consists of multi member, try decompressing
|
|
639
|
+
* a next member. */
|
|
640
|
+
if (lzip_has_member(self->upstream) != 0) {
|
|
641
|
+
state->in_stream = 0;
|
|
642
|
+
state->crc32 = 0;
|
|
643
|
+
state->member_out = 0;
|
|
644
|
+
state->member_in = 0;
|
|
645
|
+
state->eof = 0;
|
|
646
|
+
}
|
|
647
|
+
return (ARCHIVE_OK);
|
|
581
648
|
}
|
|
582
649
|
|
|
583
650
|
/*
|
|
584
651
|
* Return the next block of decompressed data.
|
|
585
652
|
*/
|
|
586
653
|
static ssize_t
|
|
587
|
-
|
|
654
|
+
xz_filter_read(struct archive_read_filter *self, const void **p)
|
|
588
655
|
{
|
|
589
656
|
struct private_data *state;
|
|
590
657
|
size_t decompressed;
|
|
591
|
-
ssize_t avail_in
|
|
658
|
+
ssize_t avail_in;
|
|
659
|
+
int ret;
|
|
592
660
|
|
|
593
661
|
state = (struct private_data *)self->data;
|
|
594
662
|
|
|
@@ -598,42 +666,61 @@ lzma_filter_read(struct archive_read_filter *self, const void **p)
|
|
|
598
666
|
|
|
599
667
|
/* Try to fill the output buffer. */
|
|
600
668
|
while (state->stream.avail_out > 0 && !state->eof) {
|
|
601
|
-
state->
|
|
669
|
+
if (!state->in_stream) {
|
|
670
|
+
/*
|
|
671
|
+
* Initialize liblzma for lzip
|
|
672
|
+
*/
|
|
673
|
+
ret = lzip_init(self);
|
|
674
|
+
if (ret != ARCHIVE_OK)
|
|
675
|
+
return (ret);
|
|
676
|
+
state->in_stream = 1;
|
|
677
|
+
}
|
|
678
|
+
state->stream.next_in =
|
|
602
679
|
__archive_read_filter_ahead(self->upstream, 1, &avail_in);
|
|
603
|
-
if (state->stream.next_in == NULL && avail_in < 0)
|
|
680
|
+
if (state->stream.next_in == NULL && avail_in < 0) {
|
|
681
|
+
archive_set_error(&self->archive->archive,
|
|
682
|
+
ARCHIVE_ERRNO_MISC,
|
|
683
|
+
"truncated input");
|
|
604
684
|
return (ARCHIVE_FATAL);
|
|
685
|
+
}
|
|
605
686
|
state->stream.avail_in = avail_in;
|
|
606
687
|
|
|
607
688
|
/* Decompress as much as we can in one pass. */
|
|
608
|
-
ret =
|
|
689
|
+
ret = lzma_code(&(state->stream),
|
|
690
|
+
(state->stream.avail_in == 0)? LZMA_FINISH: LZMA_RUN);
|
|
609
691
|
switch (ret) {
|
|
610
|
-
case
|
|
692
|
+
case LZMA_STREAM_END: /* Found end of stream. */
|
|
611
693
|
state->eof = 1;
|
|
612
694
|
/* FALL THROUGH */
|
|
613
|
-
case
|
|
695
|
+
case LZMA_OK: /* Decompressor made some progress. */
|
|
614
696
|
__archive_read_filter_consume(self->upstream,
|
|
615
697
|
avail_in - state->stream.avail_in);
|
|
698
|
+
state->member_in +=
|
|
699
|
+
avail_in - state->stream.avail_in;
|
|
616
700
|
break;
|
|
617
|
-
case LZMADEC_BUF_ERROR: /* Insufficient input data? */
|
|
618
|
-
archive_set_error(&self->archive->archive,
|
|
619
|
-
ARCHIVE_ERRNO_MISC,
|
|
620
|
-
"Insufficient compressed data");
|
|
621
|
-
return (ARCHIVE_FATAL);
|
|
622
701
|
default:
|
|
623
|
-
|
|
624
|
-
archive_set_error(&self->archive->archive,
|
|
625
|
-
ARCHIVE_ERRNO_MISC,
|
|
626
|
-
"Lzma decompression failed");
|
|
702
|
+
set_error(self, ret);
|
|
627
703
|
return (ARCHIVE_FATAL);
|
|
628
704
|
}
|
|
629
705
|
}
|
|
630
706
|
|
|
631
707
|
decompressed = state->stream.next_out - state->out_block;
|
|
632
708
|
state->total_out += decompressed;
|
|
709
|
+
state->member_out += decompressed;
|
|
633
710
|
if (decompressed == 0)
|
|
634
711
|
*p = NULL;
|
|
635
|
-
else
|
|
712
|
+
else {
|
|
636
713
|
*p = state->out_block;
|
|
714
|
+
if (self->code == ARCHIVE_FILTER_LZIP) {
|
|
715
|
+
state->crc32 = lzma_crc32(state->out_block,
|
|
716
|
+
decompressed, state->crc32);
|
|
717
|
+
if (state->eof) {
|
|
718
|
+
ret = lzip_tail(self);
|
|
719
|
+
if (ret != ARCHIVE_OK)
|
|
720
|
+
return (ret);
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
}
|
|
637
724
|
return (decompressed);
|
|
638
725
|
}
|
|
639
726
|
|
|
@@ -641,27 +728,15 @@ lzma_filter_read(struct archive_read_filter *self, const void **p)
|
|
|
641
728
|
* Clean up the decompressor.
|
|
642
729
|
*/
|
|
643
730
|
static int
|
|
644
|
-
|
|
731
|
+
xz_filter_close(struct archive_read_filter *self)
|
|
645
732
|
{
|
|
646
733
|
struct private_data *state;
|
|
647
|
-
int ret;
|
|
648
734
|
|
|
649
735
|
state = (struct private_data *)self->data;
|
|
650
|
-
|
|
651
|
-
switch (lzmadec_end(&(state->stream))) {
|
|
652
|
-
case LZMADEC_OK:
|
|
653
|
-
break;
|
|
654
|
-
default:
|
|
655
|
-
archive_set_error(&(self->archive->archive),
|
|
656
|
-
ARCHIVE_ERRNO_MISC,
|
|
657
|
-
"Failed to clean up %s compressor",
|
|
658
|
-
self->archive->archive.compression_name);
|
|
659
|
-
ret = ARCHIVE_FATAL;
|
|
660
|
-
}
|
|
661
|
-
|
|
736
|
+
lzma_end(&(state->stream));
|
|
662
737
|
free(state->out_block);
|
|
663
738
|
free(state);
|
|
664
|
-
return (
|
|
739
|
+
return (ARCHIVE_OK);
|
|
665
740
|
}
|
|
666
741
|
|
|
667
742
|
#else
|
|
@@ -678,31 +753,41 @@ lzma_bidder_init(struct archive_read_filter *self)
|
|
|
678
753
|
{
|
|
679
754
|
int r;
|
|
680
755
|
|
|
681
|
-
r = __archive_read_program(self, "
|
|
756
|
+
r = __archive_read_program(self, "lzma -d -qq");
|
|
682
757
|
/* Note: We set the format here even if __archive_read_program()
|
|
683
758
|
* above fails. We do, after all, know what the format is
|
|
684
759
|
* even if we weren't able to read it. */
|
|
685
|
-
self->code =
|
|
760
|
+
self->code = ARCHIVE_FILTER_LZMA;
|
|
686
761
|
self->name = "lzma";
|
|
687
762
|
return (r);
|
|
688
763
|
}
|
|
689
764
|
|
|
690
|
-
#endif /* HAVE_LZMADEC_H */
|
|
691
|
-
|
|
692
|
-
|
|
693
765
|
static int
|
|
694
766
|
xz_bidder_init(struct archive_read_filter *self)
|
|
695
767
|
{
|
|
696
768
|
int r;
|
|
697
769
|
|
|
698
|
-
r = __archive_read_program(self, "
|
|
770
|
+
r = __archive_read_program(self, "xz -d -qq");
|
|
699
771
|
/* Note: We set the format here even if __archive_read_program()
|
|
700
772
|
* above fails. We do, after all, know what the format is
|
|
701
773
|
* even if we weren't able to read it. */
|
|
702
|
-
self->code =
|
|
774
|
+
self->code = ARCHIVE_FILTER_XZ;
|
|
703
775
|
self->name = "xz";
|
|
704
776
|
return (r);
|
|
705
777
|
}
|
|
706
778
|
|
|
779
|
+
static int
|
|
780
|
+
lzip_bidder_init(struct archive_read_filter *self)
|
|
781
|
+
{
|
|
782
|
+
int r;
|
|
783
|
+
|
|
784
|
+
r = __archive_read_program(self, "lzip -d -q");
|
|
785
|
+
/* Note: We set the format here even if __archive_read_program()
|
|
786
|
+
* above fails. We do, after all, know what the format is
|
|
787
|
+
* even if we weren't able to read it. */
|
|
788
|
+
self->code = ARCHIVE_FILTER_LZIP;
|
|
789
|
+
self->name = "lzip";
|
|
790
|
+
return (r);
|
|
791
|
+
}
|
|
707
792
|
|
|
708
793
|
#endif /* HAVE_LZMA_H */
|