diff --git a/community/libcouchbase/APKBUILD b/community/libcouchbase/APKBUILD
index fca321248369675237e4a70b0671747be1ce69a9..b9b2254433d877182d089c817e270816d92af290 100644
--- a/community/libcouchbase/APKBUILD
+++ b/community/libcouchbase/APKBUILD
@@ -1,16 +1,17 @@
 # Contributor: Nathan Johnson <nathan@nathanjohnson.info>
 # Maintainer: Nathan Johnson <nathan@nathanjohnson.info>
 pkgname=libcouchbase
-pkgver=2.10.9
+pkgver=3.1.0
 pkgrel=0
 pkgdesc="C client library for Couchbase"
 url="https://developer.couchbase.com/community"
 arch="all"
 license="Apache-2.0"
 depends_dev="musl-dev openssl-dev snappy-dev"
-makedepends="$depends_dev cmake perl libtool libev-dev libevent-dev libuv-dev"
+makedepends="$depends_dev cmake perl libtool libev-dev libevent-dev libuv-dev zlib-dev"
 subpackages="$pkgname-dev $pkgname-utils $pkgname-doc $pkgname-libevent $pkgname-libev $pkgname-libuv"
 source="$pkgname-$pkgver.tar.gz::https://github.com/couchbase/libcouchbase/archive/$pkgver.tar.gz
+	fix_libdir.patch
 	fix_socktest.patch"
 
 build() {
@@ -45,7 +46,7 @@ libevent() {
 	depends="$pkgname libevent"
 
 	mkdir -p "$subpkgdir"/usr/lib
-	mv "$pkgdir"/usr/lib/libcouchbase_libevent.so "$subpkgdir"/usr/lib
+	mv "$pkgdir"/usr/lib/libcouchbase/libcouchbase_libevent.so "$subpkgdir"/usr/lib
 }
 
 libev() {
@@ -53,7 +54,7 @@ libev() {
 	depends="$pkgname libev"
 
 	mkdir -p "$subpkgdir"/usr/lib
-	mv "$pkgdir"/usr/lib/libcouchbase_libev.so "$subpkgdir"/usr/lib
+	mv "$pkgdir"/usr/lib/libcouchbase/libcouchbase_libev.so "$subpkgdir"/usr/lib
 }
 
 libuv() {
@@ -61,7 +62,7 @@ libuv() {
 	depends="$pkgname libuv"
 
 	mkdir -p "$subpkgdir"/usr/lib
-	mv "$pkgdir"/usr/lib/libcouchbase_libuv.so "$subpkgdir"/usr/lib
+	mv "$pkgdir"/usr/lib/libcouchbase/libcouchbase_libuv.so "$subpkgdir"/usr/lib
 }
 
 utils() {
@@ -72,5 +73,6 @@ utils() {
 	amove usr/bin
 }
 
-sha512sums="a0f7f18fdf9b30af1568d16f40ddfc5bf540ac3bd25f8441eb3a57231ac30a8179e1de3792a3d2eddd2193d447395c375051a6816c83ac0e86d0871900e0a856  libcouchbase-2.10.9.tar.gz
+sha512sums="a321685c387f98e09ef587623bf5c84af2840791c9f8eecb474f70b0b92d57af8fbc4199d67e0b30a05ce4a8300d5be80130b7818e8b14d1b932c2c43ad7eb1e  libcouchbase-3.1.0.tar.gz
+270123c57e6e760721ad337db154b8d90bddb81e38c644b854a36e2383fe95f3214227943e7040aa409d5d5ab101681369000054e4738c2a2d1facd0eee923e3  fix_libdir.patch
 72319b86fdd91728723ccb091e72199788a84e2ec9ea12c0fcd1ed686eb155ec11e0addbff96735f83e7f31764a85650f0483b6e76d3a8bee16f71b2751fe4a9  fix_socktest.patch"
diff --git a/community/libcouchbase/fix_libdir.patch b/community/libcouchbase/fix_libdir.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a8299495ea4d58199e4a8e93ec153a5af786ad1f
--- /dev/null
+++ b/community/libcouchbase/fix_libdir.patch
@@ -0,0 +1,10 @@
+--- a/cmake/configure
++++ b/cmake/configure
+@@ -234,6 +234,7 @@
+ if ($PREFIX) {
+     push @CM_OPTIONS, "-DCMAKE_INSTALL_PREFIX=$PREFIX";
+ }
++push @CM_OPTIONS, "-DCMAKE_INSTALL_LIBDIR=lib";
+ if ($NO_TESTS) {
+     push @CM_OPTIONS, "-DLCB_NO_TESTS=1";
+ }