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);";
pgpHTBw5C3Ky0.pgp
Description: PGP signature