diff --git a/CMakeLists.txt b/CMakeLists.txt
index e30c2f1c752a2a244484628764da6636633a846e..ba361f15a66797562b3fbbed9cef11fd7bab14af 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -486,7 +486,7 @@ if(MSVC)
         ${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/speexdsp/lib/libspeexdsp.lib
         ${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/webrtc-audio-processing/build/Release/webrtc-audio-processing.lib
         ${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/portaudio/build/Release/portaudio_static_x64.lib
-        ${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/libgit2/msvc/Release/git2.lib
+        ${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/libgit2/build/Release/git2.lib
         /ignore:4006"
    )
 
diff --git a/contrib/src/libgit2/0001-fix-getentropy.patch b/contrib/src/libgit2/0001-fix-getentropy.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2df8d3b1427a036cbb657bf5f0b5c4a298d24343
--- /dev/null
+++ b/contrib/src/libgit2/0001-fix-getentropy.patch
@@ -0,0 +1,25 @@
+ src/util/rand.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/util/rand.c b/src/util/rand.c
+index 940faf947..7b3f20774 100644
+--- a/src/util/rand.c
++++ b/src/util/rand.c
+@@ -10,7 +10,7 @@ See <http://creativecommons.org/publicdomain/zero/1.0/>. */
+ #include "rand.h"
+ #include "runtime.h"
+
+-#if defined(GIT_RAND_GETENTROPY)
++#if defined(GIT_RAND_GETENTROPY) && defined(HAVE_SYS_RANDOM_H)
+ # include <sys/random.h>
+ #endif
+
+@@ -85,7 +85,7 @@ GIT_INLINE(int) getseed(uint64_t *seed)
+ 	bits convert;
+ 	int fd;
+
+-# if defined(GIT_RAND_GETENTROPY)
++# if defined(GIT_RAND_GETENTROPY) && defined(HAVE_SYS_RANDOM_H)
+ 	GIT_UNUSED((fd = 0));
+
+ 	if (getentropy(seed, sizeof(uint64_t)) == 0)
diff --git a/contrib/src/libgit2/SHA512SUMS b/contrib/src/libgit2/SHA512SUMS
index 2f9c72fb09a11327a9d5f025d0b24cd660c01fc0..a6f1eac31a046a3985dbba02d94ac29f5229ea16 100644
--- a/contrib/src/libgit2/SHA512SUMS
+++ b/contrib/src/libgit2/SHA512SUMS
@@ -1 +1 @@
-347bb68900181b44fa58a0417506c91383adb965607fce049a5b4c57ac9cc286e0a140d164c339b50fb6cd6951f47757c2917a2df44ba004bfaa4fb643946bb8  libgit2-v1.1.0.tar.gz
\ No newline at end of file
+fd73df91710f19b0d6c3765c37c7f529233196da91cf4d58028a8d3840244f11df44abafabd74a8ed1cbe4826d1afd6ff9f01316d183ace0924c65e7cf0eb8d5  libgit2-v1.6.4.tar.gz
\ No newline at end of file
diff --git a/contrib/src/libgit2/package.json b/contrib/src/libgit2/package.json
index 0b5cc65338f7cd38acfbd4187b8df36c35c31407..0152347245c7e1f953ff395e5a720eca9c542edb 100644
--- a/contrib/src/libgit2/package.json
+++ b/contrib/src/libgit2/package.json
@@ -1,19 +1,17 @@
 {
     "name": "libgit2",
-    "version": "v1.1.0",
+    "version": "v1.6.4",
     "url": "https://github.com/libgit2/libgit2/archive/__VERSION__.tar.gz",
-    "deps": ["zlib"],
-    "patches": [],
-    "win_patches": [],
-    "project_paths": [
-        "msvc/src/git2.vcxproj"
-    ],
-    "with_env" : "",
-    "custom_scripts": {
-        "pre_build": [
-            "mkdir msvc & cd msvc & cmake .. -G %CMAKE_GENERATOR% -DUSE_HTTPS=OFF -DCURL=OFF -DBUILD_CLAR=OFF -DBUILD_SHARED_LIBS=OFF -DUSE_SSH=OFF -DWINHTTP=OFF"
-        ],
-        "build": [],
-        "post_build": []
-    }
+    "use_cmake" : true,
+    "defines": [
+        "USE_HTTPS=OFF",
+        "CURL=OFF",
+        "BUILD_CLAR=OFF",
+        "BUILD_SHARED_LIBS=OFF",
+        "USE_SSH=OFF",
+        "WINHTTP=OFF",
+        "BUILD_TESTS=OFF",
+        "BUILD_CLI=OFF",
+        "USE_SSH=OFF"
+    ]
 }
\ No newline at end of file
diff --git a/contrib/src/libgit2/rules.mak b/contrib/src/libgit2/rules.mak
index 7d83a33627e08026de7266c3792a0cbe7edb78fa..fc2323eeceab7d65561cd2d72db30df00e71399b 100644
--- a/contrib/src/libgit2/rules.mak
+++ b/contrib/src/libgit2/rules.mak
@@ -1,9 +1,9 @@
 # LIBGIT2
-LIBGIT2_VERSION := 1.1.0
+LIBGIT2_VERSION := 1.6.4
 LIBGIT2_URL := https://github.com/libgit2/libgit2/archive/v${LIBGIT2_VERSION}.tar.gz
 
 PKGS += libgit2
-ifeq ($(call need_pkg,"libgit2 >= 1.1.0"),)
+ifeq ($(call need_pkg,"libgit2 >= 1.6.0"),)
 PKGS_FOUND += libgit2
 endif
 
@@ -17,12 +17,13 @@ $(TARBALLS)/libgit2-v$(LIBGIT2_VERSION).tar.gz:
 libgit2: libgit2-v$(LIBGIT2_VERSION).tar.gz .sum-libgit2
 	$(UNPACK)
 	mv libgit2-$(LIBGIT2_VERSION) libgit2-v$(LIBGIT2_VERSION)
+	$(APPLY) $(SRC)/libgit2/0001-fix-getentropy.patch
 	$(UPDATE_AUTOCONFIG)
 	$(MOVE)
 
 # TODO windows pcre?
 .libgit2: libgit2
 	cd $< && mkdir -p build && cd build \
-    && $(CMAKE) -DCMAKE_C_FLAGS=-fPIC -DUSE_HTTPS=OFF -DCURL=OFF -DUSE_HTTP_PARSER=system -DBUILD_CLAR=OFF -DBUILD_SHARED_LIBS=OFF -DUSE_SSH=OFF -DREGEX_BACKEND=regcomp .. \
+    && $(CMAKE) -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-std=gnu89 -fPIC" -DBUILD_TESTS=OFF -DUSE_HTTPS=OFF -DCURL=OFF -DUSE_HTTP_PARSER=system -DBUILD_CLAR=OFF -DBUILD_SHARED_LIBS=OFF -DUSE_SSH=OFF -DREGEX_BACKEND=regcomp .. \
     && $(MAKE) install
 	touch $@