diff options
Diffstat (limited to 'source4/dynconfig')
-rw-r--r-- | source4/dynconfig/dynconfig.c | 111 | ||||
-rw-r--r-- | source4/dynconfig/dynconfig.h | 62 | ||||
-rwxr-xr-x | source4/dynconfig/wscript | 153 |
3 files changed, 0 insertions, 326 deletions
diff --git a/source4/dynconfig/dynconfig.c b/source4/dynconfig/dynconfig.c deleted file mode 100644 index 65e57e0fc17..00000000000 --- a/source4/dynconfig/dynconfig.c +++ /dev/null @@ -1,111 +0,0 @@ -/* - Unix SMB/CIFS implementation. - Copyright (C) 2001 by Martin Pool <mbp@samba.org> - Copyright (C) Jim McDonough (jmcd@us.ibm.com) 2003. - Copyright (C) Stefan Metzmacher 2003 - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#include "includes.h" - -/** - * @file dynconfig.c - * - * @brief Global configurations, initialized to configured defaults. - * - * This file should be the only file that depends on path - * configuration (--prefix, etc), so that if ./configure is re-run, - * all programs will be appropriately updated. Everything else in - * Samba should import extern variables from here, rather than relying - * on preprocessor macros. - * - * Eventually some of these may become even more variable, so that - * they can for example consistently be set across the whole of Samba - * by command-line parameters, config file entries, or environment - * variables. - * - * @todo Perhaps eventually these should be merged into the parameter - * table? There's kind of a chicken-and-egg situation there... - **/ - -#include "dynconfig.h" - -#define DEFINE_DYN_CONFIG_PARAM(name) \ -const char *dyn_##name = name; \ -\ -bool is_default_dyn_##name(void) \ -{\ - if (strcmp(name, dyn_##name) == 0) { \ - return true; \ - } \ - return false; \ -}\ -\ -const char *get_dyn_##name(void) \ -{\ - return dyn_##name;\ -}\ -\ -const char *set_dyn_##name(const char *newpath) \ -{\ - if (newpath == NULL) { \ - return NULL; \ - } \ - if (strcmp(name, newpath) == 0) { \ - return dyn_##name; \ - } \ - newpath = strdup(newpath);\ - if (newpath == NULL) { \ - return NULL; \ - } \ - if (is_default_dyn_##name()) { \ - /* do not free a static string */ \ - } else if (dyn_##name) {\ - free(discard_const(dyn_##name)); \ - }\ - dyn_##name = newpath; \ - return dyn_##name;\ -} - -/* these are in common with s3 */ -DEFINE_DYN_CONFIG_PARAM(SBINDIR) -DEFINE_DYN_CONFIG_PARAM(BINDIR) -DEFINE_DYN_CONFIG_PARAM(SWATDIR) -DEFINE_DYN_CONFIG_PARAM(CONFIGFILE) /**< Location of smb.conf file. **/ -DEFINE_DYN_CONFIG_PARAM(LOGFILEBASE) /** Log file directory. **/ -DEFINE_DYN_CONFIG_PARAM(LMHOSTSFILE) /** Statically configured LanMan hosts. **/ -DEFINE_DYN_CONFIG_PARAM(CODEPAGEDIR) -DEFINE_DYN_CONFIG_PARAM(LIBDIR) -DEFINE_DYN_CONFIG_PARAM(MODULESDIR) -DEFINE_DYN_CONFIG_PARAM(SHLIBEXT) -DEFINE_DYN_CONFIG_PARAM(LOCKDIR) -DEFINE_DYN_CONFIG_PARAM(STATEDIR) /** Persistent state files. Default LOCKDIR */ -DEFINE_DYN_CONFIG_PARAM(CACHEDIR) /** Temporary cache files. Default LOCKDIR */ -DEFINE_DYN_CONFIG_PARAM(PIDDIR) -DEFINE_DYN_CONFIG_PARAM(NCALRPCDIR) -DEFINE_DYN_CONFIG_PARAM(SMB_PASSWD_FILE) -DEFINE_DYN_CONFIG_PARAM(PRIVATE_DIR) -DEFINE_DYN_CONFIG_PARAM(LOCALEDIR) -DEFINE_DYN_CONFIG_PARAM(NMBDSOCKETDIR) - -/* these are not in s3 */ -DEFINE_DYN_CONFIG_PARAM(DATADIR) -DEFINE_DYN_CONFIG_PARAM(SETUPDIR) -DEFINE_DYN_CONFIG_PARAM(WINBINDD_SOCKET_DIR) -DEFINE_DYN_CONFIG_PARAM(WINBINDD_PRIVILEGED_SOCKET_DIR) -DEFINE_DYN_CONFIG_PARAM(NTP_SIGND_SOCKET_DIR) -DEFINE_DYN_CONFIG_PARAM(PYTHONDIR) -DEFINE_DYN_CONFIG_PARAM(PYTHONARCHDIR) -DEFINE_DYN_CONFIG_PARAM(SCRIPTSBINDIR) diff --git a/source4/dynconfig/dynconfig.h b/source4/dynconfig/dynconfig.h deleted file mode 100644 index ee710f3de92..00000000000 --- a/source4/dynconfig/dynconfig.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - Unix SMB/CIFS implementation. - Copyright (C) 2001 by Martin Pool <mbp@samba.org> - Copyright (C) Jim McDonough (jmcd@us.ibm.com) 2003. - - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -/** - * @file dynconfig.h - * - * @brief Exported global configurations. - **/ - -#define DEFINE_DYN_CONFIG_PROTO(name) \ -extern const char *dyn_##name; \ -const char *get_dyn_##name(void); \ -const char *set_dyn_##name(const char *newpath); \ -bool is_default_dyn_##name(void); - -/* these are in common with s3 */ -DEFINE_DYN_CONFIG_PROTO(SBINDIR) -DEFINE_DYN_CONFIG_PROTO(BINDIR) -DEFINE_DYN_CONFIG_PROTO(SWATDIR) -DEFINE_DYN_CONFIG_PROTO(CONFIGFILE) /**< Location of smb.conf file. **/ -DEFINE_DYN_CONFIG_PROTO(LOGFILEBASE) /** Log file directory. **/ -DEFINE_DYN_CONFIG_PROTO(LMHOSTSFILE) /** Statically configured LanMan hosts. **/ -DEFINE_DYN_CONFIG_PROTO(CODEPAGEDIR) -DEFINE_DYN_CONFIG_PROTO(LIBDIR) -DEFINE_DYN_CONFIG_PROTO(MODULESDIR) -DEFINE_DYN_CONFIG_PROTO(SHLIBEXT) -DEFINE_DYN_CONFIG_PROTO(LOCKDIR) -DEFINE_DYN_CONFIG_PROTO(STATEDIR) /** Persistent state files. Default LOCKDIR */ -DEFINE_DYN_CONFIG_PROTO(CACHEDIR) /** Temporary cache files. Default LOCKDIR */ -DEFINE_DYN_CONFIG_PROTO(PIDDIR) -DEFINE_DYN_CONFIG_PROTO(NCALRPCDIR) -DEFINE_DYN_CONFIG_PROTO(SMB_PASSWD_FILE) -DEFINE_DYN_CONFIG_PROTO(PRIVATE_DIR) -DEFINE_DYN_CONFIG_PROTO(LOCALEDIR) -DEFINE_DYN_CONFIG_PROTO(NMBDSOCKETDIR) - -/* these are not in s3 */ -DEFINE_DYN_CONFIG_PROTO(DATADIR) -DEFINE_DYN_CONFIG_PROTO(SETUPDIR) -DEFINE_DYN_CONFIG_PROTO(WINBINDD_SOCKET_DIR) -DEFINE_DYN_CONFIG_PROTO(WINBINDD_PRIVILEGED_SOCKET_DIR) -DEFINE_DYN_CONFIG_PROTO(NTP_SIGND_SOCKET_DIR) -DEFINE_DYN_CONFIG_PROTO(PYTHONDIR) -DEFINE_DYN_CONFIG_PROTO(PYTHONARCHDIR) -DEFINE_DYN_CONFIG_PROTO(SCRIPTSBINDIR) diff --git a/source4/dynconfig/wscript b/source4/dynconfig/wscript deleted file mode 100755 index f815e81a2d3..00000000000 --- a/source4/dynconfig/wscript +++ /dev/null @@ -1,153 +0,0 @@ -#!/usr/bin/env python - -import string, Utils, Options, sys, Build, os, intltool -from samba_utils import EXPAND_VARIABLES, os_path_relpath - -# list of directory options to offer in configure -dir_options = { - 'with-piddir' : [ '${PREFIX}/var/run', 'where to put pid files' ], - 'with-privatedir' : [ '${PREFIX}/private', 'Where to put sam.ldb and other private files' ], - 'with-winbindd-socket-dir' : [ '${PREFIX}/var/lib/winbindd', 'winbind socket directory' ], - 'with-winbindd-privileged-socket-dir' : [ '${PREFIX}/var/lib/winbindd_privileged', 'winbind privileged socket directory'], - 'with-ntp-signd-socket-dir' : [ '${PREFIX}/var/run/ntp_signd', 'NTP signed directory'], - 'with-lockdir' : [ '${PREFIX}/var/locks', 'where to put lock files' ] - } - -# list of cflags to use for dynconfig.c -dyn_cflags = { - 'BINDIR' : '${BINDIR}', - 'SBINDIR' : '${SBINDIR}', - 'SCRIPTSBINDIR' : '${SBINDIR}', - 'CONFIGDIR' : '${SYSCONFDIR}', - 'CONFIGFILE' : '${SYSCONFDIR}/smb.conf', - 'LMHOSTSFILE' : '${SYSCONFDIR}/lmhosts', - 'PRIVATE_DIR' : '${PRIVATEDIR}', - 'LOGFILEBASE' : '${LOCALSTATEDIR}', - 'LOCKDIR' : '${LOCALSTATEDIR}/locks', - 'PIDDIR' : '${LOCALSTATEDIR}/run', - 'DATADIR' : '${DATADIR}', - 'LOCALEDIR' : '${LOCALEDIR}', - 'SETUPDIR' : '${DATADIR}/setup', - 'WINBINDD_SOCKET_DIR' : '${WINBINDD_SOCKET_DIR}', - 'WINBINDD_PRIVILEGED_SOCKET_DIR' : '${WINBINDD_PRIVILEGED_SOCKET_DIR}', - 'NTP_SIGND_SOCKET_DIR' : '${NTP_SIGND_SOCKET_DIR}', - 'NCALRPCDIR' : '${LOCALSTATEDIR}/ncalrpc', - 'PYTHONDIR' : '${PYTHONDIR}', - 'PYTHONARCHDIR' : '${PYTHONARCHDIR}', - 'MODULESDIR' : '${PREFIX}/modules', - 'INCLUDEDIR' : '${PREFIX}/include', - 'PKGCONFIGDIR' : '${LIBDIR}/pkgconfig', - 'SWATDIR' : '${DATADIR}/swat', - 'CODEPAGEDIR' : '${LIBDIR}/samba', - 'LIBDIR' : '${LIBDIR}', - 'LIBEXECDIR' : '${MODULESDIR}', - 'STATEDIR' : '${LOCALSTATEDIR}', - 'CACHEDIR' : '${LOCKDIR}', - 'SMB_PASSWD_FILE' : '${PRIVATEDIR}/smbpasswd', - 'NMBDSOCKETDIR' : '${LOCALSTATEDIR}/nmbd', - } - -# changes for when FHS is enabled -dyn_cflags_fhs = { - 'BINDIR' : '${BINDIR}', - 'SBINDIR' : '${SBINDIR}', - 'SCRIPTSBINDIR' : '${SBINDIR}', - 'CONFIGDIR' : '${SYSCONFDIR}/samba', - 'CONFIGFILE' : '${SYSCONFDIR}/samba/smb.conf', - 'LMHOSTSFILE' : '${SYSCONFDIR}/samba/lmhosts', - 'PRIVATE_DIR' : '${LOCALSTATEDIR}/lib/samba/private', - 'LOGFILEBASE' : '${LOCALSTATEDIR}/log/samba', - 'LOCKDIR' : '${LOCALSTATEDIR}/lib/samba', - 'PIDDIR' : '${LOCALSTATEDIR}/run/samba', - 'SETUPDIR' : '${DATADIR}/samba/setup', - 'WINBINDD_SOCKET_DIR' : '${LOCALSTATEDIR}/run/samba/winbindd', - 'WINBINDD_PRIVILEGED_SOCKET_DIR' : '${LOCALSTATEDIR}/run/samba/winbindd_privileged', - 'NTP_SIGND_SOCKET_DIR' : '${LOCALSTATEDIR}/run/samba/ntp_signd', - 'NCALRPCDIR' : '${LOCALSTATEDIR}/run/samba/ncalrpc', - 'PYTHONARCHDIR' : '${PYTHONARCHDIR}', - 'MODULESDIR' : '${LIBDIR}/samba', - 'LIBEXECDIR' : '${MODULESDIR}', - 'INCLUDEDIR' : '${INCLUDEDIR}/samba-4.0', - 'PKGCONFIGDIR' : '${LIBDIR}/pkgconfig', - 'SWATDIR' : '${DATADIR}/swat', - 'CODEPAGEDIR' : '${DATADIR}/samba', - 'NMBDSOCKETDIR' : '${LOCALSTATEDIR}/run/samba/nmbd', - } - -def get_varname(v): - '''work out a variable name from a configure option name''' - if v.startswith('with-'): - v = v[5:] - v = v.upper() - v = v.replace('-', '_') - return v - - -def set_options(opt): - # get all the basic GNU options from the gnu_dirs tool - opt.add_option('--enable-fhs', - help=("Use FHS-compliant paths (default no)"), - action="store_true", dest='ENABLE_FHS', default=False) - for option in dir_options.keys(): - default = dir_options[option][0] - help = dir_options[option][1] - varname = get_varname(option) - opt.add_option('--%s' % option, - help=(help + ' [%s]' % default), - action="store", dest=varname, default=default) - -def configure(conf): - # get all the basic GNU options from the gnu_dirs tool - for option in dir_options.keys(): - varname = get_varname(option) - value = getattr(Options.options, varname, None) - conf.ASSERT(value is not None, "Missing configure option %s" % varname) - conf.ASSERT(varname not in conf.env, "Variable %s already defined" % varname) - conf.env[varname] = value - - for f in dyn_cflags.keys(): - v = EXPAND_VARIABLES(conf, dyn_cflags[f]) - conf.ASSERT(v != '', "Empty dynconfig value for %s" % f) - conf.env[f] = v - - if Options.options.ENABLE_FHS: - for f in dyn_cflags_fhs.keys(): - v = EXPAND_VARIABLES(conf, dyn_cflags_fhs[f]) - conf.ASSERT(v != '', "Empty dynconfig value for %s" % f) - conf.env[f] = v - - if (not Options.options.ENABLE_FHS and - (conf.env.PREFIX == '/usr' or conf.env.PREFIX == '/usr/local')): - print("ERROR: Don't install directly under /usr or /usr/local without using the FHS option (--enable-fhs)") - sys.exit(1) - - -def dynconfig_cflags(bld, list=None): - '''work out the extra CFLAGS for dynconfig.c''' - cflags = [] - # override some paths when running from the build directory - override = { 'MODULESDIR' : 'bin/modules', - 'PYTHONDIR' : 'bin/python', - 'PYTHONARCHDIR' : 'bin/python', - 'CODEPAGEDIR' : os.path.join(bld.env.srcdir, 'codepages'), - 'SCRIPTSBINDIR' : os.path.join(bld.env.srcdir, 'source4/scripting/bin'), - 'SETUPDIR' : os.path.join(bld.env.srcdir, 'source4/setup') } - for f in dyn_cflags.keys(): - if list and not f in list: - continue - value = bld.env[f] - if not Options.is_install: - if f in override: - value = os.path.join(os.getcwd(), override[f]) - cflags.append('-D%s="%s"' % (f, value)) - return cflags -Build.BuildContext.dynconfig_cflags = dynconfig_cflags - -def build(bld): - cflags = bld.dynconfig_cflags() - bld.SAMBA_SUBSYSTEM('DYNCONFIG', - 'dynconfig.c', - deps='replace talloc', - public_headers=os_path_relpath(os.path.join(Options.launch_dir, 'version.h'), bld.curdir), - header_path='samba', - cflags=cflags) |