rugged 0.27.7 → 0.27.10

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 (409) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rugged/version.rb +1 -1
  3. data/vendor/libgit2/AUTHORS +1 -0
  4. data/vendor/libgit2/CMakeLists.txt +99 -51
  5. data/vendor/libgit2/COPYING +28 -0
  6. data/vendor/libgit2/cmake/Modules/AddCFlagIfSupported.cmake +15 -1
  7. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +29 -0
  8. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +96 -0
  9. data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +9 -8
  10. data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
  11. data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
  12. data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +28 -0
  13. data/vendor/libgit2/cmake/Modules/FindIconv.cmake +11 -6
  14. data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +38 -0
  15. data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +37 -0
  16. data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
  17. data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +6 -0
  18. data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +110 -0
  19. data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +53 -0
  20. data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +124 -0
  21. data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +66 -0
  22. data/vendor/libgit2/deps/http-parser/http_parser.c +11 -6
  23. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +21 -0
  24. data/vendor/libgit2/deps/ntlmclient/compat.h +33 -0
  25. data/vendor/libgit2/deps/ntlmclient/crypt.h +64 -0
  26. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +120 -0
  27. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +18 -0
  28. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +145 -0
  29. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +18 -0
  30. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +130 -0
  31. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +21 -0
  32. data/vendor/libgit2/deps/ntlmclient/ntlm.c +1420 -0
  33. data/vendor/libgit2/deps/ntlmclient/ntlm.h +174 -0
  34. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +320 -0
  35. data/vendor/libgit2/deps/ntlmclient/unicode.h +36 -0
  36. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +445 -0
  37. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +201 -0
  38. data/vendor/libgit2/deps/ntlmclient/utf8.h +1257 -0
  39. data/vendor/libgit2/deps/ntlmclient/util.c +21 -0
  40. data/vendor/libgit2/deps/ntlmclient/util.h +14 -0
  41. data/vendor/libgit2/deps/pcre/CMakeLists.txt +140 -0
  42. data/vendor/libgit2/deps/pcre/COPYING +5 -0
  43. data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +22 -0
  44. data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +17 -0
  45. data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +58 -0
  46. data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +29 -0
  47. data/vendor/libgit2/deps/pcre/config.h.in +57 -0
  48. data/vendor/libgit2/deps/pcre/pcre.h +641 -0
  49. data/vendor/libgit2/deps/pcre/pcre_byte_order.c +319 -0
  50. data/vendor/libgit2/deps/pcre/pcre_chartables.c +198 -0
  51. data/vendor/libgit2/deps/pcre/pcre_compile.c +9800 -0
  52. data/vendor/libgit2/deps/pcre/pcre_config.c +190 -0
  53. data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +3676 -0
  54. data/vendor/libgit2/deps/pcre/pcre_exec.c +7173 -0
  55. data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +245 -0
  56. data/vendor/libgit2/deps/pcre/pcre_get.c +669 -0
  57. data/vendor/libgit2/deps/pcre/pcre_globals.c +86 -0
  58. data/vendor/libgit2/deps/pcre/pcre_internal.h +2787 -0
  59. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +11913 -0
  60. data/vendor/libgit2/deps/pcre/pcre_maketables.c +156 -0
  61. data/vendor/libgit2/deps/pcre/pcre_newline.c +210 -0
  62. data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +94 -0
  63. data/vendor/libgit2/deps/pcre/pcre_printint.c +834 -0
  64. data/vendor/libgit2/deps/pcre/pcre_refcount.c +92 -0
  65. data/vendor/libgit2/deps/pcre/pcre_string_utils.c +211 -0
  66. data/vendor/libgit2/deps/pcre/pcre_study.c +1686 -0
  67. data/vendor/libgit2/deps/pcre/pcre_tables.c +727 -0
  68. data/vendor/libgit2/deps/pcre/pcre_ucd.c +3644 -0
  69. data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +301 -0
  70. data/vendor/libgit2/deps/pcre/pcre_version.c +98 -0
  71. data/vendor/libgit2/deps/pcre/pcre_xclass.c +268 -0
  72. data/vendor/libgit2/deps/pcre/pcreposix.c +421 -0
  73. data/vendor/libgit2/deps/pcre/pcreposix.h +117 -0
  74. data/vendor/libgit2/deps/pcre/ucp.h +224 -0
  75. data/vendor/libgit2/deps/winhttp/COPYING.GPL +993 -0
  76. data/vendor/libgit2/deps/winhttp/COPYING.LGPL +502 -0
  77. data/vendor/libgit2/deps/zlib/CMakeLists.txt +1 -0
  78. data/vendor/libgit2/deps/zlib/COPYING +27 -0
  79. data/vendor/libgit2/deps/zlib/adler32.c +0 -7
  80. data/vendor/libgit2/deps/zlib/crc32.c +0 -7
  81. data/vendor/libgit2/include/git2/annotated_commit.h +9 -0
  82. data/vendor/libgit2/include/git2/apply.h +149 -0
  83. data/vendor/libgit2/include/git2/attr.h +20 -13
  84. data/vendor/libgit2/include/git2/blame.h +4 -4
  85. data/vendor/libgit2/include/git2/blob.h +44 -12
  86. data/vendor/libgit2/include/git2/buffer.h +20 -26
  87. data/vendor/libgit2/include/git2/cert.h +135 -0
  88. data/vendor/libgit2/include/git2/checkout.h +53 -21
  89. data/vendor/libgit2/include/git2/cherrypick.h +3 -3
  90. data/vendor/libgit2/include/git2/clone.h +5 -5
  91. data/vendor/libgit2/include/git2/commit.h +25 -3
  92. data/vendor/libgit2/include/git2/common.h +35 -10
  93. data/vendor/libgit2/include/git2/config.h +29 -19
  94. data/vendor/libgit2/include/git2/cred.h +308 -0
  95. data/vendor/libgit2/include/git2/deprecated.h +493 -0
  96. data/vendor/libgit2/include/git2/describe.h +4 -4
  97. data/vendor/libgit2/include/git2/diff.h +177 -135
  98. data/vendor/libgit2/include/git2/errors.h +53 -46
  99. data/vendor/libgit2/include/git2/filter.h +8 -0
  100. data/vendor/libgit2/include/git2/index.h +74 -52
  101. data/vendor/libgit2/include/git2/indexer.h +76 -6
  102. data/vendor/libgit2/include/git2/merge.h +25 -10
  103. data/vendor/libgit2/include/git2/net.h +0 -5
  104. data/vendor/libgit2/include/git2/notes.h +1 -1
  105. data/vendor/libgit2/include/git2/object.h +17 -29
  106. data/vendor/libgit2/include/git2/odb.h +12 -11
  107. data/vendor/libgit2/include/git2/odb_backend.h +10 -9
  108. data/vendor/libgit2/include/git2/oid.h +2 -2
  109. data/vendor/libgit2/include/git2/pack.h +14 -3
  110. data/vendor/libgit2/include/git2/proxy.h +5 -3
  111. data/vendor/libgit2/include/git2/rebase.h +46 -2
  112. data/vendor/libgit2/include/git2/refs.h +34 -16
  113. data/vendor/libgit2/include/git2/remote.h +111 -14
  114. data/vendor/libgit2/include/git2/repository.h +69 -34
  115. data/vendor/libgit2/include/git2/revert.h +1 -1
  116. data/vendor/libgit2/include/git2/revwalk.h +7 -7
  117. data/vendor/libgit2/include/git2/signature.h +2 -2
  118. data/vendor/libgit2/include/git2/stash.h +5 -5
  119. data/vendor/libgit2/include/git2/status.h +26 -17
  120. data/vendor/libgit2/include/git2/submodule.h +23 -6
  121. data/vendor/libgit2/include/git2/sys/alloc.h +18 -18
  122. data/vendor/libgit2/include/git2/sys/commit.h +1 -1
  123. data/vendor/libgit2/include/git2/sys/config.h +13 -13
  124. data/vendor/libgit2/include/git2/sys/cred.h +90 -0
  125. data/vendor/libgit2/include/git2/sys/filter.h +6 -6
  126. data/vendor/libgit2/include/git2/sys/merge.h +3 -3
  127. data/vendor/libgit2/include/git2/sys/odb_backend.h +66 -22
  128. data/vendor/libgit2/include/git2/sys/path.h +14 -5
  129. data/vendor/libgit2/include/git2/sys/refdb_backend.h +76 -40
  130. data/vendor/libgit2/include/git2/sys/repository.h +5 -1
  131. data/vendor/libgit2/include/git2/sys/stream.h +92 -12
  132. data/vendor/libgit2/include/git2/sys/transport.h +129 -83
  133. data/vendor/libgit2/include/git2/tag.h +13 -4
  134. data/vendor/libgit2/include/git2/trace.h +2 -2
  135. data/vendor/libgit2/include/git2/transport.h +11 -311
  136. data/vendor/libgit2/include/git2/tree.h +4 -4
  137. data/vendor/libgit2/include/git2/types.h +25 -106
  138. data/vendor/libgit2/include/git2/version.h +3 -3
  139. data/vendor/libgit2/include/git2/worktree.h +5 -5
  140. data/vendor/libgit2/include/git2.h +4 -0
  141. data/vendor/libgit2/src/CMakeLists.txt +104 -235
  142. data/vendor/libgit2/src/alloc.c +14 -18
  143. data/vendor/libgit2/src/{stdalloc.c → allocators/stdalloc.c} +7 -8
  144. data/vendor/libgit2/src/{stdalloc.h → allocators/stdalloc.h} +4 -4
  145. data/vendor/libgit2/src/allocators/win32_crtdbg.c +118 -0
  146. data/vendor/libgit2/src/{transports/cred.h → allocators/win32_crtdbg.h} +5 -4
  147. data/vendor/libgit2/src/annotated_commit.c +18 -11
  148. data/vendor/libgit2/src/apply.c +535 -28
  149. data/vendor/libgit2/src/apply.h +3 -1
  150. data/vendor/libgit2/src/array.h +2 -2
  151. data/vendor/libgit2/src/attr.c +77 -71
  152. data/vendor/libgit2/src/attr_file.c +203 -117
  153. data/vendor/libgit2/src/attr_file.h +9 -9
  154. data/vendor/libgit2/src/attrcache.c +49 -51
  155. data/vendor/libgit2/src/attrcache.h +2 -1
  156. data/vendor/libgit2/src/blame.c +38 -18
  157. data/vendor/libgit2/src/blame.h +1 -1
  158. data/vendor/libgit2/src/blame_git.c +29 -15
  159. data/vendor/libgit2/src/blob.c +123 -37
  160. data/vendor/libgit2/src/blob.h +19 -2
  161. data/vendor/libgit2/src/branch.c +47 -23
  162. data/vendor/libgit2/src/buf_text.c +7 -6
  163. data/vendor/libgit2/src/buffer.c +60 -53
  164. data/vendor/libgit2/src/cache.c +38 -45
  165. data/vendor/libgit2/src/cache.h +3 -3
  166. data/vendor/libgit2/src/cc-compat.h +20 -3
  167. data/vendor/libgit2/src/checkout.c +77 -67
  168. data/vendor/libgit2/src/cherrypick.c +12 -6
  169. data/vendor/libgit2/src/clone.c +36 -14
  170. data/vendor/libgit2/src/clone.h +4 -0
  171. data/vendor/libgit2/src/commit.c +103 -48
  172. data/vendor/libgit2/src/commit.h +7 -0
  173. data/vendor/libgit2/src/commit_list.c +36 -78
  174. data/vendor/libgit2/src/commit_list.h +2 -2
  175. data/vendor/libgit2/src/common.h +24 -90
  176. data/vendor/libgit2/src/config.c +203 -176
  177. data/vendor/libgit2/src/config.h +8 -20
  178. data/vendor/libgit2/src/config_backend.h +96 -0
  179. data/vendor/libgit2/src/config_cache.c +41 -35
  180. data/vendor/libgit2/src/config_entries.c +229 -0
  181. data/vendor/libgit2/src/config_entries.h +24 -0
  182. data/vendor/libgit2/src/config_file.c +422 -680
  183. data/vendor/libgit2/src/config_mem.c +220 -0
  184. data/vendor/libgit2/src/config_parse.c +96 -68
  185. data/vendor/libgit2/src/config_parse.h +15 -14
  186. data/vendor/libgit2/src/config_snapshot.c +206 -0
  187. data/vendor/libgit2/src/crlf.c +219 -196
  188. data/vendor/libgit2/src/delta.c +25 -18
  189. data/vendor/libgit2/src/describe.c +42 -41
  190. data/vendor/libgit2/src/diff.c +52 -67
  191. data/vendor/libgit2/src/diff.h +2 -1
  192. data/vendor/libgit2/src/diff_driver.c +44 -46
  193. data/vendor/libgit2/src/diff_file.c +16 -14
  194. data/vendor/libgit2/src/diff_file.h +1 -1
  195. data/vendor/libgit2/src/diff_generate.c +158 -103
  196. data/vendor/libgit2/src/diff_generate.h +3 -3
  197. data/vendor/libgit2/src/diff_parse.c +4 -4
  198. data/vendor/libgit2/src/diff_print.c +34 -22
  199. data/vendor/libgit2/src/diff_stats.c +22 -7
  200. data/vendor/libgit2/src/diff_tform.c +18 -16
  201. data/vendor/libgit2/src/diff_xdiff.c +3 -3
  202. data/vendor/libgit2/src/errors.c +51 -39
  203. data/vendor/libgit2/src/errors.h +81 -0
  204. data/vendor/libgit2/src/features.h.in +9 -3
  205. data/vendor/libgit2/src/fetch.c +8 -3
  206. data/vendor/libgit2/src/fetchhead.c +12 -12
  207. data/vendor/libgit2/src/filebuf.c +28 -32
  208. data/vendor/libgit2/src/filebuf.h +2 -2
  209. data/vendor/libgit2/src/filter.c +47 -33
  210. data/vendor/libgit2/src/filter.h +0 -10
  211. data/vendor/libgit2/src/{fileops.c → futils.c} +70 -63
  212. data/vendor/libgit2/src/{fileops.h → futils.h} +6 -6
  213. data/vendor/libgit2/src/global.c +35 -55
  214. data/vendor/libgit2/src/global.h +0 -2
  215. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +48 -0
  216. data/vendor/libgit2/src/hash/sha1/collisiondetect.h +19 -0
  217. data/vendor/libgit2/src/hash/{hash_common_crypto.h → sha1/common_crypto.c} +17 -17
  218. data/vendor/libgit2/src/hash/sha1/common_crypto.h +19 -0
  219. data/vendor/libgit2/src/hash/{hash_generic.c → sha1/generic.c} +22 -10
  220. data/vendor/libgit2/src/hash/{hash_generic.h → sha1/generic.h} +4 -10
  221. data/vendor/libgit2/src/hash/{hash_mbedtls.c → sha1/mbedtls.c} +15 -7
  222. data/vendor/libgit2/src/hash/{hash_mbedtls.h → sha1/mbedtls.h} +6 -7
  223. data/vendor/libgit2/src/hash/sha1/openssl.c +59 -0
  224. data/vendor/libgit2/src/hash/sha1/openssl.h +19 -0
  225. data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.c +14 -3
  226. data/vendor/libgit2/src/hash/{hash_win32.c → sha1/win32.c} +47 -37
  227. data/vendor/libgit2/src/hash/{hash_win32.h → sha1/win32.h} +6 -19
  228. data/vendor/libgit2/src/hash/sha1.h +38 -0
  229. data/vendor/libgit2/src/hash.c +61 -0
  230. data/vendor/libgit2/src/hash.h +20 -21
  231. data/vendor/libgit2/src/hashsig.c +5 -5
  232. data/vendor/libgit2/src/idxmap.c +107 -61
  233. data/vendor/libgit2/src/idxmap.h +153 -31
  234. data/vendor/libgit2/src/ignore.c +38 -42
  235. data/vendor/libgit2/src/index.c +264 -199
  236. data/vendor/libgit2/src/index.h +7 -1
  237. data/vendor/libgit2/src/indexer.c +338 -167
  238. data/vendor/libgit2/src/integer.h +71 -26
  239. data/vendor/libgit2/src/iterator.c +134 -62
  240. data/vendor/libgit2/src/iterator.h +15 -0
  241. data/vendor/libgit2/src/mailmap.c +8 -8
  242. data/vendor/libgit2/src/map.h +1 -1
  243. data/vendor/libgit2/src/merge.c +137 -93
  244. data/vendor/libgit2/src/merge_driver.c +11 -11
  245. data/vendor/libgit2/src/merge_file.c +2 -2
  246. data/vendor/libgit2/src/mwindow.c +24 -29
  247. data/vendor/libgit2/src/mwindow.h +4 -4
  248. data/vendor/libgit2/src/net.c +184 -0
  249. data/vendor/libgit2/src/net.h +36 -0
  250. data/vendor/libgit2/src/netops.c +55 -156
  251. data/vendor/libgit2/src/netops.h +3 -23
  252. data/vendor/libgit2/src/notes.c +14 -9
  253. data/vendor/libgit2/src/object.c +120 -69
  254. data/vendor/libgit2/src/object.h +22 -9
  255. data/vendor/libgit2/src/object_api.c +8 -8
  256. data/vendor/libgit2/src/odb.c +111 -88
  257. data/vendor/libgit2/src/odb.h +8 -7
  258. data/vendor/libgit2/src/odb_loose.c +58 -47
  259. data/vendor/libgit2/src/odb_mempack.c +21 -34
  260. data/vendor/libgit2/src/odb_pack.c +17 -13
  261. data/vendor/libgit2/src/offmap.c +53 -35
  262. data/vendor/libgit2/src/offmap.h +108 -21
  263. data/vendor/libgit2/src/oid.c +12 -7
  264. data/vendor/libgit2/src/oidmap.c +49 -47
  265. data/vendor/libgit2/src/oidmap.h +101 -24
  266. data/vendor/libgit2/src/pack-objects.c +87 -86
  267. data/vendor/libgit2/src/pack-objects.h +2 -8
  268. data/vendor/libgit2/src/pack.c +94 -96
  269. data/vendor/libgit2/src/pack.h +16 -18
  270. data/vendor/libgit2/src/parse.c +17 -4
  271. data/vendor/libgit2/src/parse.h +3 -3
  272. data/vendor/libgit2/src/patch.c +3 -3
  273. data/vendor/libgit2/src/patch_generate.c +18 -18
  274. data/vendor/libgit2/src/patch_parse.c +147 -79
  275. data/vendor/libgit2/src/path.c +207 -62
  276. data/vendor/libgit2/src/path.h +14 -0
  277. data/vendor/libgit2/src/pathspec.c +18 -18
  278. data/vendor/libgit2/src/pool.c +26 -22
  279. data/vendor/libgit2/src/pool.h +7 -7
  280. data/vendor/libgit2/src/posix.c +10 -10
  281. data/vendor/libgit2/src/posix.h +12 -1
  282. data/vendor/libgit2/src/proxy.c +8 -3
  283. data/vendor/libgit2/src/push.c +35 -29
  284. data/vendor/libgit2/src/push.h +2 -1
  285. data/vendor/libgit2/src/reader.c +265 -0
  286. data/vendor/libgit2/src/reader.h +107 -0
  287. data/vendor/libgit2/src/rebase.c +97 -38
  288. data/vendor/libgit2/src/refdb.c +15 -3
  289. data/vendor/libgit2/src/refdb_fs.c +318 -222
  290. data/vendor/libgit2/src/reflog.c +13 -15
  291. data/vendor/libgit2/src/refs.c +122 -89
  292. data/vendor/libgit2/src/refs.h +5 -3
  293. data/vendor/libgit2/src/refspec.c +27 -33
  294. data/vendor/libgit2/src/regexp.c +221 -0
  295. data/vendor/libgit2/src/regexp.h +97 -0
  296. data/vendor/libgit2/src/remote.c +229 -178
  297. data/vendor/libgit2/src/remote.h +11 -2
  298. data/vendor/libgit2/src/repository.c +227 -172
  299. data/vendor/libgit2/src/repository.h +52 -40
  300. data/vendor/libgit2/src/reset.c +7 -7
  301. data/vendor/libgit2/src/revert.c +11 -6
  302. data/vendor/libgit2/src/revparse.c +46 -46
  303. data/vendor/libgit2/src/revwalk.c +89 -54
  304. data/vendor/libgit2/src/revwalk.h +20 -0
  305. data/vendor/libgit2/src/settings.c +22 -9
  306. data/vendor/libgit2/src/signature.c +15 -13
  307. data/vendor/libgit2/src/sortedcache.c +22 -36
  308. data/vendor/libgit2/src/sortedcache.h +1 -1
  309. data/vendor/libgit2/src/stash.c +56 -76
  310. data/vendor/libgit2/src/status.c +27 -21
  311. data/vendor/libgit2/src/stream.h +17 -2
  312. data/vendor/libgit2/src/streams/mbedtls.c +100 -80
  313. data/vendor/libgit2/src/streams/mbedtls.h +5 -2
  314. data/vendor/libgit2/src/streams/openssl.c +93 -81
  315. data/vendor/libgit2/src/streams/openssl.h +5 -2
  316. data/vendor/libgit2/src/streams/registry.c +118 -0
  317. data/vendor/libgit2/src/streams/registry.h +19 -0
  318. data/vendor/libgit2/src/streams/socket.c +55 -30
  319. data/vendor/libgit2/src/streams/stransport.c +57 -32
  320. data/vendor/libgit2/src/streams/stransport.h +5 -0
  321. data/vendor/libgit2/src/streams/tls.c +48 -20
  322. data/vendor/libgit2/src/streams/tls.h +12 -4
  323. data/vendor/libgit2/src/strmap.c +47 -74
  324. data/vendor/libgit2/src/strmap.h +108 -33
  325. data/vendor/libgit2/src/submodule.c +190 -169
  326. data/vendor/libgit2/src/submodule.h +1 -1
  327. data/vendor/libgit2/src/sysdir.c +25 -15
  328. data/vendor/libgit2/src/tag.c +39 -26
  329. data/vendor/libgit2/src/tag.h +2 -1
  330. data/vendor/libgit2/src/trace.c +2 -2
  331. data/vendor/libgit2/src/trace.h +2 -2
  332. data/vendor/libgit2/src/trailer.c +46 -32
  333. data/vendor/libgit2/src/transaction.c +30 -29
  334. data/vendor/libgit2/src/transport.c +3 -3
  335. data/vendor/libgit2/src/transports/auth.c +14 -10
  336. data/vendor/libgit2/src/transports/auth.h +10 -3
  337. data/vendor/libgit2/src/transports/auth_negotiate.c +31 -16
  338. data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
  339. data/vendor/libgit2/src/transports/auth_ntlm.c +223 -0
  340. data/vendor/libgit2/src/transports/auth_ntlm.h +35 -0
  341. data/vendor/libgit2/src/transports/cred.c +24 -24
  342. data/vendor/libgit2/src/transports/git.c +25 -30
  343. data/vendor/libgit2/src/transports/http.c +871 -335
  344. data/vendor/libgit2/src/transports/http.h +2 -0
  345. data/vendor/libgit2/src/transports/local.c +28 -28
  346. data/vendor/libgit2/src/transports/smart.c +64 -46
  347. data/vendor/libgit2/src/transports/smart.h +5 -6
  348. data/vendor/libgit2/src/transports/smart_pkt.c +162 -151
  349. data/vendor/libgit2/src/transports/smart_protocol.c +64 -94
  350. data/vendor/libgit2/src/transports/ssh.c +76 -65
  351. data/vendor/libgit2/src/transports/winhttp.c +328 -319
  352. data/vendor/libgit2/src/tree-cache.c +21 -14
  353. data/vendor/libgit2/src/tree.c +119 -112
  354. data/vendor/libgit2/src/tree.h +1 -0
  355. data/vendor/libgit2/src/unix/map.c +3 -3
  356. data/vendor/libgit2/src/unix/posix.h +1 -11
  357. data/vendor/libgit2/src/userdiff.h +3 -1
  358. data/vendor/libgit2/src/util.c +154 -93
  359. data/vendor/libgit2/src/util.h +19 -23
  360. data/vendor/libgit2/src/vector.c +15 -10
  361. data/vendor/libgit2/src/wildmatch.c +320 -0
  362. data/vendor/libgit2/src/wildmatch.h +23 -0
  363. data/vendor/libgit2/src/win32/dir.c +3 -3
  364. data/vendor/libgit2/src/win32/findfile.c +1 -1
  365. data/vendor/libgit2/src/win32/map.c +9 -11
  366. data/vendor/libgit2/src/win32/msvc-compat.h +6 -0
  367. data/vendor/libgit2/src/win32/path_w32.c +113 -9
  368. data/vendor/libgit2/src/win32/path_w32.h +18 -29
  369. data/vendor/libgit2/src/win32/posix.h +1 -4
  370. data/vendor/libgit2/src/win32/posix_w32.c +69 -44
  371. data/vendor/libgit2/src/win32/precompiled.h +0 -2
  372. data/vendor/libgit2/src/win32/thread.c +5 -10
  373. data/vendor/libgit2/src/win32/w32_buffer.c +9 -5
  374. data/vendor/libgit2/src/win32/w32_common.h +39 -0
  375. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +2 -95
  376. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -2
  377. data/vendor/libgit2/src/win32/w32_stack.c +6 -11
  378. data/vendor/libgit2/src/win32/w32_stack.h +3 -3
  379. data/vendor/libgit2/src/win32/w32_util.c +27 -64
  380. data/vendor/libgit2/src/win32/w32_util.h +5 -49
  381. data/vendor/libgit2/src/worktree.c +44 -30
  382. data/vendor/libgit2/src/xdiff/xdiffi.c +5 -5
  383. data/vendor/libgit2/src/xdiff/xhistogram.c +1 -1
  384. data/vendor/libgit2/src/xdiff/xmerge.c +27 -15
  385. data/vendor/libgit2/src/xdiff/xpatience.c +3 -0
  386. data/vendor/libgit2/src/zstream.c +4 -4
  387. metadata +115 -38
  388. data/vendor/libgit2/deps/regex/CMakeLists.txt +0 -2
  389. data/vendor/libgit2/deps/regex/config.h +0 -7
  390. data/vendor/libgit2/deps/regex/regcomp.c +0 -3857
  391. data/vendor/libgit2/deps/regex/regex.c +0 -92
  392. data/vendor/libgit2/deps/regex/regex.h +0 -582
  393. data/vendor/libgit2/deps/regex/regex_internal.c +0 -1744
  394. data/vendor/libgit2/deps/regex/regex_internal.h +0 -819
  395. data/vendor/libgit2/deps/regex/regexec.c +0 -4369
  396. data/vendor/libgit2/include/git2/inttypes.h +0 -309
  397. data/vendor/libgit2/include/git2/sys/time.h +0 -31
  398. data/vendor/libgit2/libgit2.pc.in +0 -13
  399. data/vendor/libgit2/src/config_file.h +0 -73
  400. data/vendor/libgit2/src/fnmatch.c +0 -248
  401. data/vendor/libgit2/src/fnmatch.h +0 -48
  402. data/vendor/libgit2/src/hash/hash_collisiondetect.h +0 -47
  403. data/vendor/libgit2/src/hash/hash_openssl.h +0 -59
  404. data/vendor/libgit2/src/streams/curl.c +0 -385
  405. data/vendor/libgit2/src/streams/curl.h +0 -17
  406. /data/vendor/libgit2/deps/http-parser/{LICENSE-MIT → COPYING} +0 -0
  407. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.h +0 -0
  408. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.c +0 -0
  409. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.h +0 -0
