rugged 1.0.0 → 1.2.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 (338) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -0
  3. data/README.md +3 -3
  4. data/ext/rugged/rugged.c +7 -4
  5. data/ext/rugged/rugged_commit.c +1 -1
  6. data/ext/rugged/rugged_config.c +1 -1
  7. data/ext/rugged/rugged_object.c +1 -1
  8. data/ext/rugged/rugged_remote.c +32 -2
  9. data/ext/rugged/rugged_repo.c +13 -3
  10. data/lib/rugged/commit.rb +17 -4
  11. data/lib/rugged/repository.rb +7 -8
  12. data/lib/rugged/submodule_collection.rb +4 -4
  13. data/lib/rugged/version.rb +1 -1
  14. data/vendor/libgit2/CMakeLists.txt +41 -74
  15. data/vendor/libgit2/COPYING +109 -1
  16. data/vendor/libgit2/cmake/{Modules/AddCFlagIfSupported.cmake → AddCFlagIfSupported.cmake} +0 -0
  17. data/vendor/libgit2/cmake/{Modules/EnableWarnings.cmake → EnableWarnings.cmake} +0 -0
  18. data/vendor/libgit2/cmake/{Modules/FindCoreFoundation.cmake → FindCoreFoundation.cmake} +0 -0
  19. data/vendor/libgit2/cmake/{Modules/FindGSSAPI.cmake → FindGSSAPI.cmake} +0 -0
  20. data/vendor/libgit2/cmake/{Modules/FindGSSFramework.cmake → FindGSSFramework.cmake} +0 -0
  21. data/vendor/libgit2/cmake/{Modules/FindHTTP_Parser.cmake → FindHTTP_Parser.cmake} +0 -0
  22. data/vendor/libgit2/cmake/{Modules/FindIconv.cmake → FindIconv.cmake} +0 -0
  23. data/vendor/libgit2/cmake/{Modules/FindPCRE.cmake → FindPCRE.cmake} +0 -0
  24. data/vendor/libgit2/cmake/{Modules/FindPCRE2.cmake → FindPCRE2.cmake} +0 -0
  25. data/vendor/libgit2/cmake/{Modules/FindPkgLibraries.cmake → FindPkgLibraries.cmake} +0 -0
  26. data/vendor/libgit2/cmake/{Modules/FindSecurity.cmake → FindSecurity.cmake} +0 -0
  27. data/vendor/libgit2/cmake/{Modules/FindStatNsec.cmake → FindStatNsec.cmake} +0 -0
  28. data/vendor/libgit2/cmake/Findfutimens.cmake +14 -0
  29. data/vendor/libgit2/cmake/{Modules/FindmbedTLS.cmake → FindmbedTLS.cmake} +0 -0
  30. data/vendor/libgit2/cmake/{Modules/IdeSplitSources.cmake → IdeSplitSources.cmake} +0 -0
  31. data/vendor/libgit2/cmake/{Modules/PkgBuildConfig.cmake → PkgBuildConfig.cmake} +0 -0
  32. data/vendor/libgit2/cmake/{Modules/SanitizeBool.cmake → SanitizeBool.cmake} +0 -0
  33. data/vendor/libgit2/cmake/{Modules/SelectGSSAPI.cmake → SelectGSSAPI.cmake} +18 -26
  34. data/vendor/libgit2/cmake/{Modules/SelectHTTPSBackend.cmake → SelectHTTPSBackend.cmake} +29 -32
  35. data/vendor/libgit2/cmake/{Modules/SelectHashes.cmake → SelectHashes.cmake} +21 -28
  36. data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +101 -0
  37. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +4 -3
  38. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +24 -10
  39. data/vendor/libgit2/deps/ntlmclient/compat.h +0 -27
  40. data/vendor/libgit2/deps/ntlmclient/crypt.h +14 -9
  41. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +20 -20
  42. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +3 -3
  43. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +37 -36
  44. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +4 -3
  45. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +178 -51
  46. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +74 -5
  47. data/vendor/libgit2/deps/ntlmclient/ntlm.c +164 -135
  48. data/vendor/libgit2/deps/ntlmclient/ntlm.h +13 -9
  49. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +16 -3
  50. data/vendor/libgit2/deps/ntlmclient/unicode.h +10 -4
  51. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +16 -27
  52. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.h +20 -0
  53. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +28 -52
  54. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.h +22 -0
  55. data/vendor/libgit2/deps/ntlmclient/util.c +15 -1
  56. data/vendor/libgit2/deps/ntlmclient/util.h +2 -1
  57. data/vendor/libgit2/deps/pcre/LICENCE +93 -0
  58. data/vendor/libgit2/deps/pcre/pcre.h +2 -2
  59. data/vendor/libgit2/deps/pcre/pcre_compile.c +29 -17
  60. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +4 -4
  61. data/vendor/libgit2/deps/pcre/pcreposix.c +2 -3
  62. data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -5
  63. data/vendor/libgit2/deps/zlib/deflate.c +1 -0
  64. data/vendor/libgit2/include/git2/annotated_commit.h +1 -1
  65. data/vendor/libgit2/include/git2/apply.h +2 -0
  66. data/vendor/libgit2/include/git2/attr.h +89 -0
  67. data/vendor/libgit2/include/git2/blame.h +95 -42
  68. data/vendor/libgit2/include/git2/blob.h +31 -3
  69. data/vendor/libgit2/include/git2/branch.h +25 -0
  70. data/vendor/libgit2/include/git2/cert.h +42 -5
  71. data/vendor/libgit2/include/git2/checkout.h +28 -12
  72. data/vendor/libgit2/include/git2/commit.h +35 -19
  73. data/vendor/libgit2/include/git2/common.h +33 -6
  74. data/vendor/libgit2/include/git2/config.h +1 -1
  75. data/vendor/libgit2/include/git2/deprecated.h +248 -8
  76. data/vendor/libgit2/include/git2/diff.h +35 -20
  77. data/vendor/libgit2/include/git2/errors.h +8 -7
  78. data/vendor/libgit2/include/git2/filter.h +57 -17
  79. data/vendor/libgit2/include/git2/graph.h +20 -2
  80. data/vendor/libgit2/include/git2/index.h +4 -5
  81. data/vendor/libgit2/include/git2/indexer.h +2 -1
  82. data/vendor/libgit2/include/git2/odb.h +44 -20
  83. data/vendor/libgit2/include/git2/pack.h +1 -1
  84. data/vendor/libgit2/include/git2/patch.h +8 -0
  85. data/vendor/libgit2/include/git2/rebase.h +25 -1
  86. data/vendor/libgit2/include/git2/refs.h +9 -5
  87. data/vendor/libgit2/include/git2/remote.h +59 -6
  88. data/vendor/libgit2/include/git2/repository.h +95 -52
  89. data/vendor/libgit2/include/git2/revparse.h +5 -5
  90. data/vendor/libgit2/include/git2/status.h +115 -59
  91. data/vendor/libgit2/include/git2/strarray.h +6 -10
  92. data/vendor/libgit2/include/git2/submodule.h +9 -0
  93. data/vendor/libgit2/include/git2/sys/commit_graph.h +174 -0
  94. data/vendor/libgit2/include/git2/sys/filter.h +49 -28
  95. data/vendor/libgit2/include/git2/sys/midx.h +74 -0
  96. data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -0
  97. data/vendor/libgit2/include/git2/sys/transport.h +1 -0
  98. data/vendor/libgit2/include/git2/tag.h +12 -0
  99. data/vendor/libgit2/include/git2/transport.h +1 -1
  100. data/vendor/libgit2/include/git2/tree.h +2 -14
  101. data/vendor/libgit2/include/git2/types.h +9 -0
  102. data/vendor/libgit2/include/git2/version.h +3 -3
  103. data/vendor/libgit2/include/git2/worktree.h +1 -0
  104. data/vendor/libgit2/src/CMakeLists.txt +77 -44
  105. data/vendor/libgit2/src/alloc.c +21 -8
  106. data/vendor/libgit2/src/allocators/failalloc.c +92 -0
  107. data/vendor/libgit2/src/allocators/failalloc.h +23 -0
  108. data/vendor/libgit2/src/allocators/stdalloc.c +41 -10
  109. data/vendor/libgit2/src/allocators/win32_leakcheck.c +118 -0
  110. data/vendor/libgit2/src/allocators/{win32_crtdbg.h → win32_leakcheck.h} +3 -3
  111. data/vendor/libgit2/src/annotated_commit.c +21 -9
  112. data/vendor/libgit2/src/apply.c +21 -8
  113. data/vendor/libgit2/src/array.h +11 -11
  114. data/vendor/libgit2/src/assert_safe.h +58 -0
  115. data/vendor/libgit2/src/attr.c +181 -74
  116. data/vendor/libgit2/src/attr_file.c +92 -42
  117. data/vendor/libgit2/src/attr_file.h +32 -11
  118. data/vendor/libgit2/src/attrcache.c +44 -40
  119. data/vendor/libgit2/src/attrcache.h +4 -5
  120. data/vendor/libgit2/src/blame.c +28 -15
  121. data/vendor/libgit2/src/blame_git.c +6 -3
  122. data/vendor/libgit2/src/blob.c +46 -24
  123. data/vendor/libgit2/src/branch.c +87 -37
  124. data/vendor/libgit2/src/buffer.c +339 -27
  125. data/vendor/libgit2/src/buffer.h +153 -2
  126. data/vendor/libgit2/src/cache.c +3 -24
  127. data/vendor/libgit2/src/cache.h +7 -7
  128. data/vendor/libgit2/src/cc-compat.h +10 -2
  129. data/vendor/libgit2/src/checkout.c +97 -98
  130. data/vendor/libgit2/src/cherrypick.c +8 -2
  131. data/vendor/libgit2/src/clone.c +104 -29
  132. data/vendor/libgit2/src/commit.c +41 -28
  133. data/vendor/libgit2/src/commit_graph.c +1209 -0
  134. data/vendor/libgit2/src/commit_graph.h +162 -0
  135. data/vendor/libgit2/src/commit_list.c +46 -0
  136. data/vendor/libgit2/src/commit_list.h +2 -0
  137. data/vendor/libgit2/src/common.h +26 -2
  138. data/vendor/libgit2/src/config.c +40 -22
  139. data/vendor/libgit2/src/config_cache.c +9 -4
  140. data/vendor/libgit2/src/config_entries.c +35 -27
  141. data/vendor/libgit2/src/config_file.c +25 -8
  142. data/vendor/libgit2/src/config_parse.c +5 -7
  143. data/vendor/libgit2/src/config_snapshot.c +2 -1
  144. data/vendor/libgit2/src/crlf.c +16 -6
  145. data/vendor/libgit2/src/date.c +4 -3
  146. data/vendor/libgit2/src/delta.c +1 -1
  147. data/vendor/libgit2/src/describe.c +11 -4
  148. data/vendor/libgit2/src/diff.c +23 -19
  149. data/vendor/libgit2/src/diff_driver.c +21 -17
  150. data/vendor/libgit2/src/diff_file.c +5 -7
  151. data/vendor/libgit2/src/diff_generate.c +56 -28
  152. data/vendor/libgit2/src/diff_parse.c +2 -3
  153. data/vendor/libgit2/src/diff_print.c +81 -65
  154. data/vendor/libgit2/src/diff_stats.c +19 -16
  155. data/vendor/libgit2/src/diff_tform.c +13 -13
  156. data/vendor/libgit2/src/diff_xdiff.c +4 -2
  157. data/vendor/libgit2/src/diff_xdiff.h +1 -1
  158. data/vendor/libgit2/src/errors.c +26 -19
  159. data/vendor/libgit2/src/features.h.in +5 -1
  160. data/vendor/libgit2/src/fetch.c +7 -2
  161. data/vendor/libgit2/src/fetchhead.c +8 -4
  162. data/vendor/libgit2/src/filebuf.c +9 -7
  163. data/vendor/libgit2/src/filter.c +209 -113
  164. data/vendor/libgit2/src/filter.h +24 -5
  165. data/vendor/libgit2/src/futils.c +8 -8
  166. data/vendor/libgit2/src/futils.h +4 -4
  167. data/vendor/libgit2/src/graph.c +64 -9
  168. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +3 -3
  169. data/vendor/libgit2/src/hash/sha1/common_crypto.c +3 -3
  170. data/vendor/libgit2/src/hash/sha1/generic.h +1 -1
  171. data/vendor/libgit2/src/hash/sha1/mbedtls.c +12 -12
  172. data/vendor/libgit2/src/hash/sha1/openssl.c +3 -3
  173. data/vendor/libgit2/src/hash/sha1/sha1dc/sha1.c +0 -2
  174. data/vendor/libgit2/src/hash/sha1/win32.c +15 -11
  175. data/vendor/libgit2/src/hash.c +16 -13
  176. data/vendor/libgit2/src/hash.h +1 -1
  177. data/vendor/libgit2/src/hashsig.c +23 -10
  178. data/vendor/libgit2/src/ident.c +13 -3
  179. data/vendor/libgit2/src/idxmap.c +0 -22
  180. data/vendor/libgit2/src/ignore.c +35 -19
  181. data/vendor/libgit2/src/index.c +126 -84
  182. data/vendor/libgit2/src/index.h +1 -1
  183. data/vendor/libgit2/src/indexer.c +60 -36
  184. data/vendor/libgit2/src/integer.h +79 -2
  185. data/vendor/libgit2/src/iterator.c +40 -28
  186. data/vendor/libgit2/src/iterator.h +1 -1
  187. data/vendor/libgit2/src/khash.h +2 -11
  188. data/vendor/libgit2/src/{settings.c → libgit2.c} +125 -49
  189. data/vendor/libgit2/src/libgit2.h +15 -0
  190. data/vendor/libgit2/src/mailmap.c +23 -10
  191. data/vendor/libgit2/src/map.h +3 -3
  192. data/vendor/libgit2/src/merge.c +108 -46
  193. data/vendor/libgit2/src/merge.h +2 -1
  194. data/vendor/libgit2/src/merge_driver.c +19 -13
  195. data/vendor/libgit2/src/merge_file.c +15 -9
  196. data/vendor/libgit2/src/message.c +3 -1
  197. data/vendor/libgit2/src/midx.c +879 -0
  198. data/vendor/libgit2/src/midx.h +110 -0
  199. data/vendor/libgit2/src/mwindow.c +214 -95
  200. data/vendor/libgit2/src/mwindow.h +3 -3
  201. data/vendor/libgit2/src/net.c +133 -4
  202. data/vendor/libgit2/src/net.h +16 -2
  203. data/vendor/libgit2/src/netops.c +6 -4
  204. data/vendor/libgit2/src/netops.h +2 -2
  205. data/vendor/libgit2/src/notes.c +10 -10
  206. data/vendor/libgit2/src/object.c +24 -15
  207. data/vendor/libgit2/src/odb.c +298 -57
  208. data/vendor/libgit2/src/odb.h +16 -2
  209. data/vendor/libgit2/src/odb_loose.c +31 -21
  210. data/vendor/libgit2/src/odb_mempack.c +3 -1
  211. data/vendor/libgit2/src/odb_pack.c +391 -114
  212. data/vendor/libgit2/src/oid.c +7 -4
  213. data/vendor/libgit2/src/pack-objects.c +83 -69
  214. data/vendor/libgit2/src/pack.c +383 -150
  215. data/vendor/libgit2/src/pack.h +44 -9
  216. data/vendor/libgit2/src/patch.c +14 -7
  217. data/vendor/libgit2/src/patch_generate.c +3 -5
  218. data/vendor/libgit2/src/patch_parse.c +6 -3
  219. data/vendor/libgit2/src/path.c +102 -57
  220. data/vendor/libgit2/src/path.h +79 -6
  221. data/vendor/libgit2/src/pathspec.c +12 -11
  222. data/vendor/libgit2/src/pool.c +34 -22
  223. data/vendor/libgit2/src/pool.h +9 -1
  224. data/vendor/libgit2/src/posix.c +43 -12
  225. data/vendor/libgit2/src/posix.h +9 -0
  226. data/vendor/libgit2/src/proxy.c +2 -0
  227. data/vendor/libgit2/src/push.c +2 -0
  228. data/vendor/libgit2/src/reader.c +10 -6
  229. data/vendor/libgit2/src/rebase.c +95 -49
  230. data/vendor/libgit2/src/refdb.c +165 -13
  231. data/vendor/libgit2/src/refdb.h +69 -0
  232. data/vendor/libgit2/src/refdb_fs.c +144 -152
  233. data/vendor/libgit2/src/reflog.c +21 -20
  234. data/vendor/libgit2/src/refs.c +151 -231
  235. data/vendor/libgit2/src/refs.h +2 -20
  236. data/vendor/libgit2/src/refspec.c +80 -44
  237. data/vendor/libgit2/src/regexp.c +2 -2
  238. data/vendor/libgit2/src/remote.c +312 -121
  239. data/vendor/libgit2/src/remote.h +2 -1
  240. data/vendor/libgit2/src/repository.c +351 -189
  241. data/vendor/libgit2/src/repository.h +23 -29
  242. data/vendor/libgit2/src/reset.c +7 -6
  243. data/vendor/libgit2/src/revert.c +8 -2
  244. data/vendor/libgit2/src/revparse.c +19 -13
  245. data/vendor/libgit2/src/revwalk.c +35 -20
  246. data/vendor/libgit2/src/runtime.c +162 -0
  247. data/vendor/libgit2/src/runtime.h +62 -0
  248. data/vendor/libgit2/src/{refdb_fs.h → settings.h} +3 -11
  249. data/vendor/libgit2/src/signature.c +6 -5
  250. data/vendor/libgit2/src/sortedcache.c +2 -3
  251. data/vendor/libgit2/src/sortedcache.h +10 -8
  252. data/vendor/libgit2/src/stash.c +7 -3
  253. data/vendor/libgit2/src/status.c +9 -4
  254. data/vendor/libgit2/src/strarray.c +64 -0
  255. data/vendor/libgit2/src/streams/mbedtls.c +14 -17
  256. data/vendor/libgit2/src/streams/mbedtls.h +1 -1
  257. data/vendor/libgit2/src/streams/openssl.c +113 -207
  258. data/vendor/libgit2/src/streams/openssl.h +9 -1
  259. data/vendor/libgit2/src/streams/openssl_dynamic.c +309 -0
  260. data/vendor/libgit2/src/streams/openssl_dynamic.h +348 -0
  261. data/vendor/libgit2/src/streams/openssl_legacy.c +203 -0
  262. data/vendor/libgit2/src/streams/openssl_legacy.h +63 -0
  263. data/vendor/libgit2/src/streams/registry.c +10 -9
  264. data/vendor/libgit2/src/streams/socket.c +6 -2
  265. data/vendor/libgit2/src/streams/stransport.c +6 -3
  266. data/vendor/libgit2/src/streams/tls.c +5 -3
  267. data/vendor/libgit2/src/submodule.c +134 -66
  268. data/vendor/libgit2/src/submodule.h +9 -9
  269. data/vendor/libgit2/src/sysdir.c +8 -26
  270. data/vendor/libgit2/src/sysdir.h +0 -11
  271. data/vendor/libgit2/src/tag.c +49 -11
  272. data/vendor/libgit2/src/thread.c +140 -0
  273. data/vendor/libgit2/src/thread.h +479 -0
  274. data/vendor/libgit2/src/threadstate.c +83 -0
  275. data/vendor/libgit2/src/threadstate.h +24 -0
  276. data/vendor/libgit2/src/trace.c +2 -2
  277. data/vendor/libgit2/src/trace.h +17 -13
  278. data/vendor/libgit2/src/transaction.c +21 -9
  279. data/vendor/libgit2/src/transport.c +3 -3
  280. data/vendor/libgit2/src/transports/auth.c +1 -1
  281. data/vendor/libgit2/src/transports/auth_negotiate.c +11 -4
  282. data/vendor/libgit2/src/transports/auth_ntlm.c +10 -6
  283. data/vendor/libgit2/src/transports/credential.c +17 -7
  284. data/vendor/libgit2/src/transports/credential_helpers.c +2 -0
  285. data/vendor/libgit2/src/transports/git.c +1 -3
  286. data/vendor/libgit2/src/transports/http.c +19 -17
  287. data/vendor/libgit2/src/transports/http.h +1 -0
  288. data/vendor/libgit2/src/transports/httpclient.c +84 -42
  289. data/vendor/libgit2/src/transports/httpclient.h +1 -1
  290. data/vendor/libgit2/src/transports/local.c +5 -5
  291. data/vendor/libgit2/src/transports/smart.c +14 -9
  292. data/vendor/libgit2/src/transports/smart.h +1 -1
  293. data/vendor/libgit2/src/transports/smart_protocol.c +11 -5
  294. data/vendor/libgit2/src/transports/ssh.c +51 -17
  295. data/vendor/libgit2/src/transports/winhttp.c +156 -88
  296. data/vendor/libgit2/src/tree.c +100 -77
  297. data/vendor/libgit2/src/tree.h +1 -0
  298. data/vendor/libgit2/src/tsort.c +0 -2
  299. data/vendor/libgit2/src/unix/map.c +3 -1
  300. data/vendor/libgit2/src/unix/posix.h +16 -1
  301. data/vendor/libgit2/src/unix/pthread.h +2 -1
  302. data/vendor/libgit2/src/utf8.c +150 -0
  303. data/vendor/libgit2/src/utf8.h +52 -0
  304. data/vendor/libgit2/src/util.c +74 -183
  305. data/vendor/libgit2/src/util.h +33 -39
  306. data/vendor/libgit2/src/vector.c +23 -19
  307. data/vendor/libgit2/src/vector.h +4 -2
  308. data/vendor/libgit2/src/win32/findfile.c +4 -2
  309. data/vendor/libgit2/src/win32/git2.rc +18 -3
  310. data/vendor/libgit2/src/win32/map.c +1 -1
  311. data/vendor/libgit2/src/win32/msvc-compat.h +9 -1
  312. data/vendor/libgit2/src/win32/path_w32.c +23 -25
  313. data/vendor/libgit2/src/win32/path_w32.h +0 -1
  314. data/vendor/libgit2/src/win32/posix_w32.c +77 -1
  315. data/vendor/libgit2/src/win32/precompiled.h +0 -1
  316. data/vendor/libgit2/src/win32/reparse.h +4 -4
  317. data/vendor/libgit2/src/win32/thread.c +24 -15
  318. data/vendor/libgit2/src/win32/thread.h +1 -1
  319. data/vendor/libgit2/src/win32/w32_buffer.c +3 -3
  320. data/vendor/libgit2/src/win32/w32_common.h +18 -9
  321. data/vendor/libgit2/src/win32/{w32_crtdbg_stacktrace.c → w32_leakcheck.c} +269 -33
  322. data/vendor/libgit2/src/win32/w32_leakcheck.h +222 -0
  323. data/vendor/libgit2/src/win32/w32_util.h +6 -6
  324. data/vendor/libgit2/src/worktree.c +37 -15
  325. data/vendor/libgit2/src/zstream.c +1 -1
  326. metadata +56 -38
  327. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +0 -29
  328. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +0 -96
  329. data/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
  330. data/vendor/libgit2/src/buf_text.c +0 -316
  331. data/vendor/libgit2/src/buf_text.h +0 -122
  332. data/vendor/libgit2/src/global.c +0 -361
  333. data/vendor/libgit2/src/global.h +0 -41
  334. data/vendor/libgit2/src/thread-utils.c +0 -58
  335. data/vendor/libgit2/src/thread-utils.h +0 -246
  336. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -127
  337. data/vendor/libgit2/src/win32/w32_stack.c +0 -188
  338. data/vendor/libgit2/src/win32/w32_stack.h +0 -140
