diff --git a/main/samba/APKBUILD b/main/samba/APKBUILD
index f4eb20c2f1257e135bc323a4d4d75e7a41b9d08f..e0efee320857d21f170a072f7d5cf70b4e4cbe6b 100644
--- a/main/samba/APKBUILD
+++ b/main/samba/APKBUILD
@@ -1,7 +1,7 @@
 # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
 pkgname=samba
-pkgver=4.2.0
-pkgrel=1
+pkgver=4.2.1
+pkgrel=0
 pkgdesc="Tools to access a server's filespace and printers via SMB"
 url="http://www.samba.org"
 arch="all"
@@ -47,6 +47,8 @@ source="http://us1.samba.org/samba/ftp/stable/samba-$pkgver.tar.gz
 	uclibc-xattr-create.patch
 	wrappers.patch
 	heimdal-1.5-api.patch
+	gnutls-3.4.0.patch
+	domain.patch
 	samba.initd
 	samba.confd
 	samba.logrotate
@@ -481,30 +483,36 @@ libs() {
 		|| return 1
 }
 
-md5sums="5ef28ee4cda243d07a0066f038b7d6e0  samba-4.2.0.tar.gz
+md5sums="614b4c7b9bbc70cff4cb56956f565741  samba-4.2.1.tar.gz
 b8c06c1a37bce8a7feea3b6896483da0  fix-libreplace.patch
 2386589c1e2cbcf95b644554b8a2f4d1  musl-fix-headers.patch
 f9ee1f13e59c60ee7e481f51329bf7d4  uclibc-xattr-create.patch
 395a84482d72136384050d0bc7f969b5  wrappers.patch
 6eb6a33023e7a71a222886be3ee2453d  heimdal-1.5-api.patch
+1af1a55aa4229da1a81d82c745e3373a  gnutls-3.4.0.patch
+f0d10a87a2067d0d3accdcb6c9b64ea9  domain.patch
 044c756d3c33c2d610c40bcd76cfb75c  samba.initd
 c150433426e18261e6e3eed3930e1a76  samba.confd
 b7cafabfb4fa5b3ab5f2e857d8d1c733  samba.logrotate"
-sha256sums="66a6057815a971fee64fbe936ff6cbad542421a4bd52cba8d8d41afc9abc490f  samba-4.2.0.tar.gz
+sha256sums="37eaa239c116dc2c22c29c5a2931eb178ed22e48b594687247446703119b4ac3  samba-4.2.1.tar.gz
 13617f691c648b44867c1a76d8be7c185021e8a8f3b695f8689a9f6244e65827  fix-libreplace.patch
 0cf7e4eadf442422434d2b0fb43193f3a79f2887e32432f12cb6aed1941e807a  musl-fix-headers.patch
 dcf6a7118297d6567d8ff31c9eff1afffdf2f548db36fd17d00cdf0ffc555fe3  uclibc-xattr-create.patch
 6bbaeb3c68c64023039bb9a66fd82766ac6d77cf56ac8986eebd6f8a9fce512b  wrappers.patch
 d4880c4ccceba5017d64cead644f8f363f22d6e91f2c2e1687dd7b45e6ca27e0  heimdal-1.5-api.patch
+808da766baaca15622c14de4dc3639b78ecf2f3388b0c8cb8625afc3950a812e  gnutls-3.4.0.patch
+5554fff0df5d31e67a705c60d97e187b4109c79c8a4063c8ea7ebe1e0e4a7e7e  domain.patch
 86646cb845aababd9e8655994379526f03327a2cc33b489c3a7dea83ab689c8f  samba.initd
 1d12f98a7727967b04eb123109b34cfffef320822dc0e8059286b6e3394c3fc0  samba.confd
 4c2b7d529126b2fc4f62fb09d99e49a87632d723a2d9d289a61e37dd84145be1  samba.logrotate"
