1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00
samba-mirror/lib/util/wscript_build
Volker Lendecke e73ccc06ef Rely on /dev/urandom
This removes quite a bit of code. All reasonable systems have /dev/urandom
these days. Linux, Solaris and the BSDs do.  In case we find a system
without /dev/urandom, we will have to go hunting in other libraries.

The main reason for this is speed: On Ubuntu 14.04 doing direct reads from
/dev/urandom is 2-3 times faster than our md4 based code. On virtualized
FreeBSD 10 the difference is even larger.

My first approach was to use fopen/fread. It was even faster, but less
than twice as fast. So I thought we could save the additional complexity
when having to deal with throwing away buffers when forking and the
additional memory footprint per process.

With this simple generate_random_buffer it will be easier to adapt new
syscalls to get randomness.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>

Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Tue Oct 13 04:25:39 CEST 2015 on sn-devel-104
2015-10-13 04:25:38 +02:00

196 lines
7.2 KiB
Python
Executable File

#!/usr/bin/env python
# Please add any new SAMBA_SUBSYSTEM/SAMBA_LIBRARY to the bottom of the file
# unless they are also required to build standalone ctdb.
bld.SAMBA_LIBRARY('time-basic',
source='time_basic.c',
deps='replace',
private_library=True,
local_include=False)
bld.SAMBA_SUBSYSTEM('tini',
source='tini.c',
deps='',
local_include=False)
bld.SAMBA_SUBSYSTEM('tiniparser',
source='tiniparser.c',
deps='tini',
local_include=False)
bld.SAMBA_SUBSYSTEM('strv',
source='strv.c',
deps='talloc',
local_include=False)
bld.SAMBA_SUBSYSTEM('close-low-fd',
source='close_low_fd.c',
deps='replace',
local_include=False)
samba_debug_add_deps = ''
samba_debug_add_inc = ''
if bld.CONFIG_SET('HAVE_GPFS'):
bld.SAMBA_SUBSYSTEM('gpfswrap',
source='gpfswrap.c',
deps='replace',
local_include=False,
includes=bld.CONFIG_GET('CPPPATH_GPFS'))
samba_debug_add_deps += ' gpfswrap'
samba_debug_add_inc += bld.CONFIG_GET('CPPPATH_GPFS')
bld.SAMBA_LIBRARY('samba-debug',
source='debug.c',
deps='replace time-basic close-low-fd talloc socket-blocking' + samba_debug_add_deps,
public_deps='systemd systemd-journal lttng-ust',
local_include=False,
includes=samba_debug_add_inc,
private_library=True)
bld.SAMBA_LIBRARY('socket-blocking',
source='blocking.c',
local_include=False,
private_library=True)
bld.SAMBA_LIBRARY('talloc_report',
source='talloc_report.c',
local_include=False,
public_deps='talloc',
private_library=True
)
bld.SAMBA_SUBSYSTEM('samba-util-core',
source='''xfile.c data_blob.c util_file.c time.c
signal.c util.c idtree.c fault.c
substitute.c''',
deps='''time-basic samba-debug socket-blocking talloc
tevent execinfo pthread''',
local_include=False)
bld.SAMBA_LIBRARY('tevent-unix-util',
source='tevent_unix.c',
local_include=False,
deps='tevent',
public_headers='tevent_unix.h',
header_path=[ ('*', 'util') ],
pc_files=[],
vnum='0.0.1')
if not bld.env.SAMBA_UTIL_CORE_ONLY:
bld.env.public_headers_skip.append('charset_compat.h')
bld.SAMBA_LIBRARY('genrand',
source='genrand.c',
deps='replace socket-blocking sys_rw',
local_include=False,
private_library=True)
bld.SAMBA_BINARY('genrandperf',
source='tests/genrandperf.c',
deps='genrand replace',
local_include=False,
install=False)
bld.SAMBA_LIBRARY('samba-util',
source='''talloc_stack.c smb_threads.c
rbtree.c rfc1738.c become_daemon.c system.c select.c getpass.c
genrand_util.c fsusage.c
params.c util_id.c util_net.c
util_strlist.c util_paths.c idtree_random.c base64.c
util_str.c util_str_common.c ms_fnmatch.c
server_id.c dprintf.c bitmap.c pidfile.c
tevent_debug.c util_process.c memcache.c''',
deps='samba-util-core DYNCONFIG close-low-fd tini tiniparser genrand',
public_deps='talloc tevent execinfo pthread LIBCRYPTO charset util_setid systemd systemd-daemon',
public_headers='debug.h attr.h byteorder.h data_blob.h memory.h safe_string.h time.h talloc_stack.h xfile.h dlinklist.h samba_util.h string_wrappers.h idtree.h idtree_random.h blocking.h signal.h substitute.h fault.h genrand.h',
header_path= [ ('dlinklist.h samba_util.h', '.'), ('*', 'util') ],
local_include=False,
vnum='0.0.1',
pc_files='samba-util.pc'
)
bld.SAMBA_LIBRARY('samba-modules',
source='modules.c',
deps='errors samba-util',
local_include=False,
private_library=True)
bld.SAMBA_LIBRARY('asn1util',
source='asn1.c',
deps='talloc samba-util',
private_library=True,
local_include=False)
bld.SAMBA_SUBSYSTEM('UNIX_PRIVS',
source='unix_privs.c',
autoproto='unix_privs.h',
deps='replace talloc',
local_include=False,
)
bld.SAMBA_LIBRARY('util_tdb',
source='util_tdb.c',
local_include=False,
public_deps='tdb talloc',
private_library=True
)
bld.SAMBA_LIBRARY('tevent-util',
source='tevent_ntstatus.c tevent_werror.c',
local_include=False,
public_deps='tevent errors tevent-unix-util',
public_headers='tevent_ntstatus.h tevent_werror.h',
header_path=[ ('*', 'util') ],
pc_files=[],
vnum='0.0.1'
)
bld.SAMBA_LIBRARY('util_setid',
source='setid.c',
local_include=False,
private_library=True
)
bld.SAMBA_SUBSYSTEM('util_ldb',
source='util_ldb.c',
local_include=False,
public_deps='ldb',
public_headers='util_ldb.h'
)
bld.SAMBA_SUBSYSTEM('UTIL_RUNCMD',
source='util_runcmd.c',
local_include=False,
public_deps='tevent'
)
bld.SAMBA_SUBSYSTEM('UTIL_PW',
source='util_pw.c',
local_include=False,
public_deps='talloc'
)
bld.SAMBA_LIBRARY('server_id_db',
source='server_id_db.c',
deps='talloc tdb strv util_tdb tdb-wrap samba-util',
local_include=False,
private_library=True)
bld.SAMBA_LIBRARY('iov_buf',
source='iov_buf.c',
local_include=False,
private_library=True)
bld.SAMBA3_LIBRARY('sys_rw',
source='sys_rw.c sys_rw_data.c',
deps='replace iov_buf',
local_include=False,
private_library=True)