@@ -420,7 +420,7 @@ The GNU C Library is free software; you can redistribute it and/or
420
420
  modify it under the terms of the GNU Lesser General Public
421
421
  License as published by the Free Software Foundation; either
422
422
  version 2.1 of the License, or (at your option) any later version.
423
-
423
+
424
424
  The GNU C Library is distributed in the hope that it will be useful,
425
425
  but WITHOUT ANY WARRANTY; without even the implied warranty of
426
426
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -1019,3 +1019,111 @@ following restrictions are are met:
1019
1019
  THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
1020
1020
  WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
1021
1021
  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
1022
+
1023
+ ----------------------------------------------------------------------
1024
+
1025
+ Portions of the OpenSSL headers are included under the OpenSSL license:
1026
+
1027
+ Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
1028
+ All rights reserved.
1029
+
1030
+ This package is an SSL implementation written
1031
+ by Eric Young (eay@cryptsoft.com).
1032
+ The implementation was written so as to conform with Netscapes SSL.
1033
+
1034
+ This library is free for commercial and non-commercial use as long as
1035
+ the following conditions are aheared to. The following conditions
1036
+ apply to all code found in this distribution, be it the RC4, RSA,
1037
+ lhash, DES, etc., code; not just the SSL code. The SSL documentation
1038
+ included with this distribution is covered by the same copyright terms
1039
+ except that the holder is Tim Hudson (tjh@cryptsoft.com).
1040
+
1041
+ Copyright remains Eric Young's, and as such any Copyright notices in
1042
+ the code are not to be removed.
1043
+ If this package is used in a product, Eric Young should be given attribution
1044
+ as the author of the parts of the library used.
1045
+ This can be in the form of a textual message at program startup or
1046
+ in documentation (online or textual) provided with the package.
1047
+
1048
+ Redistribution and use in source and binary forms, with or without
1049
+ modification, are permitted provided that the following conditions
1050
+ are met:
1051
+ 1. Redistributions of source code must retain the copyright
1052
+ notice, this list of conditions and the following disclaimer.
1053
+ 2. Redistributions in binary form must reproduce the above copyright
1054
+ notice, this list of conditions and the following disclaimer in the
1055
+ documentation and/or other materials provided with the distribution.
1056
+ 3. All advertising materials mentioning features or use of this software
1057
+ must display the following acknowledgement:
1058
+ "This product includes cryptographic software written by
1059
+ Eric Young (eay@cryptsoft.com)"
1060
+ The word 'cryptographic' can be left out if the rouines from the library
1061
+ being used are not cryptographic related :-).
1062
+ 4. If you include any Windows specific code (or a derivative thereof) from
1063
+ the apps directory (application code) you must include an acknowledgement:
1064
+ "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
1065
+
1066
+ THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
1067
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1068
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1069
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
1070
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1071
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
1072
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1073
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
1074
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
1075
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
1076
+ SUCH DAMAGE.
1077
+
1078
+ The licence and distribution terms for any publically available version or
1079
+ derivative of this code cannot be changed. i.e. this code cannot simply be
1080
+ copied and put under another distribution licence
1081
+ [including the GNU Public Licence.]
1082
+
1083
+ ====================================================================
1084
+ Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved.
1085
+
1086
+ Redistribution and use in source and binary forms, with or without
1087
+ modification, are permitted provided that the following conditions
1088
+ are met:
1089
+
1090
+ 1. Redistributions of source code must retain the above copyright
1091
+ notice, this list of conditions and the following disclaimer.
1092
+
1093
+ 2. Redistributions in binary form must reproduce the above copyright
1094
+ notice, this list of conditions and the following disclaimer in
1095
+ the documentation and/or other materials provided with the
1096
+ distribution.
1097
+
1098
+ 3. All advertising materials mentioning features or use of this
1099
+ software must display the following acknowledgment:
1100
+ "This product includes software developed by the OpenSSL Project
1101
+ for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
1102
+
1103
+ 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
1104
+ endorse or promote products derived from this software without
1105
+ prior written permission. For written permission, please contact
1106
+ openssl-core@openssl.org.
1107
+
1108
+ 5. Products derived from this software may not be called "OpenSSL"
1109
+ nor may "OpenSSL" appear in their names without prior written
1110
+ permission of the OpenSSL Project.
1111
+
1112
+ 6. Redistributions of any form whatsoever must retain the following
1113
+ acknowledgment:
1114
+ "This product includes software developed by the OpenSSL Project
1115
+ for use in the OpenSSL Toolkit (http://www.openssl.org/)"
1116
+
1117
+ THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
1118
+ EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1119
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1120
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
1121
+ ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1122
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
1123
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
1124
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1125
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1126
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1127
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
1128
+ OF THE POSSIBILITY OF SUCH DAMAGE.
1129
+
@@ -0,0 +1,14 @@
1
+ INCLUDE(EnableWarnings)
2
+
3
+ IF (APPLE)
4
+ # We cannot simply CHECK_FUNCTION_EXISTS on macOS because
5
+ # MACOSX_DEPLOYMENT_TARGET may be set to a version in the past
6
+ # that doesn't have futimens. Instead we need to enable warnings
7
+ # as errors, then check for the symbol existing in `sys/stat.h`,
8
+ # then reset warnings as errors.
9
+ ENABLE_WARNINGS(error)
10
+ CHECK_SYMBOL_EXISTS(futimens sys/stat.h HAVE_FUTIMENS)
11
+ DISABLE_WARNINGS(error)
12
+ ELSE ()
13
+ CHECK_FUNCTION_EXISTS(futimens HAVE_FUTIMENS)
14
+ ENDIF ()
@@ -1,35 +1,27 @@
1
- # Select the backend to use
2
-
3
- # We try to find any packages our backends might use
4
-
5
1
  INCLUDE(SanitizeBool)
6
2
 
3
+ # We try to find any packages our backends might use
7
4
  FIND_PACKAGE(GSSAPI)
8
5
  IF (CMAKE_SYSTEM_NAME MATCHES "Darwin")
9
6
  INCLUDE(FindGSSFramework)
10
7
  ENDIF()
11
8
 
12
- # Auto-select GSS backend
13
- SanitizeBool(USE_GSSAPI)
14
- IF (USE_GSSAPI STREQUAL ON)
15
- IF (GSSFRAMEWORK_FOUND)
16
- SET(GSS_BACKEND "GSS.framework")
17
- ELSEIF(GSSAPI_FOUND)
18
- SET(GSS_BACKEND "gssapi")
19
- ELSE()
20
- MESSAGE(FATAL_ERROR "Unable to autodetect a usable GSS backend."
21
- "Please pass the backend name explicitly (-DUSE_GSS=backend)")
9
+ IF(USE_GSSAPI)
10
+ # Auto-select GSS backend
11
+ SanitizeBool(USE_GSSAPI)
12
+ IF (USE_GSSAPI STREQUAL ON)
13
+ IF (GSSFRAMEWORK_FOUND)
14
+ SET(USE_GSSAPI "GSS.framework")
15
+ ELSEIF(GSSAPI_FOUND)
16
+ SET(USE_GSSAPI "gssapi")
17
+ ELSE()
18
+ MESSAGE(FATAL_ERROR "Unable to autodetect a usable GSS backend."
19
+ "Please pass the backend name explicitly (-DUSE_GSS=backend)")
20
+ ENDIF()
22
21
  ENDIF()
23
- ELSEIF(USE_GSSAPI)
24
- # Backend was explicitly set
25
- SET(GSS_BACKEND ${USE_GSSAPI})
26
- ELSE()
27
- SET(GSS_BACKEND NO)
28
- ENDIF()
29
22
 
30
- IF(GSS_BACKEND)
31
23
  # Check that we can find what's required for the selected backend
32
- IF (GSS_BACKEND STREQUAL "GSS.framework")
24
+ IF (USE_GSSAPI STREQUAL "GSS.framework")
33
25
  IF (NOT GSSFRAMEWORK_FOUND)
34
26
  MESSAGE(FATAL_ERROR "Asked for GSS.framework backend, but it wasn't found")
35
27
  ENDIF()
@@ -37,8 +29,8 @@ IF(GSS_BACKEND)
37
29
  LIST(APPEND LIBGIT2_LIBS ${GSSFRAMEWORK_LIBRARIES})
38
30
 
39
31
  SET(GIT_GSSFRAMEWORK 1)
40
- ADD_FEATURE_INFO(SPNEGO GIT_GSSFRAMEWORK "SPNEGO authentication support (${GSS_BACKEND})")
41
- ELSEIF (GSS_BACKEND STREQUAL "gssapi")
32
+ ADD_FEATURE_INFO(SPNEGO GIT_GSSFRAMEWORK "SPNEGO authentication support (${USE_GSSAPI})")
33
+ ELSEIF (USE_GSSAPI STREQUAL "gssapi")
42
34
  IF (NOT GSSAPI_FOUND)
43
35
  MESSAGE(FATAL_ERROR "Asked for gssapi GSS backend, but it wasn't found")
44
36
  ENDIF()
@@ -46,9 +38,9 @@ IF(GSS_BACKEND)
46
38
  LIST(APPEND LIBGIT2_LIBS ${GSSAPI_LIBRARIES})
47
39
 
48
40
  SET(GIT_GSSAPI 1)
49
- ADD_FEATURE_INFO(SPNEGO GIT_GSSAPI "SPNEGO authentication support (${GSS_BACKEND})")
41
+ ADD_FEATURE_INFO(SPNEGO GIT_GSSAPI "SPNEGO authentication support (${USE_GSSAPI})")
50
42
  ELSE()
51
- MESSAGE(FATAL_ERROR "Asked for backend ${GSS_BACKEND} but it wasn't found")
43
+ MESSAGE(FATAL_ERROR "Asked for backend ${USE_GSSAPI} but it wasn't found")
52
44
  ENDIF()
53
45
  ELSE()
54
46
  SET(GIT_GSSAPI 0)
@@ -1,5 +1,3 @@
1
- # Select the backend to use
2
-
3
1
  INCLUDE(SanitizeBool)
4
2
 
5
3
  # We try to find any packages our backends might use
@@ -10,36 +8,31 @@ IF (CMAKE_SYSTEM_NAME MATCHES "Darwin")
10
8
  FIND_PACKAGE(CoreFoundation)
11
9
  ENDIF()
12
10
 
13
- # Auto-select TLS backend
14
- SanitizeBool(USE_HTTPS)
15
- IF (USE_HTTPS STREQUAL ON)
16
- IF (SECURITY_FOUND)
17
- IF (SECURITY_HAS_SSLCREATECONTEXT)
18
- SET(HTTPS_BACKEND "SecureTransport")
11
+ IF(USE_HTTPS)
12
+ # Auto-select TLS backend
13
+ SanitizeBool(USE_HTTPS)
14
+ IF (USE_HTTPS STREQUAL ON)
15
+ IF (SECURITY_FOUND)
16
+ IF (SECURITY_HAS_SSLCREATECONTEXT)
17
+ SET(USE_HTTPS "SecureTransport")
18
+ ELSE()
19
+ MESSAGE(STATUS "Security framework is too old, falling back to OpenSSL")
20
+ SET(USE_HTTPS "OpenSSL")
21
+ ENDIF()
22
+ ELSEIF (WINHTTP)
23
+ SET(USE_HTTPS "WinHTTP")
24
+ ELSEIF(OPENSSL_FOUND)
25
+ SET(USE_HTTPS "OpenSSL")
26
+ ELSEIF(MBEDTLS_FOUND)
27
+ SET(USE_HTTPS "mbedTLS")
19
28
  ELSE()
20
- MESSAGE(STATUS "Security framework is too old, falling back to OpenSSL")
21
- SET(HTTPS_BACKEND "OpenSSL")
29
+ MESSAGE(FATAL_ERROR "Unable to autodetect a usable HTTPS backend."
30
+ "Please pass the backend name explicitly (-DUSE_HTTPS=backend)")
22
31
  ENDIF()
23
- ELSEIF (WINHTTP)
24
- SET(HTTPS_BACKEND "WinHTTP")
25
- ELSEIF(OPENSSL_FOUND)
26
- SET(HTTPS_BACKEND "OpenSSL")
27
- ELSEIF(MBEDTLS_FOUND)
28
- SET(HTTPS_BACKEND "mbedTLS")
29
- ELSE()
30
- MESSAGE(FATAL_ERROR "Unable to autodetect a usable HTTPS backend."
31
- "Please pass the backend name explicitly (-DUSE_HTTPS=backend)")
32
32
  ENDIF()
33
- ELSEIF(USE_HTTPS)
34
- # HTTPS backend was explicitly set
35
- SET(HTTPS_BACKEND ${USE_HTTPS})
36
- ELSE()
37
- SET(HTTPS_BACKEND NO)
38
- ENDIF()
39
33
 
40
- IF(HTTPS_BACKEND)
41
34
  # Check that we can find what's required for the selected backend
42
- IF (HTTPS_BACKEND STREQUAL "SecureTransport")
35
+ IF (USE_HTTPS STREQUAL "SecureTransport")
43
36
  IF (NOT COREFOUNDATION_FOUND)
44
37
  MESSAGE(FATAL_ERROR "Cannot use SecureTransport backend, CoreFoundation.framework not found")
45
38
  ENDIF()
@@ -54,7 +47,7 @@ IF(HTTPS_BACKEND)
54
47
  LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${SECURITY_INCLUDE_DIR})
