| Solaris |
|
|
The Solaris print system source code is is comprised of components from various sources. At the core of the print system is a Unix System V (r4) based spooler. Along with the spooler are client applications to make requests of and manage the spooler, filters to perform document translation, back-end processing software to perform final document transformation and device (printer) communication. To obtain a complete set of functionality, all sources are required.
The OpenSolaris code base can be found at http://cvs.opensolaris.org/source/xref/usr/src/
and contains the following Solaris Printing components:
|Solaris LP code
| Original Solaris LP code base. Contains spooler, postscript filters, terminfo files, PAPI interface code, and more |
| Solaris PostScript filters usr/src/cmd/lp/postscript |
| Base postscript filters |
| Solaris LP spooler usr/src/cmd/lp/cmd/lpsched |
| Base Solaris LP spooler |
| PAPI Solaris LP interface code usr/src/cmd/lp/lib/papi |
| Support for applications using the PAPI to interact with the Solaris LP spooler |
| Legacy RFC-1179 to lpsched translator usr/src/cmd/lp/cmd/bsd-adaptor |
| Support for translating legacy protocol listener requests to lpsched messages. |
| Legacy backend processing scripts usr/src/cmd/lp/model/[net]standard |
| standard/netstandard interface scripts use for several years to perform final job processing and send job data to local and network attached printers |
| Modified backend processing scripts usr/src/cmd/lp/model/*_foomatic |
| modified versions of the *standard interface scripts that use foomatic for final job data transformation to a printer ready format. |
| New backend processing script usr/src/cmd/lp/model/uri |
| New backend processing script that optionally uses foomatic for final job data transformation to a printer ready format and uses helper modules (like smbspool) to send job data to a local or network attached printer. |
| Local Printer I/O handler usr/src/cmd/lp/model/lp.cat.c |
| incredibly simplistic local printer I/O handler |
| Local PostScript Printer I/O handler usr/src/cmd/lp/filter/postscript/postio |
| more sophisticated local printer I/O handler |
| Network Printer I/O handler usr/src/cmd/lp/model/netpr |
| network printer I/O handler for printers that support raw sockets or "lpd" protocol |
| Solaris Client code usr/src/cmd/print |
| Client comands (lp/lpr/lpstat/lpq/cancel/lprm/...), in.lpd rfc-1179 protocol listener, print manager, and more. The client commands will be replaced with PAPI based implementations in short order. |
| Legacy RFC-1179 listener usr/src/cmd/print/gateway |
| Legacy RFC-1179 protocol listening service that will ultimately be replaced with a PAPI based version. |
| Solaris PrintMgr code usr/src/cmd/print/printmgr |
| JAVA based configuration management GUI that eases queue creation/modification. |
| Printer probe usr/src/cmd/print/printer-info |
| A program to probe USB and ECPP connected printers for Make/Model information used by the printmgr. |
| Various scripts usr/src/cmd/print/scripts |
| Various scripts including retreival of information from the PPD cache file used by the printmgr. |
| Solaris common client library usr/src/lib/print |
| Common code for client commands and client side management commands. As PAPI based client commands integrate, much of this code will dissappear. |
| Name Service Switch support usr/src/lib/nsswitch/*/common/getprinter.c |
| Name Service Switch support for client commands to get configuration data from a variety of sources including network repositories |
The Free Standard Group OpenPrinting API (PAPI) code base can be found at
http://cvs.sf.net/viewcvs.py/openprinting/papi and contains the following components:
|PAPI Shared routines
| Common routines used by most, if not all, of the PAPI support. This includes an implementation of the attributes interface and several helper functions |
| PAPI Dynamic library papi/source/libpapi-dynamic/ |
| PAPI library that provides names service lookup support and redirection to alternate PAPI implementations. |
| PAPI RFC-1179/LPD support papi/source/libpapi-lpd/ |
| PAPI support for interacting with RFC-1179/LPD protocol servers. |
| PAPI CUPS support papi/source/libpapi-cups/ |
| PAPI support for interacting with CUPS spooler using libcups interfaces. |
| PAPI IPP support papi/source/libpapi-ipp/ |
| PAPI support for interacting with IPP based protocol servers. This includes servers like Solaris LP, CUPS, WinXP, and more. |
| Core IPP protocol library papi/source/libipp-core/ |
| IPP encoding/decoding and on the wire support |
| IPP listening service operations library papi/source/libipp-listener/ |
| Server side IPP operations support |
| Apache IPP listener module papi/source/mod_ipp |
| Apache glue module for passing IPP requests to the IPP listener library and ultimately the print service. (supports both Apache 1.X and 2.X) |
| BSD & SYSV commands papi/source/bsd-sysv-commands |
| Replacement implementations of common BSD & SYSV print commands using the PAPI for print service interaction. (lpr/lpq/lprm/lpc) (lp/lpstat/cancel/accept/reject/enable/disable) |
| Example code using the PAPI papi/source/examples/ |
| Sample code that shows how to use the PAPI |
| PAPI specification and documentation papi/docs |
| PAPI specification and documentation about code in the source base. |
The balance of the components can be found in various Open Source repositories throughout the internet.
|GhostScript
http://www.cups.org/espgs/index.php
Terms of Use
|
Privacy
|
Trademarks
|
Copyright Policy
|
Site Guidelines
|
Site Map
|
Help
Your use of this web site or any of its content or software indicates your agreement to be bound by these Terms of Use.
© 2012, Oracle Corporation and/or its affiliates.