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.
Files changed (295) hide show
  1. checksums.yaml +4 -4
  2. data/ext/extconf.rb +2 -9
  3. data/ext/libarchive-0.1.1/ext/archive_read_support_compression.c +6 -6
  4. data/ext/libarchive-0.1.1/ext/archive_read_support_compression.o +0 -0
  5. data/ext/libarchive-0.1.1/ext/archive_read_support_format.o +0 -0
  6. data/ext/libarchive-0.1.1/ext/archive_write_open_rb_str.c +1 -1
  7. data/ext/libarchive-0.1.1/ext/archive_write_open_rb_str.o +0 -0
  8. data/ext/libarchive-0.1.1/ext/archive_write_set_compression.c +5 -5
  9. data/ext/libarchive-0.1.1/ext/archive_write_set_compression.o +0 -0
  10. data/ext/libarchive-0.1.1/ext/config.h +23 -0
  11. data/ext/libarchive-0.1.1/ext/config.log +230 -0
  12. data/ext/libarchive-0.1.1/ext/config.status +671 -0
  13. data/ext/libarchive-0.1.1/ext/libarchive.c +1 -1
  14. data/ext/libarchive-0.1.1/ext/libarchive.o +0 -0
  15. data/ext/libarchive-0.1.1/ext/libarchive_archive.c +7 -7
  16. data/ext/libarchive-0.1.1/ext/libarchive_archive.o +0 -0
  17. data/ext/libarchive-0.1.1/ext/libarchive_entry.c +6 -0
  18. data/ext/libarchive-0.1.1/ext/libarchive_entry.o +0 -0
  19. data/ext/libarchive-0.1.1/ext/libarchive_reader.c +6 -4
  20. data/ext/libarchive-0.1.1/ext/libarchive_reader.o +0 -0
  21. data/ext/libarchive-0.1.1/ext/libarchive_ruby.so +0 -0
  22. data/ext/libarchive-0.1.1/ext/libarchive_win32.h +1 -1
  23. data/ext/libarchive-0.1.1/ext/libarchive_writer.c +2 -2
  24. data/ext/libarchive-0.1.1/ext/libarchive_writer.o +0 -0
  25. data/ext/libarchive-3.6.2/Makefile.in +16892 -0
  26. data/ext/libarchive-3.6.2/build/autoconf/ax_append_compile_flags.m4 +67 -0
  27. data/ext/libarchive-3.6.2/build/autoconf/ax_append_flag.m4 +71 -0
  28. data/ext/libarchive-3.6.2/build/autoconf/ax_check_compile_flag.m4 +74 -0
  29. data/ext/libarchive-3.6.2/build/autoconf/ax_require_defined.m4 +37 -0
  30. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/autoconf/check_stdcall_func.m4 +0 -0
  31. data/ext/libarchive-3.6.2/build/autoconf/compile +348 -0
  32. data/ext/libarchive-3.6.2/build/autoconf/config.guess +1754 -0
  33. data/ext/libarchive-3.6.2/build/autoconf/config.rpath +696 -0
  34. data/ext/libarchive-3.6.2/build/autoconf/config.sub +1890 -0
  35. data/ext/libarchive-3.6.2/build/autoconf/depcomp +791 -0
  36. data/ext/libarchive-3.6.2/build/autoconf/iconv.m4 +271 -0
  37. data/ext/libarchive-3.6.2/build/autoconf/install-sh +541 -0
  38. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/autoconf/la_uid_t.m4 +0 -0
  39. data/ext/libarchive-3.6.2/build/autoconf/lib-ld.m4 +109 -0
  40. data/ext/libarchive-3.6.2/build/autoconf/lib-link.m4 +777 -0
  41. data/ext/libarchive-3.6.2/build/autoconf/lib-prefix.m4 +224 -0
  42. data/ext/libarchive-3.6.2/build/autoconf/ltmain.sh +11251 -0
  43. data/ext/libarchive-3.6.2/build/autoconf/m4_ax_compile_check_sizeof.m4 +115 -0
  44. data/ext/libarchive-3.6.2/build/autoconf/missing +215 -0
  45. data/ext/libarchive-3.6.2/build/autoconf/test-driver +153 -0
  46. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/pkgconfig/libarchive.pc.in +4 -1
  47. data/ext/libarchive-3.6.2/config.h.in +1504 -0
  48. data/ext/libarchive-3.6.2/configure +25558 -0
  49. data/ext/libarchive-3.6.2/libarchive/archive.h +1212 -0
  50. data/ext/libarchive-3.6.2/libarchive/archive_acl.c +2097 -0
  51. data/ext/libarchive-3.6.2/libarchive/archive_acl_private.h +83 -0
  52. data/ext/libarchive-3.6.2/libarchive/archive_blake2.h +197 -0
  53. data/ext/libarchive-3.6.2/libarchive/archive_blake2_impl.h +161 -0
  54. data/ext/libarchive-3.6.2/libarchive/archive_blake2s_ref.c +369 -0
  55. data/ext/libarchive-3.6.2/libarchive/archive_blake2sp_ref.c +361 -0
  56. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_check_magic.c +63 -22
  57. data/ext/libarchive-3.6.2/libarchive/archive_cmdline.c +227 -0
  58. data/ext/libarchive-3.6.2/libarchive/archive_cmdline_private.h +47 -0
  59. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_crc32.h +17 -0
  60. data/ext/libarchive-3.6.2/libarchive/archive_cryptor.c +534 -0
  61. data/ext/libarchive-3.6.2/libarchive/archive_cryptor_private.h +188 -0
  62. data/ext/libarchive-3.6.2/libarchive/archive_digest.c +1505 -0
  63. data/ext/libarchive-3.6.2/libarchive/archive_digest_private.h +416 -0
  64. data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_darwin.c +559 -0
  65. data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_freebsd.c +712 -0
  66. data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_linux.c +760 -0
  67. data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_sunos.c +824 -0
  68. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_endian.h +48 -15
  69. data/ext/libarchive-3.6.2/libarchive/archive_entry.c +2149 -0
  70. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry.h +305 -106
  71. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_copy_bhfi.c +5 -4
  72. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_copy_stat.c +9 -3
  73. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_link_resolver.c +104 -62
  74. data/ext/libarchive-3.6.2/libarchive/archive_entry_locale.h +92 -0
  75. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_private.h +65 -49
  76. data/ext/libarchive-3.6.2/libarchive/archive_entry_sparse.c +156 -0
  77. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_stat.c +6 -6
  78. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_strmode.c +1 -1
  79. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_xattr.c +4 -6
  80. data/ext/libarchive-3.6.2/libarchive/archive_getdate.c +1165 -0
  81. data/ext/libarchive-3.6.2/libarchive/archive_getdate.h +39 -0
  82. data/ext/libarchive-3.6.2/libarchive/archive_hmac.c +334 -0
  83. data/ext/libarchive-3.6.2/libarchive/archive_hmac_private.h +117 -0
  84. data/ext/libarchive-3.6.2/libarchive/archive_match.c +1875 -0
  85. data/ext/libarchive-3.6.2/libarchive/archive_openssl_evp_private.h +53 -0
  86. data/ext/libarchive-3.6.2/libarchive/archive_openssl_hmac_private.h +54 -0
  87. data/ext/libarchive-3.6.2/libarchive/archive_options.c +218 -0
  88. data/ext/libarchive-3.6.2/libarchive/archive_options_private.h +51 -0
  89. data/ext/libarchive-3.6.2/libarchive/archive_pack_dev.c +337 -0
  90. data/ext/libarchive-3.6.2/libarchive/archive_pack_dev.h +49 -0
  91. data/ext/libarchive-3.6.2/libarchive/archive_pathmatch.c +463 -0
  92. data/ext/libarchive-3.6.2/libarchive/archive_pathmatch.h +52 -0
  93. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_platform.h +77 -9
  94. data/ext/libarchive-3.6.2/libarchive/archive_platform_acl.h +55 -0
  95. data/ext/libarchive-3.6.2/libarchive/archive_platform_xattr.h +47 -0
  96. data/ext/libarchive-3.6.2/libarchive/archive_ppmd7.c +1168 -0
  97. data/ext/libarchive-3.6.2/libarchive/archive_ppmd7_private.h +119 -0
  98. data/ext/libarchive-3.6.2/libarchive/archive_ppmd8.c +1287 -0
  99. data/ext/libarchive-3.6.2/libarchive/archive_ppmd8_private.h +148 -0
  100. data/ext/libarchive-3.6.2/libarchive/archive_ppmd_private.h +151 -0
  101. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_private.h +74 -18
  102. data/ext/libarchive-3.6.2/libarchive/archive_random.c +272 -0
  103. data/ext/libarchive-3.6.2/libarchive/archive_random_private.h +36 -0
  104. data/ext/libarchive-3.6.2/libarchive/archive_rb.c +709 -0
  105. data/ext/libarchive-3.6.2/libarchive/archive_rb.h +113 -0
  106. data/ext/libarchive-3.6.2/libarchive/archive_read.c +1756 -0
  107. data/ext/libarchive-3.6.2/libarchive/archive_read_add_passphrase.c +190 -0
  108. data/ext/libarchive-3.6.2/libarchive/archive_read_append_filter.c +204 -0
  109. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_data_into_fd.c +64 -18
  110. data/ext/libarchive-3.6.2/libarchive/archive_read_disk_entry_from_file.c +1086 -0
  111. data/ext/libarchive-3.6.2/libarchive/archive_read_disk_posix.c +2732 -0
  112. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_disk_private.h +40 -4
  113. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_disk_set_standard_lookup.c +21 -11
  114. data/ext/libarchive-3.6.2/libarchive/archive_read_disk_windows.c +2479 -0
  115. data/ext/libarchive-3.6.2/libarchive/archive_read_extract.c +60 -0
  116. data/ext/{libarchive-2.8.4/libarchive/archive_read_extract.c → libarchive-3.6.2/libarchive/archive_read_extract2.c} +34 -61
  117. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_fd.c +70 -49
  118. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_file.c +38 -23
  119. data/ext/libarchive-3.6.2/libarchive/archive_read_open_filename.c +586 -0
  120. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_memory.c +58 -28
  121. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_private.h +127 -59
  122. data/ext/libarchive-3.6.2/libarchive/archive_read_set_format.c +117 -0
  123. data/ext/libarchive-3.6.2/libarchive/archive_read_set_options.c +133 -0
  124. 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
  125. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_by_code.c +83 -0
  126. 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
  127. 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
  128. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_grzip.c +112 -0
  129. 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
  130. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lrzip.c +122 -0
  131. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lz4.c +742 -0
  132. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lzop.c +499 -0
  133. 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
  134. 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
  135. 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
  136. 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
  137. 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
  138. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_zstd.c +297 -0
  139. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_7zip.c +3900 -0
  140. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_all.c +89 -0
  141. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_ar.c +126 -72
  142. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_by_code.c +92 -0
  143. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_cab.c +3228 -0
  144. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_cpio.c +1104 -0
  145. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_empty.c +14 -11
  146. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_iso9660.c +990 -541
  147. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_lha.c +2916 -0
  148. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_mtree.c +2150 -0
  149. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_rar.c +3797 -0
  150. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_rar5.c +4251 -0
  151. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_raw.c +38 -31
  152. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_tar.c +1157 -629
  153. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_warc.c +848 -0
  154. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_xar.c +439 -258
  155. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_zip.c +4270 -0
  156. data/ext/libarchive-3.6.2/libarchive/archive_string.c +4240 -0
  157. data/ext/libarchive-3.6.2/libarchive/archive_string.h +243 -0
  158. data/ext/libarchive-3.6.2/libarchive/archive_string_composition.h +2292 -0
  159. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_string_sprintf.c +44 -16
  160. data/ext/libarchive-3.6.2/libarchive/archive_util.c +655 -0
  161. data/ext/libarchive-3.6.2/libarchive/archive_version_details.c +151 -0
  162. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_virtual.c +85 -16
  163. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_windows.c +214 -541
  164. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_windows.h +74 -106
  165. data/ext/libarchive-3.6.2/libarchive/archive_write.c +828 -0
  166. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter.c +72 -0
  167. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_b64encode.c +304 -0
  168. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_by_name.c +77 -0
  169. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_bzip2.c +401 -0
  170. 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
  171. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_grzip.c +135 -0
  172. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_gzip.c +442 -0
  173. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lrzip.c +197 -0
  174. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lz4.c +700 -0
  175. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lzop.c +478 -0
  176. 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
  177. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_program.c +391 -0
  178. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_uuencode.c +295 -0
  179. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_xz.c +545 -0
  180. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_zstd.c +418 -0
  181. data/ext/libarchive-3.6.2/libarchive/archive_write_disk_posix.c +4711 -0
  182. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_disk_private.h +9 -2
  183. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_disk_set_standard_lookup.c +30 -29
  184. data/ext/libarchive-3.6.2/libarchive/archive_write_disk_windows.c +2842 -0
  185. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_fd.c +15 -10
  186. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_file.c +15 -9
  187. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_filename.c +128 -20
  188. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_memory.c +7 -18
  189. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_private.h +72 -29
  190. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format.c +56 -3
  191. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_7zip.c +2322 -0
  192. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_ar.c +54 -34
  193. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_by_name.c +20 -2
  194. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio.c +11 -0
  195. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_binary.c +610 -0
  196. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_newc.c +457 -0
  197. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_odc.c +500 -0
  198. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_filter_by_ext.c +142 -0
  199. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_gnutar.c +755 -0
  200. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_iso9660.c +8165 -0
  201. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_mtree.c +2217 -0
  202. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_pax.c +1049 -387
  203. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_private.h +42 -0
  204. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_raw.c +125 -0
  205. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_shar.c +62 -47
  206. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_ustar.c +279 -108
  207. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_v7tar.c +638 -0
  208. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_warc.c +453 -0
  209. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_xar.c +3259 -0
  210. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_zip.c +1704 -0
  211. data/ext/libarchive-3.6.2/libarchive/archive_write_set_options.c +130 -0
  212. data/ext/libarchive-3.6.2/libarchive/archive_write_set_passphrase.c +95 -0
  213. data/ext/libarchive-3.6.2/libarchive/archive_xxhash.h +48 -0
  214. data/ext/libarchive-3.6.2/libarchive/config_freebsd.h +271 -0
  215. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/filter_fork.h +10 -5
  216. data/ext/{libarchive-2.8.4/libarchive/filter_fork.c → libarchive-3.6.2/libarchive/filter_fork_posix.c} +98 -19
  217. data/ext/libarchive-3.6.2/libarchive/filter_fork_windows.c +236 -0
  218. data/ext/libarchive-3.6.2/libarchive/xxhash.c +525 -0
  219. data/ext/libarchive-static-makefile +144 -80
  220. data/ext/libarchive-static-wrapper-makefile +1 -1
  221. data/ext/zlib-1.2.13/Makefile.in +404 -0
  222. data/ext/{zlib-1.2.5 → zlib-1.2.13}/adler32.c +51 -34
  223. data/ext/{zlib-1.2.5 → zlib-1.2.13}/compress.c +27 -21
  224. data/ext/zlib-1.2.13/configure +922 -0
  225. data/ext/zlib-1.2.13/crc32.c +1125 -0
  226. data/ext/zlib-1.2.13/crc32.h +9446 -0
  227. data/ext/{zlib-1.2.5 → zlib-1.2.13}/deflate.c +842 -459
  228. data/ext/{zlib-1.2.5 → zlib-1.2.13}/deflate.h +37 -33
  229. data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzclose.c +0 -0
  230. data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzguts.h +103 -16
  231. data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzlib.c +155 -53
  232. data/ext/zlib-1.2.13/gzread.c +650 -0
  233. data/ext/zlib-1.2.13/gzwrite.c +677 -0
  234. data/ext/{zlib-1.2.5 → zlib-1.2.13}/infback.c +24 -12
  235. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffast.c +49 -66
  236. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffast.h +0 -0
  237. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffixed.h +3 -3
  238. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inflate.c +209 -94
  239. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inflate.h +9 -5
  240. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inftrees.c +24 -50
  241. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inftrees.h +1 -1
  242. data/ext/{zlib-1.2.5 → zlib-1.2.13}/trees.c +135 -198
  243. data/ext/{zlib-1.2.5 → zlib-1.2.13}/trees.h +0 -0
  244. data/ext/zlib-1.2.13/uncompr.c +93 -0
  245. data/ext/{zlib-1.2.5 → zlib-1.2.13}/zconf.h +182 -63
  246. data/ext/{zlib-1.2.5 → zlib-1.2.13}/zlib.h +617 -295
  247. data/ext/{zlib-1.2.5 → zlib-1.2.13}/zutil.c +50 -41
  248. data/ext/{zlib-1.2.5 → zlib-1.2.13}/zutil.h +83 -82
  249. metadata +241 -133
  250. data/ext/libarchive-0.1.1/libarchive.c +0 -1762
  251. data/ext/libarchive-2.8.4/Makefile.in +0 -7076
  252. data/ext/libarchive-2.8.4/build/autoconf/compile +0 -143
  253. data/ext/libarchive-2.8.4/build/autoconf/config.guess +0 -1502
  254. data/ext/libarchive-2.8.4/build/autoconf/config.sub +0 -1708
  255. data/ext/libarchive-2.8.4/build/autoconf/depcomp +0 -630
  256. data/ext/libarchive-2.8.4/build/autoconf/install-sh +0 -291
  257. data/ext/libarchive-2.8.4/build/autoconf/ltmain.sh +0 -8406
  258. data/ext/libarchive-2.8.4/build/autoconf/missing +0 -376
  259. data/ext/libarchive-2.8.4/config.h.in +0 -772
  260. data/ext/libarchive-2.8.4/configure +0 -17916
  261. data/ext/libarchive-2.8.4/libarchive/archive.h +0 -741
  262. data/ext/libarchive-2.8.4/libarchive/archive_entry.c +0 -2202
  263. data/ext/libarchive-2.8.4/libarchive/archive_hash.h +0 -281
  264. data/ext/libarchive-2.8.4/libarchive/archive_read.c +0 -1249
  265. data/ext/libarchive-2.8.4/libarchive/archive_read_disk.c +0 -198
  266. data/ext/libarchive-2.8.4/libarchive/archive_read_disk_entry_from_file.c +0 -570
  267. data/ext/libarchive-2.8.4/libarchive/archive_read_open_filename.c +0 -272
  268. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_cpio.c +0 -777
  269. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_mtree.c +0 -1304
  270. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_zip.c +0 -903
  271. data/ext/libarchive-2.8.4/libarchive/archive_string.c +0 -453
  272. data/ext/libarchive-2.8.4/libarchive/archive_string.h +0 -148
  273. data/ext/libarchive-2.8.4/libarchive/archive_util.c +0 -391
  274. data/ext/libarchive-2.8.4/libarchive/archive_write.c +0 -466
  275. data/ext/libarchive-2.8.4/libarchive/archive_write_disk.c +0 -2628
  276. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_bzip2.c +0 -408
  277. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_gzip.c +0 -477
  278. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_none.c +0 -257
  279. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_program.c +0 -347
  280. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_xz.c +0 -438
  281. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_cpio.c +0 -344
  282. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_cpio_newc.c +0 -295
  283. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_mtree.c +0 -1050
  284. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_zip.c +0 -667
  285. data/ext/libarchive-2.8.4/libarchive/config_freebsd.h +0 -154
  286. data/ext/libarchive-2.8.4/libarchive/filter_fork_windows.c +0 -113
  287. data/ext/zlib-1.2.5/Makefile.in +0 -257
  288. data/ext/zlib-1.2.5/configure +0 -596
  289. data/ext/zlib-1.2.5/crc32.c +0 -442
  290. data/ext/zlib-1.2.5/crc32.h +0 -441
  291. data/ext/zlib-1.2.5/example.c +0 -565
  292. data/ext/zlib-1.2.5/gzread.c +0 -653
  293. data/ext/zlib-1.2.5/gzwrite.c +0 -531
  294. data/ext/zlib-1.2.5/minigzip.c +0 -440
  295. 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 *time, long *ns)
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
- *time = (time_t)(utc.QuadPart / 10000000); /* milli seconds base */
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
- *time = 0;
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
- // archive_entry_set_mode(entry, st->st_mode);
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
- res = malloc(sizeof(struct archive_entry_linkresolver));
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 = malloc(res->number_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 = ARCHIVE_ENTRY_LINKIFY_LIKE_TAR;
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
- if (res->buckets != NULL) {
155
- while ((le = next_entry(res)) != NULL)
156
- archive_entry_free(le->entry);
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
- int hash, bucket;
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 = (int)(dev ^ ino);
279
+ hash = (size_t)(dev ^ ino);
271
280
 
272
281
  /* Try to locate this entry in the links cache. */
273
- bucket = hash % res->number_buckets;
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
- if (le != NULL) {
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
- res->buckets[bucket] = le->next;
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
- int hash, bucket;
356
+ size_t hash, bucket;
343
357
 
344
358
  /* Add this entry to the links cache. */
345
- le = malloc(sizeof(struct links_entry));
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 % res->number_buckets;
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
- new_buckets = malloc(new_size * sizeof(struct links_entry *));
380
-
381
- if (new_buckets != NULL) {
382
- memset(new_buckets, 0,
383
- new_size * sizeof(struct links_entry *));
384
- for (i = 0; i < res->number_buckets; i++) {
385
- while (res->buckets[i] != NULL) {
386
- /* Remove entry from old bucket. */
387
- le = res->buckets[i];
388
- res->buckets[i] = le->next;
389
-
390
- /* Add entry to new bucket. */
391
- bucket = le->hash % new_size;
392
-
393
- if (new_buckets[bucket] != NULL)
394
- new_buckets[bucket]->previous =
395
- le;
396
- le->next = new_buckets[bucket];
397
- le->previous = NULL;
398
- new_buckets[bucket] = le;
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
- #ifndef ARCHIVE_ENTRY_PRIVATE_H_INCLUDED
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
- * Read archive_entry_copy_stat.c for an explanation of why I
105
- * don't just use "struct stat" instead of "struct aest" here
106
- * and why I have this odd pointer to a separately-allocated
107
- * struct stat.
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
- gid_t aest_gid;
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
- uid_t aest_uid;
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 aes ae_fflags_text; /* Text fflags per fflagstostr(3) */
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 aes ae_gname; /* Name of owning group */
161
- struct aes ae_hardlink; /* Name of target for hardlink */
162
- struct aes ae_pathname; /* Name of entry */
163
- struct aes ae_symlink; /* symlink contents */
164
- struct aes ae_uname; /* Name of owner */
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 aes ae_sourcepath; /* Path this entry is sourced from. */
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 ae_acl *acl_head;
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 */