Sophie

Sophie

distrib > Mandriva > 2009.0 > x86_64 > media > main-testing-src > by-pkgid > d5a5e66bb1a235f33417ffdfae8538be > files > 9

samba-3.2.13-0.1mdv2009.0.src.rpm

diff -Naurp samba-3.2.13/source/configure samba-3.2.13.oden/source/configure
--- samba-3.2.13/source/configure	2009-06-22 23:35:48.000000000 +0200
+++ samba-3.2.13.oden/source/configure	2009-07-12 14:03:13.000000000 +0200
@@ -822,6 +822,7 @@ CC
 smbtorture4_path
 selftest_prefix
 pammodulesdir
+modulesdir
 rootsbindir
 cachedir
 statedir
@@ -1630,7 +1631,7 @@ Optional Packages:
   --with-configdir=DIR    Where to put configuration files ($libdir)
   --with-logfilebase=DIR  Where to put log files ($VARDIR)
   --with-ctdb=DIR         Where to find ctdb sources
-  --with-libdir=DIR       Where to put libdir ($libdir)
+  --with-modulesdir=DIR   Where to put shared modules ($libdir)
   --with-pammodulesdir=DIR
                           Which directory to use for PAM modules
                           ($ac_default_prefix/$libdir/security)
@@ -2394,10 +2395,11 @@ test "${mandir}" || mandir="\${prefix}/m
 logfilebase="\${VARDIR}"
 privatedir="\${prefix}/private"
 test "${libdir}" || libdir="\${prefix}/lib"
-pammodulesdir="\${LIBDIR}/security"
-configdir="\${LIBDIR}"
+modulesdir="${libdir}"
+pammodulesdir="${libdir}/security"
+configdir="${libdir}"
 swatdir="\${prefix}/swat"
-codepagedir="\${LIBDIR}"
+codepagedir="\${MODULESDIR}"
 statedir="\${LOCKDIR}"
 cachedir="\${LOCKDIR}"
 
@@ -2411,10 +2413,11 @@ if test "${with_fhs+set}" = set; then
     mandir="\${prefix}/share/man"
     logfilebase="\${VARDIR}/log/samba"
     privatedir="\${CONFIGDIR}/private"
-    test "${libdir}" || libdir="\${prefix}/lib/samba"
+    test "${libdir}" || libdir="\${prefix}/lib"
+    modulesdir="${libdir}/samba"
     configdir="\${sysconfdir}/samba"
     swatdir="\${DATADIR}/samba/swat"
-    codepagedir="\${LIBDIR}"
+    codepagedir="\${MODULESDIR}"
     statedir="\${VARDIR}/lib/samba"
     cachedir="\${VARDIR}/lib/samba"
 
@@ -2586,20 +2589,20 @@ fi
 
 
 #################################################
-# set lib directory location
+# set shared modules (internal lib) directory location
 
-# Check whether --with-libdir was given.
-if test "${with_libdir+set}" = set; then
-  withval=$with_libdir;  case "$withval" in
+# Check whether --with-modulesdir was given.
+if test "${with_modulesdir+set}" = set; then
+  withval=$with_modulesdir;  case "$withval" in
   yes|no)
   #
   # Just in case anybody does it
   #
-    { $as_echo "$as_me:$LINENO: WARNING: --with-libdir without argument - will use default" >&5
-$as_echo "$as_me: WARNING: --with-libdir without argument - will use default" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: --with-modulesdir without argument - will use default" >&5
+$as_echo "$as_me: WARNING: --with-modulesdir without argument - will use default" >&2;}
   ;;
   * )
-    libdir="$withval"
+    modulesdir="$withval"
     ;;
   esac
 fi
@@ -2660,6 +2663,7 @@ fi
 
 
 
+
 #################################################
 # set prefix for 'make test'
 selftest_prefix="./st"
