From: Blackace <bla...@ge...> - 2004-09-20 09:36:28
|
Hi, I am picking up the effort to include BackupPC in Gentoo Linux from Stuart Herbert who I believe had some discussions on this list with regards to the configure script before he was flooded with other responsibilities. Right now, the configure script works great, but the issue I'm dealing with before inclusion is the current directory structure as Gentoo Linux needs configuration files to be under /etc, especially for packages such as BackupPC so our tools can be used to merge old and new configs upon upgrading. I'd like to inquire into the possibility of BackupPC becoming more compliant to the Filesystem Hierarchy Standard with the following suggestions for path changes: __TOPDIR__/conf -> /etc/backuppc "The /etc hierarchy contains configuration files. A "configuration file" is a local file used to control the operation of a program; it must be static and cannot be an executable binary." __TOPDIR__/log -> /var/log/backuppc "This directory contains miscellaneous log files. Most logs must be written to this directory or an appropriate subdirectory." __TOPDIR__/log/BackupPC.pid -> /var/run/backuppc.pid "This directory contains system information data describing the system since it was booted. Files under this directory must be cleared (removed or truncated as appropriate) at the beginning of the boot process. Programs may have a subdirectory of /var/run; this is encouraged for programs that use more than one run-time file. [42] Process identifier (PID) files, which were originally placed in /etc, must be placed in /var/run. The naming convention for PID files is <program-name>.pid. For example, the crond PID file is named /var/run/crond.pid." __TOPDIR__/log/status.pl -> /var/lib/backuppc/status.pl __TOPDIR__/log/UserEmailInfo.pl -> /var/lib/backuppc/UserEmailInfo.pl "This hierarchy holds state information pertaining to an application or the system. State information is data that programs modify while they run, and that pertains to one specific host. Users must never need to modify files in /var/lib to configure a package's operation. State information is generally used to preserve the condition of an application (or a group of inter-related applications) between invocations and between different instances of the same application. State information should generally remain valid after a reboot, should not be logging output, and should not be spooled data. An application (or a group of inter-related applications) must use a subdirectory of /var/lib for its data. There is one required subdirectory, /var/lib/misc, which is intended for state files that don't need a subdirectory; the other subdirectories should only be present if the application in question is included in the distribution. [38] /var/lib/<name> is the location that must be used for all distribution packaging support. Different distributions may use different names, of course." __TOPDIR__/trash -> /var/cache/backuppc "/var/cache is intended for cached data from applications. Such data is locally generated as a result of time-consuming I/O or calculation. The application must be able to regenerate or restore the data. Unlike /var/spool, the cached files can be deleted without data loss. The data must remain valid between invocations of the application and rebooting the system. Files located under /var/cache may be expired in an application specific manner, by the system administrator, or both. The application must always be able to recover from manual deletion of these files (generally because of a disk space shortage). No other requirements are made on the data format of the cache directories." __INSTALLDIR__/bin -> /usr/bin "This is the primary directory of executable commands on the system." __INSTALLDIR__/lib -> /usr/share/backuppc/lib __INSTALLDIR__/doc -> /usr/share/backuppc/doc "The /usr/share hierarchy is for all read-only architecture independent data files. [30] This hierarchy is intended to be shareable among all architecture platforms of a given OS; thus, for example, a site with i386, Alpha, and PPC platforms might maintain a single /usr/share directory that is centrally-mounted. Note, however, that /usr/share is generally not intended to be shared by different OSes or by different releases of the same OS. Any program or package which contains or requires data that doesn't need to be modified should store that data in /usr/share (or /usr/local/share, if installed locally). It is recommended that a subdirectory be used in /usr/share for this purpose." __TOPDIR__/pool -> __DATADIR__/pool __TOPDIR__/cpool -> __DATADIR__/cpool __TOPDIR__/pc/$host -> __DATADIR__/pc/$host __CGIDIR__ -> __CGIDIR__ As for the __DATADIR__ paths, my feeling is that they could belong in /srv or the historical /var/backups, but only by default since users will need to configure them to be on large filesystems via config.pl I'd also like to volunteer any assistance I can offer in order to make this happen, as dumping __TOPDIR__ and __INSTALLDIR__ contents into /opt as has been suggested to me would prevent our users from leveraging our current tools when upgrading to newer versions. I appreciate your time. --=20 Blackace Gentoo Linux Infrastructure Developer |