From 3a89a259a67fbb52f4d3d2740dd0a8aea229a4c0 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Sat, 23 Jan 2016 20:13:24 +0000
Subject: samba: update to 4.3.4

---
 ...s4-lib-tls-use-gnutls_priority_set_direct.patch | 69 ++++++++++++++++++++++
 abs/extra/samba/PKGBUILD                           | 17 +++---
 .../samba/samba-4.0.3-fix_pidl_with_gcc48.patch    | 60 -------------------
 3 files changed, 79 insertions(+), 67 deletions(-)
 create mode 100644 abs/extra/samba/0001-s4-lib-tls-use-gnutls_priority_set_direct.patch
 delete mode 100644 abs/extra/samba/samba-4.0.3-fix_pidl_with_gcc48.patch

diff --git a/abs/extra/samba/0001-s4-lib-tls-use-gnutls_priority_set_direct.patch b/abs/extra/samba/0001-s4-lib-tls-use-gnutls_priority_set_direct.patch
new file mode 100644
index 0000000..d77d7fb
--- /dev/null
+++ b/abs/extra/samba/0001-s4-lib-tls-use-gnutls_priority_set_direct.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
+
diff --git a/abs/extra/samba/PKGBUILD b/abs/extra/samba/PKGBUILD
index f813ab6..13ddd78 100644
--- a/abs/extra/samba/PKGBUILD
+++ b/abs/extra/samba/PKGBUILD
@@ -10,11 +10,11 @@
 
 pkgbase=samba
 pkgname=('libwbclient' 'smbclient' 'samba')
-pkgver=4.1.14
+pkgver=4.3.4
 # We use the 'A' to fake out pacman's version comparators.  Samba chooses
-# to append 'a','b',etc to their subsequent releases, which pamcan
+# to append 'a','b',etc to their subsequent releases, which pacman
 # misconstrues as alpha, beta, etc.  Bad samba!
-_realver=4.1.14
+_realver=4.3.4
 pkgrel=1
 arch=(i686 x86_64)
 url="http://www.samba.org"