@@ -3,6 +3,8 @@ IF(DEBUG_POOL)
3
3
  ENDIF()
4
4
  ADD_FEATURE_INFO(debugpool GIT_DEBUG_POOL "debug pool allocator")
5
5
 
6
+ INCLUDE(PkgBuildConfig)
7
+
6
8
  # This variable will contain the libraries we need to put into
7
9
  # libgit2.pc's Requires.private. That is, what we're linking to or
8
10
  # what someone who's statically linking us needs to link to.
@@ -25,43 +27,30 @@ SET(BIN_INSTALL_DIR bin CACHE PATH "Where to install binaries to.")
25
27
  SET(LIB_INSTALL_DIR lib CACHE PATH "Where to install libraries to.")
26
28
  SET(INCLUDE_INSTALL_DIR include CACHE PATH "Where to install headers to.")
27
29
 
28
- # Set a couple variables to be substituted inside the .pc file.
29
- # We can't just use LIB_INSTALL_DIR in the .pc file, as passing them as absolue
30
- # or relative paths is both valid and supported by cmake.
31
- SET (PKGCONFIG_PREFIX ${CMAKE_INSTALL_PREFIX})
32
-
33
- IF(IS_ABSOLUTE ${LIB_INSTALL_DIR})
34
- SET (PKGCONFIG_LIBDIR ${LIB_INSTALL_DIR})
35
- ELSE(IS_ABSOLUTE ${LIB_INSTALL_DIR})
36
- SET (PKGCONFIG_LIBDIR "\${prefix}/${LIB_INSTALL_DIR}")
37
- ENDIF (IS_ABSOLUTE ${LIB_INSTALL_DIR})
38
-
39
- IF(IS_ABSOLUTE ${INCLUDE_INSTALL_DIR})
40
- SET (PKGCONFIG_INCLUDEDIR ${INCLUDE_INSTALL_DIR})
41
- ELSE(IS_ABSOLUTE ${INCLUDE_INSTALL_DIR})
42
- SET (PKGCONFIG_INCLUDEDIR "\${prefix}/${INCLUDE_INSTALL_DIR}")
43
- ENDIF(IS_ABSOLUTE ${INCLUDE_INSTALL_DIR})
44
-
45
30
  # Enable tracing