-sha512sums="ec6f1a6276087196450cf5774690cde564beb414ab55fb7db6991f8ae470d338fb9c2b12d38232b804436efc686450d1fa19a26bc234e9f63d8c569e321357e0  samba-4.2.0.tar.gz
+sha512sums="7a35a3f4cf52520c3d38f086055a787c135d94fb8e8072169eb8a8ad0521c7c7a1cc49e3e3e73ad33e0849e953aaf484afcd8d28a905be798f5f4e08432d5d51  samba-4.2.1.tar.gz
 4adbbeb75de6c55199e10f284e741ee252f403b7809251caf4baf378669770be01d469b23e12f8119ed5dca5080dd45bda1b5b78cc7a791be44c1eb6fb8c0fa2  fix-libreplace.patch
 8d2e1be5f020d0558917f328770b289d0a41836616952d0d3208cecd457df3649f1357a2d35dc54123559ab6a1b720f3189286c65cee90b02ccbae7d676ae383  musl-fix-headers.patch
 b43809d7ecbf3968f5154c2ded6ed47dae36921f1895ea98bcce50557eb2ad39b736345ffb4214655ed3154c143c20431d248cde828285380bafbf4d2627df9b  uclibc-xattr-create.patch
 1e22dfb4e5db22af27f683d9fdd040a9f568b198b55095dd2dfdec81d9eb8e23d965c92663855ff02ba32cc62b97ca6fbe2cc79dd843e223b4be74bfb3cce71f  wrappers.patch
 86181f661bca29d698be3a402a915e35ba4289fd3c34e6e2f4f151125b5f169e729189b48d84472d64857cbcf580ad767077bc791e3b6a1b1c313dc96b3e00ae  heimdal-1.5-api.patch
+a52b636f35893b42f4731cb2f7966a6c4ed397632d931b717c6fb4412fc6528837f5c69d6a7fa1374aaa92e278ebe4b50cc9ceab4fe98882e010f21b6f3901db  gnutls-3.4.0.patch
+62d373dbaee75121a1d73f2c09cdca7239705808ff807b171d1d5a28fd4ffc66bdb52494b62786d7aaba8aeece5c08433b532ca96a28d712452fe9daac8d8d2e  domain.patch
 59d05252b8ebbe6ba6a419edc86b66b9541d0bac9dbe810cccb20e64f6044e2900cc6c0979e077741ed00fbbf2d51f9184c83715013299782707b44e39aa99b1  samba.initd
 4faf581ecef3ec38319e3c4ab6d3995c51fd7ba83180dc5553a2ff4dfb92efadb43030c543292130c4ed0c281dc0972c6973d52d48062c5edb39bb1c4bbb6dd6  samba.confd
 f88ebe59ca3a9e9b77dd5993c13ef3e73a838efb8ed858088b464a330132d662f33e25c27819e38835389dee23057a3951de11bae1eef55db8ff5e1ec6760053  samba.logrotate"
