laag-xz 5.2.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (393) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +57 -0
  3. data/LICENSE.txt +65 -0
  4. data/README.org +34 -0
  5. data/ext/laag/xz/extconf.rb +21 -0
  6. data/laag-xz.gemspec +20 -0
  7. data/lib/laag/xz.rb +29 -0
  8. data/vendor/git.tukaani.org/xz/.gitignore +66 -0
  9. data/vendor/git.tukaani.org/xz/AUTHORS +27 -0
  10. data/vendor/git.tukaani.org/xz/COPYING +65 -0
  11. data/vendor/git.tukaani.org/xz/COPYING.GPLv2 +339 -0
  12. data/vendor/git.tukaani.org/xz/COPYING.GPLv3 +674 -0
  13. data/vendor/git.tukaani.org/xz/COPYING.LGPLv2.1 +502 -0
  14. data/vendor/git.tukaani.org/xz/ChangeLog +7 -0
  15. data/vendor/git.tukaani.org/xz/Doxyfile.in +1234 -0
  16. data/vendor/git.tukaani.org/xz/INSTALL +618 -0
  17. data/vendor/git.tukaani.org/xz/INSTALL.generic +365 -0
  18. data/vendor/git.tukaani.org/xz/Makefile.am +110 -0
  19. data/vendor/git.tukaani.org/xz/NEWS +571 -0
  20. data/vendor/git.tukaani.org/xz/PACKAGERS +231 -0
  21. data/vendor/git.tukaani.org/xz/README +308 -0
  22. data/vendor/git.tukaani.org/xz/THANKS +124 -0
  23. data/vendor/git.tukaani.org/xz/TODO +111 -0
  24. data/vendor/git.tukaani.org/xz/autogen.sh +22 -0
  25. data/vendor/git.tukaani.org/xz/build-aux/manconv.sh +58 -0
  26. data/vendor/git.tukaani.org/xz/build-aux/version.sh +24 -0
  27. data/vendor/git.tukaani.org/xz/configure.ac +900 -0
  28. data/vendor/git.tukaani.org/xz/debug/Makefile.am +30 -0
  29. data/vendor/git.tukaani.org/xz/debug/README +17 -0
  30. data/vendor/git.tukaani.org/xz/debug/crc32.c +39 -0
  31. data/vendor/git.tukaani.org/xz/debug/full_flush.c +103 -0
  32. data/vendor/git.tukaani.org/xz/debug/hex2bin.c +53 -0
  33. data/vendor/git.tukaani.org/xz/debug/known_sizes.c +129 -0
  34. data/vendor/git.tukaani.org/xz/debug/memusage.c +51 -0
  35. data/vendor/git.tukaani.org/xz/debug/repeat.c +36 -0
  36. data/vendor/git.tukaani.org/xz/debug/sync_flush.c +125 -0
  37. data/vendor/git.tukaani.org/xz/debug/translation.bash +100 -0
  38. data/vendor/git.tukaani.org/xz/doc/examples/00_README.txt +31 -0
  39. data/vendor/git.tukaani.org/xz/doc/examples/01_compress_easy.c +297 -0
  40. data/vendor/git.tukaani.org/xz/doc/examples/02_decompress.c +287 -0
  41. data/vendor/git.tukaani.org/xz/doc/examples/03_compress_custom.c +193 -0
  42. data/vendor/git.tukaani.org/xz/doc/examples/04_compress_easy_mt.c +206 -0
  43. data/vendor/git.tukaani.org/xz/doc/examples/Makefile +24 -0
  44. data/vendor/git.tukaani.org/xz/doc/examples_old/xz_pipe_comp.c +127 -0
  45. data/vendor/git.tukaani.org/xz/doc/examples_old/xz_pipe_decomp.c +123 -0
  46. data/vendor/git.tukaani.org/xz/doc/faq.txt +224 -0
  47. data/vendor/git.tukaani.org/xz/doc/history.txt +150 -0
  48. data/vendor/git.tukaani.org/xz/doc/lzma-file-format.txt +166 -0
  49. data/vendor/git.tukaani.org/xz/doc/xz-file-format.txt +1150 -0
  50. data/vendor/git.tukaani.org/xz/dos/INSTALL.txt +79 -0
  51. data/vendor/git.tukaani.org/xz/dos/Makefile +147 -0
  52. data/vendor/git.tukaani.org/xz/dos/README.txt +123 -0
  53. data/vendor/git.tukaani.org/xz/dos/config.h +136 -0
  54. data/vendor/git.tukaani.org/xz/extra/7z2lzma/7z2lzma.bash +115 -0
  55. data/vendor/git.tukaani.org/xz/extra/scanlzma/scanlzma.c +88 -0
  56. data/vendor/git.tukaani.org/xz/lib/Makefile.am +32 -0
  57. data/vendor/git.tukaani.org/xz/lib/getopt.c +1197 -0
  58. data/vendor/git.tukaani.org/xz/lib/getopt.in.h +226 -0
  59. data/vendor/git.tukaani.org/xz/lib/getopt1.c +171 -0
  60. data/vendor/git.tukaani.org/xz/lib/getopt_int.h +131 -0
  61. data/vendor/git.tukaani.org/xz/m4/.gitignore +38 -0
  62. data/vendor/git.tukaani.org/xz/m4/ax_check_capsicum.m4 +85 -0
  63. data/vendor/git.tukaani.org/xz/m4/ax_pthread.m4 +332 -0
  64. data/vendor/git.tukaani.org/xz/m4/getopt.m4 +71 -0
  65. data/vendor/git.tukaani.org/xz/m4/posix-shell.m4 +63 -0
  66. data/vendor/git.tukaani.org/xz/m4/tuklib_common.m4 +22 -0
  67. data/vendor/git.tukaani.org/xz/m4/tuklib_cpucores.m4 +176 -0
  68. data/vendor/git.tukaani.org/xz/m4/tuklib_integer.m4 +74 -0
  69. data/vendor/git.tukaani.org/xz/m4/tuklib_mbstr.m4 +30 -0
  70. data/vendor/git.tukaani.org/xz/m4/tuklib_physmem.m4 +212 -0
  71. data/vendor/git.tukaani.org/xz/m4/tuklib_progname.m4 +25 -0
  72. data/vendor/git.tukaani.org/xz/macosx/build.sh +113 -0
  73. data/vendor/git.tukaani.org/xz/po/.gitignore +31 -0
  74. data/vendor/git.tukaani.org/xz/po/LINGUAS +6 -0
  75. data/vendor/git.tukaani.org/xz/po/Makevars +46 -0
  76. data/vendor/git.tukaani.org/xz/po/POTFILES.in +13 -0
  77. data/vendor/git.tukaani.org/xz/po/cs.po +949 -0
  78. data/vendor/git.tukaani.org/xz/po/de.po +993 -0
  79. data/vendor/git.tukaani.org/xz/po/fr.po +978 -0
  80. data/vendor/git.tukaani.org/xz/po/it.po +1067 -0
  81. data/vendor/git.tukaani.org/xz/po/pl.po +968 -0
  82. data/vendor/git.tukaani.org/xz/po/vi.po +1039 -0
  83. data/vendor/git.tukaani.org/xz/src/Makefile.am +42 -0
  84. data/vendor/git.tukaani.org/xz/src/common/common_w32res.rc +50 -0
  85. data/vendor/git.tukaani.org/xz/src/common/mythread.h +521 -0
  86. data/vendor/git.tukaani.org/xz/src/common/sysdefs.h +202 -0
  87. data/vendor/git.tukaani.org/xz/src/common/tuklib_common.h +71 -0
  88. data/vendor/git.tukaani.org/xz/src/common/tuklib_config.h +7 -0
  89. data/vendor/git.tukaani.org/xz/src/common/tuklib_cpucores.c +100 -0
  90. data/vendor/git.tukaani.org/xz/src/common/tuklib_cpucores.h +23 -0
  91. data/vendor/git.tukaani.org/xz/src/common/tuklib_exit.c +57 -0
  92. data/vendor/git.tukaani.org/xz/src/common/tuklib_exit.h +25 -0
  93. data/vendor/git.tukaani.org/xz/src/common/tuklib_gettext.h +44 -0
  94. data/vendor/git.tukaani.org/xz/src/common/tuklib_integer.h +534 -0
  95. data/vendor/git.tukaani.org/xz/src/common/tuklib_mbstr.h +66 -0
  96. data/vendor/git.tukaani.org/xz/src/common/tuklib_mbstr_fw.c +31 -0
  97. data/vendor/git.tukaani.org/xz/src/common/tuklib_mbstr_width.c +64 -0
  98. data/vendor/git.tukaani.org/xz/src/common/tuklib_open_stdxxx.c +57 -0
  99. data/vendor/git.tukaani.org/xz/src/common/tuklib_open_stdxxx.h +23 -0
  100. data/vendor/git.tukaani.org/xz/src/common/tuklib_physmem.c +216 -0
  101. data/vendor/git.tukaani.org/xz/src/common/tuklib_physmem.h +28 -0
  102. data/vendor/git.tukaani.org/xz/src/common/tuklib_progname.c +50 -0
  103. data/vendor/git.tukaani.org/xz/src/common/tuklib_progname.h +32 -0
  104. data/vendor/git.tukaani.org/xz/src/liblzma/Makefile.am +122 -0
  105. data/vendor/git.tukaani.org/xz/src/liblzma/api/Makefile.am +23 -0
  106. data/vendor/git.tukaani.org/xz/src/liblzma/api/lzma.h +325 -0
  107. data/vendor/git.tukaani.org/xz/src/liblzma/api/lzma/base.h +659 -0
  108. data/vendor/git.tukaani.org/xz/src/liblzma/api/lzma/bcj.h +90 -0
  109. data/vendor/git.tukaani.org/xz/src/liblzma/api/lzma/block.h +581 -0
  110. data/vendor/git.tukaani.org/xz/src/liblzma/api/lzma/check.h +150 -0
  111. data/vendor/git.tukaani.org/xz/src/liblzma/api/lzma/container.h +632 -0
  112. data/vendor/git.tukaani.org/xz/src/liblzma/api/lzma/delta.h +77 -0
  113. data/vendor/git.tukaani.org/xz/src/liblzma/api/lzma/filter.h +425 -0
  114. data/vendor/git.tukaani.org/xz/src/liblzma/api/lzma/hardware.h +64 -0
  115. data/vendor/git.tukaani.org/xz/src/liblzma/api/lzma/index.h +686 -0
  116. data/vendor/git.tukaani.org/xz/src/liblzma/api/lzma/index_hash.h +107 -0
  117. data/vendor/git.tukaani.org/xz/src/liblzma/api/lzma/lzma12.h +420 -0
  118. data/vendor/git.tukaani.org/xz/src/liblzma/api/lzma/stream_flags.h +223 -0
  119. data/vendor/git.tukaani.org/xz/src/liblzma/api/lzma/version.h +121 -0
  120. data/vendor/git.tukaani.org/xz/src/liblzma/api/lzma/vli.h +166 -0
  121. data/vendor/git.tukaani.org/xz/src/liblzma/check/Makefile.inc +53 -0
  122. data/vendor/git.tukaani.org/xz/src/liblzma/check/check.c +174 -0
  123. data/vendor/git.tukaani.org/xz/src/liblzma/check/check.h +172 -0
  124. data/vendor/git.tukaani.org/xz/src/liblzma/check/crc32_fast.c +82 -0
  125. data/vendor/git.tukaani.org/xz/src/liblzma/check/crc32_small.c +61 -0
  126. data/vendor/git.tukaani.org/xz/src/liblzma/check/crc32_table.c +19 -0
  127. data/vendor/git.tukaani.org/xz/src/liblzma/check/crc32_table_be.h +525 -0
  128. data/vendor/git.tukaani.org/xz/src/liblzma/check/crc32_table_le.h +525 -0
  129. data/vendor/git.tukaani.org/xz/src/liblzma/check/crc32_tablegen.c +117 -0
  130. data/vendor/git.tukaani.org/xz/src/liblzma/check/crc32_x86.S +304 -0
  131. data/vendor/git.tukaani.org/xz/src/liblzma/check/crc64_fast.c +72 -0
  132. data/vendor/git.tukaani.org/xz/src/liblzma/check/crc64_small.c +53 -0
  133. data/vendor/git.tukaani.org/xz/src/liblzma/check/crc64_table.c +19 -0
  134. data/vendor/git.tukaani.org/xz/src/liblzma/check/crc64_table_be.h +521 -0
  135. data/vendor/git.tukaani.org/xz/src/liblzma/check/crc64_table_le.h +521 -0
  136. data/vendor/git.tukaani.org/xz/src/liblzma/check/crc64_tablegen.c +88 -0
  137. data/vendor/git.tukaani.org/xz/src/liblzma/check/crc64_x86.S +287 -0
  138. data/vendor/git.tukaani.org/xz/src/liblzma/check/crc_macros.h +30 -0
  139. data/vendor/git.tukaani.org/xz/src/liblzma/check/sha256.c +196 -0
  140. data/vendor/git.tukaani.org/xz/src/liblzma/common/Makefile.inc +79 -0
  141. data/vendor/git.tukaani.org/xz/src/liblzma/common/alone_decoder.c +243 -0
  142. data/vendor/git.tukaani.org/xz/src/liblzma/common/alone_decoder.h +23 -0
  143. data/vendor/git.tukaani.org/xz/src/liblzma/common/alone_encoder.c +163 -0
  144. data/vendor/git.tukaani.org/xz/src/liblzma/common/auto_decoder.c +195 -0
  145. data/vendor/git.tukaani.org/xz/src/liblzma/common/block_buffer_decoder.c +80 -0
  146. data/vendor/git.tukaani.org/xz/src/liblzma/common/block_buffer_encoder.c +337 -0
  147. data/vendor/git.tukaani.org/xz/src/liblzma/common/block_buffer_encoder.h +24 -0
  148. data/vendor/git.tukaani.org/xz/src/liblzma/common/block_decoder.c +257 -0
  149. data/vendor/git.tukaani.org/xz/src/liblzma/common/block_decoder.h +22 -0
  150. data/vendor/git.tukaani.org/xz/src/liblzma/common/block_encoder.c +223 -0
  151. data/vendor/git.tukaani.org/xz/src/liblzma/common/block_encoder.h +47 -0
  152. data/vendor/git.tukaani.org/xz/src/liblzma/common/block_header_decoder.c +124 -0
  153. data/vendor/git.tukaani.org/xz/src/liblzma/common/block_header_encoder.c +132 -0
  154. data/vendor/git.tukaani.org/xz/src/liblzma/common/block_util.c +90 -0
  155. data/vendor/git.tukaani.org/xz/src/liblzma/common/common.c +445 -0
  156. data/vendor/git.tukaani.org/xz/src/liblzma/common/common.h +314 -0
  157. data/vendor/git.tukaani.org/xz/src/liblzma/common/easy_buffer_encoder.c +27 -0
  158. data/vendor/git.tukaani.org/xz/src/liblzma/common/easy_decoder_memusage.c +24 -0
  159. data/vendor/git.tukaani.org/xz/src/liblzma/common/easy_encoder.c +24 -0
  160. data/vendor/git.tukaani.org/xz/src/liblzma/common/easy_encoder_memusage.c +24 -0
  161. data/vendor/git.tukaani.org/xz/src/liblzma/common/easy_preset.c +27 -0
  162. data/vendor/git.tukaani.org/xz/src/liblzma/common/easy_preset.h +32 -0
  163. data/vendor/git.tukaani.org/xz/src/liblzma/common/filter_buffer_decoder.c +88 -0
  164. data/vendor/git.tukaani.org/xz/src/liblzma/common/filter_buffer_encoder.c +55 -0
  165. data/vendor/git.tukaani.org/xz/src/liblzma/common/filter_common.c +337 -0
  166. data/vendor/git.tukaani.org/xz/src/liblzma/common/filter_common.h +48 -0
  167. data/vendor/git.tukaani.org/xz/src/liblzma/common/filter_decoder.c +184 -0
  168. data/vendor/git.tukaani.org/xz/src/liblzma/common/filter_decoder.h +23 -0
  169. data/vendor/git.tukaani.org/xz/src/liblzma/common/filter_encoder.c +286 -0
  170. data/vendor/git.tukaani.org/xz/src/liblzma/common/filter_encoder.h +27 -0
  171. data/vendor/git.tukaani.org/xz/src/liblzma/common/filter_flags_decoder.c +46 -0
  172. data/vendor/git.tukaani.org/xz/src/liblzma/common/filter_flags_encoder.c +56 -0
  173. data/vendor/git.tukaani.org/xz/src/liblzma/common/hardware_cputhreads.c +22 -0
  174. data/vendor/git.tukaani.org/xz/src/liblzma/common/hardware_physmem.c +25 -0
  175. data/vendor/git.tukaani.org/xz/src/liblzma/common/index.c +1250 -0
  176. data/vendor/git.tukaani.org/xz/src/liblzma/common/index.h +73 -0
  177. data/vendor/git.tukaani.org/xz/src/liblzma/common/index_decoder.c +352 -0
  178. data/vendor/git.tukaani.org/xz/src/liblzma/common/index_encoder.c +256 -0
  179. data/vendor/git.tukaani.org/xz/src/liblzma/common/index_encoder.h +23 -0
  180. data/vendor/git.tukaani.org/xz/src/liblzma/common/index_hash.c +334 -0
  181. data/vendor/git.tukaani.org/xz/src/liblzma/common/memcmplen.h +175 -0
  182. data/vendor/git.tukaani.org/xz/src/liblzma/common/outqueue.c +184 -0
  183. data/vendor/git.tukaani.org/xz/src/liblzma/common/outqueue.h +156 -0
  184. data/vendor/git.tukaani.org/xz/src/liblzma/common/stream_buffer_decoder.c +91 -0
  185. data/vendor/git.tukaani.org/xz/src/liblzma/common/stream_buffer_encoder.c +141 -0
  186. data/vendor/git.tukaani.org/xz/src/liblzma/common/stream_decoder.c +467 -0
  187. data/vendor/git.tukaani.org/xz/src/liblzma/common/stream_decoder.h +22 -0
  188. data/vendor/git.tukaani.org/xz/src/liblzma/common/stream_encoder.c +340 -0
  189. data/vendor/git.tukaani.org/xz/src/liblzma/common/stream_encoder_mt.c +1143 -0
  190. data/vendor/git.tukaani.org/xz/src/liblzma/common/stream_flags_common.c +47 -0
  191. data/vendor/git.tukaani.org/xz/src/liblzma/common/stream_flags_common.h +33 -0
  192. data/vendor/git.tukaani.org/xz/src/liblzma/common/stream_flags_decoder.c +82 -0
  193. data/vendor/git.tukaani.org/xz/src/liblzma/common/stream_flags_encoder.c +86 -0
  194. data/vendor/git.tukaani.org/xz/src/liblzma/common/vli_decoder.c +86 -0
  195. data/vendor/git.tukaani.org/xz/src/liblzma/common/vli_encoder.c +69 -0
  196. data/vendor/git.tukaani.org/xz/src/liblzma/common/vli_size.c +30 -0
  197. data/vendor/git.tukaani.org/xz/src/liblzma/delta/Makefile.inc +23 -0
  198. data/vendor/git.tukaani.org/xz/src/liblzma/delta/delta_common.c +73 -0
  199. data/vendor/git.tukaani.org/xz/src/liblzma/delta/delta_common.h +20 -0
  200. data/vendor/git.tukaani.org/xz/src/liblzma/delta/delta_decoder.c +78 -0
  201. data/vendor/git.tukaani.org/xz/src/liblzma/delta/delta_decoder.h +26 -0
  202. data/vendor/git.tukaani.org/xz/src/liblzma/delta/delta_encoder.c +125 -0
  203. data/vendor/git.tukaani.org/xz/src/liblzma/delta/delta_encoder.h +24 -0
  204. data/vendor/git.tukaani.org/xz/src/liblzma/delta/delta_private.h +37 -0
  205. data/vendor/git.tukaani.org/xz/src/liblzma/liblzma.map +108 -0
  206. data/vendor/git.tukaani.org/xz/src/liblzma/liblzma.pc.in +19 -0
  207. data/vendor/git.tukaani.org/xz/src/liblzma/liblzma_w32res.rc +12 -0
  208. data/vendor/git.tukaani.org/xz/src/liblzma/lz/Makefile.inc +22 -0
  209. data/vendor/git.tukaani.org/xz/src/liblzma/lz/lz_decoder.c +306 -0
  210. data/vendor/git.tukaani.org/xz/src/liblzma/lz/lz_decoder.h +234 -0
  211. data/vendor/git.tukaani.org/xz/src/liblzma/lz/lz_encoder.c +616 -0
  212. data/vendor/git.tukaani.org/xz/src/liblzma/lz/lz_encoder.h +327 -0
  213. data/vendor/git.tukaani.org/xz/src/liblzma/lz/lz_encoder_hash.h +108 -0
  214. data/vendor/git.tukaani.org/xz/src/liblzma/lz/lz_encoder_hash_table.h +68 -0
  215. data/vendor/git.tukaani.org/xz/src/liblzma/lz/lz_encoder_mf.c +744 -0
  216. data/vendor/git.tukaani.org/xz/src/liblzma/lzma/Makefile.inc +47 -0
  217. data/vendor/git.tukaani.org/xz/src/liblzma/lzma/fastpos.h +141 -0
  218. data/vendor/git.tukaani.org/xz/src/liblzma/lzma/fastpos_table.c +519 -0
  219. data/vendor/git.tukaani.org/xz/src/liblzma/lzma/fastpos_tablegen.c +56 -0
  220. data/vendor/git.tukaani.org/xz/src/liblzma/lzma/lzma2_decoder.c +310 -0
  221. data/vendor/git.tukaani.org/xz/src/liblzma/lzma/lzma2_decoder.h +29 -0
  222. data/vendor/git.tukaani.org/xz/src/liblzma/lzma/lzma2_encoder.c +410 -0
  223. data/vendor/git.tukaani.org/xz/src/liblzma/lzma/lzma2_encoder.h +43 -0
  224. data/vendor/git.tukaani.org/xz/src/liblzma/lzma/lzma_common.h +224 -0
  225. data/vendor/git.tukaani.org/xz/src/liblzma/lzma/lzma_decoder.c +1064 -0
  226. data/vendor/git.tukaani.org/xz/src/liblzma/lzma/lzma_decoder.h +53 -0
  227. data/vendor/git.tukaani.org/xz/src/liblzma/lzma/lzma_encoder.c +677 -0
  228. data/vendor/git.tukaani.org/xz/src/liblzma/lzma/lzma_encoder.h +58 -0
  229. data/vendor/git.tukaani.org/xz/src/liblzma/lzma/lzma_encoder_optimum_fast.c +170 -0
  230. data/vendor/git.tukaani.org/xz/src/liblzma/lzma/lzma_encoder_optimum_normal.c +855 -0
  231. data/vendor/git.tukaani.org/xz/src/liblzma/lzma/lzma_encoder_presets.c +64 -0
  232. data/vendor/git.tukaani.org/xz/src/liblzma/lzma/lzma_encoder_private.h +148 -0
  233. data/vendor/git.tukaani.org/xz/src/liblzma/rangecoder/Makefile.inc +21 -0
  234. data/vendor/git.tukaani.org/xz/src/liblzma/rangecoder/price.h +92 -0
  235. data/vendor/git.tukaani.org/xz/src/liblzma/rangecoder/price_table.c +22 -0
  236. data/vendor/git.tukaani.org/xz/src/liblzma/rangecoder/price_tablegen.c +87 -0
  237. data/vendor/git.tukaani.org/xz/src/liblzma/rangecoder/range_common.h +71 -0
  238. data/vendor/git.tukaani.org/xz/src/liblzma/rangecoder/range_decoder.h +185 -0
  239. data/vendor/git.tukaani.org/xz/src/liblzma/rangecoder/range_encoder.h +231 -0
  240. data/vendor/git.tukaani.org/xz/src/liblzma/simple/Makefile.inc +47 -0
  241. data/vendor/git.tukaani.org/xz/src/liblzma/simple/arm.c +71 -0
  242. data/vendor/git.tukaani.org/xz/src/liblzma/simple/armthumb.c +76 -0
  243. data/vendor/git.tukaani.org/xz/src/liblzma/simple/ia64.c +112 -0
  244. data/vendor/git.tukaani.org/xz/src/liblzma/simple/powerpc.c +75 -0
  245. data/vendor/git.tukaani.org/xz/src/liblzma/simple/simple_coder.c +282 -0
  246. data/vendor/git.tukaani.org/xz/src/liblzma/simple/simple_coder.h +72 -0
  247. data/vendor/git.tukaani.org/xz/src/liblzma/simple/simple_decoder.c +40 -0
  248. data/vendor/git.tukaani.org/xz/src/liblzma/simple/simple_decoder.h +22 -0
  249. data/vendor/git.tukaani.org/xz/src/liblzma/simple/simple_encoder.c +38 -0
  250. data/vendor/git.tukaani.org/xz/src/liblzma/simple/simple_encoder.h +23 -0
  251. data/vendor/git.tukaani.org/xz/src/liblzma/simple/simple_private.h +74 -0
  252. data/vendor/git.tukaani.org/xz/src/liblzma/simple/sparc.c +83 -0
  253. data/vendor/git.tukaani.org/xz/src/liblzma/simple/x86.c +159 -0
  254. data/vendor/git.tukaani.org/xz/src/liblzma/validate_map.sh +68 -0
  255. data/vendor/git.tukaani.org/xz/src/lzmainfo/Makefile.am +39 -0
  256. data/vendor/git.tukaani.org/xz/src/lzmainfo/lzmainfo.1 +60 -0
  257. data/vendor/git.tukaani.org/xz/src/lzmainfo/lzmainfo.c +219 -0
  258. data/vendor/git.tukaani.org/xz/src/lzmainfo/lzmainfo_w32res.rc +12 -0
  259. data/vendor/git.tukaani.org/xz/src/scripts/Makefile.am +55 -0
  260. data/vendor/git.tukaani.org/xz/src/scripts/xzdiff.1 +77 -0
  261. data/vendor/git.tukaani.org/xz/src/scripts/xzdiff.in +200 -0
  262. data/vendor/git.tukaani.org/xz/src/scripts/xzgrep.1 +98 -0
  263. data/vendor/git.tukaani.org/xz/src/scripts/xzgrep.in +215 -0
  264. data/vendor/git.tukaani.org/xz/src/scripts/xzless.1 +69 -0
  265. data/vendor/git.tukaani.org/xz/src/scripts/xzless.in +58 -0
  266. data/vendor/git.tukaani.org/xz/src/scripts/xzmore.1 +55 -0
  267. data/vendor/git.tukaani.org/xz/src/scripts/xzmore.in +78 -0
  268. data/vendor/git.tukaani.org/xz/src/xz/Makefile.am +111 -0
  269. data/vendor/git.tukaani.org/xz/src/xz/args.c +700 -0
  270. data/vendor/git.tukaani.org/xz/src/xz/args.h +44 -0
  271. data/vendor/git.tukaani.org/xz/src/xz/coder.c +936 -0
  272. data/vendor/git.tukaani.org/xz/src/xz/coder.h +76 -0
  273. data/vendor/git.tukaani.org/xz/src/xz/file_io.c +1300 -0
  274. data/vendor/git.tukaani.org/xz/src/xz/file_io.h +156 -0
  275. data/vendor/git.tukaani.org/xz/src/xz/hardware.c +150 -0
  276. data/vendor/git.tukaani.org/xz/src/xz/hardware.h +37 -0
  277. data/vendor/git.tukaani.org/xz/src/xz/list.c +1192 -0
  278. data/vendor/git.tukaani.org/xz/src/xz/list.h +18 -0
  279. data/vendor/git.tukaani.org/xz/src/xz/main.c +330 -0
  280. data/vendor/git.tukaani.org/xz/src/xz/main.h +30 -0
  281. data/vendor/git.tukaani.org/xz/src/xz/message.c +1258 -0
  282. data/vendor/git.tukaani.org/xz/src/xz/message.h +167 -0
  283. data/vendor/git.tukaani.org/xz/src/xz/mytime.c +89 -0
  284. data/vendor/git.tukaani.org/xz/src/xz/mytime.h +47 -0
  285. data/vendor/git.tukaani.org/xz/src/xz/options.c +363 -0
  286. data/vendor/git.tukaani.org/xz/src/xz/options.h +31 -0
  287. data/vendor/git.tukaani.org/xz/src/xz/private.h +66 -0
  288. data/vendor/git.tukaani.org/xz/src/xz/signals.c +209 -0
  289. data/vendor/git.tukaani.org/xz/src/xz/signals.h +43 -0
  290. data/vendor/git.tukaani.org/xz/src/xz/suffix.c +399 -0
  291. data/vendor/git.tukaani.org/xz/src/xz/suffix.h +28 -0
  292. data/vendor/git.tukaani.org/xz/src/xz/util.c +288 -0
  293. data/vendor/git.tukaani.org/xz/src/xz/util.h +123 -0
  294. data/vendor/git.tukaani.org/xz/src/xz/xz.1 +2786 -0
  295. data/vendor/git.tukaani.org/xz/src/xz/xz_w32res.rc +12 -0
  296. data/vendor/git.tukaani.org/xz/src/xzdec/Makefile.am +82 -0
  297. data/vendor/git.tukaani.org/xz/src/xzdec/lzmadec_w32res.rc +12 -0
  298. data/vendor/git.tukaani.org/xz/src/xzdec/xzdec.1 +146 -0
  299. data/vendor/git.tukaani.org/xz/src/xzdec/xzdec.c +323 -0
  300. data/vendor/git.tukaani.org/xz/src/xzdec/xzdec_w32res.rc +12 -0
  301. data/vendor/git.tukaani.org/xz/tests/Makefile.am +57 -0
  302. data/vendor/git.tukaani.org/xz/tests/bcj_test.c +65 -0
  303. data/vendor/git.tukaani.org/xz/tests/compress_prepared_bcj_sparc +0 -0
  304. data/vendor/git.tukaani.org/xz/tests/compress_prepared_bcj_x86 +0 -0
  305. data/vendor/git.tukaani.org/xz/tests/create_compress_files.c +158 -0
  306. data/vendor/git.tukaani.org/xz/tests/files/README +240 -0
  307. data/vendor/git.tukaani.org/xz/tests/files/bad-0-backward_size.xz +0 -0
  308. data/vendor/git.tukaani.org/xz/tests/files/bad-0-empty-truncated.xz +0 -0
  309. data/vendor/git.tukaani.org/xz/tests/files/bad-0-footer_magic.xz +0 -0
  310. data/vendor/git.tukaani.org/xz/tests/files/bad-0-header_magic.xz +0 -0
  311. data/vendor/git.tukaani.org/xz/tests/files/bad-0-nonempty_index.xz +0 -0
  312. data/vendor/git.tukaani.org/xz/tests/files/bad-0cat-alone.xz +0 -0
  313. data/vendor/git.tukaani.org/xz/tests/files/bad-0cat-header_magic.xz +0 -0
  314. data/vendor/git.tukaani.org/xz/tests/files/bad-0catpad-empty.xz +0 -0
  315. data/vendor/git.tukaani.org/xz/tests/files/bad-0pad-empty.xz +0 -0
  316. data/vendor/git.tukaani.org/xz/tests/files/bad-1-block_header-1.xz +0 -0
  317. data/vendor/git.tukaani.org/xz/tests/files/bad-1-block_header-2.xz +0 -0
  318. data/vendor/git.tukaani.org/xz/tests/files/bad-1-block_header-3.xz +0 -0
  319. data/vendor/git.tukaani.org/xz/tests/files/bad-1-block_header-4.xz +0 -0
  320. data/vendor/git.tukaani.org/xz/tests/files/bad-1-block_header-5.xz +0 -0
  321. data/vendor/git.tukaani.org/xz/tests/files/bad-1-block_header-6.xz +0 -0
  322. data/vendor/git.tukaani.org/xz/tests/files/bad-1-check-crc32.xz +0 -0
  323. data/vendor/git.tukaani.org/xz/tests/files/bad-1-check-crc64.xz +0 -0
  324. data/vendor/git.tukaani.org/xz/tests/files/bad-1-check-sha256.xz +0 -0
  325. data/vendor/git.tukaani.org/xz/tests/files/bad-1-lzma2-1.xz +0 -0
  326. data/vendor/git.tukaani.org/xz/tests/files/bad-1-lzma2-2.xz +0 -0
  327. data/vendor/git.tukaani.org/xz/tests/files/bad-1-lzma2-3.xz +0 -0
  328. data/vendor/git.tukaani.org/xz/tests/files/bad-1-lzma2-4.xz +0 -0
  329. data/vendor/git.tukaani.org/xz/tests/files/bad-1-lzma2-5.xz +0 -0
  330. data/vendor/git.tukaani.org/xz/tests/files/bad-1-lzma2-6.xz +0 -0
  331. data/vendor/git.tukaani.org/xz/tests/files/bad-1-lzma2-7.xz +0 -0
  332. data/vendor/git.tukaani.org/xz/tests/files/bad-1-lzma2-8.xz +0 -0
  333. data/vendor/git.tukaani.org/xz/tests/files/bad-1-stream_flags-1.xz +0 -0
  334. data/vendor/git.tukaani.org/xz/tests/files/bad-1-stream_flags-2.xz +0 -0
  335. data/vendor/git.tukaani.org/xz/tests/files/bad-1-stream_flags-3.xz +0 -0
  336. data/vendor/git.tukaani.org/xz/tests/files/bad-1-vli-1.xz +0 -0
  337. data/vendor/git.tukaani.org/xz/tests/files/bad-1-vli-2.xz +0 -0
  338. data/vendor/git.tukaani.org/xz/tests/files/bad-2-compressed_data_padding.xz +0 -0
  339. data/vendor/git.tukaani.org/xz/tests/files/bad-2-index-1.xz +0 -0
  340. data/vendor/git.tukaani.org/xz/tests/files/bad-2-index-2.xz +0 -0
  341. data/vendor/git.tukaani.org/xz/tests/files/bad-2-index-3.xz +0 -0
  342. data/vendor/git.tukaani.org/xz/tests/files/bad-2-index-4.xz +0 -0
  343. data/vendor/git.tukaani.org/xz/tests/files/bad-2-index-5.xz +0 -0
  344. data/vendor/git.tukaani.org/xz/tests/files/good-0-empty.xz +0 -0
  345. data/vendor/git.tukaani.org/xz/tests/files/good-0cat-empty.xz +0 -0
  346. data/vendor/git.tukaani.org/xz/tests/files/good-0catpad-empty.xz +0 -0
  347. data/vendor/git.tukaani.org/xz/tests/files/good-0pad-empty.xz +0 -0
  348. data/vendor/git.tukaani.org/xz/tests/files/good-1-3delta-lzma2.xz +0 -0
  349. data/vendor/git.tukaani.org/xz/tests/files/good-1-block_header-1.xz +0 -0
  350. data/vendor/git.tukaani.org/xz/tests/files/good-1-block_header-2.xz +0 -0
  351. data/vendor/git.tukaani.org/xz/tests/files/good-1-block_header-3.xz +0 -0
  352. data/vendor/git.tukaani.org/xz/tests/files/good-1-check-crc32.xz +0 -0
  353. data/vendor/git.tukaani.org/xz/tests/files/good-1-check-crc64.xz +0 -0
  354. data/vendor/git.tukaani.org/xz/tests/files/good-1-check-none.xz +0 -0
  355. data/vendor/git.tukaani.org/xz/tests/files/good-1-check-sha256.xz +0 -0
  356. data/vendor/git.tukaani.org/xz/tests/files/good-1-delta-lzma2.tiff.xz +0 -0
  357. data/vendor/git.tukaani.org/xz/tests/files/good-1-lzma2-1.xz +0 -0
  358. data/vendor/git.tukaani.org/xz/tests/files/good-1-lzma2-2.xz +0 -0
  359. data/vendor/git.tukaani.org/xz/tests/files/good-1-lzma2-3.xz +0 -0
  360. data/vendor/git.tukaani.org/xz/tests/files/good-1-lzma2-4.xz +0 -0
  361. data/vendor/git.tukaani.org/xz/tests/files/good-1-lzma2-5.xz +0 -0
  362. data/vendor/git.tukaani.org/xz/tests/files/good-1-sparc-lzma2.xz +0 -0
  363. data/vendor/git.tukaani.org/xz/tests/files/good-1-x86-lzma2.xz +0 -0
  364. data/vendor/git.tukaani.org/xz/tests/files/good-2-lzma2.xz +0 -0
  365. data/vendor/git.tukaani.org/xz/tests/files/unsupported-block_header.xz +0 -0
  366. data/vendor/git.tukaani.org/xz/tests/files/unsupported-check.xz +0 -0
  367. data/vendor/git.tukaani.org/xz/tests/files/unsupported-filter_flags-1.xz +0 -0
  368. data/vendor/git.tukaani.org/xz/tests/files/unsupported-filter_flags-2.xz +0 -0
  369. data/vendor/git.tukaani.org/xz/tests/files/unsupported-filter_flags-3.xz +0 -0
  370. data/vendor/git.tukaani.org/xz/tests/test_bcj_exact_size.c +113 -0
  371. data/vendor/git.tukaani.org/xz/tests/test_block_header.c +240 -0
  372. data/vendor/git.tukaani.org/xz/tests/test_check.c +83 -0
  373. data/vendor/git.tukaani.org/xz/tests/test_compress.sh +142 -0
  374. data/vendor/git.tukaani.org/xz/tests/test_files.sh +57 -0
  375. data/vendor/git.tukaani.org/xz/tests/test_filter_flags.c +258 -0
  376. data/vendor/git.tukaani.org/xz/tests/test_index.c +689 -0
  377. data/vendor/git.tukaani.org/xz/tests/test_scripts.sh +76 -0
  378. data/vendor/git.tukaani.org/xz/tests/test_stream_flags.c +180 -0
  379. data/vendor/git.tukaani.org/xz/tests/tests.h +124 -0
  380. data/vendor/git.tukaani.org/xz/tests/xzgrep_expected_output +39 -0
  381. data/vendor/git.tukaani.org/xz/windows/INSTALL-MSVC.txt +47 -0
  382. data/vendor/git.tukaani.org/xz/windows/INSTALL-MinGW.txt +138 -0
  383. data/vendor/git.tukaani.org/xz/windows/README-Windows.txt +122 -0
  384. data/vendor/git.tukaani.org/xz/windows/build.bash +203 -0
  385. data/vendor/git.tukaani.org/xz/windows/vs2013/config.h +148 -0
  386. data/vendor/git.tukaani.org/xz/windows/vs2013/liblzma.vcxproj +354 -0
  387. data/vendor/git.tukaani.org/xz/windows/vs2013/liblzma_dll.vcxproj +383 -0
  388. data/vendor/git.tukaani.org/xz/windows/vs2013/xz_win.sln +48 -0
  389. data/vendor/git.tukaani.org/xz/windows/vs2017/config.h +148 -0
  390. data/vendor/git.tukaani.org/xz/windows/vs2017/liblzma.vcxproj +355 -0
  391. data/vendor/git.tukaani.org/xz/windows/vs2017/liblzma_dll.vcxproj +384 -0
  392. data/vendor/git.tukaani.org/xz/windows/vs2017/xz_win.sln +48 -0
  393. metadata +457 -0
