diff --git a/extra/gnome-builder/PKGBUILD b/extra/gnome-builder/PKGBUILD
index 79284cf7d..323a1dc15 100644
--- a/extra/gnome-builder/PKGBUILD
+++ b/extra/gnome-builder/PKGBUILD
@@ -5,31 +5,24 @@
 #  - patch to fix build on ARM
 
 pkgname=gnome-builder
-pkgver=3.16.3
-pkgrel=7
+pkgver=3.18.0
+pkgrel=1
 pkgdesc="An IDE for writing GNOME-based software"
 url="https://wiki.gnome.org/Apps/Builder"
 arch=(i686 x86_64)
 license=(GPL3)
 depends=(gtksourceview3 devhelp libgit2-glib gjs python-gobject clang desktop-file-utils
-         ctags)
+         ctags libpeas vte3)
 makedepends=(intltool llvm gobject-introspection)
 groups=(gnome-extra)
 install=gnome-builder.install
 source=(http://download.gnome.org/sources/$pkgname/${pkgver:0:4}/$pkgname-$pkgver.tar.xz
-        git1.patch git2.patch git3.patch
         arm.patch)
-sha256sums=('a1d7b287d39ce724114c128e25bb00e273ecd8982ed22c8aba48cad9c4d51e61'
-            'e2b3edad8db87c9798abfad2dc831c2133736b6b9cb26e629e8adf0eb2c5e0a7'
-            'd81adf53ff7a918e0f037e6dc61515c0ad14a0c226f500a71d1a7daabf64b119'
-            '39be431517fe5cedd17738b0289adc16afad8bcbb5a84e4b656a40d5bc1c2353'
+sha256sums=('b32586c93ba26b8a4028d7779e81e7c56d54603c11a70db436e96ed977dbe9b4'
             'e56bb096be7b6fae0725efa5846e2376177e12b6b0495e04c21c13d771c38b34')
 
 prepare() {
   cd $pkgname-$pkgver
-  patch -Np1 -i ../git1.patch
-  patch -Np1 -i ../git2.patch
-  patch -Np1 -i ../git3.patch
   patch -p1 -i ../arm.patch
 }
 
diff --git a/extra/gnome-builder/git1.patch b/extra/gnome-builder/git1.patch
deleted file mode 100644
index 8bf487abe..000000000
--- a/extra/gnome-builder/git1.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From f77c428772273db365bba4d21b6913196b7947ad Mon Sep 17 00:00:00 2001
-From: Ignacio Casal Quinteiro <icq@gnome.org>
-Date: Fri, 17 Jul 2015 11:58:34 +0200
-Subject: git: pass NULL to the new binary callback
-
-
-diff --git a/libide/git/ide-git-buffer-change-monitor.c b/libide/git/ide-git-buffer-change-monitor.c
-index a6a306d..7763c76 100644
---- a/libide/git/ide-git-buffer-change-monitor.c
-+++ b/libide/git/ide-git-buffer-change-monitor.c
-@@ -618,7 +618,7 @@ ide_git_buffer_change_monitor_calculate_threaded (IdeGitBufferChangeMonitor  *se
-   data = g_bytes_get_data (diff->content, &data_len);
- 
-   ggit_diff_blob_to_buffer (diff->blob, relative_path, data, data_len, relative_path,
--                            NULL, NULL, NULL, diff_line_cb, (gpointer)diff->state, error);
-+                            NULL, NULL, NULL, NULL, diff_line_cb, (gpointer)diff->state, error);
- 
-   return ((*error) == NULL);
- }
--- 
-cgit v0.10.2
-
diff --git a/extra/gnome-builder/git2.patch b/extra/gnome-builder/git2.patch
deleted file mode 100644
index 79811d0d4..000000000
--- a/extra/gnome-builder/git2.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 31a64d94369d21bfe9dd890e0e8412361c49563d Mon Sep 17 00:00:00 2001
-From: Ignacio Casal Quinteiro <icq@gnome.org>
-Date: Fri, 17 Jul 2015 12:04:50 +0200
-Subject: new-project-dialog: use the new fetch options to add the remote
- callbacks
-
-
-diff --git a/src/dialogs/gb-new-project-dialog.c b/src/dialogs/gb-new-project-dialog.c
-index f011e34..dfa7e91 100644
---- a/src/dialogs/gb-new-project-dialog.c
-+++ b/src/dialogs/gb-new-project-dialog.c
-@@ -188,6 +188,7 @@ gb_new_project_dialog__clone_worker (GTask        *task,
-   g_autoptr(GFile) workdir = NULL;
-   CloneRequest *req = task_data;
-   GgitCloneOptions *clone_options;
-+  GgitFetchOptions *fetch_options;
-   GgitRemoteCallbacks *callbacks;
-   IdeProgress *progress;
-   GError *error = NULL;
-@@ -197,16 +198,20 @@ gb_new_project_dialog__clone_worker (GTask        *task,
-   g_assert (req != NULL);
-   g_assert (!cancellable || G_IS_CANCELLABLE (cancellable));
- 
--  clone_options = ggit_clone_options_new ();
--  ggit_clone_options_set_is_bare (clone_options, FALSE);
--  ggit_clone_options_set_checkout_branch (clone_options, "master");
--
-   callbacks = g_object_new (IDE_TYPE_GIT_REMOTE_CALLBACKS, NULL);
-   progress = ide_git_remote_callbacks_get_progress (IDE_GIT_REMOTE_CALLBACKS (callbacks));
-   g_object_bind_property (progress, "fraction",
-                           self->clone_progress, "fraction",
-                           G_BINDING_SYNC_CREATE);
--  ggit_clone_options_set_remote_callbacks (clone_options, callbacks);
-+
-+  fetch_options = ggit_fetch_options_new ();
-+  ggit_fetch_options_set_remote_callbacks (fetch_options, callbacks);
-+
-+  clone_options = ggit_clone_options_new ();
-+  ggit_clone_options_set_is_bare (clone_options, FALSE);
-+  ggit_clone_options_set_checkout_branch (clone_options, "master");
-+  ggit_clone_options_set_fetch_options (clone_options, fetch_options);
-+  ggit_fetch_options_free (fetch_options);
- 
-   repository = ggit_repository_clone (req->uri, req->location, clone_options, &error);
- 
--- 
-cgit v0.10.2
-
diff --git a/extra/gnome-builder/git3.patch b/extra/gnome-builder/git3.patch
deleted file mode 100644
index 17f68232d..000000000
--- a/extra/gnome-builder/git3.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 870b2d2c41328092447540d4aae52c12ac1e1fcc Mon Sep 17 00:00:00 2001
-From: Mohan R <mohan43u@gmail.com>
-Date: Sat, 8 Aug 2015 04:22:00 +0000
-Subject: git: track libgit2/libgit2-glib ABI breakages
-
-https://bugzilla.gnome.org/show_bug.cgi?id=753375
-
-#diff --git a/configure.ac b/configure.ac
-#index 54062c0..a81b5f3 100644
-#--- a/configure.ac
-#+++ b/configure.ac
-#@@ -145,7 +145,7 @@ dnl ***********************************************************************
-# m4_define([gtk_required_version], [3.17.1])
-# m4_define([glib_required_version], [2.45.1])
-# m4_define([gtksourceview_required_version], [3.17.3])
-#-m4_define([ggit_required_version], [0.22.9])
-#+m4_define([ggit_required_version], [0.23.4])
-# m4_define([gjs_required_version], [1.42.0])
-# m4_define([pygobject_required_version], [3.0.0])
-# m4_define([devhelp_required_version], [3.16.0])
-diff --git a/src/dialogs/gb-new-project-dialog.c b/src/dialogs/gb-new-project-dialog.c
-index dfa7e91..8f205a9 100644
---- a/src/dialogs/gb-new-project-dialog.c
-+++ b/src/dialogs/gb-new-project-dialog.c
-@@ -211,12 +211,12 @@ gb_new_project_dialog__clone_worker (GTask        *task,
-   ggit_clone_options_set_is_bare (clone_options, FALSE);
-   ggit_clone_options_set_checkout_branch (clone_options, "master");
-   ggit_clone_options_set_fetch_options (clone_options, fetch_options);
--  ggit_fetch_options_free (fetch_options);
-+  g_clear_pointer (&fetch_options, ggit_fetch_options_free);
- 
-   repository = ggit_repository_clone (req->uri, req->location, clone_options, &error);
- 
--  g_object_unref (callbacks);
--  ggit_clone_options_free (clone_options);
-+  g_clear_object (&callbacks);
-+  g_clear_object (&clone_options);
- 
-   if (repository == NULL)
-     {
-@@ -227,7 +227,7 @@ gb_new_project_dialog__clone_worker (GTask        *task,
-   workdir = ggit_repository_get_workdir (repository);
-   g_task_return_pointer (task, g_object_ref (workdir), g_object_unref);
- 
--  g_object_unref (repository);
-+  g_clear_object (&repository);
- }
- 
- static void
--- 
-cgit v0.10.2
-