diff -Naurp samba-3.2.13/source/dynconfig.c samba-3.2.13.oden/source/dynconfig.c
--- samba-3.2.13/source/dynconfig.c	2009-06-22 23:05:38.000000000 +0200
+++ samba-3.2.13.oden/source/dynconfig.c	2009-07-12 13:58:36.000000000 +0200
@@ -40,12 +40,6 @@
  * table?  There's kind of a chicken-and-egg situation there...
  **/
 
-#if 0
-static char const *dyn_SBINDIR = SBINDIR;
-static char const *dyn_BINDIR = BINDIR;
-static char const *dyn_SWATDIR = SWATDIR;
-#endif
-
 #define DEFINE_DYN_CONFIG_PARAM(name) \
 static char *dyn_##name; \
 \
@@ -79,222 +73,13 @@ DEFINE_DYN_CONFIG_PARAM(LOGFILEBASE) /**
 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(PIDDIR)
 DEFINE_DYN_CONFIG_PARAM(SMB_PASSWD_FILE)
 DEFINE_DYN_CONFIG_PARAM(PRIVATE_DIR)
 
-#if 0
-static char *dyn_CONFIGFILE; /**< Location of smb.conf file. **/
-
-const char *get_dyn_CONFIGFILE(void)
-{
-	if (dyn_CONFIGFILE == NULL) {
-		return CONFIGFILE;
-	}
-	return dyn_CONFIGFILE;
-}
-
-const char *set_dyn_CONFIGFILE(const char *newpath)
-{
-	if (dyn_CONFIGFILE) {
-		SAFE_FREE(dyn_CONFIGFILE);
-	}
-	dyn_CONFIGFILE = SMB_STRDUP(newpath);
-	return dyn_CONFIGFILE;
-}
-
-/** Log file directory. **/
-static char *dyn_LOGFILEBASE;
-
-const char *get_dyn_LOGFILEBASE(void)
-{
-	if (dyn_LOGFILEBASE == NULL) {
-		return LOGFILEBASE;
-	}
-	return dyn_LOGFILEBASE;
-}
-
-const char *set_dyn_LOGFILEBASE(const char *newpath)
-{
-	if (dyn_LOGFILEBASE) {
-		SAFE_FREE(dyn_LOGFILEBASE);
-	}
-	dyn_LOGFILEBASE = SMB_STRDUP(newpath);
-	return dyn_LOGFILEBASE;
-}
-
-/** Statically configured LanMan hosts. **/
-static char *dyn_LMHOSTSFILE;
-
-const char *get_dyn_LMHOSTSFILE(void)
-{
-	if (dyn_LMHOSTSFILE == NULL) {
-		return LMHOSTSFILE;
-	}
-	return dyn_LMHOSTSFILE;
-}
-
-const char *set_dyn_LMHOSTSFILE(const char *newpath)
-{
-	if (dyn_LMHOSTSFILE) {
-		SAFE_FREE(dyn_LMHOSTSFILE);
-	}
-	dyn_LMHOSTSFILE = SMB_STRDUP(newpath);
-	return dyn_LMHOSTSFILE;
-}
-
-/**
- * @brief Samba data directory.
- *
- * @sa data_path() to get the path to a file inside the CODEPAGEDIR.
- **/
-static char *dyn_CODEPAGEDIR;
-
-const char *get_dyn_CODEPAGEDIR(void)
-{
-	if (dyn_CODEPAGEDIR == NULL) {
-		return CODEPAGEDIR;
-	}
-	return dyn_CODEPAGEDIR;
-}
-
-const char *set_dyn_CODEPAGEDIR(const char *newpath)
-{
-	if (dyn_CODEPAGEDIR) {
-		SAFE_FREE(dyn_CODEPAGEDIR);
-	}
-	dyn_CODEPAGEDIR = SMB_STRDUP(newpath);
-	return dyn_CODEPAGEDIR;
-}
-
-/**
- * @brief Samba library directory.
- *
- * @sa lib_path() to get the path to a file inside the LIBDIR.
- **/
-static char *dyn_LIBDIR;
-
-const char *get_dyn_LIBDIR(void)
-{
-	if (dyn_LIBDIR == NULL) {
-		return LIBDIR;
-	}
-	return dyn_CODEPAGEDIR;
-}
-
-const char *set_dyn_LIBDIR(const char *newpath)
-{
-	if (dyn_LIBDIR) {
-		SAFE_FREE(dyn_LIBDIR);
-	}
-	dyn_LIBDIR = SMB_STRDUP(newpath);
-	return dyn_LIBDIR;
-}
-
-static char *dyn_SHLIBEXT;
-
-const char *get_dyn_SHLIBEXT(void)
-{
-	if (dyn_SHLIBEXT == NULL) {
-		return SHLIBEXT;
-	}
-	return dyn_SHLIBEXT;
-}
-
-const char *set_dyn_SHLIBEXT(const char *newpath)
-{
-	if (dyn_SHLIBEXT) {
-		SAFE_FREE(dyn_SHLIBEXT);
-	}
-	dyn_SHLIBEXT = SMB_STRDUP(newpath);
-	return dyn_SHLIBEXT;
-}
-
-/**
- * @brief Directory holding lock files.
- *
- * Not writable, but used to set a default in the parameter table.
- **/
-
-static char *dyn_LOCKDIR;
-
-const char *get_dyn_LOCKDIR(void)
-{
-	if (dyn_LOCKDIR == NULL) {
-		return LOCKDIR;
-	}
-	return dyn_LOCKDIR;
-}
-
-const char *set_dyn_LOCKDIR(const char *newpath)
-{
-	if (dyn_LOCKDIR) {
-		SAFE_FREE(dyn_LOCKDIR);
-	}
-	dyn_LOCKDIR = SMB_STRDUP(newpath);
-	return dyn_LOCKDIR;
-}
-
-static char *dyn_PIDDIR;
-
-const char *get_dyn_PIDDIR(void)
-{
-	if (dyn_PIDDIR == NULL) {
-		return PIDDIR;
-	}
-	return dyn_PIDDIR;
-}
-
-const char *set_dyn_PIDDIR(const char *newpath)
-{
-	if (dyn_PIDDIR) {
-		SAFE_FREE(dyn_PIDDIR);
-	}
-	dyn_PIDDIR = SMB_STRDUP(newpath);
-	return dyn_PIDDIR;
-}
-
-static char *dyn_SMB_PASSWD_FILE;
-
-const char *get_dyn_SMB_PASSWD_FILE(void)
-{
-	if (dyn_SMB_PASSWD_FILE == NULL) {
-		return SMB_PASSWD_FILE;
-	}
-	return dyn_SMB_PASSWD_FILE;
-}
-
-const char *set_dyn_SMB_PASSWD_FILE(const char *newpath)
-{
-	if (dyn_SMB_PASSWD_FILE) {
-		SAFE_FREE(dyn_SMB_PASSWD_FILE);
-	}
-	dyn_SMB_PASSWD_FILE = SMB_STRDUP(newpath);
-	return dyn_SMB_PASSWD_FILE;
-}
-
-static char *dyn_PRIVATE_DIR;
-
-const char *get_dyn_PRIVATE_DIR(void)
-{
-	if (dyn_PRIVATE_DIR == NULL) {
-		return PRIVATE_DIR;
-	}
-	return dyn_PRIVATE_DIR;
-}
-
-const char *set_dyn_PRIVATE_DIR(const char *newpath)
-{
-	if (dyn_PRIVATE_DIR) {
-		SAFE_FREE(dyn_PRIVATE_DIR);
-	}
-	dyn_PRIVATE_DIR = SMB_STRDUP(newpath);
-	return dyn_PRIVATE_DIR;
-}
-#endif
-
 /* In non-FHS mode, these should be configurable using 'lock dir =';
    but in FHS mode, they are their own directory.  Implement as wrapper
    functions so that everything can still be kept in dynconfig.c.
diff -Naurp samba-3.2.13/source/include/dynconfig.h samba-3.2.13.oden/source/include/dynconfig.h
--- samba-3.2.13/source/include/dynconfig.h	2009-06-22 23:05:38.000000000 +0200
+++ samba-3.2.13.oden/source/include/dynconfig.h	2009-07-12 13:58:36.000000000 +0200
@@ -23,22 +23,6 @@
  * @brief Exported global configurations.
  **/
 