@@ -23,6 +23,7 @@ makedepends=('python2' 'docbook-xsl' 'pkg-config' 'libbsd' 'db' 'popt' 'libcups'
              'readline' 'tevent' 'acl' 'libldap' 'libcap' 'ldb>=1.1.15' 'krb5' 'pam' 
              'gnutls>=2.4.1' 'talloc' 'tdb' 'dbus')
 source=(http://us1.samba.org/samba/ftp/stable/${pkgbase}-${_realver}.tar.gz
+        http://us1.samba.org/samba/ftp/stable/${pkgbase}-${_realver}.tar.asc
         samba.logrotate
         samba.pam
         samba.service
@@ -33,6 +34,7 @@ source=(http://us1.samba.org/samba/ftp/stable/${pkgbase}-${_realver}.tar.gz
         smbd@.service
         winbindd.service
         samba.conf)
+validpgpkeys=('52FBC0B86D954B0843324CDC6F33915B6568B7EA') #Samba Distribution Verification Key <samba-bugs@samba.org>
 ### UNINSTALL dmapi package before building!!!
 
 build() {
@@ -105,7 +107,7 @@ depends=('glibc' 'libbsd')
 
   install -d -m755 ${pkgdir}/usr/lib/samba
   mv ${_pkgsrc}/usr/lib/samba/libwinbind-client*.so* ${pkgdir}/usr/lib/samba/
-  mv ${_pkgsrc}/usr/lib/samba/libreplace.so* ${pkgdir}/usr/lib/samba/
+  #mv ${_pkgsrc}/usr/lib/samba/libreplace.so* ${pkgdir}/usr/lib/samba/
 
   install -d -m755 ${pkgdir}/usr/lib/pkgconfig
   mv ${_pkgsrc}/usr/lib/pkgconfig/wbclient.pc ${pkgdir}/usr/lib/pkgconfig/
@@ -120,9 +122,9 @@ depends=('popt' 'cifs-utils' 'tdb' "libwbclient>=$pkgver" 'ldb'
          'tevent' 'libgcrypt' 'python2' 'talloc' 'readline' 'gnutls' 
          'libbsd' 'libldap' 'libcups')
 
-    _smbclient_bins=('smbclient' 'smbclient4' 'rpcclient' 'smbspool'
+    _smbclient_bins=('smbclient' 'rpcclient' 'smbspool'
                      'smbtree' 'smbcacls' 'smbcquotas' 'smbget' 'net'
-                     'nmblookup' 'nmblookup4' 'smbtar')
+                     'nmblookup' 'smbtar')
     # Use samba-pkg as a staging directory for the split packages
     # (This is so RPATHS and symlinks are generated correctly via
     # make install, but the otherwise unsplit pieces can be split)
@@ -241,7 +243,8 @@ sys.path.insert(0, '/usr/lib/python${_pyver}/site-packages')" \
   # copy ldap example
   install -D -m644 ${srcdir}/samba-${_realver}/examples/LDAP/samba.schema ${pkgdir}/usr/share/doc/samba/examples/LDAP/samba.schema
 }
-md5sums=('9f7bae123ed39d2aa9ba842d3a138d54'
+md5sums=('48df803c6c6c475a714cae82a2dc219e'
+         'SKIP'
          '5697da77590ec092cc8a883bae06093c'
          '96f82c38f3f540b53f3e5144900acf17'
          'ee4763a656cf00d92bfda31b6bb2c5cb'
diff --git a/abs/extra/samba/samba-4.0.3-fix_pidl_with_gcc48.patch b/abs/extra/samba/samba-4.0.3-fix_pidl_with_gcc48.patch
deleted file mode 100644
index cb2378a..0000000
--- a/abs/extra/samba/samba-4.0.3-fix_pidl_with_gcc48.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1ac743a7d0d20e16fc325749d593edaaed89d706 Mon Sep 17 00:00:00 2001
-From: Alexander Bokovoy <ab@samba.org>
-Date: Wed, 6 Feb 2013 10:17:57 +0200
-Subject: [PATCH] PIDL: fix parsing linemarkers in preprocessor output
-
-When PIDL calls out to C preprocessor to expand IDL files
-and parse the output, it filters out linemarkers and line control
-information as described in http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html
-and http://gcc.gnu.org/onlinedocs/cpp/Line-Control.html#Line-Control
-
-With gcc 4.8 stdc-predef.h is included automatically and linemarker for the
-file has extended flags that PIDL couldn't parse ('system header that needs to
-be extern "C" protected for C++')
-
-Thanks to Jakub Jelinek <jakub@redhat.com> for explanation of the linemarker format.
-
-Fixes https://bugzilla.redhat.com/show_bug.cgi?id=906517
-
-Reviewed-by: Andreas Schneider <asn@samba.org>
-(cherry picked from commit 6ba7ab5c14801aecae96373d5a9db7ab82957526)
-
-Signed-off-by: Andreas Schneider <asn@samba.org>
----
- pidl/idl.yp                | 4 +++-
- pidl/lib/Parse/Pidl/IDL.pm | 4 +++-
- 2 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/pidl/idl.yp b/pidl/idl.yp
-index b5c5185..c8a65f6 100644
---- a/pidl/idl.yp
-+++ b/pidl/idl.yp
-@@ -610,7 +610,9 @@ again:
- 
- 	for ($parser->YYData->{INPUT}) {
- 		if (/^\#/) {
--			if (s/^\# (\d+) \"(.*?)\"( \d+|)//) {
-+			# Linemarker format is described at
-+			# http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html
-+			if (s/^\# (\d+) \"(.*?)\"(( \d+){1,4}|)//) {
- 				$parser->YYData->{LINE} = $1-1;
- 				$parser->YYData->{FILE} = $2;
- 				goto again;
-diff --git a/pidl/lib/Parse/Pidl/IDL.pm b/pidl/lib/Parse/Pidl/IDL.pm
-index d4820ff..6927c89 100644
---- a/pidl/lib/Parse/Pidl/IDL.pm
-+++ b/pidl/lib/Parse/Pidl/IDL.pm
-@@ -2576,7 +2576,9 @@ again:
- 
- 	for ($parser->YYData->{INPUT}) {
- 		if (/^\#/) {
--			if (s/^\# (\d+) \"(.*?)\"( \d+|)//) {
-+			# Linemarker format is described at
-+			# http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html
-+			if (s/^\# (\d+) \"(.*?)\"(( \d+){1,4}|)//) {
- 				$parser->YYData->{LINE} = $1-1;
- 				$parser->YYData->{FILE} = $2;
- 				goto again;
--- 
-1.8.1.1
-
-- 
cgit v0.12

