1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-27 03:21:53 +03:00
samba-mirror/docs-xml/wscript_build
Volker Lendecke 3ca7c640da s3:rpc_server: Add samba-dcerpcd
Central dispatcher for incoming RPC requests, supported by helpers
that implement RPC services.

Upon startup, it asks all helpers which interfaces and endpoints to
listen on so it doesn't interfere with the samba binary when we're
configured as an Active Directory Domain Controller, then samba-dcerpcd
opens the relevant sockets. Once clients connect, start required helpers
and tell them to shut down once idle for a while.

Can be started as a full standalone daemon without smbd involved or as
a helper daemon started on demand by smbd or winbind or other local
processes trying to connect to a named pipe based RPC service.

NB. To start as a standalone daemon the smb.conf [global] option
"rpc start on demand helpers = false" must be set.
By default "rpc start on demand helpers = true"
in order to allow upgrades without needing an smb.conf change.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Samuel Cabrero <scabrero@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
2021-12-10 14:02:30 +00:00

185 lines
6.2 KiB
Python

#!/usr/bin/env python
from samba_utils import save_file
import os
manpages='''
manpages/cifsdd.8
manpages/dbwrap_tool.1
manpages/eventlogadm.8
manpages/idmap_ad.8
manpages/idmap_autorid.8
manpages/idmap_hash.8
manpages/idmap_ldap.8
manpages/idmap_nss.8
manpages/idmap_rfc2307.8
manpages/idmap_rid.8
manpages/idmap_script.8
manpages/idmap_tdb.8
manpages/idmap_tdb2.8
manpages/libsmbclient.7
manpages/lmhosts.5
manpages/log2pcap.1
manpages/mdsearch.1
manpages/mvxattr.1
manpages/net.8
manpages/nmbd.8
manpages/nmblookup.1
manpages/ntlm_auth.1
manpages/pdbedit.8
manpages/profiles.1
manpages/rpcclient.1
manpages/samba-dcerpcd.8
manpages/samba-regedit.8
manpages/samba-tool.8
manpages/samba.7
manpages/samba.8
manpages/samba_downgrade_db.8
manpages/sharesec.1
manpages/smbcacls.1
manpages/smbclient.1
manpages/smbcontrol.1
manpages/smbcquotas.1
manpages/smbd.8
manpages/smbget.1
manpages/smbgetrc.5
manpages/smbpasswd.5
manpages/smbpasswd.8
manpages/smbspool_krb5_wrapper.8
manpages/smbspool.8
manpages/samba-bgqd.8
manpages/smbstatus.1
manpages/smbtar.1
manpages/smbtree.1
manpages/testparm.1
manpages/traffic_learner.7
manpages/traffic_replay.7
manpages/wbinfo.1
manpages/winbindd.8
'''
pam_winbind_manpages = '''
manpages/pam_winbind.8
manpages/pam_winbind.conf.5
'''
krb5_locator_manpages = 'manpages/winbind_krb5_locator.8'
krb5_localauth_manpages = 'manpages/winbind_krb5_localauth.8'
winexe_manpages = 'manpages/winexe.1'
vfs_module_manpages = ['vfs_acl_tdb',
'vfs_acl_xattr',
'vfs_aio_fork',
'vfs_aio_pthread',
'vfs_io_uring',
'vfs_audit',
'vfs_btrfs',
'vfs_cacheprime',
'vfs_cap',
'vfs_catia',
'vfs_ceph',
'vfs_ceph_snapshots',
'vfs_commit',
'vfs_crossrename',
'vfs_default_quota',
'vfs_dirsort',
'vfs_expand_msdfs',
'vfs_extd_audit',
'vfs_fake_perms',
'vfs_fileid',
'vfs_fruit',
'vfs_full_audit',
'vfs_glusterfs',
'vfs_glusterfs_fuse',
'vfs_gpfs',
'vfs_linux_xfs_sgid',
'vfs_media_harmony',
'vfs_nfs4acl_xattr',
'vfs_offline',
'vfs_prealloc',
'vfs_preopen',
'vfs_readahead',
'vfs_readonly',
'vfs_recycle',
'vfs_shadow_copy',
'vfs_shadow_copy2',
'vfs_shell_snap',
'vfs_snapper',
'vfs_streams_depot',
'vfs_streams_xattr',
'vfs_syncops',
'vfs_time_audit',
'vfs_tsmsm',
'vfs_unityed_media',
'vfs_virusfilter',
'vfs_widelinks',
'vfs_worm',
'vfs_xattr_tdb',
'vfs_zfsacl' ]
def smbdotconf_generate_parameter_list(task):
parameter_all = task.outputs[0].bldpath(task.env)
articles = task.inputs
entities = bld.pathconfig_entities()
# We need this if we build with Heimdal as we can't easily make
# the whole option go away
mit_kdc_path = '""'
# The MIT krb5kdc path is set if we build with MIT Kerberos
if bld.CONFIG_SET('MIT_KDC_PATH'):
mit_kdc_path = bld.CONFIG_GET('MIT_KDC_PATH')
t = "<!DOCTYPE section [\n" +\
"\n".join(entities) +\
"\n" +\
"<!ENTITY pathconfig.MITKDCPATH " + mit_kdc_path + ">\n" +\
"]>\n" +\
"<section>\n" +\
"".join(art.read() for art in articles) +\
"</section>\n"
save_file(parameter_all, t , create_dir=True)
return 0
# Since nothing really forces sorting in glob, we have to sort by file name
# POSIX file systems aren't required to return sorted content but we want
# smb.conf parameters to be sorted alphabetically
parameter_all = 'smbdotconf/parameters.all.xml'
sources = bld.path.ant_glob("smbdotconf/**/*.xml", flat=False, excl=parameter_all)
articles = " ".join(sorted([x.path_from(bld.path) for x in sources],
key=lambda m: m.split(os.sep)[-1]))
bld.SAMBA_GENERATOR(parameter_all,
source=articles,
target=parameter_all,
rule=smbdotconf_generate_parameter_list,
dep_vars=bld.dynconfig_varnames())
def SMBDOTCONF_MANPAGE(bld, target):
''' assemble and build smb.conf.5 manual page'''
bld.SAMBAMANPAGES(target, parameter_all)
if ('XSLTPROC_MANPAGES' in bld.env and bld.env['XSLTPROC_MANPAGES']):
SMBDOTCONF_MANPAGE(bld, 'manpages/smb.conf.5')
bld.SAMBAMANPAGES(manpages)
if bld.CONFIG_SET('WITH_PAM_MODULES') and bld.CONFIG_SET('HAVE_PAM_START'):
bld.SAMBAMANPAGES(pam_winbind_manpages)
if bld.CONFIG_SET('HAVE_KRB5_LOCATE_PLUGIN_H'):
bld.SAMBAMANPAGES(krb5_locator_manpages)
if bld.CONFIG_SET('HAVE_KRB5_LOCALAUTH_PLUGIN_H'):
bld.SAMBAMANPAGES(krb5_localauth_manpages)
if conf.env.build_winexe == True:
bld.SAMBAMANPAGES(winexe_manpages)
if bld.CONFIG_SET('ENABLE_SELFTEST'):
bld.SAMBAMANPAGES('manpages/vfstest.1')
for manpage in vfs_module_manpages:
if bld.SAMBA3_IS_ENABLED_MODULE(manpage):
bld.SAMBAMANPAGES('manpages/%s.8' % manpage)