mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-07-27 07:57:27 +00:00
samba: upgrade 4.8.12 -> 4.10.5
1. switch to python3, from 4.10.x, samba support both python2 and python3, and from 4.11.x, python2 will be dropped. 2. fix cross-compile problem caused by waf 3. disable lmdb 4. refresh patch Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
+42
@@ -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
|
||||||
|
|
||||||
+62
@@ -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
|
||||||
|
|
||||||
+34
-25
@@ -1,21 +1,32 @@
|
|||||||
Some modules such as dynamic library maybe cann't be imported while cross compile,
|
From cc0576405803bcae45ee353c4333c449cead9207 Mon Sep 17 00:00:00 2001
|
||||||
we just check whether does the module exist.
|
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>
|
Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
|
||||||
|
|
||||||
Index: samba-4.4.2/buildtools/wafsamba/samba_bundled.py
|
update to version 4.10.5, and switch to python3
|
||||||
===================================================================
|
Signed-off-by: Changqing Li <changqing.li@windriver.com>
|
||||||
--- samba-4.4.2.orig/buildtools/wafsamba/samba_bundled.py
|
---
|
||||||
+++ samba-4.4.2/buildtools/wafsamba/samba_bundled.py
|
buildtools/wafsamba/samba_bundled.py | 27 +++++++++++++++++++--------
|
||||||
@@ -2,6 +2,7 @@
|
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
|
||||||
|
|
||||||
import sys
|
def PRIVATE_NAME(bld, name, private_extension, private_library):
|
||||||
import Build, Options, Logs
|
'''possibly rename a library to include a bundled extension'''
|
||||||
+import imp, os
|
@@ -249,17 +250,27 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, libname, modulename, minversion='0.0.0'):
|
||||||
from Configure import conf
|
|
||||||
from samba_utils import TO_LIST
|
|
||||||
|
|
||||||
@@ -230,17 +231,32 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, li
|
|
||||||
# versions
|
# versions
|
||||||
minversion = minimum_library_version(conf, libname, minversion)
|
minversion = minimum_library_version(conf, libname, minversion)
|
||||||
|
|
||||||
@@ -25,34 +36,32 @@ Index: samba-4.4.2/buildtools/wafsamba/samba_bundled.py
|
|||||||
- found = False
|
- found = False
|
||||||
- else:
|
- else:
|
||||||
+ # Find module in PYTHONPATH
|
+ # Find module in PYTHONPATH
|
||||||
+ stuff = imp.find_module(modulename, [os.environ["PYTHONPATH"]])
|
+ spec = importlib.util._find_spec_from_path(modulename, [os.environ["PYTHONPATH"]])
|
||||||
+ if stuff:
|
+ if spec:
|
||||||
try:
|
try:
|
||||||
- version = m.__version__
|
- version = m.__version__
|
||||||
- except AttributeError:
|
- 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:
|
+ except ImportError:
|
||||||
found = False
|
found = False
|
||||||
+
|
+
|
||||||
+ if conf.env.CROSS_COMPILE:
|
+ if conf.env.CROSS_COMPILE:
|
||||||
+ # Some modules such as dynamic library maybe cann't be imported
|
+ # Some modules such as dynamic library maybe cann't be imported
|
||||||
+ # while cross compile, we just check whether the module exist
|
+ # 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
|
+ found = True
|
||||||
else:
|
else:
|
||||||
- found = tuplize_version(version) >= tuplize_version(minversion)
|
- found = tuplize_version(version) >= tuplize_version(minversion)
|
||||||
+ try:
|
+ try:
|
||||||
+ version = m.__version__
|
+ version = module.__version__
|
||||||
+ except AttributeError:
|
+ except AttributeError:
|
||||||
+ found = False
|
+ found = False
|
||||||
+ else:
|
+ else:
|
||||||
+ found = tuplize_version(version) >= tuplize_version(minversion)
|
+ 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):
|
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))
|
Logs.error('ERROR: Python module %s of version %s not found, and bundling disabled' % (libname, minversion))
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
--
|
||||||
|
2.7.4
|
||||||
|
|
||||||
|
|||||||
+17
-31
@@ -1,54 +1,40 @@
|
|||||||
From 9a2d6315ff206b2a47100dfd85afe3af56576995 Mon Sep 17 00:00:00 2001
|
From 87bc8e7eafc7d12a1d3a143ebb9e43cf5fbafb72 Mon Sep 17 00:00:00 2001
|
||||||
From: Wenzong Fan <wenzong.fan@windriver.com>
|
From: Changqing Li <changqing.li@windriver.com>
|
||||||
Date: Thu, 10 Dec 2015 04:20:51 -0500
|
Date: Thu, 20 Jun 2019 14:11:16 +0800
|
||||||
Subject: [PATCH] Add config option without-valgrind
|
Subject: [PATCH] Add config option without-valgrind
|
||||||
|
|
||||||
Upstream-Status: Pending
|
Upstream-Status: Pending
|
||||||
|
|
||||||
Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
|
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 +++-
|
lib/replace/wscript | 5 +++--
|
||||||
source3/wscript | 5 ++++-
|
|
||||||
wscript | 4 ++++
|
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
|
diff --git a/lib/replace/wscript b/lib/replace/wscript
|
||||||
index f0040b1..aca73af 100644
|
index a7fd25d..a19ae68 100644
|
||||||
--- a/lib/replace/wscript
|
--- a/lib/replace/wscript
|
||||||
+++ b/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('sys/fileio.h sys/filesys.h sys/dustat.h sys/sysmacros.h')
|
||||||
conf.CHECK_HEADERS('xfs/libxfs.h netgroup.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:
|
+ 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('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('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
|
||||||
conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.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
|
diff --git a/wscript b/wscript
|
||||||
index 542a60c..22e6116 100644
|
index e38a8e9..38b7230 100644
|
||||||
--- a/wscript
|
--- a/wscript
|
||||||
+++ b/wscript
|
+++ b/wscript
|
||||||
@@ -86,6 +86,10 @@ def set_options(opt):
|
@@ -105,6 +105,10 @@ def options(opt):
|
||||||
help=("Disable RELRO builds"),
|
help=("Disable RELRO builds"),
|
||||||
action="store_false", dest='enable_relro')
|
action="store_false", dest='enable_relro')
|
||||||
|
|
||||||
@@ -58,7 +44,7 @@ index 542a60c..22e6116 100644
|
|||||||
+
|
+
|
||||||
gr = opt.option_group('developer options')
|
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
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,28 @@
|
|||||||
Index: samba-4.6.2/ctdb/tests/src/test_mutex_raw.c
|
From 062cf74b498c1d12fd76f9d9bca926ac806e0b99 Mon Sep 17 00:00:00 2001
|
||||||
===================================================================
|
From: Changqing Li <changqing.li@windriver.com>
|
||||||
--- samba-4.6.2.orig/ctdb/tests/src/test_mutex_raw.c
|
Date: Thu, 20 Jun 2019 14:15:18 +0800
|
||||||
+++ samba-4.6.2/ctdb/tests/src/test_mutex_raw.c
|
Subject: [PATCH] glibc only fix
|
||||||
@@ -166,8 +166,10 @@ int main(int argc, const char **argv)
|
|
||||||
if (ret == 0) {
|
Signed-off-by: Changqing Li <changqing.li@windriver.com>
|
||||||
pthread_mutex_unlock(mutex);
|
---
|
||||||
|
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__
|
+#ifdef __GLIBC__
|
||||||
} else if (ret == EBUSY) {
|
} else if (ret == EBUSY) {
|
||||||
printf("pid=%u\n", mutex->__data.__owner);
|
printf("INFO: pid=%u\n", mutex->__data.__owner);
|
||||||
+#endif
|
+#endif
|
||||||
} else if (ret == 0) {
|
} else if (ret == 0) {
|
||||||
pthread_mutex_unlock(mutex);
|
pthread_mutex_unlock(mutex);
|
||||||
}
|
}
|
||||||
|
--
|
||||||
|
2.7.4
|
||||||
|
|
||||||
|
|||||||
+27
-25
@@ -23,26 +23,25 @@ SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \
|
|||||||
file://dnsserver-4.7.0.patch \
|
file://dnsserver-4.7.0.patch \
|
||||||
file://smb_conf-4.7.0.patch \
|
file://smb_conf-4.7.0.patch \
|
||||||
file://volatiles.03_samba \
|
file://volatiles.03_samba \
|
||||||
|
file://0001-waf-add-support-of-cross_compile.patch \
|
||||||
"
|
"
|
||||||
SRC_URI_append_libc-musl = " \
|
SRC_URI_append_libc-musl = " \
|
||||||
file://samba-pam.patch \
|
file://samba-pam.patch \
|
||||||
file://samba-4.3.9-remove-getpwent_r.patch \
|
file://samba-4.3.9-remove-getpwent_r.patch \
|
||||||
file://cmocka-uintptr_t.patch \
|
file://cmocka-uintptr_t.patch \
|
||||||
|
file://0001-samba-fix-musl-lib-without-innetgr.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
SRC_URI[md5sum] = "25de700c8f1148fd13973a49a51c059e"
|
SRC_URI[md5sum] = "7d20c01ae35b08bc850442a0c303bca5"
|
||||||
SRC_URI[sha256sum] = "c162d519101e15d1a1d76df063bfefe8d1656f57fb74e1ef19fe05d341a65d8f"
|
SRC_URI[sha256sum] = "6c10266d5e8c44ce1ea17dc993ace67a83607b4d9a830959c75e3188c6af6375"
|
||||||
|
|
||||||
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
|
inherit systemd waf-samba cpan-base perlnative update-rc.d
|
||||||
# remove default added RDEPENDS on perl
|
# remove default added RDEPENDS on perl
|
||||||
RDEPENDS_${PN}_remove = "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 libbsd libaio libpam libtasn1 jansson"
|
||||||
|
|
||||||
RCONFLICTS_${PN} = "libldb"
|
|
||||||
RCONFLICTS_${PN}-python = "pyldb"
|
|
||||||
|
|
||||||
inherit distro_features_check
|
inherit distro_features_check
|
||||||
REQUIRED_DISTRO_FEATURES = "pam"
|
REQUIRED_DISTRO_FEATURES = "pam"
|
||||||
@@ -64,10 +63,14 @@ SYSTEMD_SERVICE_winbind = "winbind.service"
|
|||||||
# https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller
|
# https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller
|
||||||
SYSTEMD_AUTO_ENABLE_${PN}-ad-dc = "disable"
|
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.
|
# Use krb5. Build active domain controller.
|
||||||
#
|
#
|
||||||
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd zeroconf', d)} \
|
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"
|
RDEPENDS_${PN}-ctdb-tests += "bash util-linux-getopt"
|
||||||
@@ -84,6 +87,8 @@ PACKAGECONFIG[valgrind] = ",--without-valgrind,valgrind,"
|
|||||||
PACKAGECONFIG[lttng] = "--with-lttng, --without-lttng,lttng-ust"
|
PACKAGECONFIG[lttng] = "--with-lttng, --without-lttng,lttng-ust"
|
||||||
PACKAGECONFIG[archive] = "--with-libarchive, --without-libarchive, libarchive"
|
PACKAGECONFIG[archive] = "--with-libarchive, --without-libarchive, libarchive"
|
||||||
PACKAGECONFIG[libunwind] = ", , libunwind"
|
PACKAGECONFIG[libunwind] = ", , libunwind"
|
||||||
|
PACKAGECONFIG[gpgme] = ",--without-gpgme,,"
|
||||||
|
PACKAGECONFIG[lmdb] = ",--without-ldb-lmdb,lmdb,"
|
||||||
|
|
||||||
# Building the AD (Active Directory) DC (Domain Controller) requires GnuTLS,
|
# 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:
|
# And ad-dc doesn't work with mitkrb5 for versions prior to 4.7.0 according to:
|
||||||
@@ -108,17 +113,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
|
# .so files so there will not be a conflict. This is not done consistantly, so be very careful
|
||||||
# when adding to this list.
|
# when adding to this list.
|
||||||
#
|
#
|
||||||
SAMBA4_LIBS="heimdal,cmocka,ldb,pyldb-util,NONE"
|
SAMBA4_LIBS="heimdal,cmocka,NONE"
|
||||||
|
|
||||||
# interim packages: As long as ldb/pyldb-util are in SAMBA4_LIBS we need to pack
|
|
||||||
# bundled libraries in seperate packages. Otherwise they are auto-packed in
|
|
||||||
# package 'samba' which RDEPENDS on lots of packages not wanted e.g autostarting
|
|
||||||
# nmbd/smbd daemons
|
|
||||||
# Once 'ldb,pyldb-util' are removed from SAMBA4_LIBS the bundled packages can
|
|
||||||
# be removed again.
|
|
||||||
PACKAGES =+ "${PN}-bundled-ldb ${PN}-bundled-pyldb-util"
|
|
||||||
FILES_${PN}-bundled-ldb = "${libdir}/samba/libldb${SOLIBS}"
|
|
||||||
FILES_${PN}-bundled-pyldb-util = "${libdir}/samba/libpyldb-util${SOLIBS}"
|
|
||||||
|
|
||||||
EXTRA_OECONF += "--enable-fhs \
|
EXTRA_OECONF += "--enable-fhs \
|
||||||
--with-piddir=/run \
|
--with-piddir=/run \
|
||||||
@@ -179,8 +174,6 @@ do_install_append() {
|
|||||||
install -d ${D}${sysconfdir}/default
|
install -d ${D}${sysconfdir}/default
|
||||||
install -m644 packaging/systemd/samba.sysconfig ${D}${sysconfdir}/default/samba
|
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
|
# the items are from ctdb/tests/run_tests.sh
|
||||||
for d in onnode takeover tool eventscripts cunit simple complex; do
|
for d in onnode takeover tool eventscripts cunit simple complex; do
|
||||||
testdir=${D}${datadir}/ctdb-tests/$d
|
testdir=${D}${datadir}/ctdb-tests/$d
|
||||||
@@ -196,9 +189,17 @@ do_install_append() {
|
|||||||
|
|
||||||
chmod 0750 ${D}${sysconfdir}/sudoers.d
|
chmod 0750 ${D}${sysconfdir}/sudoers.d
|
||||||
rm -rf ${D}/run ${D}${localstatedir}/run ${D}${localstatedir}/log
|
rm -rf ${D}/run ${D}${localstatedir}/run ${D}${localstatedir}/log
|
||||||
|
|
||||||
|
sed -i -e 's,${PYTHON},/usr/bin/env python3/,g' ${D}${sbindir}/samba-gpupdate
|
||||||
|
sed -i -e 's,${PYTHON},/usr/bin/env python3/,g' ${D}${sbindir}/samba_upgradedns
|
||||||
|
sed -i -e 's,${PYTHON},/usr/bin/env python3/,g' ${D}${sbindir}/samba_spnupdate
|
||||||
|
sed -i -e 's,${PYTHON},/usr/bin/env python3/,g' ${D}${sbindir}/samba_kcc
|
||||||
|
sed -i -e 's,${PYTHON},/usr/bin/env python3/,g' ${D}${sbindir}/samba_dnsupdate
|
||||||
|
sed -i -e 's,${PYTHON},/usr/bin/env python3/,g' ${D}${bindir}/samba-tool
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PACKAGES =+ "${PN}-python ${PN}-pidl \
|
PACKAGES =+ "${PN}-python3 ${PN}-pidl \
|
||||||
${PN}-dsdb-modules ${PN}-testsuite registry-tools \
|
${PN}-dsdb-modules ${PN}-testsuite registry-tools \
|
||||||
winbind \
|
winbind \
|
||||||
${PN}-common ${PN}-base ${PN}-ad-dc ${PN}-ctdb-tests \
|
${PN}-common ${PN}-base ${PN}-ad-dc ${PN}-ctdb-tests \
|
||||||
@@ -227,8 +228,8 @@ python samba_populate_packages() {
|
|||||||
PACKAGESPLITFUNCS_prepend = "samba_populate_packages "
|
PACKAGESPLITFUNCS_prepend = "samba_populate_packages "
|
||||||
PACKAGES_DYNAMIC = "samba-auth-.* samba-pdb-.*"
|
PACKAGES_DYNAMIC = "samba-auth-.* samba-pdb-.*"
|
||||||
|
|
||||||
RDEPENDS_${PN} += "${PN}-base ${PN}-python ${PN}-dsdb-modules"
|
RDEPENDS_${PN} += "${PN}-base ${PN}-python3 ${PN}-dsdb-modules python3"
|
||||||
RDEPENDS_${PN}-python += "pytalloc python-tdb"
|
RDEPENDS_${PN}-python3 += "pytalloc python3-tdb"
|
||||||
|
|
||||||
FILES_${PN}-base = "${sbindir}/nmbd \
|
FILES_${PN}-base = "${sbindir}/nmbd \
|
||||||
${sbindir}/smbd \
|
${sbindir}/smbd \
|
||||||
@@ -261,6 +262,7 @@ FILES_${PN} += "${libdir}/vfs/*.so \
|
|||||||
${libdir}/charset/*.so \
|
${libdir}/charset/*.so \
|
||||||
${libdir}/*.dat \
|
${libdir}/*.dat \
|
||||||
${libdir}/auth/*.so \
|
${libdir}/auth/*.so \
|
||||||
|
${datadir}/ctdb/events/* \
|
||||||
"
|
"
|
||||||
|
|
||||||
FILES_${PN}-dsdb-modules = "${libdir}/samba/ldb"
|
FILES_${PN}-dsdb-modules = "${libdir}/samba/ldb"
|
||||||
@@ -286,7 +288,7 @@ FILES_winbind = "${sbindir}/winbindd \
|
|||||||
${sysconfdir}/init.d/winbind \
|
${sysconfdir}/init.d/winbind \
|
||||||
${systemd_system_unitdir}/winbind.service"
|
${systemd_system_unitdir}/winbind.service"
|
||||||
|
|
||||||
FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
|
FILES_${PN}-python3 = "${PYTHON_SITEPACKAGES_DIR}"
|
||||||
|
|
||||||
FILES_smbclient = "${bindir}/cifsdd \
|
FILES_smbclient = "${bindir}/cifsdd \
|
||||||
${bindir}/rpcclient \
|
${bindir}/rpcclient \
|
||||||
Reference in New Issue
Block a user