Hi there, [I'm not subscribed to the list, if you want me to know what you reply please CC me] Short Version: Why don't you comply with the Filesystem Hierarchy Standard? [1] Very Long Version: In the process of building a linux box from scratch, I've recently built samba-2.0.7 . It seems to me that the autoconf defaults do not follow the Filesystem Hierarchy Standard at all. Even worse, it is not even possible to make it follow the FHS convention by mere command line arguments. My best try was: ./configure --prefix=/usr \ --sysconfdir=/etc \ --libdir=/etc \ --localstatedir=/var \ --with-privatedir=/etc/samba \ --with-lockdir=/var/samba \ --with-swatdir=/usr/lib/swat But that was not enough - log files go to /var/log, not /var - so I edited Makefile.in, and made some changes: -SBINDIR = @bindir@ +SBINDIR = @sbindir@ +ETCDIR = @etcdir@ -SMBLOGFILE = $(VARDIR)/log.smb +SMBLOGFILE = $(VARDIR)/log/smb.log -NMBLOGFILE = $(VARDIR)/log.nmb +NMBLOGFILE = $(VARDIR)/log/nmb.log -CONFIGFILE = $(LIBDIR)/smb.conf +CONFIGFILE = $(ETCDIR)/smb.conf -LMHOSTSFILE = $(LIBDIR)/lmhosts +LMHOSTSFILE = $(ETCDIR)/lmhosts -DRIVERFILE = $(LIBDIR)/printers.def +DRIVERFILE = $(ETCDIR)/printers.def This also moved the configuration files to etc instead of lib, which makes the --libdir=/etc switch to configure obsolete. Great. However, the pid files still were not at the correct place. To fix that, I even had to apply a quick-and-dirty hack to source/lib/pidfile.c: - slprintf(pidFile, sizeof(pidFile)-1, "%s/%s.pid", lp_lockdir(), name); + slprintf(pidFile, sizeof(pidFile)-1, "/var/run/%s.pid", name); (twice) Only now my Samba installation complied with the Filesystem Hierarchy Standard. Here's what humble me considers harmful: - You use LIBDIR for files that should go to ETCDIR Here's what humble me considers bad practice: - You put logfiles into VARDIR instead of VARDIR/log - You put pidfiles into LOCKDIR instead of VARDIR/run Here's what humble me considers not ok: - You put system binaries into BINDIR instead of SBINDIR - The defaults for privatedir, lockdir and swatdir are cluttering the filesystem with stuff that should go elsewhere. Privatedir is configuration, with similar content as /etc/shadow, so that should go somewhere under /etc, Swatdir should clearly go to PREFIX/lib/(package_name), ..) I am aware that what I label "not ok" is due to historical reasons, but why cling to historical locations, when at the same time almost everybody else is trying hard to conform to the FHS? At least the user can choose, so it's not -too- bad. What I'd consider good practice is the following: - Use ETCDIR instead of LIBDIR for config files. (no need for additional switches - LIBDIR is IMHO just harmful) - Use VARDIR/log for logfiles (or at least let the user affect this with an autoconf switch) - Use VARDIR/run for pidfiles (or at least let the user affect this with an autoconf switch) - Add a autoconf option like "--compatibility", which will make autoconf use all those historical default paths. If not specified, use more up-to-date defaults. (or if you're really clinging to the old days, add an option like "--comply-with-standards" and do this the other way 'round) If this was fixed in the CVS or beta releases of Samba, please forgive me (and let me know..;). All this is just my 5 cents worth. And of course only how I and everybody I talked to interpret the FHS. Let me know about your interpretation of it, if it is completely different. Well, just think about it. This is not a holy crusade... ;-) Cheers, Dan References: [1] Filesystem Hierarchy Standard - http://www.pathname.com/fhs/ -- Daniel Roethlisberger PGP Key ID 0x8DE543ED