55
48
  LIST(APPEND LIBGIT2_LIBS ${COREFOUNDATION_LDFLAGS} ${SECURITY_LDFLAGS})
56
49
  LIST(APPEND LIBGIT2_PC_LIBS ${COREFOUNDATION_LDFLAGS} ${SECURITY_LDFLAGS})
57
- ELSEIF (HTTPS_BACKEND STREQUAL "OpenSSL")
50
+ ELSEIF (USE_HTTPS STREQUAL "OpenSSL")
58
51
  IF (NOT OPENSSL_FOUND)
59
52
  MESSAGE(FATAL_ERROR "Asked for OpenSSL TLS backend, but it wasn't found")
60
53
  ENDIF()
@@ -64,7 +57,7 @@ IF(HTTPS_BACKEND)
64
57
  LIST(APPEND LIBGIT2_LIBS ${OPENSSL_LIBRARIES})
65
58
  LIST(APPEND LIBGIT2_PC_LIBS ${OPENSSL_LDFLAGS})
66
59
  LIST(APPEND LIBGIT2_PC_REQUIRES "openssl")
67
- ELSEIF(HTTPS_BACKEND STREQUAL "mbedTLS")
60
+ ELSEIF(USE_HTTPS STREQUAL "mbedTLS")
68
61
  IF (NOT MBEDTLS_FOUND)
