
Non-Free Files for the Foomatic Database
========================================

foomatic-db-nonfree
-------------------

This is a repository of PPD and Foomatic XML files that may have
restrictions that keep them from being used on a variety of machines
for licensing and other non-technical reasons.


Till Kamppeter <till.kamppeter@gmail.com>
Dafydd Crosby <dcrosby@userful.com>

http://www.openprinting.org/

This usage documentation file is written by Till Kamppeter


Intro
-----

Foomatic is a database providing information about the usage of
printers with Unix-like operating systems (Linux, Solaris, ...).

The applications of these operating systems send PostScript or PDF to
the printer queues. Therefore one usually hands over the PostScript
directly to a PostScript printer (sometimes with some inserted
PostScript commands for options) or uses Ghostscript for generating
the data format the printer needs from PostScript or PDF input. This
is done by the printer spooler which also stores the data in a spool
directory when the printer is still occupied by another job, transmits
the data to a print server in the network, and so on.

The printer drivers for non-PostScript printers are either compiled
into Ghostscript, a plug-in for Ghostscript (e. g. IJS drivers), or
they are an extra filter which converts a generic bitmap generated by
Ghostscript into the printer's data format. For this the spooler has
to call complicated command lines of Ghostscript and the extra filter
(if needed). The user of a Unix-like operating system normally does
not see these command lines because an installation program takes
appropriate filter scripts and/or description files from a database
and assigns them to the printer queue.

Widely used databases were the RHS-Printfilters and the APS
filters. Their disadvantages were that they only supported one spooler
(LPD/LPRng) and only a small part of the driver's options (mostly page
size and resolution). Foomatic supports all options of the drivers and
all known spoolers (LPD, LPRng, GNUlpr, CUPS, Solaris LP, PPR, PDQ,
CPS, direct spooler-less printing). In addition, all known free
software printer drivers are supported. Foomatic also supports
printing of various non-PostScript/PDF file types for spoolers which
do not support these by themselves (LPD, LPRng, GNUlpr, spooler-less
printing). To enable this feature you need to have "a2ps", "enscript",
or "mpage" installed.

Another problem is that the way how to install queues, to print files,
and to handle jobs is very different with different spoolers. LPD for
example requires editing of configuration files for adding a queue,
whereas CUPS and PPR have specialized command line utilities. Foomatic
puts a layer between the applications and the spoolers so that one has
a common, spooler-independent command line interface for all spoolers,
so that switching of spoolers or administration of a network with
different spoolers gets much easier, because for the same operations
there are the same commands, independent of the spooler.

This command line interface can also be used as a base for
spooler-independent graphical frontends.


Installation
------------

Foomatic runs on all systems where one can run the Perl
interpreter.

The PPD files in this package do not require anything else, the XML files
require the foomatic-db and foomatic-db-engine packages.

Install it after you have installed fommatic-db using the commands (if
you have downloaded this package from the BZR repositories, run
"./make_configure" at first, for that you will also need the
"autoconf" and "aclocal" utilities, "aclocal" is in the "automake"
package in some distributions):

   ./configure
   make install

"make install" must be run as "root", "./configure" can be run as a
normal user.

The "configure" script will auto-detect the place where your Foomatic
database is located and generate the Makefile, which is used to
install the Foomatic data. If "configure" fails because of something
not being installed, do

   rm -rf config.cache autom*.cache

before you run "configure" again (after installing the missing parts).

By default, ths package is installed into subdirectories of /usr/local
(e. g. /usr/local/share/foomatic), to get it into subdirectories of
/usr (/usr/share/foomatic), enter:

   ./configure --prefix=/usr
   make install

There are other things which can be adjusted by options on the
"configure" command line, enter "./configure --help" for more
info. You can also modify variables in the beginning of the "Makefile"
after running "configure", but note that every run of "configure"
re-creates the "Makefile".

If "configure" did not auto-detect where you have placed the database
(or if you intend to install the database afterwards), do

   export LIBDIR=/path/to/the/database
   ./configure
   make install
   
You have specified the path correctly, when

   /path/to/the/database/db/source/driver/ljet4.xml

exists.

You can also run Foomatic out of the source directory of
foomatic-db-engine (for example when you want to try it out, or when
you don't have root access, see USAGE of foomatic-db-engine).
Therefore enter (can be done as a normal user):

   ./configure
   make inplace

Then the non-free Foomatic data is not inserted into the system-wide
database, but into the local one. For that both the tarball of this
package and of the foomatic-db package must be put into the same
directory. After unpacking both and doing the command shown above, the
data will go into the right place. "make clean" will remove the data.

