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
@@ -51,11 +51,10 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_write_open_fd.c 201093 2009-12-2
51
51
  #include "archive.h"
52
52
 
53
53
  struct write_fd_data {
54
- off_t offset;
55
54
  int fd;
56
55
  };
57
56
 
58
- static int file_close(struct archive *, void *);
57
+ static int file_free(struct archive *, void *);
59
58
  static int file_open(struct archive *, void *);
60
59
  static ssize_t file_write(struct archive *, void *, const void *buff, size_t);
61
60
 
@@ -73,8 +72,8 @@ archive_write_open_fd(struct archive *a, int fd)
73
72
  #if defined(__CYGWIN__) || defined(_WIN32)
74
73
  setmode(mine->fd, O_BINARY);
75
74
  #endif
76
- return (archive_write_open(a, mine,
77
- file_open, file_write, file_close));
75
+ return (archive_write_open2(a, mine,
76
+ file_open, file_write, NULL, file_free));
78
77
  }
79
78
 
80
79
  static int
@@ -122,20 +121,26 @@ file_write(struct archive *a, void *client_data, const void *buff, size_t length
122
121
  ssize_t bytesWritten;
123
122
 
124
123
  mine = (struct write_fd_data *)client_data;
125
- bytesWritten = write(mine->fd, buff, length);
126
- if (bytesWritten <= 0) {
127
- archive_set_error(a, errno, "Write error");
128
- return (-1);
124
+ for (;;) {
125
+ bytesWritten = write(mine->fd, buff, length);
126
+ if (bytesWritten <= 0) {
127
+ if (errno == EINTR)
128
+ continue;
129
+ archive_set_error(a, errno, "Write error");
130
+ return (-1);
131
+ }
132
+ return (bytesWritten);
129
133
  }
130
- return (bytesWritten);
131
134
  }
132
135
 
133
136
  static int
134
- file_close(struct archive *a, void *client_data)
137
+ file_free(struct archive *a, void *client_data)
135
138
  {
136
139
  struct write_fd_data *mine = (struct write_fd_data *)client_data;
137
140
 
138
141
  (void)a; /* UNUSED */
142
+ if (mine == NULL)
143
+ return (ARCHIVE_OK);
139
144
  free(mine);
140
145
  return (ARCHIVE_OK);
141
146
  }
@@ -51,7 +51,7 @@ struct write_FILE_data {
51
51
  FILE *f;
52
52
  };
53
53
 
54
- static int file_close(struct archive *, void *);
54
+ static int file_free(struct archive *, void *);
55
55
  static int file_open(struct archive *, void *);
56
56
  static ssize_t file_write(struct archive *, void *, const void *buff, size_t);
57
57
 
@@ -66,8 +66,8 @@ archive_write_open_FILE(struct archive *a, FILE *f)
66
66
  return (ARCHIVE_FATAL);
67
67
  }
68
68
  mine->f = f;
69
- return (archive_write_open(a, mine,
70
- file_open, file_write, file_close));
69
+ return (archive_write_open2(a, mine, file_open, file_write,
70
+ NULL, file_free));
71
71
  }
72
72
 
73
73
  static int
