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
|
@@ -34,7 +34,7 @@ __FBSDID("$FreeBSD$");
|
|
|
34
34
|
#define EPOC_TIME ARCHIVE_LITERAL_ULL(116444736000000000)
|
|
35
35
|
|
|
36
36
|
__inline static void
|
|
37
|
-
fileTimeToUtc(const FILETIME *filetime, time_t *
|
|
37
|
+
fileTimeToUtc(const FILETIME *filetime, time_t *t, long *ns)
|
|
38
38
|
{
|
|
39
39
|
ULARGE_INTEGER utc;
|
|
40
40
|
|
|
@@ -42,10 +42,10 @@ fileTimeToUtc(const FILETIME *filetime, time_t *time, long *ns)
|
|
|
42
42
|
utc.LowPart = filetime->dwLowDateTime;
|
|
43
43
|
if (utc.QuadPart >= EPOC_TIME) {
|
|
44
44
|
utc.QuadPart -= EPOC_TIME;
|
|
45
|
-
*
|
|
45
|
+
*t = (time_t)(utc.QuadPart / 10000000); /* milli seconds base */
|
|
46
46
|
*ns = (long)(utc.QuadPart % 10000000) * 100;/* nano seconds base */
|
|
47
47
|
} else {
|
|
48
|
-
*
|
|
48
|
+
*t = 0;
|
|
49
49
|
*ns = 0;
|
|
50
50
|
}
|
|
51
51
|
}
|
|
@@ -63,12 +63,13 @@ archive_entry_copy_bhfi(struct archive_entry *entry,
|
|
|
63
63
|
archive_entry_set_mtime(entry, secs, nsecs);
|
|
64
64
|
fileTimeToUtc(&bhfi->ftCreationTime, &secs, &nsecs);
|
|
65
65
|
archive_entry_set_birthtime(entry, secs, nsecs);
|
|
66
|
+
archive_entry_set_ctime(entry, secs, nsecs);
|
|
66
67
|
archive_entry_set_dev(entry, bhfi->dwVolumeSerialNumber);
|
|
67
68
|
archive_entry_set_ino64(entry, (((int64_t)bhfi->nFileIndexHigh) << 32)
|
|
68
69
|
+ bhfi->nFileIndexLow);
|
|
69
70
|
archive_entry_set_nlink(entry, bhfi->nNumberOfLinks);
|
|
70
71
|
archive_entry_set_size(entry, (((int64_t)bhfi->nFileSizeHigh) << 32)
|
|
71
72
|
+ bhfi->nFileSizeLow);
|
|
72
|
-
|
|
73
|
+
/* archive_entry_set_mode(entry, st->st_mode); */
|
|
73
74
|
}
|
|
74
75
|
#endif
|
|
@@ -30,6 +30,7 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_entry_copy_stat.c 189466 2009-03
|
|
|
30
30
|
#include <sys/stat.h>
|
|
31
31
|
#endif
|
|
32
32
|
|
|
33
|
+
#include "archive.h"
|
|
33
34
|
#include "archive_entry.h"
|
|
34
35
|
|
|
35
36
|
void
|
|
@@ -43,6 +44,10 @@ archive_entry_copy_stat(struct archive_entry *entry, const struct stat *st)
|
|
|
43
44
|
archive_entry_set_atime(entry, st->st_atime, st->st_atim.tv_nsec);
|
|
44
45
|
archive_entry_set_ctime(entry, st->st_ctime, st->st_ctim.tv_nsec);
|
|
45
46
|
archive_entry_set_mtime(entry, st->st_mtime, st->st_mtim.tv_nsec);
|
|
47
|
+
#elif HAVE_STRUCT_STAT_ST_MTIME_NSEC
|
|
48
|
+
archive_entry_set_atime(entry, st->st_atime, st->st_atime_nsec);
|
|
49
|
+
archive_entry_set_ctime(entry, st->st_ctime, st->st_ctime_nsec);
|
|
50
|
+
archive_entry_set_mtime(entry, st->st_mtime, st->st_mtime_nsec);
|
|
46
51
|
#elif HAVE_STRUCT_STAT_ST_MTIME_N
|
|
47
52
|
archive_entry_set_atime(entry, st->st_atime, st->st_atime_n);
|
|
48
53
|
archive_entry_set_ctime(entry, st->st_ctime, st->st_ctime_n);
|
|
@@ -59,12 +64,13 @@ archive_entry_copy_stat(struct archive_entry *entry, const struct stat *st)
|
|
|
59
64
|
archive_entry_set_atime(entry, st->st_atime, 0);
|
|
60
65
|
archive_entry_set_ctime(entry, st->st_ctime, 0);
|
|
61
66
|
archive_entry_set_mtime(entry, st->st_mtime, 0);
|
|
62
|
-
#if HAVE_STRUCT_STAT_ST_BIRTHTIME
|
|
63
|
-
archive_entry_set_birthtime(entry, st->st_birthtime, 0);
|
|
64
|
-
#endif
|
|
65
67
|
#endif
|
|
66
68
|
#if HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
|
|
67
69
|
archive_entry_set_birthtime(entry, st->st_birthtime, st->st_birthtimespec.tv_nsec);
|
|
70
|
+
#elif HAVE_STRUCT_STAT_ST_BIRTHTIME
|
|
71
|
+
archive_entry_set_birthtime(entry, st->st_birthtime, 0);
|
|
72
|
+
#else
|
|
73
|
+
archive_entry_unset_birthtime(entry);
|
|
68
74
|
#endif
|
|
69
75
|
archive_entry_set_dev(entry, st->st_dev);
|
|
70
76
|
archive_entry_set_gid(entry, st->st_gid);
|
|
@@ -70,10 +70,10 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_entry_link_resolver.c 201100 200
|
|
|
70
70
|
struct links_entry {
|
|
71
71
|
struct links_entry *next;
|
|
72
72
|
struct links_entry *previous;
|
|
73
|
-
int links; /* # links not yet seen */
|
|
74
|
-
int hash;
|
|
75
73
|
struct archive_entry *canonical;
|
|
76
74
|
struct archive_entry *entry;
|
|
75
|
+
size_t hash;
|
|
76
|
+
unsigned int links; /* # links not yet seen */
|
|
77
77
|
};
|
|
78
78
|
|
|
79
79
|
struct archive_entry_linkresolver {
|
|
@@ -84,32 +84,37 @@ struct archive_entry_linkresolver {
|
|
|
84
84
|
int strategy;
|
|
85
85
|
};
|
|
86
86
|
|
|
87
|
+
#define NEXT_ENTRY_DEFERRED 1
|
|
88
|
+
#define NEXT_ENTRY_PARTIAL 2
|
|
89
|
+
#define NEXT_ENTRY_ALL (NEXT_ENTRY_DEFERRED | NEXT_ENTRY_PARTIAL)
|
|
90
|
+
|
|
87
91
|
static struct links_entry *find_entry(struct archive_entry_linkresolver *,
|
|
88
92
|
struct archive_entry *);
|
|
89
93
|
static void grow_hash(struct archive_entry_linkresolver *);
|
|
90
94
|
static struct links_entry *insert_entry(struct archive_entry_linkresolver *,
|
|
91
95
|
struct archive_entry *);
|
|
92
|
-
static struct links_entry *next_entry(struct archive_entry_linkresolver
|
|
96
|
+
static struct links_entry *next_entry(struct archive_entry_linkresolver *,
|
|
97
|
+
int);
|
|
93
98
|
|
|
94
99
|
struct archive_entry_linkresolver *
|
|
95
100
|
archive_entry_linkresolver_new(void)
|
|
96
101
|
{
|
|
97
102
|
struct archive_entry_linkresolver *res;
|
|
98
|
-
size_t i;
|
|
99
103
|
|
|
100
|
-
|
|
104
|
+
/* Check for positive power-of-two */
|
|
105
|
+
if (links_cache_initial_size == 0 ||
|
|
106
|
+
(links_cache_initial_size & (links_cache_initial_size - 1)) != 0)
|
|
107
|
+
return (NULL);
|
|
108
|
+
|
|
109
|
+
res = calloc(1, sizeof(struct archive_entry_linkresolver));
|
|
101
110
|
if (res == NULL)
|
|
102
111
|
return (NULL);
|
|
103
|
-
memset(res, 0, sizeof(struct archive_entry_linkresolver));
|
|
104
112
|
res->number_buckets = links_cache_initial_size;
|
|
105
|
-
res->buckets =
|
|
106
|
-
sizeof(res->buckets[0]));
|
|
113
|
+
res->buckets = calloc(res->number_buckets, sizeof(res->buckets[0]));
|
|
107
114
|
if (res->buckets == NULL) {
|
|
108
115
|
free(res);
|
|
109
116
|
return (NULL);
|
|
110
117
|
}
|
|
111
|
-
for (i = 0; i < res->number_buckets; i++)
|
|
112
|
-
res->buckets[i] = NULL;
|
|
113
118
|
return (res);
|
|
114
119
|
}
|
|
115
120
|
|
|
@@ -120,6 +125,11 @@ archive_entry_linkresolver_set_strategy(struct archive_entry_linkresolver *res,
|
|
|
120
125
|
int fmtbase = fmt & ARCHIVE_FORMAT_BASE_MASK;
|
|
121
126
|
|
|
122
127
|
switch (fmtbase) {
|
|
128
|
+
case ARCHIVE_FORMAT_7ZIP:
|
|
129
|
+
case ARCHIVE_FORMAT_AR:
|
|
130
|
+
case ARCHIVE_FORMAT_ZIP:
|
|
131
|
+
res->strategy = ARCHIVE_ENTRY_LINKIFY_LIKE_OLD_CPIO;
|
|
132
|
+
break;
|
|
123
133
|
case ARCHIVE_FORMAT_CPIO:
|
|
124
134
|
switch (fmt) {
|
|
125
135
|
case ARCHIVE_FORMAT_CPIO_SVR4_NOCRC:
|
|
@@ -134,11 +144,14 @@ archive_entry_linkresolver_set_strategy(struct archive_entry_linkresolver *res,
|
|
|
134
144
|
case ARCHIVE_FORMAT_MTREE:
|
|
135
145
|
res->strategy = ARCHIVE_ENTRY_LINKIFY_LIKE_MTREE;
|
|
136
146
|
break;
|
|
147
|
+
case ARCHIVE_FORMAT_ISO9660:
|
|
148
|
+
case ARCHIVE_FORMAT_SHAR:
|
|
137
149
|
case ARCHIVE_FORMAT_TAR:
|
|
150
|
+
case ARCHIVE_FORMAT_XAR:
|
|
138
151
|
res->strategy = ARCHIVE_ENTRY_LINKIFY_LIKE_TAR;
|
|
139
152
|
break;
|
|
140
153
|
default:
|
|
141
|
-
res->strategy =
|
|
154
|
+
res->strategy = ARCHIVE_ENTRY_LINKIFY_LIKE_OLD_CPIO;
|
|
142
155
|
break;
|
|
143
156
|
}
|
|
144
157
|
}
|
|
@@ -151,12 +164,9 @@ archive_entry_linkresolver_free(struct archive_entry_linkresolver *res)
|
|
|
151
164
|
if (res == NULL)
|
|
152
165
|
return;
|
|
153
166
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
free(res->buckets);
|
|
158
|
-
res->buckets = NULL;
|
|
159
|
-
}
|
|
167
|
+
while ((le = next_entry(res, NEXT_ENTRY_ALL)) != NULL)
|
|
168
|
+
archive_entry_free(le->entry);
|
|
169
|
+
free(res->buckets);
|
|
160
170
|
free(res);
|
|
161
171
|
}
|
|
162
172
|
|
|
@@ -170,7 +180,7 @@ archive_entry_linkify(struct archive_entry_linkresolver *res,
|
|
|
170
180
|
*f = NULL; /* Default: Don't return a second entry. */
|
|
171
181
|
|
|
172
182
|
if (*e == NULL) {
|
|
173
|
-
le = next_entry(res);
|
|
183
|
+
le = next_entry(res, NEXT_ENTRY_DEFERRED);
|
|
174
184
|
if (le != NULL) {
|
|
175
185
|
*e = le->entry;
|
|
176
186
|
le->entry = NULL;
|
|
@@ -234,6 +244,9 @@ archive_entry_linkify(struct archive_entry_linkresolver *res,
|
|
|
234
244
|
* for future use.
|
|
235
245
|
*/
|
|
236
246
|
le = insert_entry(res, *e);
|
|
247
|
+
if (le == NULL)
|
|
248
|
+
/* XXX We should return an error code XXX */
|
|
249
|
+
return;
|
|
237
250
|
le->entry = *e;
|
|
238
251
|
*e = NULL;
|
|
239
252
|
}
|
|
@@ -249,7 +262,7 @@ find_entry(struct archive_entry_linkresolver *res,
|
|
|
249
262
|
struct archive_entry *entry)
|
|
250
263
|
{
|
|
251
264
|
struct links_entry *le;
|
|
252
|
-
|
|
265
|
+
size_t hash, bucket;
|
|
253
266
|
dev_t dev;
|
|
254
267
|
int64_t ino;
|
|
255
268
|
|
|
@@ -261,16 +274,12 @@ find_entry(struct archive_entry_linkresolver *res,
|
|
|
261
274
|
res->spare = NULL;
|
|
262
275
|
}
|
|
263
276
|
|
|
264
|
-
/* If the links cache overflowed and got flushed, don't bother. */
|
|
265
|
-
if (res->buckets == NULL)
|
|
266
|
-
return (NULL);
|
|
267
|
-
|
|
268
277
|
dev = archive_entry_dev(entry);
|
|
269
278
|
ino = archive_entry_ino64(entry);
|
|
270
|
-
hash = (
|
|
279
|
+
hash = (size_t)(dev ^ ino);
|
|
271
280
|
|
|
272
281
|
/* Try to locate this entry in the links cache. */
|
|
273
|
-
bucket = hash
|
|
282
|
+
bucket = hash & (res->number_buckets - 1);
|
|
274
283
|
for (le = res->buckets[bucket]; le != NULL; le = le->next) {
|
|
275
284
|
if (le->hash == hash
|
|
276
285
|
&& dev == archive_entry_dev(le->canonical)
|
|
@@ -301,7 +310,7 @@ find_entry(struct archive_entry_linkresolver *res,
|
|
|
301
310
|
}
|
|
302
311
|
|
|
303
312
|
static struct links_entry *
|
|
304
|
-
next_entry(struct archive_entry_linkresolver *res)
|
|
313
|
+
next_entry(struct archive_entry_linkresolver *res, int mode)
|
|
305
314
|
{
|
|
306
315
|
struct links_entry *le;
|
|
307
316
|
size_t bucket;
|
|
@@ -309,22 +318,27 @@ next_entry(struct archive_entry_linkresolver *res)
|
|
|
309
318
|
/* Free a held entry. */
|
|
310
319
|
if (res->spare != NULL) {
|
|
311
320
|
archive_entry_free(res->spare->canonical);
|
|
321
|
+
archive_entry_free(res->spare->entry);
|
|
312
322
|
free(res->spare);
|
|
313
323
|
res->spare = NULL;
|
|
314
324
|
}
|
|
315
325
|
|
|
316
|
-
/* If the links cache overflowed and got flushed, don't bother. */
|
|
317
|
-
if (res->buckets == NULL)
|
|
318
|
-
return (NULL);
|
|
319
|
-
|
|
320
326
|
/* Look for next non-empty bucket in the links cache. */
|
|
321
327
|
for (bucket = 0; bucket < res->number_buckets; bucket++) {
|
|
322
|
-
le = res->buckets[bucket];
|
|
323
|
-
|
|
328
|
+
for (le = res->buckets[bucket]; le != NULL; le = le->next) {
|
|
329
|
+
if (le->entry != NULL &&
|
|
330
|
+
(mode & NEXT_ENTRY_DEFERRED) == 0)
|
|
331
|
+
continue;
|
|
332
|
+
if (le->entry == NULL &&
|
|
333
|
+
(mode & NEXT_ENTRY_PARTIAL) == 0)
|
|
334
|
+
continue;
|
|
324
335
|
/* Remove it from this hash bucket. */
|
|
325
336
|
if (le->next != NULL)
|
|
326
337
|
le->next->previous = le->previous;
|
|
327
|
-
|
|
338
|
+
if (le->previous != NULL)
|
|
339
|
+
le->previous->next = le->next;
|
|
340
|
+
else
|
|
341
|
+
res->buckets[bucket] = le->next;
|
|
328
342
|
res->number_entries--;
|
|
329
343
|
/* Defer freeing this entry. */
|
|
330
344
|
res->spare = le;
|
|
@@ -339,21 +353,20 @@ insert_entry(struct archive_entry_linkresolver *res,
|
|
|
339
353
|
struct archive_entry *entry)
|
|
340
354
|
{
|
|
341
355
|
struct links_entry *le;
|
|
342
|
-
|
|
356
|
+
size_t hash, bucket;
|
|
343
357
|
|
|
344
358
|
/* Add this entry to the links cache. */
|
|
345
|
-
le =
|
|
359
|
+
le = calloc(1, sizeof(struct links_entry));
|
|
346
360
|
if (le == NULL)
|
|
347
361
|
return (NULL);
|
|
348
|
-
memset(le, 0, sizeof(*le));
|
|
349
362
|
le->canonical = archive_entry_clone(entry);
|
|
350
363
|
|
|
351
364
|
/* If the links cache is getting too full, enlarge the hash table. */
|
|
352
365
|
if (res->number_entries > res->number_buckets * 2)
|
|
353
366
|
grow_hash(res);
|
|
354
367
|
|
|
355
|
-
hash = archive_entry_dev(entry) ^ archive_entry_ino64(entry);
|
|
356
|
-
bucket = hash
|
|
368
|
+
hash = (size_t)(archive_entry_dev(entry) ^ archive_entry_ino64(entry));
|
|
369
|
+
bucket = hash & (res->number_buckets - 1);
|
|
357
370
|
|
|
358
371
|
/* If we could allocate the entry, record it. */
|
|
359
372
|
if (res->buckets[bucket] != NULL)
|
|
@@ -376,30 +389,59 @@ grow_hash(struct archive_entry_linkresolver *res)
|
|
|
376
389
|
|
|
377
390
|
/* Try to enlarge the bucket list. */
|
|
378
391
|
new_size = res->number_buckets * 2;
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
392
|
+
if (new_size < res->number_buckets)
|
|
393
|
+
return;
|
|
394
|
+
new_buckets = calloc(new_size, sizeof(struct links_entry *));
|
|
395
|
+
|
|
396
|
+
if (new_buckets == NULL)
|
|
397
|
+
return;
|
|
398
|
+
|
|
399
|
+
for (i = 0; i < res->number_buckets; i++) {
|
|
400
|
+
while (res->buckets[i] != NULL) {
|
|
401
|
+
/* Remove entry from old bucket. */
|
|
402
|
+
le = res->buckets[i];
|
|
403
|
+
res->buckets[i] = le->next;
|
|
404
|
+
|
|
405
|
+
/* Add entry to new bucket. */
|
|
406
|
+
bucket = le->hash & (new_size - 1);
|
|
407
|
+
|
|
408
|
+
if (new_buckets[bucket] != NULL)
|
|
409
|
+
new_buckets[bucket]->previous = le;
|
|
410
|
+
le->next = new_buckets[bucket];
|
|
411
|
+
le->previous = NULL;
|
|
412
|
+
new_buckets[bucket] = le;
|
|
400
413
|
}
|
|
401
|
-
free(res->buckets);
|
|
402
|
-
res->buckets = new_buckets;
|
|
403
|
-
res->number_buckets = new_size;
|
|
404
414
|
}
|
|
415
|
+
free(res->buckets);
|
|
416
|
+
res->buckets = new_buckets;
|
|
417
|
+
res->number_buckets = new_size;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
struct archive_entry *
|
|
421
|
+
archive_entry_partial_links(struct archive_entry_linkresolver *res,
|
|
422
|
+
unsigned int *links)
|
|
423
|
+
{
|
|
424
|
+
struct archive_entry *e;
|
|
425
|
+
struct links_entry *le;
|
|
426
|
+
|
|
427
|
+
/* Free a held entry. */
|
|
428
|
+
if (res->spare != NULL) {
|
|
429
|
+
archive_entry_free(res->spare->canonical);
|
|
430
|
+
archive_entry_free(res->spare->entry);
|
|
431
|
+
free(res->spare);
|
|
432
|
+
res->spare = NULL;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
le = next_entry(res, NEXT_ENTRY_PARTIAL);
|
|
436
|
+
if (le != NULL) {
|
|
437
|
+
e = le->canonical;
|
|
438
|
+
if (links != NULL)
|
|
439
|
+
*links = le->links;
|
|
440
|
+
le->canonical = NULL;
|
|
441
|
+
} else {
|
|
442
|
+
e = NULL;
|
|
443
|
+
if (links != NULL)
|
|
444
|
+
*links = 0;
|
|
445
|
+
}
|
|
446
|
+
return (e);
|
|
405
447
|
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/*-
|
|
2
|
+
* Copyright (c) 2011 Michihiro NAKAJIMA
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Redistribution and use in source and binary forms, with or without
|
|
6
|
+
* modification, are permitted provided that the following conditions
|
|
7
|
+
* are met:
|
|
8
|
+
* 1. Redistributions of source code must retain the above copyright
|
|
9
|
+
* notice, this list of conditions and the following disclaimer.
|
|
10
|
+
* 2. Redistributions in binary form must reproduce the above copyright
|
|
11
|
+
* notice, this list of conditions and the following disclaimer in the
|
|
12
|
+
* documentation and/or other materials provided with the distribution.
|
|
13
|
+
*
|
|
14
|
+
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
|
|
15
|
+
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
16
|
+
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
17
|
+
* IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
18
|
+
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
19
|
+
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
20
|
+
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
21
|
+
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
22
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
23
|
+
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
24
|
+
*
|
|
25
|
+
* $FreeBSD$
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
#ifndef ARCHIVE_ENTRY_LOCALE_H_INCLUDED
|
|
29
|
+
#define ARCHIVE_ENTRY_LOCALE_H_INCLUDED
|
|
30
|
+
|
|
31
|
+
#ifndef __LIBARCHIVE_BUILD
|
|
32
|
+
#error This header is only to be used internally to libarchive.
|
|
33
|
+
#endif
|
|
34
|
+
|
|
35
|
+
struct archive_entry;
|
|
36
|
+
struct archive_string_conv;
|
|
37
|
+
|
|
38
|
+
/*
|
|
39
|
+
* Utility functions to set and get entry attributes by translating
|
|
40
|
+
* character-set. These are designed for use in format readers and writers.
|
|
41
|
+
*
|
|
42
|
+
* The return code and interface of these are quite different from other
|
|
43
|
+
* functions for archive_entry defined in archive_entry.h.
|
|
44
|
+
* Common return code are:
|
|
45
|
+
* Return 0 if the string conversion succeeded.
|
|
46
|
+
* Return -1 if the string conversion failed.
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
#define archive_entry_gname_l _archive_entry_gname_l
|
|
50
|
+
int _archive_entry_gname_l(struct archive_entry *,
|
|
51
|
+
const char **, size_t *, struct archive_string_conv *);
|
|
52
|
+
#define archive_entry_hardlink_l _archive_entry_hardlink_l
|
|
53
|
+
int _archive_entry_hardlink_l(struct archive_entry *,
|
|
54
|
+
const char **, size_t *, struct archive_string_conv *);
|
|
55
|
+
#define archive_entry_pathname_l _archive_entry_pathname_l
|
|
56
|
+
int _archive_entry_pathname_l(struct archive_entry *,
|
|
57
|
+
const char **, size_t *, struct archive_string_conv *);
|
|
58
|
+
#define archive_entry_symlink_l _archive_entry_symlink_l
|
|
59
|
+
int _archive_entry_symlink_l(struct archive_entry *,
|
|
60
|
+
const char **, size_t *, struct archive_string_conv *);
|
|
61
|
+
#define archive_entry_uname_l _archive_entry_uname_l
|
|
62
|
+
int _archive_entry_uname_l(struct archive_entry *,
|
|
63
|
+
const char **, size_t *, struct archive_string_conv *);
|
|
64
|
+
#define archive_entry_acl_text_l _archive_entry_acl_text_l
|
|
65
|
+
int _archive_entry_acl_text_l(struct archive_entry *, int,
|
|
66
|
+
const char **, size_t *, struct archive_string_conv *) __LA_DEPRECATED;
|
|
67
|
+
#define archive_entry_acl_to_text_l _archive_entry_acl_to_text_l
|
|
68
|
+
char *_archive_entry_acl_to_text_l(struct archive_entry *, ssize_t *, int,
|
|
69
|
+
struct archive_string_conv *);
|
|
70
|
+
#define archive_entry_acl_from_text_l _archive_entry_acl_from_text_l
|
|
71
|
+
int _archive_entry_acl_from_text_l(struct archive_entry *, const char* text,
|
|
72
|
+
int type, struct archive_string_conv *);
|
|
73
|
+
#define archive_entry_copy_gname_l _archive_entry_copy_gname_l
|
|
74
|
+
int _archive_entry_copy_gname_l(struct archive_entry *,
|
|
75
|
+
const char *, size_t, struct archive_string_conv *);
|
|
76
|
+
#define archive_entry_copy_hardlink_l _archive_entry_copy_hardlink_l
|
|
77
|
+
int _archive_entry_copy_hardlink_l(struct archive_entry *,
|
|
78
|
+
const char *, size_t, struct archive_string_conv *);
|
|
79
|
+
#define archive_entry_copy_link_l _archive_entry_copy_link_l
|
|
80
|
+
int _archive_entry_copy_link_l(struct archive_entry *,
|
|
81
|
+
const char *, size_t, struct archive_string_conv *);
|
|
82
|
+
#define archive_entry_copy_pathname_l _archive_entry_copy_pathname_l
|
|
83
|
+
int _archive_entry_copy_pathname_l(struct archive_entry *,
|
|
84
|
+
const char *, size_t, struct archive_string_conv *);
|
|
85
|
+
#define archive_entry_copy_symlink_l _archive_entry_copy_symlink_l
|
|
86
|
+
int _archive_entry_copy_symlink_l(struct archive_entry *,
|
|
87
|
+
const char *, size_t, struct archive_string_conv *);
|
|
88
|
+
#define archive_entry_copy_uname_l _archive_entry_copy_uname_l
|
|
89
|
+
int _archive_entry_copy_uname_l(struct archive_entry *,
|
|
90
|
+
const char *, size_t, struct archive_string_conv *);
|
|
91
|
+
|
|
92
|
+
#endif /* ARCHIVE_ENTRY_LOCALE_H_INCLUDED */
|
|
@@ -25,43 +25,16 @@
|
|
|
25
25
|
* $FreeBSD: head/lib/libarchive/archive_entry_private.h 201096 2009-12-28 02:41:27Z kientzle $
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
|
+
#ifndef ARCHIVE_ENTRY_PRIVATE_H_INCLUDED
|
|
29
|
+
#define ARCHIVE_ENTRY_PRIVATE_H_INCLUDED
|
|
30
|
+
|
|
28
31
|
#ifndef __LIBARCHIVE_BUILD
|
|
29
32
|
#error This header is only to be used internally to libarchive.
|
|
30
33
|
#endif
|
|
31
34
|
|
|
32
|
-
#
|
|
33
|
-
#define ARCHIVE_ENTRY_PRIVATE_H_INCLUDED
|
|
34
|
-
|
|
35
|
+
#include "archive_acl_private.h"
|
|
35
36
|
#include "archive_string.h"
|
|
36
37
|
|
|
37
|
-
/*
|
|
38
|
-
* Handle wide character (i.e., Unicode) and non-wide character
|
|
39
|
-
* strings transparently.
|
|
40
|
-
*/
|
|
41
|
-
|
|
42
|
-
struct aes {
|
|
43
|
-
struct archive_string aes_mbs;
|
|
44
|
-
struct archive_string aes_utf8;
|
|
45
|
-
const wchar_t *aes_wcs;
|
|
46
|
-
/* Bitmap of which of the above are valid. Because we're lazy
|
|
47
|
-
* about malloc-ing and reusing the underlying storage, we
|
|
48
|
-
* can't rely on NULL pointers to indicate whether a string
|
|
49
|
-
* has been set. */
|
|
50
|
-
int aes_set;
|
|
51
|
-
#define AES_SET_MBS 1
|
|
52
|
-
#define AES_SET_UTF8 2
|
|
53
|
-
#define AES_SET_WCS 4
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
struct ae_acl {
|
|
57
|
-
struct ae_acl *next;
|
|
58
|
-
int type; /* E.g., access or default */
|
|
59
|
-
int tag; /* E.g., user/group/other/mask */
|
|
60
|
-
int permset; /* r/w/x bits */
|
|
61
|
-
int id; /* uid/gid for user/group */
|
|
62
|
-
struct aes name; /* uname/gname */
|
|
63
|
-
};
|
|
64
|
-
|
|
65
38
|
struct ae_xattr {
|
|
66
39
|
struct ae_xattr *next;
|
|
67
40
|
|
|
@@ -70,6 +43,22 @@ struct ae_xattr {
|
|
|
70
43
|
size_t size;
|
|
71
44
|
};
|
|
72
45
|
|
|
46
|
+
struct ae_sparse {
|
|
47
|
+
struct ae_sparse *next;
|
|
48
|
+
|
|
49
|
+
int64_t offset;
|
|
50
|
+
int64_t length;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
struct ae_digest {
|
|
54
|
+
unsigned char md5[16];
|
|
55
|
+
unsigned char rmd160[20];
|
|
56
|
+
unsigned char sha1[20];
|
|
57
|
+
unsigned char sha256[32];
|
|
58
|
+
unsigned char sha384[48];
|
|
59
|
+
unsigned char sha512[64];
|
|
60
|
+
};
|
|
61
|
+
|
|
73
62
|
/*
|
|
74
63
|
* Description of an archive entry.
|
|
75
64
|
*
|
|
@@ -91,6 +80,8 @@ struct ae_xattr {
|
|
|
91
80
|
* TODO: Design a good API for handling sparse files.
|
|
92
81
|
*/
|
|
93
82
|
struct archive_entry {
|
|
83
|
+
struct archive *archive;
|
|
84
|
+
|
|
94
85
|
/*
|
|
95
86
|
* Note that ae_stat.st_mode & AE_IFMT can be 0!
|
|
96
87
|
*
|
|
@@ -101,10 +92,15 @@ struct archive_entry {
|
|
|
101
92
|
*/
|
|
102
93
|
|
|
103
94
|
/*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
95
|
+
* We have a "struct aest" for holding file metadata rather than just
|
|
96
|
+
* a "struct stat" because on some platforms the "struct stat" has
|
|
97
|
+
* fields which are too narrow to hold the range of possible values;
|
|
98
|
+
* we don't want to lose information if we read an archive and write
|
|
99
|
+
* out another (e.g., in "tar -cf new.tar @old.tar").
|
|
100
|
+
*
|
|
101
|
+
* The "stat" pointer points to some form of platform-specific struct
|
|
102
|
+
* stat; it is declared as a void * rather than a struct stat * as
|
|
103
|
+
* some platforms have multiple varieties of stat structures.
|
|
108
104
|
*/
|
|
109
105
|
void *stat;
|
|
110
106
|
int stat_valid; /* Set to 0 whenever a field in aest changes. */
|
|
@@ -118,12 +114,11 @@ struct archive_entry {
|
|
|
118
114
|
uint32_t aest_mtime_nsec;
|
|
119
115
|
int64_t aest_birthtime;
|
|
120
116
|
uint32_t aest_birthtime_nsec;
|
|
121
|
-
|
|
117
|
+
int64_t aest_gid;
|
|
122
118
|
int64_t aest_ino;
|
|
123
|
-
mode_t aest_mode;
|
|
124
119
|
uint32_t aest_nlink;
|
|
125
120
|
uint64_t aest_size;
|
|
126
|
-
|
|
121
|
+
int64_t aest_uid;
|
|
127
122
|
/*
|
|
128
123
|
* Because converting between device codes and
|
|
129
124
|
* major/minor values is platform-specific and
|
|
@@ -150,35 +145,56 @@ struct archive_entry {
|
|
|
150
145
|
#define AE_SET_MTIME 16
|
|
151
146
|
#define AE_SET_BIRTHTIME 32
|
|
152
147
|
#define AE_SET_SIZE 64
|
|
148
|
+
#define AE_SET_INO 128
|
|
149
|
+
#define AE_SET_DEV 256
|
|
153
150
|
|
|
154
151
|
/*
|
|
155
152
|
* Use aes here so that we get transparent mbs<->wcs conversions.
|
|
156
153
|
*/
|
|
157
|
-
struct
|
|
154
|
+
struct archive_mstring ae_fflags_text; /* Text fflags per fflagstostr(3) */
|
|
158
155
|
unsigned long ae_fflags_set; /* Bitmap fflags */
|
|
159
156
|
unsigned long ae_fflags_clear;
|
|
160
|
-
struct
|
|
161
|
-
struct
|
|
162
|
-
struct
|
|
163
|
-
struct
|
|
164
|
-
struct
|
|
157
|
+
struct archive_mstring ae_gname; /* Name of owning group */
|
|
158
|
+
struct archive_mstring ae_hardlink; /* Name of target for hardlink */
|
|
159
|
+
struct archive_mstring ae_pathname; /* Name of entry */
|
|
160
|
+
struct archive_mstring ae_symlink; /* symlink contents */
|
|
161
|
+
struct archive_mstring ae_uname; /* Name of owner */
|
|
165
162
|
|
|
166
163
|
/* Not used within libarchive; useful for some clients. */
|
|
167
|
-
struct
|
|
164
|
+
struct archive_mstring ae_sourcepath; /* Path this entry is sourced from. */
|
|
165
|
+
|
|
166
|
+
#define AE_ENCRYPTION_NONE 0
|
|
167
|
+
#define AE_ENCRYPTION_DATA 1
|
|
168
|
+
#define AE_ENCRYPTION_METADATA 2
|
|
169
|
+
char encryption;
|
|
170
|
+
|
|
171
|
+
void *mac_metadata;
|
|
172
|
+
size_t mac_metadata_size;
|
|
173
|
+
|
|
174
|
+
/* Digest support. */
|
|
175
|
+
struct ae_digest digest;
|
|
168
176
|
|
|
169
177
|
/* ACL support. */
|
|
170
|
-
struct
|
|
171
|
-
struct ae_acl *acl_p;
|
|
172
|
-
int acl_state; /* See acl_next for details. */
|
|
173
|
-
wchar_t *acl_text_w;
|
|
178
|
+
struct archive_acl acl;
|
|
174
179
|
|
|
175
180
|
/* extattr support. */
|
|
176
181
|
struct ae_xattr *xattr_head;
|
|
177
182
|
struct ae_xattr *xattr_p;
|
|
178
183
|
|
|
184
|
+
/* sparse support. */
|
|
185
|
+
struct ae_sparse *sparse_head;
|
|
186
|
+
struct ae_sparse *sparse_tail;
|
|
187
|
+
struct ae_sparse *sparse_p;
|
|
188
|
+
|
|
179
189
|
/* Miscellaneous. */
|
|
180
190
|
char strmode[12];
|
|
191
|
+
|
|
192
|
+
/* Symlink type support */
|
|
193
|
+
int ae_symlink_type;
|
|
181
194
|
};
|
|
182
195
|
|
|
196
|
+
int
|
|
197
|
+
archive_entry_set_digest(struct archive_entry *entry, int type,
|
|
198
|
+
const unsigned char *digest);
|
|
183
199
|
|
|
184
200
|
#endif /* ARCHIVE_ENTRY_PRIVATE_H_INCLUDED */
|