Foomatic is a database-driven system for integrating free software printer drivers with common spoolers under Unix. It supports CUPS, LPRng, LPD, GNUlpr, Solaris LP, PPR, PDQ, CPS, and direct printing with every free software printer driver known to us and every printer known to work with these drivers.
Foomatic ships in whole or in part in Mandrake/Mandriva >= 7.2 (full Foomatic from 8.1 on), Red Hat >= 7.1, Conectiva >= 8.0, Debian, SuSE, Ubuntu, and probably most other distributions.
Using Foomatic with a particular printer and spooler
Foomatic provides a universal filter foomatic-rip which works with several spoolers, and a database describing printers and drivers the filter can use. To get your printer working with Foomatic, select the quick-start link for your spooler from this list:
- Foomatic works with all CUPS versions
- Foomatic works with most strains of LPD, and LPRng.
- Foomatic works as PPR RIP for PPR 1.50 and as interface for PPR 1.4x and 1.50.
- Foomatic works with version 2.1 or newer of PDQ.
- No spooler
- Foomatic's foomatic-rip can be invoked directly to print without a spooler.
- Application Setup
- Foomatic and vendor PPD files should also be loaded into client software including OpenOffice, the GIMP, GPR, or Windows or MacOS clients.
Be sure that you have the printer driver itself installed!
See also the tutorial chapter "Foomatic from the User's Point of View: Installing a Printer" (PDF) for more detailed instructions with examples and screenshots. (Note that the instructions in the tutorial are for the former Foomatic 2.0.x.)
If you want to download the complete Foomatic, consisting of the Foomatic database, the print filters, and the software to generate PPDs and print queues, go to the download area.
Foomatic consists of four packages:
- The universal print filter "foomatic-rip", used by spoolers to convert PostScript job data into the printer's native format as described by a printer/driver-specific PPD file.
- Foomatic's database engine generates PPD files from the data in Foomatic's XML database. It also contains scripts to directly configure print queues and handle jobs.
- The collected knowledge about printers, drivers, and driver options in XML files, used by foomatic-db-engine to generate PPD files. It also contains manufacturer-supplied PPD files which got released under free software licenses.
- Foomatic database extension consisting of manufacturer-supplied PPD files released under non-free licenses which restricts them in how they can get redistributed.
The latest packages are always the packages marked with "current" in their file names in the download area. They are a daily snapshot of Foomatic's Bazaar repositories, taken every night at 12:20am Oregon time. There are daily snapshots of the stable "4.0" branches and the "devel" branches, the head of the development.
These packages set up a local copy of the database on install; this is useful if you want to make your own backend or driver distribution, when you are administrator of a network with different printers and spoolers and want to have the same administration commands for all spoolers, or if you want to contribute to the development of the software and the database.
Please read the USAGE files in the main directories of the packages to know how to install and use Foomatic. Note that "foomatic-db" and "foomatic-filters" should be installed before "foomatic-db-engine", and "foomatic-db" also before "foomatic-db-nonfree".
You don't need to install all packages. You can install only "foomatic-filters" and use PPD files from PostScript printers or download the PPD files from OpenPrinting. You can also leave out "foomatic-db-nonfree" if you only want to have free software.
Please post bug reports on our bug tracking system. Choose "OpenPrinting" as the product and the package name as the component. Choose "foomatic-db" also with problems in the database extensions "foomatic-db-nonfree" and "foomatic-db-hpijs".
Detailed info about how Foomatic works, how the files are structured, and what is planned for the future you can also find in the README files of the "foomatic-db-engine" and "foomatic-filters" packages and in the tutorial chapter "Foomatic from the Developer's View: How does Foomatic work?" (PDF). Note that the tutorial chapter still describes Foomatic 2.0.x.
If you're interested in easily being always up-to-date with Foomatic, you can get the latest state from our Bazaar repositories (You need to install the Bazaar software):
bzr branch http://bzr.openprinting.org/foomatic/foomatic-filters bzr branch http://bzr.openprinting.org/foomatic/foomatic-db-engine bzr branch http://bzr.openprinting.org/foomatic/foomatic-db bzr branch http://bzr.openprinting.org/foomatic/foomatic-db-nonfree
To update your Foomatic package copies, go into the main directory of the package which you wish to update and enter:
Bazaar is a distributed version control system. Every repository downloaded with "bzr branch" contains the full revision history and allows committing changes into it. A "bzr commit" commits into your local branch. For making changes getting back into the official Foomatic repositories on out site, you can either generate patches and send them to us or copy your downloaded and modified branch onto a web server and send us the URL so that we can merge it with our repositories. See the Bazaar tutorials to learn more about using Bazaar.
Current fixes on Foomatic 3.0.x and 4.0.x happen in the stable branches:
bzr branch http://bzr.openprinting.org/foomatic-4.0/foomatic-filters bzr branch http://bzr.openprinting.org/foomatic-4.0/foomatic-db-engine bzr branch http://bzr.openprinting.org/foomatic-3.0/foomatic-filters bzr branch http://bzr.openprinting.org/foomatic-3.0/foomatic-db-engine
There are also two experimental branches (note that they got branched off in Foomatic 3.0.x). Do
bzr branch http://bzr.openprinting.org/foomatic/foomatic-db-engine-experimental bzr branch http://bzr.openprinting.org/foomatic/foomatic-filters-experimental
to get them. Note that these are more to hold some ideas of new development and they are perhaps not in sync with the standard branches or they are even not working.
A daily Bazaar snapshot lives in the download section; you want the -current files.
You can also watch the development with a web browser via the web interfaces for the Bazaar repositories. Click on the subdirectories to get the web interfaces for each group of repositories. Note that the devel/ directory is a fallback for accessing through old links. It contains symlinks to all the repositories in the other directories.
Development discussion happens on the Foomatic development mailing list.
See also the README and ChangeLog files in each package.
Contributing data or code
See our instructions for contributors.