diff --git a/.gitignore b/.gitignore index c1dbfb9..fad0391 100644 --- a/.gitignore +++ b/.gitignore @@ -111,3 +111,5 @@ samba-3.6.0pre1.tar.gz /samba-4.7.3.tar.asc /samba-4.7.4.tar.xz /samba-4.7.4.tar.asc +/samba-4.8.0rc1.tar.xz +/samba-4.8.0rc1.tar.asc diff --git a/samba-4.7.0-bind_dlz.patch b/samba-4.7.0-bind_dlz.patch deleted file mode 100644 index a2c9085..0000000 --- a/samba-4.7.0-bind_dlz.patch +++ /dev/null @@ -1,1621 +0,0 @@ -From 243e61516860869b2ae5548edeba5e4f6f0ea90a Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Thu, 10 Aug 2017 11:36:52 +0200 -Subject: [PATCH 01/18] wafsamba: Add INSTALL_DIR function - -The install_dir function in waf has been deprecated and it doesn't -support setting directory permissions. So we need to implement our own -function anyway. - -BUG: https://bugzilla.samba.org/show_bug.cgi?id=12957 - -Signed-off-by: Andreas Schneider -Reviewed-by: Andrew Bartlett -(cherry picked from commit 59dc9eb776551ee73cc11e1c1215b311d5299d4d) ---- - buildtools/wafsamba/wafsamba.py | 18 ++++++++++++++++++ - 1 file changed, 18 insertions(+) - -diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py -index 1bdabf60640..b1e617916e0 100644 ---- a/buildtools/wafsamba/wafsamba.py -+++ b/buildtools/wafsamba/wafsamba.py -@@ -885,6 +885,24 @@ def INSTALL_WILDCARD(bld, destdir, pattern, chmod=MODE_644, flat=False, - python_fixup=python_fixup, base_name=trim_path) - Build.BuildContext.INSTALL_WILDCARD = INSTALL_WILDCARD - -+def INSTALL_DIR(bld, path, chmod=0o755): -+ """Install a directory if it doesn't exist, always set permissions.""" -+ -+ if not path: -+ return [] -+ -+ if bld.is_install > 0: -+ path = bld.EXPAND_VARIABLES(path) -+ if not os.path.isdir(path): -+ try: -+ os.makedirs(path) -+ os.chmod(path, chmod) -+ except OSError, e: -+ if not os.path.isdir(path): -+ raise Utils.WafError("Cannot create the folder '%s' (error: %s)" % (path, e)) -+ else: -+ os.chmod(path, chmod) -+Build.BuildContext.INSTALL_DIR = INSTALL_DIR - - def INSTALL_DIRS(bld, destdir, dirs): - '''install a set of directories''' --- -2.14.1 - - -From ff41ba9856316974af3074e2025d26040c0ce5a3 Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Thu, 10 Aug 2017 11:40:06 +0200 -Subject: [PATCH 02/18] wafsamba: Call INSTALL_DIR in INSTALL_DIRS - -BUG: https://bugzilla.samba.org/show_bug.cgi?id=12957 - -Signed-off-by: Andreas Schneider -Reviewed-by: Andrew Bartlett -(cherry picked from commit 4311332a073787f4ca24cd0b89685632cb29134c) ---- - buildtools/wafsamba/wafsamba.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py -index b1e617916e0..57913af2bd7 100644 ---- a/buildtools/wafsamba/wafsamba.py -+++ b/buildtools/wafsamba/wafsamba.py -@@ -904,12 +904,12 @@ def INSTALL_DIR(bld, path, chmod=0o755): - os.chmod(path, chmod) - Build.BuildContext.INSTALL_DIR = INSTALL_DIR - --def INSTALL_DIRS(bld, destdir, dirs): -+def INSTALL_DIRS(bld, destdir, dirs, chmod=0o755): - '''install a set of directories''' - destdir = bld.EXPAND_VARIABLES(destdir) - dirs = bld.EXPAND_VARIABLES(dirs) - for d in TO_LIST(dirs): -- bld.install_dir(os.path.join(destdir, d)) -+ INSTALL_DIR(bld, os.path.join(destdir, d), chmod) - Build.BuildContext.INSTALL_DIRS = INSTALL_DIRS - - --- -2.14.1 - - -From 646631300e6fc117944f012337c50f5058e273d4 Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Thu, 10 Aug 2017 11:42:46 +0200 -Subject: [PATCH 03/18] dynconfig: Use INSTALL_DIR to create directories - -BUG: https://bugzilla.samba.org/show_bug.cgi?id=12957 - -Signed-off-by: Andreas Schneider -Reviewed-by: Andrew Bartlett - -Autobuild-User(master): Andrew Bartlett -Autobuild-Date(master): Thu Aug 24 09:29:05 CEST 2017 on sn-devel-144 - -(cherry picked from commit 3a719dc68c80fe28f8fc6eb1bed3eb3e581a86da) ---- - dynconfig/wscript | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/dynconfig/wscript b/dynconfig/wscript -index 4eaa4c0b0c4..7e9bde929d0 100644 ---- a/dynconfig/wscript -+++ b/dynconfig/wscript -@@ -415,9 +415,12 @@ def build(bld): - cflags=cflags) - - # install some extra empty directories -- bld.INSTALL_DIRS("", "${CONFIGDIR} ${PRIVATE_DIR} ${LOGFILEBASE}"); -- bld.INSTALL_DIRS("", "${PRIVATE_DIR} ${PRIVILEGED_SOCKET_DIR}") -- bld.INSTALL_DIRS("", "${STATEDIR} ${CACHEDIR}"); -+ bld.INSTALL_DIR("${CONFIGDIR}") -+ bld.INSTALL_DIR("${LOGFILEBASE}") -+ bld.INSTALL_DIR("${PRIVILEGED_SOCKET_DIR}") -+ bld.INSTALL_DIR("${PRIVATE_DIR}") -+ bld.INSTALL_DIR("${STATEDIR}") -+ bld.INSTALL_DIR("${CACHEDIR}") - - # these might be on non persistent storage - bld.INSTALL_DIRS("", "${LOCKDIR} ${PIDDIR} ${SOCKET_DIR}") --- -2.14.1 - - -From 4ad917b47a4738a01c17a432329a42db0785dc01 Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Thu, 10 Aug 2017 11:43:11 +0200 -Subject: [PATCH 04/18] dynconfig: Change permission of the private dir to 0700 - -BUG: https://bugzilla.samba.org/show_bug.cgi?id=12957 - -Signed-off-by: Andreas Schneider -Reviewed-by: Andrew Bartlet -(cherry picked from commit 47c039792a8a00c0f2798ced162c393d4712f946) ---- - dynconfig/wscript | 2 +- - python/samba/provision/__init__.py | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/dynconfig/wscript b/dynconfig/wscript -index 7e9bde929d0..ba0c896b90e 100644 ---- a/dynconfig/wscript -+++ b/dynconfig/wscript -@@ -418,7 +418,7 @@ def build(bld): - bld.INSTALL_DIR("${CONFIGDIR}") - bld.INSTALL_DIR("${LOGFILEBASE}") - bld.INSTALL_DIR("${PRIVILEGED_SOCKET_DIR}") -- bld.INSTALL_DIR("${PRIVATE_DIR}") -+ bld.INSTALL_DIR("${PRIVATE_DIR}", 0o700) - bld.INSTALL_DIR("${STATEDIR}") - bld.INSTALL_DIR("${CACHEDIR}") - -diff --git a/python/samba/provision/__init__.py b/python/samba/provision/__init__.py -index 2387931987e..91d2105929c 100644 ---- a/python/samba/provision/__init__.py -+++ b/python/samba/provision/__init__.py -@@ -2065,7 +2065,7 @@ def provision(logger, session_info, smbconf=None, - serverrole = lp.get("server role") - - if not os.path.exists(paths.private_dir): -- os.mkdir(paths.private_dir) -+ os.mkdir(paths.private_dir, 0o700) - if not os.path.exists(os.path.join(paths.private_dir, "tls")): - os.makedirs(os.path.join(paths.private_dir, "tls"), 0700) - if not os.path.exists(paths.state_dir): --- -2.14.1 - - -From 3544517ace9fc3c36a27a87b1522ae644400d5f1 Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Fri, 11 Aug 2017 12:45:14 +0200 -Subject: [PATCH 05/18] python:samba: Remove code to change group - -This is the wrong place, it will just prepare the ldif. The file is not -created here. - -The code is corrently changing the group in: - python/samba/provision/__init__.py - -Signed-off-by: Andreas Schneider -Reviewed-by: Andrew Bartlet -(cherry picked from commit 3b1aa2ca5f9ae151cd64579ed05c8fb766b1ec5d) ---- - python/samba/provision/sambadns.py | 10 ---------- - 1 file changed, 10 deletions(-) - -diff --git a/python/samba/provision/sambadns.py b/python/samba/provision/sambadns.py -index 961f37e16a6..dcb19c7053c 100644 ---- a/python/samba/provision/sambadns.py -+++ b/python/samba/provision/sambadns.py -@@ -1199,16 +1199,6 @@ def setup_bind9_dns(samdb, secretsdb, names, paths, lp, logger, - dns_keytab_path=paths.dns_keytab, dnspass=dnspass, - key_version_number=key_version_number) - -- dns_keytab_path = os.path.join(paths.private_dir, paths.dns_keytab) -- if os.path.isfile(dns_keytab_path) and paths.bind_gid is not None: -- try: -- os.chmod(dns_keytab_path, 0640) -- os.chown(dns_keytab_path, -1, paths.bind_gid) -- except OSError: -- if not os.environ.has_key('SAMBA_SELFTEST'): -- logger.info("Failed to chown %s to bind gid %u", -- dns_keytab_path, paths.bind_gid) -- - create_dns_dir(logger, paths) - - if dns_backend == "BIND9_FLATFILE": --- -2.14.1 - - -From 9a621d7ec02d4b857e0ea7fd9949601486dc8350 Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Thu, 10 Aug 2017 15:04:08 +0200 -Subject: [PATCH 06/18] param: Add 'binddns dir' parameter - -This allows to us to have restricted access to the directory by the group -'named' which bind is a member of. - -BUG: https://bugzilla.samba.org/show_bug.cgi?id=12957 - -Signed-off-by: Andreas Schneider -Reviewed-by: Andrew Bartlet -(cherry picked from commit 4c9608fb27b0f1bef846b72291ecb515045d3507) ---- - buildtools/wafsamba/samba_patterns.py | 1 + - docs-xml/smbdotconf/generate-file-list.sh | 1 + - docs-xml/smbdotconf/security/binddnsdir.xml | 18 ++++++++++++++++++ - dynconfig/dynconfig.c | 1 + - dynconfig/dynconfig.h | 1 + - dynconfig/wscript | 7 +++++++ - lib/param/loadparm.c | 1 + - lib/param/param.h | 1 + - source3/param/loadparm.c | 2 ++ - 9 files changed, 33 insertions(+) - create mode 100644 docs-xml/smbdotconf/security/binddnsdir.xml - -diff --git a/buildtools/wafsamba/samba_patterns.py b/buildtools/wafsamba/samba_patterns.py -index e809f26a095..2b939372fa4 100644 ---- a/buildtools/wafsamba/samba_patterns.py -+++ b/buildtools/wafsamba/samba_patterns.py -@@ -108,6 +108,7 @@ def write_build_options_header(fp): - fp.write(" output(screen,\" PIDDIR: %s\\n\", get_dyn_PIDDIR());\n") - fp.write(" output(screen,\" SMB_PASSWD_FILE: %s\\n\",get_dyn_SMB_PASSWD_FILE());\n") - fp.write(" output(screen,\" PRIVATE_DIR: %s\\n\",get_dyn_PRIVATE_DIR());\n") -+ fp.write(" output(screen,\" BINDDNS_DIR: %s\\n\",get_dyn_BINDDNS_DIR());\n") - fp.write("\n") - - def write_build_options_footer(fp): -diff --git a/docs-xml/smbdotconf/generate-file-list.sh b/docs-xml/smbdotconf/generate-file-list.sh -index 4a25f1e6d49..7ab1b7caf76 100755 ---- a/docs-xml/smbdotconf/generate-file-list.sh -+++ b/docs-xml/smbdotconf/generate-file-list.sh -@@ -11,6 +11,7 @@ echo " - - -+ - - - -diff --git a/docs-xml/smbdotconf/security/binddnsdir.xml b/docs-xml/smbdotconf/security/binddnsdir.xml -new file mode 100644 -index 00000000000..c296a0ef81d ---- /dev/null -+++ b/docs-xml/smbdotconf/security/binddnsdir.xml -@@ -0,0 +1,18 @@ -+ -+bind dns directory -+ -+ -+ This parameters defines the directory samba will use to store the configuration -+ files for bind, such as named.conf. -+ -+ NOTE: The bind dns directory needs to be on the same mount point as the private -+ directory! -+ -+ -+ -+&pathconfig.BINDDNS_DIR; -+ -diff --git a/dynconfig/dynconfig.c b/dynconfig/dynconfig.c -index e75d7db553a..e70a10f8cfe 100644 ---- a/dynconfig/dynconfig.c -+++ b/dynconfig/dynconfig.c -@@ -95,6 +95,7 @@ DEFINE_DYN_CONFIG_PARAM(PIDDIR) - DEFINE_DYN_CONFIG_PARAM(NCALRPCDIR) - DEFINE_DYN_CONFIG_PARAM(SMB_PASSWD_FILE) - DEFINE_DYN_CONFIG_PARAM(PRIVATE_DIR) -+DEFINE_DYN_CONFIG_PARAM(BINDDNS_DIR) - DEFINE_DYN_CONFIG_PARAM(LOCALEDIR) - DEFINE_DYN_CONFIG_PARAM(NMBDSOCKETDIR) - DEFINE_DYN_CONFIG_PARAM(DATADIR) -diff --git a/dynconfig/dynconfig.h b/dynconfig/dynconfig.h -index 4d07c103d74..bdab2e8f242 100644 ---- a/dynconfig/dynconfig.h -+++ b/dynconfig/dynconfig.h -@@ -46,6 +46,7 @@ DEFINE_DYN_CONFIG_PROTO(PIDDIR) - DEFINE_DYN_CONFIG_PROTO(NCALRPCDIR) - DEFINE_DYN_CONFIG_PROTO(SMB_PASSWD_FILE) - DEFINE_DYN_CONFIG_PROTO(PRIVATE_DIR) -+DEFINE_DYN_CONFIG_PROTO(BINDDNS_DIR) - DEFINE_DYN_CONFIG_PROTO(LOCALEDIR) - DEFINE_DYN_CONFIG_PROTO(NMBDSOCKETDIR) - DEFINE_DYN_CONFIG_PROTO(DATADIR) -diff --git a/dynconfig/wscript b/dynconfig/wscript -index ba0c896b90e..fee37eaaf5f 100644 ---- a/dynconfig/wscript -+++ b/dynconfig/wscript -@@ -192,6 +192,12 @@ dynconfig = { - 'OPTION': '--with-statedir', - 'HELPTEXT': 'Where to put persistent state files', - }, -+ 'BINDDNS_DIR' : { -+ 'STD-PATH': '${LOCALSTATEDIR}/lib', -+ 'FHS-PATH': '${LOCALSTATEDIR}/lib/samba/bind-dns', -+ 'OPTION': '--with-bind-dns-dir', -+ 'HELPTEXT': 'bind-dns config directory', -+ }, - 'CACHEDIR' : { - 'STD-PATH': '${LOCALSTATEDIR}/cache', - 'FHS-PATH': '${LOCALSTATEDIR}/cache/samba', -@@ -419,6 +425,7 @@ def build(bld): - bld.INSTALL_DIR("${LOGFILEBASE}") - bld.INSTALL_DIR("${PRIVILEGED_SOCKET_DIR}") - bld.INSTALL_DIR("${PRIVATE_DIR}", 0o700) -+ bld.INSTALL_DIR("${BINDDNS_DIR}", 0o770) - bld.INSTALL_DIR("${STATEDIR}") - bld.INSTALL_DIR("${CACHEDIR}") - -diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c -index a221e879d07..b91f9657f1c 100644 ---- a/lib/param/loadparm.c -+++ b/lib/param/loadparm.c -@@ -2655,6 +2655,7 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx) - /* the winbind method for domain controllers is for both RODC - auth forwarding and for trusted domains */ - lpcfg_do_global_parameter(lp_ctx, "private dir", dyn_PRIVATE_DIR); -+ lpcfg_do_global_parameter(lp_ctx, "binddns dir", dyn_BINDDNS_DIR); - lpcfg_do_global_parameter(lp_ctx, "registry:HKEY_LOCAL_MACHINE", "hklm.ldb"); - - /* This hive should be dynamically generated by Samba using -diff --git a/lib/param/param.h b/lib/param/param.h -index 589b8906db5..680c053a6cc 100644 ---- a/lib/param/param.h -+++ b/lib/param/param.h -@@ -56,6 +56,7 @@ const char **lpcfg_interfaces(struct loadparm_context *); - const char *lpcfg_realm(struct loadparm_context *); - const char *lpcfg_netbios_name(struct loadparm_context *); - const char *lpcfg_private_dir(struct loadparm_context *); -+const char *lpcfg_binddns_dir(struct loadparm_context *); - int lpcfg_server_role(struct loadparm_context *); - int lpcfg_allow_dns_updates(struct loadparm_context *); - -diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c -index d5b1c56e21e..42e579efcfd 100644 ---- a/source3/param/loadparm.c -+++ b/source3/param/loadparm.c -@@ -550,6 +550,8 @@ static void init_globals(struct loadparm_context *lp_ctx, bool reinit_globals) - get_dyn_SMB_PASSWD_FILE()); - lpcfg_string_set(Globals.ctx, &Globals.private_dir, - get_dyn_PRIVATE_DIR()); -+ lpcfg_string_set(Globals.ctx, &Globals.binddns_dir, -+ get_dyn_BINDDNS_DIR()); - - /* use the new 'hash2' method by default, with a prefix of 1 */ - lpcfg_string_set(Globals.ctx, &Globals.mangling_method, "hash2"); --- -2.14.1 - - -From f5831f9afb6c82a30226a05ce1667b348d096531 Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Tue, 22 Aug 2017 17:10:01 +0200 -Subject: [PATCH 07/18] s4:bind_dlz: Use the 'binddns dir' if possible - -The code makes sure we are backwards compatible. It will first check if -we still have files in the private directory, if yes it will use those. - -If the the file is not in the private directory it will try the binddns -dir. - -Signed-off-by: Andreas Schneider -Reviewed-by: Andrew Bartlet -(cherry picked from commit 3fa7c43ef73b6582e8985bf6d82465ffded9e5db) ---- - selftest/selftest.pl | 7 +++++++ - selftest/target/Samba3.pm | 4 ++++ - selftest/target/Samba4.pm | 4 ++++ - source4/dns_server/dlz_bind9.c | 44 ++++++++++++++++++++++++++++++++++++--- - source4/dsdb/dns/dns_update.c | 46 ++++++++++++++++++++++++++++++++++++++--- - source4/torture/dns/dlz_bind9.c | 26 ++++++++++++++++------- - 6 files changed, 117 insertions(+), 14 deletions(-) - -diff --git a/selftest/selftest.pl b/selftest/selftest.pl -index b3ef65828d7..e16696ab061 100755 ---- a/selftest/selftest.pl -+++ b/selftest/selftest.pl -@@ -512,6 +512,12 @@ sub write_clientconf($$$) - mkdir("$clientdir/private", 0777); - } - -+ if ( -d "$clientdir/bind-dns" ) { -+ unlink <$clientdir/bind-dns/*>; -+ } else { -+ mkdir("$clientdir/bind-dns", 0777); -+ } -+ - if ( -d "$clientdir/lockdir" ) { - unlink <$clientdir/lockdir/*>; - } else { -@@ -595,6 +601,7 @@ sub write_clientconf($$$) - } - print CF " - private dir = $clientdir/private -+ binddns dir = $clientdir/bind-dns - lock dir = $clientdir/lockdir - state directory = $clientdir/statedir - cache directory = $clientdir/cachedir -diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm -index 79b1a53ad2d..446f49140c5 100755 ---- a/selftest/target/Samba3.pm -+++ b/selftest/target/Samba3.pm -@@ -1334,6 +1334,9 @@ sub provision($$$$$$$$$) - my $privatedir="$prefix_abs/private"; - push(@dirs,$privatedir); - -+ my $binddnsdir = "$prefix_abs/bind-dns"; -+ push(@dirs, $binddnsdir); -+ - my $lockdir="$prefix_abs/lockdir"; - push(@dirs,$lockdir); - -@@ -1583,6 +1586,7 @@ sub provision($$$$$$$$$) - workgroup = $domain - - private dir = $privatedir -+ binddns dir = $binddnsdir - pid directory = $piddir - lock directory = $lockdir - log file = $logdir/log.\%m -diff --git a/selftest/target/Samba4.pm b/selftest/target/Samba4.pm -index 772f982cb9d..b08e2299113 100755 ---- a/selftest/target/Samba4.pm -+++ b/selftest/target/Samba4.pm -@@ -467,6 +467,7 @@ sub provision_raw_prepare($$$$$$$$$$$) - $ctx->{krb5_ccache} = "$prefix_abs/krb5_ccache"; - $ctx->{mitkdc_conf} = "$ctx->{etcdir}/mitkdc.conf"; - $ctx->{privatedir} = "$prefix_abs/private"; -+ $ctx->{binddnsdir} = "$prefix_abs/bind-dns"; - $ctx->{ncalrpcdir} = "$prefix_abs/ncalrpc"; - $ctx->{lockdir} = "$prefix_abs/lockdir"; - $ctx->{logdir} = "$prefix_abs/logs"; -@@ -494,6 +495,7 @@ sub provision_raw_prepare($$$$$$$$$$$) - $ctx->{interfaces} = "$ctx->{ipv4}/8 $ctx->{ipv6}/64"; - - push(@{$ctx->{directories}}, $ctx->{privatedir}); -+ push(@{$ctx->{directories}}, $ctx->{binddnsdir}); - push(@{$ctx->{directories}}, $ctx->{etcdir}); - push(@{$ctx->{directories}}, $ctx->{piddir}); - push(@{$ctx->{directories}}, $ctx->{lockdir}); -@@ -584,6 +586,7 @@ sub provision_raw_step1($$) - workgroup = $ctx->{domain} - realm = $ctx->{realm} - private dir = $ctx->{privatedir} -+ binddns dir = $ctx->{binddnsdir} - pid directory = $ctx->{piddir} - ncalrpc dir = $ctx->{ncalrpcdir} - lock dir = $ctx->{lockdir} -@@ -725,6 +728,7 @@ nogroup:x:65534:nobody - STATEDIR => $ctx->{statedir}, - CACHEDIR => $ctx->{cachedir}, - PRIVATEDIR => $ctx->{privatedir}, -+ BINDDNSDIR => $ctx->{binddnsdir}, - SERVERCONFFILE => $ctx->{smb_conf}, - CONFIGURATION => $configuration, - SOCKET_WRAPPER_DEFAULT_IFACE => $ctx->{swiface}, -diff --git a/source4/dns_server/dlz_bind9.c b/source4/dns_server/dlz_bind9.c -index 7096f4749b2..a3f336e6def 100644 ---- a/source4/dns_server/dlz_bind9.c -+++ b/source4/dns_server/dlz_bind9.c -@@ -682,11 +682,23 @@ _PUBLIC_ isc_result_t dlz_create(const char *dlzname, - } - - if (state->options.url == NULL) { -- state->options.url = lpcfg_private_path(state, state->lp, "dns/sam.ldb"); -+ state->options.url = lpcfg_private_path(state, -+ state->lp, -+ "dns/sam.ldb"); - if (state->options.url == NULL) { - result = ISC_R_NOMEMORY; - goto failed; - } -+ -+ if (!file_exist(state->options.url)) { -+ state->options.url = talloc_asprintf(state, -+ "%s/dns/sam.ldb", -+ lpcfg_binddns_dir(state->lp)); -+ if (state->options.url == NULL) { -+ result = ISC_R_NOMEMORY; -+ goto failed; -+ } -+ } - } - - state->samdb = samdb_connect_url(state, state->ev_ctx, state->lp, -@@ -1266,6 +1278,7 @@ _PUBLIC_ isc_boolean_t dlz_ssumatch(const char *signer, const char *name, const - DATA_BLOB ap_req; - struct cli_credentials *server_credentials; - char *keytab_name; -+ char *keytab_file = NULL; - int ret; - int ldb_ret; - NTSTATUS nt_status; -@@ -1307,8 +1320,33 @@ _PUBLIC_ isc_boolean_t dlz_ssumatch(const char *signer, const char *name, const - cli_credentials_set_krb5_context(server_credentials, state->smb_krb5_ctx); - cli_credentials_set_conf(server_credentials, state->lp); - -- keytab_name = talloc_asprintf(tmp_ctx, "FILE:%s/dns.keytab", -- lpcfg_private_dir(state->lp)); -+ keytab_file = talloc_asprintf(tmp_ctx, -+ "%s/dns.keytab", -+ lpcfg_private_dir(state->lp)); -+ if (keytab_file == NULL) { -+ state->log(ISC_LOG_ERROR, "samba_dlz: Out of memory!"); -+ talloc_free(tmp_ctx); -+ return ISC_FALSE; -+ } -+ -+ if (!file_exist(keytab_file)) { -+ keytab_file = talloc_asprintf(tmp_ctx, -+ "%s/dns.keytab", -+ lpcfg_binddns_dir(state->lp)); -+ if (keytab_file == NULL) { -+ state->log(ISC_LOG_ERROR, "samba_dlz: Out of memory!"); -+ talloc_free(tmp_ctx); -+ return ISC_FALSE; -+ } -+ } -+ -+ keytab_name = talloc_asprintf(tmp_ctx, "FILE:%s", keytab_file); -+ if (keytab_name == NULL) { -+ state->log(ISC_LOG_ERROR, "samba_dlz: Out of memory!"); -+ talloc_free(tmp_ctx); -+ return ISC_FALSE; -+ } -+ - ret = cli_credentials_set_keytab_name(server_credentials, state->lp, keytab_name, - CRED_SPECIFIED); - if (ret != 0) { -diff --git a/source4/dsdb/dns/dns_update.c b/source4/dsdb/dns/dns_update.c -index f74256d95ea..ba8431a3d1d 100644 ---- a/source4/dsdb/dns/dns_update.c -+++ b/source4/dsdb/dns/dns_update.c -@@ -170,16 +170,56 @@ static void dnsupdate_rebuild(struct dnsupdate_service *service) - - path = lpcfg_parm_string(service->task->lp_ctx, NULL, "dnsupdate", "path"); - if (path == NULL) { -- path = lpcfg_private_path(tmp_ctx, service->task->lp_ctx, "named.conf.update"); -+ path = lpcfg_private_path(tmp_ctx, -+ service->task->lp_ctx, -+ "named.conf.update"); -+ if (path == NULL) { -+ DBG_ERR("Out of memory!"); -+ talloc_free(tmp_ctx); -+ return; -+ } -+ -+ /* -+ * If the file doesn't exist, we provisioned in a the new -+ * bind-dns directory -+ */ -+ if (!file_exist(path)) { -+ path = talloc_asprintf(tmp_ctx, -+ "%s/named.conf.update", -+ lpcfg_binddns_dir(service->task->lp_ctx)); -+ if (path == NULL) { -+ DBG_ERR("Out of memory!"); -+ talloc_free(tmp_ctx); -+ return; -+ } -+ } - } - - path_static = lpcfg_parm_string(service->task->lp_ctx, NULL, "dnsupdate", "extra_static_grant_rules"); - if (path_static == NULL) { -- path_static = lpcfg_private_path(tmp_ctx, service->task->lp_ctx, "named.conf.update.static"); -+ path_static = lpcfg_private_path(tmp_ctx, -+ service->task->lp_ctx, -+ "named.conf.update.static"); -+ if (path_static == NULL) { -+ DBG_ERR("Out of memory!"); -+ talloc_free(tmp_ctx); -+ return; -+ } -+ -+ if (!file_exist(path_static)) { -+ path_static = talloc_asprintf(tmp_ctx, -+ "%s/named.conf.update.static", -+ lpcfg_binddns_dir(service->task->lp_ctx)); -+ if (path_static == NULL) { -+ DBG_ERR("Out of memory!"); -+ talloc_free(tmp_ctx); -+ return; -+ } -+ } - } - - tmp_path = talloc_asprintf(tmp_ctx, "%s.tmp", path); -- if (path == NULL || tmp_path == NULL || path_static == NULL ) { -+ if (tmp_path == NULL) { - DEBUG(0,(__location__ ": Unable to get paths\n")); - talloc_free(tmp_ctx); - return; -diff --git a/source4/torture/dns/dlz_bind9.c b/source4/torture/dns/dlz_bind9.c -index c29f26802f5..893158fa730 100644 ---- a/source4/torture/dns/dlz_bind9.c -+++ b/source4/torture/dns/dlz_bind9.c -@@ -19,7 +19,7 @@ - - #include "includes.h" - #include "torture/smbtorture.h" --#include "dlz_minimal.h" -+#include "dns_server/dlz_minimal.h" - #include - #include - #include "lib/param/param.h" -@@ -54,13 +54,22 @@ static bool test_dlz_bind9_version(struct torture_context *tctx) - return true; - } - -+static char *test_dlz_bind9_binddns_dir(struct torture_context *tctx, -+ const char *file) -+{ -+ return talloc_asprintf(tctx, -+ "%s/%s", -+ lpcfg_binddns_dir(tctx->lp_ctx), -+ file); -+} -+ - static bool test_dlz_bind9_create(struct torture_context *tctx) - { - void *dbdata; - const char *argv[] = { - "samba_dlz", - "-H", -- lpcfg_private_path(tctx, tctx->lp_ctx, "dns/sam.ldb"), -+ test_dlz_bind9_binddns_dir(tctx, "dns/sam.ldb"), - NULL - }; - tctx_static = tctx; -@@ -79,7 +88,8 @@ static isc_result_t dlz_bind9_writeable_zone_hook(dns_view_t *view, - struct torture_context *tctx = talloc_get_type((void *)view, struct torture_context); - struct ldb_context *samdb = samdb_connect_url(tctx, NULL, tctx->lp_ctx, - system_session(tctx->lp_ctx), -- 0, lpcfg_private_path(tctx, tctx->lp_ctx, "dns/sam.ldb")); -+ 0, -+ test_dlz_bind9_binddns_dir(tctx, "dns/sam.ldb")); - struct ldb_message *msg; - int ret; - const char *attrs[] = { -@@ -108,7 +118,7 @@ static bool test_dlz_bind9_configure(struct torture_context *tctx) - const char *argv[] = { - "samba_dlz", - "-H", -- lpcfg_private_path(tctx, tctx->lp_ctx, "dns/sam.ldb"), -+ test_dlz_bind9_binddns_dir(tctx, "dns/sam.ldb"), - NULL - }; - tctx_static = tctx; -@@ -143,7 +153,7 @@ static bool test_dlz_bind9_gensec(struct torture_context *tctx, const char *mech - const char *argv[] = { - "samba_dlz", - "-H", -- lpcfg_private_path(tctx, tctx->lp_ctx, "dns/sam.ldb"), -+ test_dlz_bind9_binddns_dir(tctx, "dns/sam.ldb"), - NULL - }; - tctx_static = tctx; -@@ -323,7 +333,7 @@ static bool test_dlz_bind9_lookup(struct torture_context *tctx) - const char *argv[] = { - "samba_dlz", - "-H", -- lpcfg_private_path(tctx, tctx->lp_ctx, "dns/sam.ldb"), -+ test_dlz_bind9_binddns_dir(tctx, "dns/sam.ldb"), - NULL - }; - struct test_expected_rr *expected1 = NULL; -@@ -448,7 +458,7 @@ static bool test_dlz_bind9_zonedump(struct torture_context *tctx) - const char *argv[] = { - "samba_dlz", - "-H", -- lpcfg_private_path(tctx, tctx->lp_ctx, "dns/sam.ldb"), -+ test_dlz_bind9_binddns_dir(tctx, "dns/sam.ldb"), - NULL - }; - struct test_expected_rr *expected1 = NULL; -@@ -560,7 +570,7 @@ static bool test_dlz_bind9_update01(struct torture_context *tctx) - const char *argv[] = { - "samba_dlz", - "-H", -- lpcfg_private_path(tctx, tctx->lp_ctx, "dns/sam.ldb"), -+ test_dlz_bind9_binddns_dir(tctx, "dns/sam.ldb"), - NULL - }; - struct test_expected_rr *expected1 = NULL; --- -2.14.1 - - -From 025ab90445903832c576d083997074e6c790638c Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Thu, 10 Aug 2017 15:37:54 +0200 -Subject: [PATCH 08/18] python:samba: Use 'binddns dir' in samba-tool and - samba_upgradedns - -This provisions the bind_dlz files in the 'binddns dir'. If you want to -migrate to the new files strcuture you can run samba_upgradedns! - -BUG: https://bugzilla.samba.org/show_bug.cgi?id=12957 - -Signed-off-by: Andreas Schneider -Reviewed-by: Andrew Bartlet -(cherry picked from commit 8f2dee256e281c438105689b073f09685f161b16) ---- - python/samba/provision/__init__.py | 72 ++++++++++++++++------ - python/samba/provision/sambadns.py | 19 +++--- - python/samba/tests/provision.py | 2 + - source4/scripting/bin/samba_upgradedns | 39 +++++++++--- - source4/scripting/bin/samba_upgradeprovision | 16 ++--- - wintest/wintest.py | 6 +- - 12 files changed, 121 insertions(+), 55 deletions(-) - -diff --git a/python/samba/provision/__init__.py b/python/samba/provision/__init__.py -index 91d2105929c..f820f6ab675 100644 ---- a/python/samba/provision/__init__.py -+++ b/python/samba/provision/__init__.py -@@ -27,6 +27,7 @@ - __docformat__ = "restructuredText" - - from base64 import b64encode -+import errno - import os - import re - import pwd -@@ -145,6 +146,7 @@ class ProvisionPaths(object): - self.dns = None - self.winsdb = None - self.private_dir = None -+ self.binddns_dir = None - self.state_dir = None - - -@@ -531,6 +533,7 @@ def provision_paths_from_lp(lp, dnsdomain): - """ - paths = ProvisionPaths() - paths.private_dir = lp.get("private dir") -+ paths.binddns_dir = lp.get("binddns dir") - paths.state_dir = lp.get("state directory") - - # This is stored without path prefix for the "privateKeytab" attribute in -@@ -543,16 +546,18 @@ def provision_paths_from_lp(lp, dnsdomain): - paths.idmapdb = os.path.join(paths.private_dir, "idmap.ldb") - paths.secrets = os.path.join(paths.private_dir, "secrets.ldb") - paths.privilege = os.path.join(paths.private_dir, "privilege.ldb") -- paths.dns = os.path.join(paths.private_dir, "dns", dnsdomain + ".zone") - paths.dns_update_list = os.path.join(paths.private_dir, "dns_update_list") - paths.spn_update_list = os.path.join(paths.private_dir, "spn_update_list") -- paths.namedconf = os.path.join(paths.private_dir, "named.conf") -- paths.namedconf_update = os.path.join(paths.private_dir, "named.conf.update") -- paths.namedtxt = os.path.join(paths.private_dir, "named.txt") - paths.krb5conf = os.path.join(paths.private_dir, "krb5.conf") - paths.kdcconf = os.path.join(paths.private_dir, "kdc.conf") - paths.winsdb = os.path.join(paths.private_dir, "wins.ldb") - paths.s4_ldapi_path = os.path.join(paths.private_dir, "ldapi") -+ -+ paths.dns = os.path.join(paths.binddns_dir, "dns", dnsdomain + ".zone") -+ paths.namedconf = os.path.join(paths.binddns_dir, "named.conf") -+ paths.namedconf_update = os.path.join(paths.binddns_dir, "named.conf.update") -+ paths.namedtxt = os.path.join(paths.binddns_dir, "named.txt") -+ - paths.hklm = "hklm.ldb" - paths.hkcr = "hkcr.ldb" - paths.hkcu = "hkcu.ldb" -@@ -945,6 +950,10 @@ def setup_secretsdb(paths, session_info, backend_credentials, lp): - if os.path.exists(keytab_path): - os.unlink(keytab_path) - -+ bind_dns_keytab_path = os.path.join(paths.binddns_dir, paths.dns_keytab) -+ if os.path.exists(bind_dns_keytab_path): -+ os.unlink(bind_dns_keytab_path) -+ - dns_keytab_path = os.path.join(paths.private_dir, paths.dns_keytab) - if os.path.exists(dns_keytab_path): - os.unlink(dns_keytab_path) -@@ -1928,6 +1937,15 @@ def provision_fake_ypserver(logger, samdb, domaindn, netbiosname, nisdomain, - else: - samdb.transaction_commit() - -+def directory_create_or_exists(path, mode=0o755): -+ if not os.path.exists(path): -+ try: -+ os.mkdir(path, mode) -+ except OSError as e: -+ if e.errno in [errno.EEXIST]: -+ pass -+ else: -+ raise ProvisioningError("Failed to create directory %s: %s" % (path, e.strerror)) - - def provision(logger, session_info, smbconf=None, - targetdir=None, samdb_fill=FILL_FULL, realm=None, rootdn=None, -@@ -2064,12 +2082,10 @@ def provision(logger, session_info, smbconf=None, - if serverrole is None: - serverrole = lp.get("server role") - -- if not os.path.exists(paths.private_dir): -- os.mkdir(paths.private_dir, 0o700) -- if not os.path.exists(os.path.join(paths.private_dir, "tls")): -- os.makedirs(os.path.join(paths.private_dir, "tls"), 0700) -- if not os.path.exists(paths.state_dir): -- os.mkdir(paths.state_dir) -+ directory_create_or_exists(paths.private_dir, 0o700) -+ directory_create_or_exists(paths.binddns_dir, 0o770) -+ directory_create_or_exists(os.path.join(paths.private_dir, "tls")) -+ directory_create_or_exists(paths.state_dir) - - if paths.sysvol and not os.path.exists(paths.sysvol): - os.makedirs(paths.sysvol, 0775) -@@ -2198,16 +2214,34 @@ def provision(logger, session_info, smbconf=None, - # Now commit the secrets.ldb to disk - secrets_ldb.transaction_commit() - -- # the commit creates the dns.keytab, now chown it -- dns_keytab_path = os.path.join(paths.private_dir, paths.dns_keytab) -- if os.path.isfile(dns_keytab_path) and paths.bind_gid is not None: -+ # the commit creates the dns.keytab in the private directory -+ private_dns_keytab_path = os.path.join(paths.private_dir, paths.dns_keytab) -+ bind_dns_keytab_path = os.path.join(paths.binddns_dir, paths.dns_keytab) -+ -+ if os.path.isfile(private_dns_keytab_path): -+ if os.path.isfile(bind_dns_keytab_path): -+ try: -+ os.unlink(bind_dns_keytab_path) -+ except OSError as e: -+ logger.error("Failed to remove %s: %s" % -+ (bind_dns_keytab_path, e.strerror)) -+ -+ # link the dns.keytab to the bind-dns directory - try: -- os.chmod(dns_keytab_path, 0640) -- os.chown(dns_keytab_path, -1, paths.bind_gid) -- except OSError: -- if not os.environ.has_key('SAMBA_SELFTEST'): -- logger.info("Failed to chown %s to bind gid %u", -- dns_keytab_path, paths.bind_gid) -+ os.link(private_dns_keytab_path, bind_dns_keytab_path) -+ except OSError as e: -+ logger.error("Failed to create link %s -> %s: %s" % -+ (private_dns_keytab_path, bind_dns_keytab_path, e.strerror)) -+ -+ # chown the dns.keytab in the bind-dns directory -+ if paths.bind_gid is not None: -+ try: -+ os.chmod(bind_dns_keytab_path, 0640) -+ os.chown(bind_dns_keytab_path, -1, paths.bind_gid) -+ except OSError: -+ if not os.environ.has_key('SAMBA_SELFTEST'): -+ logger.info("Failed to chown %s to bind gid %u", -+ bind_dns_keytab_path, paths.bind_gid) - - result = ProvisionResult() - result.server_role = serverrole -diff --git a/python/samba/provision/sambadns.py b/python/samba/provision/sambadns.py -index dcb19c7053c..d4cb93a89ea 100644 ---- a/python/samba/provision/sambadns.py -+++ b/python/samba/provision/sambadns.py -@@ -649,7 +649,7 @@ def add_dc_msdcs_records(samdb, forestdn, prefix, site, dnsforest, hostname, - fqdn_hostname) - - --def secretsdb_setup_dns(secretsdb, names, private_dir, realm, -+def secretsdb_setup_dns(secretsdb, names, private_dir, binddns_dir, realm, - dnsdomain, dns_keytab_path, dnspass, key_version_number): - """Add DNS specific bits to a secrets database. - -@@ -659,12 +659,15 @@ def secretsdb_setup_dns(secretsdb, names, private_dir, realm, - """ - try: - os.unlink(os.path.join(private_dir, dns_keytab_path)) -+ os.unlink(os.path.join(binddns_dir, dns_keytab_path)) - except OSError: - pass - - if key_version_number is None: - key_version_number = 1 - -+ # This will create the dns.keytab file in the private_dir when it is -+ # commited! - setup_ldb(secretsdb, setup_path("secrets_dns.ldif"), { - "REALM": realm, - "DNSDOMAIN": dnsdomain, -@@ -954,7 +957,7 @@ def create_named_conf(paths, realm, dnsdomain, dns_backend, logger): - }) - - --def create_named_txt(path, realm, dnsdomain, dnsname, private_dir, -+def create_named_txt(path, realm, dnsdomain, dnsname, binddns_dir, - keytab_name): - """Write out a file containing zone statements suitable for inclusion in a - named.conf file (including GSS-TSIG configuration). -@@ -962,7 +965,7 @@ def create_named_txt(path, realm, dnsdomain, dnsname, private_dir, - :param path: Path of the new named.conf file. - :param realm: Realm name - :param dnsdomain: DNS Domain name -- :param private_dir: Path to private directory -+ :param binddns_dir: Path to bind dns directory - :param keytab_name: File name of DNS keytab file - """ - setup_file(setup_path("named.txt"), path, { -@@ -970,8 +973,8 @@ def create_named_txt(path, realm, dnsdomain, dnsname, private_dir, - "DNSNAME" : dnsname, - "REALM": realm, - "DNS_KEYTAB": keytab_name, -- "DNS_KEYTAB_ABS": os.path.join(private_dir, keytab_name), -- "PRIVATE_DIR": private_dir -+ "DNS_KEYTAB_ABS": os.path.join(binddns_dir, keytab_name), -+ "PRIVATE_DIR": binddns_dir - }) - - -@@ -1194,7 +1197,9 @@ def setup_bind9_dns(samdb, secretsdb, names, paths, lp, logger, - domainguid = get_domainguid(samdb, domaindn) - - secretsdb_setup_dns(secretsdb, names, -- paths.private_dir, realm=names.realm, -+ paths.private_dir, -+ paths.binddns_dir, -+ realm=names.realm, - dnsdomain=names.dnsdomain, - dns_keytab_path=paths.dns_keytab, dnspass=dnspass, - key_version_number=key_version_number) -@@ -1218,7 +1223,7 @@ def setup_bind9_dns(samdb, secretsdb, names, paths, lp, logger, - create_named_txt(paths.namedtxt, - realm=names.realm, dnsdomain=names.dnsdomain, - dnsname = "%s.%s" % (names.hostname, names.dnsdomain), -- private_dir=paths.private_dir, -+ binddns_dir=paths.binddns_dir, - keytab_name=paths.dns_keytab) - logger.info("See %s for an example configuration include file for BIND", - paths.namedconf) -diff --git a/python/samba/tests/provision.py b/python/samba/tests/provision.py -index 11b0135f473..bada14f5936 100644 ---- a/python/samba/tests/provision.py -+++ b/python/samba/tests/provision.py -@@ -42,6 +42,7 @@ def create_dummy_secretsdb(path, lp=None): - paths = ProvisionPaths() - paths.secrets = path - paths.private_dir = os.path.dirname(path) -+ paths.binddns_dir = os.path.dirname(path) - paths.keytab = "no.keytab" - paths.dns_keytab = "no.dns.keytab" - secrets_ldb = setup_secretsdb(paths, None, None, lp=lp) -@@ -59,6 +60,7 @@ class ProvisionTestCase(samba.tests.TestCaseInTempDir): - secrets_tdb_path = os.path.join(self.tempdir, "secrets.tdb") - paths.secrets = path - paths.private_dir = os.path.dirname(path) -+ paths.binddns_dir = os.path.dirname(path) - paths.keytab = "no.keytab" - paths.dns_keytab = "no.dns.keytab" - ldb = setup_secretsdb(paths, None, None, lp=env_loadparm()) -diff --git a/source4/scripting/bin/samba_upgradedns b/source4/scripting/bin/samba_upgradedns -index d00b67daca1..231e05fca9a 100755 ---- a/source4/scripting/bin/samba_upgradedns -+++ b/source4/scripting/bin/samba_upgradedns -@@ -446,7 +446,7 @@ if __name__ == '__main__': - dns_key_version_number = None - - secretsdb_setup_dns(ldbs.secrets, names, -- paths.private_dir, realm=names.realm, -+ paths.private_dir, paths.binddns_dir, realm=names.realm, - dnsdomain=names.dnsdomain, - dns_keytab_path=paths.dns_keytab, dnspass=dnspass, - key_version_number=dns_key_version_number) -@@ -454,15 +454,34 @@ if __name__ == '__main__': - else: - logger.info("dns-%s account already exists" % hostname) - -- dns_keytab_path = os.path.join(paths.private_dir, paths.dns_keytab) -- if os.path.isfile(dns_keytab_path) and paths.bind_gid is not None: -+ private_dns_keytab_path = os.path.join(paths.private_dir, paths.dns_keytab) -+ bind_dns_keytab_path = os.path.join(paths.binddns_dir, paths.dns_keytab) -+ -+ if os.path.isfile(private_dns_keytab_path): -+ if os.path.isfile(bind_dns_keytab_path): -+ try: -+ os.unlink(bind_dns_keytab_path) -+ except OSError as e: -+ logger.error("Failed to remove %s: %s" % -+ (bind_dns_keytab_path, e.strerror)) -+ -+ # link the dns.keytab to the bind-dns directory - try: -- os.chmod(dns_keytab_path, 0640) -- os.chown(dns_keytab_path, -1, paths.bind_gid) -- except OSError: -- if not os.environ.has_key('SAMBA_SELFTEST'): -- logger.info("Failed to chown %s to bind gid %u", -- dns_keytab_path, paths.bind_gid) -+ os.link(private_dns_keytab_path, bind_dns_keytab_path) -+ except OSError as e: -+ logger.error("Failed to create link %s -> %s: %s" % -+ (private_dns_keytab_path, bind_dns_keytab_path, e.strerror)) -+ -+ # chown the dns.keytab in the bind-dns directory -+ if paths.bind_gid is not None: -+ try: -+ os.chmod(bind_dns_keytab_path, 0640) -+ os.chown(bind_dns_keytab_path, -1, paths.bind_gid) -+ except OSError: -+ if not os.environ.has_key('SAMBA_SELFTEST'): -+ logger.info("Failed to chown %s to bind gid %u", -+ bind_dns_keytab_path, paths.bind_gid) -+ - - # This forces a re-creation of dns directory and all the files within - # It's an overkill, but it's easier to re-create a samdb copy, rather -@@ -476,7 +495,7 @@ if __name__ == '__main__': - create_named_conf(paths, names.realm, dnsdomain, opts.dns_backend, logger) - - create_named_txt(paths.namedtxt, names.realm, dnsdomain, dnsname, -- paths.private_dir, paths.dns_keytab) -+ paths.binddns_dir, paths.dns_keytab) - logger.info("See %s for an example configuration include file for BIND", paths.namedconf) - logger.info("and %s for further documentation required for secure DNS " - "updates", paths.namedtxt) -diff --git a/source4/scripting/bin/samba_upgradeprovision b/source4/scripting/bin/samba_upgradeprovision -index 99e97b7f28f..d11175314c6 100755 ---- a/source4/scripting/bin/samba_upgradeprovision -+++ b/source4/scripting/bin/samba_upgradeprovision -@@ -207,7 +207,7 @@ creds.set_kerberos_state(DONT_USE_KERBEROS) - - - --def check_for_DNS(refprivate, private, dns_backend): -+def check_for_DNS(refprivate, private, refbinddns_dir, binddns_dir, dns_backend): - """Check if the provision has already the requirement for dynamic dns - - :param refprivate: The path to the private directory of the reference -@@ -229,17 +229,17 @@ def check_for_DNS(refprivate, private, dns_backend): - - namedfile = lp.get("dnsupdate:path") - if not namedfile: -- namedfile = "%s/named.conf.update" % private -+ namedfile = "%s/named.conf.update" % binddns_dir - if not os.path.exists(namedfile): -- destdir = "%s/new_dns" % private -- dnsdir = "%s/dns" % private -+ destdir = "%s/new_dns" % binddns_dir -+ dnsdir = "%s/dns" % binddns_dir - - if not os.path.exists(destdir): - os.mkdir(destdir) - if not os.path.exists(dnsdir): - os.mkdir(dnsdir) -- shutil.copy("%s/named.conf" % refprivate, "%s/named.conf" % destdir) -- shutil.copy("%s/named.txt" % refprivate, "%s/named.txt" % destdir) -+ shutil.copy("%s/named.conf" % refbinddns_dir, "%s/named.conf" % destdir) -+ shutil.copy("%s/named.txt" % refbinddns_dir, "%s/named.txt" % destdir) - message(SIMPLE, "It seems that your provision did not integrate " - "new rules for dynamic dns update of domain related entries") - message(SIMPLE, "A copy of the new bind configuration files and " -@@ -1793,7 +1793,9 @@ if __name__ == '__main__': - # 20) - updateOEMInfo(ldbs.sam, str(names.rootdn)) - # 21) -- check_for_DNS(newpaths.private_dir, paths.private_dir, names.dns_backend) -+ check_for_DNS(newpaths.private_dir, paths.private_dir, -+ newpaths.binddns_dir, paths.binddns_dir, -+ names.dns_backend) - # 22) - update_provision_usn(ldbs.sam, minUSN, maxUSN, names.invocation) - if opts.full and (names.policyid is None or names.policyid_dc is None): -diff --git a/wintest/wintest.py b/wintest/wintest.py -index 3493df4e457..4fe35e3481a 100644 ---- a/wintest/wintest.py -+++ b/wintest/wintest.py -@@ -341,15 +341,15 @@ nameserver %s - elif self.getvar('NAMESERVER_BACKEND') != 'SAMBA_INTERNAL': - if self.named_supports_gssapi_keytab(): - self.setvar("NAMED_TKEY_OPTION", -- 'tkey-gssapi-keytab "${PREFIX}/private/dns.keytab";') -+ 'tkey-gssapi-keytab "${PREFIX}/bind-dns/dns.keytab";') - else: - self.info("LCREALM=${LCREALM}") - self.setvar("NAMED_TKEY_OPTION", - '''tkey-gssapi-credential "DNS/${LCREALM}"; - tkey-domain "${LCREALM}"; - ''') -- self.putenv('KEYTAB_FILE', '${PREFIX}/private/dns.keytab') -- self.putenv('KRB5_KTNAME', '${PREFIX}/private/dns.keytab') -+ self.putenv('KEYTAB_FILE', '${PREFIX}/bind-dns/dns.keytab') -+ self.putenv('KRB5_KTNAME', '${PREFIX}/bind-dns/dns.keytab') - else: - self.setvar("NAMED_TKEY_OPTION", "") - --- -2.14.1 - - -From 7e823e42887aa5e87a06316c61bb086ce8e01ed9 Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Wed, 23 Aug 2017 15:36:23 +0200 -Subject: [PATCH 09/18] python:samba: Add code to remove obsolete files in the - private dir - -BUG: https://bugzilla.samba.org/show_bug.cgi?id=12957 - -Signed-off-by: Andreas Schneider -Reviewed-by: Andrew Bartlet - -Autobuild-User(master): Jeremy Allison -Autobuild-Date(master): Wed Sep 6 03:54:19 CEST 2017 on sn-devel-144 - -(cherry picked from commit 2d0e13837d8c6fab3fb296aafcabdf2a2973b96d) ---- - source4/scripting/bin/samba_upgradedns | 34 ++++++++++++++++++++++++++++++++++ - 1 file changed, 34 insertions(+) - -diff --git a/source4/scripting/bin/samba_upgradedns b/source4/scripting/bin/samba_upgradedns -index 231e05fca9a..2582da0f6bc 100755 ---- a/source4/scripting/bin/samba_upgradedns -+++ b/source4/scripting/bin/samba_upgradedns -@@ -20,6 +20,7 @@ - - import sys - import os -+import errno - import optparse - import logging - import grp -@@ -209,6 +210,36 @@ def import_zone_data(samdb, logger, zone, serial, domaindn, forestdn, - raise - logger.debug("Added DNS record %s" % (fqdn)) - -+def cleanup_remove_file(file_path): -+ try: -+ os.remove(file_path) -+ except OSError as e: -+ if e.errno not in [errno.EEXIST, errno.ENOENT]: -+ pass -+ else: -+ logger.debug("Could not remove %s: %s" % (file_path, e.strerror)) -+ -+def cleanup_remove_dir(dir_path): -+ try: -+ for root, dirs, files in os.walk(dir_path, topdown=False): -+ for name in files: -+ os.remove(os.path.join(root, name)) -+ for name in dirs: -+ os.rmdir(os.path.join(root, name)) -+ os.rmdir(dir_path) -+ except OSError as e: -+ if e.errno not in [errno.EEXIST, errno.ENOENT]: -+ pass -+ else: -+ logger.debug("Could not delete dir %s: %s" % (dir_path, e.strerror)) -+ -+def cleanup_obsolete_dns_files(paths): -+ cleanup_remove_file(os.path.join(paths.private_dir, "named.conf")) -+ cleanup_remove_file(os.path.join(paths.private_dir, "named.conf.update")) -+ cleanup_remove_file(os.path.join(paths.private_dir, "named.txt")) -+ -+ cleanup_remove_dir(os.path.join(paths.private_dir, "dns")) -+ - - # dnsprovision creates application partitions for AD based DNS mainly if the existing - # provision was created using earlier snapshots of samba4 which did not have support -@@ -496,6 +527,9 @@ if __name__ == '__main__': - - create_named_txt(paths.namedtxt, names.realm, dnsdomain, dnsname, - paths.binddns_dir, paths.dns_keytab) -+ -+ cleanup_obsolete_dns_files(paths) -+ - logger.info("See %s for an example configuration include file for BIND", paths.namedconf) - logger.info("and %s for further documentation required for secure DNS " - "updates", paths.namedtxt) --- -2.14.1 - - -From b3aecc64d2637bcf67cf4b277eb58b1db76d21c3 Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Tue, 5 Sep 2017 14:18:44 +0200 -Subject: [PATCH 10/18] wafsamba: Do not chmod already existing dirs on install - -This might break backward compatibility. - -BUG: https://bugzilla.samba.org/show_bug.cgi?id=12957 - -Signed-off-by: Andreas Schneider ---- - buildtools/wafsamba/wafsamba.py | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py -index 57913af2bd7..f91adca1a0c 100644 ---- a/buildtools/wafsamba/wafsamba.py -+++ b/buildtools/wafsamba/wafsamba.py -@@ -900,8 +900,6 @@ def INSTALL_DIR(bld, path, chmod=0o755): - except OSError, e: - if not os.path.isdir(path): - raise Utils.WafError("Cannot create the folder '%s' (error: %s)" % (path, e)) -- else: -- os.chmod(path, chmod) - Build.BuildContext.INSTALL_DIR = INSTALL_DIR - - def INSTALL_DIRS(bld, destdir, dirs, chmod=0o755): --- -2.14.1 - - -From cb5e5e770dc50469d0f68594ea46c569fbbb396b Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Tue, 5 Sep 2017 20:36:47 +0200 -Subject: [PATCH 11/18] samba:provision: Give a hint to copy the krb5.conf and - not symlink it - -BUG: https://bugzilla.samba.org/show_bug.cgi?id=12957 - -Signed-off-by: Andreas Schneider ---- - python/samba/provision/__init__.py | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/python/samba/provision/__init__.py b/python/samba/provision/__init__.py -index f820f6ab675..8a8c033105f 100644 ---- a/python/samba/provision/__init__.py -+++ b/python/samba/provision/__init__.py -@@ -2200,6 +2200,9 @@ def provision(logger, session_info, smbconf=None, - realm=names.realm) - logger.info("A Kerberos configuration suitable for Samba AD has been " - "generated at %s", paths.krb5conf) -+ logger.info("Merge the contents of this file with your system " -+ "krb5.conf or replace it with this one. Do not create a " -+ "symlink!") - - if serverrole == "active directory domain controller": - create_dns_update_list(lp, logger, paths) --- -2.14.1 - - -From c852efa1f09ff45b333effacfd2b26a9b2b77694 Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Thu, 10 Aug 2017 15:04:08 +0200 -Subject: [PATCH 12/18] dynconfig: Fix location of the default 'binddns dir' - -BUG: https://bugzilla.samba.org/show_bug.cgi?id=12957 - -Signed-off-by: Andreas Schneider ---- - dynconfig/wscript | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/dynconfig/wscript b/dynconfig/wscript -index fee37eaaf5f..54977e42bd4 100644 ---- a/dynconfig/wscript -+++ b/dynconfig/wscript -@@ -174,6 +174,12 @@ dynconfig = { - 'OPTION': '--with-privatedir', - 'HELPTEXT': 'Where to put sam.ldb and other private files', - }, -+ 'BINDDNS_DIR' : { -+ 'STD-PATH': '${PREFIX}/bind-dns', -+ 'FHS-PATH': '${LOCALSTATEDIR}/lib/samba/bind-dns', -+ 'OPTION': '--with-bind-dns-dir', -+ 'HELPTEXT': 'bind-dns config directory', -+ }, - 'LOCKDIR' : { - 'STD-PATH': '${LOCALSTATEDIR}/lock', - 'FHS-PATH': '${LOCALSTATEDIR}/lock/samba', -@@ -192,12 +198,6 @@ dynconfig = { - 'OPTION': '--with-statedir', - 'HELPTEXT': 'Where to put persistent state files', - }, -- 'BINDDNS_DIR' : { -- 'STD-PATH': '${LOCALSTATEDIR}/lib', -- 'FHS-PATH': '${LOCALSTATEDIR}/lib/samba/bind-dns', -- 'OPTION': '--with-bind-dns-dir', -- 'HELPTEXT': 'bind-dns config directory', -- }, - 'CACHEDIR' : { - 'STD-PATH': '${LOCALSTATEDIR}/cache', - 'FHS-PATH': '${LOCALSTATEDIR}/cache/samba', --- -2.14.1 - - -From a671df22ac82a33eea6bdf88eee5e8a703ada831 Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Tue, 22 Aug 2017 17:10:01 +0200 -Subject: [PATCH 13/18] s4:bind_dlz: Try the 'binddns dir' first - -The directory is normally empty if you did not provision or call -samba_upgradedns for the bind_dlz module. - -BUG: https://bugzilla.samba.org/show_bug.cgi?id=12957 - -Signed-off-by: Andreas Schneider ---- - source4/dns_server/dlz_bind9.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/source4/dns_server/dlz_bind9.c b/source4/dns_server/dlz_bind9.c -index a3f336e6def..8d6385af154 100644 ---- a/source4/dns_server/dlz_bind9.c -+++ b/source4/dns_server/dlz_bind9.c -@@ -682,9 +682,9 @@ _PUBLIC_ isc_result_t dlz_create(const char *dlzname, - } - - if (state->options.url == NULL) { -- state->options.url = lpcfg_private_path(state, -- state->lp, -- "dns/sam.ldb"); -+ state->options.url = talloc_asprintf(state, -+ "%s/dns/sam.ldb", -+ lpcfg_binddns_dir(state->lp)); - if (state->options.url == NULL) { - result = ISC_R_NOMEMORY; - goto failed; -@@ -693,7 +693,7 @@ _PUBLIC_ isc_result_t dlz_create(const char *dlzname, - if (!file_exist(state->options.url)) { - state->options.url = talloc_asprintf(state, - "%s/dns/sam.ldb", -- lpcfg_binddns_dir(state->lp)); -+ lpcfg_private_dir(state->lp)); - if (state->options.url == NULL) { - result = ISC_R_NOMEMORY; - goto failed; -@@ -1322,7 +1322,7 @@ _PUBLIC_ isc_boolean_t dlz_ssumatch(const char *signer, const char *name, const - - keytab_file = talloc_asprintf(tmp_ctx, - "%s/dns.keytab", -- lpcfg_private_dir(state->lp)); -+ lpcfg_binddns_dir(state->lp)); - if (keytab_file == NULL) { - state->log(ISC_LOG_ERROR, "samba_dlz: Out of memory!"); - talloc_free(tmp_ctx); -@@ -1332,7 +1332,7 @@ _PUBLIC_ isc_boolean_t dlz_ssumatch(const char *signer, const char *name, const - if (!file_exist(keytab_file)) { - keytab_file = talloc_asprintf(tmp_ctx, - "%s/dns.keytab", -- lpcfg_binddns_dir(state->lp)); -+ lpcfg_private_dir(state->lp)); - if (keytab_file == NULL) { - state->log(ISC_LOG_ERROR, "samba_dlz: Out of memory!"); - talloc_free(tmp_ctx); --- -2.14.1 - - -From bce7681c6525654df5b896299de5270d96e33305 Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Wed, 6 Sep 2017 07:23:57 +0200 -Subject: [PATCH 14/18] python:provision: Change the group of the 'binddns dir' - too - -BUG: https://bugzilla.samba.org/show_bug.cgi?id=12957 - -Signed-off-by: Andreas Schneider ---- - python/samba/provision/__init__.py | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/python/samba/provision/__init__.py b/python/samba/provision/__init__.py -index 8a8c033105f..07c24795477 100644 ---- a/python/samba/provision/__init__.py -+++ b/python/samba/provision/__init__.py -@@ -2238,6 +2238,14 @@ def provision(logger, session_info, smbconf=None, - - # chown the dns.keytab in the bind-dns directory - if paths.bind_gid is not None: -+ try: -+ os.chmod(paths.binddns_dir, 0770) -+ os.chown(paths.binddns_dir, -1, paths.bind_gid) -+ except OSError: -+ if not os.environ.has_key('SAMBA_SELFTEST'): -+ logger.info("Failed to chown %s to bind gid %u", -+ paths.binddns_dir, paths.bind_gid) -+ - try: - os.chmod(bind_dns_keytab_path, 0640) - os.chown(bind_dns_keytab_path, -1, paths.bind_gid) --- -2.14.1 - - -From 2e6d5ee84e1199bf2b34ffa0c0db488a5f025bb1 Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Wed, 6 Sep 2017 07:25:04 +0200 -Subject: [PATCH 15/18] python:provision: Do not change the owner of the - sam.ldb.d dir - -BUG: https://bugzilla.samba.org/show_bug.cgi?id=12957 - -Signed-off-by: Andreas Schneider ---- - python/samba/provision/sambadns.py | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/python/samba/provision/sambadns.py b/python/samba/provision/sambadns.py -index d4cb93a89ea..c95583162e7 100644 ---- a/python/samba/provision/sambadns.py -+++ b/python/samba/provision/sambadns.py -@@ -864,9 +864,6 @@ def create_samdb_copy(samdb, logger, paths, names, domainsid, domainguid): - # Give bind read/write permissions dns partitions - if paths.bind_gid is not None: - try: -- os.chown(samldb_dir, -1, paths.bind_gid) -- os.chmod(samldb_dir, 0750) -- - for dirname, dirs, files in os.walk(dns_dir): - for d in dirs: - dpath = os.path.join(dirname, d) --- -2.14.1 - - -From 20edd750566c9cfa1adb062dcdb4306f48e596fe Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Wed, 6 Sep 2017 10:06:40 +0200 -Subject: [PATCH 16/18] samba_upgradedns: Change the group of the 'binddns dir' - too - -BUG: https://bugzilla.samba.org/show_bug.cgi?id=12957 - -Signed-off-by: Andreas Schneider ---- - source4/scripting/bin/samba_upgradedns | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/source4/scripting/bin/samba_upgradedns b/source4/scripting/bin/samba_upgradedns -index 2582da0f6bc..db3ef5c6d65 100755 ---- a/source4/scripting/bin/samba_upgradedns -+++ b/source4/scripting/bin/samba_upgradedns -@@ -505,6 +505,13 @@ if __name__ == '__main__': - - # chown the dns.keytab in the bind-dns directory - if paths.bind_gid is not None: -+ try: -+ os.chmod(paths.binddns_dir, 0o770) -+ os.chown(paths.binddns_dir, -1, paths.bind_gid) -+ except OSError: -+ if not os.environ.has_key('SAMBA_SELFTEST'): -+ logger.info("Failed to chown %s to bind gid %u", -+ paths.binddns_dir, paths.bind_gid) - try: - os.chmod(bind_dns_keytab_path, 0640) - os.chown(bind_dns_keytab_path, -1, paths.bind_gid) --- -2.14.1 - - -From aeb32269b20cad8c8983b0530b60bc6ac182e274 Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Wed, 6 Sep 2017 07:25:40 +0200 -Subject: [PATCH 17/18] samba_upgradedns: Print better hints after we migrated - the config - -BUG: https://bugzilla.samba.org/show_bug.cgi?id=12957 - -Signed-off-by: Andreas Schneider ---- - source4/scripting/bin/samba_upgradedns | 18 +++++++++++++++--- - 1 file changed, 15 insertions(+), 3 deletions(-) - -diff --git a/source4/scripting/bin/samba_upgradedns b/source4/scripting/bin/samba_upgradedns -index db3ef5c6d65..3369bcfed93 100755 ---- a/source4/scripting/bin/samba_upgradedns -+++ b/source4/scripting/bin/samba_upgradedns -@@ -442,6 +442,12 @@ if __name__ == '__main__': - - # Special stuff for DLZ backend - if opts.dns_backend == "BIND9_DLZ": -+ config_migration = False -+ -+ if (paths.private_dir != paths.binddns_dir and -+ os.path.isfile(os.path.join(paths.private_dir, "named.conf"))): -+ config_migration = True -+ - # Check if dns-HOSTNAME account exists and create it if required - secrets_msgs = ldbs.secrets.search(expression='(samAccountName=dns-%s)' % hostname, attrs=['secret']) - msg = ldbs.sam.search(base=domaindn, scope=ldb.SCOPE_DEFAULT, -@@ -537,9 +543,15 @@ if __name__ == '__main__': - - cleanup_obsolete_dns_files(paths) - -- logger.info("See %s for an example configuration include file for BIND", paths.namedconf) -- logger.info("and %s for further documentation required for secure DNS " -- "updates", paths.namedtxt) -+ if config_migration: -+ logger.info("ATTENTION: The BIND configuration and keytab has been moved to: %s", -+ paths.binddns_dir) -+ logger.info(" Please update your BIND configuration accordingly.") -+ else: -+ logger.info("See %s for an example configuration include file for BIND", paths.namedconf) -+ logger.info("and %s for further documentation required for secure DNS " -+ "updates", paths.namedtxt) -+ - elif opts.dns_backend == "SAMBA_INTERNAL": - # Check if dns-HOSTNAME account exists and delete it if required - try: --- -2.14.1 - - -From 89e3be296c1ca88b01b2efe80ba70398ffc0f3b7 Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Tue, 5 Sep 2017 11:47:27 +0200 -Subject: [PATCH 18/18] samba_upgradedns: When we setup the internal dns - cleanup bind-dns dir - -Make sure to remove everything from the bind-dns directory to avoid -possible security issues with the named group having write access to all -AD partions - -BUG: https://bugzilla.samba.org/show_bug.cgi?id=12957 - -Signed-off-by: Andreas Schneider ---- - source4/scripting/bin/samba_upgradedns | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) - -diff --git a/source4/scripting/bin/samba_upgradedns b/source4/scripting/bin/samba_upgradedns -index 3369bcfed93..261d8a1922d 100755 ---- a/source4/scripting/bin/samba_upgradedns -+++ b/source4/scripting/bin/samba_upgradedns -@@ -553,6 +553,23 @@ if __name__ == '__main__': - "updates", paths.namedtxt) - - elif opts.dns_backend == "SAMBA_INTERNAL": -+ # Make sure to remove everything from the bind-dns directory to avoid -+ # possible security issues with the named group having write access -+ # to all AD partions -+ cleanup_remove_file(os.path.join(paths.binddns_dir, "dns.keytab")) -+ cleanup_remove_file(os.path.join(paths.binddns_dir, "named.conf")) -+ cleanup_remove_file(os.path.join(paths.binddns_dir, "named.conf.update")) -+ cleanup_remove_file(os.path.join(paths.binddns_dir, "named.txt")) -+ -+ cleanup_remove_dir(os.path.dirname(paths.dns)) -+ -+ try: -+ os.chmod(paths.private_dir, 0o700) -+ os.chown(paths.private_dir, -1, 0) -+ except: -+ logger.warn("Failed to restore owner and permissions for %s", -+ (paths.private_dir)) -+ - # Check if dns-HOSTNAME account exists and delete it if required - try: - dn_str = 'samAccountName=dns-%s,CN=Principals' % hostname --- -2.14.1 - -From ed83927e4c3eb1052b5d0ca505b721d7d58e8ee8 Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Tue, 12 Sep 2017 15:56:44 +0200 -Subject: [PATCH] wafsamba: We need to honor DESTDIR in INSTALL_DIR - -Signed-off-by: Andreas Schneider ---- - buildtools/wafsamba/wafsamba.py | 13 +++++++------ - 1 file changed, 7 insertions(+), 6 deletions(-) - -diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py -index f91adca1a0c..3588292c3b4 100644 ---- a/buildtools/wafsamba/wafsamba.py -+++ b/buildtools/wafsamba/wafsamba.py -@@ -885,20 +885,21 @@ def INSTALL_WILDCARD(bld, destdir, pattern, chmod=MODE_644, flat=False, - python_fixup=python_fixup, base_name=trim_path) - Build.BuildContext.INSTALL_WILDCARD = INSTALL_WILDCARD - --def INSTALL_DIR(bld, path, chmod=0o755): -+def INSTALL_DIR(bld, path, chmod=0o755, env=None): - """Install a directory if it doesn't exist, always set permissions.""" - - if not path: - return [] - -+ destpath = bld.get_install_path(path, env) -+ - if bld.is_install > 0: -- path = bld.EXPAND_VARIABLES(path) -- if not os.path.isdir(path): -+ if not os.path.isdir(destpath): - try: -- os.makedirs(path) -- os.chmod(path, chmod) -+ os.makedirs(destpath) -+ os.chmod(destpath, chmod) - except OSError, e: -- if not os.path.isdir(path): -+ if not os.path.isdir(destpath): - raise Utils.WafError("Cannot create the folder '%s' (error: %s)" % (path, e)) - Build.BuildContext.INSTALL_DIR = INSTALL_DIR - --- -2.14.1 - diff --git a/samba-4.8.0-ceph.patch b/samba-4.8.0-ceph.patch new file mode 100644 index 0000000..d479d2b --- /dev/null +++ b/samba-4.8.0-ceph.patch @@ -0,0 +1,28 @@ +From ebae8df5e4b955f235cdeb629e99d32d35766d65 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?G=C3=BCnther=20Deschner?= +Date: Mon, 15 Jan 2018 23:20:39 +0100 +Subject: [PATCH] FIXME: build: fix libceph-common detection + +Guenther + +Signed-off-by: Guenther Deschner +--- + source3/wscript | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/source3/wscript b/source3/wscript +index 0f8fe5452da..4eba0103be8 100644 +--- a/source3/wscript ++++ b/source3/wscript +@@ -1540,6 +1540,8 @@ main() { + conf.env['CPPPATH_CEPHFS'] = Options.options.libcephfs_dir + '/include' + conf.env['LIBPATH_CEPHFS'] = Options.options.libcephfs_dir + '/lib' + conf.env['LIBPATH_CEPH-COMMON'] = Options.options.libcephfs_dir + '/lib/ceph' ++ else: ++ conf.env['LIBPATH_CEPH-COMMON'] = Options.options.LIBDIR + '/ceph' + + if (Options.options.with_cephfs and + conf.CHECK_HEADERS('cephfs/libcephfs.h', False, False, 'cephfs') and +-- +2.14.3 + diff --git a/samba-4.8.0-python.patch b/samba-4.8.0-python.patch new file mode 100644 index 0000000..ac3deb9 --- /dev/null +++ b/samba-4.8.0-python.patch @@ -0,0 +1,92 @@ +From 4954b3692d550d0bbc92e482060a023fd14b4e83 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?G=C3=BCnther=20Deschner?= +Date: Mon, 15 Jan 2018 21:56:22 +0100 +Subject: [PATCH] python: fix the build with python3. + +BUG: https://bugzilla.samba.org/show_bug.cgi?id=13221 + +Guenther + +Signed-off-by: Guenther Deschner +--- + python/samba/emulate/traffic_packets.py | 2 +- + python/samba/forest_update.py | 4 ++-- + python/samba/tests/blackbox/traffic_summary.py | 2 +- + python/samba/tests/samba_tool/visualize.py | 6 +++--- + 4 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/python/samba/emulate/traffic_packets.py b/python/samba/emulate/traffic_packets.py +index 1df21f99a35..185d1d57476 100644 +--- a/python/samba/emulate/traffic_packets.py ++++ b/python/samba/emulate/traffic_packets.py +@@ -84,7 +84,7 @@ name_formats = [ + + + def warning(message): +- print "\033[37;41;1m" "Warning: %s" "\033[00m" % (message) ++ print("\033[37;41;1m" "Warning: %s" "\033[00m" % (message)) + + ############################################################################### + # +diff --git a/python/samba/forest_update.py b/python/samba/forest_update.py +index 9f6ddf6aac2..ba6f859a943 100644 +--- a/python/samba/forest_update.py ++++ b/python/samba/forest_update.py +@@ -300,8 +300,8 @@ objectClass: container + "SCHEMA_DN": + str(self.schema_dn)}) + if self.verbose: +- print "UPDATE (LDIF) ------ OPERATION %d" % op +- print sub_ldif ++ print("UPDATE (LDIF) ------ OPERATION %d" % op) ++ print(sub_ldif) + + self.samdb.modify_ldif(sub_ldif) + if self.add_update_container: +diff --git a/python/samba/tests/blackbox/traffic_summary.py b/python/samba/tests/blackbox/traffic_summary.py +index b2bbc2cb075..99fe6b84e94 100644 +--- a/python/samba/tests/blackbox/traffic_summary.py ++++ b/python/samba/tests/blackbox/traffic_summary.py +@@ -59,7 +59,7 @@ class TrafficSummaryTests(BlackboxTestCase): + + with temp_file(self.tempdir) as output: + command = "%s %s >%s" % (SCRIPT, INPUT, output) +- print command ++ print(command) + self.check_run(command) + expected = open(EXPECTED_FN).readlines() + actual = open(output).readlines() +diff --git a/python/samba/tests/samba_tool/visualize.py b/python/samba/tests/samba_tool/visualize.py +index 292d4961f45..c00c6ea63b0 100644 +--- a/python/samba/tests/samba_tool/visualize.py ++++ b/python/samba/tests/samba_tool/visualize.py +@@ -284,7 +284,7 @@ class SambaToolVisualizeLdif(SambaToolCmdTest): + self.tempdir, + self.lp, tag='disconnected') + dburl = 'tdb://' + dbfile +- print dbfile ++ print(dbfile) + result, output, err = self.runsubcmd("visualize", "ntdsconn", + '-H', dburl, + '--color=no', '-S') +@@ -314,7 +314,7 @@ class SambaToolVisualizeLdif(SambaToolCmdTest): + '-o', '-') + self.assertCmdSuccess(result, dot, err) + self.remove_files(dbfile) +- print dot ++ print(dot) + + self.assertStringsEqual(EXPECTED_DOT_NTDSCONN_DISCONNECTED, dot, + strip=True) +@@ -338,7 +338,7 @@ class SambaToolVisualizeLdif(SambaToolCmdTest): + self.assertStringsEqual(EXPECTED_DOT_NTDSCONN_DISCONNECTED, dot) + + self.remove_files(dbfile, dot_file) +- print dot ++ print(dot) + + EXPECTED_DOT_MULTISITE_NO_KEY = r"""/* generated by samba */ + digraph A_samba_tool_production { +-- +2.14.3 + diff --git a/samba.spec b/samba.spec index fdb310c..c26839c 100644 --- a/samba.spec +++ b/samba.spec @@ -8,13 +8,13 @@ %define main_release 1 -%define samba_version 4.7.4 -%define talloc_version 2.1.10 +%define samba_version 4.8.0 +%define talloc_version 2.1.11 %define tdb_version 1.3.15 -%define tevent_version 0.9.34 -%define ldb_version 1.2.3 +%define tevent_version 0.9.35 +%define ldb_version 1.3.1 # This should be rc1 or nil -%define pre_release %nil +%define pre_release rc1 %if "x%{?pre_release}" != "x" %define samba_release 0.%{main_release}.%{pre_release}%{?dist} @@ -79,6 +79,8 @@ %{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} +%global _systemd_extra "Environment=KRB5CCNAME=FILE:/run/samba/krb5cc_samba" + Name: samba Version: %{samba_version} Release: %{samba_release} @@ -114,8 +116,9 @@ Source14: samba.pamd Source200: README.dc Source201: README.downgrade -Patch0: samba-4.7.0-bind_dlz.patch Patch1: samba-4.7.0-support-krb5-1.16.patch +Patch2: samba-4.8.0-python.patch +Patch3: samba-4.8.0-ceph.patch Requires(pre): /usr/sbin/groupadd Requires(post): systemd @@ -852,6 +855,12 @@ xzcat %{SOURCE0} | gpgv2 --quiet --keyring %{SOURCE2} %{SOURCE1} - --accel-aes=intelaesni \ %endif --with-systemd \ + --systemd-install-services \ + --with-systemddir=/usr/lib/systemd/system \ + --systemd-smb-extra=%{_systemd_extra} \ + --systemd-nmb-extra=%{_systemd_extra} \ + --systemd-winbind-extra=%{_systemd_extra} \ + --systemd-samba-extra=%{_systemd_extra} \ --extra-python=%{__python3} make %{?_smp_mflags} @@ -1021,15 +1030,6 @@ install -m 0644 %{SOURCE200} packaging/README.dc install -m 0644 %{SOURCE200} packaging/README.dc-libs %endif -install -d -m 0755 %{buildroot}%{_unitdir} -services="nmb smb winbind" -%if %with_dc -services="$services samba" -%endif -for i in $services ; do - cat packaging/systemd/$i.service | sed -e 's@\[Service\]@[Service]\nEnvironment=KRB5CCNAME=FILE:/run/samba/krb5cc_samba@g' >tmp$i.service - install -m 0644 tmp$i.service %{buildroot}%{_unitdir}/$i.service -done %if %with_clustering_support install -m 0644 ctdb/config/ctdb.service %{buildroot}%{_unitdir} %endif @@ -1050,42 +1050,58 @@ for i in \ %{_libdir}/samba/libdsdb-garbage-collect-tombstones-samba4.so \ %{_mandir}/man8/samba.8 \ %{_mandir}/man8/samba-tool.8 \ + %{_mandir}/man8/samba_gpoupdate.8 \ %{_libdir}/samba/ldb/ildap.so \ %{_libdir}/samba/ldb/ldbsamba_extensions.so \ %{python_sitearch}/samba/dcerpc/dnsserver.so \ %{python_sitearch}/samba/dnsserver.py* \ - %{python_sitearch}/samba/dsdb.so \ + %{python_sitearch}/samba/domain_update.py* \ %{python_sitearch}/samba/dsdb_dns.so \ - %{python_sitearch}/samba/samdb.py* \ - %{python_sitearch}/samba/schema.py* \ - %{python_sitearch}/samba/kcc/__init__.py* \ + %{python_sitearch}/samba/dsdb.so \ + %{python_sitearch}/samba/forest_update.py* \ + %{python_sitearch}/samba/gpclass.py* \ + %{python_sitearch}/samba/gpo.so \ %{python_sitearch}/samba/kcc/debug.py* \ %{python_sitearch}/samba/kcc/graph.py* \ %{python_sitearch}/samba/kcc/graph_utils.py* \ + %{python_sitearch}/samba/kcc/__init__.py* \ %{python_sitearch}/samba/kcc/kcc_utils.py* \ %{python_sitearch}/samba/kcc/ldif_import_export.py* \ - %{python_sitearch}/samba/provision/__init__.py* \ + %{python_sitearch}/samba/ms_forest_updates_markdown.py* \ + %{python_sitearch}/samba/ms_schema_markdown.py* \ %{python_sitearch}/samba/provision/backend.py* \ %{python_sitearch}/samba/provision/common.py* \ - %{python_sitearch}/samba/provision/kerberos.py* \ + %{python_sitearch}/samba/provision/__init__.py* \ %{python_sitearch}/samba/provision/kerberos_implementation.py* \ + %{python_sitearch}/samba/provision/kerberos.py* \ %{python_sitearch}/samba/provision/sambadns.py* \ + %{python_sitearch}/samba/samdb.py* \ + %{python_sitearch}/samba/schema.py* \ %{python_sitearch}/samba/web_server/__init__.py* \ - %{python3_sitearch}/samba/__pycache__/schema.*.pyc \ %{python3_sitearch}/samba/dcerpc/dnsserver.*.so \ + %{python3_sitearch}/samba/dnsserver.py \ + %{python3_sitearch}/samba/domain_update.py \ + %{python3_sitearch}/samba/forest_update.py \ %{python3_sitearch}/samba/kcc/debug.py \ %{python3_sitearch}/samba/kcc/graph.py \ - %{python3_sitearch}/samba/dnsserver.py \ %{python3_sitearch}/samba/kcc/__pycache__/debug.*.pyc \ %{python3_sitearch}/samba/kcc/__pycache__/graph.*.pyc \ + %{python3_sitearch}/samba/ms_forest_updates_markdown.py \ + %{python3_sitearch}/samba/ms_schema_markdown.py \ %{python3_sitearch}/samba/provision/common.py \ - %{python3_sitearch}/samba/provision/kerberos.py \ %{python3_sitearch}/samba/provision/kerberos_implementation.py \ + %{python3_sitearch}/samba/provision/kerberos.py \ %{python3_sitearch}/samba/provision/__pycache__/common.*.pyc \ - %{python3_sitearch}/samba/provision/__pycache__/kerberos.*.pyc \ %{python3_sitearch}/samba/provision/__pycache__/kerberos_implementation.*.pyc \ + %{python3_sitearch}/samba/provision/__pycache__/kerberos.*.pyc \ + %{python3_sitearch}/samba/__pycache__/domain_update.*.pyc \ + %{python3_sitearch}/samba/__pycache__/forest_update.*.pyc \ + %{python3_sitearch}/samba/__pycache__/ms_forest_updates_markdown.*.pyc \ + %{python3_sitearch}/samba/__pycache__/ms_schema_markdown.*.pyc \ + %{python3_sitearch}/samba/__pycache__/schema.*.pyc \ %{python3_sitearch}/samba/samdb.py \ %{python3_sitearch}/samba/schema.py \ + %{_sbindir}/samba_gpoupdate \ ; do rm -f %{buildroot}$i done @@ -1298,7 +1314,6 @@ rm -rf %{buildroot} %{_libdir}/samba/vfs/acl_tdb.so %{_libdir}/samba/vfs/acl_xattr.so %{_libdir}/samba/vfs/aio_fork.so -%{_libdir}/samba/vfs/aio_linux.so %{_libdir}/samba/vfs/aio_pthread.so %{_libdir}/samba/vfs/audit.so %{_libdir}/samba/vfs/btrfs.so @@ -1350,7 +1365,6 @@ rm -rf %{buildroot} %{_mandir}/man8/vfs_acl_tdb.8* %{_mandir}/man8/vfs_acl_xattr.8* %{_mandir}/man8/vfs_aio_fork.8* -%{_mandir}/man8/vfs_aio_linux.8* %{_mandir}/man8/vfs_aio_pthread.8* %{_mandir}/man8/vfs_audit.8* %{_mandir}/man8/vfs_btrfs.8* @@ -1370,6 +1384,7 @@ rm -rf %{buildroot} %{_mandir}/man8/vfs_linux_xfs_sgid.8* %{_mandir}/man8/vfs_media_harmony.8* %{_mandir}/man8/vfs_netatalk.8* +%{_mandir}/man8/vfs_nfs4acl_xattr.8* %{_mandir}/man8/vfs_offline.8* %{_mandir}/man8/vfs_prealloc.8* %{_mandir}/man8/vfs_preopen.8* @@ -1444,6 +1459,8 @@ rm -rf %{buildroot} %{_mandir}/man5/smbgetrc.5* %{_mandir}/man1/smbtar.1* %{_mandir}/man1/smbtree.1* +%{_mandir}/man7/traffic_learner.7.* +%{_mandir}/man7/traffic_replay.7.* %{_mandir}/man8/cifsdd.8.* %{_mandir}/man8/samba-regedit.8* %{_mandir}/man8/smbspool.8* @@ -1490,7 +1507,7 @@ rm -rf %{buildroot} %{_libdir}/samba/libflag-mapping-samba4.so %{_libdir}/samba/libgenrand-samba4.so %{_libdir}/samba/libgensec-samba4.so -%{_libdir}/samba/libgpo-samba4.so +%{_libdir}/samba/libgpext-samba4.so %{_libdir}/samba/libgse-samba4.so %{_libdir}/samba/libhttp-samba4.so %{_libdir}/samba/libinterfaces-samba4.so @@ -1615,6 +1632,7 @@ rm -rf %{buildroot} %{_sbindir}/samba %{_sbindir}/samba_kcc %{_sbindir}/samba_dnsupdate +%{_sbindir}/samba_gpoupdate %{_sbindir}/samba_spnupdate %{_sbindir}/samba_upgradedns @@ -1631,6 +1649,7 @@ rm -rf %{buildroot} %{_libdir}/samba/ldb/dirsync.so %{_libdir}/samba/ldb/dns_notify.so %{_libdir}/samba/ldb/dsdb_notification.so +%{_libdir}/samba/ldb/encrypted_secrets.so %{_libdir}/samba/ldb/extended_dn_in.so %{_libdir}/samba/ldb/extended_dn_out.so %{_libdir}/samba/ldb/extended_dn_store.so @@ -1665,6 +1684,7 @@ rm -rf %{buildroot} %{_libdir}/samba/ldb/subtree_delete.so %{_libdir}/samba/ldb/subtree_rename.so %{_libdir}/samba/ldb/tombstone_reanimate.so +%{_libdir}/samba/ldb/unique_object_sids.so %{_libdir}/samba/ldb/update_keytab.so %{_libdir}/samba/ldb/vlv.so %{_libdir}/samba/ldb/wins_ldb.so @@ -1672,6 +1692,7 @@ rm -rf %{buildroot} %dir /var/lib/samba/sysvol %{_datadir}/samba/setup %{_mandir}/man8/samba.8* +%{_mandir}/man8/samba_gpoupdate.8* %{_mandir}/man8/samba-tool.8* %else # with_dc %doc packaging/README.dc @@ -1685,6 +1706,7 @@ rm -rf %{buildroot} %{_libdir}/samba/libprocess-model-samba4.so %{_libdir}/samba/libservice-samba4.so %dir %{_libdir}/samba/process_model +%{_libdir}/samba/process_model/prefork.so %{_libdir}/samba/process_model/standard.so %dir %{_libdir}/samba/service %{_libdir}/samba/service/cldap.so @@ -1970,6 +1992,7 @@ rm -rf %{buildroot} %{python_sitearch}/samba/_glue.so %{python_sitearch}/samba/_ldb.so %{python_sitearch}/samba/auth.so +%{python_sitearch}/samba/colour.py* %{python_sitearch}/samba/common.py* %{python_sitearch}/samba/compat.py* %{python_sitearch}/samba/credentials.so @@ -1979,6 +2002,7 @@ rm -rf %{buildroot} %{python_sitearch}/samba/drs_utils.py* %{python_sitearch}/samba/gensec.so %{python_sitearch}/samba/getopt.py* +%{python_sitearch}/samba/graph.py* %{python_sitearch}/samba/hostconfig.py* %{python_sitearch}/samba/idmap.py* %{python_sitearch}/samba/join.py* @@ -2043,6 +2067,11 @@ rm -rf %{buildroot} %{python_sitearch}/samba/dcerpc/wkssvc.so %{python_sitearch}/samba/dcerpc/xattr.so +%dir %{python_sitearch}/samba/emulate +%{python_sitearch}/samba/emulate/__init__.py* +%{python_sitearch}/samba/emulate/traffic.py* +%{python_sitearch}/samba/emulate/traffic_packets.py* + %dir %{python_sitearch}/samba/netcmd %{python_sitearch}/samba/netcmd/__init__.py* %{python_sitearch}/samba/netcmd/common.py* @@ -2065,6 +2094,7 @@ rm -rf %{buildroot} %{python_sitearch}/samba/netcmd/spn.py* %{python_sitearch}/samba/netcmd/testparm.py* %{python_sitearch}/samba/netcmd/user.py* +%{python_sitearch}/samba/netcmd/visualize.py* %dir %{python_sitearch}/samba/samba3 %{python_sitearch}/samba/samba3/__init__.py* @@ -2084,10 +2114,16 @@ rm -rf %{buildroot} %if %{with_dc} %files -n python2-%{name}-dc %defattr(-,root,root,-) +%{python_sitearch}/samba/domain_update.py* %{python_sitearch}/samba/dckeytab.so %{python_sitearch}/samba/dsdb.so %{python_sitearch}/samba/dsdb_dns.so %{python_sitearch}/samba/dnsserver.py* +%{python_sitearch}/samba/forest_update.py* +%{python_sitearch}/samba/gpclass.py* +%{python_sitearch}/samba/gpo.so +%{python_sitearch}/samba/ms_forest_updates_markdown.py* +%{python_sitearch}/samba/ms_schema_markdown.py* %{python_sitearch}/samba/samdb.py* %{python_sitearch}/samba/schema.py* @@ -2127,8 +2163,13 @@ rm -rf %{buildroot} %{python_sitearch}/samba/tests/auth_log_samlogon.py* %dir %{python_sitearch}/samba/tests/blackbox %{python_sitearch}/samba/tests/blackbox/__init__.py* +%{python_sitearch}/samba/tests/blackbox/check_output.py* %{python_sitearch}/samba/tests/blackbox/ndrdump.py* %{python_sitearch}/samba/tests/blackbox/samba_dnsupdate.py* +%{python_sitearch}/samba/tests/blackbox/smbcontrol.py* +%{python_sitearch}/samba/tests/blackbox/traffic_learner.py* +%{python_sitearch}/samba/tests/blackbox/traffic_replay.py* +%{python_sitearch}/samba/tests/blackbox/traffic_summary.py* %{python_sitearch}/samba/tests/common.py* %{python_sitearch}/samba/tests/core.py* %{python_sitearch}/samba/tests/credentials.py* @@ -2158,10 +2199,17 @@ rm -rf %{buildroot} %{python_sitearch}/samba/tests/dns_wildcard.py* %{python_sitearch}/samba/tests/docs.py* %{python_sitearch}/samba/tests/dsdb.py* +%{python_sitearch}/samba/tests/dsdb_lock.py* %{python_sitearch}/samba/tests/dsdb_schema_attributes.py* +%dir %{python_sitearch}/samba/tests/emulate +%{python_sitearch}/samba/tests/emulate/__init__.py* +%{python_sitearch}/samba/tests/emulate/traffic.py* +%{python_sitearch}/samba/tests/emulate/traffic_packet.py* +%{python_sitearch}/samba/tests/encrypted_secrets.py* %{python_sitearch}/samba/tests/gensec.py* %{python_sitearch}/samba/tests/get_opt.py* %{python_sitearch}/samba/tests/glue.py* +%{python_sitearch}/samba/tests/graph.py* %{python_sitearch}/samba/tests/hostconfig.py* %{python_sitearch}/samba/tests/join.py* %dir %{python_sitearch}/samba/tests/kcc @@ -2170,6 +2218,7 @@ rm -rf %{buildroot} %{python_sitearch}/samba/tests/kcc/graph_utils.py* %{python_sitearch}/samba/tests/kcc/kcc_utils.py* %{python_sitearch}/samba/tests/kcc/ldif_import_export.py* +%{python_sitearch}/samba/tests/krb5_credentials.py* %{python_sitearch}/samba/tests/libsmb_samba_internal.py* %{python_sitearch}/samba/tests/lsa_string.py* %{python_sitearch}/samba/tests/messaging.py* @@ -2178,14 +2227,16 @@ rm -rf %{buildroot} %{python_sitearch}/samba/tests/netcmd.py* %{python_sitearch}/samba/tests/netlogonsvc.py* %{python_sitearch}/samba/tests/ntacls.py* -%{python_sitearch}/samba/tests/ntlmauth.py* +%{python_sitearch}/samba/tests/ntlmdisabled.py* %{python_sitearch}/samba/tests/pam_winbind.py* +%{python_sitearch}/samba/tests/pam_winbind_warn_pwd_expire.py* %{python_sitearch}/samba/tests/param.py* %{python_sitearch}/samba/tests/password_hash.py* %{python_sitearch}/samba/tests/password_hash_fl2003.py* %{python_sitearch}/samba/tests/password_hash_fl2008.py* %{python_sitearch}/samba/tests/password_hash_gpgme.py* %{python_sitearch}/samba/tests/password_hash_ldap.py* +%{python_sitearch}/samba/tests/password_quality.py* %{python_sitearch}/samba/tests/policy.py* %{python_sitearch}/samba/tests/posixacl.py* %{python_sitearch}/samba/tests/provision.py* @@ -2200,9 +2251,11 @@ rm -rf %{buildroot} %{python_sitearch}/samba/tests/samba_tool/fsmo.py* %{python_sitearch}/samba/tests/samba_tool/gpo.py* %{python_sitearch}/samba/tests/samba_tool/group.py* +%{python_sitearch}/samba/tests/samba_tool/help.py* %{python_sitearch}/samba/tests/samba_tool/join.py* %{python_sitearch}/samba/tests/samba_tool/ntacl.py* %{python_sitearch}/samba/tests/samba_tool/processes.py* +%{python_sitearch}/samba/tests/samba_tool/provision_password_check.py* %{python_sitearch}/samba/tests/samba_tool/rodc.py* %{python_sitearch}/samba/tests/samba_tool/sites.py* %{python_sitearch}/samba/tests/samba_tool/timecmd.py* @@ -2210,11 +2263,14 @@ rm -rf %{buildroot} %{python_sitearch}/samba/tests/samba_tool/user_check_password_script.py* %{python_sitearch}/samba/tests/samba_tool/user_virtualCryptSHA.py* %{python_sitearch}/samba/tests/samba_tool/user_wdigest.py* +%{python_sitearch}/samba/tests/samba_tool/visualize.py* +%{python_sitearch}/samba/tests/samba_tool/visualize_drs.py* %{python_sitearch}/samba/tests/samdb.py* %{python_sitearch}/samba/tests/security.py* %{python_sitearch}/samba/tests/source.py* %{python_sitearch}/samba/tests/strings.py* %{python_sitearch}/samba/tests/subunitrun.py* +%{python_sitearch}/samba/tests/tdb_util.py* %{python_sitearch}/samba/tests/unicodenames.py* %{python_sitearch}/samba/tests/upgrade.py* %{python_sitearch}/samba/tests/upgradeprovision.py* @@ -2228,10 +2284,13 @@ rm -rf %{buildroot} %{python3_sitearch}/samba/__init__.py %dir %{python3_sitearch}/samba/__pycache__ %{python3_sitearch}/samba/__pycache__/__init__.*.pyc +%{python3_sitearch}/samba/__pycache__/colour.*.pyc %{python3_sitearch}/samba/__pycache__/common.*.pyc %{python3_sitearch}/samba/__pycache__/compat.*.pyc %{python3_sitearch}/samba/__pycache__/descriptor.*.pyc %{python3_sitearch}/samba/__pycache__/getopt.*.pyc +%{python3_sitearch}/samba/__pycache__/gpclass.*.pyc +%{python3_sitearch}/samba/__pycache__/graph.*.pyc %{python3_sitearch}/samba/__pycache__/hostconfig.*.pyc %{python3_sitearch}/samba/__pycache__/idmap.*.pyc %{python3_sitearch}/samba/__pycache__/ndr.*.pyc @@ -2241,6 +2300,7 @@ rm -rf %{buildroot} %{python3_sitearch}/samba/_glue.*.so %{python3_sitearch}/samba/_ldb.*.so %{python3_sitearch}/samba/auth.*.so +%{python3_sitearch}/samba/colour.py %{python3_sitearch}/samba/common.py %{python3_sitearch}/samba/compat.py %{python3_sitearch}/samba/credentials.*.so @@ -2285,10 +2345,23 @@ rm -rf %{buildroot} %{python3_sitearch}/samba/descriptor.py %{python3_sitearch}/samba/gensec.*.so %{python3_sitearch}/samba/getopt.py +%{python3_sitearch}/samba/gpclass.py +%{python3_sitearch}/samba/graph.py %{python3_sitearch}/samba/hostconfig.py %{python3_sitearch}/samba/idmap.py +%{python3_sitearch}/samba/messaging.*.so %{python3_sitearch}/samba/ndr.py %{python3_sitearch}/samba/net.*.so +%{python3_sitearch}/samba/ntstatus.*.so +%{python3_sitearch}/samba/posix_eadb.*.so +%dir %{python3_sitearch}/samba/emulate +%dir %{python3_sitearch}/samba/emulate/__pycache__ +%{python3_sitearch}/samba/emulate/__pycache__/__init__.*.pyc +%{python3_sitearch}/samba/emulate/__pycache__/traffic.*.pyc +%{python3_sitearch}/samba/emulate/__pycache__/traffic_packets.*.pyc +%{python3_sitearch}/samba/emulate/__init__.py +%{python3_sitearch}/samba/emulate/traffic.py +%{python3_sitearch}/samba/emulate/traffic_packets.py %dir %{python3_sitearch}/samba/netcmd %dir %{python3_sitearch}/samba/netcmd/__pycache__ %{python3_sitearch}/samba/netcmd/__pycache__/dbcheck.*.pyc @@ -2297,13 +2370,17 @@ rm -rf %{buildroot} %{python3_sitearch}/samba/netcmd/__pycache__/nettime.*.pyc %{python3_sitearch}/samba/netcmd/__pycache__/processes.*.pyc %{python3_sitearch}/samba/netcmd/__pycache__/spn.*.pyc +%{python3_sitearch}/samba/netcmd/__pycache__/visualize.*.pyc %{python3_sitearch}/samba/netcmd/dbcheck.py %{python3_sitearch}/samba/netcmd/dsacl.py %{python3_sitearch}/samba/netcmd/main.py %{python3_sitearch}/samba/netcmd/nettime.py %{python3_sitearch}/samba/netcmd/processes.py %{python3_sitearch}/samba/netcmd/spn.py +%{python3_sitearch}/samba/netcmd/visualize.py %{python3_sitearch}/samba/param.*.so +%{python3_sitearch}/samba/registry.*.so +%{python3_sitearch}/samba/security.*.so %dir %{python3_sitearch}/samba/samba3 %{python3_sitearch}/samba/samba3/__init__.py %dir %{python3_sitearch}/samba/samba3/__pycache__ @@ -2323,11 +2400,19 @@ rm -rf %{buildroot} %{python3_sitearch}/samba/samdb.py %{python3_sitearch}/samba/schema.py +%{python3_sitearch}/samba/__pycache__/domain_update.*.pyc %{python3_sitearch}/samba/__pycache__/dnsserver.*.pyc +%{python3_sitearch}/samba/__pycache__/forest_update.*.pyc +%{python3_sitearch}/samba/__pycache__/ms_forest_updates_markdown.*.pyc +%{python3_sitearch}/samba/__pycache__/ms_schema_markdown.*.pyc %{python3_sitearch}/samba/__pycache__/samdb.*.pyc %{python3_sitearch}/samba/__pycache__/schema.*.pyc %{python3_sitearch}/samba/dcerpc/dnsserver.*.so +%{python3_sitearch}/samba/domain_update.py +%{python3_sitearch}/samba/forest_update.py +%{python3_sitearch}/samba/ms_forest_updates_markdown.py +%{python3_sitearch}/samba/ms_schema_markdown.py %dir %{python3_sitearch}/samba/kcc %{python3_sitearch}/samba/kcc/debug.py @@ -2366,12 +2451,16 @@ rm -rf %{buildroot} %{python3_sitearch}/samba/tests/__pycache__/dns_tkey.*.pyc %{python3_sitearch}/samba/tests/__pycache__/dns_wildcard.*.pyc %{python3_sitearch}/samba/tests/__pycache__/dsdb.*.pyc +%{python3_sitearch}/samba/tests/__pycache__/dsdb_lock.*.pyc %{python3_sitearch}/samba/tests/__pycache__/dsdb_schema_attributes.*.pyc +%{python3_sitearch}/samba/tests/__pycache__/encrypted_secrets.*.pyc %{python3_sitearch}/samba/tests/__pycache__/gensec.*.pyc %{python3_sitearch}/samba/tests/__pycache__/get_opt.*.pyc %{python3_sitearch}/samba/tests/__pycache__/glue.*.pyc +%{python3_sitearch}/samba/tests/__pycache__/graph.*.pyc %{python3_sitearch}/samba/tests/__pycache__/hostconfig.*.pyc %{python3_sitearch}/samba/tests/__pycache__/join.*.pyc +%{python3_sitearch}/samba/tests/__pycache__/krb5_credentials.*.pyc %{python3_sitearch}/samba/tests/__pycache__/libsmb_samba_internal.*.pyc %{python3_sitearch}/samba/tests/__pycache__/lsa_string.*.pyc %{python3_sitearch}/samba/tests/__pycache__/messaging.*.pyc @@ -2379,14 +2468,16 @@ rm -rf %{buildroot} %{python3_sitearch}/samba/tests/__pycache__/net_join_no_spnego.*.pyc %{python3_sitearch}/samba/tests/__pycache__/netlogonsvc.*.pyc %{python3_sitearch}/samba/tests/__pycache__/ntacls.*.pyc -%{python3_sitearch}/samba/tests/__pycache__/ntlmauth.*.pyc +%{python3_sitearch}/samba/tests/__pycache__/ntlmdisabled.*.pyc %{python3_sitearch}/samba/tests/__pycache__/pam_winbind.*.pyc +%{python3_sitearch}/samba/tests/__pycache__/pam_winbind_warn_pwd_expire.*.pyc %{python3_sitearch}/samba/tests/__pycache__/param.*.pyc %{python3_sitearch}/samba/tests/__pycache__/password_hash.*.pyc %{python3_sitearch}/samba/tests/__pycache__/password_hash_fl2003.*.pyc %{python3_sitearch}/samba/tests/__pycache__/password_hash_fl2008.*.pyc %{python3_sitearch}/samba/tests/__pycache__/password_hash_gpgme.*.pyc %{python3_sitearch}/samba/tests/__pycache__/password_hash_ldap.*.pyc +%{python3_sitearch}/samba/tests/__pycache__/password_quality.*.pyc %{python3_sitearch}/samba/tests/__pycache__/policy.*.pyc %{python3_sitearch}/samba/tests/__pycache__/provision.*.pyc %{python3_sitearch}/samba/tests/__pycache__/py_credentials.*.pyc @@ -2395,6 +2486,7 @@ rm -rf %{buildroot} %{python3_sitearch}/samba/tests/__pycache__/security.*.pyc %{python3_sitearch}/samba/tests/__pycache__/strings.*.pyc %{python3_sitearch}/samba/tests/__pycache__/subunitrun.*.pyc +%{python3_sitearch}/samba/tests/__pycache__/tdb_util.*.pyc %{python3_sitearch}/samba/tests/__pycache__/unicodenames.*.pyc %{python3_sitearch}/samba/tests/__pycache__/upgrade.*.pyc %{python3_sitearch}/samba/tests/__pycache__/upgradeprovision.*.pyc @@ -2409,8 +2501,18 @@ rm -rf %{buildroot} %{python3_sitearch}/samba/tests/blackbox/__init__.py %dir %{python3_sitearch}/samba/tests/blackbox/__pycache__ %{python3_sitearch}/samba/tests/blackbox/__pycache__/__init__.*.pyc +%{python3_sitearch}/samba/tests/blackbox/__pycache__/check_output.*.pyc %{python3_sitearch}/samba/tests/blackbox/__pycache__/samba_dnsupdate.*.pyc +%{python3_sitearch}/samba/tests/blackbox/__pycache__/smbcontrol.*.pyc +%{python3_sitearch}/samba/tests/blackbox/__pycache__/traffic_learner.*.pyc +%{python3_sitearch}/samba/tests/blackbox/__pycache__/traffic_replay.*.pyc +%{python3_sitearch}/samba/tests/blackbox/__pycache__/traffic_summary.*.pyc +%{python3_sitearch}/samba/tests/blackbox/check_output.py %{python3_sitearch}/samba/tests/blackbox/samba_dnsupdate.py +%{python3_sitearch}/samba/tests/blackbox/smbcontrol.py +%{python3_sitearch}/samba/tests/blackbox/traffic_learner.py +%{python3_sitearch}/samba/tests/blackbox/traffic_replay.py +%{python3_sitearch}/samba/tests/blackbox/traffic_summary.py %{python3_sitearch}/samba/tests/common.py %{python3_sitearch}/samba/tests/core.py %{python3_sitearch}/samba/tests/credentials.py @@ -2440,10 +2542,21 @@ rm -rf %{buildroot} %{python3_sitearch}/samba/tests/dns_tkey.py %{python3_sitearch}/samba/tests/dns_wildcard.py %{python3_sitearch}/samba/tests/dsdb.py +%{python3_sitearch}/samba/tests/dsdb_lock.py %{python3_sitearch}/samba/tests/dsdb_schema_attributes.py +%dir %{python3_sitearch}/samba/tests/emulate +%{python3_sitearch}/samba/tests/emulate/__init__.py +%dir %{python3_sitearch}/samba/tests/emulate/__pycache__ +%{python3_sitearch}/samba/tests/emulate/__pycache__/__init__.*.pyc +%{python3_sitearch}/samba/tests/emulate/__pycache__/traffic.*.pyc +%{python3_sitearch}/samba/tests/emulate/__pycache__/traffic_packet.*.pyc +%{python3_sitearch}/samba/tests/emulate/traffic.py +%{python3_sitearch}/samba/tests/emulate/traffic_packet.py +%{python3_sitearch}/samba/tests/encrypted_secrets.py %{python3_sitearch}/samba/tests/gensec.py %{python3_sitearch}/samba/tests/get_opt.py %{python3_sitearch}/samba/tests/glue.py +%{python3_sitearch}/samba/tests/graph.py %{python3_sitearch}/samba/tests/hostconfig.py %{python3_sitearch}/samba/tests/join.py %dir %{python3_sitearch}/samba/tests/kcc @@ -2458,6 +2571,7 @@ rm -rf %{buildroot} %{python3_sitearch}/samba/tests/kcc/graph_utils.py %{python3_sitearch}/samba/tests/kcc/kcc_utils.py %{python3_sitearch}/samba/tests/kcc/ldif_import_export.py +%{python3_sitearch}/samba/tests/krb5_credentials.py %{python3_sitearch}/samba/tests/libsmb_samba_internal.py %{python3_sitearch}/samba/tests/lsa_string.py %{python3_sitearch}/samba/tests/messaging.py @@ -2465,14 +2579,16 @@ rm -rf %{buildroot} %{python3_sitearch}/samba/tests/net_join_no_spnego.py %{python3_sitearch}/samba/tests/netlogonsvc.py %{python3_sitearch}/samba/tests/ntacls.py -%{python3_sitearch}/samba/tests/ntlmauth.py +%{python3_sitearch}/samba/tests/ntlmdisabled.py %{python3_sitearch}/samba/tests/pam_winbind.py +%{python3_sitearch}/samba/tests/pam_winbind_warn_pwd_expire.py %{python3_sitearch}/samba/tests/param.py %{python3_sitearch}/samba/tests/password_hash.py %{python3_sitearch}/samba/tests/password_hash_fl2003.py %{python3_sitearch}/samba/tests/password_hash_fl2008.py %{python3_sitearch}/samba/tests/password_hash_gpgme.py %{python3_sitearch}/samba/tests/password_hash_ldap.py +%{python3_sitearch}/samba/tests/password_quality.py %{python3_sitearch}/samba/tests/policy.py %{python3_sitearch}/samba/tests/provision.py %{python3_sitearch}/samba/tests/py_credentials.py @@ -2484,9 +2600,11 @@ rm -rf %{buildroot} %{python3_sitearch}/samba/tests/samba_tool/__pycache__/base.*.pyc %{python3_sitearch}/samba/tests/samba_tool/__pycache__/gpo.*.pyc %{python3_sitearch}/samba/tests/samba_tool/__pycache__/group.*.pyc +%{python3_sitearch}/samba/tests/samba_tool/__pycache__/help.*.pyc %{python3_sitearch}/samba/tests/samba_tool/__pycache__/join.*.pyc %{python3_sitearch}/samba/tests/samba_tool/__pycache__/ntacl.*.pyc %{python3_sitearch}/samba/tests/samba_tool/__pycache__/processes.*.pyc +%{python3_sitearch}/samba/tests/samba_tool/__pycache__/provision_password_check.*.pyc %{python3_sitearch}/samba/tests/samba_tool/__pycache__/rodc.*.pyc %{python3_sitearch}/samba/tests/samba_tool/__pycache__/sites.*.pyc %{python3_sitearch}/samba/tests/samba_tool/__pycache__/timecmd.*.pyc @@ -2494,12 +2612,16 @@ rm -rf %{buildroot} %{python3_sitearch}/samba/tests/samba_tool/__pycache__/user_check_password_script.*.pyc %{python3_sitearch}/samba/tests/samba_tool/__pycache__/user_virtualCryptSHA.*.pyc %{python3_sitearch}/samba/tests/samba_tool/__pycache__/user_wdigest.*.pyc +%{python3_sitearch}/samba/tests/samba_tool/__pycache__/visualize.*.pyc +%{python3_sitearch}/samba/tests/samba_tool/__pycache__/visualize_drs.*.pyc %{python3_sitearch}/samba/tests/samba_tool/base.py %{python3_sitearch}/samba/tests/samba_tool/gpo.py %{python3_sitearch}/samba/tests/samba_tool/group.py +%{python3_sitearch}/samba/tests/samba_tool/help.py %{python3_sitearch}/samba/tests/samba_tool/join.py %{python3_sitearch}/samba/tests/samba_tool/ntacl.py %{python3_sitearch}/samba/tests/samba_tool/processes.py +%{python3_sitearch}/samba/tests/samba_tool/provision_password_check.py %{python3_sitearch}/samba/tests/samba_tool/rodc.py %{python3_sitearch}/samba/tests/samba_tool/sites.py %{python3_sitearch}/samba/tests/samba_tool/timecmd.py @@ -2507,17 +2629,23 @@ rm -rf %{buildroot} %{python3_sitearch}/samba/tests/samba_tool/user_check_password_script.py %{python3_sitearch}/samba/tests/samba_tool/user_virtualCryptSHA.py %{python3_sitearch}/samba/tests/samba_tool/user_wdigest.py +%{python3_sitearch}/samba/tests/samba_tool/visualize.py +%{python3_sitearch}/samba/tests/samba_tool/visualize_drs.py %{python3_sitearch}/samba/tests/samdb.py %{python3_sitearch}/samba/tests/security.py %{python3_sitearch}/samba/tests/strings.py %{python3_sitearch}/samba/tests/subunitrun.py +%{python3_sitearch}/samba/tests/tdb_util.py %{python3_sitearch}/samba/tests/unicodenames.py %{python3_sitearch}/samba/tests/upgrade.py %{python3_sitearch}/samba/tests/upgradeprovision.py %{python3_sitearch}/samba/tests/upgradeprovisionneeddc.py %{python3_sitearch}/samba/tests/xattr.py %dir %{python3_sitearch}/samba/web_server +%{python3_sitearch}/samba/werror.*.so %{python3_sitearch}/samba/xattr.py +%{python3_sitearch}/samba/xattr_native.*.so +%{python3_sitearch}/samba/xattr_tdb.*.so ### TEST %files test @@ -2713,7 +2841,11 @@ rm -rf %{buildroot} %{_libexecdir}/ctdb/tests/pkt_read_test %{_libexecdir}/ctdb/tests/pkt_write_test %{_libexecdir}/ctdb/tests/porting_tests -%{_libexecdir}/ctdb/tests/protocol_client_test +%{_libexecdir}/ctdb/tests/protocol_basic_test +%{_libexecdir}/ctdb/tests/protocol_ctdb_compat_test +%{_libexecdir}/ctdb/tests/protocol_ctdb_test +%{_libexecdir}/ctdb/tests/protocol_event_test +%{_libexecdir}/ctdb/tests/protocol_types_compat_test %{_libexecdir}/ctdb/tests/protocol_types_test %{_libexecdir}/ctdb/tests/protocol_util_test %{_libexecdir}/ctdb/tests/rb_test @@ -2725,6 +2857,8 @@ rm -rf %{buildroot} %{_libexecdir}/ctdb/tests/srvid_test %{_libexecdir}/ctdb/tests/test_mutex_raw %{_libexecdir}/ctdb/tests/transaction_loop +%{_libexecdir}/ctdb/tests/tunnel_cmd +%{_libexecdir}/ctdb/tests/tunnel_test %{_libexecdir}/ctdb/tests/update_record %{_libexecdir}/ctdb/tests/update_record_persistent @@ -2741,6 +2875,8 @@ rm -rf %{buildroot} %{_datadir}/ctdb/tests/complex/33_gratuitous_arp.sh %{_datadir}/ctdb/tests/complex/34_nfs_tickle_restart.sh %{_datadir}/ctdb/tests/complex/35_cifs_external_tickle.sh +%{_datadir}/ctdb/tests/complex/36_smb_reset_server.sh +%{_datadir}/ctdb/tests/complex/37_nfs_reset_server.sh %{_datadir}/ctdb/tests/complex/41_failover_ping_discrete.sh %{_datadir}/ctdb/tests/complex/42_failover_ssh_hostname.sh %{_datadir}/ctdb/tests/complex/43_failover_nfs_basic.sh @@ -2764,7 +2900,11 @@ rm -rf %{buildroot} %{_datadir}/ctdb/tests/cunit/porting_tests_001.sh %{_datadir}/ctdb/tests/cunit/protocol_test_001.sh %{_datadir}/ctdb/tests/cunit/protocol_test_002.sh -%{_datadir}/ctdb/tests/cunit/protocol_test_003.sh +%{_datadir}/ctdb/tests/cunit/protocol_test_012.sh +%{_datadir}/ctdb/tests/cunit/protocol_test_101.sh +%{_datadir}/ctdb/tests/cunit/protocol_test_102.sh +%{_datadir}/ctdb/tests/cunit/protocol_test_111.sh +%{_datadir}/ctdb/tests/cunit/protocol_test_201.sh %{_datadir}/ctdb/tests/cunit/rb_test_001.sh %{_datadir}/ctdb/tests/cunit/reqid_test_001.sh %{_datadir}/ctdb/tests/cunit/run_event_001.sh @@ -2842,6 +2982,10 @@ rm -rf %{buildroot} %{_datadir}/ctdb/tests/eventscripts/06.nfs.releaseip.002.sh %{_datadir}/ctdb/tests/eventscripts/06.nfs.takeip.001.sh %{_datadir}/ctdb/tests/eventscripts/06.nfs.takeip.002.sh +%{_datadir}/ctdb/tests/eventscripts/10.interface.010.sh +%{_datadir}/ctdb/tests/eventscripts/10.interface.011.sh +%{_datadir}/ctdb/tests/eventscripts/10.interface.012.sh +%{_datadir}/ctdb/tests/eventscripts/10.interface.013.sh %{_datadir}/ctdb/tests/eventscripts/10.interface.init.001.sh %{_datadir}/ctdb/tests/eventscripts/10.interface.init.002.sh %{_datadir}/ctdb/tests/eventscripts/10.interface.init.021.sh @@ -2868,10 +3012,6 @@ rm -rf %{buildroot} %{_datadir}/ctdb/tests/eventscripts/10.interface.multi.001.sh %{_datadir}/ctdb/tests/eventscripts/10.interface.releaseip.001.sh %{_datadir}/ctdb/tests/eventscripts/10.interface.releaseip.002.sh -%{_datadir}/ctdb/tests/eventscripts/10.interface.releaseip.010.sh -%{_datadir}/ctdb/tests/eventscripts/10.interface.releaseip.011.sh -%{_datadir}/ctdb/tests/eventscripts/10.interface.releaseip.012.sh -%{_datadir}/ctdb/tests/eventscripts/10.interface.releaseip.013.sh %{_datadir}/ctdb/tests/eventscripts/10.interface.startup.001.sh %{_datadir}/ctdb/tests/eventscripts/10.interface.startup.002.sh %{_datadir}/ctdb/tests/eventscripts/10.interface.takeip.001.sh @@ -2925,13 +3065,28 @@ rm -rf %{buildroot} %{_datadir}/ctdb/tests/eventscripts/20.multipathd.monitor.002.sh %{_datadir}/ctdb/tests/eventscripts/20.multipathd.monitor.003.sh %{_datadir}/ctdb/tests/eventscripts/20.multipathd.monitor.004.sh +%{_datadir}/ctdb/tests/eventscripts/31.clamd.monitor.001.sh +%{_datadir}/ctdb/tests/eventscripts/31.clamd.monitor.002.sh +%{_datadir}/ctdb/tests/eventscripts/31.clamd.monitor.003.sh %{_datadir}/ctdb/tests/eventscripts/40.vsftpd.monitor.001.sh %{_datadir}/ctdb/tests/eventscripts/40.vsftpd.monitor.002.sh +%{_datadir}/ctdb/tests/eventscripts/40.vsftpd.shutdown.001.sh +%{_datadir}/ctdb/tests/eventscripts/40.vsftpd.shutdown.002.sh +%{_datadir}/ctdb/tests/eventscripts/40.vsftpd.startup.001.sh +%{_datadir}/ctdb/tests/eventscripts/40.vsftpd.startup.002.sh %{_datadir}/ctdb/tests/eventscripts/41.httpd.monitor.001.sh %{_datadir}/ctdb/tests/eventscripts/41.httpd.monitor.002.sh +%{_datadir}/ctdb/tests/eventscripts/41.httpd.shutdown.001.sh +%{_datadir}/ctdb/tests/eventscripts/41.httpd.shutdown.002.sh +%{_datadir}/ctdb/tests/eventscripts/41.httpd.startup.001.sh +%{_datadir}/ctdb/tests/eventscripts/41.httpd.startup.002.sh %{_datadir}/ctdb/tests/eventscripts/49.winbind.monitor.001.sh %{_datadir}/ctdb/tests/eventscripts/49.winbind.monitor.101.sh %{_datadir}/ctdb/tests/eventscripts/49.winbind.monitor.102.sh +%{_datadir}/ctdb/tests/eventscripts/49.winbind.shutdown.001.sh +%{_datadir}/ctdb/tests/eventscripts/49.winbind.shutdown.002.sh +%{_datadir}/ctdb/tests/eventscripts/49.winbind.startup.001.sh +%{_datadir}/ctdb/tests/eventscripts/49.winbind.startup.002.sh %{_datadir}/ctdb/tests/eventscripts/50.samba.monitor.001.sh %{_datadir}/ctdb/tests/eventscripts/50.samba.monitor.101.sh %{_datadir}/ctdb/tests/eventscripts/50.samba.monitor.103.sh @@ -3067,7 +3222,6 @@ rm -rf %{buildroot} %{_datadir}/ctdb/tests/eventscripts/stubs/wbinfo %dir %{_datadir}/ctdb/tests/onnode -%{_datadir}/ctdb/tests/onnode/README %{_datadir}/ctdb/tests/onnode/0001.sh %{_datadir}/ctdb/tests/onnode/0002.sh %{_datadir}/ctdb/tests/onnode/0003.sh @@ -3086,7 +3240,6 @@ rm -rf %{buildroot} %dir %{_datadir}/ctdb/tests/onnode/stubs %{_datadir}/ctdb/tests/onnode/stubs/ctdb -%{_datadir}/ctdb/tests/onnode/stubs/onnode-buggy-001 %{_datadir}/ctdb/tests/onnode/stubs/ssh %dir %{_datadir}/ctdb/tests/scripts @@ -3161,6 +3314,7 @@ rm -rf %{buildroot} %{_datadir}/ctdb/tests/simple/77_ctdb_db_recovery.sh %{_datadir}/ctdb/tests/simple/78_ctdb_large_db_recovery.sh %{_datadir}/ctdb/tests/simple/80_ctdb_traverse.sh +%{_datadir}/ctdb/tests/simple/81_tunnel_ring.sh %{_datadir}/ctdb/tests/simple/99_daemons_shutdown.sh %{_datadir}/ctdb/tests/simple/functions # This is a dangling symlink but needed for testing @@ -3207,6 +3361,7 @@ rm -rf %{buildroot} %{_datadir}/ctdb/tests/takeover/lcp2.032.sh %{_datadir}/ctdb/tests/takeover/lcp2.033.sh %{_datadir}/ctdb/tests/takeover/lcp2.034.sh +%{_datadir}/ctdb/tests/takeover/lcp2.035.sh %{_datadir}/ctdb/tests/takeover/nondet.001.sh %{_datadir}/ctdb/tests/takeover/nondet.002.sh %{_datadir}/ctdb/tests/takeover/nondet.003.sh @@ -3271,11 +3426,9 @@ rm -rf %{buildroot} %{_datadir}/ctdb/tests/tool/ctdb.disable.002.sh %{_datadir}/ctdb/tests/tool/ctdb.disable.003.sh %{_datadir}/ctdb/tests/tool/ctdb.disable.004.sh -%{_datadir}/ctdb/tests/tool/ctdb.disablemonitor.001.sh %{_datadir}/ctdb/tests/tool/ctdb.enable.001.sh %{_datadir}/ctdb/tests/tool/ctdb.enable.002.sh %{_datadir}/ctdb/tests/tool/ctdb.enable.003.sh -%{_datadir}/ctdb/tests/tool/ctdb.enablemonitor.001.sh %{_datadir}/ctdb/tests/tool/ctdb.getcapabilities.001.sh %{_datadir}/ctdb/tests/tool/ctdb.getcapabilities.002.sh %{_datadir}/ctdb/tests/tool/ctdb.getcapabilities.003.sh @@ -3285,7 +3438,6 @@ rm -rf %{buildroot} %{_datadir}/ctdb/tests/tool/ctdb.getdbseqnum.002.sh %{_datadir}/ctdb/tests/tool/ctdb.getdbstatus.001.sh %{_datadir}/ctdb/tests/tool/ctdb.getdbstatus.002.sh -%{_datadir}/ctdb/tests/tool/ctdb.getmonmode.001.sh %{_datadir}/ctdb/tests/tool/ctdb.getpid.001.sh %{_datadir}/ctdb/tests/tool/ctdb.getreclock.001.sh %{_datadir}/ctdb/tests/tool/ctdb.getreclock.002.sh @@ -3389,6 +3541,9 @@ rm -rf %{buildroot} %endif # with_clustering_support %changelog +* Mon Jan 15 2018 Guenther Deschner - 4.8.0rc1-1 +- Update to Samba 4.8.0rc1 + * Mon Jan 08 2018 Andreas Schneider - 4.7.4-1 - resolves: #1508092 - Add missing dependency for tdbbackup diff --git a/sources b/sources index c95c95d..8260901 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (samba-4.7.4.tar.xz) = 426a0431ac0c34b89ba15a3ef9a3540507569ceac8a0b54ac92c4d6ab876cc390523e42c7a56b63d62203f04489248da3c77f15b21633cbb0d57b74e22820d70 -SHA512 (samba-4.7.4.tar.asc) = 267acea680dcd55b17bdbb49c220d37d33c001760c59e9f872939581b817019056ed80601ddc5c2d6a65410a8330a97f106e935ae3f1250b575341ca3db70e3b +SHA512 (samba-4.8.0rc1.tar.xz) = 1fa6f83dca8bf79e28c6925420c12bb238667dc62745438595e231a4c33ed95a8b1a0f373323129d3f342ee208b930b050c90f6b018151cba6306034ec458b35 +SHA512 (samba-4.8.0rc1.tar.asc) = 7aee847dd492b70c37d6e31bb31aecf6a7ef8ed504f99f46777d9720cc9bc6c464bd908bf027fc7dbee49edf21849d9547ffe58e8a4889ff8278900d523918a1