46
31
  IF (ENABLE_TRACE STREQUAL "ON")
47
32
  SET(GIT_TRACE 1)
48
33
  ENDIF()
49
34
  ADD_FEATURE_INFO(tracing GIT_TRACE "tracing support")
50
35
 
51
- CHECK_SYMBOL_EXISTS(regcomp_l "regex.h;xlocale.h" HAVE_REGCOMP_L)
52
- IF (HAVE_REGCOMP_L)
53
- SET(GIT_USE_REGCOMP_L 1)
54
- ENDIF ()
55
-
56
36
  CHECK_FUNCTION_EXISTS(futimens HAVE_FUTIMENS)
57
37
  IF (HAVE_FUTIMENS)
58
38
  SET(GIT_USE_FUTIMENS 1)
59
39
  ENDIF ()
60
40
 
61
- CHECK_FUNCTION_EXISTS(qsort_r HAVE_QSORT_R)
62
- IF (HAVE_QSORT_R)
63
- ADD_DEFINITIONS(-DHAVE_QSORT_R)
64
- ENDIF ()
41
+ CHECK_PROTOTYPE_DEFINITION(qsort_r
42
+ "void qsort_r(void *base, size_t nmemb, size_t size, void *thunk, int (*compar)(void *, const void *, const void *))"
43
+ "" "stdlib.h" HAVE_QSORT_R_BSD)
44
+ IF (HAVE_QSORT_R_BSD)
45
+ ADD_DEFINITIONS(-DHAVE_QSORT_R_BSD)
46
+ ENDIF()
47
+
48
+ CHECK_PROTOTYPE_DEFINITION(qsort_r
49
+ "void qsort_r(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *, void *), void *arg)"
50
+ "" "stdlib.h" HAVE_QSORT_R_GNU)
51
+ IF (HAVE_QSORT_R_GNU)
52
+ ADD_DEFINITIONS(-DHAVE_QSORT_R_GNU)
53
+ ENDIF()
65
54
 
