diff --git a/main/samba/APKBUILD b/main/samba/APKBUILD
index 7021fc87f220d1423cbc12322410157da43ed47d..8e33dd6dec833370e42a4687fce202faf80fe9a2 100644
--- a/main/samba/APKBUILD
+++ b/main/samba/APKBUILD
@@ -1,27 +1,52 @@
 # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
 pkgname=samba
-pkgver=4.1.17
+pkgver=4.2.0
 pkgrel=0
 pkgdesc="Tools to access a server's filespace and printers via SMB"
 url="http://www.samba.org"
 arch="all"
 license="GPL3"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-common $pkgname-initscript
-	libsmbclient $pkgname-client
-	$pkgname-dc $pkgname-dc-libs:_dc_libs
-	$pkgname-winbind libwbclient $pkgname-winbind-clients:_winbind_clients
+subpackages="$pkgname-dev $pkgname-doc
+	$pkgname-common
+	$pkgname-initscript
+	$pkgname-common-tools:_common_tools
+	$pkgname-common-libs:_common_libs
+	libsmbclient
+	$pkgname-client
+	$pkgname-client-libs:_client_libs
+	$pkgname-dc
+	$pkgname-dc-libs:_dc_libs
+
+	$pkgname-winbind
+	libwbclient
+	$pkgname-winbind-clients:_winbind_clients
 	$pkgname-winbind-krb5-locator:_winbind_krb5_locator
-	$pkgname-pidl py-$pkgname:_py $pkgname-test:_test
-	$pkgname-libs-py:_libs_py $pkgname-libs"
-depends="$pkgname-initscript $pkgname-client"
+	$pkgname-libnss-winbind:_libnss_winbind
+
+	$pkgname-server
+	$pkgname-server-libs:_server_libs
+	$pkgname-ntdb-tools:_ntdb_tools
+
+	$pkgname-pidl
+	py-$pkgname:_py
+	$pkgname-test:_test
+	$pkgname-libs-py:_libs_py
+	$pkgname-libs"
+
+# samba backage only pulls in samba-server. This is helps to verify that
+# no libs or files are forgotten during packaging
+depends="$pkgname-server"
+
 # note that heimdal is required (over mit krb5) for AD DC functionality
 makedepends="popt-dev ncurses-dev openldap-dev heimdal-dev e2fsprogs-dev
 	libiconv-dev talloc-dev tdb-dev ldb-dev cups-dev python-dev libcap-dev
-	tevent-dev iniparser-dev perl subunit-dev docbook-xsl"
+	tevent-dev iniparser-dev perl subunit-dev docbook-xsl libarchive-dev"
 source="http://us1.samba.org/samba/ftp/stable/samba-$pkgver.tar.gz
 	fix-libreplace.patch
 	musl-fix-headers.patch
 	uclibc-xattr-create.patch
+	wrappers.patch
+	heimdal-1.5-api.patch
 	samba.initd
 	samba.confd
 	samba.logrotate
