Hello this is just to say that I get to merge both patches. Find them 
attached.

  I'm sorry but I hadn't much time to test it thouroughfully, so all I did was 
building the samba packages cleanly and checking basically samba was working 
properly.

  If you find any problem with the patch, just me know or comment the bug 
report, I'm subscribed to it.

  I think now it's a good time to report it upstream. A good rationale is 
required here. Even I could try, I'm afraid my lack of experience here won't 
let this be successful. So if anyone more skilled is feeling like it's his 
good day could try.

  The main problem I see for the patch to be successful is that it should be 
advisable to prevent somehow two instances of samba work on the same set of 
temporary files, but maybe this is a problem you already have with upstream 
samba as is. I would like some comments here.


  Thanks.

-- 
Raúl Sánchez Siles
Barracuda Systems S.L.
C/ Luxemburgo, 4 - Local
Pozuelo de Alarcón
28224 Madrid
Tlf.: +34 91 351 11 20
Fax: +34 91 352 54 44
Index: samba-3.0.24/source/Makefile.in
===================================================================
--- samba-3.0.24.orig/source/Makefile.in	2007-02-04 19:59:28.000000000 +0100
+++ samba-3.0.24/source/Makefile.in	2007-03-06 16:42:22.000000000 +0100
@@ -100,6 +100,13 @@
 # the directory where lock files go
 LOCKDIR = @lockdir@
 
+# FHS directories; equal to LOCKDIR if not using --with-fhs
+CACHEDIR = @cachedir@
+STATEDIR = @statedir@
+
+# Where to look for (and install) codepage databases.
+CODEPAGEDIR = @codepagedir@
+
 # the directory where pid files go
 PIDDIR = @piddir@
 
@@ -129,7 +136,7 @@
 PATH_FLAGS4 = $(PATH_FLAGS3) -DSWATDIR=\"$(SWATDIR)\"  -DLOCKDIR=\"$(LOCKDIR)\" -DPIDDIR=\"$(PIDDIR)\"
 PATH_FLAGS5 = $(PATH_FLAGS4) -DLIBDIR=\"$(LIBDIR)\" \
 	      -DLOGFILEBASE=\"$(LOGFILEBASE)\" -DSHLIBEXT=\"@[EMAIL PROTECTED]"
-PATH_FLAGS6 = $(PATH_FLAGS5) -DCONFIGDIR=\"$(CONFIGDIR)\"
+PATH_FLAGS6 = $(PATH_FLAGS5) -DCONFIGDIR=\"$(CONFIGDIR)\" -DCODEPAGEDIR=\"$(CODEPAGEDIR)\" -DCACHEDIR=\"$(CACHEDIR)\" -DSTATEDIR=\"$(STATEDIR)\"
 PATH_FLAGS = $(PATH_FLAGS6) $(PASSWD_FLAGS)
 
 # Note that all executable programs now provide for an optional executable suffix.
@@ -1437,7 +1444,7 @@
 # is not used
 
 installdirs:
-	@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS) $(DESTDIR) $(prefix) $(BINDIR) $(SBINDIR) $(LIBDIR) $(VARDIR) $(PRIVATEDIR) $(PIDDIR) $(LOCKDIR) $(MANDIR)
+	@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS) $(DESTDIR) $(prefix) $(BINDIR) $(SBINDIR) $(LIBDIR) $(VARDIR) $(PRIVATEDIR) $(PIDDIR) $(LOCKDIR) $(MANDIR) $(CACHEDIR) $(STATEDIR)
 
 installservers: all installdirs
 	@$(SHELL) script/installbin.sh $(INSTALLPERMS) $(DESTDIR) $(prefix) $(SBINDIR) $(SBIN_PROGS)
@@ -1468,10 +1475,10 @@
 	@$(SHELL) $(srcdir)/script/installscripts.sh $(INSTALLPERMS) $(DESTDIR)$(BINDIR) $(SCRIPTS)
 
 installdat: installdirs
-	@$(SHELL) $(srcdir)/script/installdat.sh $(DESTDIR) $(LIBDIR) $(srcdir)
+	@$(SHELL) $(srcdir)/script/installdat.sh $(DESTDIR) $(CODEPAGEDIR) $(srcdir)
 
 installmsg: installdirs
-	@$(SHELL) $(srcdir)/script/installmsg.sh $(DESTDIR) $(LIBDIR) $(srcdir)
+	@$(SHELL) $(srcdir)/script/installmsg.sh $(DESTDIR) $(CODEPAGEDIR) $(srcdir)
 
 installswat: installdirs installmsg
 	@$(SHELL) $(srcdir)/script/installswat.sh $(DESTDIR) $(SWATDIR) $(srcdir)
