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
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
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.  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.
/var/lib/<name> is the location that must be used for all distribution
packaging support. Different distributions may use different names, of
__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
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. 
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
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.