samba_dist.DIST_DIRS('''ctdb:. lib/replace:lib/replace lib/talloc:lib/talloc
lib/tevent:lib/tevent lib/tdb:lib/tdb
- lib/socket_wrapper:lib/socket_wrapper
+ third_party/socket_wrapper:third_party/socket_wrapper
third_party/popt:third_party/popt
lib/util:lib/util lib/tdb_wrap:lib/tdb_wrap
lib/ccan:lib/ccan libcli/util:libcli/util
'ctdb_diagnostics.1',
'ctdbd_wrapper.1',
'onnode.1',
+ 'ctdb-script.options.5',
+ 'ctdb.sysconfig.5',
'ctdbd.conf.5',
'ctdb.7',
'ctdb-statistics.7',
if conf.CHECK_FOR_THIRD_PARTY():
conf.RECURSE('third_party/popt')
+ if conf.env.standalone_ctdb or conf.CONFIG_GET('ENABLE_SELFTEST'):
+ conf.RECURSE('third_party/socket_wrapper')
+ conf.env.SOCKET_WRAPPER_SO_PATH = conf.CONFIG_GET('LIBSOCKET_WRAPPER_SO_PATH')
else:
if not conf.CHECK_POPT():
raise Utils.WafError('popt development packages have not been found\nIf third_party is installed, check that it is in the proper place.')
else:
conf.define('USING_SYSTEM_POPT', 1)
+ conf.env.SOCKET_WRAPPER_SO_PATH = ''
+
+
+ if conf.env.standalone_ctdb or conf.CONFIG_GET('ENABLE_SELFTEST'):
+ if not conf.CHECK_SOCKET_WRAPPER():
+ raise Utils.WafError('socket_wrapper package has not been found.\nIf third_party is installed, check that it is in the proper place.')
+ else:
+ conf.define('USING_SYSTEM_SOCKET_WRAPPER', 1)
+ conf.env.SOCKET_WRAPPER_SO_PATH = conf.CONFIG_GET('LIBSOCKET_WRAPPER_SO_PATH')
conf.RECURSE('lib/util')
conf.RECURSE('lib/talloc')
conf.RECURSE('lib/tevent')
conf.RECURSE('lib/tdb')
- if conf.env.standalone_ctdb or conf.CONFIG_GET('ENABLE_SELFTEST'):
- conf.RECURSE('lib/socket_wrapper')
- conf.env.SOCKET_WRAPPER_SO_PATH = conf.CONFIG_GET('LIBSOCKET_WRAPPER_SO_PATH')
conf.CHECK_HEADERS('sched.h')
conf.CHECK_HEADERS('procinfo.h')
if not conf.CHECK_FUNCS_IN('pmdaDaemon', 'pcp_pmda'):
pmda_support = False
if pmda_support:
+ conf.CHECK_TYPE_IN('__pmID_int', 'pcp/pmapi.h pcp/impl.h')
have_pmda = True
else:
Logs.error("PMDA support not available")
bld.RECURSE('lib/replace')
if bld.CHECK_FOR_THIRD_PARTY():
bld.RECURSE('third_party/popt')
+ if bld.env.standalone_ctdb or bld.CONFIG_GET('SOCKET_WRAPPER'):
+ bld.RECURSE('third_party/socket_wrapper')
bld.RECURSE('lib/tdb_wrap')
bld.RECURSE('lib/util')
bld.RECURSE('lib/talloc')
bld.RECURSE('lib/tevent')
bld.RECURSE('lib/tdb')
- if bld.env.standalone_ctdb or bld.CONFIG_GET('SOCKET_WRAPPER'):
- bld.RECURSE('lib/socket_wrapper')
if bld.env.standalone_ctdb:
# If a combined build is implemented, CTDB will want to
logging.c rb_tree.c tunable.c
pidfile.c run_proc.c
hash_count.c run_event.c
- sock_client.c version.c'''),
+ sock_client.c version.c
+ cmdline.c path.c conf.c
+ '''),
deps='''samba-util sys_rw tevent-util
- replace talloc tevent tdb''')
+ replace talloc tevent tdb popt''')
+
+ bld.SAMBA_SUBSYSTEM('ctdb-logging-conf',
+ source='common/logging_conf.c',
+ deps='ctdb-util talloc')
bld.SAMBA_SUBSYSTEM('ctdb-protocol',
source=bld.SUBDIR('protocol',
deps='replace talloc tdb')
bld.SAMBA_SUBSYSTEM('ctdb-client',
- source=bld.SUBDIR('client', 'ctdb_client.c'),
- includes='include',
- deps='''replace popt talloc tevent tdb
- samba-util tdb-wrap ctdb-util''')
-
- bld.SAMBA_SUBSYSTEM('ctdb-client2',
source=bld.SUBDIR('client',
'''client_connect.c client_call.c
client_message.c client_control.c
client_message_sync.c
client_control_sync.c
client_db.c client_util.c
- client_event.c
+ client_event.c client_tunnel.c
'''),
includes='include',
deps='replace talloc tevent tdb tdb-wrap')
source=bld.SUBDIR('common',
'''sock_daemon.c'''),
deps='''samba-util ctdb-util tevent-util
- replace talloc tevent''')
+ LIBASYNC_REQ replace talloc tevent''')
bld.SAMBA_SUBSYSTEM('ctdb-ipalloc',
source=bld.SUBDIR('server',
includes='include',
deps='ctdb-protocol-util replace talloc tevent')
+ bld.SAMBA_BINARY('ctdb-path',
+ source='common/path_tool.c',
+ cflags='-DCTDB_PATH_TOOL',
+ deps='''ctdb-util samba-util talloc replace popt''',
+ install_path='${CTDB_HELPER_BINDIR}')
+
+ bld.SAMBA_SUBSYSTEM('ctdb-cluster-conf',
+ source='cluster/cluster_conf.c',
+ deps='ctdb-util')
+
+ bld.SAMBA_SUBSYSTEM('ctdb-database-conf',
+ source='database/database_conf.c',
+ deps='ctdb-util')
+
+ bld.SAMBA_SUBSYSTEM('ctdb-event-conf',
+ source='event/event_conf.c',
+ deps='ctdb-util')
+
+ bld.SAMBA_BINARY('ctdb-config',
+ source='common/conf_tool.c',
+ cflags='-DCTDB_CONF_TOOL',
+ deps='''ctdb-logging-conf
+ ctdb-event-conf
+ ctdb-cluster-conf
+ ctdb-database-conf
+ ctdb-util samba-util talloc replace popt''',
+ install_path='${CTDB_HELPER_BINDIR}')
+
bld.SAMBA_BINARY('ctdbd',
source='server/ctdbd.c ' +
bld.SUBDIR('server',
ctdb_statistics.c
ctdb_update_record.c
ctdb_lock.c ctdb_fork.c
- ctdb_tunnel.c'''),
+ ctdb_tunnel.c ctdb_client.c'''),
includes='include',
- deps='''ctdb-client ctdb-common ctdb-system ctdb-protocol
+ deps='''ctdb-common ctdb-system ctdb-protocol
ctdb-tcp ctdb-util replace sys_rw popt
- talloc tevent tdb talloc_report''' +
+ talloc tevent tdb-wrap tdb talloc_report''' +
ib_deps,
install_path='${SBINDIR}',
manpages='ctdbd.1')
bld.SAMBA_BINARY('ctdb',
source='tools/ctdb.c',
- deps='''ctdb-client2 ctdb-protocol ctdb-protocol-util
+ deps='''ctdb-client ctdb-protocol ctdb-protocol-util
ctdb-util ctdb-system samba-util sys_rw popt''',
install_path='${BINDIR}',
manpages='ctdb.1')
bld.SAMBA_BINARY('ctdb_event',
source='tools/ctdb_event.c',
- deps='''ctdb-client2 ctdb-protocol ctdb-protocol-util
+ deps='''ctdb-client ctdb-protocol ctdb-protocol-util
ctdb-util ctdb-system samba-util replace''',
install_path='${CTDB_HELPER_BINDIR}')
bld.SAMBA_BINARY('ctdb_eventd',
source='server/ctdb_eventd.c',
deps='''ctdb-server-util ctdb-protocol ctdb-protocol-util
- ctdb-util samba-util LIBASYNC_REQ replace popt''',
+ ctdb-util samba-util replace popt''',
install_path='${CTDB_HELPER_BINDIR}')
bld.SAMBA_BINARY('ctdb_lock_helper',
bld.SAMBA_BINARY('ctdb_recovery_helper',
source='server/ctdb_recovery_helper.c',
- deps='''ctdb-client2 ctdb-protocol ctdb-util
+ deps='''ctdb-client ctdb-protocol ctdb-util
samba-util sys_rw replace tdb''',
install_path='${CTDB_HELPER_BINDIR}')
bld.SAMBA_BINARY('ctdb_takeover_helper',
source='server/ctdb_takeover_helper.c',
- deps='''ctdb-client2 ctdb-protocol ctdb-util
+ deps='''ctdb-client ctdb-protocol ctdb-util
samba-util sys_rw replace ctdb-ipalloc popt''',
install_path='${CTDB_HELPER_BINDIR}')
bld.SAMBA_BINARY('smnotify',
source=bld.SUBDIR('utils/smnotify',
'smnotify.c gen_smnotify.c gen_xdr.c'),
- deps='ctdb-smnotify-h ctdb-smnotify-c ctdb-smnotify-x popt',
+ deps='ctdb-smnotify-h ctdb-smnotify-c ctdb-smnotify-x popt tirpc',
includes='utils utils/smnotify',
install_path='${CTDB_HELPER_BINDIR}')
bld.SAMBA_BINARY('pmdactdb',
source='utils/pmda/pmda_ctdb.c',
includes='include',
- deps='''ctdb-client2 ctdb-protocol ctdb-util
+ deps='''ctdb-client ctdb-protocol ctdb-util
samba-util pcp_pmda pcp''',
install_path='${CTDB_PMDADIR}')
bld.INSTALL_FILES('${CTDB_PMDADIR}', 'utils/pmda/Install',
'ctdb-crash-cleanup.sh',
'debug-hung-script.sh',
'debug_locks.sh',
- 'gcore_trace.sh',
'nfs-linux-kernel-callout',
'notify.sh',
'statd-callout'
bld.install_dir(bld.env.CTDB_RUNDIR)
bld.install_dir(bld.env.CTDB_VARDIR)
+ for d in ['volatile', 'persistent', 'state']:
+ bld.install_dir(os.path.join(bld.env.CTDB_VARDIR, d))
+
# Unit tests
ctdb_unit_tests = [
'db_hash_test',
'sock_io_test',
'hash_count_test',
'run_event_test',
+ 'cmdline_test',
+ 'conf_test',
]
for target in ctdb_unit_tests:
bld.SAMBA_BINARY(target,
source=src,
- deps='''talloc tevent tdb tevent-util
+ deps='''talloc tevent tdb tevent-util popt
LIBASYNC_REQ samba-util sys_rw''',
install_path='${CTDB_TEST_LIBEXECDIR}')
'update_record',
'update_record_persistent',
'lock_tdb',
- 'dummy_client'
+ 'dummy_client',
+ 'tunnel_test',
+ 'tunnel_cmd',
]
for target in ctdb_tests:
bld.SAMBA_BINARY(target,
source=src,
includes='include',
- deps='''ctdb-client2 ctdb-protocol ctdb-util
+ deps='''ctdb-client ctdb-protocol ctdb-util
samba-util ctdb-tests-common''',
install_path='${CTDB_TEST_LIBEXECDIR}')
bld.SAMBA_BINARY('ibwrapper_test',
source='ib/ibwrapper_test.c',
includes='include',
- deps='replace talloc ctdb-client ctdb-common sys_rw' +
+ deps='replace talloc ctdb-common sys_rw' +
ib_deps,
install_path='${CTDB_TEST_LIBEXECDIR}')
'complex',
'cunit',
'eventd',
- 'events.d',
'eventscripts',
'onnode',
'shellcheck',
bld.symlink_as(os.path.join(bld.env.BINDIR, 'ctdb_run_cluster_tests'),
'ctdb_run_tests')
- test_eventscript_links = [
- 'events.d',
- 'functions',
- 'nfs-checks.d',
- 'nfs-linux-kernel-callout',
- 'statd-callout'
- ]
-
- test_link_dir = os.path.join(bld.env.CTDB_TEST_DATADIR,
- 'eventscripts/etc-ctdb')
- for t in test_eventscript_links:
- bld.symlink_as(os.path.join(test_link_dir, t),
- os.path.join(bld.env.CTDB_ETCDIR, t))
-
- # Tests that use onnode need to overwrite link to in-tree
- # functions file when installed
- bld.symlink_as(os.path.join(bld.env.CTDB_TEST_DATADIR, 'onnode/functions'),
- os.path.join(bld.env.CTDB_ETCDIR, 'functions'))
- bld.symlink_as(os.path.join(bld.env.CTDB_TEST_DATADIR, 'simple/functions'),
- os.path.join(bld.env.CTDB_ETCDIR, 'functions'))
-
- # Need a link to nodes file because $CTDB_BASE is overridden
- bld.symlink_as(os.path.join(bld.env.CTDB_TEST_DATADIR, 'simple/nodes'),
- os.path.join(bld.env.CTDB_ETCDIR, 'nodes'))
-
def testonly(ctx):
cmd = 'tests/run_tests.sh -V tests/var'
def autotest(ctx):
env = samba_utils.LOAD_ENVIRONMENT()
- ld = 'LD_PRELOAD=%s' % env.SOCKET_WRAPPER_SO_PATH
- cmd = '%s tests/run_tests.sh -e -S -C' % ld
+ cmd = 'tests/run_tests.sh -e -S %s -C' % env.SOCKET_WRAPPER_SO_PATH
ret = samba_utils.RUN_COMMAND(cmd)
if ret != 0:
print('autotest exited with exit status %d' % ret)