-#if 0
-const char *get_dyn_SBINDIR(void);
-const char *get_dyn_BINDIR(void);
-const char *get_dyn_SWATDIR(void);
-
-extern char dyn_CONFIGFILE[1024];
-extern char dyn_LOGFILEBASE[1024], dyn_LMHOSTSFILE[1024];
-extern char dyn_LIBDIR[1024];
-extern char dyn_CODEPAGEDIR[1024];
-extern fstring dyn_SHLIBEXT;
-extern char dyn_LOCKDIR[1024];
-extern char dyn_PIDDIR[1024];
-extern char dyn_SMB_PASSWD_FILE[1024];
-extern char dyn_PRIVATE_DIR[1024];
-#endif
-
 const char *get_dyn_SBINDIR(void);
 const char *set_dyn_SBINDIR(const char *newpath);
 bool is_default_dyn_SBINDIR(void);
@@ -71,6 +55,10 @@ const char *get_dyn_LIBDIR(void);
 const char *set_dyn_LIBDIR(const char *newpath);
 bool is_default_dyn_LIBDIR(void);
 
+const char *get_dyn_MODULESDIR(void);
+const char *set_dyn_MODULESDIR(const char *newpath);
+bool is_default_dyn_MODULESDIR(void);
+
 const char *get_dyn_SHLIBEXT(void);
 const char *set_dyn_SHLIBEXT(const char *newpath);
 bool is_default_dyn_SHLIBEXT(void);
