Oi,
this is Foomatic 2.9.0, the first release in the 2.9.x development line
approaching Foomatic 3.0.
Please test this version and report bugs/give your comments on the
Foomatic Development List/Newsgroup on linuxprinting.org.
All documentation on the test web site is updated to suit Foomatic 2.9.0
now. Please read the documentation and tell us what you think. We do not
only want to improve the software but also the documentation for both
users and packagers/distributors. Volunteers to work on both the
Foomatic 3.0 documentation and the Printing HOWTO are highly appreciated.
See below how to proceed.
Happy printing
Till
New features
------------
These are only the "highlights" of the already implemented new features.
See the complete feature list and roadmap for 3.0 below.
- No spooler-specific printer/driver description files, PPDs are used
now for all spoolers.
- Support for PPDs supplied with PostScript printers, so all PostScript
printers work to their full extent under all spoolers.
- One filter script for all spoolers, so the download of Foomatic data
from the web gets much easier
Packages
--------
The release consists of four packages, to be installed in the given order:
http://www.linuxprinting.org/download/foomatic/foomatic-filters-2.9.0.tar.gz
http://www.linuxprinting.org/download/foomatic/foomatic-db-current.tar.gz
http://www.linuxprinting.org/download/foomatic/foomatic-db-hpijs-1.3-1.tar.gz
http://www.linuxprinting.org/download/foomatic/foomatic-db-engine-2.9.0.tar.gz
Please read the USAGE packages to know how to install and use these
packages. You do not necessarily need to install foomatic-db-hpijs, you
only need it when you want to use a printer with the HPIJS driver.
Uninstall any old version of Foomatic before you install these packages.
The database is still the same as of 2.0.x, so you can even keep your
old database, or use any other of the snapshots of the database which
are made every night. Changes in the database will probably follow soon,
see the roadmap below.
To set up print queues for any supported spooler (CUPS, LPRng, LPD,
GNUlpr, PPR, PDQ, no spooler) use "foomatic-configure" as describedin
the USAGE file of foomatic-db-engine. You can set up printer queues
based on the Foomatic database, with PPD files for PostScript printers,
or raw queues. This is possible for all spoolers. You can also print a
wide range of file types with every spooler (when you use LPRng, LPD,
GNUlpr, PGQ, or no spooler you need "a2ps" on your machine).
If you want to know how all this works, see the README files of both the
foomatic-db-engine and foomatic-filters packages.
Web site
--------
Alternatively you can download all what you need for setting up a print
queue from the web, as it was (and is) possible all the time with
Foomatic 2.0.x. Go to our test site:
http://www.linuxprinting.org/foomatic2.9/
This site you should bookmark, it will show always the state of the art
of our web site development.
Probably most looks familiar to you, since the database structure and
the way to look up information didn't change. But when you choose a
driver you will see the difference: You can only download a PPD file,
which will serve for all spoolers. No spooler-specific printer/driver
description files. Due to having only one configuration file type, the
PPD file we have put shortcut links onto the printer pages. You have a
link to the recommended driver and the PPD file for using it directly in
the summary box at the top of the page. The driver list at the bottom of
the page has also direct links to the appropriate PPD files.
All documentation on the test web site is updated now. So you can simply
follow the step-by-step instructions on the documentation page for your
spooler The main Foomatic page gives you download links and
instructions for installing the Foomatic 2.9.0 packages and for
anonymous download of the CVS.
Kurt Pfeifle has already started improving the documentations:
http://www.linuxprinting.org/foomatic2.9/cups-doc.html
Your comments are welcome.
Feature List and Roadmap for Foomatic 3.0
-----------------------------------------
Implemented in 2.9.0:
- For all supported spoolers (CUPS, LPRng, LPD, GNUlpr, PPR, PDQ, CPS,
no spooler) the same PostScript-to-printer's-native-language filter
(RIP, Raster Image Processor), foomatic-rip is used. foomatic-rip
detects automatically from which spooler it is called.
- foomatic-rip gets the info about the printer's capabilities and the
driver options and default settings always from PPD files,
independent which spooler is used. It is possible to use
Foomatic-generated PPD files (usually for non-PostScript printers)
or manufacturer-supplied PPD files of PostScript printers. So
o PPD files of PostScript printers can be used with every spooler,
not only with CUPS and PPR and on all spoolers all options will
be available. So PostScript printers work always "Perfectly".
o With the PPD file one has one configuration file for every place
where information abot the printer and its options is needed:
The print queue itself, PPD-aware applications (as Star Office,
OpenOffice.org, GIMP, ...), and clients (Windows, Mac, Unix with
arbitrary spooler). The PPD format is a standard format used by
every modern operating system.
- PPD building and PostScript processing is done according to the
Adobe specifications DSC (Document Structuring Conventions) and
PPD (PostScript Printer Description) as published on
http://partners.adobe.com/asn/developer/technotes/postscript.html
- foomatic-rip inserts all default settings from the PPD file (so you
can edit the "*Default..." lines in the PPD files to set the
defaults), reads option settings from the user's command line, and
from the PostScript data stream. Settings in the PostScript data
stream have the highest priority to assure that what one sets in an
application is used. Depending on the option type the settings are
applied to the renderer's (usually GhostScript's) command line, to
the JCL header, or stuffed in at the right place of the PostScript
data stream.
- Support for option settings only acting on a certain page selection
(example: First page on letterhead paper from tray 1, rest on plain
paper from tray 2). Settings must be put into the
"%%BeginPageSetup"/"%%EndPageSetup" sections (or at least right
after the "%%Page:" comments) of the appropriate pages in the
PostScript input file. If necessary, the renderer (usually
GhostScript) is stopped and restarted in the middle of the job, when
certain pages need adifferent command line for the renderer.
- foomatic-rip does neither use temporary files on the disk, nor does
it need to load huge documents completely into memory. All is done
in data streams where not more data than necessary is buffered. To
make this possible foomatic-rip forks into up to six sub-processes.
- The installation is very easy, one needs only foomatic-rip
(absolutely monolithic, no Perl modules needed), a PPD file, and
optionally foomatic-gswrapper. No different files for different
spoolers.
- Custom page size support with all spoolers, when the PPD file has
Adobe-compliant definitions for usage of custom page sizes.
- The spooler-less printing mode of foomatic-rip can be used for
testing and debugging PPD files in arbitrary directories, one simply
specifies them with the new "--ppd" option.
- With PDQ one can print arbitrary file types now, and even set up raw
printers. The PDQ driver files are generated by foomatic-rip, so
the user does not need to download more files than with other
spoolers.
- Under PPR 1.50 and newer foomatic-rip runs as a PPR RIP, under older
versions, as before, as a PPR interface.
- foomatic-configure sets up printer queues based on Foomatic database
entries, arbitrary third-party PPDs (as shipped with PostScript
printers), or raw queues.
- foomatic-configure is much faster when copying or modifying print
queues now, as it does not rebuild the PPD from the Foomatic
database all the time (as long as one does not force a rebuild with
"-f").
- foomatic-addpjloptions works also in regular installations now, not
only in "inplace" installations.
- foomatic-compiledb generates only PPD and XML files now.
- foomatic-datafile is renamed to foomatic-ppdfile, a compatibility
link named foomatic-datafile is set. foomatic-ppdfile generates
only PPDs, the options "-t" and "-f" are ignored.
- foomatic-configure, foomatic-printjob, and all the other scripts
have the same command lines as in Foomatic 2.0. Exceptions: In
foomatic-configure "--oldppd" was dropped, "--ppd" (for setting up a
queue with a third-party PPD file) added, and the meaning of "-f"
(force rebuild of PPD) changed.
Planned for 3.0/Roadmap for 2.9.x:
- Composite options: This is a new option type to make it easier for
users to choose the best settings for a certain printing task, even
if the driver has very many options. The idea is to have an
enumerated choice option which does not directly modify something in
the driver's command line but sets several of the other options.
For example we could have a "Printing Mode" option with the
following choices:
Draft
Normal
High quality
Photo
It would set the options "Media Type", "Resolution", and "Dither" as
follows:
Choice Media Type Resolution Dither
------------------------------------------------------------
Draft Plain Paper 300x300 dpi Fast
Normal Plain Paper 600x600 dpi Adaptive Hybrid
High quality Plain Paper 1200x1200 dpi Adaptive Hybrid
Photo Photo Paper 1200x1200 dpi Even Tone
The member options of the composite option will all get one choice
called "Default"/"Controlled by 'Document Type'" added, which will
get their default setting. If this choice is selected, the option
is set by the composite option according to the table. If the user
wants to modify one of the individual member options, he simply
chooses a value other than "Default". In addition the member options
will be put into a group (named "Custom Document Type"). and the
composite option goes into the same group as "PageSize",
"InputSlot", ... So the user sees the composite option on the "Front
page" of the GUI and can quickly set up print jobs without getting
confused. The user with more special demands goes to the tab with
the member options and makes detailed choices.
- Non-printable margins: Both printer and driver XML database entries
should get a new section for unprintable margins, so that the
"*ImageableArea" entries in the PPD files can be correctly set.
Entries should be possible for printers (printer XML file), for
drivers (main part of driver XML file), for printer/driver combos
(in printer list of driver XML file), and they can contain general
margins (valid for all paper sizes) and paper-size-specific margins.
If for one "*ImageableArea" entry in a PPD file more than one of the
above mentioned possible margin entries applies, the "worst case"
(individually determined for each page border) is inserted. If the
unprintable margins of a printer depend on options settings, the
"worst case" is chosen, too. If full-bleed printing (no borders) is
possible only for certain print modes one should perhaps add
full-bleed page sizes (A4.fullbleed) and allow these only for the
appropriate modes via option conflicts (see below).
- Option groups: Options can be put into groups and subgroups in the
PPD files, so that GUIs can present them in a structured way (in
tabs or in a tree structure). This is already partially implemented.
- Option conflicts: PPDs allow to define conflicts between option
settings, so that one cannot set up things which the printer cannot
do or which dont make sense (Duplex on transparencies, printing from
tray 4 when only 2 trays are installed, ...).
- Printer and driver classes: The class XML files should look like
printer or driver entries, with the same fields and with an
additional member list. If one marks an option or an option choice
as being valid for a class, it is valid for all member printers and
classes, If a printer or driver is a member of a class, all fields
which are left blank in this entry, are filled in with the value
defined in the appropriate field of the class. If the class contains
a comment text, it is shown in addition to the printer's or driver's
own text. This saves from a lot of duplicate entering of data when
adding printers, drivers, options, choice, option groups, or option
conflicts to the database.
-----------------------------------------------------------------------------
YOU MUST BE A LIST MEMBER IN ORDER TO POST TO THE LPRNG MAILING LIST
The address you post from MUST be your subscription address
If you need help, send email to [EMAIL PROTECTED] (or lprng-requests
or lprng-digest-requests) with the word 'help' in the body. For the impatient,
to subscribe to a list with name LIST, send mail to [EMAIL PROTECTED]
with: | example:
subscribe LIST <mailaddr> | subscribe lprng-digest [EMAIL PROTECTED]
unsubscribe LIST <mailaddr> | unsubscribe lprng [EMAIL PROTECTED]
If you have major problems, send email to [EMAIL PROTECTED] with the word
LPRNGLIST in the SUBJECT line.
-----------------------------------------------------------------------------