66
55
  CHECK_FUNCTION_EXISTS(qsort_s HAVE_QSORT_S)
67
56
  IF (HAVE_QSORT_S)
@@ -108,7 +97,7 @@ IF (WIN32 AND WINHTTP)
108
97
  IF (MINGW)
109
98
  ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/winhttp" "${libgit2_BINARY_DIR}/deps/winhttp")
110
99
  LIST(APPEND LIBGIT2_LIBS winhttp)
111
- LIST(APPEND LIBGIT2_SYSTEM_INCLUDES "${libgit2_SOURCE_DIR}/deps/winhttp")
100
+ LIST(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/winhttp")
112
101
  ELSE()
113
102
  LIST(APPEND LIBGIT2_LIBS "winhttp")
114
103
  LIST(APPEND LIBGIT2_PC_LIBS "-lwinhttp")
@@ -116,204 +105,79 @@ IF (WIN32 AND WINHTTP)
116
105
 
117
106
  LIST(APPEND LIBGIT2_LIBS "rpcrt4" "crypt32" "ole32")
118
107
  LIST(APPEND LIBGIT2_PC_LIBS "-lrpcrt4" "-lcrypt32" "-lole32")
119
- ELSE ()
120
- IF (CURL)
121
- FIND_PKGLIBRARIES(CURL libcurl)
122
- ENDIF ()
123
- IF (CURL_FOUND)
124
- SET(GIT_CURL 1)
125
- LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${CURL_INCLUDE_DIRS})
126
- LIST(APPEND LIBGIT2_LIBS ${CURL_LIBRARIES})
127
- LIST(APPEND LIBGIT2_PC_LIBS ${CURL_LDFLAGS})
128
- ENDIF()
129
- ADD_FEATURE_INFO(cURL GIT_CURL "cURL for HTTP proxy support")
130
108
  ENDIF()
