A number of CUPS features have been adapted for openSUSE. Some of the most important changes are covered here.
After having performed a default installation of openSUSE, SuSEfirewall2
is active and the external network devices are configured to be in the
External Zone which blocks incoming traffic. These
default settings have to be adjusted when using CUPS. More information
about the SUSEfirewall2 configuration is available in Section 35.4, “SuSEfirewall2”.
Normally a CUPS client runs on a regular workstation located in a network
behind a firewall. In this case it is recommended to configure the
external network devices to be in the Internal Zone,
so the workstation is reachable from within the network.
If the CUPS server is part of network protected by a firewall, the
external network device should be configured to be in the
Internal Zone of the firewall. When being part of the
external zone, the TCP and UDP port 631 needs to be opened in order to
make the CUPS server available in the network.
The access permissions set for BrowseAllow and
BrowseDeny apply to all kinds of packages sent to
cupsd. The default settings in
/etc/cups/cupsd.conf are as follows:
BrowseAllow @LOCAL BrowseDeny All
and
<Location /> Order Deny,Allow Deny From All Allow From 127.0.0.1 Allow From 127.0.0.2 Allow From @LOCAL </Location>
In this way, only LOCAL hosts can access
cupsd on a CUPS server. LOCAL hosts
are hosts whose IP addresses belong to a non-PPP interface (interfaces
whose IFF_POINTOPOINT flags are not set) and whose IP
addresses belong to the same network as the CUPS server. Packets from all
other hosts are rejected immediately.
In a standard installation, cupsd is activated
automatically, enabling comfortable access to the queues of CUPS network
servers without any additional manual actions. The items in
Section 7.7.2.1, “Generalized Functionality for BrowseAllow and
BrowseDeny” are vital preconditions for
this feature, because otherwise the security would not be sufficient for
an automatic activation of cupsd.
The YaST printer configuration sets up the queues for CUPS using only
the PPD files installed in /usr/share/cups/model.
To find the suitable PPD files for the printer model, YaST
compares the vendor and model determined during hardware detection with
the vendors and models in all PPD files available in
/usr/share/cups/model on the system. For this
purpose, the YaST printer configuration generates a database from the
vendor and model information extracted from the PPD files. When you
select a printer from the list of vendors and models, receive the PPD
files matching the vendor and model.
The configuration using only PPD files and no other information sources has
the advantage that the PPD files in
/usr/share/cups/model can be modified freely. The
YaST printer configuration recognizes changes and regenerates the vendor
and model database. For example, if you only have PostScript printers,
normally you do not need the Foomatic PPD files in the
cups-drivers package or the Gimp-Print PPD files
in the cups-drivers-stp package. Instead, the PPD
files for your PostScript printers can be copied directly to
/usr/share/cups/model (if they do not already exist
in the manufacturer-PPDs package) to achieve an
optimum configuration for your printers.
The generic PPD files in the cups package have
been complemented with adapted Foomatic PPD files for PostScript level 1
and level 2 printers:
/usr/share/cups/model/Postscript-level1.ppd.gz
/usr/share/cups/model/Postscript-level2.ppd.gz
Normally, the Foomatic printer filter
foomatic-rip is used together with Ghostscript
for non-PostScript printers. Suitable Foomatic PPD files have the entries
*NickName: ... Foomatic/Ghostscript driver and
*cupsFilter: ... foomatic-rip. These PPD files
are located in the cups-drivers package.
YaST prefers a Foomatic PPD file if a Foomatic PPD file with the entry
*NickName: ... Foomatic ... (recommended) matches
the printer model and the manufacturer-PPDs
package does not contain a more suitable PPD file.
Instead of foomatic-rip, the CUPS filter
rastertoprinter from Gimp-Print can be used for
many non-PostScript printers. This filter and suitable Gimp-Print PPD
files are available in the cups-drivers-stp
package. The Gimp-Print PPD files are located in
/usr/share/cups/model/stp/ and have the entries
*NickName: ... CUPS+Gimp-Print and
*cupsFilter: ... rastertoprinter.
The manufacturer-PPDs package contains PPD files
from printer manufacturers that are released under a sufficiently liberal
license. PostScript printers should be configured with the suitable PPD
file of the printer manufacturer, because this file enables the use of all
functions of the PostScript printer. YaST prefers a PPD file from the
manufacturer-PPDs package if the following
conditions are met:
The vendor and model determined during the hardware detection match the
vendor and model in a PPD file from the
manufacturer-PPDs package.
The PPD file from the manufacturer-PPDs
package is the only suitable PPD file for the printer model or a there
is a Foomatic PPD file with a *NickName: ...
Foomatic/Postscript (recommended) entry that also matches
the printer model.
Accordingly, YaST does not use any PPD file from the
manufacturer-PPDs package in the following cases:
The PPD file from the the manufacturer-PPDs
package does not match the vendor and model. This may happen if the
manufacturer-PPDs package contains only one PPD
file for similar models, for example, if there is no separate PPD file
for the individual models of a model series, but the model name is
specified in a form like Funprinter 1000 series
in the PPD file.
The Foomatic PostScript PPD file is not recommended. This may be because the printer model does not operate efficiently enough in PostScript mode, for example, the printer may be unreliable in this mode because it has too little memory or the printer is too slow because its processor is too weak. Furthermore, the printer may not support PostScript by default, for example, because PostScript support is only available as an optional module.
If a PPD file from the manufacturer-PPDs package
is suitable for a PostScript printer, but YaST cannot configure it for
these reasons, select the respective printer model manually in YaST.