69
62
  MESSAGE(FATAL_ERROR "Asked for mbedTLS backend, but it wasn't found")
70
63
  ENDIF()
@@ -113,14 +106,18 @@ IF(HTTPS_BACKEND)
113
106
  # https://github.com/ARMmbed/mbedtls/issues/228
114
107
  # For now, pass its link flags as our own
115
108
  LIST(APPEND LIBGIT2_PC_LIBS ${MBEDTLS_LIBRARIES})
116
- ELSEIF (HTTPS_BACKEND STREQUAL "WinHTTP")
109
+ ELSEIF (USE_HTTPS STREQUAL "WinHTTP")
117
110
  # WinHTTP setup was handled in the WinHTTP-specific block above
111
+ ELSEIF (USE_HTTPS STREQUAL "OpenSSL-Dynamic")
112
+ SET(GIT_OPENSSL 1)
113
+ SET(GIT_OPENSSL_DYNAMIC 1)
114
+ LIST(APPEND LIBGIT2_LIBS dl)
118
115
  ELSE()
119
- MESSAGE(FATAL_ERROR "Asked for backend ${HTTPS_BACKEND} but it wasn't found")
116
+ MESSAGE(FATAL_ERROR "Asked for backend ${USE_HTTPS} but it wasn't found")
120
117
  ENDIF()
