![](https://secure.gravatar.com/avatar/d51b6f233eee94b37270e5140cadef46.jpg?s=120&d=mm&r=g)
The first time I saw the existance of the /usr/etc directory on a Crux installation, I thought somebody forgot to use the --sysconfdir parameter in a port, but I was mistaken.
Oops, sorry about the orthographic error, I think aspell is looking in /usr/etc instead of /etc ;)
In the Crux handbook (section 4.5.2) it says: /etc/ Configuration files for system software (daemons, etc) /usr/etc/<prog>/ Configuration files
So it is intentional, yet it has always bothered me.
Placing configuration files under /usr, where installed program files go, is just not natural. What was the logic behind this?
The logic behind is rather simple and sensible: configuration files for system software (e.g. udev, cron, exim) into /etc whereas other (user) software like mutt, gimp or irssi into /usr/etc.
The later are normally never touched by the user, they contain the program defaults and are overwritten/extended by files in the user home dir.
Well, then in the handbook it should say: /usr/etc/ Configuration files for program defaults that can be overwritten/extended by files in the user home dir Right now I can see some configuration files in /usr/etc that can't be overwritten by files in the user's home dir: dbus, esd.conf, minirc.dfl (minicom), sane.d I can see a problem here when somebody configures this files by hand and they get overwritten by the next update (by default pkgadd -u overwrites everything outside /etc). Anyway, I still don't see where we benefit by splitting the configuration files that can and that can't be extended by files in the user's home dir. It clearly confuses some maintainers. BTW, the aspell joke has some reality in it: [alan@zeus ~]$ strace -f -eopen aspell -c /etc/passwd open("/etc/ld.so.cache", O_RDONLY) = 3 open("/usr/lib/libaspell.so.15", O_RDONLY) = 3 open("/usr/lib/libstdc++.so.6", O_RDONLY) = 3 open("/lib/libncurses.so.5", O_RDONLY) = 3 open("/lib/libdl.so.2", O_RDONLY) = 3 open("/lib/libm.so.6", O_RDONLY) = 3 open("/usr/lib/libgcc_s.so.1", O_RDONLY) = 3 open("/lib/libc.so.6", O_RDONLY) = 3 open("/home/alan/.aspell.conf", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/etc/aspell.conf", O_RDONLY) = -1 ENOENT (No such file or directory) ... In this case, aspell looks for ~/.aspell.conf, then it falls back to /usr/etc/aspell.conf. Yet, the administrator might want to have some custom global configuration. In this case, the admin will have to write files in /usr. -- Alan