131
109
 
132
- IF (USE_HTTPS)
133
- # We try to find any packages our backends might use
134
- FIND_PACKAGE(OpenSSL)
135
- FIND_PACKAGE(mbedTLS)
136
- IF (CMAKE_SYSTEM_NAME MATCHES "Darwin")
137
- FIND_PACKAGE(Security)
138
- FIND_PACKAGE(CoreFoundation)
139
- ENDIF()
110
+ Include(SelectHTTPSBackend)
111
+ Include(SelectHashes)
140
112
 
141
- # Auto-select TLS backend
142
- IF (USE_HTTPS STREQUAL ON)
143
- IF (SECURITY_FOUND)
144
- IF (SECURITY_HAS_SSLCREATECONTEXT)
145
- SET(HTTPS_BACKEND "SecureTransport")
146
- ELSE()
147
- MESSAGE("-- Security framework is too old, falling back to OpenSSL")
148
- SET(HTTPS_BACKEND "OpenSSL")
149
- ENDIF()
150
- ELSEIF (WINHTTP)
151
- SET(HTTPS_BACKEND "WinHTTP")
152
- ELSEIF(OPENSSL_FOUND)
153
- SET(HTTPS_BACKEND "OpenSSL")
154
- ELSEIF(MBEDTLS_FOUND)
155
- SET(HTTPS_BACKEND "mbedTLS")
156
- ELSE()
157
- MESSAGE(FATAL_ERROR "Unable to autodetect a usable HTTPS backend."
158
- "Please pass the backend name explicitly (-DUSE_HTTPS=backend)")
159
- ENDIF()
160
- ELSE()
161
- # Backend was explicitly set
162
- SET(HTTPS_BACKEND ${USE_HTTPS})
163
- ENDIF()
164
-
165
- # Check that we can find what's required for the selected backend
166
- IF (HTTPS_BACKEND STREQUAL "SecureTransport")
167
- IF (NOT COREFOUNDATION_FOUND)
168
- MESSAGE(FATAL_ERROR "Cannot use SecureTransport backend, CoreFoundation.framework not found")
169
- ENDIF()
170
- IF (NOT SECURITY_FOUND)
171
- MESSAGE(FATAL_ERROR "Cannot use SecureTransport backend, Security.framework not found")
172
- ENDIF()
173
- IF (NOT SECURITY_HAS_SSLCREATECONTEXT)
174
- MESSAGE(FATAL_ERROR "Cannot use SecureTransport backend, SSLCreateContext not supported")
175
- ENDIF()
176
-
177
- SET(GIT_SECURE_TRANSPORT 1)
178
- LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${SECURITY_INCLUDE_DIR})
179
- LIST(APPEND LIBGIT2_LIBS ${COREFOUNDATION_LIBRARIES} ${SECURITY_LIBRARIES})
180
- LIST(APPEND LIBGIT2_PC_LIBS ${COREFOUNDATION_LDFLAGS} ${SECURITY_LDFLAGS})
181
- ELSEIF (HTTPS_BACKEND STREQUAL "OpenSSL")
182
- IF (NOT OPENSSL_FOUND)
183
- MESSAGE(FATAL_ERROR "Asked for OpenSSL TLS backend, but it wasn't found")
184
- ENDIF()
113
+ # Specify regular expression implementation
114
+ FIND_PACKAGE(PCRE)
185
115
 
186
- SET(GIT_OPENSSL 1)
187
- LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${OPENSSL_INCLUDE_DIR})
188
- LIST(APPEND LIBGIT2_LIBS ${OPENSSL_LIBRARIES})
189
- LIST(APPEND LIBGIT2_PC_LIBS ${OPENSSL_LDFLAGS})
190
- LIST(APPEND LIBGIT2_PC_REQUIRES "openssl")
191
- ELSEIF(HTTPS_BACKEND STREQUAL "mbedTLS")
192
- IF (NOT MBEDTLS_FOUND)
193
- MESSAGE(FATAL_ERROR "Asked for mbedTLS backend, but it wasn't found")
194
- ENDIF()
116
+ IF(REGEX_BACKEND STREQUAL "")
117
+ CHECK_SYMBOL_EXISTS(regcomp_l "regex.h;xlocale.h" HAVE_REGCOMP_L)
195
118
 
