s4-dynconfig: override more paths when running from the build directory
authorAndrew Tridgell <tridge@samba.org>
Tue, 23 Nov 2010 11:44:53 +0000 (22:44 +1100)
committerAndrew Tridgell <tridge@samba.org>
Tue, 23 Nov 2010 23:19:15 +0000 (00:19 +0100)
this ensures consistency between binaries and scripts when testing as
a developer

source4/dynconfig/dynconfig.c
source4/dynconfig/dynconfig.h
source4/dynconfig/wscript
source4/param/loadparm.c

index 358874ea38be64b5961d07ec8d01a76d600f294f..ac791411bf40e77257ec6b500a2c2e588be14aa8 100644 (file)
@@ -66,6 +66,7 @@ const char *dyn_##name = name; \
 
 /* these are in common with s3 */
 DEFINE_DYN_CONFIG_PARAM(SBINDIR)
+DEFINE_DYN_CONFIG_PARAM(SCRIPTSBINDIR)
 DEFINE_DYN_CONFIG_PARAM(BINDIR)
 DEFINE_DYN_CONFIG_PARAM(SWATDIR)
 DEFINE_DYN_CONFIG_PARAM(CONFIGFILE) /**< Location of smb.conf file. **/
index 48f8ab628fecec6ed6109358bc0d96ca16989996..48b4f54b21c0f5ef1b9f977fbf3d37dfdf2b936d 100644 (file)
@@ -26,6 +26,7 @@
 
 extern const char *dyn_BINDIR;
 extern const char *dyn_SBINDIR;
+extern const char *dyn_SCRIPTSBINDIR;
 extern const char *dyn_CONFIGFILE;
 extern const char *dyn_NCALRPCDIR;
 extern const char *dyn_LOGFILEBASE;
index d975698ddf48f7693a48899b815847246a678b7c..375d4a14ea2f835cf21cfc28b7a56a4ccf070369 100644 (file)
@@ -17,6 +17,7 @@ dir_options = {
 dyn_cflags = {
     'BINDIR'                         : '${BINDIR}',
     'SBINDIR'                        : '${SBINDIR}',
+    'SCRIPTSBINDIR'                  : '${SBINDIR}',
     'CONFIGDIR'                      : '${SYSCONFDIR}',
     'CONFIGFILE'                     : '${SYSCONFDIR}/smb.conf',
     'LMHOSTSFILE'                    : '${SYSCONFDIR}/lmhosts',
@@ -47,6 +48,7 @@ dyn_cflags = {
 dyn_cflags_fhs = {
     'BINDIR'                         : '${BINDIR}',
     'SBINDIR'                        : '${SBINDIR}',
+    'SCRIPTSBINDIR'                  : '${SBINDIR}',
     'CONFIGDIR'                      : '${SYSCONFDIR}/samba',
     'CONFIGFILE'                     : '${SYSCONFDIR}/samba/smb.conf',
     'LMHOSTSFILE'                    : '${SYSCONFDIR}/samba/lmhosts',
@@ -119,15 +121,18 @@ def configure(conf):
 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',
+                 'SCRIPTSBINDIR' : 'scripting/bin',
+                 'SETUPDIR'      : 'setup' }
     for f in dyn_cflags.keys():
         if list and not f in list:
             continue
-        if not Options.is_install and f == 'MODULESDIR':
-            # we want binaries run from the source dir to use the current
-            # modules, not the installed ones
-            cflags.append('-DMODULESDIR="%s"' % os.path.join(os.getcwd(), 'bin/modules'))
-        else:
-            cflags.append('-D%s="%s"' % (f, bld.env[f]))
+        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
 
index f60e4ebd1aea918ee55d5a7e374806f9ab899018..f6f894d5bc0acebb828ad49e7720eb3e74f1cd21 100644 (file)
@@ -2456,14 +2456,14 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
        lpcfg_do_global_parameter(lp_ctx, "tls certfile", "tls/cert.pem");
        lpcfg_do_global_parameter(lp_ctx, "tls cafile", "tls/ca.pem");
        lpcfg_do_global_parameter_var(lp_ctx, "setup directory", "%s",
-                                  dyn_SETUPDIR);
+                                     dyn_SETUPDIR);
 
        lpcfg_do_global_parameter(lp_ctx, "prefork children:smb", "4");
 
        lpcfg_do_global_parameter(lp_ctx, "ntp signd socket directory", dyn_NTP_SIGND_SOCKET_DIR);
        lpcfg_do_global_parameter(lp_ctx, "rndc command", "/usr/sbin/rndc");
-       lpcfg_do_global_parameter_var(lp_ctx, "dns update command", "%s/samba_dnsupdate", dyn_SBINDIR);
-       lpcfg_do_global_parameter_var(lp_ctx, "spn update command", "%s/samba_spnupdate", dyn_SBINDIR);
+       lpcfg_do_global_parameter_var(lp_ctx, "dns update command", "%s/samba_dnsupdate", dyn_SCRIPTSBINDIR);
+       lpcfg_do_global_parameter_var(lp_ctx, "spn update command", "%s/samba_spnupdate", dyn_SCRIPTSBINDIR);
        lpcfg_do_global_parameter(lp_ctx, "nsupdate command", "/usr/bin/nsupdate -g");
 
        for (i = 0; parm_table[i].label; i++) {