diff -Naurp samba-3.2.13/source/lib/module.c samba-3.2.13.oden/source/lib/module.c
--- samba-3.2.13/source/lib/module.c	2009-06-22 23:05:38.000000000 +0200
+++ samba-3.2.13.oden/source/lib/module.c	2009-07-12 13:58:36.000000000 +0200
@@ -118,7 +118,7 @@ NTSTATUS smb_probe_module(const char *su
 
 	full_path = talloc_asprintf(ctx,
 			"%s/%s.%s",
-			lib_path(subsystem),
+			modules_path(subsystem),
 			module,
 			shlib_ext());
 	if (!full_path) {
diff -Naurp samba-3.2.13/source/lib/popt_common.c samba-3.2.13.oden/source/lib/popt_common.c
--- samba-3.2.13/source/lib/popt_common.c	2009-06-22 23:05:38.000000000 +0200
+++ samba-3.2.13.oden/source/lib/popt_common.c	2009-07-12 13:58:36.000000000 +0200
@@ -171,6 +171,12 @@ struct poptOption popt_common_version[] 
 	POPT_TABLEEND
 };
 
+struct poptOption popt_common_debuglevel[] = {
+	{ NULL, 0, POPT_ARG_CALLBACK, (void *)popt_common_callback },
+	{ "debuglevel", 'd', POPT_ARG_STRING, NULL, 'd', "Set debug level", "DEBUGLEVEL" },
+	POPT_TABLEEND
+};
+
 
 /* Handle command line options:
  *		--sbindir
@@ -178,6 +184,7 @@ struct poptOption popt_common_version[] 
  *		--swatdir
  *		--lmhostsfile
  *		--libdir
+ *		--modulesdir
  *		--shlibext
  *		--lockdir
  *		--piddir
@@ -191,6 +198,7 @@ enum dyn_item{
 	DYN_SWATDIR,
 	DYN_LMHOSTSFILE,
 	DYN_LIBDIR,
+	DYN_MODULESDIR,
 	DYN_SHLIBEXT,
 	DYN_LOCKDIR,
 	DYN_PIDDIR,
@@ -236,6 +244,12 @@ static void popt_dynconfig_callback(popt
 		}
 		break;
 
+	case DYN_MODULESDIR:
+		if (arg) {
+			set_dyn_MODULESDIR(arg);
+		}
+		break;
+
 	case DYN_SHLIBEXT:
 		if (arg) {
 			set_dyn_SHLIBEXT(arg);
@@ -283,6 +297,8 @@ const struct poptOption popt_common_dync
 	    "Path to lmhosts file", "LMHOSTSFILE" },
 	{ "libdir", '\0' , POPT_ARG_STRING, NULL, DYN_LIBDIR,
 	    "Path to shared library directory", "LIBDIR" },
+	{ "modulesdir", '\0' , POPT_ARG_STRING, NULL, DYN_MODULESDIR,
+	    "Path to shared modules directory", "MODULESDIR" },
 	{ "shlibext", '\0' , POPT_ARG_STRING, NULL, DYN_SHLIBEXT,
 	    "Shared library extension", "SHLIBEXT" },
 	{ "lockdir", '\0' , POPT_ARG_STRING, NULL, DYN_LOCKDIR,
diff -Naurp samba-3.2.13/source/lib/util.c samba-3.2.13.oden/source/lib/util.c
--- samba-3.2.13/source/lib/util.c	2009-06-22 23:05:38.000000000 +0200
+++ samba-3.2.13.oden/source/lib/util.c	2009-07-12 13:58:36.000000000 +0200
@@ -2607,6 +2607,19 @@ char *lib_path(const char *name)
 }
 
 /**
+ * @brief Returns an absolute path to a file in the Samba modules directory.
+ *
+ * @param name File to find, relative to MODULESDIR.
+ *
+ * @retval Pointer to a string containing the full path.
+ **/
+
+char *modules_path(const char *name)
+{
+	return talloc_asprintf(talloc_tos(), "%s/%s", get_dyn_MODULESDIR(), name);
+}
+
+/**
  * @brief Returns an absolute path to a file in the Samba data directory.
  *
  * @param name File to find, relative to CODEPAGEDIR.
diff -Naurp samba-3.2.13/source/m4/check_path.m4 samba-3.2.13.oden/source/m4/check_path.m4
--- samba-3.2.13/source/m4/check_path.m4	2009-06-22 23:05:38.000000000 +0200
+++ samba-3.2.13.oden/source/m4/check_path.m4	2009-07-12 13:58:36.000000000 +0200
@@ -22,10 +22,11 @@ test "${mandir}" || mandir="\${prefix}/m
 logfilebase="\${VARDIR}"
 privatedir="\${prefix}/private"
 test "${libdir}" || libdir="\${prefix}/lib"
-pammodulesdir="\${LIBDIR}/security"
-configdir="\${LIBDIR}"
+modulesdir="${libdir}"
+pammodulesdir="${libdir}/security"
+configdir="${libdir}"
 swatdir="\${prefix}/swat"
-codepagedir="\${LIBDIR}"
+codepagedir="\${MODULESDIR}"
 statedir="\${LOCKDIR}"
 cachedir="\${LOCKDIR}"
 
@@ -38,10 +39,11 @@ AC_ARG_WITH(fhs,
     mandir="\${prefix}/share/man"
     logfilebase="\${VARDIR}/log/samba"
     privatedir="\${CONFIGDIR}/private"
-    test "${libdir}" || libdir="\${prefix}/lib/samba"
+    test "${libdir}" || libdir="\${prefix}/lib"
+    modulesdir="${libdir}/samba"
     configdir="\${sysconfdir}/samba"
     swatdir="\${DATADIR}/samba/swat"
-    codepagedir="\${LIBDIR}"
+    codepagedir="\${MODULESDIR}"
     statedir="\${VARDIR}/lib/samba"
     cachedir="\${VARDIR}/lib/samba"
     AC_DEFINE(FHS_COMPATIBLE, 1, [Whether to use fully FHS-compatible paths])
@@ -175,18 +177,18 @@ AC_ARG_WITH(ctdb,
   esac])
 
 #################################################
-# set lib directory location
-AC_ARG_WITH(libdir,
-[AS_HELP_STRING([--with-libdir=DIR], [Where to put libdir ($libdir)])],
+# set shared modules (internal lib) directory location
+AC_ARG_WITH(modulesdir,
+[AS_HELP_STRING([--with-modulesdir=DIR], [Where to put shared modules ($libdir)])],
 [ case "$withval" in
   yes|no)
   #
   # Just in case anybody does it
   #
-    AC_MSG_WARN([--with-libdir without argument - will use default])
+    AC_MSG_WARN([--with-modulesdir without argument - will use default])
   ;;
   * )
-    libdir="$withval"
+    modulesdir="$withval"
     ;;
   esac])
 
@@ -236,6 +238,7 @@ AC_SUBST(statedir)
 AC_SUBST(cachedir)
 AC_SUBST(rootsbindir)
 AC_SUBST(pammodulesdir)
+AC_SUBST(modulesdir)
 
 #################################################
 # set prefix for 'make test'
diff -Naurp samba-3.2.13/source/Makefile.in samba-3.2.13.oden/source/Makefile.in
--- samba-3.2.13/source/Makefile.in	2009-06-22 23:05:38.000000000 +0200
+++ samba-3.2.13.oden/source/Makefile.in	2009-07-12 13:58:36.000000000 +0200
@@ -99,16 +99,18 @@ BINDIR = @bindir@
 SBINDIR = @sbindir@
 ROOTSBINDIR = @rootsbindir@
 LIBDIR = @libdir@
+MODULESDIR = @modulesdir@
 INCLUDEDIR=@includedir@
 PAMMODULESDIR = @pammodulesdir@
-VFSLIBDIR = $(LIBDIR)/vfs
-PDBLIBDIR = $(LIBDIR)/pdb
-RPCLIBDIR = $(LIBDIR)/rpc
-IDMAPLIBDIR = $(LIBDIR)/idmap
-NSSINFOLIBDIR = $(LIBDIR)/nss_info
-CHARSETLIBDIR = $(LIBDIR)/charset
-AUTHLIBDIR = $(LIBDIR)/auth
-CONFIGLIBDIR = $(LIBDIR)/config
+VFSLIBDIR = $(MODULESDIR)/vfs
+PDBLIBDIR = $(MODULESDIR)/pdb
+RPCLIBDIR = $(MODULESDIR)/rpc
+IDMAPLIBDIR = $(MODULESDIR)/idmap
+NSSINFOLIBDIR = $(MODULESDIR)/nss_info
+CHARSETLIBDIR = $(MODULESDIR)/charset
+AUTHLIBDIR = $(MODULESDIR)/auth
+CONFIGLIBDIR = $(MODULESDIR)/config
+GPEXTLIBDIR = $(MODULESDIR)/gpext
 CONFIGDIR = @configdir@
 VARDIR = @localstatedir@
 MANDIR = @mandir@
@@ -165,6 +167,7 @@ PATH_FLAGS = -DSMB_PASSWD_FILE=\"$(SMB_P
 	-DLOCKDIR=\"$(LOCKDIR)\" \
 	-DPIDDIR=\"$(PIDDIR)\" \
 	-DLIBDIR=\"$(LIBDIR)\" \
+	-DMODULESDIR=\"$(MODULESDIR)\" \
 	-DLOGFILEBASE=\"$(LOGFILEBASE)\" \
 	-DSHLIBEXT=\"@SHLIBEXT@\" \
 	-DCTDBDIR=\"$(CTDBDIR)\" \
@@ -2506,6 +2509,7 @@ showlayout::
 	@echo "  bindir:      $(BINDIR)"
 	@echo "  sbindir:     $(SBINDIR)"
 	@echo "  libdir:      $(LIBDIR)"
+	@echo "  modulesdir:  $(MODULESDIR)"
 	@echo "  vardir:      $(VARDIR)"
 	@echo "  mandir:      $(MANDIR)"
 	@echo "  privatedir:  $(PRIVATE_DIR)"
diff -Naurp samba-3.2.13/source/services/services_db.c samba-3.2.13.oden/source/services/services_db.c
--- samba-3.2.13/source/services/services_db.c	2009-06-22 23:05:38.000000000 +0200
+++ samba-3.2.13.oden/source/services/services_db.c	2009-07-12 13:58:36.000000000 +0200
@@ -199,7 +199,7 @@ static bool read_init_file( const char *
 
 	/* attempt the file open */
 
-	filepath = talloc_asprintf(info, "%s/%s/%s", get_dyn_LIBDIR(),
+	filepath = talloc_asprintf(info, "%s/%s/%s", get_dyn_MODULESDIR(),
 				SVCCTL_SCRIPT_DIR, servicename);
 	if (!filepath) {
 		TALLOC_FREE(info);
@@ -277,7 +277,7 @@ static void fill_service_values( const c
 		if ( strequal( name, builtin_svcs[i].servicename ) ) {
 			char *pstr = NULL;
 			if (asprintf(&pstr, "%s/%s/%s",
-					get_dyn_LIBDIR(), SVCCTL_SCRIPT_DIR,
+					get_dyn_MODULESDIR(), SVCCTL_SCRIPT_DIR,
 					builtin_svcs[i].daemon) > 0) {
 				init_unistr2( &ipath, pstr, UNI_STR_TERMINATE );
 				SAFE_FREE(pstr);
@@ -297,7 +297,7 @@ static void fill_service_values( const c
 		char *dispname = NULL;
 		struct rcinit_file_information *init_info = NULL;
 
-		if (asprintf(&pstr, "%s/%s/%s",get_dyn_LIBDIR(),
+		if (asprintf(&pstr, "%s/%s/%s",get_dyn_MODULESDIR(),
 					SVCCTL_SCRIPT_DIR, name) > 0) {
 			init_unistr2( &ipath, pstr, UNI_STR_TERMINATE );
 			SAFE_FREE(pstr);
diff -Naurp samba-3.2.13/source/services/svc_rcinit.c samba-3.2.13.oden/source/services/svc_rcinit.c
--- samba-3.2.13/source/services/svc_rcinit.c	2009-06-22 23:05:38.000000000 +0200
+++ samba-3.2.13.oden/source/services/svc_rcinit.c	2009-07-12 13:58:36.000000000 +0200
@@ -28,7 +28,7 @@ static WERROR rcinit_stop( const char *s
 	int ret, fd;
 
 	if (asprintf(&command, "%s/%s/%s stop",
-				get_dyn_LIBDIR(), SVCCTL_SCRIPT_DIR, service) < 0) {
+				get_dyn_MODULESDIR(), SVCCTL_SCRIPT_DIR, service) < 0) {
 		return WERR_NOMEM;
 	}
 
@@ -60,7 +60,7 @@ static WERROR rcinit_start( const char *
 	int ret, fd;
 
 	if (asprintf(&command, "%s/%s/%s start",
-				get_dyn_LIBDIR(), SVCCTL_SCRIPT_DIR, service) < 0) {
+				get_dyn_MODULESDIR(), SVCCTL_SCRIPT_DIR, service) < 0) {
 		return WERR_NOMEM;
 	}
 
@@ -87,7 +87,7 @@ static WERROR rcinit_status( const char 
 	int ret, fd;
 
 	if (asprintf(&command, "%s/%s/%s status",
-				get_dyn_LIBDIR(), SVCCTL_SCRIPT_DIR, service) < 0) {
+				get_dyn_MODULESDIR(), SVCCTL_SCRIPT_DIR, service) < 0) {
 		return WERR_NOMEM;
 	}