196
- IF(NOT CERT_LOCATION)
197
- MESSAGE("Auto-detecting default certificates location")
198
- IF(CMAKE_SYSTEM_NAME MATCHES Darwin)
199
- # Check for an Homebrew installation
200
- SET(OPENSSL_CMD "/usr/local/opt/openssl/bin/openssl")
201
- ELSE()
202
- SET(OPENSSL_CMD "openssl")
203
- ENDIF()
204
- EXECUTE_PROCESS(COMMAND ${OPENSSL_CMD} version -d OUTPUT_VARIABLE OPENSSL_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
205
- IF(OPENSSL_DIR)
206
- STRING(REGEX REPLACE "^OPENSSLDIR: \"(.*)\"$" "\\1/" OPENSSL_DIR ${OPENSSL_DIR})
207
-
208
- SET(OPENSSL_CA_LOCATIONS
209
- "ca-bundle.pem" # OpenSUSE Leap 42.1
210
- "cert.pem" # Ubuntu 14.04, FreeBSD
211
- "certs/ca-certificates.crt" # Ubuntu 16.04
212
- "certs/ca.pem" # Debian 7
213
- )
214
- FOREACH(SUFFIX IN LISTS OPENSSL_CA_LOCATIONS)
215
- SET(LOC "${OPENSSL_DIR}${SUFFIX}")
216
- IF(NOT CERT_LOCATION AND EXISTS "${OPENSSL_DIR}${SUFFIX}")
217
- SET(CERT_LOCATION ${LOC})
218
- ENDIF()
219
- ENDFOREACH()
220
- ELSE()
221
- MESSAGE("Unable to find OpenSSL executable. Please provide default certificate location via CERT_LOCATION")
222
- ENDIF()
223
- ENDIF()
224
-
225
- IF(CERT_LOCATION)
226
- IF(NOT EXISTS ${CERT_LOCATION})
227
- MESSAGE(FATAL_ERROR "Cannot use CERT_LOCATION=${CERT_LOCATION} as it doesn't exist")
228
- ENDIF()
229
- ADD_FEATURE_INFO(CERT_LOCATION ON "using certificates from ${CERT_LOCATION}")
230
- ADD_DEFINITIONS(-DGIT_DEFAULT_CERT_LOCATION="${CERT_LOCATION}")
231
- ENDIF()
232
-
233
- SET(GIT_MBEDTLS 1)
234
- LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${MBEDTLS_INCLUDE_DIR})
235
- LIST(APPEND LIBGIT2_LIBS ${MBEDTLS_LIBRARIES})
236
- # mbedTLS has no pkgconfig file, hence we can't require it
237
- # https://github.com/ARMmbed/mbedtls/issues/228
238
- # For now, pass its link flags as our own
239
- LIST(APPEND LIBGIT2_PC_LIBS ${MBEDTLS_LIBRARIES})
240
- ELSEIF (HTTPS_BACKEND STREQUAL "WinHTTP")
241
- # WinHTTP setup was handled in the WinHTTP-specific block above
119
+ IF(HAVE_REGCOMP_L)
120
+ SET(REGEX_BACKEND "regcomp_l")
121
+ ELSEIF(PCRE_FOUND)
122
+ SET(REGEX_BACKEND "pcre")
242
123
  ELSE()
243
- MESSAGE(FATAL_ERROR "Asked for backend ${HTTPS_BACKEND} but it wasn't found")
124
+ SET(REGEX_BACKEND "builtin")
244
125
  ENDIF()
245
-
246
- ADD_FEATURE_INFO(HTTPS ON "using ${HTTPS_BACKEND}")
247
- SET(GIT_HTTPS 1)
248
- ELSE()
249
- ADD_FEATURE_INFO(HTTPS OFF "no support")
250
126
  ENDIF()
251
127
 
252
- # Specify sha1 implementation
253
- IF(SHA1_BACKEND STREQUAL "OpenSSL")
254
- IF(NOT OPENSSL_FOUND)
255
- FIND_PACKAGE(OpenSSL)
256
- IF(NOT OPENSSL_FOUND)
257
- MESSAGE(FATAL_ERROR "Requested OpenSSL SHA1 backend, but OpenSSL could not be found")
258
- ENDIF()
259
- ENDIF()
128
+ IF(REGEX_BACKEND STREQUAL "regcomp_l")
129
+ ADD_FEATURE_INFO(regex ON "using system regcomp_l")
130
+ SET(GIT_REGEX_REGCOMP_L 1)
131
+ ELSEIF(REGEX_BACKEND STREQUAL "pcre2")
132
+ FIND_PACKAGE(PCRE2)
260
133
 
261
- ADD_FEATURE_INFO(SHA ON "using OpenSSL")
262
- SET(GIT_SHA1_OPENSSL 1)
263
- IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
264
- LIST(APPEND LIBGIT2_PC_LIBS "-lssl")
265
- ELSE()
266
- LIST(APPEND LIBGIT2_PC_REQUIRES "openssl")
134
+ IF(NOT PCRE2_FOUND)
135
+ MESSAGE(FATAL_ERROR "PCRE2 support was requested but not found")
267
136
  ENDIF()