@@ -1550,6 +1557,8 @@
 	@echo "  privatedir:  $(PRIVATE_DIR)"
 	@echo "  configdir:   $(CONFIGDIR)"
 	@echo "  lockdir:     $(LOCKDIR)"
+	@echo "  cachedir:    $(CACHEDIR)"
+	@echo "  statedir:    $(STATEDIR)"
 	@echo "  piddir:      $(PIDDIR)"
 	@echo "  swatdir:     $(SWATDIR)"
 
Index: samba-3.0.24/source/configure.in
===================================================================
--- samba-3.0.24.orig/source/configure.in	2007-02-04 19:59:28.000000000 +0100
+++ samba-3.0.24/source/configure.in	2007-03-06 16:30:53.000000000 +0100
@@ -37,7 +37,7 @@
 [  --with-fhs              Use FHS-compliant paths (default=no)],
 [ case "$withval" in
   yes)
-    lockdir="\${VARDIR}/lib/samba"
+    lockdir="\${VARDIR}/run/samba"
     piddir="\${VARDIR}/run"
     mandir="\${prefix}/share/man"
     logfilebase="\${VARDIR}/log/samba"
@@ -45,6 +45,10 @@
     libdir="\${prefix}/lib/samba"
     configdir="${sysconfdir}/samba"
     swatdir="\${DATADIR}/samba/swat"
+    codepagedir="\${DATADIR}/samba"
+    statedir="\${VARDIR}/lib/samba"
+    cachedir="\${VARDIR}/cache/samba"
+    AC_DEFINE(FHS_COMPATIBLE, 1, [Whether to use fully FHS-compatible paths])
     ;;
   esac])
 
@@ -235,6 +239,9 @@
 AC_SUBST(swatdir)
 AC_SUBST(bindir)
 AC_SUBST(sbindir)
+AC_SUBST(codepagedir)
+AC_SUBST(statedir)
+AC_SUBST(cachedir)
 AC_SUBST(rootsbindir)
 AC_SUBST(pammodulesdir)
 
Index: samba-3.0.24/source/dynconfig.c
===================================================================
--- samba-3.0.24.orig/source/dynconfig.c	2007-02-04 19:59:28.000000000 +0100
+++ samba-3.0.24/source/dynconfig.c	2007-03-06 16:42:22.000000000 +0100
@@ -53,6 +53,13 @@
 pstring dyn_LMHOSTSFILE = LMHOSTSFILE;
 
 /**
+ * @brief Samba data directory.
+ *
+ * @sa data_path() to get the path to a file inside the CODEPAGEDIR.
+ **/
+pstring dyn_CODEPAGEDIR = CODEPAGEDIR;
+
+/**
  * @brief Samba library directory.
  *
  * @sa lib_path() to get the path to a file inside the LIBDIR.
@@ -66,7 +73,10 @@
  * Not writable, but used to set a default in the parameter table.
  **/
 pstring dyn_LOCKDIR = LOCKDIR;
+pstring dyn_STATEDIR = STATEDIR;
+pstring dyn_CACHEDIR = CACHEDIR;
 pstring dyn_PIDDIR  = PIDDIR;
 
 pstring dyn_SMB_PASSWD_FILE = SMB_PASSWD_FILE;
 pstring dyn_PRIVATE_DIR = PRIVATE_DIR;
+
Index: samba-3.0.24/source/groupdb/mapping.c
===================================================================
--- samba-3.0.24.orig/source/groupdb/mapping.c	2007-02-04 19:59:14.000000000 +0100
+++ samba-3.0.24/source/groupdb/mapping.c	2007-03-06 16:30:53.000000000 +0100
@@ -56,7 +56,7 @@
 	if (tdb)
 		return True;
 		