diff --git a/main/samba/domain.patch b/main/samba/domain.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5941cc06cfbb408eb2f3894526b0283f6d5b19f4
--- /dev/null
+++ b/main/samba/domain.patch
@@ -0,0 +1,13 @@
+--- ./python/samba/netcmd/domain.py.orig
++++ ./python/samba/netcmd/domain.py
+@@ -301,8 +301,10 @@
+             def ask(prompt, default=None):
+                 if default is not None:
+                     print "%s [%s]: " % (prompt, default),
++                    sys.stdout.flush()
+                 else:
+                     print "%s: " % (prompt,),
++                    sys.stdout.flush()
+                 return sys.stdin.readline().rstrip("\n") or default
+ 
+             try:
diff --git a/main/samba/gnutls-3.4.0.patch b/main/samba/gnutls-3.4.0.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d77d7fbc0361954d28b1c3c2b8b15affd82e1412
--- /dev/null
+++ b/main/samba/gnutls-3.4.0.patch
@@ -0,0 +1,69 @@
+From 9d9b38b434b9d2e4b3bddd618cea944dfb960966 Mon Sep 17 00:00:00 2001
+From: Evangelos Foutras <evangelos@foutrelis.com>
+Date: Mon, 13 Apr 2015 22:03:14 +0300
+Subject: [PATCH] s4:lib/tls: use gnutls_priority_set_direct()
+
+gnutls_certificate_type_set_priority() was removed in GnuTLS 3.4.0.
+---
+ source4/lib/tls/tls.c         | 4 +---
+ source4/lib/tls/tls_tstream.c | 9 +--------
+ 2 files changed, 2 insertions(+), 11 deletions(-)
+
+diff --git a/source4/lib/tls/tls.c b/source4/lib/tls/tls.c
+index b9182ad..2bcbb80 100644
+--- a/source4/lib/tls/tls.c
++++ b/source4/lib/tls/tls.c
+@@ -572,7 +572,6 @@ struct socket_context *tls_init_client(struct socket_context *socket_ctx,
+ {
+ 	struct tls_context *tls;
+ 	int ret = 0;
+-	const int cert_type_priority[] = { GNUTLS_CRT_X509, GNUTLS_CRT_OPENPGP, 0 };
+ 	struct socket_context *new_sock;
+ 	NTSTATUS nt_status;
+ 
+@@ -597,8 +596,7 @@ struct socket_context *tls_init_client(struct socket_context *socket_ctx,
+ 	gnutls_certificate_allocate_credentials(&tls->xcred);
+ 	gnutls_certificate_set_x509_trust_file(tls->xcred, ca_path, GNUTLS_X509_FMT_PEM);
+ 	TLSCHECK(gnutls_init(&tls->session, GNUTLS_CLIENT));
+-	TLSCHECK(gnutls_set_default_priority(tls->session));
+-	gnutls_certificate_type_set_priority(tls->session, cert_type_priority);
++	TLSCHECK(gnutls_priority_set_direct(tls->session, "NORMAL:+CTYPE-OPENPGP", NULL));
+ 	TLSCHECK(gnutls_credentials_set(tls->session, GNUTLS_CRD_CERTIFICATE, tls->xcred));
+ 
+ 	talloc_set_destructor(tls, tls_destructor);
+diff --git a/source4/lib/tls/tls_tstream.c b/source4/lib/tls/tls_tstream.c
+index f19f5c5..ff0e881 100644
+--- a/source4/lib/tls/tls_tstream.c
++++ b/source4/lib/tls/tls_tstream.c
+@@ -967,11 +967,6 @@ struct tevent_req *_tstream_tls_connect_send(TALLOC_CTX *mem_ctx,
+ #if ENABLE_GNUTLS
+ 	struct tstream_tls *tlss;
+ 	int ret;
+-	static const int cert_type_priority[] = {
+-		GNUTLS_CRT_X509,
+-		GNUTLS_CRT_OPENPGP,
+-		0
+-	};
+ #endif /* ENABLE_GNUTLS */
+ 
+ 	req = tevent_req_create(mem_ctx, &state,
+@@ -1007,15 +1002,13 @@ struct tevent_req *_tstream_tls_connect_send(TALLOC_CTX *mem_ctx,
+ 		return tevent_req_post(req, ev);
+ 	}
+ 
+-	ret = gnutls_set_default_priority(tlss->tls_session);
++	ret = gnutls_priority_set_direct(tlss->tls_session, "NORMAL:+CTYPE-OPENPGP", NULL);
+ 	if (ret != GNUTLS_E_SUCCESS) {
+ 		DEBUG(0,("TLS %s - %s\n", __location__, gnutls_strerror(ret)));
+ 		tevent_req_error(req, EINVAL);
+ 		return tevent_req_post(req, ev);
+ 	}
+ 
+-	gnutls_certificate_type_set_priority(tlss->tls_session, cert_type_priority);
+-
+ 	ret = gnutls_credentials_set(tlss->tls_session,
+ 				     GNUTLS_CRD_CERTIFICATE,
+ 				     tls_params->x509_cred);
+-- 
+2.3.5
+