268
- ELSEIF(SHA1_BACKEND STREQUAL "CollisionDetection")
269
- ADD_FEATURE_INFO(SHA ON "using CollisionDetection")
270
- SET(GIT_SHA1_COLLISIONDETECT 1)
271
- ADD_DEFINITIONS(-DSHA1DC_NO_STANDARD_INCLUDES=1)
272
- ADD_DEFINITIONS(-DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"common.h\")
273
- ADD_DEFINITIONS(-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"common.h\")
274
- FILE(GLOB SRC_SHA1 hash/hash_collisiondetect.c hash/sha1dc/*)
275
- ELSEIF(SHA1_BACKEND STREQUAL "Generic")
276
- ADD_FEATURE_INFO(SHA ON "using Generic")
277
- FILE(GLOB SRC_SHA1 hash/hash_generic.c)
278
- ELSEIF(SHA1_BACKEND STREQUAL "Win32")
279
- ADD_FEATURE_INFO(SHA ON "using Win32")
280
- SET(GIT_SHA1_WIN32 1)
281
- FILE(GLOB SRC_SHA1 hash/hash_win32.c)
282
- ELSEIF(SHA1_BACKEND STREQUAL "CommonCrypto")
283
- ADD_FEATURE_INFO(SHA ON "using CommonCrypto")
284
- SET(GIT_SHA1_COMMON_CRYPTO 1)
285
- ELSEIF (SHA1_BACKEND STREQUAL "mbedTLS")
286
- ADD_FEATURE_INFO(SHA ON "using mbedTLS")
287
- SET(GIT_SHA1_MBEDTLS 1)
288
- FILE(GLOB SRC_SHA1 hash/hash_mbedtls.c)
289
- LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${MBEDTLS_INCLUDE_DIR})
290
- LIST(APPEND LIBGIT2_LIBS ${MBEDTLS_LIBRARIES})
291
- # mbedTLS has no pkgconfig file, hence we can't require it
292
- # https://github.com/ARMmbed/mbedtls/issues/228
293
- # For now, pass its link flags as our own
294
- LIST(APPEND LIBGIT2_PC_LIBS ${MBEDTLS_LIBRARIES})
295
- ELSE()
296
- MESSAGE(FATAL_ERROR "Asked for unknown SHA1 backend ${SHA1_BACKEND}")
297
- ENDIF()
298
137
 
299
- # Include POSIX regex when it is required
300
- IF(WIN32 OR AMIGA OR CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
301
- ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/regex" "${libgit2_BINARY_DIR}/deps/regex")
302
- LIST(APPEND LIBGIT2_SYSTEM_INCLUDES "${libgit2_SOURCE_DIR}/deps/regex")
303
- LIST(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:regex>)
138
+ ADD_FEATURE_INFO(regex ON "using system PCRE2")
139
+ SET(GIT_REGEX_PCRE2 1)
140
+
141
+ LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${PCRE2_INCLUDE_DIRS})
142
+ LIST(APPEND LIBGIT2_LIBS ${PCRE2_LIBRARIES})
143
+ LIST(APPEND LIBGIT2_PC_REQUIRES "libpcre2")
144
+ ELSEIF(REGEX_BACKEND STREQUAL "pcre")
145
+ ADD_FEATURE_INFO(regex ON "using system PCRE")
146
+ SET(GIT_REGEX_PCRE 1)
147
+
148
+ LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${PCRE_INCLUDE_DIRS})
149
+ LIST(APPEND LIBGIT2_LIBS ${PCRE_LIBRARIES})
150
+ LIST(APPEND LIBGIT2_PC_REQUIRES "libpcre")
151
+ ELSEIF(REGEX_BACKEND STREQUAL "regcomp")
152
+ ADD_FEATURE_INFO(regex ON "using system regcomp")
153
+ SET(GIT_REGEX_REGCOMP 1)
154
+ ELSEIF(REGEX_BACKEND STREQUAL "builtin")
155
+ ADD_FEATURE_INFO(regex ON "using bundled PCRE")
156
+ SET(GIT_REGEX_BUILTIN 1)
157
+
158
+ ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/pcre" "${libgit2_BINARY_DIR}/deps/pcre")
159
+ LIST(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/pcre")
160
+ LIST(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:pcre>)
161
+ ELSE()
162
+ MESSAGE(FATAL_ERROR "The REGEX_BACKEND option provided is not supported")
304
163
  ENDIF()
305
164
 
306
165
  # Optional external dependency: http-parser
307
- FIND_PACKAGE(HTTP_Parser)
308
- IF (USE_EXT_HTTP_PARSER AND HTTP_PARSER_FOUND AND HTTP_PARSER_VERSION_MAJOR EQUAL 2)
309
- LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${HTTP_PARSER_INCLUDE_DIRS})
310
- LIST(APPEND LIBGIT2_LIBS ${HTTP_PARSER_LIBRARIES})
311
- LIST(APPEND LIBGIT2_PC_LIBS "-lhttp_parser")
312
- ADD_FEATURE_INFO(http-parser ON "http-parser support")
166
+ IF(USE_HTTP_PARSER STREQUAL "system")
167
+ FIND_PACKAGE(HTTP_Parser)
168
+
169
+ IF (HTTP_PARSER_FOUND AND HTTP_PARSER_VERSION_MAJOR EQUAL 2)
170
+ LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${HTTP_PARSER_INCLUDE_DIRS})
171
+ LIST(APPEND LIBGIT2_LIBS ${HTTP_PARSER_LIBRARIES})
172
+ LIST(APPEND LIBGIT2_PC_LIBS "-lhttp_parser")
173
+ ADD_FEATURE_INFO(http-parser ON "http-parser support (system)")
174
+ ELSE()
175
+ MESSAGE(FATAL_ERROR "http-parser support was requested but not found")
176
+ ENDIF()
313
177
  ELSE()
314
178
  MESSAGE(STATUS "http-parser version 2 was not found or disabled; using bundled 3rd-party sources.")
315
179
  ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/http-parser" "${libgit2_BINARY_DIR}/deps/http-parser")
316
- LIST(APPEND LIBGIT2_SYSTEM_INCLUDES "${libgit2_SOURCE_DIR}/deps/http-parser")
180
+ LIST(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/http-parser")
317
181
  LIST(APPEND LIBGIT2_OBJECTS "$<TARGET_OBJECTS:http-parser>")
318
182
  ADD_FEATURE_INFO(http-parser ON "http-parser support (bundled)")
319
183
  ENDIF()
@@ -325,7 +189,6 @@ IF(NOT USE_BUNDLED_ZLIB)
325
189
  LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${ZLIB_INCLUDE_DIRS})
326
190
  LIST(APPEND LIBGIT2_LIBS ${ZLIB_LIBRARIES})
327
191
  IF(APPLE OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
328
- LIST(APPEND LIBGIT2_LIBS "z")
329
192
  LIST(APPEND LIBGIT2_PC_LIBS "-lz")
330
193
  ELSE()
331
194
  LIST(APPEND LIBGIT2_PC_REQUIRES "zlib")
@@ -337,7 +200,7 @@ IF(NOT USE_BUNDLED_ZLIB)
337
200
  ENDIF()
338
201
  IF(USE_BUNDLED_ZLIB OR NOT ZLIB_FOUND)
339
202
  ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/zlib" "${libgit2_BINARY_DIR}/deps/zlib")
340
- LIST(APPEND LIBGIT2_SYSTEM_INCLUDES "${libgit2_SOURCE_DIR}/deps/zlib")
203
+ LIST(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/zlib")
341
204
  LIST(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:zlib>)
342
205
  ADD_FEATURE_INFO(zlib ON "using bundled zlib")
343
206
  ENDIF()
@@ -361,15 +224,18 @@ ELSE()
361
224
  ENDIF()
362
225
  ADD_FEATURE_INFO(SSH GIT_SSH "SSH transport support")
363
226
 
364
- # Optional external dependency: libgssapi
365
- IF (USE_GSSAPI)
366
- FIND_PACKAGE(GSSAPI)
367
- ENDIF()
368
- IF (GSSAPI_FOUND)
369
- SET(GIT_GSSAPI 1)
370
- LIST(APPEND LIBGIT2_LIBS ${GSSAPI_LIBRARIES})
227
+ # Optional external dependency: ntlmclient
228
+ IF (USE_NTLMCLIENT)
229
+ SET(GIT_NTLM 1)
230
+ ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/ntlmclient" "${libgit2_BINARY_DIR}/deps/ntlmclient")
231
+ LIST(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/ntlmclient")
232
+ LIST(APPEND LIBGIT2_OBJECTS "$<TARGET_OBJECTS:ntlmclient>")
371
233
  ENDIF()
372
- ADD_FEATURE_INFO(SPNEGO GIT_GSSAPI "SPNEGO authentication support")
234
+ ADD_FEATURE_INFO(ntlmclient GIT_NTLM "NTLM authentication support for Unix")
235
+
236
+ # Optional external dependency: GSSAPI
237
+
238
+ INCLUDE(SelectGSSAPI)
373
239
 
374
240
  # Optional external dependency: iconv
375
241
  IF (USE_ICONV)
@@ -414,8 +280,6 @@ FILE(GLOB SRC_H
414
280
 
415
281
  # On Windows use specific platform sources
416
282
  IF (WIN32 AND NOT CYGWIN)
417
- ADD_DEFINITIONS(-DWIN32 -D_WIN32_WINNT=0x0501)
418
-
419
283
  IF(MSVC)
420
284
  SET(WIN_RC "win32/git2.rc")
421
285
  ENDIF()
@@ -424,16 +288,27 @@ IF (WIN32 AND NOT CYGWIN)
424
288
  ELSEIF (AMIGA)
425
289
  ADD_DEFINITIONS(-DNO_ADDRINFO -DNO_READDIR_R -DNO_MMAP)
426
290
  ELSE()
291
+ ADD_FEATURE_INFO(valgrind VALGRIND "valgrind hints")
427
292
  IF (VALGRIND)
428
- ADD_DEFINITIONS(-DNO_MMAP)
293
+ ADD_DEFINITIONS(-DVALGRIND)
429
294
  ENDIF()
295
+
430
296
  FILE(GLOB SRC_OS unix/*.c unix/*.h)
431
297
  ENDIF()
298
+
432
299
  FILE(GLOB SRC_GIT2 *.c *.h
300
+ allocators/*.c allocators/*.h
433
301
  streams/*.c streams/*.h
434
302
  transports/*.c transports/*.h
435
303
  xdiff/*.c xdiff/*.h)
436
304
 
305
+ # the xdiff dependency is not (yet) warning-free, disable warnings as
306
+ # errors for the xdiff sources until we've sorted them out
307
+ IF(MSVC)
308
+ SET_SOURCE_FILES_PROPERTIES(xdiff/xdiffi.c PROPERTIES COMPILE_FLAGS -WX-)
309
+ SET_SOURCE_FILES_PROPERTIES(xdiff/xutils.c PROPERTIES COMPILE_FLAGS -WX-)
310
+ ENDIF()
311
+
437
312
  # Determine architecture of the machine
438
313
  IF (CMAKE_SIZEOF_VOID_P EQUAL 8)
439
314
  SET(GIT_ARCH_64 1)
@@ -454,16 +329,8 @@ SET_TARGET_PROPERTIES(git2internal PROPERTIES C_STANDARD 90)
454
329
  IDE_SPLIT_SOURCES(git2internal)
455
330
  LIST(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:git2internal>)
456
331
 
457
- IF (${CMAKE_VERSION} VERSION_LESS 2.8.12)
458
- INCLUDE_DIRECTORIES(${LIBGIT2_INCLUDES})
459
- INCLUDE_DIRECTORIES(SYSTEM ${LIBGIT2_SYSTEM_INCLUDES})
460
- ELSE()
461
- TARGET_INCLUDE_DIRECTORIES(git2internal
462
- PRIVATE ${LIBGIT2_INCLUDES}
463
- PUBLIC ${libgit2_SOURCE_DIR}/include)
464
- TARGET_INCLUDE_DIRECTORIES(git2internal
465
- SYSTEM PRIVATE ${LIBGIT2_SYSTEM_INCLUDES})
466
- ENDIF()
332
+ TARGET_INCLUDE_DIRECTORIES(git2internal PRIVATE ${LIBGIT2_INCLUDES} PUBLIC ${libgit2_SOURCE_DIR}/include)
333
+ TARGET_INCLUDE_DIRECTORIES(git2internal SYSTEM PRIVATE ${LIBGIT2_SYSTEM_INCLUDES})
467
334
 
468
335
  SET(LIBGIT2_OBJECTS ${LIBGIT2_OBJECTS} PARENT_SCOPE)
469
336
  SET(LIBGIT2_INCLUDES ${LIBGIT2_INCLUDES} PARENT_SCOPE)
@@ -505,10 +372,13 @@ IF (SONAME)
505
372
  ENDIF()
506
373
  ENDIF()
507
374
 
508
- LIST(REMOVE_DUPLICATES LIBGIT2_PC_REQUIRES)
509
- STRING(REPLACE ";" " " LIBGIT2_PC_REQUIRES "${LIBGIT2_PC_REQUIRES}")
510
- STRING(REPLACE ";" " " LIBGIT2_PC_LIBS "${LIBGIT2_PC_LIBS}")
511
- CONFIGURE_FILE(${libgit2_SOURCE_DIR}/libgit2.pc.in ${libgit2_BINARY_DIR}/libgit2.pc @ONLY)
375
+ PKG_BUILD_CONFIG(NAME libgit2
376
+ VERSION ${LIBGIT2_VERSION_STRING}
377
+ DESCRIPTION "The git library, take 2"
378
+ LIBS_SELF git2
379
+ PRIVATE_LIBS ${LIBGIT2_PC_LIBS}
380
+ REQUIRES ${LIBGIT2_PC_REQUIRES}
381
+ )
512
382
 
513
383
  IF (MSVC_IDE)
514
384
  # Precompiled headers
@@ -522,6 +392,5 @@ INSTALL(TARGETS git2
522
392
  LIBRARY DESTINATION ${LIB_INSTALL_DIR}
523
393
  ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
524
394
  )
525
- INSTALL(FILES ${libgit2_BINARY_DIR}/libgit2.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig )
526
395
  INSTALL(DIRECTORY ${libgit2_SOURCE_DIR}/include/git2 DESTINATION ${INCLUDE_INSTALL_DIR} )
527
396
  INSTALL(FILES ${libgit2_SOURCE_DIR}/include/git2.h DESTINATION ${INCLUDE_INSTALL_DIR} )
@@ -7,13 +7,19 @@
7
7
 
8
8
  #include "alloc.h"
9
9
 
10
+ #include "allocators/stdalloc.h"
11
+ #include "allocators/win32_crtdbg.h"
12
+
13
+ git_allocator git__allocator;
14
+
15
+ static int setup_default_allocator(void)
16
+ {
10
17
  #if defined(GIT_MSVC_CRTDBG)
11
- # include "win32/w32_crtdbg_stacktrace.h"
18
+ return git_win32_crtdbg_init_allocator(&git__allocator);
12
19
  #else
13
- # include "stdalloc.h"
20
+ return git_stdalloc_init_allocator(&git__allocator);
14
21
  #endif
15
-
16
- git_allocator git__allocator;
22
+ }
17
23
 
18
24
  int git_allocator_global_init(void)
19
25
  {
@@ -24,24 +30,14 @@ int git_allocator_global_init(void)
24
30
  if (git__allocator.gmalloc != NULL)
25
31
  return 0;
26
32
 
27
- #if defined(GIT_MSVC_CRTDBG)
28
- return git_win32_crtdbg_init_allocator(&git__allocator);
29
- #else
30
- return git_stdalloc_init_allocator(&git__allocator);
31
- #endif
33
+ return setup_default_allocator();
32
34
  }
33
35
 
34
36
  int git_allocator_setup(git_allocator *allocator)
35
37
  {
38
+ if (!allocator)
39
+ return setup_default_allocator();
40
+
36
41
  memcpy(&git__allocator, allocator, sizeof(*allocator));
37
42
  return 0;
38
43
  }
39
-
40
- #if !defined(GIT_MSVC_CRTDBG)
41
- int git_win32_crtdbg_init_allocator(git_allocator *allocator)
42
- {
43
- GIT_UNUSED(allocator);
44
- giterr_set(GIT_EINVALID, "crtdbg memory allocator not available");
45
- return -1;
46
- }
47
- #endif
@@ -14,7 +14,7 @@ static void *stdalloc__malloc(size_t len, const char *file, int line)
14
14
  GIT_UNUSED(file);
15
15
  GIT_UNUSED(line);
16
16
 
17
- if (!ptr) giterr_set_oom();
17
+ if (!ptr) git_error_set_oom();
18
18
  return ptr;
19
19
  }
20
20
 
@@ -25,7 +25,7 @@ static void *stdalloc__calloc(size_t nelem, size_t elsize, const char *file, int
25
25
  GIT_UNUSED(file);
26
26
  GIT_UNUSED(line);
27
27
 
28
- if (!ptr) giterr_set_oom();
28
+ if (!ptr) git_error_set_oom();
29
29
  return ptr;
30
30
  }
31
31
 
@@ -36,7 +36,7 @@ static char *stdalloc__strdup(const char *str, const char *file, int line)
36
36
  GIT_UNUSED(file);
37
37
  GIT_UNUSED(line);
38
38
 
39
- if (!ptr) giterr_set_oom();
39
+ if (!ptr) git_error_set_oom();
40
40
  return ptr;
41
41
  }
42
42
 
@@ -80,7 +80,7 @@ static void *stdalloc__realloc(void *ptr, size_t size, const char *file, int lin
80
80
  GIT_UNUSED(file);
81
81
  GIT_UNUSED(line);
82
82
 
83
- if (!new_ptr) giterr_set_oom();
83
+ if (!new_ptr) git_error_set_oom();
84
84
  return new_ptr;
85
85
  }
86
86
 
@@ -88,11 +88,10 @@ static void *stdalloc__reallocarray(void *ptr, size_t nelem, size_t elsize, cons
88
88
  {
89
89
  size_t newsize;
90
90
 
91
- GIT_UNUSED(file);
92
- GIT_UNUSED(line);
91
+ if (GIT_MULTIPLY_SIZET_OVERFLOW(&newsize, nelem, elsize))
92
+ return NULL;
93
93
 
94
- return GIT_MULTIPLY_SIZET_OVERFLOW(&newsize, nelem, elsize) ?
95
- NULL : realloc(ptr, newsize);
94
+ return stdalloc__realloc(ptr, newsize, file, line);
96
95
  }
97
96
 
98
97
  static void *stdalloc__mallocarray(size_t nelem, size_t elsize, const char *file, int line)
@@ -5,13 +5,13 @@
5
5
  * a Linking Exception. For full terms see the included COPYING file.
6
6
  */
7
7
 
8
- #ifndef INCLUDE_stdalloc_h__
9
- #define INCLUDE_stdalloc_h__
10
-
11
- #include "alloc.h"
8
+ #ifndef INCLUDE_allocators_stdalloc_h__
9
+ #define INCLUDE_allocators_stdalloc_h__
12
10
 
13
11
  #include "common.h"
14
12
 
13
+ #include "alloc.h"
14
+
15
15
  int git_stdalloc_init_allocator(git_allocator *allocator);
16
16
 
17
17
  #endif