[Printing-architecture] directory structure / file name conventions

Fujinaka, Todd todd.fujinaka at intel.com
Wed Jul 12 16:43:14 PDT 2006

After studying the Filesystem Hierarchy Standard, I would like to
propose two additional directories (/opt/openprinting/share/ppd and
/usr/local/share/ppd) for addition to the single PPD directory

Section 4.1 describes the purpose of /usr in the following manner:

"/usr is the second major section of the filesystem. /usr is shareable,
read-only data. That means that /usr should be shareable between various
FHS-compliant hosts and must not be written to. Any information that is
host-specific or varies with time is stored elsewhere."

In usage, this has been used to mean that an OS can update
/usr/share/ppd/*, but a 3rd-party vendor must not write to
/usr/share/ppd/*. This severely limits the ability for vendors to add
their own PPD files unless they are accepted into the base install of an
FHS-conforming system.

The appropriate place for 3rd-party vendors is the /opt hierarchy.
Section 3.13.1 describes the purpose of /opt as follows:

"/opt is reserved for the installation of add-on application software

"A package to be installed in /opt must locate its static files in a
separate /opt/<package> or /opt/<provider> directory tree, where
<package> is a name that describes the software package and <provider>
is the provider's LANANA registered name."

I would suggest that a "provider" name of openprinting be used so any
additional vendor PPD files would be stored in:

Additionally, the system administrator is allowed access to /usr/local
which is described in section 4.8.1 with the purpose:

"The /usr/local hierarchy is for use by the system administrator when
installing software locally. It needs to be safe from being overwritten
when the system software is updated. It may be used for programs and
data that
are shareable amongst a group of hosts, but not found in /usr.

"Locally installed software must be placed within /usr/local rather than
/usr unless it is being installed to replace or upgrade software in

Therefore I would suggest an additional /usr/local/share/ppd/* for the
use of any system administrators.

In summary, I suggest expanding the locations for PPD file from
/usr/share/ppd to also include /opt/openprinting/share/ppd and
/usr/local/share/ppd. This follows the FHS standard while still
retaining the OpenPrinting group's requirement of strictly defining the
location of PPD files.

Todd Fujinaka

More information about the Printing-architecture mailing list