@@ -0,0 +1,124 @@
1
+
2
+ Thanks
3
+ ======
4
+
5
+ Some people have helped more, some less, but nevertheless everyone's help
6
+ has been important. :-) In alphabetical order:
7
+ - Mark Adler
8
+ - H. Peter Anvin
9
+ - Jeff Bastian
10
+ - Nelson H. F. Beebe
11
+ - Karl Berry
12
+ - Anders F. Björklund
13
+ - Emmanuel Blot
14
+ - Melanie Blower
15
+ - Martin Blumenstingl
16
+ - Ben Boeckel
17
+ - Jakub Bogusz
18
+ - Maarten Bosmans
19
+ - Trent W. Buck
20
+ - James Buren
21
+ - David Burklund
22
+ - Daniel Mealha Cabrita
23
+ - Milo Casagrande
24
+ - Marek Černocký
25
+ - Tomer Chachamu
26
+ - Gabi Davar
27
+ - Chris Donawa
28
+ - Andrew Dudman
29
+ - Markus Duft
30
+ - İsmail Dönmez
31
+ - Robert Elz
32
+ - Gilles Espinasse
33
+ - Denis Excoffier
34
+ - Michael Felt
35
+ - Michael Fox
36
+ - Mike Frysinger
37
+ - Daniel Richard G.
38
+ - Bill Glessner
39
+ - Jason Gorski
40
+ - Juan Manuel Guerrero
41
+ - Diederik de Haas
42
+ - Joachim Henke
43
+ - Christian Hesse
44
+ - Vincenzo Innocente
45
+ - Peter Ivanov
46
+ - Jouk Jansen
47
+ - Jun I Jin
48
+ - Per Øyvind Karlsen
49
+ - Thomas Klausner
50
+ - Richard Koch
51
+ - Ville Koskinen
52
+ - Jan Kratochvil
53
+ - Christian Kujau
54
+ - Stephan Kulow
55
+ - Peter Lawler
56
+ - James M Leddy
57
+ - Hin-Tak Leung
58
+ - Andraž 'ruskie' Levstik
59
+ - Cary Lewis
60
+ - Wim Lewis
61
+ - Eric Lindblad
62
+ - Lorenzo De Liso
63
+ - Bela Lubkin
64
+ - Gregory Margo
65
+ - Jim Meyering
66
+ - Arkadiusz Miskiewicz
67
+ - Conley Moorhous
68
+ - Rafał Mużyło
69
+ - Adrien Nader
70
+ - Evan Nemerson
71
+ - Hongbo Ni
72
+ - Jonathan Nieder
73
+ - Andre Noll
74
+ - Peter O'Gorman
75
+ - Peter Pallinger
76
+ - Rui Paulo
77
+ - Igor Pavlov
78
+ - Diego Elio Pettenò
79
+ - Elbert Pol
80
+ - Mikko Pouru
81
+ - Rich Prohaska
82
+ - Trần Ngọc Quân
83
+ - Pavel Raiskup
84
+ - Ole André Vadla Ravnås
85
+ - Robert Readman
86
+ - Bernhard Reutner-Fischer
87
+ - Eric S. Raymond
88
+ - Cristian Rodríguez
89
+ - Christian von Roques
90
+ - Torsten Rupp
91
+ - Jukka Salmi
92
+ - Alexandre Sauvé
93
+ - Benno Schulenberg
94
+ - Andreas Schwab
95
+ - Dan Shechter
96
+ - Stuart Shelton
97
+ - Sebastian Andrzej Siewior
98
+ - Brad Smith
99
+ - Pippijn van Steenhoven
100
+ - Jonathan Stott
101
+ - Dan Stromberg
102
+ - Vincent Torri
103
+ - Paul Townsend
104
+ - Mohammed Adnène Trojette
105
+ - Alexey Tourbin
106
+ - Patrick J. Volkerding
107
+ - Martin Väth
108
+ - Adam Walling
109
+ - Christian Weisgerber
110
+ - Bert Wesarg
111
+ - Fredrik Wikstrom
112
+ - Jim Wilcoxson
113
+ - Ralf Wildenhues
114
+ - Charles Wilson
115
+ - Lars Wirzenius
116
+ - Pilorz Wojciech
117
+ - Ryan Young
118
+ - Andreas Zieringer
119
+
120
+ Also thanks to all the people who have participated in the Tukaani project.
121
+
122
+ I have probably forgot to add some names to the above list. Sorry about
123
+ that and thanks for your help.
124
+
@@ -0,0 +1,111 @@
1
+
2
+ XZ Utils To-Do List
3
+ ===================
4
+
5
+ Known bugs
6
+ ----------
7
+
8
+ The test suite is too incomplete.
9
+
10
+ If the memory usage limit is less than about 13 MiB, xz is unable to
11
+ automatically scale down the compression settings enough even though
12
+ it would be possible by switching from BT2/BT3/BT4 match finder to
13
+ HC3/HC4.
14
+
15
+ XZ Utils compress some files significantly worse than LZMA Utils.
16
+ This is due to faster compression presets used by XZ Utils, and
17
+ can often be worked around by using "xz --extreme". With some files
18
+ --extreme isn't enough though: it's most likely with files that
19
+ compress extremely well, so going from compression ratio of 0.003
20
+ to 0.004 means big relative increase in the compressed file size.
21
+
22
+ xz doesn't quote unprintable characters when it displays file names
23
+ given on the command line.
24
+
25
+ tuklib_exit() doesn't block signals => EINTR is possible.
26
+
27
+ SIGTSTP is not handled. If xz is stopped, the estimated remaining
28
+ time and calculated (de)compression speed won't make sense in the
29
+ progress indicator (xz --verbose).
30
+
31
+ If liblzma has created threads and fork() gets called, liblzma
32
+ code will break in the child process unless it calls exec() and
33
+ doesn't touch liblzma.
34
+
35
+
36
+ Missing features
37
+ ----------------
38
+
39
+ Add support for storing metadata in .xz files. A preliminary
40
+ idea is to create a new Stream type for metadata. When both
41
+ metadata and data are wanted in the same .xz file, two or more
42
+ Streams would be concatenated.
43
+
44
+ The state stored in lzma_stream should be cloneable, which would
45
+ be mostly useful when using a preset dictionary in LZMA2, but
46
+ it may have other uses too. Compare to deflateCopy() in zlib.
47
+
48
+ Support LZMA_FINISH in raw decoder to indicate end of LZMA1 and
49
+ other streams that don't have an end of payload marker.
50
+
51
+ Adjust dictionary size when the input file size is known.
52
+ Maybe do this only if an option is given.
53
+
54
+ xz doesn't support copying extended attributes, access control
55
+ lists etc. from source to target file.
56
+
57
+ Multithreaded compression:
58
+ - Reduce memory usage of the current method.
59
+ - Implement threaded match finders.
60
+ - Implement pigz-style threading in LZMA2.
61
+
62
+ Multithreaded decompression
63
+
64
+ Buffer-to-buffer coding could use less RAM (especially when
65
+ decompressing LZMA1 or LZMA2).
66
+
67
+ I/O library is not implemented (similar to gzopen() in zlib).
68
+ It will be a separate library that supports uncompressed, .gz,
69
+ .bz2, .lzma, and .xz files.
70
+
71
+ Support changing lzma_options_lzma.mode with lzma_filters_update().
72
+
73
+ Support LZMA_FULL_FLUSH for lzma_stream_decoder() to stop at
74
+ Block and Stream boundaries.
75
+
76
+ lzma_strerror() to convert lzma_ret to human readable form?
77
+ This is tricky, because the same error codes are used with
78
+ slightly different meanings, and this cannot be fixed anymore.
79
+
80
+ Make it possible to adjust LZMA2 options in the middle of a Block
81
+ so that the encoding speed vs. compression ratio can be optimized
82
+ when the compressed data is streamed over network.
83
+
84
+ Improved BCJ filters. The current filters are small but they aren't
85
+ so great when compressing binary packages that contain various file
86
+ types. Specifically, they make things worse if there are static
87
+ libraries or Linux kernel modules. The filtering could also be
88
+ more effective (without getting overly complex), for example,
89
+ streamable variant BCJ2 from 7-Zip could be implemented.
90
+
91
+ Filter that autodetects specific data types in the input stream
92
+ and applies appropriate filters for the corrects parts of the input.
93
+ Perhaps combine this with the BCJ filter improvement point above.
94
+
95
+ Long-range LZ77 method as a separate filter or as a new LZMA2
96
+ match finder.
97
+
98
+
99
+ Documentation
100
+ -------------
101
+
102
+ More tutorial programs are needed for liblzma.
103
+
104
+ Document the LZMA1 and LZMA2 algorithms.
105
+
106
+
107
+ Miscellaneous
108
+ ------------
109
+
110
+ Try to get the media type for .xz registered at IANA.
111
+
@@ -0,0 +1,22 @@
1
+ #!/bin/sh
2
+
3
+ ###############################################################################
4
+ #
5
+ # Author: Lasse Collin
6
+ #
7
+ # This file has been put into the public domain.
8
+ # You can do whatever you want with this file.
9
+ #
10
+ ###############################################################################
11
+
12
+ # The result of using "autoreconf -fi" should be identical to using this
13
+ # script. I'm leaving this script here just in case someone finds it useful.
14
+
15
+ set -e -x
16
+
17
+ ${AUTOPOINT:-autopoint} -f
18
+ ${LIBTOOLIZE:-libtoolize} -c -f || glibtoolize -c -f
19
+ ${ACLOCAL:-aclocal} -I m4
20
+ ${AUTOCONF:-autoconf}
21
+ ${AUTOHEADER:-autoheader}
22
+ ${AUTOMAKE:-automake} -acf --foreign
@@ -0,0 +1,58 @@
1
+ #!/bin/sh
2
+ #
3
+ ###############################################################################
4
+ #
5
+ # Wrapper for GNU groff to convert man pages to a few formats
6
+ #
7
+ # Usage: manconv.sh FORMAT [PAPER_SIZE] < in.1 > out.suffix
8
+ #
9
+ # FORMAT can be ascii, utf8, ps, or pdf. PAPER_SIZE can be anything that
10
+ # groff accepts, e.g. a4 or letter. See groff_font(5). PAPER_SIZE defaults
11
+ # to a4 and is used only when FORMAT is ps (PostScript) or pdf.
12
+ #
13
+ # Multiple man pages can be given at once e.g. to create a single PDF file
14
+ # with continuous page numbering.
15
+ #
16
+ ###############################################################################
17
+ #
18
+ # Author: Lasse Collin
19
+ #
20
+ # This file has been put into the public domain.
21
+ # You can do whatever you want with this file.
22
+ #
23
+ ###############################################################################
24
+
25
+ FORMAT=$1
26
+ PAPER=${2-a4}
27
+
28
+ # Make PostScript and PDF output more readable:
29
+ # - Use 11 pt font instead of the default 10 pt.
30
+ # - Use larger paragraph spacing than the default 0.4v (man(7) only).
31
+ FONT=11
32
+ PD=0.8
33
+
34
+ SED_PD="
35
+ /^\\.TH /s/\$/\\
36
+ .PD $PD/
37
+ s/^\\.PD\$/.PD $PD/"
38
+
39
+ case $FORMAT in
40
+ ascii)
41
+ groff -t -mandoc -Tascii | col -bx
42
+ ;;
43
+ utf8)
44
+ groff -t -mandoc -Tutf8 | col -bx
45
+ ;;
46
+ ps)
47
+ sed "$SED_PD" | groff -dpaper=$PAPER -t -mandoc \
48
+ -rC1 -rS$FONT -Tps -P-p$PAPER
49
+ ;;
50
+ pdf)
51
+ sed "$SED_PD" | groff -dpaper=$PAPER -t -mandoc \
52
+ -rC1 -rS$FONT -Tps -P-p$PAPER | ps2pdf - -
53
+ ;;
54
+ *)
55
+ echo 'Invalid arguments' >&2
56
+ exit 1
57
+ ;;
58
+ esac
@@ -0,0 +1,24 @@
1
+ #!/bin/sh
2
+ #
3
+ #############################################################################
4
+ #
5
+ # Get the version string from version.h and print it out without
6
+ # trailing newline. This makes it suitable for use in configure.ac.
7
+ #
8
+ #############################################################################
9
+ #
10
+ # Author: Lasse Collin
11
+ #
12
+ # This file has been put into the public domain.
13
+ # You can do whatever you want with this file.
14
+ #
15
+ #############################################################################
16
+
17
+ sed -n 's/LZMA_VERSION_STABILITY_ALPHA/alpha/
18
+ s/LZMA_VERSION_STABILITY_BETA/beta/
19
+ s/LZMA_VERSION_STABILITY_STABLE//
20
+ s/^#define LZMA_VERSION_[MPS][AIT][AJNT][A-Z]* //p' \
21
+ src/liblzma/api/lzma/version.h \
22
+ | tr '\n' '|' \
23
+ | sed 's/|/./; s/|/./; s/|//g' \
24
+ | tr -d '\r\n'
@@ -0,0 +1,900 @@
1
+ # -*- Autoconf -*-
2
+ # Process this file with autoconf to produce a configure script.
3
+
4
+ ###############################################################################
5
+ #
6
+ # Author: Lasse Collin
7
+ #
8
+ # This file has been put into the public domain.
9
+ # You can do whatever you want with this file.
10
+ #
11
+ ###############################################################################
12
+
13
+ # NOTE: Don't add useless checks. autoscan detects this and that, but don't
14
+ # let it confuse you. For example, we don't care about checking for behavior
15
+ # of malloc(), stat(), or lstat(), since we don't use those functions in
16
+ # a way that would cause the problems the autoconf macros check.
17
+
18
+ AC_PREREQ([2.64])
19
+
20
+ AC_INIT([XZ Utils], m4_esyscmd([/bin/sh build-aux/version.sh]),
21
+ [lasse.collin@tukaani.org], [xz], [https://tukaani.org/xz/])
22
+ AC_CONFIG_SRCDIR([src/liblzma/common/common.h])
23
+ AC_CONFIG_AUX_DIR([build-aux])
24
+ AC_CONFIG_MACRO_DIR([m4])
25
+ AC_CONFIG_HEADER([config.h])
26
+
27
+ echo
28
+ echo "$PACKAGE_STRING"
29
+
30
+ echo
31
+ echo "System type:"
32
+ # This is needed to know if assembler optimizations can be used.
33
+ AC_CANONICAL_HOST
34
+
35
+ # We do some special things on Windows (32-bit or 64-bit) builds.
36
+ case $host_os in
37
+ mingw* | cygwin | msys) is_w32=yes ;;
38
+ *) is_w32=no ;;
39
+ esac
40
+ AM_CONDITIONAL([COND_W32], [test "$is_w32" = yes])
41
+
42
+ # We need to use $EXEEXT with $(LN_S) when creating symlinks to
43
+ # executables. Cygwin is an exception to this, since it is recommended
44
+ # that symlinks don't have the .exe suffix. To make this work, we
45
+ # define LN_EXEEXT.
46
+ #
47
+ # MSYS2 is treated the same way as Cygwin. It uses plain "msys" like
48
+ # the original MSYS when building MSYS/MSYS2-binaries. Hopefully this
49
+ # doesn't break things for the original MSYS developers. Note that this
50
+ # doesn't affect normal MSYS/MSYS2 users building non-MSYS/MSYS2 binaries
51
+ # since in that case the $host_os is usually mingw32.
52
+ case $host_os in
53
+ cygwin | msys) LN_EXEEXT= ;;
54
+ *) LN_EXEEXT='$(EXEEXT)' ;;
55
+ esac
56
+ AC_SUBST([LN_EXEEXT])
57
+
58
+ echo
59
+ echo "Configure options:"
60
+ AM_CFLAGS=
61
+
62
+
63
+ #############
64
+ # Debugging #
65
+ #############
66
+
67
+ AC_MSG_CHECKING([if debugging code should be compiled])
68
+ AC_ARG_ENABLE([debug], AS_HELP_STRING([--enable-debug], [Enable debugging code.]),
69
+ [], enable_debug=no)
70
+ if test "x$enable_debug" = xyes; then
71
+ AC_MSG_RESULT([yes])
72
+ else
73
+ AC_DEFINE([NDEBUG], [1], [Define to 1 to disable debugging code.])
74
+ AC_MSG_RESULT([no])
75
+ fi
76
+
77
+
78
+ ###########
79
+ # Filters #
80
+ ###########
81
+
82
+ m4_define([SUPPORTED_FILTERS], [lzma1,lzma2,delta,x86,powerpc,ia64,arm,armthumb,sparc])dnl
83
+ m4_define([SIMPLE_FILTERS], [x86,powerpc,ia64,arm,armthumb,sparc])
84
+ m4_define([LZ_FILTERS], [lzma1,lzma2])
85
+
86
+ m4_foreach([NAME], [SUPPORTED_FILTERS],
87
+ [enable_filter_[]NAME=no
88
+ enable_encoder_[]NAME=no
89
+ enable_decoder_[]NAME=no
90
+ ])dnl
91
+
92
+ AC_MSG_CHECKING([which encoders to build])
93
+ AC_ARG_ENABLE([encoders], AS_HELP_STRING([--enable-encoders=LIST],
94
+ [Comma-separated list of encoders to build. Default=all.
95
+ Available encoders:]
96
+ m4_translit(m4_defn([SUPPORTED_FILTERS]), [,], [ ])),
97
+ [], [enable_encoders=SUPPORTED_FILTERS])
98
+ enable_encoders=`echo "$enable_encoders" | sed 's/,/ /g'`
99
+ if test "x$enable_encoders" = xno || test "x$enable_encoders" = x; then
100
+ enable_encoders=no
101
+ AC_MSG_RESULT([(none)])
102
+ else
103
+ for arg in $enable_encoders
104
+ do
105
+ case $arg in m4_foreach([NAME], [SUPPORTED_FILTERS], [
106
+ NAME)
107
+ enable_filter_[]NAME=yes
108
+ enable_encoder_[]NAME=yes
109
+ AC_DEFINE(HAVE_ENCODER_[]m4_toupper(NAME), [1],
110
+ [Define to 1 if] NAME [encoder is enabled.])
111
+ ;;])
112
+ *)
113
+ AC_MSG_RESULT([])
114
+ AC_MSG_ERROR([unknown filter: $arg])
115
+ ;;
116
+ esac
117
+ done
118
+ AC_DEFINE([HAVE_ENCODERS], [1],
119
+ [Define to 1 if any of HAVE_ENCODER_foo have been defined.])
120
+ AC_MSG_RESULT([$enable_encoders])
121
+ fi
122
+
123
+ AC_MSG_CHECKING([which decoders to build])
124
+ AC_ARG_ENABLE([decoders], AS_HELP_STRING([--enable-decoders=LIST],
125
+ [Comma-separated list of decoders to build. Default=all.
126
+ Available decoders are the same as available encoders.]),
127
+ [], [enable_decoders=SUPPORTED_FILTERS])
128
+ enable_decoders=`echo "$enable_decoders" | sed 's/,/ /g'`
129
+ if test "x$enable_decoders" = xno || test "x$enable_decoders" = x; then
130
+ enable_decoders=no
131
+ AC_MSG_RESULT([(none)])
132
+ else
133
+ for arg in $enable_decoders
134
+ do
135
+ case $arg in m4_foreach([NAME], [SUPPORTED_FILTERS], [
136
+ NAME)
137
+ enable_filter_[]NAME=yes
138
+ enable_decoder_[]NAME=yes
139
+ AC_DEFINE(HAVE_DECODER_[]m4_toupper(NAME), [1],
140
+ [Define to 1 if] NAME [decoder is enabled.])
141
+ ;;])
142
+ *)
143
+ AC_MSG_RESULT([])
144
+ AC_MSG_ERROR([unknown filter: $arg])
145
+ ;;
146
+ esac
147
+ done
148
+ AC_DEFINE([HAVE_DECODERS], [1],
149
+ [Define to 1 if any of HAVE_DECODER_foo have been defined.])
150
+ AC_MSG_RESULT([$enable_decoders])
151
+ fi
152
+
153
+ if test "x$enable_encoder_lzma2$enable_encoder_lzma1" = xyesno \
154
+ || test "x$enable_decoder_lzma2$enable_decoder_lzma1" = xyesno; then
155
+ AC_MSG_ERROR([LZMA2 requires that LZMA1 is also enabled.])
156
+ fi
157
+
158
+ AM_CONDITIONAL(COND_MAIN_ENCODER, test "x$enable_encoders" != xno)
159
+ AM_CONDITIONAL(COND_MAIN_DECODER, test "x$enable_decoders" != xno)
160
+
161
+ m4_foreach([NAME], [SUPPORTED_FILTERS],
162
+ [AM_CONDITIONAL(COND_FILTER_[]m4_toupper(NAME), test "x$enable_filter_[]NAME" = xyes)
163
+ AM_CONDITIONAL(COND_ENCODER_[]m4_toupper(NAME), test "x$enable_encoder_[]NAME" = xyes)
164
+ AM_CONDITIONAL(COND_DECODER_[]m4_toupper(NAME), test "x$enable_decoder_[]NAME" = xyes)
165
+ ])dnl
166
+
167
+ # The so called "simple filters" share common code.
168
+ enable_filter_simple=no
169
+ enable_encoder_simple=no
170
+ enable_decoder_simple=no
171
+ m4_foreach([NAME], [SIMPLE_FILTERS],
172
+ [test "x$enable_filter_[]NAME" = xyes && enable_filter_simple=yes
173
+ test "x$enable_encoder_[]NAME" = xyes && enable_encoder_simple=yes
174
+ test "x$enable_decoder_[]NAME" = xyes && enable_decoder_simple=yes
175
+ ])dnl
176
+ AM_CONDITIONAL(COND_FILTER_SIMPLE, test "x$enable_filter_simple" = xyes)
177
+ AM_CONDITIONAL(COND_ENCODER_SIMPLE, test "x$enable_encoder_simple" = xyes)
178
+ AM_CONDITIONAL(COND_DECODER_SIMPLE, test "x$enable_decoder_simple" = xyes)
179
+
180
+ # LZ-based filters share common code.
181
+ enable_filter_lz=no
182
+ enable_encoder_lz=no
183
+ enable_decoder_lz=no
184
+ m4_foreach([NAME], [LZ_FILTERS],
185
+ [test "x$enable_filter_[]NAME" = xyes && enable_filter_lz=yes
186
+ test "x$enable_encoder_[]NAME" = xyes && enable_encoder_lz=yes
187
+ test "x$enable_decoder_[]NAME" = xyes && enable_decoder_lz=yes
188
+ ])dnl
189
+ AM_CONDITIONAL(COND_FILTER_LZ, test "x$enable_filter_lz" = xyes)
190
+ AM_CONDITIONAL(COND_ENCODER_LZ, test "x$enable_encoder_lz" = xyes)
191
+ AM_CONDITIONAL(COND_DECODER_LZ, test "x$enable_decoder_lz" = xyes)
192
+
193
+
194
+ #################
195
+ # Match finders #
196
+ #################
197
+
198
+ m4_define([SUPPORTED_MATCH_FINDERS], [hc3,hc4,bt2,bt3,bt4])
199
+
200
+ m4_foreach([NAME], [SUPPORTED_MATCH_FINDERS],
201
+ [enable_match_finder_[]NAME=no
202
+ ])
203
+
204
+ AC_MSG_CHECKING([which match finders to build])
205
+ AC_ARG_ENABLE([match-finders], AS_HELP_STRING([--enable-match-finders=LIST],
206
+ [Comma-separated list of match finders to build. Default=all.
207
+ At least one match finder is required for encoding with
208
+ the LZMA1 and LZMA2 filters. Available match finders:]
209
+ m4_translit(m4_defn([SUPPORTED_MATCH_FINDERS]), [,], [ ])), [],
210
+ [enable_match_finders=SUPPORTED_MATCH_FINDERS])
211
+ enable_match_finders=`echo "$enable_match_finders" | sed 's/,/ /g'`
212
+ if test "x$enable_encoder_lz" = xyes ; then
213
+ for arg in $enable_match_finders
214
+ do
215
+ case $arg in m4_foreach([NAME], [SUPPORTED_MATCH_FINDERS], [
216
+ NAME)
217
+ enable_match_finder_[]NAME=yes
218
+ AC_DEFINE(HAVE_MF_[]m4_toupper(NAME), [1],
219
+ [Define to 1 to enable] NAME [match finder.])
220
+ ;;])
221
+ *)
222
+ AC_MSG_RESULT([])
223
+ AC_MSG_ERROR([unknown match finder: $arg])
224
+ ;;
225
+ esac
226
+ done
227
+ AC_MSG_RESULT([$enable_match_finders])
228
+ else
229
+ AC_MSG_RESULT([(none because not building any LZ-based encoder)])
230
+ fi
231
+
232
+
233
+ ####################
234
+ # Integrity checks #
235
+ ####################
236
+
237
+ m4_define([SUPPORTED_CHECKS], [crc32,crc64,sha256])
238
+
239
+ m4_foreach([NAME], [SUPPORTED_CHECKS],
240
+ [enable_check_[]NAME=no
241
+ ])dnl
242
+
243
+ AC_MSG_CHECKING([which integrity checks to build])
244
+ AC_ARG_ENABLE([checks], AS_HELP_STRING([--enable-checks=LIST],
245
+ [Comma-separated list of integrity checks to build.
246
+ Default=all. Available integrity checks:]
247
+ m4_translit(m4_defn([SUPPORTED_CHECKS]), [,], [ ])),
248
+ [], [enable_checks=SUPPORTED_CHECKS])
249
+ enable_checks=`echo "$enable_checks" | sed 's/,/ /g'`
250
+ if test "x$enable_checks" = xno || test "x$enable_checks" = x; then
251
+ AC_MSG_RESULT([(none)])
252
+ else
253
+ for arg in $enable_checks
254
+ do
255
+ case $arg in m4_foreach([NAME], [SUPPORTED_CHECKS], [
256
+ NAME)
257
+ enable_check_[]NAME=yes
258
+ AC_DEFINE(HAVE_CHECK_[]m4_toupper(NAME), [1],
259
+ [Define to 1 if] NAME
260
+ [integrity check is enabled.])
261
+ ;;])
262
+ *)
263
+ AC_MSG_RESULT([])
264
+ AC_MSG_ERROR([unknown integrity check: $arg])
265
+ ;;
266
+ esac
267
+ done
268
+ AC_MSG_RESULT([$enable_checks])
269
+ fi
270
+ if test "x$enable_check_crc32" = xno ; then
271
+ AC_MSG_ERROR([For now, the CRC32 check must always be enabled.])
272
+ fi
273
+
274
+ m4_foreach([NAME], [SUPPORTED_CHECKS],
275
+ [AM_CONDITIONAL(COND_CHECK_[]m4_toupper(NAME), test "x$enable_check_[]NAME" = xyes)
276
+ ])dnl
277
+
278
+ AC_MSG_CHECKING([if external SHA-256 should be used])
279
+ AC_ARG_ENABLE([external-sha256], AS_HELP_STRING([--enable-external-sha256],
280
+ [Use SHA-256 code from the operating system.
281
+ See INSTALL for possible subtle problems.]),
282
+ [], [enable_external_sha256=no])
283
+ if test "x$enable_check_sha256" != "xyes"; then
284
+ enable_external_sha256=no
285
+ fi
286
+ if test "x$enable_external_sha256" = xyes; then
287
+ AC_MSG_RESULT([yes])
288
+ else
289
+ AC_MSG_RESULT([no])
290
+ fi
291
+
292
+
293
+ ###########################
294
+ # Assembler optimizations #
295
+ ###########################
296
+
297
+ AC_MSG_CHECKING([if assembler optimizations should be used])
298
+ AC_ARG_ENABLE([assembler], AS_HELP_STRING([--disable-assembler],
299
+ [Do not use assembler optimizations even if such exist
300
+ for the architecture.]),
301
+ [], [enable_assembler=yes])
302
+ if test "x$enable_assembler" = xyes; then
303
+ enable_assembler=no
304
+ case $host_os in
305
+ # Darwin should work too but only if not creating universal
306
+ # binaries. Solaris x86 could work too but I cannot test.
307
+ linux* | *bsd* | mingw* | cygwin | msys | *djgpp*)
308
+ case $host_cpu in
309
+ i?86) enable_assembler=x86 ;;
310
+ x86_64) enable_assembler=x86_64 ;;
311
+ esac
312
+ ;;
313
+ esac
314
+ fi
315
+ case $enable_assembler in
316
+ x86 | x86_64 | no)
317
+ AC_MSG_RESULT([$enable_assembler])
318
+ ;;
319
+ *)
320
+ AC_MSG_RESULT([])
321
+ AC_MSG_ERROR([--enable-assembler accepts only `yes', `no', `x86', or `x86_64'.])
322
+ ;;
323
+ esac
324
+ AM_CONDITIONAL(COND_ASM_X86, test "x$enable_assembler" = xx86)
325
+ AM_CONDITIONAL(COND_ASM_X86_64, test "x$enable_assembler" = xx86_64)
326
+
327
+
328
+ #####################
329
+ # Size optimization #
330
+ #####################
331
+
332
+ AC_MSG_CHECKING([if small size is preferred over speed])
333
+ AC_ARG_ENABLE([small], AS_HELP_STRING([--enable-small],
334
+ [Make liblzma smaller and a little slower.
335
+ This is disabled by default to optimize for speed.]),
336
+ [], [enable_small=no])
337
+ if test "x$enable_small" = xyes; then
338
+ AC_DEFINE([HAVE_SMALL], [1], [Define to 1 if optimizing for size.])
339
+ elif test "x$enable_small" != xno; then
340
+ AC_MSG_RESULT([])
341
+ AC_MSG_ERROR([--enable-small accepts only `yes' or `no'])
342
+ fi
343
+ AC_MSG_RESULT([$enable_small])
344
+ AM_CONDITIONAL(COND_SMALL, test "x$enable_small" = xyes)
345
+
346
+
347
+ #############
348
+ # Threading #
349
+ #############
350
+
351
+ AC_MSG_CHECKING([if threading support is wanted])
352
+ AC_ARG_ENABLE([threads], AS_HELP_STRING([--enable-threads=METHOD],
353
+ [Supported METHODS are `yes', `no', `posix', `win95', and
354
+ `vista'. The default is `yes'. Using `no' together with
355
+ --enable-small makes liblzma thread unsafe.]),
356
+ [], [enable_threads=yes])
357
+
358
+ if test "x$enable_threads" = xyes; then
359
+ case $host_os in
360
+ mingw*)
361
+ case $host_cpu in
362
+ i?86) enable_threads=win95 ;;
363
+ *) enable_threads=vista ;;
364
+ esac
365
+ ;;
366
+ *)
367
+ enable_threads=posix
368
+ ;;
369
+ esac
370
+ fi
371
+
372
+ case $enable_threads in
373
+ posix | win95 | vista)
374
+ AC_MSG_RESULT([yes, $enable_threads])
375
+ ;;
376
+ no)
377
+ AC_MSG_RESULT([no])
378
+ ;;
379
+ *)
380
+ AC_MSG_RESULT([])
381
+ AC_MSG_ERROR([--enable-threads only accepts `yes', `no', `posix', `win95', or `vista'])
382
+ ;;
383
+ esac
384
+
385
+ # The Win95 threading lacks thread-safe one-time initialization function.
386
+ # It's better to disallow it instead of allowing threaded but thread-unsafe
387
+ # build.
388
+ if test "x$enable_small$enable_threads" = xyeswin95; then
389
+ AC_MSG_ERROR([--enable-threads=win95 and --enable-small cannot be
390
+ used at the same time])
391
+ fi
392
+
393
+ # We use the actual result a little later.
394
+
395
+
396
+ #########################
397
+ # Assumed amount of RAM #
398
+ #########################
399
+
400
+ # We use 128 MiB as default, because it will allow decompressing files
401
+ # created with "xz -9". It would be slightly safer to guess a lower value,
402
+ # but most systems, on which we don't have any way to determine the amount
403
+ # of RAM, will probably have at least 128 MiB of RAM.
404
+ AC_MSG_CHECKING([how much RAM to assume if the real amount is unknown])
405
+ AC_ARG_ENABLE([assume-ram], AS_HELP_STRING([--enable-assume-ram=SIZE],
406
+ [If and only if the real amount of RAM cannot be determined,
407
+ assume SIZE MiB. The default is 128 MiB. This affects the
408
+ default memory usage limit.]),
409
+ [], [enable_assume_ram=128])
410
+ assume_ram_check=`echo "$enable_assume_ram" | tr -d 0123456789`
411
+ if test -z "$enable_assume_ram" || test -n "$assume_ram_check"; then
412
+ AC_MSG_RESULT([])
413
+ AC_MSG_ERROR([--enable-assume-ram accepts only an integer argument])
414
+ fi
415
+ AC_MSG_RESULT([$enable_assume_ram MiB])
416
+ AC_DEFINE_UNQUOTED([ASSUME_RAM], [$enable_assume_ram],
417
+ [How many MiB of RAM to assume if the real amount cannot
418
+ be determined.])
419
+
420
+
421
+ #########################
422
+ # Components to install #
423
+ #########################
424
+
425
+ AC_ARG_ENABLE([xz], [AS_HELP_STRING([--disable-xz],
426
+ [do not build the xz tool])],
427
+ [], [enable_xz=yes])
428
+ AM_CONDITIONAL([COND_XZ], [test x$enable_xz != xno])
429
+
430
+ AC_ARG_ENABLE([xzdec], [AS_HELP_STRING([--disable-xzdec],
431
+ [do not build xzdec])],
432
+ [], [enable_xzdec=yes])
433
+ test "x$enable_decoders" = xno && enable_xzdec=no
434
+ AM_CONDITIONAL([COND_XZDEC], [test x$enable_xzdec != xno])
435
+
436
+ AC_ARG_ENABLE([lzmadec], [AS_HELP_STRING([--disable-lzmadec],
437
+ [do not build lzmadec
438
+ (it exists primarily for LZMA Utils compatibility)])],
439
+ [], [enable_lzmadec=yes])
440
+ test "x$enable_decoder_lzma1" = xno && enable_lzmadec=no
441
+ AM_CONDITIONAL([COND_LZMADEC], [test x$enable_lzmadec != xno])
442
+
443
+ AC_ARG_ENABLE([lzmainfo], [AS_HELP_STRING([--disable-lzmainfo],
444
+ [do not build lzmainfo
445
+ (it exists primarily for LZMA Utils compatibility)])],
446
+ [], [enable_lzmainfo=yes])
447
+ test "x$enable_decoder_lzma1" = xno && enable_lzmainfo=no
448
+ AM_CONDITIONAL([COND_LZMAINFO], [test x$enable_lzmainfo != xno])
449
+
450
+ AC_ARG_ENABLE([lzma-links], [AS_HELP_STRING([--disable-lzma-links],
451
+ [do not create symlinks for LZMA Utils compatibility])],
452
+ [], [enable_lzma_links=yes])
453
+ AM_CONDITIONAL([COND_LZMALINKS], [test x$enable_lzma_links != xno])
454
+
455
+ AC_ARG_ENABLE([scripts], [AS_HELP_STRING([--disable-scripts],
456
+ [do not install the scripts xzdiff, xzgrep, xzless, xzmore,
457
+ and their symlinks])],
458
+ [], [enable_scripts=yes])
459
+ AM_CONDITIONAL([COND_SCRIPTS], [test x$enable_scripts != xno])
460
+
461
+ AC_ARG_ENABLE([doc], [AS_HELP_STRING([--disable-doc],
462
+ [do not install documentation files to docdir
463
+ (man pages will still be installed)])],
464
+ [], [enable_doc=yes])
465
+ AM_CONDITIONAL([COND_DOC], [test x$enable_doc != xno])
466
+
467
+
468
+ #####################
469
+ # Symbol versioning #
470
+ #####################
471
+
472
+ AC_MSG_CHECKING([if library symbol versioning should be used])
473
+ AC_ARG_ENABLE([symbol-versions], [AS_HELP_STRING([--enable-symbol-versions],
474
+ [Use symbol versioning for liblzma. Enabled by default on
475
+ GNU/Linux, other GNU-based systems, and FreeBSD.])],
476
+ [], [enable_symbol_versions=auto])
477
+ if test "x$enable_symbol_versions" = xauto; then
478
+ case $host_os in
479
+ # NOTE: Even if one omits -gnu on GNU/Linux (e.g.
480
+ # i486-slackware-linux), configure will (via config.sub)
481
+ # append -gnu (e.g. i486-slackware-linux-gnu), and this
482
+ # test will work correctly.
483
+ gnu* | *-gnu* | freebsd*)
484
+ enable_symbol_versions=yes
485
+ ;;
486
+ *)
487
+ enable_symbol_versions=no
488
+ ;;
489
+ esac
490
+ fi
491
+ AC_MSG_RESULT([$enable_symbol_versions])
492
+ AM_CONDITIONAL([COND_SYMVERS], [test "x$enable_symbol_versions" = xyes])
493
+
494
+
495
+ ##############
496
+ # Sandboxing #
497
+ ##############
498
+
499
+ AC_MSG_CHECKING([if sandboxing should be used])
500
+ AC_ARG_ENABLE([sandbox], [AS_HELP_STRING([--enable-sandbox=METHOD],
501
+ [This is an experimental feature.
502
+ Sandboxing METHOD can be `auto', `no', or `capsicum'.
503
+ The default is `no'.])],
504
+ [], [enable_sandbox=no])
505
+ case $enable_sandbox in
506
+ auto)
507
+ AC_MSG_RESULT([maybe (autodetect)])
508
+ ;;
509
+ no | capsicum)
510
+ AC_MSG_RESULT([$enable_sandbox])
511
+ ;;
512
+ *)
513
+ AC_MSG_RESULT([])
514
+ AC_MSG_ERROR([--enable-sandbox only accepts `auto', `no', or `capsicum'.])
515
+ ;;
516
+ esac
517
+
518
+
519
+ ###############################################################################
520
+ # Checks for programs.
521
+ ###############################################################################
522
+
523
+ echo
524
+ gl_POSIX_SHELL
525
+ if test -z "$POSIX_SHELL" && test "x$enable_scripts" = xyes ; then
526
+ AC_MSG_ERROR([No POSIX conforming shell (sh) was found.])
527
+ fi
528
+
529
+ echo
530
+ echo "Initializing Automake:"
531
+
532
+ # We don't use "subdir-objects" yet because it breaks "make distclean" when
533
+ # dependencies are enabled (as of Automake 1.14.1) due to this bug:
534
+ # http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17354
535
+ # The -Wno-unsupported is used to silence warnings about missing
536
+ # "subdir-objects".
537
+ AM_INIT_AUTOMAKE([1.12 foreign tar-v7 filename-length-max=99 serial-tests -Wno-unsupported])
538
+ AC_PROG_LN_S
539
+
540
+ AC_PROG_CC_C99
541
+ if test x$ac_cv_prog_cc_c99 = xno ; then
542
+ AC_MSG_ERROR([No C99 compiler was found.])
543
+ fi
544
+
545
+ AM_PROG_CC_C_O
546
+ AM_PROG_AS
547
+ AC_USE_SYSTEM_EXTENSIONS
548
+
549
+ case $enable_threads in
550
+ posix)
551
+ echo
552
+ echo "POSIX threading support:"
553
+ AX_PTHREAD([:]) dnl We don't need the HAVE_PTHREAD macro.
554
+ LIBS="$LIBS $PTHREAD_LIBS"
555
+ AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS"
556
+
557
+ dnl NOTE: PTHREAD_CC is ignored. It would be useful on AIX,
558
+ dnl but it's tricky to get it right together with
559
+ dnl AC_PROG_CC_C99. Thus, this is handled by telling the
560
+ dnl user in INSTALL to set the correct CC manually.
561
+
562
+ AC_DEFINE([MYTHREAD_POSIX], [1],
563
+ [Define to 1 when using POSIX threads (pthreads).])
564
+
565
+ # These are nice to have but not mandatory.
566
+ #
567
+ # FIXME: xz uses clock_gettime if it is available and can do
568
+ # it even when threading is disabled. Moving this outside
569
+ # of pthread detection may be undesirable because then
570
+ # liblzma may get linked against librt even when librt isn't
571
+ # needed by liblzma.
572
+ OLD_CFLAGS=$CFLAGS
573
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
574
+ AC_SEARCH_LIBS([clock_gettime], [rt])
575
+ AC_CHECK_FUNCS([clock_gettime pthread_condattr_setclock])
576
+ AC_CHECK_DECLS([CLOCK_MONOTONIC], [], [], [[#include <time.h>]])
577
+ CFLAGS=$OLD_CFLAGS
578
+ ;;
579
+ win95)
580
+ AC_DEFINE([MYTHREAD_WIN95], [1], [Define to 1 when using
581
+ Windows 95 (and thus XP) compatible threads.
582
+ This avoids use of features that were added in
583
+ Windows Vista.])
584
+ ;;
585
+ vista)
586
+ AC_DEFINE([MYTHREAD_VISTA], [1], [Define to 1 when using
587
+ Windows Vista compatible threads. This uses
588
+ features that are not available on Windows XP.])
589
+ ;;
590
+ esac
591
+ AM_CONDITIONAL([COND_THREADS], [test "x$enable_threads" != xno])
592
+
593
+ echo
594
+ echo "Initializing Libtool:"
595
+ LT_PREREQ([2.2])
596
+ LT_INIT([win32-dll])
597
+ LT_LANG([Windows Resource])
598
+
599
+ # This is a bit wrong since it is possible to request that only some libs
600
+ # are built as shared. Using that feature isn't so common though, and this
601
+ # breaks only on Windows (at least for now) if the user enables only some
602
+ # libs as shared.
603
+ AM_CONDITIONAL([COND_SHARED], [test "x$enable_shared" != xno])
604
+
605
+
606
+ ###############################################################################
607
+ # Checks for libraries.
608
+ ###############################################################################
609
+
610
+ echo
611
+ echo "Initializing gettext:"
612
+ AM_GNU_GETTEXT_VERSION([0.19])
613
+ AM_GNU_GETTEXT([external])
614
+
615
+
616
+ ###############################################################################
617
+ # Checks for header files.
618
+ ###############################################################################
619
+
620
+ echo
621
+ echo "System headers and functions:"
622
+
623
+ # There is currently no workarounds in this package if some of
624
+ # these headers are missing.
625
+ AC_CHECK_HEADERS([fcntl.h limits.h sys/time.h],
626
+ [],
627
+ [AC_MSG_ERROR([Required header file(s) are missing.])])
628
+
629
+ # This allows the use of the intrinsic functions if they are available.
630
+ AC_CHECK_HEADERS([immintrin.h])
631
+
632
+
633
+ ###############################################################################
634
+ # Checks for typedefs, structures, and compiler characteristics.
635
+ ###############################################################################
636
+
637
+ dnl We don't need these as long as we need a C99 compiler anyway.
638
+ dnl AC_C_INLINE
639
+ dnl AC_C_RESTRICT
640
+
641
+ AC_HEADER_STDBOOL
642
+
643
+ AC_TYPE_UINT8_T
644
+ AC_TYPE_UINT16_T
645
+ AC_TYPE_INT32_T
646
+ AC_TYPE_UINT32_T
647
+ AC_TYPE_INT64_T
648
+ AC_TYPE_UINT64_T
649
+ AC_TYPE_UINTPTR_T
650
+
651
+ AC_CHECK_SIZEOF([size_t])
652
+
653
+ # The command line tool can copy high resolution timestamps if such
654
+ # information is available in struct stat. Otherwise one second accuracy
655
+ # is used.
656
+ AC_CHECK_MEMBERS([
657
+ struct stat.st_atim.tv_nsec,
658
+ struct stat.st_atimespec.tv_nsec,
659
+ struct stat.st_atimensec,
660
+ struct stat.st_uatime,
661
+ struct stat.st_atim.st__tim.tv_nsec])
662
+
663
+ AC_SYS_LARGEFILE
664
+ AC_C_BIGENDIAN
665
+
666
+
667
+ ###############################################################################
668
+ # Checks for library functions.
669
+ ###############################################################################
670
+
671
+ # Gnulib replacements as needed
672
+ gl_GETOPT
673
+
674
+ # Find the best function to set timestamps.
675
+ AC_CHECK_FUNCS([futimens futimes futimesat utimes _futime utime], [break])
676
+
677
+ # This is nice to have but not mandatory.
678
+ AC_CHECK_FUNCS([posix_fadvise])
679
+
680
+ TUKLIB_PROGNAME
681
+ TUKLIB_INTEGER
682
+ TUKLIB_PHYSMEM
683
+ TUKLIB_CPUCORES
684
+ TUKLIB_MBSTR
685
+
686
+ # If requsted, check for system-provided SHA-256. At least the following
687
+ # implementations are supported:
688
+ #
689
+ # OS Headers Library Type Function
690
+ # FreeBSD sys/types.h + sha256.h libmd SHA256_CTX SHA256_Init
691
+ # NetBSD sys/types.h + sha2.h SHA256_CTX SHA256_Init
692
+ # OpenBSD sys/types.h + sha2.h SHA2_CTX SHA256Init
693
+ # Solaris sys/types.h + sha2.h libmd SHA256_CTX SHA256Init
694
+ # MINIX 3 sys/types.h + sha2.h SHA256_CTX SHA256_Init
695
+ # Darwin CommonCrypto/CommonDigest.h CC_SHA256_CTX CC_SHA256_Init
696
+ #
697
+ # Note that Darwin's CC_SHA256_Update takes buffer size as uint32_t instead
698
+ # of size_t.
699
+ #
700
+ sha256_header_found=no
701
+ sha256_type_found=no
702
+ sha256_func_found=no
703
+ if test "x$enable_external_sha256" = "xyes"; then
704
+ # Test for Common Crypto before others, because Darwin has sha256.h
705
+ # too and we don't want to use that, because on older versions it
706
+ # uses OpenSSL functions, whose SHA256_Init is not guaranteed to
707
+ # succeed.
708
+ AC_CHECK_HEADERS(
709
+ [CommonCrypto/CommonDigest.h sha256.h sha2.h],
710
+ [sha256_header_found=yes ; break])
711
+ if test "x$sha256_header_found" = xyes; then
712
+ AC_CHECK_TYPES([CC_SHA256_CTX, SHA256_CTX, SHA2_CTX],
713
+ [sha256_type_found=yes], [],
714
+ [[#ifdef HAVE_SYS_TYPES_H
715
+ # include <sys/types.h>
716
+ #endif
717
+ #ifdef HAVE_COMMONCRYPTO_COMMONDIGEST_H
718
+ # include <CommonCrypto/CommonDigest.h>
719
+ #endif
720
+ #ifdef HAVE_SHA256_H
721
+ # include <sha256.h>
722
+ #endif
723
+ #ifdef HAVE_SHA2_H
724
+ # include <sha2.h>
725
+ #endif]])
726
+ if test "x$sha256_type_found" = xyes ; then
727
+ AC_SEARCH_LIBS([SHA256Init], [md])
728
+ AC_SEARCH_LIBS([SHA256_Init], [md])
729
+ AC_CHECK_FUNCS([CC_SHA256_Init SHA256Init SHA256_Init],
730
+ [sha256_func_found=yes ; break])
731
+ fi
732
+ fi
733
+ fi
734
+ AM_CONDITIONAL([COND_INTERNAL_SHA256], [test "x$sha256_func_found" = xno])
735
+ if test "x$enable_external_sha256$sha256_func_found" = xyesno; then
736
+ AC_MSG_ERROR([--enable-external-sha256 was specified but no supported external SHA-256 implementation was found])
737
+ fi
738
+
739
+ # Check for SSE2 intrinsics.
740
+ AC_CHECK_DECL([_mm_movemask_epi8],
741
+ [AC_DEFINE([HAVE__MM_MOVEMASK_EPI8], [1],
742
+ [Define to 1 if _mm_movemask_epi8 is available.])],
743
+ [],
744
+ [#ifdef HAVE_IMMINTRIN_H
745
+ #include <immintrin.h>
746
+ #endif])
747
+
748
+ # Check for sandbox support. If one is found, set enable_sandbox=found.
749
+ case $enable_sandbox in
750
+ auto | capsicum)
751
+ AX_CHECK_CAPSICUM([enable_sandbox=found], [:])
752
+ ;;
753
+ esac
754
+
755
+ # If a specific sandboxing method was explicitly requested and it wasn't
756
+ # found, give an error.
757
+ case $enable_sandbox in
758
+ auto | no | found)
759
+ ;;
760
+ *)
761
+ AC_MSG_ERROR([$enable_sandbox support not found])
762
+ ;;
763
+ esac
764
+
765
+
766
+ ###############################################################################
767
+ # If using GCC, set some additional AM_CFLAGS:
768
+ ###############################################################################
769
+
770
+ if test "$GCC" = yes ; then
771
+ echo
772
+ echo "GCC extensions:"
773
+ fi
774
+
775
+ # Always do the visibility check but don't set AM_CFLAGS on Windows.
776
+ # This way things get set properly even on Windows.
777
+ gl_VISIBILITY
778
+ if test -n "$CFLAG_VISIBILITY" && test "$is_w32" = no; then
779
+ AM_CFLAGS="$AM_CFLAGS $CFLAG_VISIBILITY"
780
+ fi
781
+
782
+ if test "$GCC" = yes ; then
783
+ # Enable as much warnings as possible. These commented warnings won't
784
+ # work for this package though:
785
+ # * -Wunreachable-code breaks several assert(0) cases, which are
786
+ # backed up with "return LZMA_PROG_ERROR".
787
+ # * -Wcast-qual would break various things where we need a non-const
788
+ # pointer although we don't modify anything through it.
789
+ # * -Wcast-align breaks optimized CRC32 and CRC64 implementation
790
+ # on some architectures (not on x86), where this warning is bogus,
791
+ # because we take care of correct alignment.
792
+ # * -Winline, -Wdisabled-optimization, -Wunsafe-loop-optimizations
793
+ # don't seem so useful here; at least the last one gives some
794
+ # warnings which are not bugs.
795
+ for NEW_FLAG in \
796
+ -Wall \
797
+ -Wextra \
798
+ -Wvla \
799
+ -Wformat=2 \
800
+ -Winit-self \
801
+ -Wmissing-include-dirs \
802
+ -Wstrict-aliasing \
803
+ -Wfloat-equal \
804
+ -Wundef \
805
+ -Wshadow \
806
+ -Wpointer-arith \
807
+ -Wbad-function-cast \
808
+ -Wwrite-strings \
809
+ -Wlogical-op \
810
+ -Waggregate-return \
811
+ -Wstrict-prototypes \
812
+ -Wold-style-definition \
813
+ -Wmissing-prototypes \
814
+ -Wmissing-declarations \
815
+ -Wmissing-noreturn \
816
+ -Wredundant-decls
817
+ do
818
+ AC_MSG_CHECKING([if $CC accepts $NEW_FLAG])
819
+ OLD_CFLAGS="$CFLAGS"
820
+ CFLAGS="$CFLAGS $NEW_FLAG -Werror"
821
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE(
822
+ [void foo(void); void foo(void) { }])], [
823
+ AM_CFLAGS="$AM_CFLAGS $NEW_FLAG"
824
+ AC_MSG_RESULT([yes])
825
+ ], [
826
+ AC_MSG_RESULT([no])
827
+ ])
828
+ CFLAGS="$OLD_CFLAGS"
829
+ done
830
+
831
+ AC_ARG_ENABLE([werror],
832
+ AS_HELP_STRING([--enable-werror], [Enable -Werror to abort
833
+ compilation on all compiler warnings.]),
834
+ [], [enable_werror=no])
835
+ if test "x$enable_werror" = "xyes"; then
836
+ AM_CFLAGS="$AM_CFLAGS -Werror"
837
+ fi
838
+ fi
839
+
840
+
841
+ ###############################################################################
842
+ # Create the makefiles and config.h
843
+ ###############################################################################
844
+
845
+ echo
846
+
847
+ # Don't build the lib directory at all if we don't need any replacement
848
+ # functions.
849
+ AM_CONDITIONAL([COND_GNULIB], test -n "$LIBOBJS")
850
+
851
+ # Add default AM_CFLAGS.
852
+ AC_SUBST([AM_CFLAGS])
853
+
854
+ # This is needed for src/scripts.
855
+ xz=`echo xz | sed "$program_transform_name"`
856
+ AC_SUBST([xz])
857
+
858
+ AC_CONFIG_FILES([
859
+ Doxyfile
860
+ Makefile
861
+ po/Makefile.in
862
+ lib/Makefile
863
+ src/Makefile
864
+ src/liblzma/Makefile
865
+ src/liblzma/api/Makefile
866
+ src/xz/Makefile
867
+ src/xzdec/Makefile
868
+ src/lzmainfo/Makefile
869
+ src/scripts/Makefile
870
+ tests/Makefile
871
+ debug/Makefile
872
+ ])
873
+ AC_CONFIG_FILES([src/scripts/xzdiff], [chmod +x src/scripts/xzdiff])
874
+ AC_CONFIG_FILES([src/scripts/xzgrep], [chmod +x src/scripts/xzgrep])
875
+ AC_CONFIG_FILES([src/scripts/xzmore], [chmod +x src/scripts/xzmore])
876
+ AC_CONFIG_FILES([src/scripts/xzless], [chmod +x src/scripts/xzless])
877
+
878
+ AC_OUTPUT
879
+
880
+ # Some warnings
881
+ if test x$tuklib_cv_physmem_method = xunknown; then
882
+ echo
883
+ echo "WARNING:"
884
+ echo "No supported method to detect the amount of RAM."
885
+ echo "Consider using --enable-assume-ram (if you didn't already)"
886
+ echo "or make a patch to add support for this operating system."
887
+ fi
888
+
889
+ if test x$tuklib_cv_cpucores_method = xunknown; then
890
+ echo
891
+ echo "WARNING:"
892
+ echo "No supported method to detect the number of CPU cores."
893
+ fi
894
+
895
+ if test "x$enable_threads$enable_small" = xnoyes; then
896
+ echo
897
+ echo "NOTE:"
898
+ echo "liblzma will be thread unsafe due the combination"
899
+ echo "of --disable-threads --enable-small."
900
+ fi