121
118
 
122
119
  SET(GIT_HTTPS 1)
123
- ADD_FEATURE_INFO(HTTPS GIT_HTTPS "using ${HTTPS_BACKEND}")
120
+ ADD_FEATURE_INFO(HTTPS GIT_HTTPS "using ${USE_HTTPS}")
124
121
  ELSE()
125
122
  SET(GIT_HTTPS 0)
126
123
  ADD_FEATURE_INFO(HTTPS NO "")
@@ -5,37 +5,28 @@ INCLUDE(SanitizeBool)
5
5
  # USE_SHA1=CollisionDetection(ON)/HTTPS/Generic/OFF
6
6
 
7
7
  SanitizeBool(USE_SHA1)
8
- IF(USE_SHA1 STREQUAL ON OR USE_SHA1 STREQUAL "CollisionDetection")
9
- SET(SHA1_BACKEND "CollisionDetection")
8
+ IF(USE_SHA1 STREQUAL ON)
9
+ SET(USE_SHA1 "CollisionDetection")
10
10
  ELSEIF(USE_SHA1 STREQUAL "HTTPS")
11
- message(STATUS "Checking HTTPS backend… ${HTTPS_BACKEND}")
12
- IF(HTTPS_BACKEND STREQUAL "SecureTransport")
13
- SET(SHA1_BACKEND "CommonCrypto")
14
- ELSEIF(HTTPS_BACKEND STREQUAL "WinHTTP")
15
- SET(SHA1_BACKEND "Win32")
16
- ELSEIF(HTTPS_BACKEND)
17
- SET(SHA1_BACKEND ${HTTPS_BACKEND})
11
+ IF(USE_HTTPS STREQUAL "SecureTransport")
12
+ SET(USE_SHA1 "CommonCrypto")
13
+ ELSEIF(USE_HTTPS STREQUAL "WinHTTP")
14
+ SET(USE_SHA1 "Win32")
15
+ ELSEIF(USE_HTTPS)
16
+ SET(USE_SHA1 ${USE_HTTPS})
18
17
  ELSE()