@@ -36,6 +61,7 @@ prepare() {
 		*.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
 		esac
 	done
+	rm source4/heimdal_build/krb5-types.h || return 1
 }
 
 build() {
@@ -54,6 +80,7 @@ build() {
 		--with-piddir=/var/run/samba \
 		--with-logfilebase=/var/log/samba \
 		--without-pam \
+		--without-systemd \
 		--with-ads \
 		--with-shared-modules=idmap_ad,idmap_rid,idmap_adex,idmap_hash,idmap_tdb2,pdb_tdbsam,pdb_ldap,pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4,auth_unix,auth_wbc,auth_server,auth_netlogond,auth_script,auth_samba4 \
 		--enable-cups \
@@ -70,6 +97,7 @@ package() {
 	install -d "$pkgdir"/var/log/samba \
 		"$pkgdir"/usr/share/doc/samba \
 		|| return 1
+	install -d -m 0755 "$pkgdir"/var/lib/samba/sysvol || return 1
 	install -D packaging/RHEL/setup/smbusers "$pkgdir"/etc/samba/smbusers \
 		|| return 1
 	install -m 0744 packaging/printing/smbprint "$pkgdir"/usr/bin/smbprint \
@@ -95,93 +123,132 @@ _mv_files() {
 common() {
 	pkgdesc="Samba common files for both client an servers"
 	depends=
-	# we have moved libnetapi to samba-common
-	replaces="winbind samba"
 	cd "$pkgdir"
 	_mv_files \
-		usr/bin/net \
-		usr/bin/pdbedit \
-		usr/bin/profiles \
-		usr/bin/smbcontrol \
-		usr/bin/testparm \
+		etc \
 		usr/share/samba/codepages \
-		usr/lib/libnetapi.so.* \
-		var/run/samba \
-		var/cache/samba \
-		var/log/samba \
+		var \
 		|| return 1
-	install -d -m 700 "$subpkgdir"/var/lib/samba/private
+	install -d -m700 "$subpkgdir"/var/lib/samba/private
 }
 
 # common-libs is an attempt to avoid libpython dependency for libsmbclient
 _libs_py() {
 	pkgdesc="Libraries that require libpython"
-	replaces="samba-libs"
 	depends=
 	cd "$pkgdir"
 	_mv_files \
-		usr/lib/samba/libsamba-net.so \
-		usr/lib/samba/libsamba_python.so \
+		usr/lib/samba/libsamba-net-samba4.so \
+		usr/lib/samba/libsamba-python-samba4.so \
 		|| return 1
 	return 0
 }
 
+_common_tools() {
+	pkgdesc="Tools for Samba servers and clients"
+	depends=
+	cd "$pkgdir"
+	_mv_files \
+		usr/bin/net \
+		usr/bin/pdbedit \
+		usr/bin/profiles \
+		usr/bin/smbcontrol \
+		usr/bin/smbpasswd \
+		usr/bin/testparm \
+		usr/lib/samba/libgpo-samba4.so \
+		usr/lib/samba/libnet-keytab-samba4.so \
+		|| return 1
+}
+
+_common_libs() {
+	pkgdesc="Samba libraries shared by common-tools and servers"
+	depends=""
+	cd "$pkgdir"
+	_mv_files \
+		usr/lib/libnetapi.so.0 \
+		usr/lib/libsmbldap.so.0 \
+		usr/lib/samba/libads-samba4.so \
+		usr/lib/samba/libauth-samba4.so \
+		usr/lib/samba/libdfs-server-ad-samba4.so \
+		usr/lib/samba/libndr-samba4.so \
+		usr/lib/samba/libnpa-tstream-samba4.so \
+		usr/lib/samba/libprinting-migrate-samba4.so \
+		usr/lib/samba/libsmbd-base-samba4.so \
+		usr/lib/samba/libsmbd-conn-samba4.so \
+		usr/lib/samba/libsmbldaphelper-samba4.so \
+		usr/lib/samba/pdb \
+		|| return 1
+}
+
 libsmbclient() {
 	pkgdesc="The SMB client library"
-	replaces="samba"
 	depends=
 	cd "$pkgdir"
 	_mv_files \
 		usr/lib/libsmbclient.so.* \
-		usr/lib/libsmbsharemodes.so.* \
 		|| return 1
 }
 
 client() {
-	pkgdesc="Samba client program"
-	replaces="samba"
-	depends=
+	pkgdesc="Samba client programs"
+	depends="$pkgname-common=$pkgver-r$pkgrel"
 	cd "$pkgdir"
 	_mv_files \
 		usr/bin/cifsdd \
 		usr/bin/dbwrap_tool \
 		usr/bin/nmblookup \
-		usr/bin/nmblookup4 \
 		usr/bin/oLschema2ldif \
 		usr/bin/regdiff \
 		usr/bin/regpatch \
 		usr/bin/regshell \
 		usr/bin/regtree \
 		usr/bin/rpcclient \
+		usr/bin/samba-regedit \
 		usr/bin/sharesec \
 		usr/bin/smbcacls \
 		usr/bin/smbclient \
-		usr/bin/smbclient4 \
 		usr/bin/smbcquotas \
 		usr/bin/smbget \
-		usr/bin/smbpasswd \
 		usr/bin/smbprint \
 		usr/bin/smbspool \
 		usr/bin/smbta-util \
 		usr/bin/smbtar \
 		usr/bin/smbtree \
+		usr/lib/libregistry.so.* \
+		usr/lib/samba/libcmdline-credentials-samba4.so \
+		|| return 1
+}
+
+_client_libs() {
+	pkgdesc="Samba libraries shared by clients and DC"
+	depends=
+	cd "$pkgdir"
+	_mv_files \
+		usr/lib/libdcerpc.so.* \
+		usr/lib/libsmbclient-raw.so.* \
+		usr/lib/samba/libcli-ldap-samba4.so \
+		usr/lib/samba/libhttp-samba4.so \
+		usr/lib/samba/libnetif-samba4.so \
 		|| return 1
 }
 
 dc() {
 	pkgdesc="Samba AD Domain Controller"
-	depends=
+	depends="py-samba=$pkgver-r$pkgrel $pkgname-common=$pkgver-r$pkgrel"
 	cd "$pkgdir"
 	_mv_files \
 		usr/bin/samba-tool \
 		usr/sbin/samba* \
+		usr/lib/mit_samba.so \
 		usr/lib/samba/ldb \
-		usr/lib/samba/libpac.so \
+		usr/lib/samba/libpac-samba4.so \
 		usr/lib/samba/gensec \
-		usr/lib/samba/bind9/dlz_bind9.so \
-		usr/lib/mit_samba.so \
+		\
+		usr/lib/samba/bind9 \
+		usr/lib/samba/process_model \
+		usr/lib/samba/service \
+		usr/share/samba/setup \
 		|| return 1
-	install -d -m 0755 "$subpkgdir"/var/lib/samba/sysvol || return 1
 }
 
 _dc_libs() {
@@ -189,29 +256,50 @@ _dc_libs() {
 	depends=
 	cd "$pkgdir"
 	_mv_files \
-		usr/lib/samba/bind9/dlz_bind9_9.so \
-		usr/lib/samba/libprocess_model.so \
-		usr/lib/samba/libservice.so \
-		usr/lib/samba/service \
-		usr/lib/samba/libdsdb-module.so \
-		usr/lib/samba/libntvfs.so \
-		usr/lib/samba/libposix_eadb.so \
+		usr/lib/samba/libntvfs-samba4.so \
+		usr/lib/samba/libprocess-model-samba4.so \
+		usr/lib/samba/libservice-samba4.so \
+		usr/lib/samba/libshares-samba4.so \
+		\
+		usr/lib/libdcerpc-atsvc.so.* \
+		usr/lib/libdcerpc-samr.so.* \
 		usr/lib/libdcerpc-server.so.* \
+		usr/lib/libsamba-policy.so.* \
+		usr/lib/samba/libdnsserver-common-samba4.so \
+		usr/lib/samba/libdsdb-module-samba4.so \
+		|| return 1
+}
+
+_server_libs() {
+	pkgdesc="Samba libraries shared by server and DC"
+	depends=
+	cd "$pkgdir"
+	_mv_files \
+		usr/lib/samba/libLIBWBCLIENT-OLD-samba4.so \
+		usr/lib/samba/libauth-unix-token-samba4.so \
+		usr/lib/samba/libauth4-samba4.so \
+		usr/lib/samba/libposix-eadb-samba4.so \
 		|| return 1
 }
 
+
 winbind() {
 	pkgdesc="Samba user and group resolver"
-	depends=
+	depends="$pkgname-common=$pkgver-r$pkgrel"
 	install="winbind.pre-install winbind.pre-upgrade winbind.post-install
 		winbind.post-upgrade"
-	replaces="winbind"
 	cd "$pkgdir"
 	_mv_files \
+		usr/lib/samba/libMESSAGING-samba4.so \
+		usr/lib/samba/libcluster-samba4.so \
+		usr/lib/samba/libdcerpc-samba4.so \
+		\
+		usr/lib/samba/libidmap-samba4.so \
+		usr/lib/samba/libnss-info-samba4.so \
 		usr/sbin/winbindd \
+		\
 		usr/lib/samba/idmap \
 		usr/lib/samba/nss_info \
-		usr/lib/samba/libidmap.so \
 		|| return 1
 	install -d -g winbind -m 750 \
 		"$subpkgdir"/var/cache/samba/winbindd_privileged
@@ -220,23 +308,28 @@ winbind() {
 libwbclient() {
 	pkgdesc="Samba winbind client libraries"
 	depends=
-	# we have moved libwbclient from samba-common
-	replaces="samba-common winbind"
 	cd "$pkgdir"
 	_mv_files \
 		usr/lib/libwbclient.so.* \
-		usr/lib/samba/libwinbind-client.so \
+		usr/lib/samba/libwinbind-client-samba4.so \
 		|| return 1
 }
 
 _winbind_clients() {
-	pkgdesc="Samba winbind clients"
-	replaces="winbind"
+	pkgdesc="Samba winbind client tools"
 	depends=
 	cd "$pkgdir"
 	_mv_files \
 		usr/bin/ntlm_auth \
 		usr/bin/wbinfo \
+		|| return 1
+}
+
+_libnss_winbind() {
+	pkgdesc="Samba winbind NSS plugin"
+	depends=
+	cd "$pkgdir"
+	_mv_files \
 		usr/lib/libnss_winbind.so* \
 		usr/lib/libnss_wins.so* \
 		|| return 1
@@ -251,11 +344,38 @@ _winbind_krb5_locator() {
 		|| return 1
 }
 
+server() {
+	pkgdesc="Samba server"
+	depends="$pkgname-common=$pkgver-r$pkgrel
+		$pkgname-initscript=$pkgver-r$pkgrel"
+	cd "$pkgdir"
+	_mv_files \
+		usr/sbin/nmbd \
+		usr/sbin/smbd \
+		usr/bin/eventlogadm \
+		usr/bin/smbstatus \
+		\
+		usr/lib/samba/auth \
+		usr/lib/samba/hdb \
+		usr/lib/samba/vfs \
+		\
+		usr/lib/samba/libxattr-tdb-samba4.so \
+		usr/lib/samba/libdb-glue-samba4.so \
+		usr/lib/samba/libnon-posix-acls-samba4.so \
+		usr/lib/samba/libtdb-compat-samba4.so \
+		usr/lib/samba/libHDB-SAMBA4-samba4.so \
+		|| return 1
+}
+
+
 pidl() {
 	pkgdesc="Perl IDL compiler"
-	depends=
-	mkdir -p "$subpkgdir"/usr/share
-	mv "$pkgdir"/usr/share/perl* "$subpkgdir"/usr/share/
+	depends="perl"
+	cd "$pkgdir"
+	_mv_files \
+		usr/bin/pidl \
+		usr/share/perl* \
+		|| return 1
 }
 
 _py() {
@@ -268,45 +388,123 @@ _py() {
 _test() {
 	pkgdesc="Samba server and client testing tools"
 	depends=
-	mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/usr/lib/samba
-	mv "$pkgdir"/usr/bin/*test \
-		"$pkgdir"/usr/bin/ndrdump \
-		"$pkgdir"/usr/bin/smbtorture \
-		"$subpkgdir"/usr/bin/ || return 1
-	mv "$pkgdir"/usr/lib/libtorture.so.* \
-		"$subpkgdir"/usr/lib/ || return 1
-	mv "$pkgdir"/usr/lib/samba/*torture* \
-		"$subpkgdir"/usr/lib/samba/ || return 1
+	cd "$pkgdir"
+	_mv_files \
+		usr/bin/gentest \
+		usr/bin/locktest \
+		usr/bin/masktest \
+		usr/bin/ndrdump \
+		usr/bin/smbtorture \
+		usr/lib/libtorture.so.* \
+		usr/lib/samba/libdlz-bind9-for-torture-samba4.so \
+		|| return 1
+}
+
+_ntdb_tools() {
+	pkgdesc="Samba ntdb tools"
+	depends=""
+	cd "$pkgdir"
+	_mv_files \
+		usr/bin/ntdb* \
+		|| return 1
 }
 
 libs() {
-	pkgdesc="Samba libraries"
+	pkgdesc="Samba core libraries"
 	depends=
 	cd "$pkgdir"
 	_mv_files \
-		usr/lib/lib*.so.* \
-		usr/lib/samba/lib* \
+		usr/lib/samba/libcli-spoolss-samba4.so \
+		usr/lib/samba/libtrusts-util-samba4.so \
+		usr/lib/libsamba-passdb.so.* \
+		usr/lib/libsmbconf.so.* \
+		usr/lib/samba/libCHARSET3-samba4.so \
+		usr/lib/samba/libgse-samba4.so \
+		usr/lib/samba/liblibcli-lsa3-samba4.so \
+		usr/lib/samba/liblibcli-netlogon3-samba4.so \
+		usr/lib/samba/liblibsmb-samba4.so \
+		usr/lib/samba/libmsrpc3-samba4.so \
+		usr/lib/samba/libpopt-samba3-samba4.so \
+		usr/lib/samba/libsamba-cluster-support-samba4.so \
+		usr/lib/samba/libsamba3-util-samba4.so \
+		usr/lib/samba/libsecrets3-samba4.so \
+		usr/lib/samba/libsmbd-shim-samba4.so \
+		usr/lib/samba/libsmbregistry-samba4.so \
+		usr/lib/samba/libutil-cmdline-samba4.so \
+		usr/lib/samba/libutil-reg-samba4.so \
+		usr/lib/libdcerpc-binding.so.* \
+		usr/lib/libgensec.so.* \
+		usr/lib/libndr-krb5pac.so.* \
+		usr/lib/libndr-nbt.so.* \
+		usr/lib/libndr-standard.so.* \
+		usr/lib/libndr.so.* \
+		usr/lib/libsamba-credentials.so.* \
+		usr/lib/libsamba-hostconfig.so.* \
+		usr/lib/libsamba-util.so.* \
+		usr/lib/libsamdb.so.* \
+		usr/lib/libtevent-util.so.* \
+		usr/lib/samba/libaddns-samba4.so \
+		usr/lib/samba/libasn1util-samba4.so \
+		usr/lib/samba/libauth-sam-reply-samba4.so \
+		usr/lib/samba/libauthkrb5-samba4.so \
+		usr/lib/samba/libccan-samba4.so \
+		usr/lib/samba/libcli-cldap-samba4.so \
+		usr/lib/samba/libcli-ldap-common-samba4.so \
+		usr/lib/samba/libcli-nbt-samba4.so \
+		usr/lib/samba/libcli-smb-common-samba4.so \
+		usr/lib/samba/libcliauth-samba4.so \
+		usr/lib/samba/libdbwrap-samba4.so \
+		usr/lib/samba/libdcerpc-samba-samba4.so \
+		usr/lib/samba/liberrors-samba4.so \
+		usr/lib/samba/libevents-samba4.so \
+		usr/lib/samba/libflag-mapping-samba4.so \
+		usr/lib/samba/libinterfaces-samba4.so \
+		usr/lib/samba/libkrb5samba-samba4.so \
+		usr/lib/samba/libldbsamba-samba4.so \
+		usr/lib/samba/libndr-samba-samba4.so \
+		usr/lib/samba/libntdb.so.* \
+		usr/lib/samba/libreplace-samba4.so \
+		usr/lib/samba/libsamba-debug-samba4.so \
+		usr/lib/samba/libsamba-modules-samba4.so \
+		usr/lib/samba/libsamba-security-samba4.so \
+		usr/lib/samba/libsamba-sockets-samba4.so \
+		usr/lib/samba/libsamdb-common-samba4.so \
+		usr/lib/samba/libserver-role-samba4.so \
+		usr/lib/samba/libsmb-transport-samba4.so \
+		usr/lib/samba/libsocket-blocking-samba4.so \
+		usr/lib/samba/libtdb-wrap-samba4.so \
+		usr/lib/samba/libutil-ntdb-samba4.so \
+		usr/lib/samba/libutil-setid-samba4.so \
+		usr/lib/samba/libutil-tdb-samba4.so \
+		\
+		usr/lib/samba/libsmbpasswdparser-samba4.so \
 		|| return 1
 }
 
-md5sums="8fed0f23a672e6a8d0716d96aca88671  samba-4.1.17.tar.gz
+md5sums="5ef28ee4cda243d07a0066f038b7d6e0  samba-4.2.0.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
 044c756d3c33c2d610c40bcd76cfb75c  samba.initd
 c150433426e18261e6e3eed3930e1a76  samba.confd
 b7cafabfb4fa5b3ab5f2e857d8d1c733  samba.logrotate"
-sha256sums="7aeb5d09e9c84bbeeb4b98d33404e9dbc4d99c54e64a447cc9c4d57e9255cb1d  samba-4.1.17.tar.gz
+sha256sums="66a6057815a971fee64fbe936ff6cbad542421a4bd52cba8d8d41afc9abc490f  samba-4.2.0.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
 86646cb845aababd9e8655994379526f03327a2cc33b489c3a7dea83ab689c8f  samba.initd
 1d12f98a7727967b04eb123109b34cfffef320822dc0e8059286b6e3394c3fc0  samba.confd
 4c2b7d529126b2fc4f62fb09d99e49a87632d723a2d9d289a61e37dd84145be1  samba.logrotate"
-sha512sums="19fa34521d3d520784d1eb85b4844fa59bf12468bf96b174b952eb63b6645a9eefb9044416829ffbe7a6a57abd28a227d1d57e1567cd46a1495c05a865ae75d5  samba-4.1.17.tar.gz
+sha512sums="ec6f1a6276087196450cf5774690cde564beb414ab55fb7db6991f8ae470d338fb9c2b12d38232b804436efc686450d1fa19a26bc234e9f63d8c569e321357e0  samba-4.2.0.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
 59d05252b8ebbe6ba6a419edc86b66b9541d0bac9dbe810cccb20e64f6044e2900cc6c0979e077741ed00fbbf2d51f9184c83715013299782707b44e39aa99b1  samba.initd
 4faf581ecef3ec38319e3c4ab6d3995c51fd7ba83180dc5553a2ff4dfb92efadb43030c543292130c4ed0c281dc0972c6973d52d48062c5edb39bb1c4bbb6dd6  samba.confd
 f88ebe59ca3a9e9b77dd5993c13ef3e73a838efb8ed858088b464a330132d662f33e25c27819e38835389dee23057a3951de11bae1eef55db8ff5e1ec6760053  samba.logrotate"
diff --git a/main/samba/heimdal-1.5-api.patch b/main/samba/heimdal-1.5-api.patch
new file mode 100644
index 0000000000000000000000000000000000000000..20d421e0da5ce5456404802fece7b0fdb682fdb4
--- /dev/null
+++ b/main/samba/heimdal-1.5-api.patch
@@ -0,0 +1,23 @@
+
+this was triggered due to this upstream change:
+https://git.samba.org/?p=samba.git;a=commit;h=83fbdc81cdfe6c018bb97d2d482ca09389b2c7af
+
+heimdal 1.5 changed the api:
+https://github.com/heimdal/heimdal/commit/c757eb7fb04a9b0ca883ddb72c1bc75bf5d814f3
+
+proper fix means the configure script should check which to use
+
+--- ./source4/kdc/kdc.c.orig
++++ ./source4/kdc/kdc.c
+@@ -967,9 +967,9 @@
+ 	 * The old behavior in the _kdc_get_preferred_key()
+ 	 * function is use_strongest_server_key=TRUE.
+ 	 */
+-	kdc->config->as_use_strongest_session_key = false;
++	kdc->config->tgt_use_strongest_session_key = false;
+ 	kdc->config->preauth_use_strongest_session_key = false;
+-	kdc->config->tgs_use_strongest_session_key = false;
++	kdc->config->svc_use_strongest_session_key = false;
+ 	kdc->config->use_strongest_server_key = true;
+ 
+ 	/* Register hdb-samba4 hooks for use as a keytab */
diff --git a/main/samba/wrappers.patch b/main/samba/wrappers.patch
new file mode 100644
index 0000000000000000000000000000000000000000..56858738d4106f4520262dd214e3426e75c1d630
--- /dev/null
+++ b/main/samba/wrappers.patch
@@ -0,0 +1,51 @@
+from upstream:
+https://git.samba.org/?p=samba.git;a=commit;h=c0a463d94abb5c50eaca7b1d402c979684f96a97
+
+--- ./wscript.orig
++++ ./wscript
+@@ -156,15 +156,16 @@
+     conf.RECURSE('lib/ntdb')
+     conf.RECURSE('lib/util/charset')
+     conf.RECURSE('source4/auth')
+-    conf.RECURSE('lib/nss_wrapper')
+     conf.RECURSE('nsswitch')
+-    conf.RECURSE('lib/socket_wrapper')
+-    conf.RECURSE('lib/uid_wrapper')
+     conf.RECURSE('lib/subunit/c')
+     conf.RECURSE('libcli/smbreadline')
+     conf.RECURSE('lib/crypto')
+     conf.RECURSE('pidl')
+     conf.RECURSE('selftest')
++    if conf.CONFIG_GET('ENABLE_SELFTEST'):
++        conf.RECURSE('lib/nss_wrapper')
++        conf.RECURSE('lib/socket_wrapper')
++        conf.RECURSE('lib/uid_wrapper')
+     conf.RECURSE('source3')
+     conf.RECURSE('lib/texpect')
+     if conf.env.with_ctdb:
+--- ./wscript_build.orig
++++ ./wscript_build
+@@ -2,6 +2,7 @@
+ 
+ # top level waf build script for samba4
+ 
++import Options
+ import os
+ srcdir = "."
+ 
+@@ -70,9 +71,12 @@
+ bld.RECURSE('source4/lib/events')
+ bld.RECURSE('source4/lib/cmdline')
+ bld.RECURSE('source4/lib/http')
+-bld.RECURSE('lib/socket_wrapper')
+-bld.RECURSE('lib/nss_wrapper')
+-bld.RECURSE('lib/uid_wrapper')
++if bld.CONFIG_GET('NSS_WRAPPER'):
++    bld.RECURSE('lib/nss_wrapper')
++if bld.CONFIG_GET('SOCKET_WRAPPER'):
++    bld.RECURSE('lib/socket_wrapper')
++if bld.CONFIG_GET('UID_WRAPPER'):
++    bld.RECURSE('lib/uid_wrapper')
+ if bld.CHECK_FOR_THIRD_PARTY():
+     bld.RECURSE('third_party/zlib')
+     bld.RECURSE('third_party/popt')