samba4: update to 4.10.6

* update to 4.10.6
* use python3
* disable SERVER_AD_DC option (bugged atm)
* fix init script symlink smb.conf detection
* add new deps (libtasn1, libopenssl)

Signed-off-by: Andy Walsh <andy.walsh44+github@gmail.com>
This commit is contained in:
Andy Walsh
2019-07-10 14:40:01 +02:00
parent 4a7b407d70
commit 0ddd8f1484
11 changed files with 232 additions and 85 deletions
@@ -0,0 +1,89 @@
From a197e0cafb276a9b732f914b1f679ebb487b47f1 Mon Sep 17 00:00:00 2001
From: pinglin <pinglin@synology.com>
Date: Tue, 19 Mar 2019 20:46:27 +0800
Subject: [PATCH] cross_compile argument doesn't apply
reproduce:
./configure --cross-compile --cross-answers=XXX
The output log now will show correct cross-answers.
---
third_party/waf/waflib/Context.py | 20 ++++++++++++++++++--
third_party/waf/waflib/Tools/c_config.py | 11 +++++++----
2 files changed, 25 insertions(+), 6 deletions(-)
diff --git a/third_party/waf/waflib/Context.py b/third_party/waf/waflib/Context.py
index 3222fb1551c..d1c87512095 100644
--- a/third_party/waf/waflib/Context.py
+++ b/third_party/waf/waflib/Context.py
@@ -359,8 +359,16 @@ class Context(ctx):
encoding = kw.pop('decode_as', default_encoding)
+ exec_args = kw.pop('exec_args', [])
+ if isinstance(cmd, str):
+ cmd = [cmd] + exec_args
+ elif isinstance(cmd, list):
+ cmd = cmd + exec_args
try:
- ret, out, err = Utils.run_process(cmd, kw, cargs)
+ if exec_args:
+ ret, out, err = Utils.run_regular_process(cmd, kw, cargs)
+ else:
+ ret, out, err = Utils.run_process(cmd, kw, cargs)
except Exception as e:
raise Errors.WafError('Execution failure: %s' % str(e), ex=e)
@@ -438,8 +446,16 @@ class Context(ctx):
encoding = kw.pop('decode_as', default_encoding)
+ exec_args = kw.pop('exec_args', [])
+ if isinstance(cmd, str):
+ cmd = [cmd] + exec_args
+ elif isinstance(cmd, list):
+ cmd = cmd + exec_args
try:
- ret, out, err = Utils.run_process(cmd, kw, cargs)
+ if exec_args:
+ ret, out, err = Utils.run_regular_process(cmd, kw, cargs)
+ else:
+ ret, out, err = Utils.run_process(cmd, kw, cargs)
except Exception as e:
raise Errors.WafError('Execution failure: %s' % str(e), ex=e)
diff --git a/third_party/waf/waflib/Tools/c_config.py b/third_party/waf/waflib/Tools/c_config.py
index 76082152cd9..25e468b0844 100644
--- a/third_party/waf/waflib/Tools/c_config.py
+++ b/third_party/waf/waflib/Tools/c_config.py
@@ -660,20 +660,23 @@ class test_exec(Task.Task):
"""
color = 'PINK'
def run(self):
+ exec_args = Utils.to_list(self.generator.exec_args)
+
if getattr(self.generator, 'rpath', None):
if getattr(self.generator, 'define_ret', False):
- self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()])
+ self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()], exec_args=exec_args)
else:
- self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()])
+ self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()], exec_args=exec_args)
else:
env = self.env.env or {}
env.update(dict(os.environ))
for var in ('LD_LIBRARY_PATH', 'DYLD_LIBRARY_PATH', 'PATH'):
env[var] = self.inputs[0].parent.abspath() + os.path.pathsep + env.get(var, '')
+
if getattr(self.generator, 'define_ret', False):
- self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()], env=env)
+ self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()], env=env, exec_args=exec_args)
else:
- self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()], env=env)
+ self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()], env=env, exec_args=exec_args)
@feature('test_exec')
@after_method('apply_link')
--
2.17.1
@@ -0,0 +1,25 @@
From f68bd76eab9a6e93b42f396a81aed64f65b99d1c Mon Sep 17 00:00:00 2001
From: pinglin <pinglin@synology.com>
Date: Mon, 25 Mar 2019 20:43:54 +0800
Subject: [PATCH] fix rpath error, this commit related to the previous one
---
buildtools/wafsamba/samba_waf18.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/buildtools/wafsamba/samba_waf18.py b/buildtools/wafsamba/samba_waf18.py
index cc310fbf512..47acc5b3c06 100644
--- a/buildtools/wafsamba/samba_waf18.py
+++ b/buildtools/wafsamba/samba_waf18.py
@@ -220,7 +220,7 @@ def CHECK_LIBRARY_SUPPORT(conf, rpath=False, version_script=False, msg=None):
args = conf.SAMBA_CROSS_ARGS(msg=msg)
env = dict(os.environ)
env['LD_LIBRARY_PATH'] = self.inputs[0].parent.abspath() + os.pathsep + env.get('LD_LIBRARY_PATH', '')
- self.generator.bld.cmd_and_log([self.inputs[0].abspath()] + args, env=env)
+ self.generator.bld.cmd_and_log([self.inputs[0].abspath()] + args, env=env, exec_args=args)
o.post()
bld(rule=run_app, source=o.link_task.outputs[0])
--
2.17.1
@@ -0,0 +1,32 @@
From 41eeabcb0175659aebf6d480c43fb64310f37d9c Mon Sep 17 00:00:00 2001
From: Andrew Bartlett <abartlet@samba.org>
Date: Wed, 20 Mar 2019 13:57:50 +1300
Subject: [PATCH] build: Allow build when --disable-gnutls is set
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13844
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
---
lib/mscat/wscript | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lib/mscat/wscript b/lib/mscat/wscript
index 7ca9ef567ee..4d1f752a3c1 100644
--- a/lib/mscat/wscript
+++ b/lib/mscat/wscript
@@ -12,7 +12,11 @@ def configure(conf):
if not conf.find_program('asn1Parser', var='ASN1PARSER'):
Logs.warn('WARNING: ans1Parser hasn\'t been found! Please install it (e.g. libtasn1-bin)')
- conf.CHECK_FUNCS_IN('gnutls_pkcs7_get_embedded_data_oid', 'gnutls')
+ # GnuTLS is currently able to be disabled
+ if conf.env.enable_gnutls:
+ conf.CHECK_FUNCS_IN('gnutls_pkcs7_get_embedded_data_oid', 'gnutls')
+ else:
+ Logs.warn('WARNING: gnutls disabled so dumpmscat will not be built')
def build(bld):
if (bld.CONFIG_SET('HAVE_LIBTASN1') and
--
2.11.0
@@ -0,0 +1,13 @@
--- a/lib/replace/replace.h
+++ b/lib/replace/replace.h
@@ -162,10 +162,6 @@
#include <bsd/unistd.h>
#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
#ifdef HAVE_STRING_H
#include <string.h>
#endif
@@ -5,7 +5,7 @@
}
- priv_path = private_path("msg.sock");
+ priv_path = lock_path("msg.sock");
+ priv_path = lock_path(talloc_tos(), "msg.sock");
if (priv_path == NULL) {
return NT_STATUS_NO_MEMORY;
}
@@ -14,7 +14,7 @@
msg_ctx->msg_dgm_ref = messaging_dgm_ref(
msg_ctx, msg_ctx->event_ctx, &msg_ctx->id.unique_id,
- private_path("msg.sock"), lck_path,
+ lock_path("msg.sock"), lck_path,
+ lock_path(talloc_tos(), "msg.sock"), lck_path,
messaging_recv_cb, msg_ctx, &ret);
if (msg_ctx->msg_dgm_ref == NULL) {
@@ -8,10 +8,10 @@ Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
@@ -2,6 +2,7 @@
import sys
import Build, Options, Logs
from waflib import Build, Options, Logs
+import imp, os
from Configure import conf
from samba_utils import TO_LIST
from waflib.Configure import conf
from wafsamba import samba_utils
@@ -249,17 +250,32 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, li
# versions
@@ -1,32 +0,0 @@
diff --git a/source3/modules/vfs_fruit.c b/source3/modules/vfs_fruit.c
index 14d7a797451..1982f128cb3 100644
--- a/source3/modules/vfs_fruit.c
+++ b/source3/modules/vfs_fruit.c
@@ -119,6 +119,18 @@ static struct global_fruit_config {
#define AFPRESOURCE_EA_NETATALK "user." NETATALK_RSRC_XATTR
#endif
+#ifndef OFF_T_MAX
+#if SIZEOF_OFF_T == SIZEOF_INT8_T
+#define OFF_T_MAX INT8_MAX
+#elif SIZEOF_OFF_T == SIZEOF_INT16_T
+#define OFF_T_MAX INT16_MAX
+#elif SIZEOF_OFF_T == SIZEOF_INT32_T
+#define OFF_T_MAX INT32_MAX
+#elif SIZEOF_OFF_T == SIZEOF_INT64_T
+#define OFF_T_MAX INT64_MAX
+#endif
+#endif
+
enum apple_fork {APPLE_FORK_DATA, APPLE_FORK_RSRC};
enum fruit_rsrc {FRUIT_RSRC_STREAM, FRUIT_RSRC_ADFILE, FRUIT_RSRC_XATTR};
@@ -6867,7 +6879,7 @@ static bool fruit_tmsize_do_dirent(vfs_handle_struct *handle,
return true;
}
- if (bandsize > SIZE_MAX/nbands) {
+ if (bandsize > OFF_T_MAX/nbands) {
DBG_ERR("tmsize overflow: bandsize [%zu] nbands [%zu]\n",
bandsize, nbands);
return false;
@@ -0,0 +1,21 @@
--- a/source3/modules/vfs_fruit.c 2019-07-09
+++ b/source3/modules/vfs_fruit.c 2019-07-09
@@ -6995,12 +6995,12 @@ static bool fruit_tmsize_do_dirent(vfs_h
return true;
}
- if (bandsize > SIZE_MAX/nbands) {
- DBG_ERR("tmsize overflow: bandsize [%zu] nbands [%zu]\n",
- bandsize, nbands);
- return false;
- }
- tm_size = bandsize * nbands;
+ // if (bandsize > SIZE_MAX/nbands) {
+ // DBG_ERR("tmsize overflow: bandsize [%zu] nbands [%zu]\n",
+ // bandsize, nbands);
+ // return false;
+ // }
+ tm_size = (off_t)bandsize * (off_t)nbands;
if (state->total_size + tm_size < state->total_size) {
DBG_ERR("tmsize overflow: bandsize [%zu] nbands [%zu]\n",