@@ -86,20 +86,26 @@ file_write(struct archive *a, void *client_data, const void *buff, size_t length
86
86
  size_t bytesWritten;
87
87
 
88
88
  mine = client_data;
89
- bytesWritten = fwrite(buff, 1, length, mine->f);
90
- if (bytesWritten < length) {
91
- archive_set_error(a, errno, "Write error");
92
- return (-1);
89
+ for (;;) {
90
+ bytesWritten = fwrite(buff, 1, length, mine->f);
91
+ if (bytesWritten <= 0) {
92
+ if (errno == EINTR)
93
+ continue;
94
+ archive_set_error(a, errno, "Write error");
95
+ return (-1);
96
+ }
97
+ return (bytesWritten);
93
98
  }
94
- return (bytesWritten);
95
99
  }
96
100
 
97
101
  static int
98
- file_close(struct archive *a, void *client_data)
102
+ file_free(struct archive *a, void *client_data)
99
103
  {
100
104
  struct write_FILE_data *mine = client_data;
101
105
 
102
106
  (void)a; /* UNUSED */
107
+ if (mine == NULL)
108
+ return (ARCHIVE_OK);
103
109
  free(mine);
104
110
  return (ARCHIVE_OK);
105
111
  }
@@ -46,19 +46,26 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_write_open_filename.c 191165 200
46
46
  #endif
47
47
 
48
48
  #include "archive.h"
49
+ #include "archive_private.h"
50
+ #include "archive_string.h"
49
51
 
50
52
  #ifndef O_BINARY
51
53
  #define O_BINARY 0
52
54
  #endif
55
+ #ifndef O_CLOEXEC
56
+ #define O_CLOEXEC 0
57
+ #endif
53
58
 
54
59
  struct write_file_data {
55
60
  int fd;
56
- char filename[1];
61
+ struct archive_mstring filename;
57
62
  };
58
63
 
59
64
  static int file_close(struct archive *, void *);
65
+ static int file_free(struct archive *, void *);
60
66
  static int file_open(struct archive *, void *);
61
67
  static ssize_t file_write(struct archive *, void *, const void *buff, size_t);
68
+ static int open_filename(struct archive *, int, const void *);
62
69
 
63
70
  int
64
71
  archive_write_open_file(struct archive *a, const char *filename)
@@ -69,20 +76,56 @@ archive_write_open_file(struct archive *a, const char *filename)
69
76
  int
70
77
  archive_write_open_filename(struct archive *a, const char *filename)
71
78
  {
72
- struct write_file_data *mine;
73
79
 
74
80
  if (filename == NULL || filename[0] == '\0')
75
81
  return (archive_write_open_fd(a, 1));
76
82
 
77
- mine = (struct write_file_data *)malloc(sizeof(*mine) + strlen(filename));
83
+ return (open_filename(a, 1, filename));
84
+ }
85
+
86
+ int
87
+ archive_write_open_filename_w(struct archive *a, const wchar_t *filename)
88
+ {
89
+
90
+ if (filename == NULL || filename[0] == L'\0')
91
+ return (archive_write_open_fd(a, 1));
92
+
93
+ return (open_filename(a, 0, filename));
94
+ }
95
+
96
+ static int
97
+ open_filename(struct archive *a, int mbs_fn, const void *filename)
98
+ {
99
+ struct write_file_data *mine;
100
+ int r;
101
+
102
+ mine = (struct write_file_data *)calloc(1, sizeof(*mine));
78
103
  if (mine == NULL) {
79
104
  archive_set_error(a, ENOMEM, "No memory");
80
105
  return (ARCHIVE_FATAL);
81
106
  }
82
- strcpy(mine->filename, filename);
107
+ if (mbs_fn)
108
+ r = archive_mstring_copy_mbs(&mine->filename, filename);
109
+ else
110
+ r = archive_mstring_copy_wcs(&mine->filename, filename);
111
+ if (r < 0) {
112
+ if (errno == ENOMEM) {
113
+ archive_set_error(a, ENOMEM, "No memory");
114
+ return (ARCHIVE_FATAL);
115
+ }
116
+ if (mbs_fn)
117
+ archive_set_error(a, ARCHIVE_ERRNO_MISC,
118
+ "Can't convert '%s' to WCS",
119
+ (const char *)filename);
120
+ else
121
+ archive_set_error(a, ARCHIVE_ERRNO_MISC,
122
+ "Can't convert '%S' to MBS",
123
+ (const wchar_t *)filename);
124
+ return (ARCHIVE_FAILED);
125
+ }
83
126
  mine->fd = -1;
84
- return (archive_write_open(a, mine,
85
- file_open, file_write, file_close));
127
+ return (archive_write_open2(a, mine,
128
+ file_open, file_write, file_close, file_free));
86
129
  }
87
130
 
88
131
  static int
@@ -91,24 +134,64 @@ file_open(struct archive *a, void *client_data)
91
134
  int flags;
92
135
  struct write_file_data *mine;
93
136
  struct stat st;
137
+ #if defined(_WIN32) && !defined(__CYGWIN__)
138
+ wchar_t *fullpath;
139
+ #endif
140
+ const wchar_t *wcs;
141
+ const char *mbs;
94
142
 
95
143
  mine = (struct write_file_data *)client_data;
96
- flags = O_WRONLY | O_CREAT | O_TRUNC | O_BINARY;
144
+ flags = O_WRONLY | O_CREAT | O_TRUNC | O_BINARY | O_CLOEXEC;
97
145
 
98
146
  /*
99
147
  * Open the file.
100
148
  */
101
- mine->fd = open(mine->filename, flags, 0666);
149
+ mbs = NULL; wcs = NULL;
150
+ #if defined(_WIN32) && !defined(__CYGWIN__)
151
+ if (archive_mstring_get_wcs(a, &mine->filename, &wcs) != 0) {
152
+ if (errno == ENOMEM)
153
+ archive_set_error(a, errno, "No memory");
154
+ else {
155
+ archive_mstring_get_mbs(a, &mine->filename, &mbs);
156
+ archive_set_error(a, errno,
157
+ "Can't convert '%s' to WCS", mbs);
158
+ }
159
+ return (ARCHIVE_FATAL);
160
+ }
161
+ fullpath = __la_win_permissive_name_w(wcs);
162
+ if (fullpath != NULL) {
163
+ mine->fd = _wopen(fullpath, flags, 0666);
164
+ free(fullpath);
165
+ } else
166
+ mine->fd = _wopen(wcs, flags, 0666);
167
+ #else
168
+ if (archive_mstring_get_mbs(a, &mine->filename, &mbs) != 0) {
169
+ if (errno == ENOMEM)
170
+ archive_set_error(a, errno, "No memory");
171
+ else {
172
+ archive_mstring_get_wcs(a, &mine->filename, &wcs);
173
+ archive_set_error(a, errno,
174
+ "Can't convert '%S' to MBS", wcs);
175
+ }
176
+ return (ARCHIVE_FATAL);
177
+ }
178
+ mine->fd = open(mbs, flags, 0666);
179
+ __archive_ensure_cloexec_flag(mine->fd);
180
+ #endif
102
181
  if (mine->fd < 0) {
103
- archive_set_error(a, errno, "Failed to open '%s'",
104
- mine->filename);
182
+ if (mbs != NULL)
183
+ archive_set_error(a, errno, "Failed to open '%s'", mbs);
184
+ else
185
+ archive_set_error(a, errno, "Failed to open '%S'", wcs);
105
186
  return (ARCHIVE_FATAL);
106
187
  }
107
188
 
108
189
  if (fstat(mine->fd, &st) != 0) {
109
- archive_set_error(a, errno, "Couldn't stat '%s'",
110
- mine->filename);
111
- return (ARCHIVE_FATAL);
190
+ if (mbs != NULL)
191
+ archive_set_error(a, errno, "Couldn't stat '%s'", mbs);
192
+ else
193
+ archive_set_error(a, errno, "Couldn't stat '%S'", wcs);
194
+ return (ARCHIVE_FATAL);
112
195
  }
113
196
 
114
197
  /*
@@ -136,18 +219,23 @@ file_open(struct archive *a, void *client_data)
136
219
  }
137
220
 
138
221
  static ssize_t
139
- file_write(struct archive *a, void *client_data, const void *buff, size_t length)
222
+ file_write(struct archive *a, void *client_data, const void *buff,
223
+ size_t length)
140
224
  {
141
225
  struct write_file_data *mine;
142
226
  ssize_t bytesWritten;
143
227
 
144
228
  mine = (struct write_file_data *)client_data;
145
- bytesWritten = write(mine->fd, buff, length);
146
- if (bytesWritten <= 0) {
147
- archive_set_error(a, errno, "Write error");
148
- return (-1);
229
+ for (;;) {
230
+ bytesWritten = write(mine->fd, buff, length);
231
+ if (bytesWritten <= 0) {
232
+ if (errno == EINTR)
233
+ continue;
234
+ archive_set_error(a, errno, "Write error");
235
+ return (-1);
236
+ }
237
+ return (bytesWritten);
149
238
  }
150
- return (bytesWritten);
151
239
  }
152
240
 
153
241
  static int
@@ -156,7 +244,27 @@ file_close(struct archive *a, void *client_data)
156
244
  struct write_file_data *mine = (struct write_file_data *)client_data;
157
245
 
158
246
  (void)a; /* UNUSED */
159
- close(mine->fd);
247
+
248
+ if (mine == NULL)
249
+ return (ARCHIVE_FATAL);
250
+
251
+ if (mine->fd >= 0)
252
+ close(mine->fd);
253
+
254
+ return (ARCHIVE_OK);
255
+ }
256
+
257
+ static int
258
+ file_free(struct archive *a, void *client_data)
259
+ {
260
+ struct write_file_data *mine = (struct write_file_data *)client_data;
261
+
262
+ (void)a; /* UNUSED */
263
+
264
+ if (mine == NULL)
265
+ return (ARCHIVE_OK);
266
+
267
+ archive_mstring_clean(&mine->filename);
160
268
  free(mine);
161
269
  return (ARCHIVE_OK);
162
270
  }
