summaryrefslogtreecommitdiffstats
path: root/external/meta-openembedded/meta-networking/recipes-connectivity/samba
diff options
context:
space:
mode:
Diffstat (limited to 'external/meta-openembedded/meta-networking/recipes-connectivity/samba')
-rw-r--r--external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-Add-options-to-configure-the-use-of-libbsd.patch103
-rw-r--r--external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-ldb-Refuse-to-build-Samba-against-a-newer-minor-vers.patch86
-rw-r--r--external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-lib-replace-wscript-Avoid-generating-nested-main-fun.patch30
-rw-r--r--external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-samba-fix-musl-lib-without-innetgr.patch42
-rw-r--r--external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-waf-add-support-of-cross_compile.patch62
-rw-r--r--external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0002-util_sec.c-Move-__thread-variable-to-global-scope.patch58
-rw-r--r--external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/20-do-not-import-target-module-while-cross-compile.patch59
-rw-r--r--external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/21-add-config-option-without-valgrind.patch48
-rw-r--r--external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/glibc_only.patch29
-rw-r--r--external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb.conf6
-rw-r--r--external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.10.15.bb (renamed from external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.8.4.bb)71
11 files changed, 418 insertions, 176 deletions
diff --git a/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-Add-options-to-configure-the-use-of-libbsd.patch b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-Add-options-to-configure-the-use-of-libbsd.patch
new file mode 100644
index 00000000..80cdd395
--- /dev/null
+++ b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-Add-options-to-configure-the-use-of-libbsd.patch
@@ -0,0 +1,103 @@
+From 1e8d31c138395122df4cc2a3e0edd6cd3fad736c Mon Sep 17 00:00:00 2001
+From: Peter Kjellerstedt <pkj@axis.com>
+Date: Tue, 28 Apr 2020 02:05:33 +0200
+Subject: [PATCH] Add options to configure the use of libbsd
+
+Upstream-Status: Inappropriate [oe deterministic build specific]
+Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
+---
+ buildtools/wafsamba/wscript | 7 +++++++
+ lib/crypto/wscript_configure | 2 +-
+ lib/replace/wscript | 29 +++++++++++++++--------------
+ lib/texpect/wscript | 7 ++++++-
+ 4 files changed, 29 insertions(+), 16 deletions(-)
+
+diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript
+index 7b8fb01..a8e4b0a 100644
+--- a/buildtools/wafsamba/wscript
++++ b/buildtools/wafsamba/wscript
+@@ -88,6 +88,13 @@ def options(opt):
+ help=("Disable use of gettext"),
+ action="store_true", dest='disable_gettext', default=False)
+
++ opt.add_option('--with-libbsd',
++ help=("Enable use of libbsd"),
++ action="store_true", dest='enable_libbsd')
++ opt.add_option('--without-libbsd',
++ help=("Disable use of libbsd"),
++ action="store_false", dest='enable_libbsd', default=False)
++
+ gr = opt.option_group('developer options')
+
+ gr.add_option('-C',
+diff --git a/lib/crypto/wscript_configure b/lib/crypto/wscript_configure
+index 09dfe04..e871718 100644
+--- a/lib/crypto/wscript_configure
++++ b/lib/crypto/wscript_configure
+@@ -2,7 +2,7 @@
+ from waflib import Options
+ from waflib import Errors, Logs
+
+-if not conf.CHECK_FUNCS_IN('MD5Init', 'bsd', headers='bsd/md5.h',
++if not Options.options.enable_libbsd or not conf.CHECK_FUNCS_IN('MD5Init', 'bsd', headers='bsd/md5.h',
+ checklibc=True):
+ conf.CHECK_FUNCS_IN('MD5Init', 'md5', headers='sys/md5.h',
+ checklibc=True)
+diff --git a/lib/replace/wscript b/lib/replace/wscript
+index 0020d2a..cd9228f 100644
+--- a/lib/replace/wscript
++++ b/lib/replace/wscript
+@@ -407,20 +407,21 @@ def configure(conf):
+
+ strlcpy_in_bsd = False
+
+- # libbsd on some platforms provides strlcpy and strlcat
+- if not conf.CHECK_FUNCS('strlcpy strlcat'):
+- if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
+- checklibc=True):
+- strlcpy_in_bsd = True
+- if not conf.CHECK_FUNCS('getpeereid'):
+- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
+- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
+- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
+- if not conf.CHECK_FUNCS('setproctitle_init'):
+- conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
+-
+- if not conf.CHECK_FUNCS('closefrom'):
+- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
++ if Options.options.enable_libbsd:
++ # libbsd on some platforms provides strlcpy and strlcat
++ if not conf.CHECK_FUNCS('strlcpy strlcat'):
++ if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
++ checklibc=True):
++ strlcpy_in_bsd = True
++ if not conf.CHECK_FUNCS('getpeereid'):
++ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
++ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
++ conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
++ if not conf.CHECK_FUNCS('setproctitle_init'):
++ conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
++
++ if not conf.CHECK_FUNCS('closefrom'):
++ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
+
+ conf.CHECK_CODE('''
+ struct ucred cred;
+diff --git a/lib/texpect/wscript b/lib/texpect/wscript
+index e14c048..a91de59 100644
+--- a/lib/texpect/wscript
++++ b/lib/texpect/wscript
+@@ -1,7 +1,12 @@
+ #!/usr/bin/env python
++from waflib import Options
+
+ def configure(conf):
+- conf.CHECK_FUNCS_IN('openpty', 'util', checklibc=True, headers='pty.h util.h bsd/libutil.h libutil.h')
++ hdrs = 'pty.h util.h'
++ if Options.options.enable_libbsd:
++ hdrs += ' bsd/libutil.h'
++ hdrs += ' libutil.h'
++ conf.CHECK_FUNCS_IN('openpty', 'util', checklibc=True, headers=hdrs)
+
+ def build(bld):
+ bld.SAMBA_BINARY('texpect', 'texpect.c', deps='popt util replace', install=False)
diff --git a/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-ldb-Refuse-to-build-Samba-against-a-newer-minor-vers.patch b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-ldb-Refuse-to-build-Samba-against-a-newer-minor-vers.patch
deleted file mode 100644
index 4c94831d..00000000
--- a/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-ldb-Refuse-to-build-Samba-against-a-newer-minor-vers.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 0bc8bc4143a58f91f6d7ce228b6763f377fdf45a Mon Sep 17 00:00:00 2001
-From: Andrew Bartlett <abartlet@samba.org>
-Date: Thu, 12 Jul 2018 12:34:56 +1200
-Subject: [PATCH] ldb: Refuse to build Samba against a newer minor version of
- ldb
-
-Samba is not compatible with new versions of ldb (except release versions)
-
-Other users would not notice the breakages, but Samba makes many
-more assuptions about the LDB internals than any other package.
-
-(Specifically, LDB 1.2 and 1.4 broke builds against released
-Samba versions)
-
-BUG: https://bugzilla.samba.org/show_bug.cgi?id=13519
-
-Signed-off-by: Andrew Bartlett <abartlet@samba.org>
-Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
-(cherry picked from commit 52efa796538ae004ca62ea32fc8c833472991be6)
----
- lib/ldb/wscript | 32 ++++++++++++++++++++++----------
- 1 file changed, 22 insertions(+), 10 deletions(-)
-
-diff --git a/lib/ldb/wscript b/lib/ldb/wscript
-index d94086b..2bb0832 100644
---- a/lib/ldb/wscript
-+++ b/lib/ldb/wscript
-@@ -62,23 +62,33 @@ def configure(conf):
- conf.env.standalone_ldb = conf.IN_LAUNCH_DIR()
-
- if not conf.env.standalone_ldb:
-+ max_ldb_version = [int(x) for x in VERSION.split(".")]
-+ max_ldb_version[2] = 999
-+ max_ldb_version_dots = "%d.%d.%d" % tuple(max_ldb_version)
-+
- if conf.env.disable_python:
-- if conf.CHECK_BUNDLED_SYSTEM_PKG('ldb', minversion=VERSION,
-- onlyif='talloc tdb tevent',
-- implied_deps='replace talloc tdb tevent'):
-+ if conf.CHECK_BUNDLED_SYSTEM_PKG('ldb',
-+ minversion=VERSION,
-+ maxversion=max_ldb_version_dots,
-+ onlyif='talloc tdb tevent',
-+ implied_deps='replace talloc tdb tevent'):
- conf.define('USING_SYSTEM_LDB', 1)
- else:
- using_system_pyldb_util = True
-- if not conf.CHECK_BUNDLED_SYSTEM_PKG('pyldb-util', minversion=VERSION,
-- onlyif='talloc tdb tevent',
-- implied_deps='replace talloc tdb tevent ldb'):
-+ if not conf.CHECK_BUNDLED_SYSTEM_PKG('pyldb-util',
-+ minversion=VERSION,
-+ maxversion=max_ldb_version_dots,
-+ onlyif='talloc tdb tevent',
-+ implied_deps='replace talloc tdb tevent ldb'):
- using_system_pyldb_util = False
-
- # We need to get a pyldb-util for all the python versions
- # we are building for
- if conf.env['EXTRA_PYTHON']:
- name = 'pyldb-util' + conf.all_envs['extrapython']['PYTHON_SO_ABI_FLAG']
-- if not conf.CHECK_BUNDLED_SYSTEM_PKG(name, minversion=VERSION,
-+ if not conf.CHECK_BUNDLED_SYSTEM_PKG(name,
-+ minversion=VERSION,
-+ maxversion=max_ldb_version_dots,
- onlyif='talloc tdb tevent',
- implied_deps='replace talloc tdb tevent ldb'):
- using_system_pyldb_util = False
-@@ -86,9 +96,11 @@ def configure(conf):
- if using_system_pyldb_util:
- conf.define('USING_SYSTEM_PYLDB_UTIL', 1)
-
-- if conf.CHECK_BUNDLED_SYSTEM_PKG('ldb', minversion=VERSION,
-- onlyif='talloc tdb tevent pyldb-util',
-- implied_deps='replace talloc tdb tevent'):
-+ if conf.CHECK_BUNDLED_SYSTEM_PKG('ldb',
-+ minversion=VERSION,
-+ maxversion=max_ldb_version_dots,
-+ onlyif='talloc tdb tevent pyldb-util',
-+ implied_deps='replace talloc tdb tevent'):
- conf.define('USING_SYSTEM_LDB', 1)
-
- if conf.CONFIG_SET('USING_SYSTEM_LDB'):
---
-2.18.0
-
diff --git a/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-lib-replace-wscript-Avoid-generating-nested-main-fun.patch b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-lib-replace-wscript-Avoid-generating-nested-main-fun.patch
new file mode 100644
index 00000000..de7f3118
--- /dev/null
+++ b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-lib-replace-wscript-Avoid-generating-nested-main-fun.patch
@@ -0,0 +1,30 @@
+From 3a935c638605bfb392ca7780d22c08c1a0a71e71 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 5 Sep 2019 21:37:33 -0700
+Subject: [PATCH 1/2] lib/replace/wscript: Avoid generating nested main
+ function
+
+clang is not happy when it sees another main nested inside the main
+function and fails the test for prctl syscall, therefore avoid adding
+implicit main() here
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/replace/wscript | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lib/replace/wscript b/lib/replace/wscript
+index a7fd25d..d6767fc 100644
+--- a/lib/replace/wscript
++++ b/lib/replace/wscript
+@@ -137,6 +137,7 @@ def configure(conf):
+ }
+ ''',
+ 'HAVE_PRCTL',
++ addmain=False,
+ headers='sys/prctl.h',
+ msg='Checking for prctl syscall')
+
+--
+2.23.0
+
diff --git a/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-samba-fix-musl-lib-without-innetgr.patch b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-samba-fix-musl-lib-without-innetgr.patch
new file mode 100644
index 00000000..fb12a10e
--- /dev/null
+++ b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-samba-fix-musl-lib-without-innetgr.patch
@@ -0,0 +1,42 @@
+From fcb8ecd530b2d151e373974741601483326f7528 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 27 Jun 2019 11:09:47 +0800
+Subject: [PATCH] samba: fix musl lib without innetgr
+
+Upstream-Status: Pending
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ lib/util/access.c | 2 +-
+ source3/auth/user_util.c | 2 +-
+ 2 file changed, 2 insertion(+), 2 deletion(-)
+
+diff --git a/lib/util/access.c b/lib/util/access.c
+index 7da0573..b94949e 100644
+--- a/lib/util/access.c
++++ b/lib/util/access.c
+@@ -112,7 +112,7 @@ static bool string_match(const char *tok,const char *s)
+ return true;
+ }
+ } else if (tok[0] == '@') { /* netgroup: look it up */
+-#ifdef HAVE_NETGROUP
++#if defined(HAVE_NETGROUP) && defined(HAVE_INNETGR)
+ DATA_BLOB tmp;
+ char *mydomain = NULL;
+ char *hostname = NULL;
+diff --git a/source3/auth/user_util.c b/source3/auth/user_util.c
+index a76b5d4..30f523d 100644
+--- a/source3/auth/user_util.c
++++ b/source3/auth/user_util.c
+@@ -148,7 +148,7 @@ static void store_map_in_gencache(TALLOC_CTX *ctx, const char *from, const char
+
+ bool user_in_netgroup(TALLOC_CTX *ctx, const char *user, const char *ngname)
+ {
+-#ifdef HAVE_NETGROUP
++#if defined(HAVE_NETGROUP) && defined(HAVE_INNETGR)
+ static char *my_yp_domain = NULL;
+ char *lowercase_user = NULL;
+
+--
+2.7.4
+
diff --git a/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-waf-add-support-of-cross_compile.patch b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-waf-add-support-of-cross_compile.patch
new file mode 100644
index 00000000..23b35a81
--- /dev/null
+++ b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-waf-add-support-of-cross_compile.patch
@@ -0,0 +1,62 @@
+From 4b8463ff43f8983a706b181c5292491f9f954be1 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Fri, 25 Jan 2019 15:00:59 +0800
+Subject: [PATCH] waf: add support of cross_compile
+
+After upgrade, waf also upgraded
+
+on 1.5.19, for cross_compile, subprocess.Popen is set to be
+samba_cross.cross_Popen, which will not execute testprog on
+host, but only read result from cross-answers.txt which is
+passed by option --cross-answer
+
+part of old code:
+ args = Utils.to_list(kw.get('exec_args', []))
+ proc = Utils.pproc.Popen([lastprog] + args, stdout=Utils.pproc.PIPE, stderr=Utils.pproc.PIPE)
+
+but on new version, exec_args is not used and cause do_configure
+failed with Exec format error
+
+fixed by append cross anser related args to cmd
+
+Upstream-Status: Submitted [https://gitlab.com/samba-team/samba/merge_requests/211]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ third_party/waf/waflib/Tools/c_config.py | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/third_party/waf/waflib/Tools/c_config.py b/third_party/waf/waflib/Tools/c_config.py
+index 7608215..767cf33 100644
+--- a/third_party/waf/waflib/Tools/c_config.py
++++ b/third_party/waf/waflib/Tools/c_config.py
+@@ -660,20 +660,21 @@ class test_exec(Task.Task):
+ """
+ color = 'PINK'
+ def run(self):
++ args = self.generator.bld.kw.get('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()])
+- else:
+- self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()])
++ self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()] + args)
++ else:
++ self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()] + 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()] + args, env=env)
+ 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()] + args, env=env)
+
+ @feature('test_exec')
+ @after_method('apply_link')
+--
+2.7.4
+
diff --git a/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0002-util_sec.c-Move-__thread-variable-to-global-scope.patch b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0002-util_sec.c-Move-__thread-variable-to-global-scope.patch
new file mode 100644
index 00000000..6fc84933
--- /dev/null
+++ b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0002-util_sec.c-Move-__thread-variable-to-global-scope.patch
@@ -0,0 +1,58 @@
+From c62a6f32ab965de2ec77a614f20f04568116835b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 5 Sep 2019 21:39:05 -0700
+Subject: [PATCH 2/2] util_sec.c: Move __thread variable to global scope
+
+Make clang happy otherwise it complains about variable scope
+
+fixes
+
+source3/./lib/util_sec.c:470:4: error: '__thread' variables must have global storage
+ } __thread cache;
+ ^
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ source3/lib/util_sec.c | 19 +++++++++++--------
+ 1 file changed, 11 insertions(+), 8 deletions(-)
+
+diff --git a/source3/lib/util_sec.c b/source3/lib/util_sec.c
+index 9408269..7390318 100644
+--- a/source3/lib/util_sec.c
++++ b/source3/lib/util_sec.c
+@@ -444,6 +444,17 @@ void become_user_permanently(uid_t uid, gid_t gid)
+ assert_gid(gid, gid);
+ }
+
++#ifdef HAVE___THREAD
++ struct cache_t {
++ bool active;
++ uid_t uid;
++ gid_t gid;
++ size_t setlen;
++ uintptr_t gidset;
++ };
++
++static __thread struct cache_t cache;
++#endif
+ /**********************************************************
+ Function to set thread specific credentials. Leave
+ saved-set uid/gid alone.Must be thread-safe code.
+@@ -461,14 +472,6 @@ int set_thread_credentials(uid_t uid,
+ * available.
+ */
+ #ifdef HAVE___THREAD
+- static struct {
+- bool active;
+- uid_t uid;
+- gid_t gid;
+- size_t setlen;
+- uintptr_t gidset;
+- } __thread cache;
+-
+ if (cache.active &&
+ cache.uid == uid &&
+ cache.gid == gid &&
+--
+2.23.0
+
diff --git a/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/20-do-not-import-target-module-while-cross-compile.patch b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/20-do-not-import-target-module-while-cross-compile.patch
index e112b3b4..3f2921ed 100644
--- a/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/20-do-not-import-target-module-while-cross-compile.patch
+++ b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/20-do-not-import-target-module-while-cross-compile.patch
@@ -1,21 +1,32 @@
-Some modules such as dynamic library maybe cann't be imported while cross compile,
-we just check whether does the module exist.
+From cc0576405803bcae45ee353c4333c449cead9207 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 25 Jun 2019 14:25:08 +0800
+Subject: [PATCH] do not import target module while cross compile
+
+Some modules such as dynamic library maybe cann't be imported
+while cross compile, we just check whether does the module exist.
Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
-Index: samba-4.4.2/buildtools/wafsamba/samba_bundled.py
-===================================================================
---- samba-4.4.2.orig/buildtools/wafsamba/samba_bundled.py
-+++ samba-4.4.2/buildtools/wafsamba/samba_bundled.py
-@@ -2,6 +2,7 @@
-
- import sys
- import Build, Options, Logs
-+import imp, os
- from Configure import conf
- from samba_utils import TO_LIST
+update to version 4.10.5, and switch to python3
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ buildtools/wafsamba/samba_bundled.py | 27 +++++++++++++++++++--------
+ 1 file changed, 18 insertions(+), 8 deletions(-)
+
+diff --git a/buildtools/wafsamba/samba_bundled.py b/buildtools/wafsamba/samba_bundled.py
+index 60ce7da..5468a36 100644
+--- a/buildtools/wafsamba/samba_bundled.py
++++ b/buildtools/wafsamba/samba_bundled.py
+@@ -4,6 +4,7 @@ import sys
+ from waflib import Build, Options, Logs
+ from waflib.Configure import conf
+ from wafsamba import samba_utils
++import importlib.util, os
-@@ -230,17 +231,32 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, li
+ def PRIVATE_NAME(bld, name, private_extension, private_library):
+ '''possibly rename a library to include a bundled extension'''
+@@ -249,17 +250,27 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, libname, modulename, minversion='0.0.0'):
# versions
minversion = minimum_library_version(conf, libname, minversion)
@@ -25,34 +36,32 @@ Index: samba-4.4.2/buildtools/wafsamba/samba_bundled.py
- found = False
- else:
+ # Find module in PYTHONPATH
-+ stuff = imp.find_module(modulename, [os.environ["PYTHONPATH"]])
-+ if stuff:
++ spec = importlib.util._find_spec_from_path(modulename, [os.environ["PYTHONPATH"]])
++ if spec:
try:
- version = m.__version__
- except AttributeError:
-+ m = imp.load_module(modulename, stuff[0], stuff[1], stuff[2])
++ module = importlib.util.module_from_spec(spec)
++ spec.loader.load_module(module)
+ except ImportError:
found = False
+
+ if conf.env.CROSS_COMPILE:
+ # Some modules such as dynamic library maybe cann't be imported
+ # while cross compile, we just check whether the module exist
-+ Logs.warn('Cross module[%s] has been found, but can not be loaded.' % (stuff[1]))
++ Logs.warn('Cross module[%s] has been found, but can not be loaded.' % (spec.name))
+ found = True
else:
- found = tuplize_version(version) >= tuplize_version(minversion)
+ try:
-+ version = m.__version__
++ version = module.__version__
+ except AttributeError:
+ found = False
+ else:
+ found = tuplize_version(version) >= tuplize_version(minversion)
-+ finally:
-+ if stuff[0]:
-+ stuff[0].close()
-+ else:
-+ found = False
-+
if not found and not conf.LIB_MAY_BE_BUNDLED(libname):
Logs.error('ERROR: Python module %s of version %s not found, and bundling disabled' % (libname, minversion))
sys.exit(1)
+--
+2.7.4
+
diff --git a/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/21-add-config-option-without-valgrind.patch b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/21-add-config-option-without-valgrind.patch
index 6a7f8fac..46a6f062 100644
--- a/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/21-add-config-option-without-valgrind.patch
+++ b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/21-add-config-option-without-valgrind.patch
@@ -1,54 +1,40 @@
-From 9a2d6315ff206b2a47100dfd85afe3af56576995 Mon Sep 17 00:00:00 2001
-From: Wenzong Fan <wenzong.fan@windriver.com>
-Date: Thu, 10 Dec 2015 04:20:51 -0500
+From 87bc8e7eafc7d12a1d3a143ebb9e43cf5fbafb72 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 20 Jun 2019 14:11:16 +0800
Subject: [PATCH] Add config option without-valgrind
Upstream-Status: Pending
Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
+Update patch to version 4.10.5
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
- lib/replace/wscript | 4 +++-
- source3/wscript | 5 ++++-
+ lib/replace/wscript | 5 +++--
wscript | 4 ++++
- 3 files changed, 11 insertions(+), 2 deletions(-)
+ 2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/lib/replace/wscript b/lib/replace/wscript
-index f0040b1..aca73af 100644
+index a7fd25d..a19ae68 100644
--- a/lib/replace/wscript
+++ b/lib/replace/wscript
-@@ -101,7 +101,9 @@ def configure(conf):
+@@ -110,8 +110,9 @@ def configure(conf):
conf.CHECK_HEADERS('sys/fileio.h sys/filesys.h sys/dustat.h sys/sysmacros.h')
conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h')
-- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
+- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
+- conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h')
+ if not Options.options.disable_valgrind:
-+ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
-+
++ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
++ conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h')
conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h')
-diff --git a/source3/wscript b/source3/wscript
-index bac3dd5..a5c51ea 100644
---- a/source3/wscript
-+++ b/source3/wscript
-@@ -1070,7 +1070,10 @@ syscall(SYS_setgroups32, 0, NULL);
- Logs.warn("--with-dnsupdate=yes but gssapi support not sufficient")
- else:
- conf.DEFINE('WITH_DNS_UPDATES', 1)
-- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
-+
-+ if not Options.options.disable_valgrind:
-+ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
-+
- if Options.options.developer:
- if conf.CONFIG_SET('HAVE_VALGRIND_H') or conf.CONFIG_SET('HAVE_VALGRIND_VALGRIND_H'):
- conf.DEFINE('VALGRIND', '1')
diff --git a/wscript b/wscript
-index 542a60c..22e6116 100644
+index e38a8e9..38b7230 100644
--- a/wscript
+++ b/wscript
-@@ -86,6 +86,10 @@ def set_options(opt):
+@@ -105,6 +105,10 @@ def options(opt):
help=("Disable RELRO builds"),
action="store_false", dest='enable_relro')
@@ -58,7 +44,7 @@ index 542a60c..22e6116 100644
+
gr = opt.option_group('developer options')
- opt.tool_options('python') # options for disabling pyc or pyo compilation
+ opt.load('python') # options for disabling pyc or pyo compilation
--
-1.9.1
+2.7.4
diff --git a/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/glibc_only.patch b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/glibc_only.patch
index 894bc8bb..d07ec0df 100644
--- a/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/glibc_only.patch
+++ b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/glibc_only.patch
@@ -1,15 +1,28 @@
-Index: samba-4.6.2/ctdb/tests/src/test_mutex_raw.c
-===================================================================
---- samba-4.6.2.orig/ctdb/tests/src/test_mutex_raw.c
-+++ samba-4.6.2/ctdb/tests/src/test_mutex_raw.c
-@@ -166,8 +166,10 @@ int main(int argc, const char **argv)
- if (ret == 0) {
- pthread_mutex_unlock(mutex);
+From 062cf74b498c1d12fd76f9d9bca926ac806e0b99 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 20 Jun 2019 14:15:18 +0800
+Subject: [PATCH] glibc only fix
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ ctdb/tests/src/test_mutex_raw.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/ctdb/tests/src/test_mutex_raw.c b/ctdb/tests/src/test_mutex_raw.c
+index 926a525..814343f 100644
+--- a/ctdb/tests/src/test_mutex_raw.c
++++ b/ctdb/tests/src/test_mutex_raw.c
+@@ -291,8 +291,10 @@ int main(int argc, const char **argv)
+ "failed\n");
+ exit (EXIT_FAILURE);
}
+#ifdef __GLIBC__
} else if (ret == EBUSY) {
- printf("pid=%u\n", mutex->__data.__owner);
+ printf("INFO: pid=%u\n", mutex->__data.__owner);
+#endif
} else if (ret == 0) {
pthread_mutex_unlock(mutex);
}
+--
+2.7.4
+
diff --git a/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb.conf b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb.conf
index a0b87c37..d6bde417 100644
--- a/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb.conf
+++ b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/smb.conf
@@ -25,6 +25,10 @@
## Browsing/Identification ###
+# Prevent anonymous connections. Overriden if the user sets guest ok = yes
+# on any share
+ restrict anonymous = 1
+
# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = WORKGROUP
@@ -114,7 +118,7 @@
# This option controls how unsuccessful authentication attempts are mapped
# to anonymous connections
- map to guest = bad user
+ map to guest = never
########## Domains ###########
diff --git a/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.8.4.bb b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.10.15.bb
index f1aaeb83..2c74c27f 100644
--- a/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.8.4.bb
+++ b/external/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.10.15.bb
@@ -23,26 +23,30 @@ SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \
file://dnsserver-4.7.0.patch \
file://smb_conf-4.7.0.patch \
file://volatiles.03_samba \
- file://0001-ldb-Refuse-to-build-Samba-against-a-newer-minor-vers.patch \
+ file://0001-waf-add-support-of-cross_compile.patch \
+ file://0001-lib-replace-wscript-Avoid-generating-nested-main-fun.patch \
+ file://0002-util_sec.c-Move-__thread-variable-to-global-scope.patch \
+ file://0001-Add-options-to-configure-the-use-of-libbsd.patch \
"
SRC_URI_append_libc-musl = " \
file://samba-pam.patch \
file://samba-4.3.9-remove-getpwent_r.patch \
file://cmocka-uintptr_t.patch \
+ file://0001-samba-fix-musl-lib-without-innetgr.patch \
"
-SRC_URI[md5sum] = "ca5bfbebd8d9eb95506e16594b2bbee2"
-SRC_URI[sha256sum] = "f5044d149e01894a08b1d114b8b69aed78171a7bb19608bd1fd771453b9a5406"
+SRC_URI[md5sum] = "67e9f6b8c5140475641bf5121c93b3d4"
+SRC_URI[sha256sum] = "0b8b62558b62fbb121015f28f40fae0f07522710b6bef77c508b51bb6914ced9"
-UPSTREAM_CHECK_REGEX = "samba\-(?P<pver>4\.8(\.\d+)+).tar.gz"
+UPSTREAM_CHECK_REGEX = "samba\-(?P<pver>4\.10(\.\d+)+).tar.gz"
inherit systemd waf-samba cpan-base perlnative update-rc.d
# remove default added RDEPENDS on perl
RDEPENDS_${PN}_remove = "perl"
-DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libbsd libaio libpam"
+DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libldb libaio libpam libtasn1 jansson"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
DEPENDS_append_libc-musl = " libtirpc"
@@ -62,10 +66,14 @@ SYSTEMD_SERVICE_winbind = "winbind.service"
# https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller
SYSTEMD_AUTO_ENABLE_${PN}-ad-dc = "disable"
+#cross_compile cannot use preforked process, since fork process earlier than point subproces.popen
+#to cross Popen
+export WAF_NO_PREFORK="yes"
+
# Use krb5. Build active domain controller.
#
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd zeroconf', d)} \
- acl ad-dc cups gnutls ldap mitkrb5 \
+ acl cups ad-dc gnutls ldap mitkrb5 \
"
RDEPENDS_${PN}-ctdb-tests += "bash util-linux-getopt"
@@ -81,6 +89,10 @@ PACKAGECONFIG[zeroconf] = "--enable-avahi,--disable-avahi,avahi"
PACKAGECONFIG[valgrind] = ",--without-valgrind,valgrind,"
PACKAGECONFIG[lttng] = "--with-lttng, --without-lttng,lttng-ust"
PACKAGECONFIG[archive] = "--with-libarchive, --without-libarchive, libarchive"
+PACKAGECONFIG[libunwind] = ", , libunwind"
+PACKAGECONFIG[gpgme] = ",--without-gpgme,,"
+PACKAGECONFIG[lmdb] = ",--without-ldb-lmdb,lmdb,"
+PACKAGECONFIG[libbsd] = "--with-libbsd, --without-libbsd, libbsd"
# Building the AD (Active Directory) DC (Domain Controller) requires GnuTLS,
# And ad-dc doesn't work with mitkrb5 for versions prior to 4.7.0 according to:
@@ -92,7 +104,7 @@ PACKAGECONFIG[archive] = "--with-libarchive, --without-libarchive, libarchive"
# We are now at 4.7.0, so take the above with a grain of salt. We do not need to know where
# krb5kdc is unless ad-dc is enabled, but we tell configure anyhow.
#
-PACKAGECONFIG[ad-dc] = ",--without-ad-dc,,"
+PACKAGECONFIG[ad-dc] = "--with-experimental-mit-ad-dc,--without-ad-dc,,"
PACKAGECONFIG[gnutls] = "--enable-gnutls,--disable-gnutls,gnutls,"
PACKAGECONFIG[mitkrb5] = "--with-system-mitkrb5 --with-system-mitkdc=/usr/sbin/krb5kdc,,krb5,"
@@ -105,7 +117,7 @@ SAMBA4_MODULES="${SAMBA4_IDMAP_MODULES},${SAMBA4_PDB_MODULES},${SAMBA4_AUTH_MODU
# .so files so there will not be a conflict. This is not done consistantly, so be very careful
# when adding to this list.
#
-SAMBA4_LIBS="heimdal,cmocka,ldb,pyldb-util,NONE"
+SAMBA4_LIBS="heimdal,cmocka,NONE"
EXTRA_OECONF += "--enable-fhs \
--with-piddir=/run \
@@ -166,8 +178,6 @@ do_install_append() {
install -d ${D}${sysconfdir}/default
install -m644 packaging/systemd/samba.sysconfig ${D}${sysconfdir}/default/samba
- # install ctdb config file and test cases
- install -D -m 0644 ${S}/ctdb/tests/onnode/nodes ${D}${sysconfdir}/ctdb/nodes
# the items are from ctdb/tests/run_tests.sh
for d in onnode takeover tool eventscripts cunit simple complex; do
testdir=${D}${datadir}/ctdb-tests/$d
@@ -181,11 +191,21 @@ do_install_append() {
sed -i 's:\(#!/bin/\)bash:\1sh:' ${D}${bindir}/onnode
fi
- chmod 0750 ${D}${sysconfdir}/sudoers.d
+ chmod 0750 ${D}${sysconfdir}/sudoers.d || true
rm -rf ${D}/run ${D}${localstatedir}/run ${D}${localstatedir}/log
+
+ for f in samba-gpupdate samba_upgradedns samba_spnupdate samba_kcc samba_dnsupdate; do
+ if [ -f "${D}${sbindir}/$f" ]; then
+ sed -i -e 's,${PYTHON},/usr/bin/env python3,g' ${D}${sbindir}/$f
+ fi
+ done
+ if [ -f "${D}${bindir}/samba-tool" ]; then
+ sed -i -e 's,${PYTHON},/usr/bin/env python3,g' ${D}${bindir}/samba-tool
+ fi
+
}
-PACKAGES =+ "${PN}-python ${PN}-pidl \
+PACKAGES =+ "${PN}-python3 ${PN}-pidl \
${PN}-dsdb-modules ${PN}-testsuite registry-tools \
winbind \
${PN}-common ${PN}-base ${PN}-ad-dc ${PN}-ctdb-tests \
@@ -193,15 +213,15 @@ PACKAGES =+ "${PN}-python ${PN}-pidl \
python samba_populate_packages() {
def module_hook(file, pkg, pattern, format, basename):
- pn = d.getVar('PN', True)
+ pn = d.getVar('PN')
d.appendVar('RRECOMMENDS_%s-base' % pn, ' %s' % pkg)
- mlprefix = d.getVar('MLPREFIX', True) or ''
+ mlprefix = d.getVar('MLPREFIX') or ''
pam_libdir = d.expand('${base_libdir}/security')
pam_pkgname = mlprefix + 'pam-plugin%s'
do_split_packages(d, pam_libdir, '^pam_(.*)\.so$', pam_pkgname, 'PAM plugin for %s', extra_depends='', prepend=True)
- libdir = d.getVar('libdir', True)
+ libdir = d.getVar('libdir')
do_split_packages(d, libdir, '^lib(.*)\.so\..*$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True, allow_links=True)
pkglibdir = '%s/samba' % libdir
do_split_packages(d, pkglibdir, '^lib(.*)\.so$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True)
@@ -214,22 +234,19 @@ python samba_populate_packages() {
PACKAGESPLITFUNCS_prepend = "samba_populate_packages "
PACKAGES_DYNAMIC = "samba-auth-.* samba-pdb-.*"
-RDEPENDS_${PN} += "${PN}-base ${PN}-python ${PN}-dsdb-modules"
-RDEPENDS_${PN}-python += "pytalloc python-tdb"
+RDEPENDS_${PN} += "${PN}-base ${PN}-python3 ${PN}-dsdb-modules python3"
+RDEPENDS_${PN}-python3 += "pytalloc python3-tdb"
FILES_${PN}-base = "${sbindir}/nmbd \
${sbindir}/smbd \
${sysconfdir}/init.d \
- ${localstatedir}/lib/samba \
- ${localstatedir}/nmbd \
- ${localstatedir}/spool/samba \
${systemd_system_unitdir}/nmb.service \
${systemd_system_unitdir}/smb.service"
FILES_${PN}-ad-dc = "${sbindir}/samba \
${systemd_system_unitdir}/samba.service \
${libdir}/krb5/plugins/kdb/samba.so \
- "
+"
RDEPENDS_${PN}-ad-dc = "krb5-kdc"
FILES_${PN}-ctdb-tests = "${bindir}/ctdb_run_tests \
@@ -237,17 +254,21 @@ FILES_${PN}-ctdb-tests = "${bindir}/ctdb_run_tests \
${sysconfdir}/ctdb/nodes \
${datadir}/ctdb-tests \
${datadir}/ctdb/tests \
+ ${localstatedir}/lib/ctdb \
"
FILES_${BPN}-common = "${sysconfdir}/default \
${sysconfdir}/samba \
${sysconfdir}/tmpfiles.d \
+ ${localstatedir}/lib/samba \
+ ${localstatedir}/spool/samba \
"
FILES_${PN} += "${libdir}/vfs/*.so \
${libdir}/charset/*.so \
${libdir}/*.dat \
${libdir}/auth/*.so \
+ ${datadir}/ctdb/events/* \
"
FILES_${PN}-dsdb-modules = "${libdir}/samba/ldb"
@@ -273,7 +294,7 @@ FILES_winbind = "${sbindir}/winbindd \
${sysconfdir}/init.d/winbind \
${systemd_system_unitdir}/winbind.service"
-FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
+FILES_${PN}-python3 = "${PYTHON_SITEPACKAGES_DIR}"
FILES_smbclient = "${bindir}/cifsdd \
${bindir}/rpcclient \
@@ -294,7 +315,7 @@ RDEPENDS_${PN}-client = "\
winbind \
registry-tools \
${PN}-pidl \
- "
+ "
ALLOW_EMPTY_${PN}-client = "1"
@@ -302,7 +323,7 @@ RDEPENDS_${PN}-server = "\
${PN} \
winbind \
registry-tools \
- "
+ "
ALLOW_EMPTY_${PN}-server = "1"