summaryrefslogtreecommitdiff
path: root/utils/cups-browsed.conf.5
diff options
context:
space:
mode:
Diffstat (limited to 'utils/cups-browsed.conf.5')
-rw-r--r--utils/cups-browsed.conf.5882
1 files changed, 882 insertions, 0 deletions
diff --git a/utils/cups-browsed.conf.5 b/utils/cups-browsed.conf.5
new file mode 100644
index 000000000..b8c5d68e8
--- /dev/null
+++ b/utils/cups-browsed.conf.5
@@ -0,0 +1,882 @@
+.\"Text automatically generated by txt2man
+.TH cups-browsed.conf 5 "29 June 2013" "" ""
+.SH NAME
+\fBcups-browsed.conf \fP- server configuration file for cups-browsed
+\fB
+.SH DESCRIPTION
+The cups-browsed.conf file configures the cups-browsed daemon. It is normally
+located in the /etc/cups directory. Each line in the file can be a
+configuration directive, a blank line, or a comment. Comment lines start
+with the # character.
+.SH DIRECTIVES
+The "CacheDir" directive determines where cups-browsed should save
+information about the print queues it had generated when shutting down,
+like whether one of these queues was the default printer, or default
+option settings of the queues.
+.PP
+.nf
+.fam C
+ CacheDir /var/cache/cups
+
+.fam T
+.fi
+With "LogDir" can be defined where cups-browsed creates its debug log file
+(if "DebugLogging file" is set).
+.PP
+.nf
+.fam C
+ LogDir /var/log/cups
+
+.fam T
+.fi
+The "DebugLogging" directive determines how should debug logging be done.
+Into the file /var/log/cups/cups-browsed_log ("file"), to stderr ("stderr"), or
+not at all ("none").
+.PP
+.nf
+.fam C
+ DebugLogging file
+ DebugLogging stderr
+ DebugLogging file stderr
+ DebugLogging none
+
+.fam T
+.fi
+Only browse remote printers (via DNS-SD or CUPS browsing) from
+selected servers using the "BrowseAllow", "BrowseDeny", and
+"BrowseOrder" directives
+.PP
+This serves for restricting the choice of printers in print dialogs
+to trusted servers or to reduce the number of listed printers in the
+print dialogs to a more user-friendly amount in large networks with
+very many shared printers.
+.PP
+This only filters the selection of remote printers for which
+cups-browsed creates local queues. If the print dialog uses other
+mechanisms to list remote printers as for example direct DNS-SD
+access, cups-browsed has no influence. cups-browsed also does not
+prevent the user from manually accessing non-listed printers.
+.PP
+"BrowseAllow": Accept printers from these hosts or networks. If there
+are only "BrowseAllow" lines and no "BrowseOrder" and/or "BrowseDeny"
+lines, only servers matching at last one "BrowseAllow" line are
+accepted.
+.PP
+"BrowseDeny": Deny printers from these hosts or networks. If there are
+only "BrowseDeny" lines and no "BrowseOrder" and/or "BrowseAllow"
+lines, all servers NOT matching any of the "BrowseDeny" lines are
+accepted.
+.PP
+"BrowseOrder": Determine the order in which "BrowseAllow" and
+"BrowseDeny" lines are applied. With "BrowseOrder Deny,Allow" in the
+beginning all servers are accepted, then the "BrowseDeny" lines are
+applied to exclude unwished servers or networks and after that the
+"BrowseAllow" lines to re-include servers or networks. With
+"BrowseOrder Allow,Deny" we start with denying all servers, then
+applying the "BrowseAllow" lines and afterwards the "BrowseDeny"
+lines.
+.PP
+Default for "BrowseOrder" is "Deny.Allow" if there are both
+"BrowseAllow" and "BrowseDeny" lines.
+.PP
+If there are no "Browse..." lines at all, all servers are accepted.
+.PP
+.nf
+.fam C
+ BrowseAllow All
+ BrowseAllow 192.168.7.20
+ BrowseAllow 192.168.7.0/24
+ BrowseAllow 192.168.7.0/255.255.255.0
+
+ BrowseDeny All
+ BrowseDeny 192.168.1.13
+ BrowseDeny 192.168.3.0/24
+ BrowseDeny 192.168.3.0/255.255.255.0
+
+ BrowseOrder Deny,Allow
+ BrowseOrder Allow,Deny
+
+.fam T
+.fi
+Filtering of remote printers by other properties than IP addresses of
+their servers
+.PP
+Often the desired selection of printers cannot be reached by only
+taking into account the IP addresses of the servers. For these cases
+there is the BrowseFilter directive to filter by most of the known
+properties of the printer.
+.PP
+By default there is no BrowseFilter line meaning that no filtering is
+applied.
+.PP
+To do filtering one can supply one or more BrowseFilter directives
+like this:
+.PP
+.nf
+.fam C
+ BrowseFilter [NOT] [EXACT] <FIELD> [<VALUE>]
+
+.fam T
+.fi
+The BrowseFilter directive always starts with the word "BrowseFilter"
+and it must at least contain the name of the data field (<FIELD>) of
+the printer's properties to which it should apply.
+.PP
+Available field names are:
+.PP
+.nf
+.fam C
+ name: Name of the local print queue to be created
+ host: Host name of the remote print server
+ port: Port through which the printer is accessed on the server
+ service: DNS/SD service name of the remote printer
+ domain: Domain of the remote print server
+
+.fam T
+.fi
+Also all field names in the TXT records of DNS-SD-advertised printers
+are valid, like "color", "duplex", "pdl", ... If the field name of the
+filter rule does not exist for the printer, the rule is skipped.
+.PP
+The optional <VALUE> field is either the exact value (when the option
+EXACT is supplied) or a regular expression (Run "man 7 regex" in a
+terminal window) to be matched with the data field.
+.PP
+If no <VALUE> filed is supplied, rules with field names of the TXT
+record are considered for boolean matching (true/false) of boolean
+field (like duplex, which can have the values "T" for true and "F" for
+false).
+.PP
+If the option NOT is supplied, the filter rule is fulfilled if the
+regular expression or the exact value DOES NOT match the content of
+the data field. In a boolean rule (without <VALUE>) the rule matches
+false.
+.PP
+Regular expressions are always considered case-insensitive and
+extended POSIX regular expressions. Field names and options (NOT,
+EXACT) are all evaluated case-insensitive. If there is an error in a
+regular expression, the BrowseFilter line gets ignored.
+.PP
+Especially to note is that supplying any simple string consisting of
+only letters, numbers, spaces, and some basic special characters as a
+regular expression matches if it is contained somewhere in the data
+field.
+.PP
+If there is more than one BrowseFilter directive, ALL the directives
+need to be fulfilled for the remote printer to be accepted. If one is
+not fulfilled, the printer will get ignored.
+.PP
+Examples:
+.PP
+Rules for standard data items which are supplied with any remote
+printer advertised via DNS-SD:
+.PP
+Print queue name must contain "hum_res_", this matches "hum_res_mono"
+or "hum_res_color" but also "old_hum_res_mono":
+.PP
+.nf
+.fam C
+ BrowseFilter name hum_res_
+
+.fam T
+.fi
+This matches if the remote host name contains "printserver", like
+"printserver.local", "printserver2.example.com", "newprintserver":
+.PP
+.nf
+.fam C
+ BrowseFilter host printserver
+
+.fam T
+.fi
+This matches all ports with 631 int its number, for example 631, 8631,
+10631,...:
+.PP
+.nf
+.fam C
+ BrowseFilter port 631
+
+.fam T
+.fi
+This rule matches if the DNS-SD service name contains "@ printserver":
+.PP
+.nf
+.fam C
+ Browsefilter service @ printserver
+
+.fam T
+.fi
+Matches all domains with "local" in their names, not only "local" but
+also things like "printlocally.com":
+.PP
+.nf
+.fam C
+ BrowseFilter domain local
+
+.fam T
+.fi
+Examples for rules applying to items of the TXT record:
+.PP
+This rule selects PostScript printers, as the "PDL" field in the TXT
+record contains "postscript" then. This includes also remote CUPS
+queues which accept PostScript, independent of whether the physical
+printer behind the CUPS queue accepts PostScript or not.
+.PP
+.nf
+.fam C
+ BrowseFilter pdl postscript
+
+.fam T
+.fi
+Color printers usually contain a "Color" entry set to "T" (for true)
+in the TXT record. This rule selects them:
+.PP
+.nf
+.fam C
+ BrowseFilter color
+
+.fam T
+.fi
+This is a similar rule to select only duplex (automatic double-sided
+printing) printers:
+.PP
+.nf
+.fam C
+ BrowseFilter duplex
+
+.fam T
+.fi
+Rules with the NOT option:
+.PP
+This rule EXCLUDES printers from all hosts containing "financial" in
+their names, nice to get rid of the 100s of printers of the financial
+department:
+.PP
+.nf
+.fam C
+ BrowseFilter NOT host financial
+
+.fam T
+.fi
+Get only monochrome printers ("Color" set to "F", meaning false, in
+the TXT record):
+.PP
+.nf
+.fam C
+ BrowseFilter NOT color
+
+.fam T
+.fi
+Rules with more advanced use of regular expressions:
+.PP
+Only queue names which BEGIN WITH "hum_res_" are accepted now, so we
+still get "hum_res_mono" or "hum_res_color" but not "old_hum_res_mono"
+any more:
+.PP
+.nf
+.fam C
+ BrowseFilter name ^hum_res_
+
+.fam T
+.fi
+Server names is accepted if it contains "print_server" OR
+"graphics_dep_server":
+.PP
+.nf
+.fam C
+ BrowseFilter host print_server|graphics_dep_server
+
+.fam T
+.fi
+"printserver1", "printserver2", and "printserver3", nothing else:
+.PP
+.nf
+.fam C
+ BrowseFilter host ^printserver[1-3]$
+
+.fam T
+.fi
+Printers understanding at least one of PostScript, PCL, or PDF:
+.PP
+.nf
+.fam C
+ BrowseFilter pdl postscript|pcl|pdf
+
+.fam T
+.fi
+Examples for the EXACT option:
+.PP
+Only printers from "printserver.local" are accepted:
+.PP
+.nf
+.fam C
+ BrowseFilter EXACT host printserver.local
+
+.fam T
+.fi
+Printers from all servers except "prinserver2.local" are accepted:
+.PP
+.nf
+.fam C
+ BrowseFilter NOT EXACT host prinserver2.local
+
+.fam T
+.fi
+The BrowsePoll directive polls a server for available printers once
+every 60 seconds. Multiple BrowsePoll directives can be specified
+to poll multiple servers. The default port to connect to is 631.
+BrowsePoll works independently of whether CUPS browsing is activated
+in BrowseRemoteProtocols.
+.PP
+.nf
+.fam C
+ BrowsePoll 192.168.7.20
+ BrowsePoll 192.168.7.65:631
+ BrowsePoll host.example.com:631
+
+
+.fam T
+.fi
+The BrowseLocalProtocols directive specifies the protocols to use
+when advertising local shared printers on the network. The default
+is "none". Control of advertising of local shared printers using
+dnssd is done in /etc/cups/cupsd.conf.
+.PP
+.nf
+.fam C
+ BrowseLocalProtocols none
+ BrowseLocalProtocols CUPS
+
+
+.fam T
+.fi
+The BrowseRemoteProtocols directive specifies the protocols to use
+when finding remote shared printers on the network. Multiple
+protocols can be specified by separating them with spaces.
+The default is "dnssd cups".
+.PP
+.nf
+.fam C
+ BrowseRemoteProtocols none
+ BrowseRemoteProtocols CUPS dnssd
+ BrowseRemoteProtocols CUPS
+ BrowseRemoteProtocols dnssd
+ BrowseRemoteProtocols ldap
+
+.fam T
+.fi
+The BrowseProtocols directive specifies the protocols to use when
+finding remote shared printers on the network and advertising local
+shared printers. "dnssd" and "ldap" are ignored for BrowseLocalProtocols.
+Multiple protocols can be specified by separating them with spaces. The
+default is "none" for BrowseLocalProtocols and "dnssd cups" for
+BrowseRemoteProtocols.
+.PP
+.nf
+.fam C
+ BrowseProtocols none
+ BrowseProtocols CUPS dnssd
+ BrowseProtocols CUPS
+ BrowseProtocols dnssd
+ BrowseProtocols ldap
+
+.fam T
+.fi
+The configuration for the LDAP browsing mode define where the LDAP search
+should be performed. If built with an LDAP library that supports TLS, the
+path to the server's certificate, or to a certificates store, can be
+specified.
+The optional filter allows the LDAP search to be more specific, and is used
+in addition to the hardcoded filter (objectclass=cupsPrinter).
+.PP
+.nf
+.fam C
+ BrowseLDAPBindDN cn=cups-browsed,dc=domain,dc=tld
+ BrowseLDAPCACertFile /path/to/server/certificate.pem
+ BrowseLDAPDN ou=printers,dc=domain,dc=tld
+ BrowseLDAPFilter (printerLocation=/Office 1/*)
+ BrowseLDAPPassword s3cret
+ BrowseLDAPServer ldaps://ldap.domain.tld
+
+.fam T
+.fi
+The DomainSocket directive specifies the domain socket through which
+the locally running CUPS daemon is accessed. If not specified the
+standard domain socket of CUPS is used. Use this if you have specified
+an alternative domain socket for CUPS via a Listen directive in
+/etc/cups/cupsd.conf. If cups-browsed is not able to access the local
+CUPS daemon via a domain socket it accesses it via localhost. "None"
+or "Off" lets cups-browsed not use CUPS' domain socket.
+.PP
+.nf
+.fam C
+ DomainSocket /var/run/cups/cups.sock
+ DomainSocket None
+ DomainSocket Off
+
+.fam T
+.fi
+Set HTTP timeout (in seconds) for requests sent to local/remote
+resources Note that too short timeouts can make services getting
+missed when they are present and operations be unneccesarily
+repeated and too long timeouts can make operations take too long
+when the server does not respond.
+.PP
+.nf
+.fam C
+ HttpLocalTimeout 5
+ HttpRemoteTimeout 10
+
+.fam T
+.fi
+The interval between browsing/broadcasting cycles, local and/or
+remote, can be adjusted with the BrowseInterval directive.
+.PP
+.nf
+.fam C
+ BrowseInterval 60
+
+.fam T
+.fi
+The BrowseTimeout directive determines the amount of time that
+browsing-related operations are allowed to take in seconds.
+Notably, adding or removing one printer queue is considered as one
+operation. The timeout applies to each one of those operations.
+Especially queues discovered by CUPS broadcasts will be removed after
+this timeout if no further broadcast from the server happens.
+.PP
+.nf
+.fam C
+ BrowseTimeout 300
+
+.fam T
+.fi
+Set OnlyUnsupportedByCUPS to "Yes" will make cups-browsed not create
+local queues for remote printers for which CUPS creates queues by
+itself. These printers are printers advertised via DNS-SD and doing
+CUPS-supported (currently PWG Raster and Apple Raster) driverless
+printing, including remote CUPS queues. Queues for other printers
+(like for legacy PostScript/PCL printers) are always created
+(depending on the other configuration settings of cups-browsed).
+
+With OnlyUnsupportedByCUPS set to "No", cups-browsed creates queues
+for all printers which it supports, including printers for which CUPS
+would create queues by itself. Temporary queues created by CUPS will
+get overwritten. This way it is assured that any extra functionality
+of cups-browsed will apply to these queues. As queues created by
+cups-browsed are permanent CUPS queues this setting is also
+recommended if applications/print dialogs which do not support
+temporary CUPS queues are installed. This setting is the default.
+.PP
+.nf
+.fam C
+ OnlyUnsupportedByCUPS Yes
+
+.fam T
+.fi
+With the directives LocalQueueNamingRemoteCUPS and
+LocalQueueNamingIPPPrinter you can determine how the names for local
+queues generated by cups-browsed are generated, separately for remote
+CUPS printers and IPP printers.
+
+"DNS-SD" (the default in both cases) bases the naming on the service
+name of the printer's advertised DNS-SD record. This is exactly the
+same naming scheme as CUPS uses for its temporary queues, so the local
+queue from cups-browsed prevents CUPS from listing and creating an
+additional queue. As DNS-SD service names have to be unique, queue
+names of printers from different servers will also be unique and so
+there is no automatic clustering for load-balanced printing.
+
+"MakeModel" bases the queue name on the printer's manufacturer and
+model names. This scheme cups-browsed used formerly for IPP printers.
+
+"RemoteName" is only available for remote CUPS queues and uses the
+name of the queue on the remote CUPS server as the local queue's
+name. This makes printers on different CUPS servers with equal queue
+names automatically forming a load-balancing cluster as CUPS did
+formerly (CUPS 1.5.x and older) with CUPS-broadcasted remote
+printers. This scheme cups-browsed used formerly for remote CUPS
+printers.
+.PP
+.nf
+.fam C
+ LocalQueueNamingRemoteCUPS DNS-SD
+ LocalQueueNamingRemoteCUPS MakeModel
+ LocalQueueNamingRemoteCUPS RemoteName
+ LocalQueueNamingIPPPrinter DNS-SD
+ LocalQueueNamingIPPPrinter MakeModel
+
+.fam T
+.fi
+Set IPBasedDeviceURIs to "Yes" if cups-browsed should create its local
+queues with device URIs with the IP addresses instead of the host
+names of the remote servers. This mode is there for any problems with
+host name resolution in the network, especially also if avahi-daemon
+is only run for printer discovery and already stopped while still
+printing. By default this mode is turned off, meaning that we use URIs
+with host names.
+.PP
+If you prefer IPv4 or IPv6 IP addresses in the URIs, you can set
+IPBasedDeviceURIs to "IPv4" to only get IPv4 IP addresses or
+IPBasedDeviceURIs to "IPv6" to only get IPv6 IP addresses.
+.PP
+.nf
+.fam C
+ IPBasedDeviceURIs No
+ IPBasedDeviceURIs Yes
+ IPBasedDeviceURIs IPv4
+ IPBasedDeviceURIs IPv6
+
+.fam T
+.fi
+Set CreateRemoteRawPrinterQueues to "Yes" to let cups-browsed also
+create local queues pointing to remote raw CUPS queues. Normally,
+only queues pointing to remote queues with PPD/driver are created
+as we do not use drivers on the client side, but in some cases
+accessing a remote raw queue can make sense, for example if the
+queue forwards the jobs by a special backend like Tea4CUPS.
+.PP
+.nf
+.fam C
+ CreateRemoteRawPrinterQueues Yes
+
+.fam T
+.fi
+cups-browsed by default creates local print queues for each shared
+CUPS print queue which it discovers on remote machines in the local
+network(s). Set CreateRemoteCUPSPrinterQueues to "No" if you do not
+want cups-browsed to do this. For example you can set cups-browsed
+to only create queues for IPP network printers setting
+CreateIPPPrinterQueues not to "No" and CreateRemoteCUPSPrinterQueues
+to "No".
+.PP
+.nf
+.fam C
+ CreateRemoteCUPSPrinterQueues No
+
+.fam T
+.fi
+Set CreateIPPPrinterQueues to "All" to let cups-browsed discover IPP
+network printers (native printers, not CUPS queues) with known page
+description languages (PWG Raster, PDF, PostScript, PCL XL, PCL
+5c/e) in the local network and auto-create print queues for them.
+
+Set CreateIPPPrinterQueues to "Everywhere" to let cups-browsed
+discover IPP Everywhere printers in the local network (native
+printers, not CUPS queues) and auto-create print queues for them.
+
+Set CreateIPPPrinterQueues to "AppleRaster" to let cups-browsed
+discover Apple Raster printers in the local network (native
+printers, not CUPS queues) and auto-create print queues for them.
+
+Set CreateIPPPrinterQueues to "Driverless" to let cups-browsed
+discover printers designed for driverless use (currently IPP
+Everywhere and Apple Raster) in the local network (native printers,
+not CUPS queues) and auto-create print queues for them.
+
+Set CreateIPPPrinterQueues to "LocalOnly" to auto-create print
+queues only for local printers made available as IPP printers. These
+are for example IPP-over-USB printers, made available via
+ippusbxd(8). This is the default.
+
+Set CreateIPPPrinterQueues to "No" to not auto-create print queues
+for IPP network printers.
+
+If queues with PPD file are created (see IPPPrinterQueueType
+directive below) the PPDs are auto-generated by cups-browsed based
+on properties of the printer polled via IPP. In case of missing
+information, info from the Bonjour record is used asd as last mean
+default values.
+
+If queues without PPD (see IPPPrinterQueueType directive below) are
+created clients have to IPP-poll the capabilities of the printer and
+send option settings as standard IPP attributes. Then we do not poll
+the capabilities by ourselves to not wake up the printer from
+power-saving mode when creating the queues. Jobs have to be sent in
+one of PDF, PWG Raster, or JPEG format. Other formats are not
+accepted.
+
+This functionality is primarily for mobile devices running
+CUPS to not need a printer setup tool nor a collection of printer
+drivers and PPDs.
+.PP
+.nf
+.fam C
+ CreateIPPPrinterQueues No
+ CreateIPPPrinterQueues LocalOnly
+ CreateIPPPrinterQueues Everywhere
+ CreateIPPPrinterQueues AppleRaster
+ CreateIPPPrinterQueues Everywhere AppleRaster
+ CreateIPPPrinterQueues Driverless
+ CreateIPPPrinterQueues All
+
+.fam T
+.fi
+If cups-browsed is automatically creating print queues for native
+IPP network printers ("CreateIPPPrinterQueues Yes"), the type of
+queue to be created can be selected by the "IPPPrinterQueueType"
+directive. The "PPD" (default) setting makes queues with PPD file
+being created. With "Interface" or "NoPPD" the queue is created with
+a System V interface script (Not supported with CUPS 2.2.x or
+later). "Auto" is for backward compatibility and also lets queues
+with PPD get created.
+.PP
+.nf
+.fam C
+ IPPPrinterQueueType PPD
+ IPPPrinterQueueType NoPPD
+ IPPPrinterQueueType Interface
+ IPPPrinterQueueType Auto
+
+.fam T
+.fi
+The NewIPPPrinterQueuesShared directive determines whether a print
+queue for a newly discovered IPP network printer (not remote CUPS
+queue) will be shared to the local network or not. This is only
+valid for newly discovered printers. For printers discovered in an
+earlier cups-browsed session, cups-browsed will remember whether the
+printer was shared, so changes by the user get conserved. Default is
+not to share newly discovered IPP printers.
+.PP
+.nf
+.fam C
+ NewIPPPrinterQueuesShared Yes
+
+.fam T
+.fi
+If there is more than one remote CUPS printer whose local queue
+would get the same name and AutoClustering is set to "Yes" (the
+default) only one local queue is created which makes up a
+load-balancing cluster of the remote printers which would get this
+queue name (implicit class). This means that when several jobs are
+sent to this queue they get distributed between the printers, using
+the method chosen by the LoadBalancing directive.
+.PP
+Note that the forming of clusters depends on the naming scheme for
+local queues created by cups-browsed. If you have set
+LocalQueueNamingRemoteCUPS to "DNSSD" you will not get automatic
+clustering as the DNS-SD service names are always unique. With
+LocalQueueNamingRemoteCUPS set to "RemoteName" local queues are
+named as the CUPS queues on the remote servers are named and so
+equally named queues on different servers get clustered (this is how
+CUPS did it in version 1.5.x or older). LocalQueueNamingRemoteCUPS
+set to "MakeModel" makes remote printers of the same model get
+clustered. Note that then a cluster can contain more than one queue
+of the same server.
+.PP
+With AutoClustering set to "No", for each remote CUPS printer an
+individual local queue is created, and to avoid name clashes when
+using the LocalQueueNamingRemoteCUPS settings "RemoteName" or
+"MakeModel" "@<server name>" is added to the local queue name.
+.PP
+Only remote CUPS printers get clustered, not IPP network printers or
+IPP-over-USB printers.
+.PP
+.nf
+.fam C
+ AutoClustering Yes
+ AutoClustering No
+
+.fam T
+.fi
+Load-balancing printer cluster formation can also be manually
+controlled by defining explicitly which remote CUPS printers should
+get clustered together.
+.PP
+This is done by the "Cluster" directive:
+.PP
+.nf
+.fam C
+ Cluster <QUEUENAME>: <EXPRESSION1> <EXPRESSION2> ...
+ Cluster <QUEUENAME>
+
+.fam T
+.fi
+If no expressions are given, <QUEUENAME> is used as the first and
+only expression for this cluster.
+.PP
+Discovered printers are matched against all the expressions of all
+defined clusters. The first expression which matches the discovered
+printer determines to which cluster it belongs. Note that this way a
+printer can only belong to one cluster. Once matched, further
+cluster definitions will not checked any more.
+.PP
+With the first printer matching a cluster's expression a local queue
+with the name <QUEUENAME> is created. If more printers are
+discovered and match this cluster, they join the cluster. Printing
+to this queue prints to all these printers in a load-balancing
+manner, according to to the setting of the LoadBalancing directive.
+.PP
+Each expression must be a string of characters without spaces. If
+spaces are needed, replace them by underscores ('_').
+.PP
+An expression can be matched in three ways:
+.PP
+.nf
+.fam C
+ 1. By the name of the CUPS queue on the remote server
+ 2. By make and model name of the remote printer
+ 3. By the DNS-SD service name of the remote printer
+
+.fam T
+.fi
+Note that the matching is done case-insensitively and any group of
+non-alphanumerical characters is replaced by a single underscore.
+.PP
+So if an expression is "HP_DeskJet_2540" and the remote server
+reports "hp Deskjet-2540" the printer gets matched to this cluster.
+.PP
+If "AutoClustering" is not set to "No" both your manual cluster
+definitions will be followed and automatic clustering of
+equally-named remote queues will be performed. If a printer matches
+in both categories the match to the manually defined cluster has
+priority. Automatic clustering of equally-named remote printers is
+not performed if there is a manually defined cluster with this name
+(at least as the printers do not match this cluster).
+.PP
+Examples:
+.PP
+To cluster all remote CUPS queues named "laserprinter" in your local
+network but not cluster any other equally-named remote CUPS printers
+use (Local queue will get named "laserprinter"):
+.PP
+.nf
+.fam C
+ AutoClustering No
+ Cluster laserprinter
+
+.fam T
+.fi
+To cluster all remote CUPS queues of HP LaserJet 4050 printers in a
+local queue named "LJ4050":
+.PP
+.nf
+.fam C
+ Cluster LJ4050: HP_LaserJet_4050
+
+.fam T
+.fi
+As DNS-SD service names are unique in a network you can create a
+cluster from exactly specified printers (spaces replaced by
+underscors):
+.PP
+.nf
+.fam C
+ Cluster hrdep: oldlaser_@_hr-server1 newlaser_@_hr-server2
+
+.fam T
+.fi
+The LoadBalancing directive switches between two methods of handling
+load balancing between equally-named remote queues which are
+represented by one local print queue making up a cluster of them
+(implicit class).
+.PP
+The two methods are:
+.PP
+Queuing of jobs on the client (LoadBalancing QueueOnClient):
+.PP
+Here we queue up the jobs on the client and regularly check the
+clustered remote print queues. If we find an idle queue, we pass
+on a job to it.
+.PP
+This is also the method which CUPS uses for classes. Advantage is a
+more even distribution of the job workload on the servers
+(especially if the printing speed of the servers is very different),
+and if a server fails, there are not several jobs stuck or
+lost. Disadvantage is that if one takes the client (laptop, mobile
+phone, ...) out of the local network, printing stops with the jobs
+waiting in the local queue.
+.PP
+Queuing of jobs on the servers (LoadBalancing QueueOnServers):
+.PP
+Here we check the number of jobs on each of the clustered remote
+printers and send an incoming job immediately to the remote printer
+with the lowest amount of jobs in its queue. This way no jobs queue
+up locally, all jobs which are waiting are waiting on one of the
+remote servers.
+.PP
+Not having jobs waiting locally has the advantage that we can take
+the local machine from the network and all jobs get printed.
+Disadvantage is that if a server with a full queue of jobs goes
+away, the jobs go away, too.
+.PP
+Default is queuing the jobs on the client as this is what CUPS does
+with classes.
+.PP
+.nf
+.fam C
+ LoadBalancing QueueOnClient
+ LoadBalancing QueueOnServers
+
+.fam T
+.fi
+With the DefaultOptions directive one or more option settings can be
+defined to be applied to every print queue newly created by
+cups-browsed. Each option is supplied as one supplies options with the
+"-o" command line argument to the "lpadmin" command (Run "man lpadmin"
+for more details). More than one option can be supplied separating the
+options by spaces. By default no option settings are pre-defined.
+.PP
+Note that print queues which cups-browsed already created before
+remember their previous settings and so these settings do not get
+applied.
+.PP
+.nf
+.fam C
+ DefaultOptions Option1=Value1 Option2=Value2 Option3 noOption4
+
+.fam T
+.fi
+The AutoShutdown directive specifies whether cups-browsed should
+automatically terminate when it has no local raw queues set up
+pointing to any discovered remote printers or no jobs on such queues
+depending on AutoShutdownOn setting (auto shutdown
+mode). Setting it to "On" activates the auto-shutdown mode, setting it
+to "Off" deactivates it (the default). The special mode "avahi" turns
+auto shutdown off while avahi-daemon is running and on when
+avahi-daemon stops. This allows running cups-browsed on-demand when
+avahi-daemon is run on-demand.
+.PP
+.nf
+.fam C
+ AutoShutdown Off
+ AutoShutdown On
+ AutoShutdown avahi
+
+.fam T
+.fi
+The AutoShutdownOn directive determines what event cups-browsed
+considers as inactivity in auto shutdown mode. "NoQueues" (the
+default) means that auto shutdown is initiated when there are no
+queues for discovered remote printers generated by cups-browsed any
+more. "NoJobs" means that all queues generated by cups-browsed are
+without jobs.
+.PP
+.nf
+.fam C
+ AutoShutdownOn NoQueues
+ AutoShutdownOn NoJobs
+
+.fam T
+.fi
+The AutoShutdownTimeout directive specifies after how many seconds
+without local raw queues set up pointing to any discovered remote
+printers or jobs on these queues cups-browsed should actually shut
+down in auto shutdown mode. Default is 30 seconds, 0 means immediate
+shutdown.
+.PP
+.nf
+.fam C
+ AutoShutdownTimeout 20
+
+.fam T
+.fi
+.SH SEE ALSO
+
+\fBcups-browsed\fP(8)
+.PP
+/usr/share/doc/cups-browsed/README.gz
+.SH AUTHOR
+The authors of cups-browsed are listed in /usr/share/doc/cups-browsed/AUTHORS.
+.PP
+This manual page was written for the Debian Project, but it may be used by others.