@@ -32,18 +32,6 @@ __FBSDID("$FreeBSD: src/lib/libarchive/archive_write_open_memory.c,v 1.3 2007/01
32
32
 
33
33
  #include "archive.h"
34
34
 
35
- /*
36
- * This is a little tricky. I used to allow the
37
- * compression handling layer to fork the compressor,
38
- * which means this write function gets invoked in
39
- * a separate process. That would, of course, make it impossible
40
- * to actually use the data stored into memory here.
41
- * Fortunately, none of the compressors fork today and
42
- * I'm reluctant to use that route in the future but, if
43
- * forking compressors ever do reappear, this will have
44
- * to get a lot more complicated.
45
- */
46
-
47
35
  struct write_memory_data {
48
36
  size_t used;
49
37
  size_t size;
@@ -51,7 +39,7 @@ struct write_memory_data {
51
39
  unsigned char * buff;
52
40
  };
53
41
 
54
- static int memory_write_close(struct archive *, void *);
42
+ static int memory_write_free(struct archive *, void *);
55
43
  static int memory_write_open(struct archive *, void *);
56
44
  static ssize_t memory_write(struct archive *, void *, const void *buff, size_t);
57
45
 
@@ -65,17 +53,16 @@ archive_write_open_memory(struct archive *a, void *buff, size_t buffSize, size_t
65
53
  {
66
54
  struct write_memory_data *mine;
67
55
 
68
- mine = (struct write_memory_data *)malloc(sizeof(*mine));
56
+ mine = (struct write_memory_data *)calloc(1, sizeof(*mine));
69
57
  if (mine == NULL) {
70
58
  archive_set_error(a, ENOMEM, "No memory");
71
59
  return (ARCHIVE_FATAL);
72
60
  }
73
- memset(mine, 0, sizeof(*mine));
74
61
  mine->buff = buff;
75
62
  mine->size = buffSize;
76
63
  mine->client_size = used;
77
- return (archive_write_open(a, mine,
78
- memory_write_open, memory_write, memory_write_close));
64
+ return (archive_write_open2(a, mine,
65
+ memory_write_open, memory_write, NULL, memory_write_free));
79
66
  }
80
67
 
81
68
  static int
@@ -116,11 +103,13 @@ memory_write(struct archive *a, void *client_data, const void *buff, size_t leng
116
103
  }
117
104
 
118
105
  static int
119
- memory_write_close(struct archive *a, void *client_data)
106
+ memory_write_free(struct archive *a, void *client_data)
120
107
  {
121
108
  struct write_memory_data *mine;
122
109
  (void)a; /* UNUSED */
123
110
  mine = client_data;
111
+ if (mine == NULL)
112
+ return (ARCHIVE_OK);
124
113
  free(mine);
125
114
  return (ARCHIVE_OK);
126
115
  }
@@ -25,22 +25,60 @@
25
25
  * $FreeBSD: head/lib/libarchive/archive_write_private.h 201155 2009-12-29 05:20:12Z kientzle $
26
26
  */
27
27
 
28
+ #ifndef ARCHIVE_WRITE_PRIVATE_H_INCLUDED
29
+ #define ARCHIVE_WRITE_PRIVATE_H_INCLUDED
30
+
28
31
  #ifndef __LIBARCHIVE_BUILD
32
+ #ifndef __LIBARCHIVE_TEST
29
33
  #error This header is only to be used internally to libarchive.
30
34
  #endif
31
-
32
- #ifndef ARCHIVE_WRITE_PRIVATE_H_INCLUDED
33
- #define ARCHIVE_WRITE_PRIVATE_H_INCLUDED
35
+ #endif
34
36
 
35
37
  #include "archive.h"
36
38
  #include "archive_string.h"
37
39
  #include "archive_private.h"
38
40
 
41
+ #define ARCHIVE_WRITE_FILTER_STATE_NEW 1U
42
+ #define ARCHIVE_WRITE_FILTER_STATE_OPEN 2U
43
+ #define ARCHIVE_WRITE_FILTER_STATE_CLOSED 4U
44
+ #define ARCHIVE_WRITE_FILTER_STATE_FATAL 0x8000U
45
+
46
+ struct archive_write;
47
+
48
+ struct archive_write_filter {
49
+ int64_t bytes_written;
50
+ struct archive *archive; /* Associated archive. */
51
+ struct archive_write_filter *next_filter; /* Who I write to. */
52
+ int (*options)(struct archive_write_filter *,
53
+ const char *key, const char *value);
54
+ int (*open)(struct archive_write_filter *);
55
+ int (*write)(struct archive_write_filter *, const void *, size_t);
56
+ int (*close)(struct archive_write_filter *);
57
+ int (*free)(struct archive_write_filter *);
58
+ void *data;
59
+ const char *name;
60
+ int code;
61
+ int bytes_per_block;
62
+ int bytes_in_last_block;
63
+ int state;
64
+ };
65
+
66
+ #if ARCHIVE_VERSION < 4000000
67
+ void __archive_write_filters_free(struct archive *);
68
+ #endif
69
+
70
+ struct archive_write_filter *__archive_write_allocate_filter(struct archive *);
71
+
72
+ int __archive_write_output(struct archive_write *, const void *, size_t);
73
+ int __archive_write_nulls(struct archive_write *, size_t);
74
+ int __archive_write_filter(struct archive_write_filter *, const void *, size_t);
75
+
39
76
  struct archive_write {
40
77
  struct archive archive;
41
78
 
42
79
  /* Dev/ino of the archive being written. */
43
- dev_t skip_file_dev;
80
+ int skip_file_set;
81
+ int64_t skip_file_dev;
44
82
  int64_t skip_file_ino;
45
83
 
46
84
  /* Utility: Pointer to a block of nulls. */
@@ -51,6 +89,7 @@ struct archive_write {
51
89
  archive_open_callback *client_opener;
52
90
  archive_write_callback *client_writer;
53
91
  archive_close_callback *client_closer;
92
+ archive_free_callback *client_freer;
54
93
  void *client_data;
55
94
 
56
95
  /*
@@ -63,29 +102,10 @@ struct archive_write {
63
102
  int bytes_in_last_block;
64
103
 
65
104
  /*
66
- * These control whether data within a gzip/bzip2 compressed
67
- * stream gets padded or not. If pad_uncompressed is set,
68
- * the data will be padded to a full block before being
69
- * compressed. The pad_uncompressed_byte determines the value
70
- * that will be used for padding. Note that these have no
71
- * effect on compression "none."
72
- */
73
- int pad_uncompressed;
74
- int pad_uncompressed_byte; /* TODO: Support this. */
75
-
76
- /*
77
- * On write, the client just invokes an archive_write_set function
78
- * which sets up the data here directly.
105
+ * First and last write filters in the pipeline.
79
106
  */
80
- struct {
81
- void *data;
82
- void *config;
83
- int (*init)(struct archive_write *);
84
- int (*options)(struct archive_write *,
85
- const char *key, const char *value);
86
- int (*finish)(struct archive_write *);
87
- int (*write)(struct archive_write *, const void *, size_t);
88
- } compressor;
107
+ struct archive_write_filter *filter_first;
108
+ struct archive_write_filter *filter_last;
89
109
 
90
110
  /*
91
111
  * Pointers to format-specific functions for writing. They're
@@ -96,13 +116,21 @@ struct archive_write {
96
116
  int (*format_init)(struct archive_write *);
97
117
  int (*format_options)(struct archive_write *,
98
118
  const char *key, const char *value);
99
- int (*format_finish)(struct archive_write *);
100
- int (*format_destroy)(struct archive_write *);
101
119
  int (*format_finish_entry)(struct archive_write *);
102
120
  int (*format_write_header)(struct archive_write *,
103
121
  struct archive_entry *);
104
122
  ssize_t (*format_write_data)(struct archive_write *,
105
123
  const void *buff, size_t);
124
+ int (*format_close)(struct archive_write *);
125
+ int (*format_free)(struct archive_write *);
126
+
127
+
128
+ /*
129
+ * Encryption passphrase.
130
+ */
131
+ char *passphrase;
132
+ archive_passphrase_callback *passphrase_callback;
133
+ void *passphrase_client_data;
106
134
  };
107
135
 
108
136
  /*
@@ -117,6 +145,21 @@ struct archive_write {
117
145
  */
118
146
  int
119
147
  __archive_write_format_header_ustar(struct archive_write *, char buff[512],
120
- struct archive_entry *, int tartype, int strict);
148
+ struct archive_entry *, int tartype, int strict,
149
+ struct archive_string_conv *);
150
+
151
+ struct archive_write_program_data;
152
+ struct archive_write_program_data * __archive_write_program_allocate(const char *program_name);
153
+ int __archive_write_program_free(struct archive_write_program_data *);
154
+ int __archive_write_program_open(struct archive_write_filter *,
155
+ struct archive_write_program_data *, const char *);
156
+ int __archive_write_program_close(struct archive_write_filter *,
157
+ struct archive_write_program_data *);
158
+ int __archive_write_program_write(struct archive_write_filter *,
159
+ struct archive_write_program_data *, const void *, size_t);
121
160
 
161
+ /*
162
+ * Get a encryption passphrase.
163
+ */
164
+ const char * __archive_write_get_passphrase(struct archive_write *a);
122
165
  #endif
@@ -36,24 +36,33 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_write_set_format.c 201168 2009-1
36
36
 
37
37
  #include "archive.h"
38
38
  #include "archive_private.h"
39
+ #include "archive_write_set_format_private.h"
39
40
 
40
41
  /* A table that maps format codes to functions. */
41
- static
42
+ static const
42
43
  struct { int code; int (*setter)(struct archive *); } codes[] =
43
44
  {
45
+ { ARCHIVE_FORMAT_7ZIP, archive_write_set_format_7zip },
44
46
  { ARCHIVE_FORMAT_CPIO, archive_write_set_format_cpio },
47
+ { ARCHIVE_FORMAT_CPIO_BIN_LE, archive_write_set_format_cpio_bin },
48
+ { ARCHIVE_FORMAT_CPIO_PWB, archive_write_set_format_cpio_pwb },
49
+ { ARCHIVE_FORMAT_CPIO_POSIX, archive_write_set_format_cpio_odc },
45
50
  { ARCHIVE_FORMAT_CPIO_SVR4_NOCRC, archive_write_set_format_cpio_newc },
46
- { ARCHIVE_FORMAT_CPIO_POSIX, archive_write_set_format_cpio },
51
+ { ARCHIVE_FORMAT_ISO9660, archive_write_set_format_iso9660 },
47
52
  { ARCHIVE_FORMAT_MTREE, archive_write_set_format_mtree },
53
+ { ARCHIVE_FORMAT_RAW, archive_write_set_format_raw },
48
54
  { ARCHIVE_FORMAT_SHAR, archive_write_set_format_shar },
49
55
  { ARCHIVE_FORMAT_SHAR_BASE, archive_write_set_format_shar },
50
56
  { ARCHIVE_FORMAT_SHAR_DUMP, archive_write_set_format_shar_dump },
51
57
  { ARCHIVE_FORMAT_TAR, archive_write_set_format_pax_restricted },
58
+ { ARCHIVE_FORMAT_TAR_GNUTAR, archive_write_set_format_gnutar },
52
59
  { ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE, archive_write_set_format_pax },
53
60
  { ARCHIVE_FORMAT_TAR_PAX_RESTRICTED,
54
61
  archive_write_set_format_pax_restricted },
55
62
  { ARCHIVE_FORMAT_TAR_USTAR, archive_write_set_format_ustar },
56
- { ARCHIVE_FORMAT_ZIP, archive_write_set_format_zip },
63
+ { ARCHIVE_FORMAT_WARC, archive_write_set_format_warc },
64
+ { ARCHIVE_FORMAT_XAR, archive_write_set_format_xar },
65
+ { ARCHIVE_FORMAT_ZIP, archive_write_set_format_zip },
57
66
  { 0, NULL }
58
67
  };
59
68
 
@@ -70,3 +79,47 @@ archive_write_set_format(struct archive *a, int code)
70
79
  archive_set_error(a, EINVAL, "No such format");
71
80
  return (ARCHIVE_FATAL);
72
81
  }
82
+
83
+ void
84
+ __archive_write_entry_filetype_unsupported(struct archive *a,
85
+ struct archive_entry *entry, const char *format)
86
+ {
87
+ const char *name = NULL;
88
+
89
+ switch (archive_entry_filetype(entry)) {
90
+ /*
91
+ * All formats should be able to archive regular files (AE_IFREG)
92
+ */
93
+ case AE_IFDIR:
94
+ name = "directories";
95
+ break;
96
+ case AE_IFLNK:
97
+ name = "symbolic links";
98
+ break;
99
+ case AE_IFCHR:
100
+ name = "character devices";
101
+ break;
102
+ case AE_IFBLK:
103
+ name = "block devices";
104
+ break;
105
+ case AE_IFIFO:
106
+ name = "named pipes";
107
+ break;
108
+ case AE_IFSOCK:
109
+ name = "sockets";
110
+ break;
111
+ default:
112
+ break;
113
+ }
114
+
115
+ if (name != NULL) {
116
+ archive_set_error(a, ARCHIVE_ERRNO_FILE_FORMAT,
117
+ "%s: %s format cannot archive %s",
118
+ archive_entry_pathname(entry), format, name);
119
+ } else {
120
+ archive_set_error(a, ARCHIVE_ERRNO_FILE_FORMAT,
121
+ "%s: %s format cannot archive files with mode 0%lo",
122
+ archive_entry_pathname(entry), format,
123
+ (unsigned long)archive_entry_mode(entry));
124
+ }
125
+ }