-	tdb = tdb_open_log(lock_path("group_mapping.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
+	tdb = tdb_open_log(state_path("group_mapping.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
 	if (!tdb) {
 		DEBUG(0,("Failed to open group mapping database\n"));
 		return False;
Index: samba-3.0.24/source/include/dynconfig.h
===================================================================
--- samba-3.0.24.orig/source/include/dynconfig.h	2007-02-04 19:59:23.000000000 +0100
+++ samba-3.0.24/source/include/dynconfig.h	2007-03-06 16:42:22.000000000 +0100
@@ -31,8 +31,11 @@
 extern pstring dyn_CONFIGFILE;
 extern pstring dyn_LOGFILEBASE, dyn_LMHOSTSFILE;
 extern pstring dyn_LIBDIR;
+extern pstring dyn_CODEPAGEDIR;
 extern fstring dyn_SHLIBEXT;
 extern pstring dyn_LOCKDIR;
+extern pstring dyn_CACHEDIR;
+extern pstring dyn_STATEDIR;
 extern pstring dyn_PIDDIR;
 extern pstring dyn_SMB_PASSWD_FILE;
 extern pstring dyn_PRIVATE_DIR;
Index: samba-3.0.24/source/intl/lang_tdb.c
===================================================================
--- samba-3.0.24.orig/source/intl/lang_tdb.c	2006-04-20 04:29:23.000000000 +0200
+++ samba-3.0.24/source/intl/lang_tdb.c	2007-03-06 16:30:53.000000000 +0100
@@ -131,7 +131,7 @@
 	if (!lang) 
 		return True;
 
-	asprintf(&msg_path, "%s.msg", lib_path((const char *)lang));
+	asprintf(&msg_path, "%s.msg", data_path((const char *)lang));
 	if (stat(msg_path, &st) != 0) {
 		/* the msg file isn't available */
 		DEBUG(10, ("lang_tdb_init: %s: %s\n", msg_path, 
Index: samba-3.0.24/source/lib/util.c
===================================================================
--- samba-3.0.24.orig/source/lib/util.c	2007-02-04 19:59:17.000000000 +0100
+++ samba-3.0.24/source/lib/util.c	2007-03-06 16:42:22.000000000 +0100
@@ -2574,6 +2574,61 @@
 }
 
 /**
+ * @brief Returns an absolute path to a file in the Samba data directory.
+ *
+ * @param name File to find, relative to CODEPAGEDIR.
+ *
+ * @retval Pointer to a static #pstring containing the full path.
+ **/
+
+char *data_path(const char *name)
+{
+	static pstring fname;
+	snprintf(fname, sizeof(fname), "%s/%s", dyn_CODEPAGEDIR, name);
+	return fname;
+}
+
+/*****************************************************************
+a useful function for returning a path in the Samba state directory
+ *****************************************************************/
+char *state_path(char *name)
+{
+	static pstring fname;
+
+	pstrcpy(fname,lp_statedir());
+	trim_string(fname,"","/");
+
+	if (!directory_exist(fname,NULL)) {
+		mkdir(fname,0755);
+	}
+
+	pstrcat(fname,"/");
+	pstrcat(fname,name);
+
+	return fname;
+}
+
+/*****************************************************************
+a useful function for returning a path in the Samba cache directory
+ *****************************************************************/
+char *cache_path(char *name)
+{
+	static pstring fname;
+
+	pstrcpy(fname,lp_cachedir());
+	trim_string(fname,"","/");
+
+	if (!directory_exist(fname,NULL)) {
+			mkdir(fname,0755);
+	}
+
+	pstrcat(fname,"/");
+	pstrcat(fname,name);
+
+	return fname;
+}
+
+/**
  * @brief Returns the platform specific shared library extension.
  *
  * @retval Pointer to a static #fstring containing the extension.
Index: samba-3.0.24/source/lib/util_unistr.c
===================================================================
--- samba-3.0.24.orig/source/lib/util_unistr.c	2007-02-04 19:59:18.000000000 +0100
+++ samba-3.0.24/source/lib/util_unistr.c	2007-03-06 16:30:53.000000000 +0100
@@ -88,10 +88,10 @@
 	}
 	initialised = 1;
 
-	upcase_table = map_file(lib_path("upcase.dat"), 0x20000);
+	upcase_table = map_file(data_path("upcase.dat"), 0x20000);
 	upcase_table_use_unmap = ( upcase_table != NULL );
 
-	lowcase_table = map_file(lib_path("lowcase.dat"), 0x20000);
+	lowcase_table = map_file(data_path("lowcase.dat"), 0x20000);
 	lowcase_table_use_unmap = ( lowcase_table != NULL );
 
 #ifdef HAVE_SETLOCALE
@@ -228,7 +228,7 @@
 		return;
 	}
 
-	valid_file = map_file(lib_path("valid.dat"), 0x10000);
+	valid_file = map_file(data_path("valid.dat"), 0x10000);
 	if (valid_file) {
 		valid_table = valid_file;
 		mapped_file = 1;
Index: samba-3.0.24/source/libsmb/samlogon_cache.c
===================================================================
--- samba-3.0.24.orig/source/libsmb/samlogon_cache.c	2007-02-04 19:59:20.000000000 +0100
+++ samba-3.0.24/source/libsmb/samlogon_cache.c	2007-03-06 16:30:53.000000000 +0100
@@ -34,7 +34,7 @@
 BOOL netsamlogon_cache_init(void)
 {
 	if (!netsamlogon_tdb) {
-		netsamlogon_tdb = tdb_open_log(lock_path(NETSAMLOGON_TDB), 0,
+		netsamlogon_tdb = tdb_open_log(cache_path(NETSAMLOGON_TDB), 0,
 						   TDB_DEFAULT, O_RDWR | O_CREAT, 0600);
 	}
 
@@ -67,7 +67,7 @@
            winbindd_cache.tdb open.  Open the tdb if a NULL is passed. */
 
 	if (!tdb) {
-		tdb = tdb_open_log(lock_path("winbindd_cache.tdb"), 5000,
+		tdb = tdb_open_log(cache_path("winbindd_cache.tdb"), 5000,
 				   TDB_DEFAULT, O_RDWR, 0600);
 		if (!tdb) {
 			DEBUG(5, ("netsamlogon_clear_cached_user: failed to open cache\n"));
Index: samba-3.0.24/source/nmbd/nmbd_serverlistdb.c
===================================================================
--- samba-3.0.24.orig/source/nmbd/nmbd_serverlistdb.c	2007-02-04 19:59:23.000000000 +0100
+++ samba-3.0.24/source/nmbd/nmbd_serverlistdb.c	2007-03-06 16:42:22.000000000 +0100
@@ -325,7 +325,7 @@
 
 	updatecount++;
     
-	pstrcpy(fname,lp_lockdir());
+	pstrcpy(fname,lp_cachedir());
 	trim_char(fname,'\0' ,'/');
 	pstrcat(fname,"/");
 	pstrcat(fname,SERVER_LIST);
Index: samba-3.0.24/source/nmbd/nmbd_winsserver.c
===================================================================
--- samba-3.0.24.orig/source/nmbd/nmbd_winsserver.c	2007-02-04 19:59:23.000000000 +0100
+++ samba-3.0.24/source/nmbd/nmbd_winsserver.c	2007-03-06 16:42:22.000000000 +0100
@@ -585,7 +585,7 @@
 
 	add_samba_names_to_subnet(wins_server_subnet);
 
-	if((fp = x_fopen(lock_path(WINS_LIST),O_RDONLY,0)) == NULL) {
+	if((fp = x_fopen(state_path(WINS_LIST),O_RDONLY,0)) == NULL) {
 		DEBUG(2,("initialise_wins: Can't open wins database file %s. Error was %s\n",
 			WINS_LIST, strerror(errno) ));
 		return True;
@@ -2337,7 +2337,7 @@
 		}
 	}
 
-	slprintf(fname,sizeof(fname)-1,"%s/%s", lp_lockdir(), WINS_LIST);
+	slprintf(fname,sizeof(fname)-1,"%s/%s", lp_statedir(), WINS_LIST);
 	all_string_sub(fname,"//", "/", 0);
 	slprintf(fnamenew,sizeof(fnamenew)-1,"%s.%u", fname, (unsigned int)sys_getpid());
 
Index: samba-3.0.24/source/passdb/login_cache.c
===================================================================
--- samba-3.0.24.orig/source/passdb/login_cache.c	2007-02-04 19:59:21.000000000 +0100
+++ samba-3.0.24/source/passdb/login_cache.c	2007-03-06 16:42:22.000000000 +0100
@@ -36,7 +36,7 @@
 	/* skip file open if it's already opened */
 	if (cache) return True;
 
-	asprintf(&cache_fname, "%s/%s", lp_lockdir(), LOGIN_CACHE_FILE);
+	asprintf(&cache_fname, "%s/%s", lp_cachedir(), LOGIN_CACHE_FILE);
 	if (cache_fname)
 		DEBUG(5, ("Opening cache file at %s\n", cache_fname));
 	else {
Index: samba-3.0.24/source/nsswitch/winbindd_cache.c
===================================================================
--- samba-3.0.24.orig/source/nsswitch/winbindd_cache.c	2007-02-04 19:59:14.000000000 +0100
+++ samba-3.0.24/source/nsswitch/winbindd_cache.c	2007-03-06 16:30:53.000000000 +0100
@@ -1942,7 +1942,7 @@
 		return True;
 
 	/* when working offline we must not clear the cache on restart */
-	wcache->tdb = tdb_open_log(lock_path("winbindd_cache.tdb"),
+	wcache->tdb = tdb_open_log(cache_path("winbindd_cache.tdb"),
 				WINBINDD_CACHE_TDB_DEFAULT_HASH_SIZE, 
 				lp_winbind_offline_logon() ? TDB_DEFAULT : (TDB_DEFAULT | TDB_CLEAR_IF_FIRST), 
 				O_RDWR|O_CREAT, 0600);
@@ -2186,7 +2186,7 @@
 		return;
 
 	/* when working offline we must not clear the cache on restart */
-	wcache->tdb = tdb_open_log(lock_path("winbindd_cache.tdb"),
+	wcache->tdb = tdb_open_log(cache_path("winbindd_cache.tdb"),
 				WINBINDD_CACHE_TDB_DEFAULT_HASH_SIZE, 
 				lp_winbind_offline_logon() ? TDB_DEFAULT : (TDB_DEFAULT | TDB_CLEAR_IF_FIRST), 
 				O_RDWR|O_CREAT, 0600);
Index: samba-3.0.24/source/nsswitch/winbindd_util.c
===================================================================
--- samba-3.0.24.orig/source/nsswitch/winbindd_util.c	2007-02-04 19:59:14.000000000 +0100
+++ samba-3.0.24/source/nsswitch/winbindd_util.c	2007-03-06 16:30:53.000000000 +0100
@@ -1182,7 +1182,7 @@
 	SMB_STRUCT_STAT stbuf;
 	TDB_CONTEXT *idmap_tdb;
 
-	pstrcpy(idmap_name, lock_path("winbindd_idmap.tdb"));
+	pstrcpy(idmap_name, state_path("winbindd_idmap.tdb"));
 
 	if (!file_exist(idmap_name, &stbuf)) {
 		/* nothing to convert return */
Index: samba-3.0.24/source/param/loadparm.c
===================================================================
--- samba-3.0.24.orig/source/param/loadparm.c	2007-02-04 19:59:13.000000000 +0100
+++ samba-3.0.24/source/param/loadparm.c	2007-03-06 16:42:22.000000000 +0100
@@ -108,6 +108,8 @@
 	char *szDeletePrinterCommand;
 	char *szOs2DriverMap;
 	char *szLockDir;
+	char *szCacheDir;
+	char *szStateDir;
 	char *szPidDir;
 	char *szRootdir;
 	char *szDefaultService;
@@ -1185,14 +1187,18 @@
 	
 	{"config file", P_STRING, P_GLOBAL, &Globals.szConfigFile, NULL, NULL, FLAG_HIDE}, 
 	{"preload", P_STRING, P_GLOBAL, &Globals.szAutoServices, NULL, NULL, FLAG_ADVANCED}, 
-	{"auto services", P_STRING, P_GLOBAL, &Globals.szAutoServices, NULL, NULL, FLAG_ADVANCED}, 
+	{"auto services", P_STRING, P_GLOBAL, &Globals.szAutoServices, NULL, NULL, FLAG_ADVANCED},
 	{"lock directory", P_STRING, P_GLOBAL, &Globals.szLockDir, NULL, NULL, FLAG_ADVANCED}, 
-	{"lock dir", P_STRING, P_GLOBAL, &Globals.szLockDir, NULL, NULL, FLAG_HIDE}, 
-	{"pid directory", P_STRING, P_GLOBAL, &Globals.szPidDir, NULL, NULL, FLAG_ADVANCED}, 
+	{"lock dir", P_STRING, P_GLOBAL, &Globals.szLockDir, NULL, NULL, FLAG_HIDE},
+	{"cache directory", P_STRING, P_GLOBAL, &Globals.szCacheDir, NULL, NULL, FLAG_ADVANCED},
+	{"cache dir", P_STRING, P_GLOBAL, &Globals.szCacheDir, NULL, NULL, FLAG_HIDE},
+	{"state directory", P_STRING, P_GLOBAL, &Globals.szStateDir, NULL, NULL, FLAG_ADVANCED},
+	{"state dir", P_STRING, P_GLOBAL, &Globals.szStateDir, NULL, NULL, FLAG_HIDE},
+	{"pid directory", P_STRING, P_GLOBAL, &Globals.szPidDir, NULL, NULL, FLAG_ADVANCED},
 #ifdef WITH_UTMP
-	{"utmp directory", P_STRING, P_GLOBAL, &Globals.szUtmpDir, NULL, NULL, FLAG_ADVANCED}, 
-	{"wtmp directory", P_STRING, P_GLOBAL, &Globals.szWtmpDir, NULL, NULL, FLAG_ADVANCED}, 
-	{"utmp", P_BOOL, P_GLOBAL, &Globals.bUtmp, NULL, NULL, FLAG_ADVANCED}, 
+	{"utmp directory", P_STRING, P_GLOBAL, &Globals.szUtmpDir, NULL, NULL, FLAG_ADVANCED},
+	{"wtmp directory", P_STRING, P_GLOBAL, &Globals.szWtmpDir, NULL, NULL, FLAG_ADVANCED},
+	{"utmp", P_BOOL, P_GLOBAL, &Globals.bUtmp, NULL, NULL, FLAG_ADVANCED},
 #endif
 
 	{"default service", P_STRING, P_GLOBAL, &Globals.szDefaultService, NULL, NULL, FLAG_ADVANCED}, 
@@ -1446,6 +1452,8 @@
 	string_set(&Globals.szPasswdProgram, "");
 	string_set(&Globals.szPidDir, dyn_PIDDIR);
 	string_set(&Globals.szLockDir, dyn_LOCKDIR);
+	string_set(&Globals.szCacheDir, dyn_CACHEDIR);
+	string_set(&Globals.szStateDir, dyn_STATEDIR);
 	string_set(&Globals.szSocketAddress, "0.0.0.0");
 	pstrcpy(s, "Samba ");
 	pstrcat(s, SAMBA_VERSION_STRING);
@@ -1762,6 +1770,8 @@
 FN_GLOBAL_STRING(lp_deleteprinter_cmd, &Globals.szDeletePrinterCommand)
 FN_GLOBAL_STRING(lp_os2_driver_map, &Globals.szOs2DriverMap)
 FN_GLOBAL_STRING(lp_lockdir, &Globals.szLockDir)
+FN_GLOBAL_STRING(lp_cachedir, &Globals.szCacheDir)
+FN_GLOBAL_STRING(lp_statedir, &Globals.szStateDir)
 FN_GLOBAL_STRING(lp_piddir, &Globals.szPidDir)
 FN_GLOBAL_STRING(lp_mangling_method, &Globals.szManglingMethod)
 FN_GLOBAL_INTEGER(lp_mangle_prefix, &Globals.mangle_prefix)
Index: samba-3.0.24/source/passdb/secrets.c
===================================================================
--- samba-3.0.24.orig/source/passdb/secrets.c	2007-02-04 19:59:21.000000000 +0100
+++ samba-3.0.24/source/passdb/secrets.c	2007-03-06 16:30:53.000000000 +0100
@@ -58,8 +58,7 @@
 	if (tdb)
 		return True;
 
-	pstrcpy(fname, lp_private_dir());
-	pstrcat(fname,"/secrets.tdb");
+	pstrcpy(fname, state_path("secrets.tdb"));
 
 	tdb = tdb_open_log(fname, 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
 
Index: samba-3.0.24/source/printing/nt_printing.c
===================================================================
--- samba-3.0.24.orig/source/printing/nt_printing.c	2007-02-04 20:09:01.000000000 +0100
+++ samba-3.0.24/source/printing/nt_printing.c	2007-03-06 16:30:53.000000000 +0100
@@ -551,28 +551,28 @@
  
 	if (tdb_drivers)
 		tdb_close(tdb_drivers);
-	tdb_drivers = tdb_open_log(lock_path("ntdrivers.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
+	tdb_drivers = tdb_open_log(state_path("ntdrivers.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
 	if (!tdb_drivers) {
 		DEBUG(0,("nt_printing_init: Failed to open nt drivers database %s (%s)\n",
-			lock_path("ntdrivers.tdb"), strerror(errno) ));
+			state_path("ntdrivers.tdb"), strerror(errno) ));
 		return False;
 	}
  
 	if (tdb_printers)
 		tdb_close(tdb_printers);
-	tdb_printers = tdb_open_log(lock_path("ntprinters.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
+	tdb_printers = tdb_open_log(state_path("ntprinters.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
 	if (!tdb_printers) {
 		DEBUG(0,("nt_printing_init: Failed to open nt printers database %s (%s)\n",
-			lock_path("ntprinters.tdb"), strerror(errno) ));
+			state_path("ntprinters.tdb"), strerror(errno) ));
 		return False;
 	}
  
 	if (tdb_forms)
 		tdb_close(tdb_forms);
-	tdb_forms = tdb_open_log(lock_path("ntforms.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
+	tdb_forms = tdb_open_log(state_path("ntforms.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
 	if (!tdb_forms) {
 		DEBUG(0,("nt_printing_init: Failed to open nt forms database %s (%s)\n",
-			lock_path("ntforms.tdb"), strerror(errno) ));
+			state_path("ntforms.tdb"), strerror(errno) ));
 		return False;
 	}
  
@@ -2348,7 +2348,7 @@
 	close_all_print_db();
 
 	if (geteuid() == 0) {
-		pstrcpy(printdb_path, lock_path("printing/"));
+		pstrcpy(printdb_path, cache_path("printing/"));
 		pstrcat(printdb_path, sharename);
 		pstrcat(printdb_path, ".tdb");
 
Index: samba-3.0.24/source/printing/printing.c
===================================================================
--- samba-3.0.24.orig/source/printing/printing.c	2007-02-04 19:59:13.000000000 +0100
+++ samba-3.0.24/source/printing/printing.c	2007-03-06 16:30:53.000000000 +0100
@@ -183,8 +183,8 @@
 	int services = lp_numservices();
 	int snum;
 
-	unlink(lock_path("printing.tdb"));
-	pstrcpy(printing_path,lock_path("printing"));
+	unlink(cache_path("printing.tdb"));
+	pstrcpy(printing_path,cache_path("printing"));
 	mkdir(printing_path,0755);
 
 	/* handle a Samba upgrade */
Index: samba-3.0.24/source/printing/printing_db.c
===================================================================
--- samba-3.0.24.orig/source/printing/printing_db.c	2007-02-04 19:59:13.000000000 +0100
+++ samba-3.0.24/source/printing/printing_db.c	2007-03-06 16:30:53.000000000 +0100
@@ -91,7 +91,7 @@
 		DLIST_ADD(print_db_head, p);
 	}
 
-	pstrcpy(printdb_path, lock_path("printing/"));
+	pstrcpy(printdb_path, cache_path("printing/"));
 	pstrcat(printdb_path, printername);
 	pstrcat(printdb_path, ".tdb");
 
Index: samba-3.0.24/source/sam/idmap_tdb.c
===================================================================
--- samba-3.0.24.orig/source/sam/idmap_tdb.c	2006-04-20 04:29:35.000000000 +0200
+++ samba-3.0.24/source/sam/idmap_tdb.c	2007-03-06 16:30:53.000000000 +0100
@@ -449,7 +449,7 @@
 	BOOL tdb_is_new = False;
 
 	/* use the old database if present */
-	tdbfile = SMB_STRDUP(lock_path("winbindd_idmap.tdb"));
+	tdbfile = SMB_STRDUP(state_path("winbindd_idmap.tdb"));
 	if (!tdbfile) {
 		DEBUG(0, ("idmap_init: out of memory!\n"));
 		return NT_STATUS_NO_MEMORY;
Index: samba-3.0.24/source/smbd/lanman.c
===================================================================
--- samba-3.0.24.orig/source/smbd/lanman.c	2007-02-04 19:59:13.000000000 +0100
+++ samba-3.0.24/source/smbd/lanman.c	2007-03-06 16:30:53.000000000 +0100
@@ -1052,9 +1052,9 @@
 	BOOL local_list_only;
 	int i;
 
-	lines = file_lines_load(lock_path(SERVER_LIST), NULL, 0);
+	lines = file_lines_load(cache_path(SERVER_LIST), NULL, 0);
 	if (!lines) {
-		DEBUG(4,("Can't open %s - %s\n",lock_path(SERVER_LIST),strerror(errno)));
+		DEBUG(4,("Can't open %s - %s\n",cache_path(SERVER_LIST),strerror(errno)));
 		return 0;
 	}
 
Index: samba-3.0.24/source/utils/net_idmap.c
===================================================================
--- samba-3.0.24.orig/source/utils/net_idmap.c	2007-02-04 19:59:25.000000000 +0100
+++ samba-3.0.24/source/utils/net_idmap.c	2007-03-06 16:30:53.000000000 +0100
@@ -136,7 +136,7 @@
 		return NT_STATUS_UNSUCCESSFUL;
 	}
 
-	tdbfile = SMB_STRDUP(lock_path("winbindd_idmap.tdb"));
+	tdbfile = SMB_STRDUP(state_path("winbindd_idmap.tdb"));
 	if (!tdbfile) {
 		DEBUG(0, ("idmap_init: out of memory!\n"));
 		return NT_STATUS_NO_MEMORY;
Index: samba-3.0.24/source/registry/reg_db.c
===================================================================
--- samba-3.0.24.orig/source/registry/reg_db.c	2006-04-20 04:29:45.000000000 +0200
+++ samba-3.0.24/source/registry/reg_db.c	2007-03-06 16:30:53.000000000 +0100
@@ -205,12 +205,12 @@
 	if ( tdb_reg )
 		return True;
 
-	if ( !(tdb_reg = tdb_open_log(lock_path("registry.tdb"), 0, TDB_DEFAULT, O_RDWR, 0600)) )
+	if ( !(tdb_reg = tdb_open_log(state_path("registry.tdb"), 0, TDB_DEFAULT, O_RDWR, 0600)) )
 	{
-		tdb_reg = tdb_open_log(lock_path("registry.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
+		tdb_reg = tdb_open_log(state_path("registry.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
 		if ( !tdb_reg ) {
 			DEBUG(0,("regdb_init: Failed to open registry %s (%s)\n",
-				lock_path("registry.tdb"), strerror(errno) ));
+				state_path("registry.tdb"), strerror(errno) ));
 			return False;
 		}
 		
@@ -252,11 +252,11 @@
 	
 	become_root();
 
-	tdb_reg = tdb_open_log(lock_path("registry.tdb"), 0, TDB_DEFAULT, O_RDWR, 0600);
+	tdb_reg = tdb_open_log(state_path("registry.tdb"), 0, TDB_DEFAULT, O_RDWR, 0600);
 	if ( !tdb_reg ) {
 		result = ntstatus_to_werror( map_nt_error_from_unix( errno ) );
 		DEBUG(0,("regdb_open: Failed to open %s! (%s)\n", 
-			lock_path("registry.tdb"), strerror(errno) ));
+			state_path("registry.tdb"), strerror(errno) ));
 	}
 
 	unbecome_root();
Index: samba-3.0.24/source/lib/account_pol.c
===================================================================
--- samba-3.0.24.orig/source/lib/account_pol.c	2007-02-04 19:59:18.000000000 +0100
+++ samba-3.0.24/source/lib/account_pol.c	2007-03-06 16:30:53.000000000 +0100
@@ -262,7 +262,7 @@
 		return True;
 	}
 
-	tdb = tdb_open_log(lock_path("account_policy.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
+	tdb = tdb_open_log(state_path("account_policy.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
 	if (!tdb) {
 		DEBUG(0,("Failed to open account policy database\n"));
 		return False;
Index: samba-3.0.24/source/registry/reg_perfcount.c
===================================================================
--- samba-3.0.24.orig/source/registry/reg_perfcount.c	2007-02-04 19:59:26.000000000 +0100
+++ samba-3.0.24/source/registry/reg_perfcount.c	2007-03-06 16:30:53.000000000 +0100
@@ -44,7 +44,7 @@
 	
 	fstr_sprintf( path, "%s/%s", PERFCOUNTDIR, dbname );
 	
-	pstrcpy( fname, lock_path( path ) );
+	pstrcpy( fname, state_path( path ) );
 	
 	return fname;
 }
@@ -54,7 +54,7 @@
 
 void perfcount_init_keys( void )
 {
-	char *p = lock_path(PERFCOUNTDIR);
+	char *p = state_path(PERFCOUNTDIR);
 
 	/* no registry keys; just create the perfmon directory */
 	
Index: samba-3.0.24/source/rpc_server/srv_eventlog_lib.c
===================================================================
--- samba-3.0.24.orig/source/rpc_server/srv_eventlog_lib.c	2007-02-04 19:59:21.000000000 +0100
+++ samba-3.0.24/source/rpc_server/srv_eventlog_lib.c	2007-03-06 16:30:53.000000000 +0100
@@ -67,7 +67,7 @@
 {
 	fstring path;
 	char *tdb_fullpath;
-	char *eventlogdir = lock_path( "eventlog" );
+	char *eventlogdir = state_path( "eventlog" );
 	
 	pstr_sprintf( path, "%s/%s.tdb", eventlogdir, name );
 	strlower_m( path );
@@ -349,7 +349,7 @@
 	
 	/* make sure that the eventlog dir exists */
 	
-	eventlogdir = lock_path( "eventlog" );
+	eventlogdir = state_path( "eventlog" );
 	if ( !directory_exist( eventlogdir, NULL ) )
 		mkdir( eventlogdir, 0755 );	
 	
Index: samba-3.0.24/source/passdb/pdb_tdb.c
===================================================================
--- samba-3.0.24.orig/source/passdb/pdb_tdb.c	2007-02-04 19:59:21.000000000 +0100
+++ samba-3.0.24/source/passdb/pdb_tdb.c	2007-03-06 16:42:22.000000000 +0100
@@ -1612,7 +1612,7 @@
 	/* save the path for later */
 			   
 	if ( !location ) {
-		pstr_sprintf( tdbfile, "%s/%s", lp_private_dir(), PASSDB_FILE_NAME );
+		pstr_sprintf( tdbfile, "%s/%s", lp_statedir(), PASSDB_FILE_NAME );
 		pfile = tdbfile;
 	}
 	pstrcpy( tdbsam_filename, pfile );
Index: samba-3.0.24/source/script/mkbuildoptions.awk
===================================================================
--- samba-3.0.24.orig/source/script/mkbuildoptions.awk	2007-03-06 16:31:17.000000000 +0100
+++ samba-3.0.24/source/script/mkbuildoptions.awk	2007-03-06 16:42:22.000000000 +0100
@@ -87,6 +87,8 @@
 	print "       output(screen,\"   SHLIBEXT: %s\\n\",dyn_SHLIBEXT);";
 
 	print "       output(screen,\"   LOCKDIR: %s\\n\",dyn_LOCKDIR);";
+	print "       output(screen,\"   CACHEDIR: %s\\n\",dyn_CACHEDIR);";
+	print "       output(screen,\"   STATEDIR: %s\\n\",dyn_STATEDIR);";
 	print "       output(screen,\"   PIDDIR: %s\\n\", dyn_PIDDIR);";
 
 	print "       output(screen,\"   SMB_PASSWD_FILE: %s\\n\",dyn_SMB_PASSWD_FILE);";

Attachment: pgpHTBw5C3Ky0.pgp
Description: PGP signature

Reply via email to