CAPS Universe documentation
1.0.4
All you need to know to be successful
|
How to install all CAPS universe components to you system.
Find here a collection of information about how to install the CAPS universe onto your computer.
The CAPS universe components have some run-time requirements into the filesystem.
Installing from source is the method described here. You can get the sources via two ways:
Installation from Repository Resources
Installation from Archive Resources
Installing CAPS universe requires some base shared libraries to be installed first. The following list defines all of those shared libraries and - more important - its build order as well. Some of them have their own dependencies to the outer world.
The libcapsbase is the first library for the CAPS universe. It handles some basic things like message filtering and filesystem paths used by all CAPS universe components. This library is used by almost all other CAPS universe components.
The libcapstable provides a dynamic array implementation for all kind of data. Other libraries of the CAPS universe makes use of it.
This library requires libcapsbase.
The libcapsinif provides a key/value store feed by a textual INI file.
It can merge multiple INI files into one key/value store. Merging can happen by overlaying (e.g. existing settings can be replaced by the next INI file) or keeping all INI file content separate in the key/value store. The former will be used for cascading configuration INI files, the latter one to read in INI file based databases (list of installed printer drivers for example)
All applications can retrieve settings from this key/value store and acting accordingly.
This library requires libcapsbase and libcapstable.
The libcapsmime provides an API for MIME type detection. It can use libmagic for this job or - if libmagic isn't available - can check for a couple of file types by itself.
This library requires libcapsbase and libmagic (on demand).
The libcapsppd deals with PPD files (aka. Postscript Printer Description).
PPD files are created on the fly from a generic printer description (refer caps_ppd_base).
The other way round it can also read in a PPD file and provides its content in a key/value store manner.
This library requires libcapsbase, libcapstable, libcapsinif and libpaper.
The Printing Coordinator is the main application in the CAPS universe. It manages available printing devices (aka printing providers) and offers their information to clients via DBUS.
The other way round, it accepts print jobs from clients and forwards them to the dedicated (and online) printing devices.
Neither the client, nor the printing device need to know how to communicate with the Printing Coordinator. Both use their own library to deal with it:
The client side are all kind of applications which want to print something. They can retrieve the list of available printers, query their capabilities, send print job to it and track the print job's status to keep the user informed about any print progress.
At the printer device side self hosted printer drivers run - one individual process per printer device. Each process has full control over its own printer device, checks its state, receives print jobs from the printing coordinator, processes them and finally sends the resulting printing data to the printer device. And it reports all printer device state changes to the printing coordinator to keep the clients e.g. the user informed.
It requires libcapsbase, libcapstable, libcapsinif, libcapsppd and libdbus and libsystemd.
libdbus-1-dev
and libsystemd-dev
from the distribution are required.The CAPS Printing System Integration brings in the tools to launch printer drivers if their corresponding device occurs in the system (e.g. is online).
Currently only USB based printers are supported. Such a printer offers its unique VID/PID (aka Vendor ID and Product ID) to the system and this information is used to identify its corresponding driver via the Device Description INI files in the CAPS Printer Driver Database Directory.
It maintains a database in CAPS Printer Device Database Directory of already known printing devices to be able to configure them in a persistent manner.
It requires libcapsbase, libcapsinif, libcapsprovider, libudev and libsystemd.
libudev-dev
from the distribution is required.Install Printing System Integration
The libcapsraster provides an API to rasterize various document formats in order to convert them into the printer's wire data format by an printing provider.
This library requires libcapsbase, libcapstable, libcapsprovider, libcapsppd and libcapsmime.
Depending on the supported document formats further external libraries are required to rasterize:
libcups2-dev
are required for CUPS raster. For muPDF refer PDF rasterizer. The libcapsdriver is a framework and a collection of helper functions to simplify printer driver development, since it hides all the communication, rasterization and reporting details of the CAPS universe.
This library requires libcapsbase, libcapsprovider, libcapsraster and libcapsppd
The CAPS Printer Driver Collection is one package which supports printer devices from various vendors.
This package requires the full CAPS universe to already be installed.
Install the Printer Driver Collection