18
+ SET(USE_SHA1 "CollisionDetection")
19
19
  ENDIF()
20
- IF(NOT HTTPS_BACKEND)
21
- SET(SHA1_BACKEND "CollisionDetection")
22
- ENDIF()
23
- message(STATUS "Using SHA1 backend ${SHA1_BACKEND}")
24
- ELSEIF(USE_SHA1 STREQUAL "Generic")
25
- SET(SHA1_BACKEND "Generic")
26
- # ELSEIF(NOT USE_SHA1)
27
- ELSE()
28
- MESSAGE(FATAL_ERROR "Invalid value for USE_SHA1: ${USE_SHA1}")
29
20
  ENDIF()
30
21
 
31
- IF(SHA1_BACKEND STREQUAL "CollisionDetection")
22
+ IF(USE_SHA1 STREQUAL "CollisionDetection")
32
23
  SET(GIT_SHA1_COLLISIONDETECT 1)
33
24
  ADD_DEFINITIONS(-DSHA1DC_NO_STANDARD_INCLUDES=1)
34
25
  ADD_DEFINITIONS(-DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"common.h\")
35
26
  ADD_DEFINITIONS(-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"common.h\")
36
27
  FILE(GLOB SRC_SHA1 hash/sha1/collisiondetect.* hash/sha1/sha1dc/*)
37
- ELSEIF(SHA1_BACKEND STREQUAL "OpenSSL")
38
- # OPENSSL_FOUND should already be set, we're checking HTTPS_BACKEND
28
+ ELSEIF(USE_SHA1 STREQUAL "OpenSSL")
29
+ # OPENSSL_FOUND should already be set, we're checking USE_HTTPS
39
30
 
40
31
  SET(GIT_SHA1_OPENSSL 1)
41
32
  IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
@@ -44,10 +35,10 @@ ELSEIF(SHA1_BACKEND STREQUAL "OpenSSL")
44
35
  LIST(APPEND LIBGIT2_PC_REQUIRES "openssl")
45
36
  ENDIF()
46
37
  FILE(GLOB SRC_SHA1 hash/sha1/openssl.*)
47
- ELSEIF(SHA1_BACKEND STREQUAL "CommonCrypto")
38
+ ELSEIF(USE_SHA1 STREQUAL "CommonCrypto")
48
39
  SET(GIT_SHA1_COMMON_CRYPTO 1)
49
40
  FILE(GLOB SRC_SHA1 hash/sha1/common_crypto.*)
50
- ELSEIF(SHA1_BACKEND STREQUAL "mbedTLS")
41
+ ELSEIF(USE_SHA1 STREQUAL "mbedTLS")
51
42
  SET(GIT_SHA1_MBEDTLS 1)
52
43
  FILE(GLOB SRC_SHA1 hash/sha1/mbedtls.*)
53
44
  LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${MBEDTLS_INCLUDE_DIR})
@@ -56,14 +47,16 @@ ELSEIF(SHA1_BACKEND STREQUAL "mbedTLS")
56
47
  # https://github.com/ARMmbed/mbedtls/issues/228
57
48
  # For now, pass its link flags as our own
58
49
  LIST(APPEND LIBGIT2_PC_LIBS ${MBEDTLS_LIBRARIES})
59
- ELSEIF(SHA1_BACKEND STREQUAL "Win32")
50
+ ELSEIF(USE_SHA1 STREQUAL "Win32")
60
51
  SET(GIT_SHA1_WIN32 1)
61
52
  FILE(GLOB SRC_SHA1 hash/sha1/win32.*)
62
- ELSEIF(SHA1_BACKEND STREQUAL "Generic")
53
+ ELSEIF(USE_SHA1 STREQUAL "Generic")
63
54
  FILE(GLOB SRC_SHA1 hash/sha1/generic.*)
64
- # ELSEIF(NOT USE_SHA1)
65
55
  ELSE()
66
- MESSAGE(FATAL_ERROR "Asked for unknown SHA1 backend: ${SHA1_BACKEND}")
56
+ MESSAGE(FATAL_ERROR "Asked for unknown SHA1 backend: ${USE_SHA1}")
67
57
  ENDIF()
68
58
 
69
- ADD_FEATURE_INFO(SHA ON "using ${SHA1_BACKEND}")
59
+ list(APPEND SRC_SHA1 "hash/sha1.h")
60
+ list(SORT SRC_SHA1)
61
+
62
+ ADD_FEATURE_INFO(SHA ON "using ${USE_SHA1}")
@@ -0,0 +1,101 @@
1
+ # CMake build script for the bundled Chromium zlib implementation. So far, it
2
+ # is only supported for x86_64 processors with CLMUL, SSE3, SSE4.2.
3
+ #
4
+ # TODO: The Chromium build file (in deps/chromium-zlib/zlib/BUILD.gn) supports
5
+ # more platforms (like ARM with NEON), more can be enabled as needed.
6
+
7
+ CMAKE_MINIMUM_REQUIRED(VERSION 3.11)
8
+
9
+ include(FetchContent)
10
+ include(FindGit)
11
+
12
+ # Ensure that the git binary is present to download the sources.
13
+ find_package(Git)
14
+ IF(NOT Git_FOUND)
15
+ message(FATAL_ERROR "git is required to download the Chromium zlib sources")
16
+ ENDIF()
17
+
18
+ FetchContent_Populate(chromium_zlib_src
19
+ GIT_REPOSITORY https://chromium.googlesource.com/chromium/src/third_party/zlib.git
20
+ GIT_TAG 2c183c9f93a328bfb3121284da13cf89a0f7e64a
21
+ QUIET
22
+ )
23
+
24
+ # The Chromium build globally disables some warnings.
25
+ disable_warnings(implicit-fallthrough)
26
+ disable_warnings(unused-function)
27
+ disable_warnings(unused-parameter)
28
+ disable_warnings(sign-compare)
29
+ disable_warnings(declaration-after-statement)
30
+ disable_warnings(missing-declarations)
31
+
32
+ # -O3 is also set by the Chromium configuration and has been deemed safe enough
33
+ # for them.
34
+ SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -g -DNDEBUG")
35
+ SET(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
36
+
37
+ # Common definitions.
38
+ add_definitions(
39
+ -DSTDC
40
+ -DNO_GZIP
41
+ -DZLIB_IMPLEMENTATION
42
+ )
43
+ list(APPEND SRC_ZLIB
44
+ "${chromium_zlib_src_SOURCE_DIR}/adler32.c"
45
+ "${chromium_zlib_src_SOURCE_DIR}/chromeconf.h"
46
+ "${chromium_zlib_src_SOURCE_DIR}/compress.c"
47
+ "${chromium_zlib_src_SOURCE_DIR}/contrib/optimizations/insert_string.h"
48
+ "${chromium_zlib_src_SOURCE_DIR}/cpu_features.c"
49
+ "${chromium_zlib_src_SOURCE_DIR}/cpu_features.h"
50
+ "${chromium_zlib_src_SOURCE_DIR}/crc32.c"
51
+ "${chromium_zlib_src_SOURCE_DIR}/crc32.h"
52
+ "${chromium_zlib_src_SOURCE_DIR}/deflate.c"
53
+ "${chromium_zlib_src_SOURCE_DIR}/deflate.h"
54
+ "${chromium_zlib_src_SOURCE_DIR}/gzclose.c"
55
+ "${chromium_zlib_src_SOURCE_DIR}/gzguts.h"
56
+ "${chromium_zlib_src_SOURCE_DIR}/gzlib.c"
57
+ "${chromium_zlib_src_SOURCE_DIR}/gzread.c"
58
+ "${chromium_zlib_src_SOURCE_DIR}/gzwrite.c"
59
+ "${chromium_zlib_src_SOURCE_DIR}/infback.c"
60
+ "${chromium_zlib_src_SOURCE_DIR}/inffast.c"
61
+ "${chromium_zlib_src_SOURCE_DIR}/inffast.h"
62
+ "${chromium_zlib_src_SOURCE_DIR}/inffixed.h"
63
+ "${chromium_zlib_src_SOURCE_DIR}/inflate.h"
64
+ "${chromium_zlib_src_SOURCE_DIR}/inftrees.c"
65
+ "${chromium_zlib_src_SOURCE_DIR}/inftrees.h"
66
+ "${chromium_zlib_src_SOURCE_DIR}/trees.c"
67
+ "${chromium_zlib_src_SOURCE_DIR}/trees.h"
68
+ "${chromium_zlib_src_SOURCE_DIR}/uncompr.c"
69
+ "${chromium_zlib_src_SOURCE_DIR}/zconf.h"
70
+ "${chromium_zlib_src_SOURCE_DIR}/zlib.h"
71
+ "${chromium_zlib_src_SOURCE_DIR}/zutil.c"
72
+ "${chromium_zlib_src_SOURCE_DIR}/zutil.h"
73
+ )
74
+
75
+ # x86_64-specific optimizations
76
+ string(APPEND CMAKE_C_FLAGS " -mssse3 -msse4.2 -mpclmul")
77
+ add_definitions(
78
+ -DCHROMIUM_ZLIB_NO_CHROMECONF
79
+ -DX86_NOT_WINDOWS
80
+ -DADLER32_SIMD_SSSE3
81
+ -DCRC32_SIMD_SSE42_PCLMUL
82
+ -DDEFLATE_FILL_WINDOW_SSE2
83
+ -DINFLATE_CHUNK_READ_64LE
84
+ -DINFLATE_CHUNK_SIMD_SSE2
85
+ )
86
+ list(APPEND SRC_ZLIB
87
+ "${chromium_zlib_src_SOURCE_DIR}/adler32_simd.c"
88
+ "${chromium_zlib_src_SOURCE_DIR}/adler32_simd.h"
89
+ "${chromium_zlib_src_SOURCE_DIR}/contrib/optimizations/chunkcopy.h"
90
+ "${chromium_zlib_src_SOURCE_DIR}/contrib/optimizations/inffast_chunk.c"
91
+ "${chromium_zlib_src_SOURCE_DIR}/contrib/optimizations/inffast_chunk.h"
92
+ "${chromium_zlib_src_SOURCE_DIR}/contrib/optimizations/inflate.c"
93
+ "${chromium_zlib_src_SOURCE_DIR}/crc32_simd.c"
94
+ "${chromium_zlib_src_SOURCE_DIR}/crc32_simd.h"
95
+ "${chromium_zlib_src_SOURCE_DIR}/crc_folding.c"
96
+ "${chromium_zlib_src_SOURCE_DIR}/fill_window_sse.c"
97
+ )
98
+
99
+ list(SORT SRC_ZLIB)
100
+ include_directories("${chromium_zlib_src_SOURCE_DIR}")
101
+ add_library(chromium_zlib OBJECT ${SRC_ZLIB})