Richard PALO <richard%netbsd.org@localhost> writes: > Came to notice that there were some inconsistencies in dbus concerning > the 'home' directory which was partially in ${VARBASE}/db/dbus but also > in places ${VARBASE}/run/dbus. Actually after reboot on SunOS it blew! > > So, first I set up the following: > DBUS_HOME?= ${VARBASE}/db/${DBUS_USER} > allowing, if wished, to override with old ${VARBASE}/run/dbus behaviour > > I specifically avoid using ${VARBASE}/run which is a volatile directory > (which happens to be tmpfs on SunOS). Too, it is tedious to use > non-privileged daemons since ${VARBASE}/run is strictly reserved for root. > > Therefore the PIDFILE and SYSTEM_BUS_SOCKET are specifically set in the > DBUS_HOME directory, and the rc/smf files updated accordingly. > (I left the MKDIR/CHMOD bits in the rc just in case ${VARBASE}/run was > specified overriding DBUS_HOME) > > here is the proposed patch for any coments prior to committing: > http://www.netbsd.org/~richard/0001-clean-up-dbus-home-for-non-privileged-use-avoiding-v.patch So the real questions are: 1) Are the files being written system-level files (pertaining to the system-wide invocation of dbus)? Presumably the dbus invocations of any user will be in the user's homedir. 2) You chose db vs run. So are (at least some of) these files intended to persist across reboots? If so, that's appropriate. If not, they arguably belong in run. 3) I don't understand how "unprivileged" is related to run. /var/run and /var/db (on NetBSD) are both root-owned and 755. So using them for anything not root involves a subdirectory which is created by root and then set to the the non-root user. This seems to apply to both run and db. With db, it can be created at package install time. With run, it should be done by the rc.d script (or smf). 4) Why do you think all dbus things necessarily belong in one of db or run? It seems reasonable that a daemon might have files that are in each category. dbus seems to have a persistent id, a socket, and a pidfile: /var/db/dbus: total 2 -rw-r--r-- 1 root dbus 33 Oct 4 2008 machine-id /var/run/dbus: total 2 -rw-r--r-- 1 root dbus 4 Aug 29 14:05 pid srwxrwxrwx 1 root dbus 0 Aug 29 14:05 system_bus_socket So it seems that machine-id is in /var/db/dbus, and the pid and socket are in /var/run. /etc/rc.d/dbus creates and chmods /var/run/dbus. So this does not look broken to me. Can you explain more precisely what you think is wrong and why?
Attachment:
pgpf1vpDr1Quv.pgp
Description: PGP signature