@@ -1061,24 +1368,34 @@ determine how the server operates:
BrowseOrder
BrowsePoll
BrowsePort
+BrowseProtocols
BrowseRelay
BrowseShortNames
BrowseTimeout
Browsing
Classification
+ClassifyOverride
+ConfigFilePerm
DataDir
DefaultCharset
DefaultLanguage
Deny
DocumentRoot
- | |
Encryption
ErrorLog
+FaxRetryInterval
+ | |
+FaxRetryLimit
+FileDevice
FilterLimit
+FilterNice
FontPath
Group
+HideImplicitMembers
HostNameLookups
+ImplicitAnyClasses
ImplicitClasses
+Include
KeepAliveTimeout
KeepAlive
Limit
@@ -1086,25 +1403,31 @@ determine how the server operates:
LimitRequestBody
Listen
Location
+LogFilePerm
LogLevel
MaxClients
+MaxClientsPerHost
+MaxCopies
MaxJobs
MaxJobsPerPrinter
MaxJobsPerUser
MaxLogSize
MaxRequestSize
Order
+ | |
PageLog
- | |
Port
PreserveJobFiles
PreserveJobHistory
Printcap
PrintcapFormat
+PrintcapGUI
+ReloadTimeout
RemoteRoot
RequestRoot
Require
RIPCache
+RootCertDuration
RunAsUser
Satisfy
ServerAdmin
@@ -1113,6 +1436,7 @@ determine how the server operates:
ServerKey
ServerName
ServerRoot
+ServerTokens
SSLListen
SSLPort
SystemGroup
@@ -1135,16 +1459,16 @@ AccessLog syslog
Description
-The AccessLog directive sets the name of the access log
-file. If the filename is not absolute then it is assumed to be relative
-to the ServerRoot directory. The
-access log file is stored in "common log format" and can be used by any
-web access reporting tool to generate a report on CUPS server activity.
+The AccessLog directive sets the name of the access log
+ file. If the filename is not absolute then it is assumed to be relative
+ to the ServerRoot directory. The
+ access log file is stored in "common log format" and can be used by any
+ web access reporting tool to generate a report on CUPS server activity.
The server name can be included in the filename by using %s
- in the name.
-The special name "syslog" can be used to send the access information
-to the system log instead of a plain file.
-The default access log file is /var/log/cups/access_log.
+ in the name.
+The special name "syslog" can be used to send the access information
+ to the system log instead of a plain file.
+The default access log file is /var/log/cups/access_log.
@@ -1163,14 +1487,16 @@ Allow from nnn.nnn.nnn.*
Allow from nnn.nnn.nnn.nnn
Allow from nnn.nnn.nnn.nnn/mm
Allow from nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
+Allow from @LOCAL
+Allow from @IF(name)
Description
-The Allow directive specifies a hostname, IP address,
-or network that is allowed access to the server. Allow
- directives are cummulative, so multiple Allow directives
-can be used to allow access for multiple hosts or networks. The
-/mm notation specifies a CIDR netmask:
+ The Allow directive specifies a hostname, IP address, or
+ network that is allowed access to the server. Allow
+ directives are cummulative, so multiple Allow directives
+ can be used to allow access for multiple hosts or networks. The
+/mm notation specifies a CIDR netmask:
mm | netmask |
@@ -1186,8 +1512,11 @@ mm | netmask |
+The @LOCAL name will allow access from all local network
+ interfaces, but not remote point-to-point interfaces. The
+@IF(name) name will allow access from the named interface.
The Allow directive must appear inside a
-Location directive.
+Location directive.
@@ -1202,22 +1531,21 @@ AuthClass Group
Description
-The AuthClass directive defines what level of
-authentication is required:
-
-Anonymous - No authentication should be performed
- (default.)
-User - A valid username and password is required.
-System - A valid username and password is required,
-and the username must belong to the "sys" group; this can be changed
-using the SystemGroup
- directive.
-Group - A valid username and password is required,
-and the username must belong to the group named by the
-AuthGroupName directive.
+The AuthClass directive defines what level of
+ authentication is required:
+
+Anonymous - No authentication should be performed
+ (default.)
+User - A valid username and password is required.
+System - A valid username and password is required, and
+ the username must belong to the "sys" group; this can be changed using
+ the SystemGroup directive.
+Group - A valid username and password is required, and
+ the username must belong to the group named by the AuthGroupName
+ directive.
The AuthClass directive must appear inside a
-Location directive.
+Location directive.
@@ -1231,10 +1559,10 @@ AuthGroupName lp
Description
The AuthGroupName directive sets the group to use for
-Group authentication.
+Group authentication.
The AuthGroupName directive must appear inside a
-Location directive.
-
+Location directive.
+
@@ -1244,24 +1572,27 @@ Group authentication.
AuthType None
AuthType Basic
AuthType Digest
+AuthType BasicDigest
Description
-The AuthType directive defines the type of
-authentication to perform:
-
-None - No authentication should be performed
- (default.)
-Basic - Basic authentication should be performed
-using the UNIX password and group files.
-Digest - Digest authentication should be performed
-using the /etc/cups/passwd.md5 file.
-
-When using Basic or Digest authentication,
-clients connecting through the localhost interface can
-also authenticate using certificates.
+The AuthType directive defines the type of
+ authentication to perform:
+
+None - No authentication should be performed (default.)
+Basic - Basic authentication should be performed using
+ the UNIX password and group files.
+Digest - Digest authentication should be performed
+ using the /etc/cups/passwd.md5 file.
+BasicDigest - Basic authentication should be performed
+ using the /etc/cups/passwd.md5 file.
+
+When using Basic , Digest , or
+BasicDigest authentication, clients connecting through the
+localhost interface can also authenticate using
+certificates.
The AuthType directive must appear inside a
-Location directive.
+Location directive.
@@ -1274,10 +1605,10 @@ AutoPurgeJobs No
Description
-The AutoPurgeJobs directive specifies whether or not to
-purge completed jobs once they are no longer required for quotas. This
-option has no effect if quotas are not enabled. The default setting is
-No .
+ The AutoPurgeJobs directive specifies whether or not to
+ purge completed jobs once they are no longer required for quotas. This
+ option has no effect if quotas are not enabled. The default setting is
+No .
@@ -1288,27 +1619,30 @@ No.
BrowseAddress 255.255.255.255:631
BrowseAddress 192.0.2.255:631
BrowseAddress host.domain.com:631
+BrowseAddress @LOCAL
+BrowseAddress @IF(name)
Description
-The BrowseAddress directive specifies an address to
-send browsing information to. Multiple BrowseAddress
- directives can be specified to send browsing information to different
-networks or systems.
-The default address is 255.255.255.255:631 which will
-broadcast the information to all networks the server is connected to.
+ The BrowseAddress directive specifies an address to send
+ browsing information to. Multiple BrowseAddress directives
+ can be specified to send browsing information to different networks or
+ systems.
+The @LOCAL name will broadcast printer information to
+ all local interfaces. The @IF(name) name will broadcast to
+ the named interface.
+No browse addresses are set by default.
NOTE:
- If you are using HP-UX 10.20 and a subnet that is not 24, 16, or 8
-bits, printer browsing (and in fact all broadcast reception) will not
-work. This problem appears to be fixed in HP-UX 11.0.
+If you are using HP-UX 10.20 and a subnet that is not 24, 16, or 8
+ bits, printer browsing (and in fact all broadcast reception) will not
+ work. This problem appears to be fixed in HP-UX 11.0.
|
-
Examples
@@ -1320,18 +1654,23 @@ BrowseAllow from 192.0.2
BrowseAllow from 192.0.2.0/24
BrowseAllow from 192.0.2.0/255.255.255.0
BrowseAllow from *.domain.com
+BrowseAllow from @LOCAL
+BrowseAllow from @IF(name)
Description
-The BrowseAllow directive specifies a system or network
-to accept browse packets from. The default is to accept browse packets
-from all hosts.
+The BrowseAllow directive specifies a system or network
+ to accept browse packets from. The default is to accept browse packets
+ from all hosts.
Host and domain name matching require that you enable the
-HostNameLookups directive.
-IP address matching supports exact matches, partial addresses that
-match networks using netmasks of 255.0.0.0, 255.255.0.0, and
-255.255.255.0, or network addresses using the specified netmask or bit
-count.
+HostNameLookups directive.
+IP address matching supports exact matches, partial addresses that
+ match networks using netmasks of 255.0.0.0, 255.255.0.0, and
+ 255.255.255.0, or network addresses using the specified netmask or bit
+ count.
+The @LOCAL name will allow browse data from all local
+ network interfaces, but not remote point-to-point interfaces. The
+@IF(name) name will allow browse data from the named interface.
@@ -1345,60 +1684,65 @@ BrowseDeny from 192.0.2
BrowseDeny from 192.0.2.0/24
BrowseDeny from 192.0.2.0/255.255.255.0
BrowseDeny from *.domain.com
+BrowseDeny from @LOCAL
+BrowseDeny from @IF(name)
Description
-The BrowseDeny directive specifies a system or network
-to reject browse packets from. The default is to deny browse packets
-from no hosts.
+The BrowseDeny directive specifies a system or network
+ to reject browse packets from. The default is to deny browse packets
+ from no hosts.
Host and domain name matching require that you enable the
-HostNameLookups directive.
-IP address matching supports exact matches, partial addresses that
-match networks using netmasks of 255.0.0.0, 255.255.0.0, and
-255.255.255.0, or network addresses using the specified netmask or bit
-count.
+HostNameLookups directive.
+IP address matching supports exact matches, partial addresses that
+ match networks using netmasks of 255.0.0.0, 255.255.0.0, and
+ 255.255.255.0, or network addresses using the specified netmask or bit
+ count.
+The @LOCAL name will block browse data from all local
+ network interfaces, but not remote point-to-point interfaces. The
+@IF(name) name will block browse data from the named interface.
-
+
Examples
-BrowseOrder allow,deny
-BrowseOrder deny,allow
+BrowseInterval 0
+BrowseInterval 30
Description
-The BrowseOrder directive specifies the order of
-allow/deny processing. The default order is deny,allow :
-
-allow,deny - Browse packets are accepted unless
- specifically denied.
-deny,allow - Browse packets are rejected unless
- specifically allowed.
-
-
+The BrowseInterval directive specifies the maximum
+ amount of time between browsing updates. Specifying a value of 0
+ seconds disables outgoing browse updates but allows a server to receive
+ printer information from other hosts.
+The BrowseInterval value should always be less than the BrowseTimeout value. Otherwise
+ printers and classes will disappear from client systems between
+ updates.
-
+
+
Examples
-BrowseInterval 0
-BrowseInterval 30
+BrowseOrder allow,deny
+BrowseOrder deny,allow
Description
-The BrowseInterval directive specifies the maximum
-amount of time between browsing updates. Specifying a value of 0
-seconds disables outgoing browse updates but allows a server to receive
-printer information from other hosts.
-The BrowseInterval value should always be less than the BrowseTimeout value. Otherwise
-printers and classes will disappear from client systems between
-updates.
+ The BrowseOrder directive specifies the order of
+ allow/deny processing. The default order is deny,allow :
+
+allow,deny - Browse packets are accepted unless
+ specifically denied.
+deny,allow - Browse packets are rejected unless
+ specifically allowed.
+
+
-
Examples
@@ -1409,12 +1753,12 @@ BrowsePoll host.domain.com:631
Description
-The BrowsePoll directive polls a server for available
-printers once every BrowseInterval
- seconds. Multiple BrowsePoll directives can be
-specified to poll multiple servers.
-If BrowseInterval is set to 0 then the server is polled
-once every 30 seconds.
+ The BrowsePoll directive polls a server for available
+ printers once every BrowseInterval
+ seconds. Multiple BrowsePoll directives can be
+ specified to poll multiple servers.
+If BrowseInterval is set to 0 then the server is polled
+ once every 30 seconds.
@@ -1427,19 +1771,46 @@ BrowsePort 9999
Description
-The BrowsePort directive specifies the UDP port number
-used for browse packets. The default port number is 631.
+ The BrowsePort directive specifies the UDP port number
+ used for browse packets. The default port number is 631.
+
+
+ NOTE:
+ You must set the BrowsePort to the same value on all of
+ the systems that you want to see.
+ |
+
+
+
+
+
+
+Examples
+
+BrowseProtocols CUPS
+BrowseProtocols SLP
+BrowseProtocols CUPS SLP
+BrowseProtocols all
+
+
+Description
+The BrowseProtocols directive specifies the protocols to
+ use when collecting and distributing shared printers on the local
+ network. The default protocol is CUPS , which is a
+ broadcast-based protocol.
NOTE:
- You must set the BrowsePort to the same value on all
-of the systems that you want to see.
+When using the SLP protocol, you must have at least one
+ Directory Agent (DA) server on your network. Otherwise the CUPS
+ scheduler (cupsd ) will not respond to client requests for
+ several seconds while polling the network.
|
-
Examples
@@ -1453,20 +1824,20 @@ BrowseRelay host.domain.com 192.0.2.255
Description
-The BrowseRelay directive specifies source and
-destination addresses for relaying browsing information from one host
-or network to another. Multiple BrowseRelay directives can
-be specified as needed.
-BrowseRelay is typically used on systems that bridge
-multiple subnets using one or more network interfaces. It can also be
-used to relay printer information from polled servers with the line:
+The BrowseRelay directive specifies source and
+ destination addresses for relaying browsing information from one host
+ or network to another. Multiple BrowseRelay directives can
+ be specified as needed.
+BrowseRelay is typically used on systems that bridge
+ multiple subnets using one or more network interfaces. It can also be
+ used to relay printer information from polled servers with the line:
BrowseRelay 127.0.0.1 255.255.255.255
-This effectively provides access to printers on a WAN for all
-clients on the LAN(s).
+ This effectively provides access to printers on a WAN for all clients
+ on the LAN(s).
@@ -1479,12 +1850,12 @@ BrowseShortNames No
Description
-The BrowseShortNames directive specifies whether or not
-short names are used for remote printers when possible. Short names are
-just the remote printer name, without the server ("printer"). If more
-than one remote printer is detected with the same name, the printers
-will have long names ("printer@server1", "printer@server2".)
-The default value for this option is Yes .
+ The BrowseShortNames directive specifies whether or not
+ short names are used for remote printers when possible. Short names are
+ just the remote printer name, without the server ("printer"). If more
+ than one remote printer is detected with the same name, the printers
+ will have long names ("printer@server1", "printer@server2".)
+The default value for this option is Yes .
@@ -1497,14 +1868,14 @@ BrowseTimeout 60
Description
-The BrowseTimeout directive sets the timeout for
-printer or class information that is received in browse packets. Once a
-printer or class times out it is removed from the list of available
-destinations.
-The BrowseTimeout value should always be greater than
-the BrowseInterval value.
-Otherwise printers and classes will disappear from client systems
-between updates.
+ The BrowseTimeout directive sets the timeout for printer
+ or class information that is received in browse packets. Once a printer
+ or class times out it is removed from the list of available
+ destinations.
+The BrowseTimeout value should always be greater than
+ the BrowseInterval value.
+ Otherwise printers and classes will disappear from client systems
+ between updates.
@@ -1517,20 +1888,19 @@ Browsing Off
Description
-The Browsing directive controls whether or not network
-printer browsing is enabled. The default setting is On .
+ The Browsing directive controls whether or not network
+ printer browsing is enabled. The default setting is On .
NOTE:
- If you are using HP-UX 10.20 and a subnet that is not 24, 16, or 8
-bits, printer browsing (and in fact all broadcast reception) will not
-work. This problem appears to be fixed in HP-UX 11.0.
+If you are using HP-UX 10.20 and a subnet that is not 24, 16, or 8
+ bits, printer browsing (and in fact all broadcast reception) will not
+ work. This problem appears to be fixed in HP-UX 11.0.
|
-
Examples
@@ -1545,11 +1915,45 @@ Classification unclassified
Description
-The Classification directive sets the classification
-level on the server. When this option is set, at least one of the
-banner pages is forced to the classification level, and the
-classification is placed on each page of output. The default is no
-classification level.
+ The Classification directive sets the classification
+ level on the server. When this option is set, at least one of the
+ banner pages is forced to the classification level, and the
+ classification is placed on each page of output. The default is no
+ classification level.
+
+
+
+
+Examples
+
+ClassifyOverride Yes
+ClassifyOverride No
+
+
+Description
+The ClassifyOverride directive specifies whether users
+ can override the default classification level on the server. When the
+ server classification is set, users can change the classification using
+ the job-sheets option and can choose to only print one
+ security banner before or after the job. If the job-sheets
+ option is set to none then the server default
+ classification is used.
+The default is to not allow classification overrides.
+
+
+
+
+Examples
+
+ConfigFilePerm 0644
+ConfigFilePerm 0600
+
+
+Description
+The ConfigFilePerm directive specifies the permissions
+ to use when writing configuration files. The default is 0600.
@@ -1561,8 +1965,8 @@ DataDir /usr/share/cups
Description
-The DataDir directive sets the directory to use for
-data files.
+ The DataDir directive sets the directory to use for data
+ files.
@@ -1576,10 +1980,10 @@ DefaultCharset windows-1251
Description
-The DefaultCharset directive sets the default character
-set to use for client connections. The default character set is
-utf-8 but is overridden by the character set for the language
-specified by the client or the DefaultLanguage directive.
+ The DefaultCharset directive sets the default character
+ set to use for client connections. The default character set is
+utf-8 but is overridden by the character set for the language
+ specified by the client or the DefaultLanguage directive.
@@ -1595,10 +1999,10 @@ DefaultLanguage it
Description
-The DefaultLanguage directive specifies the default
-language to use for client connections. Setting the default language
-also sets the default character set if a language localization file
-exists for it. The default language is "en" for English.
+ The DefaultLanguage directive specifies the default
+ language to use for client connections. Setting the default language
+ also sets the default character set if a language localization file
+ exists for it. The default language is "en" for English.
@@ -1617,14 +2021,16 @@ Deny from nnn.nnn.nnn.*
Deny from nnn.nnn.nnn.nnn
Deny from nnn.nnn.nnn.nnn/mm
Deny from nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
+Deny from @LOCAL
+Deny from @IF(name)
Description
-The Deny directive specifies a hostname, IP address, or
-network that is allowed access to the server. Deny
- directives are cummulative, so multiple Deny directives
-can be used to allow access for multiple hosts or networks. The
-/mm notation specifies a CIDR netmask:
+ The Deny directive specifies a hostname, IP address, or
+ network that is allowed access to the server. Deny
+ directives are cummulative, so multiple Deny directives
+ can be used to allow access for multiple hosts or networks. The
+/mm notation specifies a CIDR netmask:
mm | netmask |
@@ -1640,8 +2046,11 @@ mm | netmask |
+The @LOCAL name will deny access from all local network
+ interfaces, but not remote point-to-point interfaces. The
+@IF(name) name will deny access from the named interface.
The Deny directive must appear inside a
-Location directive.
+Location directive.
@@ -1654,16 +2063,16 @@ DocumentRoot /foo/bar/doc/cups
Description
-The DocumentRoot directive specifies the location of
-web content for the HTTP server in CUPS. If an absolute path is not
-specified then it is assumed to be relative to the
-ServerRoot directory. The default directory is
-/usr/share/doc/cups.
-Documents are first looked up in a sub-directory for the primary
-language requested by the client (e.g. /usr/share/doc/cups/fr/...
-) and then directly under the DocumentRoot directory (e.g.
-/usr/share/doc/cups/...), so it is possible to localize the web
-content by providing subdirectories for each language needed.
+ The DocumentRoot directive specifies the location of web
+ content for the HTTP server in CUPS. If an absolute path is not
+ specified then it is assumed to be relative to the
+ServerRoot directory. The default directory is
+ /usr/share/doc/cups.
+Documents are first looked up in a sub-directory for the primary
+ language requested by the client (e.g. /usr/share/doc/cups/fr/...
+) and then directly under the DocumentRoot directory (e.g.
+ /usr/share/doc/cups/...), so it is possible to localize the web
+ content by providing subdirectories for each language needed.
@@ -1674,14 +2083,13 @@ content by providing subdirectories for each language needed.
Encryption Never
Encryption IfRequested
Encryption Required
-Encryption Always
Description
The Encryption directive must appear instead a
-Location section and specifies the encryption settings
-for that location. The default setting is IfRequested for
-all locations.
+Location section and specifies the encryption settings
+ for that location. The default setting is IfRequested for
+ all locations.
@@ -1695,14 +2103,76 @@ ErrorLog syslog
Description
-The ErrorLog directive sets the name of the error log
-file. If the filename is not absolute then it is assumed to be relative
-to the ServerRoot directory. The
-default error log file is /var/log/cups/error_log.
+The ErrorLog directive sets the name of the error log
+ file. If the filename is not absolute then it is assumed to be relative
+ to the ServerRoot directory. The
+ default error log file is /var/log/cups/error_log.
The server name can be included in the filename by using %s
- in the name.
-The special name "syslog" can be used to send the error information
-to the system log instead of a plain file.
+ in the name.
+The special name "syslog" can be used to send the error information
+ to the system log instead of a plain file.
+
+
+
+
+Examples
+
+FaxRetryInterval 300
+FaxRetryInterval 30
+
+
+Description
+The FaxRetryInterval directive determines how often fax
+ print jobs are retried when the backend is unable to send the fax. The
+ value is the number of seconds between tries.
+The default setting is 300 seconds.
+
+
+
+
+Examples
+
+FaxRetryLimit 5
+FaxRetryLimit 100
+
+
+Description
+The FaxRetryLimit directive determines how many times a
+ fax job is retried before it is canceled.
+The default setting is 5 .
+
+
+
+
+Examples
+
+FileDevice Yes
+FileDevice No
+
+
+Description
+The FileDevice directive determines whether the
+ scheduler allows new printers to be added using device URIs of the form
+ file:/filename . File devices are most often used to test
+ new printer drivers and do no support raw file printing.
+The default setting is No .
+
+
+ Note:
+ File devices are managed by the scheduler. Since the scheduler
+ normally runs as the root user, file devices can be used to overwrite
+ system files and potentially gain unauthorized access to the system. If
+ you must create printers using file devices, we recommend that you set
+ the FileDevice directive to Yes for only as
+ long as you need to add the printers to the system, and then reset the
+ directive to No .
+ |
+
+
+
@@ -1716,15 +2186,33 @@ FilterLimit 1000
Description
-The FilterLimit directive sets the maximum cost of all
-running job filters. It can be used to limit the number of filter
-programs that are run on a server to minimize disk, memory, and CPU
-resource problems. A limit of 0 disables filter limiting.
-An average print to a non-PostScript printer needs a filter limit of
-about 200. A PostScript printer needs about half that (100). Setting
-the limit below these thresholds will effectively limit the scheduler
-to printing a single job at any time.
-The default limit is 0.
+ The FilterLimit directive sets the maximum cost of all
+ running job filters. It can be used to limit the number of filter
+ programs that are run on a server to minimize disk, memory, and CPU
+ resource problems. A limit of 0 disables filter limiting.
+An average print to a non-PostScript printer needs a filter limit of
+ about 200. A PostScript printer needs about half that (100). Setting
+ the limit below these thresholds will effectively limit the scheduler
+ to printing a single job at any time.
+The default limit is 0.
+
+
+
+
+Examples
+
+FilterNice 0
+FilterNice 39
+FilterNice -10
+
+
+Description
+The FilterNice directive sets the scheduling priority of
+ job filters. Values larger than 0 give filters a lower priority while
+ values smaller than 0 give filters a higher priority. The
+FilterNice value does not affect the priority of job backends.
+The default priority is 0.
@@ -1737,9 +2225,9 @@ FontPath /usr/share/cups/fonts:/foo/bar/fonts
Description
-The FontPath directive specifies the font path to use
-when searching for fonts. The default font path is
-/usr/share/cups/fonts .
+ The FontPath directive specifies the font path to use
+ when searching for fonts. The default font path is
+/usr/share/cups/fonts .
@@ -1753,11 +2241,28 @@ Group root
Description
-The Group directive specifies the UNIX group that
-filter and CGI programs run as. The default group is sys ,
-system , or root depending on the operating system.
+ The Group directive specifies the UNIX group that filter
+ and CGI programs run as. The default group is sys ,
+system , or root depending on the operating system.
+
+
+Examples
+
+HideImplicitMembers Yes
+HideImplicitMembers No
+
+
+Description
+The HideImplicitMembers directive controls whether the
+ individual printers in an implicit class are shown to the user. The
+ default is No .
+ImplicitClasses must be
+ enabled for this directive to have any effect.
+
+
Examples
@@ -1769,17 +2274,34 @@ HostNameLookups Double
Description
-The HostNameLookups directive controls whether or not
-CUPS looks up the hostname for connecting clients. The Double
- setting causes CUPS to verify that the hostname resolved from the
-address matches one of the addresses returned for that hostname.
-Double lookups also prevent clients with unregistered addresses
-from connecting to your server. The default is Off to
-avoid the potential server performance problems with hostname lookups.
-Set this option to On or Double only if
-absolutely required.
+ The HostNameLookups directive controls whether or not
+ CUPS looks up the hostname for connecting clients. The Double
+ setting causes CUPS to verify that the hostname resolved from the
+ address matches one of the addresses returned for that hostname.
+Double lookups also prevent clients with unregistered addresses
+ from connecting to your server. The default is Off to
+ avoid the potential server performance problems with hostname lookups.
+ Set this option to On or Double only if
+ absolutely required.
+
+
+Examples
+
+ImplicitAnyClasses On
+ImplicitAnyClasses Off
+
+
+Description
+The ImplicitAnyClasses directive controls whether
+ implicit classes for local and remote printers are created with the
+ name AnyPrinter . The default setting is Off .
+ImplicitClasses must be
+ enabled for this directive to have any effect.
+
+
Examples
@@ -1790,13 +2312,29 @@ ImplicitClasses Off
Description
-The ImplicitClasses directive controls whether implicit
-classes are created based upon the available network printers and
-classes. The default setting is On but is automatically
-turned Off if Browsing
- is turned Off .
+ The ImplicitClasses directive controls whether implicit
+ classes are created based upon the available network printers and
+ classes. The default setting is On but is automatically
+ turned Off if Browsing
+ is turned Off .
+
+
+Examples
+
+Include filename
+Include /foo/bar/filename
+
+
+Description
+The Include directive includes the named file in the
+cupsd.conf file. If no leading path is provided, the file is
+ assumed to be relative to the ServerRoot
+ directory.
+
+
Examples
@@ -1807,12 +2345,12 @@ KeepAlive Off
Description
-The KeepAlive directive controls whether or not to
-support persistent HTTP connections. The default is On .
-HTTP/1.1 clients automatically support persistent connections, while
-HTTP/1.0 clients must specifically request them using the
-Keep-Alive attribute in the Connection: field of
-each request.
+ The KeepAlive directive controls whether or not to
+ support persistent HTTP connections. The default is On .
+HTTP/1.1 clients automatically support persistent connections, while
+ HTTP/1.0 clients must specifically request them using the
+Keep-Alive attribute in the Connection: field of
+ each request.
@@ -1825,9 +2363,9 @@ KeepAliveTimeout 30
Description
-The KeepAliveTimeout directive controls how long a
-persistent HTTP connection will remain open after the last request. The
-default is 60 seconds.
+ The KeepAliveTimeout directive controls how long a
+ persistent HTTP connection will remain open after the last request. The
+ default is 60 seconds.
@@ -1845,13 +2383,13 @@ default is 60 seconds.
Description
-The Limit directive groups access control directives
-for specific types of HTTP requests and must appear inside a
-Location section. Access can be limited for individual
-request types (DELETE , GET , HEAD
+ The Limit directive groups access control directives for
+ specific types of HTTP requests and must appear inside a
+Location section. Access can be limited for individual
+ request types (DELETE , GET , HEAD
, OPTIONS , POST , PUT , and
-TRACE ) or for all request types (ALL ). The request
-type names are case-sensitive for compatibility with Apache.
+TRACE) or for all request types (ALL ). The request
+ type names are case-sensitive for compatibility with Apache.
@@ -1865,12 +2403,12 @@ type names are case-sensitive for compatibility with Apache.
Description
-The LimitExcept directive groups access control
-directives for specific types of HTTP requests and must appear inside a Location section. Unlike the
-Limit directive, LimitExcept restricts
-access for all requests except those listed on the
-LimitExcept line.
+ The LimitExcept directive groups access control
+ directives for specific types of HTTP requests and must appear inside a
+ Location section. Unlike the
+Limit directive, LimitExcept restricts
+ access for all requests except those listed on the
+LimitExcept line.
@@ -1884,11 +2422,11 @@ LimitRequestBody 0
Description
-The LimitRequestBody directive controls the maximum
-size of print files, IPP requests, and HTML form data in HTTP POST
-requests. The default limit is 0 which disables the limit check.
+The LimitRequestBody directive controls the maximum size
+ of print files, IPP requests, and HTML form data in HTTP POST requests.
+ The default limit is 0 which disables the limit check.
Also see the identical MaxRequestSize
- directive.
+ directive.
@@ -1901,12 +2439,12 @@ Listen 192.0.2.1:631
Description
-The Listen directive specifies a network address and
-port to listen for connections. Multiple Listen directives
-can be provided to listen on multiple addresses.
+The Listen directive specifies a network address and
+ port to listen for connections. Multiple Listen directives
+ can be provided to listen on multiple addresses.
The Listen directive is similar to the
-Port directive but allows you to restrict access to specific
-interfaces or networks.
+Port directive but allows you to restrict access to specific
+ interfaces or networks.
@@ -1922,16 +2460,76 @@ interfaces or networks.
...
</Location>
+<Location /printers>
+...
+</Location>
+
<Location /printers/name>
...
</Location>
+
+<Location /classes>
+...
+</Location>
+
+<Location /classes/name>
+...
+</Location>
+
+
+Description
+The Location directive specifies access control and
+ authentication options for the specified HTTP resource or path. The
+Allow , AuthClass ,
+ AuthGroupName ,
+AuthType , Deny ,
+Encryption , Limit ,
+LimitExcept , Order , Require , and
+Satisfy directives may all appear inside a location.
+
+Locations on the Server.
+Location | Description |
+/ | The path for all get operations (get-printers,
+ get-jobs, etc.) |
+/admin | The path for all administration operations
+ (add-printer, delete-printer, start-printer, etc.) |
+/admin/conf | The path for access to the CUPS
+ configuration files (cupsd.conf, client.conf, etc.) |
+/classes | The path for all classes |
+/classes/name | The resource for class name |
+
+/jobs | The path for all jobs (hold-job, release-job,
+ etc.) |
+/jobs/id | The resource for job id |
+/printers | The path for all printers |
+/printers/name | The path for printer name |
+
+/printers/name.ppd | The PPD file path for printer
+name |
+
+
+
+Note that more specific resources override the less specific ones. So
+ the directives inside the /printers/name location will
+ override ones from /printers . Directives inside
+/printers will override ones from / . None of the
+ directives are inherited. More information can be found in section
+"Printing System Security".
+
+
+
+
+Examples
+
+LogFilePerm 0644
+LogFilePerm 0600
Description
-The Location directive specifies access control and
-authentication options for the specified HTTP resource or path. More
-information can be found later in this chapter in
-"Printing System Security".
+ The LogFilePerm directive specifies the permissions to
+ use when writing configuration files. The default is 0644.
@@ -1952,23 +2550,23 @@ LogLevel debug2
Description
-The LogLevel directive specifies the level of logging
-for the ErrorLog file. The
-following values are recognized (each level logs everything under the
-preceding levels):
-
-none - Log nothing.
-emerg - Log emergency conditions that prevent the
- server from running.
-alert - Log alerts that must be handled immediately.
-crit - Log critical errors that don't prevent the
-server from running.
-error - Log general errors.
-warn - Log errors and warnings.
-notice - Log temporary error conditions.
-info - Log all requests and state changes (default).
-debug - Log basic debugging information.
-debug2 - Log all debugging information.
+The LogLevel directive specifies the level of logging
+ for the ErrorLog file. The
+ following values are recognized (each level logs everything under the
+ preceding levels):
+
+none - Log nothing.
+emerg - Log emergency conditions that prevent the
+ server from running.
+alert - Log alerts that must be handled immediately.
+crit - Log critical errors that don't prevent the
+ server from running.
+error - Log general errors.
+warn - Log errors and warnings.
+notice - Log temporary error conditions.
+info - Log all requests and state changes (default).
+debug - Log basic debugging information.
+debug2 - Log all debugging information.
@@ -1982,43 +2580,83 @@ MaxClients 1024
Description
-The MaxClients directive controls the maximum number of
-simultaneous clients that will be allowed by the server. The default is
-100 clients.
+ The MaxClients directive controls the maximum number of
+ simultaneous clients that will be allowed by the server. The default is
+ 100 clients.
NOTE:
- Since each print job requires a file descriptor for the status
-pipe, the CUPS server internally limits the MaxClients
- value to 1/3 of the available file descriptors to avoid possible
-problems when printing large numbers of jobs.
+Since each print job requires a file descriptor for the status pipe,
+ the CUPS server internally limits the MaxClients value to
+ 1/3 of the available file descriptors to avoid possible problems when
+ printing large numbers of jobs.
|
-
-
+
Examples
-MaxJobs 100
-MaxJobs 9999
-MaxJobs 0
+MaxClientsPerHost 0
+MaxClientsPerHost 10
Description
-The MaxJobs directive controls the maximum number of
-jobs that are kept in memory. Once the number of jobs reaches the
-limit, the oldest completed job is automatically purged from the system
-to make room for the new one. If all of the known jobs are still
-pending or active then the new job will be rejected.
-Setting the maximum to 0 disables this functionality. The default
-setting is 0.
+ The MaxClientsPerHost directive controls the maximum
+ number of simultaneous clients that will be allowed from a single host
+ by the server. The default is the MaxClients value. A
+ value of 0 uses the automatic setting based on the MaxClients
+ value.
+This directive provides a small measure of protection against Denial
+ of Service attacks from a single host.
-
+
+
+Examples
+
+MaxCopies 100
+MaxCopies 65535
+
+
+Description
+The MaxCopies directive controls the maximum number of
+ copies that a user can print of a job. The default is 100 copies.
+
+
+ NOTE:
+ Most HP PCL laser printers internally limit the number of copies to
+ 100.
+ |
+
+
+
+
+
+
+Examples
+
+MaxJobs 100
+MaxJobs 9999
+MaxJobs 0
+
+
+Description
+The MaxJobs directive controls the maximum number of
+ jobs that are kept in memory. Once the number of jobs reaches the
+ limit, the oldest completed job is automatically purged from the system
+ to make room for the new one. If all of the known jobs are still
+ pending or active then the new job will be rejected.
+Setting the maximum to 0 disables this functionality. The default
+ setting is 500.
+
+
+
Examples
@@ -2029,12 +2667,12 @@ MaxJobsPerPrinter 0
Description
-The MaxJobsPerPrinter directive controls the maximum
-number of active jobs that are allowed for each printer or class. Once
-a printer or class reaches the limit, new jobs will be rejected until
-one of the active jobs is completed, stopped, aborted, or cancelled.
-Setting the maximum to 0 disables this functionality. The default
-setting is 0.
+ The MaxJobsPerPrinter directive controls the maximum
+ number of active jobs that are allowed for each printer or class. Once
+ a printer or class reaches the limit, new jobs will be rejected until
+ one of the active jobs is completed, stopped, aborted, or cancelled.
+Setting the maximum to 0 disables this functionality. The default
+ setting is 0.
@@ -2048,12 +2686,12 @@ MaxJobsPerUser 0
Description
-The MaxJobsPerUser directive controls the maximum
-number of active jobs that are allowed for each user. Once a user
-reaches the limit, new jobs will be rejected until one of the active
-jobs is completed, stopped, aborted, or cancelled.
-Setting the maximum to 0 disables this functionality. The default
-setting is 0.
+ The MaxJobsPerUser directive controls the maximum number
+ of active jobs that are allowed for each user. Once a user reaches the
+ limit, new jobs will be rejected until one of the active jobs is
+ completed, stopped, aborted, or cancelled.
+Setting the maximum to 0 disables this functionality. The default
+ setting is 0.
@@ -2067,11 +2705,11 @@ MaxLogSize 0
Description
-The MaxLogSize directive controls the maximum size of
-each log file. Once a log file reaches or exceeds the maximum size it
-is closed and renamed to filename.O. This allows you to
-rotate the logs automatically. The default size is 1048576 bytes (1MB).
-Setting the maximum size to 0 disables log rotation.
+ The MaxLogSize directive controls the maximum size of
+ each log file. Once a log file reaches or exceeds the maximum size it
+ is closed and renamed to filename.O. This allows you to
+ rotate the logs automatically. The default size is 1048576 bytes (1MB).
+Setting the maximum size to 0 disables log rotation.
@@ -2085,11 +2723,11 @@ MaxRequestSize 0
Description
-The MaxRequestSize directive controls the maximum size
-of print files, IPP requests, and HTML form data in HTTP POST requests.
-The default limit is 0 which disables the limit check.
+The MaxRequestSize directive controls the maximum size
+ of print files, IPP requests, and HTML form data in HTTP POST requests.
+ The default limit is 0 which disables the limit check.
Also see the identical
-LimitRequestBody directive.
+LimitRequestBody directive.
@@ -2102,16 +2740,16 @@ Order Deny,Allow
Description
-The Order directive defines the default access control.
-The following values are supported:
+The Order directive defines the default access control.
+ The following values are supported:
-Allow,Deny - Allow requests from all systems except
- for those listed in a Deny directive.
-Deny,Allow - Allow requests only from those listed in
-an Allow directive.
+Allow,Deny - Allow requests from all systems except
+ for those listed in a Deny directive.
+Deny,Allow - Allow requests only from those listed in
+ an Allow directive.
The Order directive must appear inside a
-Location directive.
+Location directive.
@@ -2125,14 +2763,14 @@ PageLog syslog
Description
-The PageLog directive sets the name of the page log
-file. If the filename is not absolute then it is assumed to be relative
-to the ServerRoot directory. The
-default page log file is /var/log/cups/page_log.
+The PageLog directive sets the name of the page log
+ file. If the filename is not absolute then it is assumed to be relative
+ to the ServerRoot directory. The
+ default page log file is /var/log/cups/page_log.
The server name can be included in the filename by using %s
- in the name.
-The special name "syslog" can be used to send the page information
-to the system log instead of a plain file.
+ in the name.
+The special name "syslog" can be used to send the page information to
+ the system log instead of a plain file.
@@ -2145,48 +2783,49 @@ Port 80
Description
-The Port directive specifies a port to listen on.
-Multiple Port lines can be specified to listen on multiple
-ports. The default port is 631.
+ The Port directive specifies a port to listen on.
+ Multiple Port lines can be specified to listen on multiple
+ ports. The Port directive is equivalent to "Listen
+ *:nnn ". The default port is 631.
-
+
Examples
-PreserveJobHistory On
-PreserveJobHistory Off
+PreserveJobFiles On
+PreserveJobFiles Off
Description
-The PreserveJobHistory directive controls whether the
-history of completed, cancelled, or aborted print jobs is stored on
-disk.
-A value of On (the default) preserves job information
-until the administrator purges it with the cancel command.
-A value of Off removes the job information as soon as
-each job is completed, cancelled, or aborted.
+ The PreserveJobFiles directive controls whether the
+ document files of completed, cancelled, or aborted print jobs are
+ stored on disk.
+A value of On preserves job files until the
+ administrator purges them with the cancel command. Jobs
+ can be restarted (and reprinted) as desired until they are purged.
+A value of Off (the default) removes the job files as
+ soon as each job is completed, cancelled, or aborted.
-
+
Examples
-PreserveJobFiles On
-PreserveJobFiles Off
+PreserveJobHistory On
+PreserveJobHistory Off
Description
-The PreserveJobFiles directive controls whether the
-document files of completed, cancelled, or aborted print jobs are
-stored on disk.
-A value of On preserves job files until the
-administrator purges them with the cancel command. Jobs
-can be restarted (and reprinted) as desired until they are purged.
-A value of Off (the default) removes the job files as
-soon as each job is completed, cancelled, or aborted.
+ The PreserveJobHistory directive controls whether the
+ history of completed, cancelled, or aborted print jobs is stored on
+ disk.
+A value of On (the default) preserves job information
+ until the administrator purges it with the cancel command.
+A value of Off removes the job information as soon as
+ each job is completed, cancelled, or aborted.
@@ -2200,18 +2839,18 @@ Printcap /etc/printers.conf
Description
-The Printcap directive controls whether or not a
-printcap file is automatically generated and updated with a list of
-available printers. If specified with no value, then no printcap file
-will be generated. The default is to generate a file named
-/etc/printcap.
-When a filename is specified (e.g. /etc/printcap), the
-printcap file is written whenever a printer is added or removed. The
-printcap file can then be used by applications that are hardcoded to
-look at the printcap file for the available printers.
+ The Printcap directive controls whether or not a
+ printcap file is automatically generated and updated with a list of
+ available printers. If specified with no value, then no printcap file
+ will be generated. The default is to generate a file named
+ /etc/printcap.
+When a filename is specified (e.g. /etc/printcap), the
+ printcap file is written whenever a printer is added or removed. The
+ printcap file can then be used by applications that are hardcoded to
+ look at the printcap file for the available printers.
-
+
Examples
@@ -2221,8 +2860,44 @@ PrintcapFormat Solaris
Description
-The PrintcapFormat directive controls the output format
-of the printcap file. The default is to generate a BSD printcap file.
+ The PrintcapFormat directive controls the output format
+ of the printcap file. The default is to generate a BSD printcap file.
+
+
+
+
+Example
+
+PrintcapGUI /usr/bin/glpoptions
+
+
+Description
+The PrintcapGUI directive sets the program to use when
+ displaying an option panel from an IRIX application that uses the
+ Impressario print API. The default program is the ESP Print Pro
+ "glpoptions" GUI.
+The program must accept the -d option to specify a
+ printer and the -o option to specify one or more options.
+ After allowing the user to select/change options, the program must then
+ write the list of printing options without the -o to the
+ standard output.
+
+
+
+
+Examples
+
+ReloadTimeout 60
+ReloadTimeout 3600
+ReloadTimeout 0
+
+
+Description
+The ReloadTimeout directive sets how long the scheduler
+ waits for jobs to complete before reloading the server configuration.
+ The default timeout is 60 seconds.
@@ -2235,10 +2910,10 @@ RemoteRoot root
Description
-The RemoteRoot directive sets the username for
-unauthenticated root requests from remote hosts. The default username
-is remroot. Setting RemoteRoot to root
- effectively disables this security mechanism.
+ The RemoteRoot directive sets the username for
+ unauthenticated root requests from remote hosts. The default username
+ is remroot. Setting RemoteRoot to root
+ effectively disables this security mechanism.
@@ -2251,11 +2926,34 @@ RequestRoot /foo/bar/spool/cups
Description
-The RequestRoot directive sets the directory for
-incoming IPP requests and HTML forms. If an absolute path is not
-provided then it is assumed to be relative to the
-ServerRoot directory. The default request directory is
-/var/spool/cups.
+ The RequestRoot directive sets the directory for
+ incoming IPP requests and HTML forms. If an absolute path is not
+ provided then it is assumed to be relative to the
+ServerRoot directory. The default request directory is
+ /var/spool/cups.
+
+
+
+
+Examples
+
+Require group foo bar
+Require user john mary
+Require valid-user
+
+
+Description
+The Require directive specifies that authentication is
+ required for the resource. The group keyword specifies
+ that the authenticated user must be a member of one or more of the
+ named groups that follow.
+The user keyword specifies that the authenticated user
+ must be one of the named users that follow.
+The valid-user keyword specifies that any authenticated
+ user may access the resource.
+The default is to do no authentication. This directive must appear
+ inside a Location directive.
@@ -2269,11 +2967,28 @@ RIPCache 2048k
Description
-The RIPCache directive sets the size of the memory
-cache used by Raster Image Processor ("RIP") filters such as
-imagetoraster and pstoraster . The size can be
-suffixed with a "k" for kilobytes, "m" for megabytes, or "g" for
-gigabytes. The default cache size is "8m", or 8 megabytes.
+ The RIPCache directive sets the size of the memory cache
+ used by Raster Image Processor ("RIP") filters such as
+imagetoraster and pstoraster . The size can be
+ suffixed with a "k" for kilobytes, "m" for megabytes, or "g" for
+ gigabytes. The default cache size is "8m", or 8 megabytes.
+
+
+
+
+Examples
+
+RootCertDuration 300
+RootCertDuration 0
+
+
+Description
+The RootCertDuration directive controls the interval
+ between updates of the root authentication certificate. The default is
+300 seconds which updates the root certificate approximately once
+ every 5 minutes. Set the interval to 0 to disable certificate updates
+ entirely.
@@ -2286,16 +3001,38 @@ RunAsUser No
Description
-The RunAsUser directive controls whether the scheduler
-runs as the unpriviledged user account (usually lp ). The
-default is No which leaves the scheduler running as the
-root user.
-Note: Running as a non-priviledged user may prevent LPD and
-locally connected printers from working due to permission problems. The
-lpd backend will automatically use a non-priviledged mode that
-is not 100% compliant with RFC 1179. The parallel ,
-serial , and usb backends will need write access to
-the corresponding device files.
+ The RunAsUser directive controls whether the scheduler
+ runs as the unpriviledged user account (usually lp ). The
+ default is No which leaves the scheduler running as the
+root user.
+Note: Running as a non-priviledged user may prevent LPD and
+ locally connected printers from working due to permission problems. The
+ lpd backend will automatically use a non-priviledged mode
+ that is not 100% compliant with RFC 1179. The parallel ,
+serial , and usb backends will need write access to
+ the corresponding device files.
+
+
+
+
+Examples
+
+Satisfy all
+Satisfy any
+
+
+Description
+The Satisfy directive specifies whether all conditions
+ must be satisfied to allow access to the resource. If set to all
+, then all authentication and access control conditions must be satified
+ to allow access.
+Setting Satisfy to any allows a user to
+ gain access if the authentication or access control requirements are
+ satisfied. For example, you might require authentication for remote
+ access, but allow local access without authentication.
+The default is all . This directive must appear inside a Location directive.
@@ -2308,10 +3045,10 @@ ServerAdmin root@foo.bar.com
Description
-The ServerAdmin directive identifies the email address
-for the administrator on the system. By default the administrator email
-address is root@server , where server is the
-server name.
+ The ServerAdmin directive identifies the email address
+ for the administrator on the system. By default the administrator email
+ address is root@server , where server is the
+ server name.
@@ -2324,11 +3061,11 @@ ServerBin /foo/bar/lib/cups
Description
-The ServerBin directive sets the directory for
-server-run executables. If an absolute path is not provided then it is
-assumed to be relative to the ServerRoot
- directory. The default executable directory is /usr/lib/cups
- or /usr/lib32/cups (IRIX 6.5).
+ The ServerBin directive sets the directory for
+ server-run executables. If an absolute path is not provided then it is
+ assumed to be relative to the ServerRoot
+ directory. The default executable directory is /usr/lib/cups
+.
@@ -2340,12 +3077,12 @@ ServerCertificate /etc/cups/ssl/server.crt
Description
-The ServerCertificate directive specifies the location
-of the SSL certificate file used by the server when negotiating
-encrypted connections. The certificate must not be encrypted (password
-protected) since the scheduler normally runs in the background and will
-be unable to ask for a password. The default certificate file is
-/etc/cups/ssl/server.crt.
+ The ServerCertificate directive specifies the location
+ of the SSL certificate file used by the server when negotiating
+ encrypted connections. The certificate must not be encrypted (password
+ protected) since the scheduler normally runs in the background and will
+ be unable to ask for a password. The default certificate file is
+ /etc/cups/ssl/server.crt.
@@ -2357,10 +3094,10 @@ ServerKey /etc/cups/ssl/server.key
Description
-The ServerKey directive specifies the location of the
-SSL private key file used by the server when negotiating encrypted
-connections. The default key file is /etc/cups/ssl/server.crt
-.
+ The ServerKey directive specifies the location of the
+ SSL private key file used by the server when negotiating encrypted
+ connections. The default key file is /etc/cups/ssl/server.crt
+.
ServerName
@@ -2373,8 +3110,8 @@ ServerName myserver.domain.com
Description
-The ServerName directive specifies the hostname that is
-reported to clients. By default the server name is the hostname.
+ The ServerName directive specifies the hostname that is
+ reported to clients. By default the server name is the hostname.
@@ -2387,10 +3124,30 @@ ServerRoot /foo/bar/cups
Description
-The ServerRoot directive specifies the absolute path to
-the server configuration and state files. It is also used to resolve
-relative paths in the cupsd.conf file. The default server
-directory is /etc/cups.
+ The ServerRoot directive specifies the absolute path to
+ the server configuration and state files. It is also used to resolve
+ relative paths in the cupsd.conf file. The default server
+ directory is /etc/cups.
+
+
+
+
+Examples
+
+ServerTokens None
+ServerTokens ProductOnly
+ServerTokens Major
+ServerTokens Minor
+ServerTokens Minimal
+ServerTokens OS
+ServerTokens Full
+
+
+Description
+The ServerTokens directive specifies the information
+ that is included in the Server header of HTTP responses. The default
+ value is Minor which generates "CUPS/1.1".
@@ -2403,12 +3160,12 @@ SSLListen 192.0.2.1:443
Description
-The SSLListen directive specifies a network address and
-port to listen for secure connections. Multiple SSLListen
- directives can be provided to listen on multiple addresses.
+The SSLListen directive specifies a network address and
+ port to listen for secure connections. Multiple SSLListen
+ directives can be provided to listen on multiple addresses.
The SSLListen directive is similar to the
-SSLPort directive but allows you to restrict access to
-specific interfaces or networks.
+SSLPort directive but allows you to restrict access to
+ specific interfaces or networks.
@@ -2420,9 +3177,9 @@ SSLPort 443
Description
-The SSLPort directive specifies a port to listen on for
-secure connections. Multiple SSLPort lines can be
-specified to listen on multiple ports.
+ The SSLPort directive specifies a port to listen on for
+ secure connections. Multiple SSLPort lines can be
+ specified to listen on multiple ports.
@@ -2436,10 +3193,10 @@ SystemGroup root
Description
-The SystemGroup directive specifies the system
-administration group for System authentication. More
-information can be found later in this chapter in
-"Printing System Security".
+ The SystemGroup directive specifies the system
+ administration group for System authentication. More
+ information can be found later in this chapter in
+"Printing System Security".
@@ -2452,13 +3209,13 @@ TempDir /foo/bar/tmp
Description
-The TempDir directive specifies an absolute path for
-the directory to use for temporary files. The default directory is
-/var/tmp.
-Temporary directories must be world-writable and should have the
-"sticky" permission bit enabled so that other users cannot delete
-filter temporary files. The following commands will create an
-appropriate temporary directory called /foo/bar/tmp:
+The TempDir directive specifies an absolute path for the
+ directory to use for temporary files. The default directory is
+ /var/tmp.
+Temporary directories must be world-writable and should have the
+ "sticky" permission bit enabled so that other users cannot delete
+ filter temporary files. The following commands will create an
+ appropriate temporary directory called /foo/bar/tmp:
mkdir /foo/bar/tmp ENTER
@@ -2477,9 +3234,9 @@ Timeout 90
Description
-The Timeout directive controls the amount of time to
-wait before an active HTTP or IPP request times out. The default
-timeout is 300 seconds.
+ The Timeout directive controls the amount of time to
+ wait before an active HTTP or IPP request times out. The default
+ timeout is 300 seconds.
@@ -2492,22 +3249,720 @@ User guest
Description
-The User directive specifies the UNIX user that filter
-and CGI programs run as. The default user is lp .
+ The User directive specifies the UNIX user that filter
+ and CGI programs run as. The default user is lp .
+
+The CUPS client application (lp , lpr , and
+ so forth) use the /etc/cups/client.conf file for default
+ settings. The client application also look in the user's home directory
+ for a file called .cupsrc. Each directive is listed on a
+ line by itself followed by its value. Comments are introduced using the
+ number sign ("#") character at the beginning of a line.
+Since the client configuration file consists of plain text, you can
+ use your favorite text editor to make changes to it.
+
+
+
+The client.conf file contains two directives that
+ determine how the client behaves:
+
+
+
+
+
+Examples
+
+Encryption Never
+Encryption IfRequested
+Encryption Required
+Encryption Always
+
+
+Description
+The Encryption directive specifies the default
+ encryption settings for the client. The default setting is
+ IfRequested.
+
+
+
+
+Examples
+
+ServerName foo.bar.com
+ServerName 11.22.33.44
+
+
+Description
+The ServerName directive specifies sets the remote
+ server that is to be used for all client operations. That is, it
+ redirects all client requests to the remote server. The default is to
+ use the local server ("localhost").
+
+The CUPS scheduler (cupsd) uses the /etc/cups/printers.conf
+ file to store the list of available printers. This file contains only
+ locally defined printers, but not remote printers that are created
+ automatically. Each directive is listed on a line by itself followed by
+ its value. Comments are introduced using the number sign ("#")
+ character at the beginning of a line.
+Since the printer configuration file consists of plain text, you can
+ use your favorite text editor to make changes to it.
+
+
+
+The printers.conf file contains many directives that
+ determine how the printer behaves:
+
+
+
+
+
+Examples
+
+Accepting yes
+
+Accepting no
+
+
+Description
+The Accepting directive defines the initial Boolean
+ value for the printer-is-accepting-job attribute which can
+ be set by the accept and reject commands.
+This directive must appear inside a Printer
+ or DefaultPrinter
+ directive.
+
+
+
+
+Examples
+
+AllowUser foo_user
+AllowUser bar_user
+
+
+Description
+The AllowUser directive adds a username to the
+ requesting-user-name-allowed attribute which can be set by the
+lpadmin -u command.
+This directive must appear inside a Printer
+ or DefaultPrinter
+ directive.
+
+
+
+
+Examples
+
+<DefaultPrinter name/>
+...
+</Printer>
+
+
+Description
+The DefaultPrinter directive begins a printer definition
+ for the default server destination. It can be added by the
+lpadmin command or if already defined, set as default by the
+lpoptions -d command.
+
+
+
+
+Examples
+
+DenyUser foo_user
+DenyUser bar_user
+
+
+Description
+The DenyUser directive adds a username to the
+ requesting-user-name-allowed attribute which can be set by the
+lpadmin -u command.
+This directive must appear inside a Printer
+ or DefaultPrinter
+ directive.
+
+
+
+
+Examples
+
+DeviceURI socket://foo.bar.com:9100
+
+
+Description
+The DeviceURI directive defines the value of the
+ device-uri-attribute attribute which can be set by the
+lpadmin -v command.
+This directive must appear inside a Printer
+ or DefaultPrinter
+ directive.
+
+
+
+
+Examples
+
+Info My Printer
+
+
+Description
+The Info directive defines the string for the
+ printer-info attribute which can be set by the lpadmin -D
+ command.
+This directive must appear inside a Printer
+ or DefaultPrinter
+ directive.
+
+
+
+
+Examples
+
+JobSheets none,standard
+
+
+Description
+The JobSheets directive specifies the default banner
+ pages to print before and after a print job. In the above example, only
+ a standard banner will print after each job.
+The lpoptions -o job-sheets= command can be used to set
+ banners. For example, the following command would produce the same
+ results of a standard banner at the end of each print job
+ for the default printer.
+ lpoptions -o job-sheets=none,standard
+If only one banner file is specified, it will be printed before the
+ files in the job. If a second banner file is specified, it is printed
+ after the files in the job.
+The available banner pages depend on the local system configuration;
+ CUPS includes the following banner files:
+
+none - Do not produce a banner page.
+classified - A banner page with a "classified" label at
+ the top and bottom.
+confidential - A banner page with a "confidential"
+ label at the top and bottom.
+secret - A banner page with a "secret" label at the top
+ and bottom.
+standard - A banner page with no label at the top and
+ bottom.
+topsecret - A banner page with a "top secret" label at
+ the top and bottom.
+unclassified - A banner page with an "unclassified"
+ label at the top and bottom.
+
+This directive must appear inside a Printer
+ or DefaultPrinter
+ directive.
+
+
+
+
+Examples
+
+KLimit 1234
+
+
+Description
+The KLimit directive defines the value of the
+ job-k-limit attribute which can be set by the lpadmin -o
+ job-k-limit= command.
+This directive must appear inside a Printer
+ or DefaultPrinter
+ directive.
+
+
+
+
+Examples
+
+Location Building 3321
+
+
+Description
+The Location directive defines the string for the
+ printer-location attribute which can be set by the lpadmin
+ -L command.
+
+
+ NOTE:
+ Do not confuse this Location directive with the one in
+ cupsd.conf. They are completely different.
+ |
+
+
+This directive must appear inside a Printer
+ or DefaultPrinter
+ directive.
+
+
+
+
+Examples
+
+PageLimit 1234
+
+
+Description
+The PageLimit directive defines the value of the
+ job-page-limit attribute which can be set by the lpadmin -o
+ job-page-limit= command.
+This directive must appear inside a Printer
+ or DefaultPrinter
+ directive.
+
+
+
+
+Examples
+
+<Printer name/>
+...
+</Printer>
+
+
+Description
+The Printer directive begins a printer definition. It
+ can be added by the lpadmin command.
+
+
+
+
+Examples
+
+QuotaPeriod 604800
+
+
+Description
+The QuotaPeriod directive defines the value of the
+ job-quota-period attribute which can be set by the lpadmin
+ -o job-quota-period= command.
+This directive must appear inside a Printer
+ or DefaultPrinter
+ directive.
+
+
+
+
+Examples
+
+State stopped
+
+
+Description
+The State directive defines the initial value of the
+ printer-state attribute. The strings idle and
+ stopped correspond to the IPP enumeration values.
+This directive must appear inside a Printer
+ or DefaultPrinter
+ directive.
+
+
+
+
+Examples
+
+StateMessage Ready to print.
+
+
+Description
+The StateMessage directive defines the initial string
+ for the printer-state-message attribute. The following are
+ some example messages:
+
+- Connected to host_name...
+- Connecting to printer_queue on port port_number
+...
+- Network host host_name is busy; will retry in 30
+ seconds...
+- Printer busy; will retry in 10 seconds...
+- Printer is busy; retrying print job...
+- Print file accepted - job ID id_number.
+- Ready to print.
+- Waiting for job to complete
+
+This directive must appear inside a Printer
+ or DefaultPrinter
+ directive.
+
+
+
+The CUPS scheduler (cupsd) uses the /etc/cups/classes.conf
+ file to store the list of available classes. This file contains only
+ locally defined classes, but not remote or implicit classes that are
+ created automatically. Each directive is listed on a line by itself
+ followed by its value. Comments are introduced using the number sign
+ ("#") character at the beginning of a line.
+Since the classes configuration file consists of plain text, you can
+ use your favorite text editor to make changes to it.
+
+
+
+The classes.conf file contains many directives that
+ determine how the classes behaves:
+
+
+
+
+
+Examples
+
+Accepting yes
+
+Accepting no
+
+
+Description
+The Accepting directive defines the initial Boolean
+ value for the printer-is-accepting-job attribute which can
+ be set by the accept and reject commands.
+This directive must appear inside a Class
+ or DefaultClass directive.
+
+
+
+
+Examples
+
+AllowUser foo_user
+AllowUser bar_user
+
+
+Description
+The AllowUser directive adds a username to the
+ requesting-user-name-allowed attribute which can be set by the
+lpadmin -u command.
+This directive must appear inside a Class
+ or DefaultClass directive.
+
+
+
+
+Examples
+
+<Class name/>
+...
+</Class>
+
+
+Description
+The Class directive begins a class definition. It can be
+ added by the lpadmin -c command.
+
+
+
+
+Examples
+
+<DefaultClass name/>
+...
+</DefaultClass>
+
+
+Description
+The DefaultClass directive begins a class definition for
+ the default server destination. It can be added by the lpadmin -c
+ command or if already defined, set as default by the lpoptions -d
+ command.
+
+
+
+
+Examples
+
+DenyUser foo_user
+DenyUser bar_user
+
+
+Description
+The DenyUser directive adds a username to the
+ requesting-user-name-allowed attribute which can be set by the
+lpadmin -u command.
+This directive must appear inside a Class
+ or DefaultClass directive.
+
+
+
+
+Examples
+
+Info My Printer
+
+
+Description
+The Info directive defines the string for the
+ printer-info attribute which can be set by the lpadmin -D
+ command.
+This directive must appear inside a Class
+ or DefaultClass directive.
+
+
+
+
+Examples
+
+JobSheets none,standard
+
+
+Description
+The JobSheets directive specifies the default banner
+ pages to print before and after a print job. In the above example, only
+ a standard banner will print after each job.
+The lpoptions -o job-sheets= command can be used to set
+ banners. For example, the following command would produce the same
+ results of a standard banner at the end of each print job
+ for the default class.
+ lpoptions -o job-sheets=none,standard
+If only one banner file is specified, it will be printed before the
+ files in the job. If a second banner file is specified, it is printed
+ after the files in the job.
+The available banner pages depend on the local system configuration;
+ CUPS includes the following banner files:
+
+none - Do not produce a banner page.
+classified - A banner page with a "classified" label at
+ the top and bottom.
+confidential - A banner page with a "confidential"
+ label at the top and bottom.
+secret - A banner page with a "secret" label at the top
+ and bottom.
+standard - A banner page with no label at the top and
+ bottom.
+topsecret - A banner page with a "top secret" label at
+ the top and bottom.
+unclassified - A banner page with an "unclassified"
+ label at the top and bottom.
+
+This directive must appear inside a Class
+ or DefaultClass directive.
+
+
+
+
+Examples
+
+KLimit 1234
+
+
+Description
+The KLimit directive defines the value of the
+ job-k-limit attribute which can be set by the lpadmin -o
+ job-k-limit= command.
+This directive must appear inside a Class
+ or DefaultClass directive.
+
+
+
+
+Examples
+
+Location Building 3321
+
+
+Description
+The Location directive defines the string for the
+ printer-location attribute which can be set by the lpadmin
+ -L command.
+
+
+ NOTE:
+ Do not confuse this Location directive with the one in
+ cupsd.conf. They are completely different.
+ |
+
+
+This directive must appear inside a Class
+ or DefaultClass directive.
+
+
+
+
+Examples
+
+PageLimit 1234
+
+
+Description
+The PageLimit directive defines the value of the
+ job-page-limit attribute which can be set by the lpadmin -o
+ job-page-limit= command.
+This directive must appear inside a Class
+ or DefaultClass directive.
+
+
+
+
+Examples
+
+Printer foo
+Printer bar
+Printer foo@bar
+
+
+Description
+The Printer directive adds a printer to the class. It
+ can be added by the lpadmin -c command.
+
+
+ NOTE:
+ Do not confuse this Printer directive with the one in
+ printers.conf. They are completely different.
+ |
+
+
+This directive must appear inside a Class
+ or DefaultClass directive.
+
+
+
+
+Examples
+
+QuotaPeriod 604800
+
+
+Description
+The QuotaPeriod directive defines the value of the
+ job-quota-period attribute which can be set by the lpadmin
+ -o job-quota-period= command.
+This directive must appear inside a Class
+ or DefaultClass directive.
+
+
+
+
+Examples
+
+State stopped
+
+
+Description
+The State directive defines the initial value of the
+ printer-state attribute. The strings idle and
+ stopped correspond to the IPP enumeration values.
+This directive must appear inside a Class
+ or DefaultClass directive.
+
+
+
+
+Examples
+
+StateMessage Ready to print.
+
+
+Description
+The StateMessage directive defines the initial string
+ for the printer-state-message attribute. The following are
+ some example messages:
+
+- Connected to host_name...
+- Connecting to class_queue on port port_number
+...
+- Network host host_name is busy; will retry in 30
+ seconds...
+- Printer busy; will retry in 10 seconds...
+- Printer is busy; retrying print job...
+- Print file accepted - job ID id_number.
+- Ready to print.
+- Waiting for job to complete
+
+This directive must appear inside a Class
+ or DefaultClass directive.
+
+
-CUPS provides support for address, certificate, and password (Basic
-and Digest) based authentication and access control. Certificate and
-password authentication provide ways to limit access to individual
-people or groups.
-Address based access control allows you to limit access to specific
-systems, networks, or domains. While this does not provide
-authentication, it does allow you to limit the potential users of your
-system efficiently.
-CUPS maintains a list of locations that have access control and/or
-authentication enabled. Locations are specified using the
-Location directive:
+CUPS provides support for address, certificate, and password (Basic
+ and Digest) based authentication and access control. Certificate and
+ password authentication provide ways to limit access to individual
+ people or groups.
+Address based access control allows you to limit access to specific
+ systems, networks, or domains. While this does not provide
+ authentication, it does allow you to limit the potential users of your
+ system efficiently.
+CUPS maintains a list of locations that have access control and/or
+ authentication enabled. Locations are specified using the
+Location directive:
<Location /resource>
@@ -2522,8 +3977,8 @@ authentication enabled. Locations are specified using the
Locations generally follow the directory structure of the
-DocumentRoot directory, however CUPS does have several
-virtual locations for administration, classes, jobs, and printers:
+DocumentRoot directory, however CUPS does have several
+ virtual locations for administration, classes, jobs, and printers:
Location | Description |
@@ -2542,69 +3997,66 @@ name.
-CUPS supports a local certificate-based authentication scheme that
-can be used in place of Basic or Digest
+ CUPS supports a local certificate-based authentication scheme that
+ can be used in place of Basic or Digest
authentication by clients connecting through the localhost
- interface. Certificate authentication is not supported or allowed from
-clients on any other interface.
-Certificates are 128-bit random numbers that refer to an internal
-authentication record in the server. A client connecting via the
-localhost interface sends a request with an authorization header
-of:
+ interface. Certificate authentication is not supported or allowed from
+ clients on any other interface.
+Certificates are 128-bit random numbers that refer to an internal
+ authentication record in the server. A client connecting via the
+localhost interface sends a request with an authorization header
+ of:
Authorization: Local 0123456789ABCDEF0123456789ABCDEF
-The server then looks up the local certificate and authenticates
-using the username associated with it.
-Certificates are generated by the server automatically and stored in
-the /etc/cups/certs directory using the process ID of the
-CGI program started by the server. Certificate files are only readable
-by the User and
-Group defined in the cupsd.conf file. When the
-CGI program ends the certificate is removed and invalidated
-automatically.
-The special file /etc/cups/certs/0 defines the root
-certificate which can be used by any client running as the
-super-user or another user that is part of the group defined by the
-SystemGroup directive. The root certificate is
-automatically regenerated every 5 minutes.
-
-Basic authentication uses UNIX users and passwords to authenticate
-access to resources such as printers and classes, and to limit access
-to administrative functions.
+ The server then looks up the local certificate and authenticates
+ using the username associated with it.
+Certificates are generated by the server automatically and stored in
+ the /etc/cups/certs directory using the process ID of the
+ CGI program started by the server. Certificate files are only readable
+ by the User and
+Group defined in the cupsd.conf file. When the CGI
+ program ends the certificate is removed and invalidated automatically.
+The special file /etc/cups/certs/0 defines the root
+ certificate which can be used by any client running as the
+ super-user or another user that is part of the group defined by the
+SystemGroup directive. The root certificate is
+ automatically regenerated every 5 minutes.
+
+Basic authentication uses UNIX users and passwords to authenticate
+ access to resources such as printers and classes, and to limit access
+ to administrative functions.
NOTE:
- Basic authentication sends the username and password Base64 encoded
-from the client to the server, so it offers no protection against
-eavesdropping. This means that a malicious user can monitor network
-packets and discover valid users and passwords that could result in a
-serious compromise in network security. Use Basic authentication with
-extreme care.
+Basic authentication sends the username and password Base64 encoded
+ from the client to the server, so it offers no protection against
+ eavesdropping. This means that a malicious user can monitor network
+ packets and discover valid users and passwords that could result in a
+ serious compromise in network security. Use Basic authentication with
+ extreme care.
|
-
-The CUPS implementation of Basic authentication does not allow
-access through user accounts without a password. If you try to
-authenticate using an account without a password, your access will be
-immediately blocked.
-Once a valid username and password is authenticated by CUPS, any
-additional group membership requirements are checked.
+ The CUPS implementation of Basic authentication does not allow access
+ through user accounts without a password. If you try to authenticate
+ using an account without a password, your access will be immediately
+ blocked.
+Once a valid username and password is authenticated by CUPS, any
+ additional group membership requirements are checked.
NOTE:
- The root user is considered by CUPS to be a member of every group.
+The root user is considered by CUPS to be a member of every group.
|
-
-Use the AuthType directive to enable Basic
-authentication:
+Use the AuthType directive to enable Basic
+ authentication:
AuthType Basic
@@ -2612,43 +4064,41 @@ AuthType Basic
-
-Digest authentication uses users and passwords defined in the
-/etc/cups/passwd.md5 file to authenticate access to resources
-such as printers and classes, and to limit access to administrative
-functions.
+
+Digest authentication uses users and passwords defined in the
+ /etc/cups/passwd.md5 file to authenticate access to resources
+ such as printers and classes, and to limit access to administrative
+ functions.
NOTE:
- Unlike Basic authentication, Digest passes the MD5 sum (basically a
-complicated checksum) of the username and password instead of the
-strings themselves. Also, Digest authentication does not use the UNIX
-password file, so if an attacker does discover the original password
-it is less likely to result in a serious security problem so long as
-you use a different UNIX password than the corresponding Digest
-password.
-The current CUPS implementation of Digest authentication uses the
-client's hostname or IP address for the "nonce" value. The nonce value
-is an additional string added to the username and password to make
-guessing the password more difficult. The server checks that the nonce
-value matches the client's hostname or address and rejects the MD5 sum
-if it doesn't. Future versions of CUPS will support Digest "session"
-authentication which adds the request data to the MD5 sum, providing
-even better authentication and security.
-Digest authentication does not guarantee that an attacker cannot
-gain unauthorized access, but it is safer than Basic authentication
-and should be used in place of Basic authentication whenever possible.
-Support for Digest authentication in web browsers is not yet
-universally available.
+Unlike Basic authentication, Digest passes the MD5 sum (basically a
+ complicated checksum) of the username and password instead of the
+ strings themselves. Also, Digest authentication does not use the UNIX
+ password file, so if an attacker does discover the original password it
+ is less likely to result in a serious security problem so long as you
+ use a different UNIX password than the corresponding Digest password.
+The current CUPS implementation of Digest authentication uses the
+ client's hostname or IP address for the "nonce" value. The nonce value
+ is an additional string added to the username and password to make
+ guessing the password more difficult. The server checks that the nonce
+ value matches the client's hostname or address and rejects the MD5 sum
+ if it doesn't. Future versions of CUPS will support Digest "session"
+ authentication which adds the request data to the MD5 sum, providing
+ even better authentication and security.
+Digest authentication does not guarantee that an attacker cannot gain
+ unauthorized access, but it is safer than Basic authentication and
+ should be used in place of Basic authentication whenever possible.
+ Support for Digest authentication in web browsers is not yet
+ universally available.
|
-
-The lppasswd(1) command is used to add, change, or
-remove accounts from the passwd.md5 file. To add a user to
-the default system group, type:
+The lppasswd(1) command is used to add, change, or
+ remove accounts from the passwd.md5 file. To add a user to
+ the default system group, type:
lppasswd -a user ENTER
@@ -2658,7 +4108,7 @@ Password again: (password) ENTER [password is not echoed]
-Once added, a user can change his/her password by typing:
+Once added, a user can change his/her password by typing:
lppasswd ENTER
@@ -2669,40 +4119,39 @@ Password again: (password) ENTER [password is not echoed]
-To remove a user from the password file, type:
+To remove a user from the password file, type:
lppasswd -x user ENTER
-Once a valid username and password is authenticated by CUPS, any
-additional group membership requirements are checked.
+ Once a valid username and password is authenticated by CUPS, any
+ additional group membership requirements are checked.
NOTE:
- The root user is considered by CUPS to be a member of every group.
+The root user is considered by CUPS to be a member of every group.
|
-
-Use the AuthType directive to enable Digest
-authentication:
+Use the AuthType directive to enable Digest
+ authentication:
AuthType Digest
-
-The AuthClass directive
-controls the level of authentication to perform. System
- and Group authentication extend the normal user-based
-authentication to require membership in a UNIX group. For System
+
+The AuthClass directive
+ controls the level of authentication to perform. System
+ and Group authentication extend the normal user-based
+ authentication to require membership in a UNIX group. For System
authentication each user must belong to the sys ,
-system , or root group; the actual group depends on
-the operating system.
-For Group authentication each user must belong to the
-group named by the AuthGroupName
- directive:
+system, or root group; the actual group depends on
+ the operating system.
+For Group authentication each user must belong to the
+ group named by the AuthGroupName
+ directive:
<Location /path>
@@ -2712,10 +4161,10 @@ AuthGroupName mygroup
</Location>
-The named group must be a valid UNIX user group, usually defined in
-the /etc/group or /etc/netgroup files.
-Additionally, when using Digest authentication you need to create user
-accounts with the named group:
+The named group must be a valid UNIX user group, usually defined in
+ the /etc/group or /etc/netgroup files.
+ Additionally, when using Digest authentication you need to create user
+ accounts with the named group:
lppasswd -g mygroup -a user ENTER
@@ -2726,15 +4175,15 @@ Password again: (password) ENTER [password is not echoed]
-ESP Print Pro maintains a log of all accesses, errors, and pages
-that are printed. The log files are normally stored in the
-/var/log/cups directory. You can change this by editing the
-/etc/cups/cupsd.conf configuration file.
-
-The access_log file lists each HTTP resource that is
-accessed by a web browser or CUPS/IPP client. Each line is in the
-so-called "Common Log Format" used by many web servers and web
-reporting tools:
+CUPS maintains a log of all accesses, errors, and pages that are
+ printed. The log files are normally stored in the /var/log/cups
+ directory. You can change this by editing the /etc/cups/cupsd.conf
+ configuration file.
+
+The access_log file lists each HTTP resource that is
+ accessed by a web browser or CUPS/IPP client. Each line is in the
+ so-called "Common Log Format" used by many web servers and web
+ reporting tools:
host group user date-time \"method resource version\" status bytes
@@ -2743,37 +4192,38 @@ host group user date-time \"method resource version\" status bytes
127.0.0.1 - mike [20/May/1999:19:20:31 +0000] "POST /admin/ HTTP/1.1" 200 0
-The host field will normally only be an IP address unless you
-have enabled the HostNameLookups
- directive in the cupsd.conf file.
-The group field always contains "-" in CUPS.
-The user field is the authenticated username of the
-requesting user. If no username and password is supplied for the
-request then this field contains "-".
-The date-time field is the date and time of the request in
-local time and is in the format:
+The host field will normally only be an IP address unless you
+ have enabled the HostNameLookups
+ directive in the cupsd.conf file.
+The group field always contains "-" in CUPS.
+The user field is the authenticated username of the requesting
+ user. If no username and password is supplied for the request then this
+ field contains "-".
+The date-time field is the date and time of the request in
+ local time and is in the format:
[DD/MON/YYYY:HH:MM:SS +ZZZZ]
-where ZZZZ is the timezone offset in hours and minutes from
-Greenwich Mean Time (a.k.a. GMT a.k.a. ZULU.)
-The method field is the HTTP method used ("GET", "PUT",
-"POST", etc.)
-The resource field is the filename of the requested resource.
-The version field is the HTTP specification version used by
-the client. For CUPS clients this will always be "HTTP/1.1".
-The status field contains the HTTP result status of the
-request. Usually it is "200", but other HTTP status codes are possible.
-For example, 401 is the "unauthorized access" status in the example
-above.
-The bytes field contains the number of bytes in the request.
-For POST requests the bytes field contains the number of bytes
-that was received from the client.
-
-The error_log file lists messages from the scheduler
-(errors, warnings, etc.):
+where ZZZZ is the timezone offset in hours and minutes from
+ coordinated universal time (UTC). UTC may sometimes be referred to as
+ GMT or ZULU on legacy systems.
+The method field is the HTTP method used ("GET", "PUT",
+ "POST", etc.)
+The resource field is the filename of the requested resource.
+The version field is the HTTP specification version used by
+ the client. For CUPS clients this will always be "HTTP/1.1".
+The status field contains the HTTP result status of the
+ request. Usually it is "200", but other HTTP status codes are possible.
+ For example, 401 is the "unauthorized access" status in the example
+ above.
+The bytes field contains the number of bytes in the request.
+ For POST requests the bytes field contains the number of bytes
+ that was received from the client.
+
+The error_log file lists messages from the scheduler
+ (errors, warnings, etc.):
level date-time message
@@ -2783,110 +4233,115 @@ I [20/May/1999:19:21:02 +0000] Job 2 queued on 'DeskJet' by 'mike'.
I [20/May/1999:19:22:24 +0000] Job 2 was cancelled by 'mike'.
-The level field contains the type of message:
+The level field contains the type of message:
-E - An error occurred.
-W - The server was unable to perform some action.
-I - Informational message.
-D - Debugging message.
+E - An error occurred.
+W - The server was unable to perform some action.
+I - Informational message.
+D - Debugging message.
-The date-time field contains the date and time of when the
-page started printing. The format of this field is identical to the
-data-time field in the access_log file.
-The message fields contains a free-form textual message.
-
-The page_log file lists each page that is sent to a
-printer. Each line contains the following information:
+The date-time field contains the date and time of when the
+ page started printing. The format of this field is identical to the
+ data-time field in the access_log file.
+The message fields contains a free-form textual message.
+
+The page_log file lists each page that is sent to a
+ printer. Each line contains the following information:
-printer user job-id date-time page-number num-copies job-billing
+printer user job-id date-time page-number num-copies job-billing hostname
-DeskJet root 2 [20/May/1999:19:21:05 +0000] 1 0 acme-123
-
-
-The printer field contains the name of the printer that
-printed the page. If you send a job to a printer class, this field will
-contain the name of the printer that was assigned the job.
-The user field contains the name of the user (the IPP
-requesting-user-name attribute) that submitted this file for
-printing.
-The job-id field contains the job number of the page being
-printed. Job numbers are reset to 1 whenever the CUPS server is
-started, so don't depend on this number being unique!
-The date-time field contains the date and time of when the
-page started printing. The format of this field is identical to the
-data-time field in the access_log file.
-The page-number and num-pages fields contain the page
-number and number of copies being printed of that page. For printer
-that can not produce copies on their own, the num-pages field
-will always be 1.
-The job-billing field contains a copy of the job-billing
+DeskJet root 2 [20/May/1999:19:21:05 +0000] 1 0 acme-123 localhost
+
+
+ The printer field contains the name of the printer that
+ printed the page. If you send a job to a printer class, this field will
+ contain the name of the printer that was assigned the job.
+The user field contains the name of the user (the IPP
+requesting-user-name attribute) that submitted this file for
+ printing.
+The job-id field contains the job number of the page being
+ printed. Job numbers are reset to 1 whenever the CUPS server is
+ started, so don't depend on this number being unique!
+The date-time field contains the date and time of when the
+ page started printing. The format of this field is identical to the
+ data-time field in the access_log file.
+The page-number and num-pages fields contain the page
+ number and number of copies being printed of that page. For printer
+ that can not produce copies on their own, the num-pages field
+ will always be 1.
+The job-billing field contains a copy of the job-billing
attribute provided with the IPP create-job or
-print-job requests or "-" if none was provided.
+print-job requests or "-" if none was provided.
+The hostname field contains the name of the host (the IPP
+job-originating-host-name attribute) that originated the print
+ job.
-CUPS provides a MIME-based file typing and filtering mechanism to
-convert files to a printable format for each printer. On startup the
-CUPS server reads MIME database files from the /etc/cups
+ CUPS provides a MIME-based file typing and filtering mechanism to
+ convert files to a printable format for each printer. On startup the
+ CUPS server reads MIME database files from the /etc/cups
directory (or a directory specified by the
-ServerRoot directive) to build a file type and conversion
-database in memory. These database files are plain ASCII text and can
-be edited with your favorite text editor.
-The mime.types and mime.convs files define the
-standard file types and filters that are available on the system.
-
-The mime.types file defines the known file types. Each
-line of the file starts with the MIME type and may be followed by one
-or more file type recognition rules. For example, the text/html
- file type is defined as:
+ServerRoot directive) to build a file type and conversion
+ database in memory. These database files are plain ASCII text and can
+ be edited with your favorite text editor.
+The mime.types and mime.convs files define the
+ standard file types and filters that are available on the system.
+
+The mime.types file defines the known file types. Each
+ line of the file starts with the MIME type and may be followed by one
+ or more file type recognition rules. For example, the text/html
+ file type is defined as:
text/html html htm \
- printable(0,1024) + \
- (string(0,"<HTML>") string(0,"<!DOCTYPE"))
-
-
-The first two rules say that any file with an extension of .html
- or .htm is a HTML file. The third rule says that any file
-whose first 1024 characters are printable text and starts with the
-strings <HTML> or <!DOCTYPE is a HTML file as
-well.
-The first two rules deal solely with the name of the file being
-typed. This is useful when the original filename is known, however for
-print files the server doesn't have a filename to work with. The third
-rule takes care of this possibility and automatically figures out the
-file type based upon the contents of the file instead.
-The available tests are:
-
-( expr ) - Parenthesis for expression grouping
-+ - Logical AND
-, or whitespace - Logical OR
-! - Logical NOT
-match("pattern") - Pattern match on filename
-extension - Pattern match on "*.extension"
-ascii(offset,length) - True if bytes are valid
- printable ASCII (CR, NL, TAB, BS, 32-126)
-printable(offset,length) - True if bytes are
- printable 8-bit chars (CR, NL, TAB, BS, 32-126, 160-254)
-string(offset,"string") - True if bytes are identical
-to string
-contains(offset,range,"string") - True if the range
-of bytes contains the string
-char(offset,value) - True if byte is identical
-short(offset,value) - True if 16-bit integer is
-identical (network or "big-endian" byte order)
-int(offset,value) - True if 32-bit integer is
- identical (network or "big-endian" byte order)
-locale("string") - True if current locale matches
-string
-
-All numeric values can be in decimal (123), octal (0123), or
-hexadecimal (0x123) as desired.
+ printable(0,1024) + \
+ (string(0,"<HTML>") string(0,"<!DOCTYPE"))
+
+
+ The first two rules say that any file with an extension of .html
+ or .htm is a HTML file. The third rule says that any file
+ whose first 1024 characters are printable text and starts with the
+ strings <HTML> or <!DOCTYPE is a HTML file as
+ well.
+The first two rules deal solely with the name of the file being
+ typed. This is useful when the original filename is known, however for
+ print files the server doesn't have a filename to work with. The third
+ rule takes care of this possibility and automatically figures out the
+ file type based upon the contents of the file instead.
+The available tests are:
+
+( expr ) - Parenthesis for expression grouping
++ - Logical AND
+, or whitespace - Logical OR
+! - Logical NOT
+match("pattern") - Pattern match on filename
+extension - Pattern match on "*.extension"
+ascii(offset,length) - True if bytes are valid
+ printable ASCII (CR, NL, TAB, BS, 32-126)
+printable(offset,length) - True if bytes are printable
+ 8-bit chars (CR, NL, TAB, BS, 32-126, 160-254)
+string(offset,"string") - True if bytes are identical
+ to string
+istring(offset,"string") - True if bytes are identical
+ to string after reducing both strings to lowercase
+contains(offset,range,"string") - True if the range of
+ bytes contains the string
+char(offset,value) - True if byte is identical
+short(offset,value) - True if 16-bit integer is
+ identical (network or "big-endian" byte order)
+int(offset,value) - True if 32-bit integer is identical
+ (network or "big-endian" byte order)
+locale("string") - True if current locale matches
+ string
+
+All numeric values can be in decimal (123), octal (0123), or
+ hexadecimal (0x123) as desired.
-Strings can be in quotes, all by themselves, as a string of
-hexadecimal values, or some combination:
+Strings can be in quotes, all by themselves, as a string of
+ hexadecimal values, or some combination:
"string"
@@ -2896,26 +4351,27 @@ string
<7374>ring
-As shown in the text/html example, rules can continue
-on multiple lines using the backslash (\) character. A more complex
-example is the image/jpeg rules:
+As shown in the text/html example, rules can continue on
+ multiple lines using the backslash (\) character. A more complex
+ example is the image/jpeg rules:
image/jpeg jpeg jpg jpe string(0,<FFD8FF>) &&\
- (char(3,0xe0) char(3,0xe1) char(3,0xe2) char(3,0xe3)\
- char(3,0xe4) char(3,0xe5) char(3,0xe6) char(3,0xe7)\
- char(3,0xe8) char(3,0xe9) char(3,0xea) char(3,0xeb)\
- char(3,0xec) char(3,0xed) char(3,0xee) char(3,0xef))
+ (char(3,0xe0) char(3,0xe1) char(3,0xe2) char(3,0xe3)\
+ char(3,0xe4) char(3,0xe5) char(3,0xe6) char(3,0xe7)\
+ char(3,0xe8) char(3,0xe9) char(3,0xea) char(3,0xeb)\
+ char(3,0xec) char(3,0xed) char(3,0xee) char(3,0xef))
-This rule states that any file with an extension of .jpeg
-, .jpg, or .jpe is a JPEG file. In addition, any
-file starting with the hexadecimal string <FFD8FF> (JPEG
-Start-Of-Image) followed by a character between and including 0xe0
- and 0xef (JPEG APPn markers) is also a JPEG file.
-
-The mime.convs file defines all of the filter programs
-that are known to the system. Each line consists of:
+This rule states that any file with an extension of .jpeg,
+ .jpg, or .jpe is a JPEG file. In addition, any file
+ starting with the hexadecimal string <FFD8FF> (JPEG
+ Start-Of-Image) followed by a character between and including
+0xe0 and 0xef (JPEG APPn markers) is also a JPEG
+ file.
+
+The mime.convs file defines all of the filter programs
+ that are known to the system. Each line consists of:
source destination cost program
@@ -2926,107 +4382,109 @@ image/* application/vnd.cups-postscript 50 imagetops
image/* application/vnd.cups-raster 50 imagetoraster
-The source field is a MIME type, optionally using a wildcard
-for the super-type or sub-type (e.g. "text/plain", "image/*",
-"*/postscript").
-The destination field is a MIME type defined in the
-mime.types file.
-The cost field defines a relative cost for the filtering
-operation from 1 to 100. The cost is used to choose between two
-different sets of filters when converting a file. For example, to
-convert from image/jpeg to
+The source field is a MIME type, optionally using a wildcard
+ for the super-type or sub-type (e.g. "text/plain", "image/*",
+ "*/postscript").
+The destination field is a MIME type defined in the
+ mime.types file.
+The cost field defines a relative cost for the filtering
+ operation from 1 to 100. The cost is used to choose between two
+ different sets of filters when converting a file. For example, to
+ convert from image/jpeg to
application/vnd.cups-raster , you could use the imagetops
and pstoraster filters for a total cost of 100, or the
-imagetoraster filter for a total cost of 50.
-The program field defines the filter program to run; the
-special program "-" can be used to make two file types equivalent. The
-program must accept the standard filter arguments and environment
-variables described in the CUPS Interface Design Description and CUPS
-Software Programmers Manual:
+imagetoraster filter for a total cost of 50.
+The program field defines the filter program to run; the
+ special program "-" can be used to make two file types equivalent. The
+ program must accept the standard filter arguments and environment
+ variables described in the CUPS Interface Design Description and CUPS
+ Software Programmers Manual:
program job user title options [filename]
-If specified, the filename argument defines a file to read
-when filtering, otherwise the filter must read from the standard input.
-All filtered output must go to the standard output.
+ If specified, the filename argument defines a file to read
+ when filtering, otherwise the filter must read from the standard input.
+ All filtered output must go to the standard output.
-
-Adding a new file type or filter is fairly straight-forward. Rather
-than adding the new type and filter to the mime.types and
-mime.convs files which are overwritten when you upgrade to a new
-version of CUPS, you simple need to create new files with .types
- and .convs extensions in the /etc/cups
- directory. We recommend that you use the product or format name, e.g.:
+
+Adding a new file type or filter is fairly straight-forward. Rather
+ than adding the new type and filter to the mime.types and
+ mime.convs files which are overwritten when you upgrade to a new
+ version of CUPS, you simple need to create new files with .types
+ and .convs extensions in the /etc/cups directory.
+ We recommend that you use the product or format name, e.g.:
myproduct.types
myproduct.convs
-If you are providing a filter for a common file format or printer,
-add the company or author name:
+If you are providing a filter for a common file format or printer,
+ add the company or author name:
acme-msword.types
-acme.msword.convs
+acme-msword.convs
-This will help to prevent name collisions if you install many
-different file types and filters.
-Once you choose the names for these files, create them using your
-favorite text editor as described earlier in this chapter. Once you
-have created the files, restart the cupsd process as
-described earlier in "Restarting the CUPS Server"
-.
-
-Most CUPS printer drivers utilize one or more printer-specific
-filters and a PPD file for each printer model. Printer driver filters
-are registered via the PPD file using cupsFilter
- attributes:
+This will help to prevent name collisions if you install many
+ different file types and filters.
+Once you choose the names for these files, create them using your
+ favorite text editor as described earlier in this chapter. Once you
+ have created the files, restart the cupsd process as
+ described earlier in "Restarting the CUPS Server"
+.
+
+Most CUPS printer drivers utilize one or more printer-specific
+ filters and a PPD file for each printer model. Printer driver filters
+ are registered via the PPD file using cupsFilter
+ attributes:
*cupsFilter: "application/vnd.cups-raster 0 rastertohp"
-The filter is specified using the source file type only; the
-destination file type is assumed to be printer/name -
-suitable for sending to the printer.
-
-CUPS supports an unlimited number of file formats and filters, and
-can handle any printer. If you'd like to write a filter or printer
-driver for your favorite file format or printer, consult the CUPS
-Software Programmers Manual for step-by-step instructions.
-
-This chapter describes how to print from client systems that use the
-LPD, Mac OS, or Windows printing protocols.
+The filter is specified using the source file type only; the
+ destination file type is assumed to be printer/name -
+ suitable for sending to the printer.
+
+CUPS supports an unlimited number of file formats and filters, and
+ can handle any printer. If you'd like to write a filter or printer
+ driver for your favorite file format or printer, consult the CUPS
+ Software Programmers Manual for step-by-step instructions.
+
+This chapter describes how to print from client systems that use the
+ LPD, Mac OS, or Windows printing protocols.
-CUPS is based on the IPP protocol, so any system that supports IPP
-can send jobs to and receive jobs from CUPS automatically. However, not
-all systems support IPP yet. This chapter will show you how to connect
-these systems to your CUPS server, either to accept jobs from your
-server for printing, or to send jobs to your server.
+CUPS is based on the IPP protocol, so any system that supports IPP
+ can send jobs to and receive jobs from CUPS automatically. However, not
+ all systems support IPP yet. This chapter will show you how to connect
+ these systems to your CUPS server, either to accept jobs from your
+ server for printing, or to send jobs to your server.
-CUPS supports limited functionality for LPD-based clients. With LPD
-you can print files to specific printers, list the queue status, and so
-forth. However, the automatic client configuration and printer options
-are not supported by the LPD protocol, so you must manually configure
-each client for the printers it needs to access.
-The cups-lpd(8) program provides support for LPD
-clients. To enable LPD support on your server, edit the
-/etc/inetd.conf file and add a line reading:
+CUPS supports limited functionality for LPD-based clients. With LPD
+ you can print files to specific printers, list the queue status, and so
+ forth. However, the automatic client configuration and printer options
+ are not supported by the LPD protocol, so you must manually configure
+ each client for the printers it needs to access.
+The cups-lpd(8) program provides support for LPD clients
+ and can be used from either the inetd(8) or
+xinetd(8) programs. Add the following line to the
+ /etc/inetd.conf file to enable LPD support on your server through
+ the inetd program:
printer stream tcp nowait lp /usr/lib/cups/daemon/cups-lpd cups-lpd
-The path to the cups-lpd may vary depending on your
-installation.
-Once you have added this line, send the inetd(8)
- process a HUP signal or reboot the system:
+The path to the cups-lpd may vary depending on your
+ installation.
+Once you have added this line, send the inetd process a
+HUP signal or reboot the system:
killall -HUP inetd ENTER [IRIX and some versions of Linux]
@@ -3034,40 +4492,97 @@ installation.
reboot ENTER [For all systems if the HUP signal fails]
-
-CUPS provides the lpd backend for printing to LPD-based
-servers and printers. Use a device URI of lpd://server/name
- to print to a printer on an LPD server, where server is
-the hostname or IP address of the server and name is the
-queue name.
-Microsoft Windows NT provides an LPD service under the name "TCP/IP
-Printing Services". To enable LPD printing on NT, open the "Services"
-control panel, select the "TCP/IP Printing Services" service, and click
-on the "Start" button. Any shared printer will then be available via
-the LPD protocol.
-
-CUPS does not provide Mac OS support directly. However, there are
-several free and commercial software packages that do.
-
-Because the CAP LaserWriter server (lwsrv(8) ) does not
-support specification of PPD files, we do not recommend that you use
-CAP with CUPS. However, you can run the lpsrv program for
-limited printing with the command:
+If you are using the xinetd program, create a file named
+ /etc/xinetd.d/printer containing the following lines:
+
+service printer
+{
+socket_type = stream
+protocol = tcp
+wait = no
+user = lp
+server = /usr/lib/cups/daemon/cups-lpd
+}
+
+
+The xinetd program automatically reads the new
+ configuration file and enables LPD printing support.
+
+
+Warning:
+ cups-lpd currently does not perform any access control
+ based on the settings in cupsd.conf or in the
+ hosts.allow or hosts.deny files used by TCP wrappers.
+ Therefore, running cups-lpd on your server will allow any
+ computer on your network (and perhaps the entire Internet) to print to
+ your server.
+While xinetd has built-in access control support, you
+ should use the TCP wrappers package with inetd to limit
+ access to only those computers that should be able to print through
+ your server.
+ |
+
+
+
+
+CUPS provides the lpd backend for printing to LPD-based
+ servers and printers. Use a device URI of lpd://server/name
+ to print to a printer on an LPD server, where server is
+ the hostname or IP address of the server and name is the
+ queue name. Additional options can be specified after the remote queue
+ name to control how the LPD requests are sent - consult
+Appendix B - Common Network Settings for a complete description.
+Microsoft Windows NT provides an LPD service under the name "TCP/IP
+ Printing Services". To enable LPD printing on NT, open the "Services"
+ control panel, select the "TCP/IP Printing Services" service, and click
+ on the "Start" button. Any shared printer will then be available via
+ the LPD protocol.
+
+
+
+Since Mac OS 10.2 uses CUPS as its printing system, all CUPS printers
+ will be available to the clients automatically.
+
+
+Note:
+ Certain legacy MacOS X applications, including most Adobe
+ applications, produce PICT files with embedded PostScript. Since the
+ filter needed to convert these files to pure PostScript is only
+ available on MacOS X, you need to either use a MacOS X print server or
+ replace the MacOS X IPP backend with the standard CUPS IPP backend. The
+ CUPS IPP backend will detect and locally convert these print files to
+ PostScript prior to sending the job to the server.
+ |
+
+
+
+
+
+
+CUPS does not provide support for Mac OS 10.1 and earlier directly.
+ However, there are several free and commercial software packages that
+ do.
+
+Because the CAP LaserWriter server (lwsrv(8) ) does not
+ support specification of PPD files, we do not recommend that you use
+ CAP with CUPS. However, you can run the lpsrv program for
+ limited printing with the command:
lwsrv -n "Name" -p printer -a /usr/lib/adicts -f /usr/lib/LW+Fonts
-where Name is the name you want to use when sharing the
-printer, and printer is the name of the CUPS print queue.
+ where Name is the name you want to use when sharing the
+ printer, and printer is the name of the CUPS print queue.
-
-To use your system as a print server for Mac OS clients, configure
-each printer using a papserver(8) in the
-/usr/adm/appletalk/services file, specifying the corresponding
-PPD file in the /etc/cups/ppd directory for each printer.
- For a printer named MyPrinter the entry would look like:
+
+To use your system as a print server for Mac OS clients, configure
+ each printer using a papserver(8) in the
+ /usr/adm/appletalk/services file, specifying the corresponding
+ PPD file in the /etc/cups/ppd directory for each printer.
+ For a printer named MyPrinter the entry would look like:
/usr/etc/appletalk/papserver -I -L -P /etc/cups/ppd/MyPrinter.ppd \
@@ -3077,36 +4592,47 @@ PPD file in the /etc/cups/ppd directory for each printer.
NOTE:
- Enter the text above on a single line without the backslash (\)
- character.
+Enter the text above on a single line without the backslash (\)
+ character.
|
-
-To use your system as a print server for Mac OS clients, configure
-each printer in the papd.conf file, specifying the
-corresponding PPD file in the /etc/cups/ppd directory for
-each printer. For a printer named MyPrinter the entry
-would look like:
+
+
+
+To use your system as a print server for Mac OS clients, configure
+ each printer in the papd.conf file, specifying the
+ corresponding PPD file in the /etc/cups/ppd directory for
+ each printer. For a printer named MyPrinter the entry
+ would look like:
-Printer Description:MyPrinter@MyServer:\
- :pr=|/usr/bin/lp -d MyPrinter:\
- :op=daemon:\
- :pd=/etc/cups/ppd/MyPrinter.ppd:
+Printer Name@Zone Name:\
+:pr=|/usr/bin/lp -d MyPrinter:\
+:op=daemon:\
+:pd=/etc/cups/ppd/MyPrinter.ppd:
-
-CUPS currently does not provide a backend to communicate with a Mac
-OS server. However, you can write and install a short shell script in
-the /usr/lib/cups/backend directory that sends a print file
-using the appropriate command. The following is a short script that
-will run the papif command provided with CAP.
-After copying this script to /usr/lib/cups/backend/cap,
-specify a device URI of cap://server/printer to use this
-backend with a print queue.
+
+Since MacOS 10.2 and later use CUPS, all you need to do is enable
+ printer sharing to allow CUPS clients to print to a Mac OS server. You
+ will need to download and install ESP Ghostscript on your server to
+ provide PostScript printing support for non-PostScript printers,
+ however.
+
+
+
+CUPS currently does not provide a backend to communicate with a Mac
+ OS 10.1 and earlier server. However, you can write and install a short
+ shell script in the /usr/lib/cups/backend directory that
+ sends a print file using the appropriate command. The following is a
+ short script that will run the papif command provided with
+ CAP.
+After copying this script to /usr/lib/cups/backend/cap,
+ specify a device URI of cap://server/printer to use this
+ backend with a print queue.
@@ -3120,8 +4646,8 @@ backend with a print queue.
# No arguments means show available devices...
if test ${#argv} = 0; then
- echo "network cap \"Unknown\" \"Mac OS Printer via CAP\""
- exit 0
+echo "network cap \"Unknown\" \"Mac OS Printer via CAP\""
+exit 0
fi
# Collect arguments...
@@ -3130,20 +4656,20 @@ user=$2
copies=$4
if test ${#argv} = 5; then
- # Get print file from stdin; copies have already been handled...
- file=/var/tmp/$$.prn
- copies=1
- cat > $file
+# Get print file from stdin; copies have already been handled...
+file=/var/tmp/$$.prn
+copies=1
+cat > $file
else
- # Print file is on command-line...
- file=$6
+# Print file is on command-line...
+file=$6
fi
# Create a dummy cap.printers file for this printer based
# upon a device URI of "cap://server/printer"...
echo $PRINTER/$DEVICE_URI | \
- awk -F/ '{print $1 "=" $5 ":LaserWriter@" $4}' > /var/tmp/$$.cap
+awk -F/ '{print $1 "=" $5 ":LaserWriter@" $4}' > /var/tmp/$$.cap
CAPPRINTERS=/var/tmp/$$.cap; export CAPPRINTERS
@@ -3151,14 +4677,14 @@ CAPPRINTERS=/var/tmp/$$.cap; export CAPPRINTERS
# have properly initialized the cap.printers file...
while [ $copies -gt 0 ]; do
- papif -n $user < $file
+papif -n $user < $file
- copies=`expr $copies - 1`
+copies=`expr $copies - 1`
done
# Remove any temporary files...
if test ${#argv} = 5; then
- /bin/rm -f $file
+/bin/rm -f $file
fi
/bin/rm -f /var/tmp/$$.cap
@@ -3168,47 +4694,131 @@ exit 0
-
-While CUPS does not provide Windows support directly, the free SAMBA
-software package does. SAMBA version 2.0.6 is the first release of
-SAMBA that supports CUPS. You can download SAMBA from:
+
+While CUPS does not provide Windows support directly, the free SAMBA
+ software package does. SAMBA version 2.0.6 is the first release of
+ SAMBA that supports CUPS. You can download SAMBA from:
http://www.samba.org
-To configure SAMBA for CUPS, edit the smb.conf file and
-replace the existing printing commands and options with the line:
+To configure SAMBA for CUPS, edit the smb.conf file and
+ replace the existing printing commands and options with the line:
printing = cups
+printcap name = cups
+
+
+That's all there is to it! Remote users will now be able to browse
+ and print to printers on your system.
+
+You can optionally export printer drivers from your CUPS server using
+ the cupsaddsmb command and the SAMBA 2.2.0 or higher
+ software.
+Before you can export the printers you must download the CUPS drivers
+ for Windows from the CUPS site (
+http://www.cups.org/) or the current Adobe PostScript printer
+ drivers from the Adobe web site (
+http://www.adobe.com/). If you download the Adobe drivers, use the
+ free unzip software to extract the files from the
+ self-extracting ZIP file containing the drivers; you will need the
+ following files:
+
+ADFONTS.MFM
+ADOBEPS4.DRV
+ADOBEPS4.HLP
+ADOBEPS5.DLL
+ADOBEPSU.DLL
+ADOBEPSU.HLP
+DEFPRTR2.PPD
+ICONLIB.DLL
+PSMON.DLL
+
+
+Copy these files to the /usr/share/cups/drivers directory
+ - you may need to rename some of the files so the filenames are all
+ UPPERCASE.
+Next, configure SAMBA (via the smb.conf file) to support
+ printing through CUPS and provide a printer driver download share, as
+ follows:
+
+[global]
+load printers = yes
+printing = cups
+printcap name = cups
+
+[printers]
+comment = All Printers
+path = /var/spool/samba
+browseable = no
+public = yes
+guest ok = yes
+writable = no
+printable = yes
+printer admin = root
+
+[print$]
+comment = Printer Drivers
+path = /etc/samba/drivers
+browseable = yes
+guest ok = no
+read only = yes
+write list = root
+
+
+This configuration assumes a FHS-compliant installation of SAMBA;
+ adjust the [printers] and [print$] share paths accordingly on your
+ system as needed. That is, the directory for your printer drivers can
+ be anywhere on the system; just make sure it is writable by the users
+ specified by the write list directive plus readable and
+ executable by all users. Also, make sure that you have SAMBA passwords
+ defined for each user in the write list using SAMBA's
+smbpasswd(1) command. Otherwise you will not be able to
+ authenticate.
+Finally, run the cupsaddsmb command to export the
+ printer drivers for one or more queues:
+
+cupsaddsmb -U root printer1 ... printerN ENTER
+
+
+Running cupsaddsmb with the -a option will
+ export all printers:
+
+cupsaddsmb -U root -a ENTER
-That's all there is to it! Remote users will now be able to browse
-and print to printers on your system.
-
-CUPS can print to Windows servers in one of two ways. The first way
-uses the LPD protocol on the CUPS system and the "TCP/IP Printing
-Services" on the Windows system. You can find out more about this
-configuration in the LPD section earlier in this
-chapter.
-The second way is through the Microsoft Server Message Block ("SMB")
-protocol. Support for this protocol is provided with the free SAMBA
-software package. You can download SAMBA from:
+Notice in the above examples that the user root was used
+ which was defined in the write list of the smb.conf
+ file.
+
+CUPS can print to Windows servers in one of two ways. The first way
+ uses the LPD protocol on the CUPS system and the "TCP/IP Printing
+ Services" on the Windows system. You can find out more about this
+ configuration in the LPD section earlier in this
+ chapter.
+The second way is through the Microsoft Server Message Block ("SMB")
+ protocol. Support for this protocol is provided with the free SAMBA
+ software package. You can download SAMBA from:
http://www.samba.org
-To configure CUPS for SAMBA, run the following command:
+To configure CUPS for SAMBA, run the following command:
ln -s `which smbspool` /usr/lib/cups/backend/smb ENTER
-The smbspool(1) program is provided with SAMBA starting
-with SAMBA 2.0.6. Once you have made the link you can configure your
-printers with one of the following device URIs:
+The smbspool(1) program is provided with SAMBA starting
+ with SAMBA 2.0.6. Once you have made the link you can configure your
+ printers with one of the following device URIs:
smb://workgroup/server/sharename
@@ -3217,96 +4827,125 @@ smb://user:pass@workgroup/server/sharename
smb://user:pass@server/sharename
-The workgroup name need only be specified if your
-system is using a different workgroup. The user:pass
- strings are required when printing to Windows NT servers or to shares
-with passwords enabled under Windows 95 and 98.
+The workgroup name need only be specified if your system
+ is using a different workgroup. The user:pass strings are
+ required when printing to Windows NT servers or to shares with
+ passwords enabled under Windows 95 and 98.
-
-Copyright 1997-2001 by Easy Software Products
+
+Copyright 1997-2005 by Easy Software Products
44141 AIRPORT VIEW DR STE 204
- HOLLYWOOD, MARYLAND 20636-3111 USA
+ HOLLYWOOD, MARYLAND 20636 USA
Voice: +1.301.373.9600
Email: cups-info@cups.org
WWW: http://www.cups.org
-The Common UNIX Printing SystemTM, ("CUPSTM"),
-is provided under the GNU General Public License ("GPL") and GNU
-Library General Public License ("LGPL"), Version 2. A copy of these
-licenses follow this introduction.
-The GNU LGPL applies to the CUPS API library, located in the "cups"
-subdirectory of the CUPS source distribution and in the
-"/usr/include/cups" directory and "libcups.a", "libcups.sl", or
-"libcups.so" files in the binary distributions.
-The GNU GPL applies to the remainder of the CUPS distribution,
-including the "pstoraster" filter which is based upon GNU Ghostscript
-5.50 and the "pdftops" filter which is based upon Xpdf 0.90.
-For those not familiar with the GNU GPL, the license basically
-allows you to:
-
-- Use the CUPS software at no charge.
-- Distribute verbatim copies of the software in source or binary
-form.
-- Sell verbatim copies of the software for a media fee, or sell
-support for the software.
-- Distribute or sell printer drivers and filters that use CUPS so
-long as source code is made available under the GPL.
-
-What this license does not allow you to do is make changes or
-add features to CUPS and then sell a binary distribution without source
-code. You must provide source for any new drivers, changes, or
-additions to the software, and all code must be provided under the GPL
-or LGPL as appropriate.
-The GNU LGPL relaxes the "link-to" restriction, allowing you to
-develop applications that use the CUPS API library under other licenses
-and/or conditions as appropriate for your application.
-
-Easy Software Products has trademarked the Common UNIX Printing
-System, CUPS, and CUPS logo. These names and logos may be used freely
-in any direct port or binary distribution of CUPS. To use them in
-derivative products, please contract Easy Software Products for written
-permission. Our intention is to protect the value of these trademarks
-and ensure that any derivative product meets the same high-quality
-standards as the original.
-
-Easy Software Products also sells rights to the CUPS source code
-under a binary distribution license for vendors that are unable to
-release source code for their drivers, additions, and modifications to
-CUPS under the GNU GPL and LGPL. For information please contact us at
-the address shown above.
-The Common UNIX Printing System provides a "pstoraster" filter that
-utilizes the GNU GhostScript 5.50 core to convert PostScript files into
-a stream of raster images. For binary distribution licensing of this
-software, please contact: Miles Jones
- Director of Marketing
- Artifex Software Inc.
- 454 Las Gallinas Ave., Suite 108
- San Rafael, CA 94903 USA
- Voice: +1.415.492.9861
- Fax: +1.415.492.9862
- EMail: info@arsoft.com
-
-The "pdftops" filter is based on the Xpdf 0.90 software. For binary
-distribution licensing of this software, please contact:
- Derek B. Noonburg
+The Common UNIX Printing SystemTM, ("CUPSTM"),
+ is provided under the GNU General Public License ("GPL") and GNU
+ Library General Public License ("LGPL"), Version 2, with exceptions for
+ Apple operating systems and the OpenSSL toolkit. A copy of the
+ exceptions and licenses follow this introduction.
+The GNU LGPL applies to the CUPS API library, located in the "cups"
+ subdirectory of the CUPS source distribution and in the "cups" include
+ directory and library files in the binary distributions. The GNU GPL
+ applies to the remainder of the CUPS distribution, including the
+ "pdftops" filter which is based upon Xpdf and the CUPS imaging library.
+For those not familiar with the GNU GPL, the license basically allows
+ you to:
+
+- Use the CUPS software at no charge.
+- Distribute verbatim copies of the software in source or binary form.
+- Sell verbatim copies of the software for a media fee, or sell
+ support for the software.
+- Distribute or sell printer drivers and filters that use CUPS so long
+ as source code is made available under the GPL.
+
+What this license does not allow you to do is make changes or
+ add features to CUPS and then sell a binary distribution without source
+ code. You must provide source for any new drivers, changes, or
+ additions to the software, and all code must be provided under the GPL
+ or LGPL as appropriate. The only exceptions to this are the portions of
+ the CUPS software covered by the Apple operating system license
+ exceptions outlined later in this license agreement.
+The GNU LGPL relaxes the "link-to" restriction, allowing you to
+ develop applications that use the CUPS API library under other licenses
+ and/or conditions as appropriate for your application.
+
+In addition, as the copyright holder of CUPS, Easy Software Products
+ grants the following special exceptions:
+
+- Apple Operating System Development License Exception;
+
+- Software that is developed by any person or entity for an Apple
+ Operating System ("Apple OS-Developed Software"), including but not
+ limited to Apple and third party printer drivers, filters, and backends
+ for an Apple Operating System, that is linked to the CUPS imaging
+ library or based on any sample filters or backends provided with CUPS
+ shall not be considered to be a derivative work or collective work
+ based on the CUPS program and is exempt from the mandatory source code
+ release clauses of the GNU GPL. You may therefore distribute linked
+ combinations of the CUPS imaging library with Apple OS-Developed
+ Software without releasing the source code of the Apple OS-Developed
+ Software. You may also use sample filters and backends provided with
+ CUPS to develop Apple OS-Developed Software without releasing the
+ source code of the Apple OS-Developed Software.
+- An Apple Operating System means any operating system software
+ developed and/or marketed by Apple Computer, Inc., including but not
+ limited to all existing releases and versions of Apple's Darwin, Mac OS
+ X, and Mac OS X Server products and all follow-on releases and future
+ versions thereof.
+- This exception is only available for Apple OS-Developed Software and
+ does not apply to software that is distributed for use on other
+ operating systems.
+- All CUPS software that falls under this license exception have the
+ following text at the top of each source file:
This file is
+ subject to the Apple OS-Developed Software exception.
+
+
+- OpenSSL Toolkit License Exception;
+
+- Easy Software Products explicitly allows the compilation and
+ distribution of the CUPS software with the OpenSSL Toolkit.
+
+
+
+No developer is required to provide these exceptions in a derived
+ work.
+
+Easy Software Products has trademarked the Common UNIX Printing
+ System, CUPS, and CUPS logo. You may use these names and logos in any
+ direct port or binary distribution of CUPS. Please contact Easy
+ Software Products for written permission to use them in derivative
+ products. Our intention is to protect the value of these trademarks and
+ ensure that any derivative product meets the same high-quality
+ standards as the original.
+
+Easy Software Products also sells rights to the CUPS source code
+ under a binary distribution license for vendors that are unable to
+ release source code for their drivers, additions, and modifications to
+ CUPS under the GNU GPL and LGPL. For information please contact us at
+ the address shown above.
+The Common UNIX Printing System provides a "pdftops" filter that is
+ based on the Xpdf software. For binary distribution licensing of this
+ software, please contact: Derek B. Noonburg
Email: derekn@foolabs.com
WWW:
http://www.foolabs.com/xpdf/
-
-Easy Software Products sells software support for CUPS as well as a
-commercial printing product based on CUPS called ESP Print Pro. You can
-find out more at our web site:
+
+Easy Software Products sells software support for CUPS as well as a
+ commercial printing product based on CUPS called ESP Print Pro. You can
+ find out more at our web site:
-http://www.easysw.com
+http://www.easysw.com/
-Version 2, June 1991
+Version 2, June 1991
Copyright 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
@@ -3314,256 +4953,310 @@ Copyright 1989, 1991 Free Software Foundation, Inc.
Everyone is permitted to copy and distribute verbatim
copies of this license document, but changing it is not allowed.
-
-
-
-Preamble
-The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it in
-new free programs; and that you know you can do these things.
-To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-We protect your rights with two steps: (1) copyright the software,
-and (2) offer you this license which gives you legal permission to
-copy, distribute and/or modify the software.
-Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on,
-we want its recipients to know that what they have is not the original,
-so that any problems introduced by others will not reflect on the
-original authors' reputations.
-Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-The precise terms and conditions for copying, distribution and
-modification follow.
+
+The licenses for most software are designed to take away your freedom
+ to share and change it. By contrast, the GNU General Public License is
+ intended to guarantee your freedom to share and change free
+ software--to make sure the software is free for all its users. This
+ General Public License applies to most of the Free Software
+ Foundation's software and to any other program whose authors commit to
+ using it. (Some other Free Software Foundation software is covered by
+ the GNU Library General Public License instead.) You can apply it to
+ your programs, too.
+When we speak of free software, we are referring to freedom, not
+ price. Our General Public Licenses are designed to make sure that you
+ have the freedom to distribute copies of free software (and charge for
+ this service if you wish), that you receive source code or can get it
+ if you want it, that you can change the software or use pieces of it in
+ new free programs; and that you know you can do these things.
+To protect your rights, we need to make restrictions that forbid
+ anyone to deny you these rights or to ask you to surrender the rights.
+ These restrictions translate to certain responsibilities for you if you
+ distribute copies of the software, or if you modify it.
+For example, if you distribute copies of such a program, whether
+ gratis or for a fee, you must give the recipients all the rights that
+ you have. You must make sure that they, too, receive or can get the
+ source code. And you must show them these terms so they know their
+ rights.
+We protect your rights with two steps: (1) copyright the software,
+ and (2) offer you this license which gives you legal permission to
+ copy, distribute and/or modify the software.
+Also, for each author's protection and ours, we want to make certain
+ that everyone understands that there is no warranty for this free
+ software. If the software is modified by someone else and passed on, we
+ want its recipients to know that what they have is not the original, so
+ that any problems introduced by others will not reflect on the original
+ authors' reputations.
+Finally, any free program is threatened constantly by software
+ patents. We wish to avoid the danger that redistributors of a free
+ program will individually obtain patent licenses, in effect making the
+ program proprietary. To prevent this, we have made it clear that any
+ patent must be licensed for everyone's free use or not licensed at all.
+The precise terms and conditions for copying, distribution and
+ modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-- This License applies to any program or other work which contains a
-notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the Program
-(independent of having been made by running the Program). Whether that
-is true depends on what the Program does.
-- You may copy and distribute verbatim copies of the Program's source
-code as you receive it, in any medium, provided that you conspicuously
-and appropriately publish on each copy an appropriate copyright notice
-and disclaimer of warranty; keep intact all the notices that refer to
-this License and to the absence of any warranty; and give any other
-recipients of the Program a copy of this License along with the
-Program.
-You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-- You may modify your copy or copies of the Program or any portion of
-it, thus forming a work based on the Program, and copy and distribute
-such modifications or work under the terms of Section 1 above, provided
-that you also meet all of these conditions:
+
- This License applies to any program or other work which contains a
+ notice placed by the copyright holder saying it may be distributed
+ under the terms of this General Public License. The "Program", below,
+ refers to any such program or work, and a "work based on the Program"
+ means either the Program or any derivative work under copyright law:
+ that is to say, a work containing the Program or a portion of it,
+ either verbatim or with modifications and/or translated into another
+ language. (Hereinafter, translation is included without limitation in
+ the term "modification".) Each licensee is addressed as "you".
+
Activities other than copying, distribution and modification are not
+ covered by this License; they are outside its scope. The act of running
+ the Program is not restricted, and the output from the Program is
+ covered only if its contents constitute a work based on the Program
+ (independent of having been made by running the Program). Whether that
+ is true depends on what the Program does.
+
+- You may copy and distribute verbatim copies of the Program's source
+ code as you receive it, in any medium, provided that you conspicuously
+ and appropriately publish on each copy an appropriate copyright notice
+ and disclaimer of warranty; keep intact all the notices that refer to
+ this License and to the absence of any warranty; and give any other
+ recipients of the Program a copy of this License along with the
+ Program.
+
You may charge a fee for the physical act of transferring a copy, and
+ you may at your option offer warranty protection in exchange for a fee.
+
+- You may modify your copy or copies of the Program or any portion of
+ it, thus forming a work based on the Program, and copy and distribute
+ such modifications or work under the terms of Section 1 above, provided
+ that you also meet all of these conditions:
-- You must cause the modified files to carry prominent notices
-stating that you changed the files and the date of any change.
-- You must cause any work that you distribute or publish, that in
-whole or in part contains or is derived from the Program or any part
-thereof, to be licensed as a whole at no charge to all third parties
-under the terms of this License.
-- if the modified program normally reads commands interactively when
-run, you must cause it, when started running for such interactive use
-in the most ordinary way, to print or display an announcement including
-an appropriate copyright notice and a notice that there is no warranty
-(or else, saying that you provide a warranty) and that users may
-redistribute the program under these conditions, and telling the user
-how to view a copy of this License. (Exception: if the Program itself
-is interactive but does not normally print such an announcement, your
-work based on the Program is not required to print an announcement.)
+- You must cause the modified files to carry prominent notices stating
+ that you changed the files and the date of any change.
+- You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any part
+ thereof, to be licensed as a whole at no charge to all third parties
+ under the terms of this License.
+- if the modified program normally reads commands interactively when
+ run, you must cause it, when started running for such interactive use
+ in the most ordinary way, to print or display an announcement including
+ an appropriate copyright notice and a notice that there is no warranty
+ (or else, saying that you provide a warranty) and that users may
+ redistribute the program under these conditions, and telling the user
+ how to view a copy of this License. (Exception: if the Program itself
+ is interactive but does not normally print such an announcement, your
+ work based on the Program is not required to print an announcement.)
+These requirements apply to the modified work as a whole. If
+ identifiable sections of that work are not derived from the Program,
+ and can be reasonably considered independent and separate works in
+ themselves, then this License, and its terms, do not apply to those
+ sections when you distribute them as separate works. But when you
+ distribute the same sections as part of a whole which is a work based
+ on the Program, the distribution of the whole must be on the terms of
+ this License, whose permissions for other licensees extend to the
+ entire whole, and thus to each and every part regardless of who wrote
+ it.
+Thus, it is not the intent of this section to claim rights or contest
+ your rights to work written entirely by you; rather, the intent is to
+ exercise the right to control the distribution of derivative or
+ collective works based on the Program.
+In addition, mere aggregation of another work not based on the
+ Program with the Program (or with a work based on the Program) on a
+ volume of a storage or distribution medium does not bring the other
+ work under the scope of this License.
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-Thus, it is not the intent of this section to claim rights or
-contest your rights to work written entirely by you; rather, the intent
-is to exercise the right to control the distribution of derivative or
-collective works based on the Program.
-In addition, mere aggregation of another work not based on the
-Program with the Program (or with a work based on the Program) on a
-volume of a storage or distribution medium does not bring the other
-work under the scope of this License.
-- You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
+
- You may copy and distribute the Program (or a work based on it,
+ under Section 2) in object code or executable form under the terms of
+ Sections 1 and 2 above provided that you also do one of the following:
-- Accompany it with the complete corresponding machine-readable
-source code, which must be distributed under the terms of Sections 1
-and 2 above on a medium customarily used for software interchange; or,
-- Accompany it with a written offer, valid for at least three years,
-to give any third party, for a charge no more than your cost of
-physically performing source distribution, a complete machine-readable
-copy of the corresponding source code, to be distributed under the
-terms of Sections 1 and 2 above on a medium customarily used for
-software interchange; or,
-- Accompany it with the information you received as to the offer to
-distribute corresponding source code. (This alternative is allowed
-only for noncommercial distribution and only if you received the
-program in object code or executable form with such an offer, in accord
-with Subsection b above.)
+- Accompany it with the complete corresponding machine-readable source
+ code, which must be distributed under the terms of Sections 1 and 2
+ above on a medium customarily used for software interchange; or,
+- Accompany it with a written offer, valid for at least three years,
+ to give any third party, for a charge no more than your cost of
+ physically performing source distribution, a complete machine-readable
+ copy of the corresponding source code, to be distributed under the
+ terms of Sections 1 and 2 above on a medium customarily used for
+ software interchange; or,
+- Accompany it with the information you received as to the offer to
+ distribute corresponding source code. (This alternative is allowed only
+ for noncommercial distribution and only if you received the program in
+ object code or executable form with such an offer, in accord with
+ Subsection b above.)
+The source code for a work means the preferred form of the work for
+ making modifications to it. For an executable work, complete source
+ code means all the source code for all modules it contains, plus any
+ associated interface definition files, plus the scripts used to control
+ compilation and installation of the executable. However, as a special
+ exception, the source code distributed need not include anything that
+ is normally distributed (in either source or binary form) with the
+ major components (compiler, kernel, and so on) of the operating system
+ on which the executable runs, unless that component itself accompanies
+ the executable.
+If distribution of executable or object code is made by offering
+ access to copy from a designated place, then offering equivalent access
+ to copy the source code from the same place counts as distribution of
+ the source code, even though third parties are not compelled to copy
+ the source along with the object code.
+
+- You may not copy, modify, sublicense, or distribute the Program
+ except as expressly provided under this License. Any attempt otherwise
+ to copy, modify, sublicense or distribute the Program is void, and will
+ automatically terminate your rights under this License. However,
+ parties who have received copies, or rights, from you under this
+ License will not have their licenses terminated so long as such parties
+ remain in full compliance.
+- You are not required to accept this License, since you have not
+ signed it. However, nothing else grants you permission to modify or
+ distribute the Program or its derivative works. These actions are
+ prohibited by law if you do not accept this License. Therefore, by
+ modifying or distributing the Program (or any work based on the
+ Program), you indicate your acceptance of this License to do so, and
+ all its terms and conditions for copying, distributing or modifying the
+ Program or works based on it.
+- Each time you redistribute the Program (or any work based on the
+ Program), the recipient automatically receives a license from the
+ original licensor to copy, distribute or modify the Program subject to
+ these terms and conditions. You may not impose any further restrictions
+ on the recipients' exercise of the rights granted herein. You are not
+ responsible for enforcing compliance by third parties to this License.
+- If, as a consequence of a court judgment or allegation of patent
+ infringement or for any other reason (not limited to patent issues),
+ conditions are imposed on you (whether by court order, agreement or
+ otherwise) that contradict the conditions of this License, they do not
+ excuse you from the conditions of this License. If you cannot
+ distribute so as to satisfy simultaneously your obligations under this
+ License and any other pertinent obligations, then as a consequence you
+ may not distribute the Program at all. For example, if a patent license
+ would not permit royalty-free redistribution of the Program by all
+ those who receive copies directly or indirectly through you, then the
+ only way you could satisfy both it and this License would be to refrain
+ entirely from distribution of the Program.
+
If any portion of this section is held invalid or unenforceable under
+ any particular circumstance, the balance of the section is intended to
+ apply and the section as a whole is intended to apply in other
+ circumstances.
+It is not the purpose of this section to induce you to infringe any
+ patents or other property right claims or to contest validity of any
+ such claims; this section has the sole purpose of protecting the
+ integrity of the free software distribution system, which is
+ implemented by public license practices. Many people have made generous
+ contributions to the wide range of software distributed through that
+ system in reliance on consistent application of that system; it is up
+ to the author/donor to decide if he or she is willing to distribute
+ software through any other system and a licensee cannot impose that
+ choice.
+This section is intended to make thoroughly clear what is believed to
+ be a consequence of the rest of this License.
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to control
-compilation and installation of the executable. However, as a special
-exception, the source code distributed need not include anything that
-is normally distributed (in either source or binary form) with the
-major components (compiler, kernel, and so on) of the operating system
-on which the executable runs, unless that component itself accompanies
-the executable.
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent access
-to copy the source code from the same place counts as distribution of
-the source code, even though third parties are not compelled to copy
-the source along with the object code.
-- You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt otherwise
-to copy, modify, sublicense or distribute the Program is void, and will
-automatically terminate your rights under this License. However,
-parties who have received copies, or rights, from you under this
-License will not have their licenses terminated so long as such parties
-remain in full compliance.
-- You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying the
-Program or works based on it.
-- Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-- If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-If any portion of this section is held invalid or unenforceable
-under any particular circumstance, the balance of the section is
-intended to apply and the section as a whole is intended to apply in
-other circumstances.
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-This section is intended to make thoroughly clear what is believed
-to be a consequence of the rest of this License.
-- If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License may
-add an explicit geographical distribution limitation excluding those
-countries, so that distribution is permitted only in or among countries
-not thus excluded. In such case, this License incorporates the
-limitation as if written in the body of this License.
-- The Free Software Foundation may publish revised and/or new
-versions of the General Public License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-Each version is given a distinguishing version number. If the
-Program specifies a version number of this License which applies to it
-and "any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Program does not specify a
-version number of this License, you may choose any version ever
-published by the Free Software Foundation.
-- If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the
-author to ask for permission. For software which is copyrighted by the
-Free Software Foundation, write to the Free Software Foundation; we
-sometimes make exceptions for this. Our decision will be guided by the
-two goals of preserving the free status of all derivatives of our free
-software and of promoting the sharing and reuse of software generally.
+- If the distribution and/or use of the Program is restricted in
+ certain countries either by patents or by copyrighted interfaces, the
+ original copyright holder who places the Program under this License may
+ add an explicit geographical distribution limitation excluding those
+ countries, so that distribution is permitted only in or among countries
+ not thus excluded. In such case, this License incorporates the
+ limitation as if written in the body of this License.
+- The Free Software Foundation may publish revised and/or new versions
+ of the General Public License from time to time. Such new versions will
+ be similar in spirit to the present version, but may differ in detail
+ to address new problems or concerns.
+
Each version is given a distinguishing version number. If the Program
+ specifies a version number of this License which applies to it and "any
+ later version", you have the option of following the terms and
+ conditions either of that version or of any later version published by
+ the Free Software Foundation. If the Program does not specify a version
+ number of this License, you may choose any version ever published by
+ the Free Software Foundation.
+
+- If you wish to incorporate parts of the Program into other free
+ programs whose distribution conditions are different, write to the
+ author to ask for permission. For software which is copyrighted by the
+ Free Software Foundation, write to the Free Software Foundation; we
+ sometimes make exceptions for this. Our decision will be guided by the
+ two goals of preserving the free status of all derivatives of our free
+ software and of promoting the sharing and reuse of software generally.
NO WARRANTY
-- BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
- EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND,
-EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS
-WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
+- BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
+ EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
+ ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH
+ YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
+ NECESSARY SERVICING, REPAIR OR CORRECTION.
+- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+ WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+ AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
+ FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+ CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+ PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+ RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+ FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF
+ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGES.
END OF TERMS AND CONDITIONS
+How to Apply These Terms to Your New Programs
+If you develop a new program, and you want it to be of the greatest
+ possible use to the public, the best way to achieve this is to make it
+ free software which everyone can redistribute and change under these
+ terms.
+To do so, attach the following notices to the program. It is safest
+ to attach them to the start of each source file to most effectively
+ convey the exclusion of warranty; and each file should have at least
+ the "copyright" line and a pointer to where the full notice is found.
+
+one line to give the program's name and an idea of what it does.
+Copyright (C) yyyy name of author
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+Also add information on how to contact you by electronic and paper
+ mail.
+If the program is interactive, make it output a short notice like
+ this when it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
+type `show w'. This is free software, and you are welcome
+to redistribute it under certain conditions; type `show c'
+for details.
+
+The hypothetical commands `show w' and `show c'
+ should show the appropriate parts of the General Public License. Of
+ course, the commands you use may be called something other than
+`show w' and `show c'; they could even be
+ mouse-clicks or menu items--whatever suits your program.
+You should also get your employer (if you work as a programmer) or
+ your school, if any, to sign a "copyright disclaimer" for the program,
+ if necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright
+interest in the program `Gnomovision'
+(which makes passes at compilers) written
+by James Hacker.
+
+signature of Ty Coon, 1 April 1989
+Ty Coon, President of Vice
+
-Version 2, June 1991
+Version 2, June 1991
Copyright (C) 1991 Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
@@ -3573,401 +5266,448 @@ of this license document, but changing it is not allowed.
[This is the first released version of the library GPL. It is
numbered 2 because it goes with version 2 of the ordinary GPL.]
-Preamble
-The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-This license, the Library General Public License, applies to some
-specially designated Free Software Foundation software, and to any
-other libraries whose authors decide to use it. You can use it for
-your libraries, too.
-When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it in
-new free programs; and that you know you can do these things.
-To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the library, or if you modify it.
-For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link a program with the library, you must provide
-complete object files to the recipients so that they can relink them
-with the library, after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-Our method of protecting your rights has two steps: (1) copyright
-the library, and (2) offer you this license which gives you legal
-permission to copy, distribute and/or modify the library.
-Also, for each distributor's protection, we want to make certain
-that everyone understands that there is no warranty for this free
-library. If the library is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original
-version, so that any problems introduced by others will not reflect on
-the original authors' reputations.
-Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that companies distributing free
-software will individually obtain patent licenses, thus in effect
-transforming the program into proprietary software. To prevent this,
-we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License, which was designed for utility
-programs. This license, the GNU Library General Public License,
-applies to certain designated libraries. This license is quite
-different from the ordinary one; be sure to read it in full, and don't
-assume that anything in it is the same as in the ordinary license.
-The reason we have a separate public license for some libraries is
-that they blur the distinction we usually make between modifying or
-adding to a program and simply using it. Linking a program with a
-library, without changing the library, is in some sense simply using
-the library, and is analogous to running a utility program or
-application program. However, in a textual and legal sense, the linked
-executable is a combined work, a derivative of the original library,
-and the ordinary General Public License treats it as such.
-Because of this blurred distinction, using the ordinary General
-Public License for libraries did not effectively promote software
-sharing, because most developers did not use the libraries. We
-concluded that weaker conditions might promote sharing better.
-However, unrestricted linking of non-free programs would deprive the
-users of those programs of all benefit from the free status of the
-libraries themselves. This Library General Public License is intended
-to permit developers of non-free programs to use free libraries, while
-preserving your freedom as a user of such programs to change the free
-libraries that are incorporated in them. (We have not seen how to
-achieve this as regards changes in header files, but we have achieved
-it as regards changes in the actual functions of the Library.) The
-hope is that this will lead to faster development of free libraries.
-The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, while the latter only
-works together with the library.
-Note that it is possible for a library to be covered by the ordinary
-General Public License rather than by this special one.
+
+The licenses for most software are designed to take away your freedom
+ to share and change it. By contrast, the GNU General Public Licenses
+ are intended to guarantee your freedom to share and change free
+ software--to make sure the software is free for all its users.
+This license, the Library General Public License, applies to some
+ specially designated Free Software Foundation software, and to any
+ other libraries whose authors decide to use it. You can use it for your
+ libraries, too.
+When we speak of free software, we are referring to freedom, not
+ price. Our General Public Licenses are designed to make sure that you
+ have the freedom to distribute copies of free software (and charge for
+ this service if you wish), that you receive source code or can get it
+ if you want it, that you can change the software or use pieces of it in
+ new free programs; and that you know you can do these things.
+To protect your rights, we need to make restrictions that forbid
+ anyone to deny you these rights or to ask you to surrender the rights.
+ These restrictions translate to certain responsibilities for you if you
+ distribute copies of the library, or if you modify it.
+For example, if you distribute copies of the library, whether gratis
+ or for a fee, you must give the recipients all the rights that we gave
+ you. You must make sure that they, too, receive or can get the source
+ code. If you link a program with the library, you must provide complete
+ object files to the recipients so that they can relink them with the
+ library, after making changes to the library and recompiling it. And
+ you must show them these terms so they know their rights.
+Our method of protecting your rights has two steps: (1) copyright the
+ library, and (2) offer you this license which gives you legal
+ permission to copy, distribute and/or modify the library.
+Also, for each distributor's protection, we want to make certain that
+ everyone understands that there is no warranty for this free library.
+ If the library is modified by someone else and passed on, we want its
+ recipients to know that what they have is not the original version, so
+ that any problems introduced by others will not reflect on the original
+ authors' reputations.
+Finally, any free program is threatened constantly by software
+ patents. We wish to avoid the danger that companies distributing free
+ software will individually obtain patent licenses, thus in effect
+ transforming the program into proprietary software. To prevent this, we
+ have made it clear that any patent must be licensed for everyone's free
+ use or not licensed at all.
+Most GNU software, including some libraries, is covered by the
+ ordinary GNU General Public License, which was designed for utility
+ programs. This license, the GNU Library General Public License, applies
+ to certain designated libraries. This license is quite different from
+ the ordinary one; be sure to read it in full, and don't assume that
+ anything in it is the same as in the ordinary license.
+The reason we have a separate public license for some libraries is
+ that they blur the distinction we usually make between modifying or
+ adding to a program and simply using it. Linking a program with a
+ library, without changing the library, is in some sense simply using
+ the library, and is analogous to running a utility program or
+ application program. However, in a textual and legal sense, the linked
+ executable is a combined work, a derivative of the original library,
+ and the ordinary General Public License treats it as such.
+Because of this blurred distinction, using the ordinary General
+ Public License for libraries did not effectively promote software
+ sharing, because most developers did not use the libraries. We
+ concluded that weaker conditions might promote sharing better.
+However, unrestricted linking of non-free programs would deprive the
+ users of those programs of all benefit from the free status of the
+ libraries themselves. This Library General Public License is intended
+ to permit developers of non-free programs to use free libraries, while
+ preserving your freedom as a user of such programs to change the free
+ libraries that are incorporated in them. (We have not seen how to
+ achieve this as regards changes in header files, but we have achieved
+ it as regards changes in the actual functions of the Library.) The hope
+ is that this will lead to faster development of free libraries.
+The precise terms and conditions for copying, distribution and
+ modification follow. Pay close attention to the difference between a
+ "work based on the library" and a "work that uses the library". The
+ former contains code derived from the library, while the latter only
+ works together with the library.
+Note that it is possible for a library to be covered by the ordinary
+ General Public License rather than by this special one.
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-0. This License Agreement applies to any software
-library which contains a notice placed by the copyright holder or other
-authorized party saying it may be distributed under the terms of this
-Library General Public License (also called "this License"). Each
-licensee is addressed as "you".
-A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-"Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control
-compilation and installation of the library.
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does and
-what the program that uses the Library does.
-1. You may copy and distribute verbatim copies of
-the Library's complete source code as you receive it, in any medium,
-provided that you conspicuously and appropriately publish on each copy
-an appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the Library.
-You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-2. You may modify your copy or copies of the
-Library or any portion of it, thus forming a work based on the Library,
-and copy and distribute such modifications or work under the terms of
-Section 1 above, provided that you also meet all of these conditions:
+0. This License Agreement applies to any software
+ library which contains a notice placed by the copyright holder or other
+ authorized party saying it may be distributed under the terms of this
+ Library General Public License (also called "this License"). Each
+ licensee is addressed as "you".
+A "library" means a collection of software functions and/or data
+ prepared so as to be conveniently linked with application programs
+ (which use some of those functions and data) to form executables.
+The "Library", below, refers to any such software library or work
+ which has been distributed under these terms. A "work based on the
+ Library" means either the Library or any derivative work under
+ copyright law: that is to say, a work containing the Library or a
+ portion of it, either verbatim or with modifications and/or translated
+ straightforwardly into another language. (Hereinafter, translation is
+ included without limitation in the term "modification".)
+"Source code" for a work means the preferred form of the work for
+ making modifications to it. For a library, complete source code means
+ all the source code for all modules it contains, plus any associated
+ interface definition files, plus the scripts used to control
+ compilation and installation of the library.
+Activities other than copying, distribution and modification are not
+ covered by this License; they are outside its scope. The act of running
+ a program using the Library is not restricted, and output from such a
+ program is covered only if its contents constitute a work based on the
+ Library (independent of the use of the Library in a tool for writing
+ it). Whether that is true depends on what the Library does and what the
+ program that uses the Library does.
+1. You may copy and distribute verbatim copies of
+ the Library's complete source code as you receive it, in any medium,
+ provided that you conspicuously and appropriately publish on each copy
+ an appropriate copyright notice and disclaimer of warranty; keep intact
+ all the notices that refer to this License and to the absence of any
+ warranty; and distribute a copy of this License along with the Library.
+You may charge a fee for the physical act of transferring a copy, and
+ you may at your option offer warranty protection in exchange for a fee.
+2. You may modify your copy or copies of the Library
+ or any portion of it, thus forming a work based on the Library, and
+ copy and distribute such modifications or work under the terms of
+ Section 1 above, provided that you also meet all of these conditions:
-- The modified work must itself be a software library.
+- The modified work must itself be a software library.
-
- You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
+
+- You must cause the files modified to carry prominent notices stating
+ that you changed the files and the date of any change.
-
- You must cause the whole of the work to be licensed at no charge
-to all third parties under the terms of this License.
+
+- You must cause the whole of the work to be licensed at no charge to
+ all third parties under the terms of this License.
-
- If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses the
-facility, other than as an argument passed when the facility is
-invoked, then you must make a good faith effort to ensure that, in the
-event an application does not supply such function or table, the
-facility still operates, and performs whatever part of its purpose
-remains meaningful.
-(For example, a function in a library to compute square roots has a
-purpose that is entirely well-defined independent of the application.
- Therefore, Subsection 2d requires that any application-supplied
-function or table used by this function must be optional: if the
-application does not supply it, the square root function must still
-compute square roots.)
+
+- If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses the
+ facility, other than as an argument passed when the facility is
+ invoked, then you must make a good faith effort to ensure that, in the
+ event an application does not supply such function or table, the
+ facility still operates, and performs whatever part of its purpose
+ remains meaningful.
+
(For example, a function in a library to compute square roots has a
+ purpose that is entirely well-defined independent of the application.
+ Therefore, Subsection 2d requires that any application-supplied
+ function or table used by this function must be optional: if the
+ application does not supply it, the square root function must still
+ compute square roots.)
+
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-Thus, it is not the intent of this section to claim rights or
-contest your rights to work written entirely by you; rather, the intent
-is to exercise the right to control the distribution of derivative or
-collective works based on the Library.
-In addition, mere aggregation of another work not based on the
-Library with the Library (or with a work based on the Library) on a
-volume of a storage or distribution medium does not bring the other
-work under the scope of this License.
-3. You may opt to apply the terms of the ordinary
-GNU General Public License instead of this License to a given copy of
-the Library. To do this, you must alter all the notices that refer to
-this License, so that they refer to the ordinary GNU General Public
-License, version 2, instead of to this License. (If a newer version
-than version 2 of the ordinary GNU General Public License has appeared,
-then you can specify that version instead if you wish.) Do not make
-any other change in these notices.
-Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-This option is useful when you wish to copy part of the code of the
-Library into a program that is not a library.
-4. You may copy and distribute the Library (or a
-portion or derivative of it, under Section 2) in object code or
-executable form under the terms of Sections 1 and 2 above provided that
-you accompany it with the complete corresponding machine-readable
-source code, which must be distributed under the terms of Sections 1
-and 2 above on a medium customarily used for software interchange.
-If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to distribute
-the source code, even though third parties are not compelled to copy
-the source along with the object code.
-5. A program that contains no derivative of any
-portion of the Library, but is designed to work with the Library by
-being compiled or linked with it, is called a "work that uses the
-Library". Such a work, in isolation, is not a derivative work of the
-Library, and therefore falls outside the scope of this License.
-However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License. Section
-6 states terms for distribution of such executables.
-When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6, whether
-or not they are linked directly with the Library itself.
-6. As an exception to the Sections above, you may
-also compile or link a "work that uses the Library" with the Library to
-produce a work containing portions of the Library, and distribute that
-work under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
+These requirements apply to the modified work as a whole. If
+ identifiable sections of that work are not derived from the Library,
+ and can be reasonably considered independent and separate works in
+ themselves, then this License, and its terms, do not apply to those
+ sections when you distribute them as separate works. But when you
+ distribute the same sections as part of a whole which is a work based
+ on the Library, the distribution of the whole must be on the terms of
+ this License, whose permissions for other licensees extend to the
+ entire whole, and thus to each and every part regardless of who wrote
+ it.
+Thus, it is not the intent of this section to claim rights or contest
+ your rights to work written entirely by you; rather, the intent is to
+ exercise the right to control the distribution of derivative or
+ collective works based on the Library.
+In addition, mere aggregation of another work not based on the
+ Library with the Library (or with a work based on the Library) on a
+ volume of a storage or distribution medium does not bring the other
+ work under the scope of this License.
+3. You may opt to apply the terms of the ordinary
+ GNU General Public License instead of this License to a given copy of
+ the Library. To do this, you must alter all the notices that refer to
+ this License, so that they refer to the ordinary GNU General Public
+ License, version 2, instead of to this License. (If a newer version
+ than version 2 of the ordinary GNU General Public License has appeared,
+ then you can specify that version instead if you wish.) Do not make any
+ other change in these notices.
+Once this change is made in a given copy, it is irreversible for that
+ copy, so the ordinary GNU General Public License applies to all
+ subsequent copies and derivative works made from that copy.
+This option is useful when you wish to copy part of the code of the
+ Library into a program that is not a library.
+4. You may copy and distribute the Library (or a
+ portion or derivative of it, under Section 2) in object code or
+ executable form under the terms of Sections 1 and 2 above provided that
+ you accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections 1
+ and 2 above on a medium customarily used for software interchange.
+If distribution of object code is made by offering access to copy
+ from a designated place, then offering equivalent access to copy the
+ source code from the same place satisfies the requirement to distribute
+ the source code, even though third parties are not compelled to copy
+ the source along with the object code.
+5. A program that contains no derivative of any
+ portion of the Library, but is designed to work with the Library by
+ being compiled or linked with it, is called a "work that uses the
+ Library". Such a work, in isolation, is not a derivative work of the
+ Library, and therefore falls outside the scope of this License.
+However, linking a "work that uses the Library" with the Library
+ creates an executable that is a derivative of the Library (because it
+ contains portions of the Library), rather than a "work that uses the
+ library". The executable is therefore covered by this License. Section
+ 6 states terms for distribution of such executables.
+When a "work that uses the Library" uses material from a header file
+ that is part of the Library, the object code for the work may be a
+ derivative work of the Library even though the source code is not.
+ Whether this is true is especially significant if the work can be
+ linked without the Library, or if the work is itself a library. The
+ threshold for this to be true is not precisely defined by law.
+If such an object file uses only numerical parameters, data structure
+ layouts and accessors, and small macros and small inline functions (ten
+ lines or less in length), then the use of the object file is
+ unrestricted, regardless of whether it is legally a derivative work.
+ (Executables containing this object code plus portions of the Library
+ will still fall under Section 6.)
+Otherwise, if the work is a derivative of the Library, you may
+ distribute the object code for the work under the terms of Section 6.
+ Any executables containing that work also fall under Section 6, whether
+ or not they are linked directly with the Library itself.
+6. As an exception to the Sections above, you may
+ also compile or link a "work that uses the Library" with the Library to
+ produce a work containing portions of the Library, and distribute that
+ work under terms of your choice, provided that the terms permit
+ modification of the work for the customer's own use and reverse
+ engineering for debugging such modifications.
+You must give prominent notice with each copy of the work that the
+ Library is used in it and that the Library and its use are covered by
+ this License. You must supply a copy of this License. If the work
+ during execution displays copyright notices, you must include the
+ copyright notice for the Library among them, as well as a reference
+ directing the user to the copy of this License. Also, you must do one
+ of these things:
-- Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that uses
-the Library", as object code and/or source code, so that the user can
-modify the Library and then relink to produce a modified executable
-containing the modified Library. (It is understood that the user who
-changes the contents of definitions files in the Library will not
-necessarily be able to recompile the application to use the modified
-definitions.)
+- Accompany the work with the complete corresponding machine-readable
+ source code for the Library including whatever changes were used in the
+ work (which must be distributed under Sections 1 and 2 above); and, if
+ the work is an executable linked with the Library, with the complete
+ machine-readable "work that uses the Library", as object code and/or
+ source code, so that the user can modify the Library and then relink to
+ produce a modified executable containing the modified Library. (It is
+ understood that the user who changes the contents of definitions files
+ in the Library will not necessarily be able to recompile the
+ application to use the modified definitions.)
-
- Accompany the work with a written offer, valid for at least three
-years, to give the same user the materials specified in Subsection 6a,
-above, for a charge no more than the cost of performing this
-distribution.
+
+- Accompany the work with a written offer, valid for at least three
+ years, to give the same user the materials specified in Subsection 6a,
+ above, for a charge no more than the cost of performing this
+ distribution.
-
- If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
+
+- If distribution of the work is made by offering access to copy from
+ a designated place, offer equivalent access to copy the above specified
+ materials from the same place.
-
- Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
+
+- Verify that the user has already received a copy of these materials
+ or that you have already sent this user a copy.
-For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the source code distributed need not include anything that is normally
-distributed (in either source or binary form) with the major components
-(compiler, kernel, and so on) of the operating system on which the
-executable runs, unless that component itself accompanies the
-executable.
-It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-7. You may place library facilities that are a work
-based on the Library side-by-side in a single library together with
-other library facilities not covered by this License, and distribute
-such a combined library, provided that the separate distribution of the
-work based on the Library and of the other library facilities is
-otherwise permitted, and provided that you do these two things:
+For an executable, the required form of the "work that uses the
+ Library" must include any data and utility programs needed for
+ reproducing the executable from it. However, as a special exception,
+ the source code distributed need not include anything that is normally
+ distributed (in either source or binary form) with the major components
+ (compiler, kernel, and so on) of the operating system on which the
+ executable runs, unless that component itself accompanies the
+ executable.
+It may happen that this requirement contradicts the license
+ restrictions of other proprietary libraries that do not normally
+ accompany the operating system. Such a contradiction means you cannot
+ use both them and the Library together in an executable that you
+ distribute.
+7. You may place library facilities that are a work
+ based on the Library side-by-side in a single library together with
+ other library facilities not covered by this License, and distribute
+ such a combined library, provided that the separate distribution of the
+ work based on the Library and of the other library facilities is
+ otherwise permitted, and provided that you do these two things:
-- Accompany the combined library with a copy of the same work based
-on the Library, uncombined with any other library facilities. This
-must be distributed under the terms of the Sections above.
+- Accompany the combined library with a copy of the same work based on
+ the Library, uncombined with any other library facilities. This must be
+ distributed under the terms of the Sections above.
-
- Give prominent notice with the combined library of the fact that
-part of it is a work based on the Library, and explaining where to
-find the accompanying uncombined form of the same work.
+
+- Give prominent notice with the combined library of the fact that
+ part of it is a work based on the Library, and explaining where to find
+ the accompanying uncombined form of the same work.
-8. You may not copy, modify, sublicense, link with,
-or distribute the Library except as expressly provided under this
-License. Any attempt otherwise to copy, modify, sublicense, link with,
-or distribute the Library is void, and will automatically terminate
-your rights under this License. However, parties who have received
-copies, or rights, from you under this License will not have their
-licenses terminated so long as such parties remain in full compliance.
-9. You are not required to accept this License,
-since you have not signed it. However, nothing else grants you
-permission to modify or distribute the Library or its derivative works.
- These actions are prohibited by law if you do not accept this License.
- Therefore, by modifying or distributing the Library (or any work based
-on the Library), you indicate your acceptance of this License to do so,
-and all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-10. Each time you redistribute the Library (or any
-work based on the Library), the recipient automatically receives a
-license from the original licensor to copy, distribute, link with or
-modify the Library subject to these terms and conditions. You may not
-impose any further restrictions on the recipients' exercise of the
-rights granted herein. You are not responsible for enforcing compliance
-by third parties to this License.
-11. If, as a consequence of a court judgment or
-allegation of patent infringement or for any other reason (not limited
-to patent issues), conditions are imposed on you (whether by court
-order, agreement or otherwise) that contradict the conditions of this
-License, they do not excuse you from the conditions of this License.
- If you cannot distribute so as to satisfy simultaneously your
-obligations under this License and any other pertinent obligations,
-then as a consequence you may not distribute the Library at all. For
-example, if a patent license would not permit royalty-free
-redistribution of the Library by all those who receive copies directly
-or indirectly through you, then the only way you could satisfy both it
-and this License would be to refrain entirely from distribution of the
-Library.
-If any portion of this section is held invalid or unenforceable
-under any particular circumstance, the balance of the section is
-intended to apply, and the section as a whole is intended to apply in
-other circumstances.
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is implemented
-by public license practices. Many people have made generous
-contributions to the wide range of software distributed through that
-system in reliance on consistent application of that system; it is up
-to the author/donor to decide if he or she is willing to distribute
-software through any other system and a licensee cannot impose that
-choice.
-This section is intended to make thoroughly clear what is believed
-to be a consequence of the rest of this License.
-12. If the distribution and/or use of the Library
-is restricted in certain countries either by patents or by copyrighted
-interfaces, the original copyright holder who places the Library under
-this License may add an explicit geographical distribution limitation
-excluding those countries, so that distribution is permitted only in or
-among countries not thus excluded. In such case, this License
-incorporates the limitation as if written in the body of this License.
-13. The Free Software Foundation may publish
-revised and/or new versions of the Library General Public License from
-time to time. Such new versions will be similar in spirit to the
-present version, but may differ in detail to address new problems or
-concerns.
-Each version is given a distinguishing version number. If the
-Library specifies a version number of this License which applies to it
-and "any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-14. If you wish to incorporate parts of the Library
-into other free programs whose distribution conditions are incompatible
-with these, write to the author to ask for permission. For software
-which is copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
+8. You may not copy, modify, sublicense, link with,
+ or distribute the Library except as expressly provided under this
+ License. Any attempt otherwise to copy, modify, sublicense, link with,
+ or distribute the Library is void, and will automatically terminate
+ your rights under this License. However, parties who have received
+ copies, or rights, from you under this License will not have their
+ licenses terminated so long as such parties remain in full compliance.
+9. You are not required to accept this License,
+ since you have not signed it. However, nothing else grants you
+ permission to modify or distribute the Library or its derivative works.
+ These actions are prohibited by law if you do not accept this License.
+ Therefore, by modifying or distributing the Library (or any work based
+ on the Library), you indicate your acceptance of this License to do so,
+ and all its terms and conditions for copying, distributing or modifying
+ the Library or works based on it.
+10. Each time you redistribute the Library (or any
+ work based on the Library), the recipient automatically receives a
+ license from the original licensor to copy, distribute, link with or
+ modify the Library subject to these terms and conditions. You may not
+ impose any further restrictions on the recipients' exercise of the
+ rights granted herein. You are not responsible for enforcing compliance
+ by third parties to this License.
+11. If, as a consequence of a court judgment or
+ allegation of patent infringement or for any other reason (not limited
+ to patent issues), conditions are imposed on you (whether by court
+ order, agreement or otherwise) that contradict the conditions of this
+ License, they do not excuse you from the conditions of this License. If
+ you cannot distribute so as to satisfy simultaneously your obligations
+ under this License and any other pertinent obligations, then as a
+ consequence you may not distribute the Library at all. For example, if
+ a patent license would not permit royalty-free redistribution of the
+ Library by all those who receive copies directly or indirectly through
+ you, then the only way you could satisfy both it and this License would
+ be to refrain entirely from distribution of the Library.
+If any portion of this section is held invalid or unenforceable under
+ any particular circumstance, the balance of the section is intended to
+ apply, and the section as a whole is intended to apply in other
+ circumstances.
+It is not the purpose of this section to induce you to infringe any
+ patents or other property right claims or to contest validity of any
+ such claims; this section has the sole purpose of protecting the
+ integrity of the free software distribution system which is implemented
+ by public license practices. Many people have made generous
+ contributions to the wide range of software distributed through that
+ system in reliance on consistent application of that system; it is up
+ to the author/donor to decide if he or she is willing to distribute
+ software through any other system and a licensee cannot impose that
+ choice.
+This section is intended to make thoroughly clear what is believed to
+ be a consequence of the rest of this License.
+12. If the distribution and/or use of the Library is
+ restricted in certain countries either by patents or by copyrighted
+ interfaces, the original copyright holder who places the Library under
+ this License may add an explicit geographical distribution limitation
+ excluding those countries, so that distribution is permitted only in or
+ among countries not thus excluded. In such case, this License
+ incorporates the limitation as if written in the body of this License.
+13. The Free Software Foundation may publish revised
+ and/or new versions of the Library General Public License from time to
+ time. Such new versions will be similar in spirit to the present
+ version, but may differ in detail to address new problems or concerns.
+Each version is given a distinguishing version number. If the Library
+ specifies a version number of this License which applies to it and "any
+ later version", you have the option of following the terms and
+ conditions either of that version or of any later version published by
+ the Free Software Foundation. If the Library does not specify a license
+ version number, you may choose any version ever published by the Free
+ Software Foundation.
+14. If you wish to incorporate parts of the Library
+ into other free programs whose distribution conditions are incompatible
+ with these, write to the author to ask for permission. For software
+ which is copyrighted by the Free Software Foundation, write to the Free
+ Software Foundation; we sometimes make exceptions for this. Our
+ decision will be guided by the two goals of preserving the free status
+ of all derivatives of our free software and of promoting the sharing
+ and reuse of software generally.
NO WARRANTY
-15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE,
-THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT
-WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
-OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU
-ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW
-OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY
-WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE
-LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL
-OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
+15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE,
+ THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY
+ APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+ HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT
+ WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
+ OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU
+ ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
+ AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO
+ MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE
+ LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL
+ OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+ LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+ RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGES.
END OF TERMS AND CONDITIONS
+How to Apply These Terms to Your New Libraries
+If you develop a new library, and you want it to be of the greatest
+ possible use to the public, we recommend making it free software that
+ everyone can redistribute and change. You can do so by permitting
+ redistribution under these terms (or, alternatively, under the terms of
+ the ordinary General Public License).
+To apply these terms, attach the following notices to the library. It
+ is safest to attach them to the start of each source file to most
+ effectively convey the exclusion of warranty; and each file should have
+ at least the "copyright" line and a pointer to where the full notice is
+ found.
+
+one line to give the library's name and an idea of what it does.
+Copyright (C) year name of author
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+Also add information on how to contact you by electronic and paper
+ mail.
+You should also get your employer (if you work as a programmer) or
+ your school, if any, to sign a "copyright disclaimer" for the library,
+ if necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in
+the library `Frob' (a library for tweaking knobs) written
+by James Random Hacker.
+
+signature of Ty Coon, 1 April 1990
+Ty Coon, President of Vice
+
+That's all there is to it!
-This appendix covers many of the popular TCP/IP network interfaces
-and printer servers available on the market today.
+This appendix covers many of the popular TCP/IP network interfaces
+ and printer servers available on the market today.
-When you first install a network printer or print server on your
-LAN, you need to set the Internet Protocol ("IP") address. On most
-higher-end "workgroup" printers, you can set the address through the
-printer control panel. However, in most cases you will want to assign
-the addresses remotely from your workstation. This makes administration
-a bit easier and avoids assigning duplicate addresses accidentally.
-To setup your printer or print server for remote address assignment,
-you'll need the Ethernet Media Access Control ("MAC") address, also
-sometimes called a node address, and the IP address you want to use for
-the device. The Ethernet MAC address can often be found on the printer
-test page or bottom of the print server.
+ When you first install a network printer or print server on your LAN,
+ you need to set the Internet Protocol ("IP") address. On most
+ higher-end "workgroup" printers, you can set the address through the
+ printer control panel. However, in most cases you will want to assign
+ the addresses remotely from your workstation. This makes administration
+ a bit easier and avoids assigning duplicate addresses accidentally.
+To setup your printer or print server for remote address assignment,
+ you'll need the Ethernet Media Access Control ("MAC") address, also
+ sometimes called a node address, and the IP address you want to use for
+ the device. The Ethernet MAC address can often be found on the printer
+ test page or bottom of the print server.
-The easiest way to set the IP address of a network device is to use
-the arp(8) command. The arp sends an Address
-Resolution Protocol ("ARP") packet to the specified Ethernet MAC
-address, setting the network device's IP address:
+The easiest way to set the IP address of a network device is to use
+ the arp(8) command. The arp sends an Address
+ Resolution Protocol ("ARP") packet to the specified Ethernet MAC
+ address, setting the network device's IP address:
arp -s ip-address ethernet-address ENTER
@@ -3976,50 +5716,50 @@ address, setting the network device's IP address:
-The most flexible way to remotely assign IP addresses under UNIX is
-through the Reverse Address Resolution Protocol ("RARP"). RARP allows a
-network device to request an IP address using its Ethernet MAC address,
-and one or more RARP servers on the network will respond with an ARP
-packet with the IP address the device can use.
-RARP should be used when you have to manage many printers or print
-servers, or when you have a network device that does not remember its
-IP address after a power cycle. If you just have a single printer or
-print server, the arp command is the way to go.
+The most flexible way to remotely assign IP addresses under UNIX is
+ through the Reverse Address Resolution Protocol ("RARP"). RARP allows a
+ network device to request an IP address using its Ethernet MAC address,
+ and one or more RARP servers on the network will respond with an ARP
+ packet with the IP address the device can use.
+RARP should be used when you have to manage many printers or print
+ servers, or when you have a network device that does not remember its
+ IP address after a power cycle. If you just have a single printer or
+ print server, the arp command is the way to go.
Some UNIX operating systems use a program called rarpd(8)
- to manage RARP. Others, like Linux, support this protocol in the
-kernel. For systems that provide the rarpd program you
-will need to start it before RARP lookups will work:
+ to manage RARP. Others, like Linux, support this protocol in the
+ kernel. For systems that provide the rarpd program you
+ will need to start it before RARP lookups will work:
rarpd ENTER
-Under IRIX you can enable this functionality by default using:
+Under IRIX you can enable this functionality by default using:
chkconfig rarpd on ENTER
-Both the rarpd program and kernel RARP support read a
-list of Ethernet and IP addresses from the file /etc/ethers.
-Each line contains the Ethernet address (colon delimited) followed by
-an IP address or hostname like:
+Both the rarpd program and kernel RARP support read a
+ list of Ethernet and IP addresses from the file /etc/ethers.
+ Each line contains the Ethernet address (colon delimited) followed by
+ an IP address or hostname like:
08:00:69:00:12:34 myprinter.mydomain.com
08:00:69:00:12:34 192.0.2.2
-Add a line to this file and cycle the power on the printer or print
-server to set its address.
+ Add a line to this file and cycle the power on the printer or print
+ server to set its address.
-The BOOTP protocol is used when you need to provide additional
-information such as the location of a configuration file to the network
-interface. Using the standard bootpd(8) program supplied
-with UNIX you simply need to add a line to the /etc/bootptab
- file; for IRIX:
+The BOOTP protocol is used when you need to provide additional
+ information such as the location of a configuration file to the network
+ interface. Using the standard bootpd(8) program supplied
+ with UNIX you simply need to add a line to the /etc/bootptab
+ file; for IRIX:
myprinter 08:00:69:00:12:34 192.0.2.2 myprinter.boot
@@ -4027,36 +5767,35 @@ myprinter 08:00:69:00:12:34 192.0.2.2 myprinter.boot
-Newer versions of bootpd use a different format:
+Newer versions of bootpd use a different format:
myprinter:ha=080069001234:ip=192.0.2.2:t144=myprinter.boot
-The myprinter.boot file resides in the
-/usr/local/boot directory by default. If you do not need to
-provide a boot file you may leave the last part of the line blank.
-
+ The myprinter.boot file resides in the
+ /usr/local/boot directory by default. If you do not need to
+ provide a boot file you may leave the last part of the line blank.
+
NOTE:
- Some versions of UNIX do not enable the BOOTP service by default.
-The /etc/inetd.conf usually contains a line for the BOOTP
-service that can be uncommented if needed.
+Some versions of UNIX do not enable the BOOTP service by default. The
+ /etc/inetd.conf usually contains a line for the BOOTP service
+ that can be uncommented if needed.
|
-
-To test that the IP address has been successfully assigned and that
-the printer is properly connected to your LAN, type:
+To test that the IP address has been successfully assigned and that
+ the printer is properly connected to your LAN, type:
ping ip-address ENTER
-If the connection is working properly you will see something like:
+If the connection is working properly you will see something like:
ping myprinter ENTER
@@ -4067,27 +5806,27 @@ PING myprinter (192.0.2.2): 56 data bytes
64 bytes from 192.0.2.2: icmp_seq=3 ttl=15 time=3 ms
-If not, verify that the printer or print server is connected to the
-LAN, it is powered on, the LAN cabling is good, and the IP address is
-set correctly. You can usually see the current IP address and network
-status by printing a configuration or test page on the device.
+ If not, verify that the printer or print server is connected to the
+ LAN, it is powered on, the LAN cabling is good, and the IP address is
+ set correctly. You can usually see the current IP address and network
+ status by printing a configuration or test page on the device.
-Once you have set the IP address you can access the printer or print
-server using the ipp , lpd , or socket
- backends. The following is a list of common network interfaces and
-printer servers and the settings you should use with CUPS:
+ Once you have set the IP address you can access the printer or print
+ server using the ipp , lpd , or socket
+ backends. The following is a list of common network interfaces and
+ printer servers and the settings you should use with CUPS:
-Model/Manufacturer | Device
-URI(s) |
+Model/Manufacturer | Device
+ URI(s) |
Apple LaserWriter | lpd://
address/PASSTHRU |
Axis w/o IPP
- (see directions) | socket://address
+ (see directions) | socket://address
:9100
socket://address:9101
socket://address:9102 |
@@ -4111,8 +5850,8 @@ lpd://address/pr1
lpd://address/pr3
EFI® Fiery® RIP | lpd://
address/print |
-EPSON® Multiprotocol Ethernet
-Interface Board | socket://address |
+EPSON® Multiprotocol Ethernet
+ Interface Board | socket://address |
Extended System ExtendNET |
@@ -4143,7 +5882,7 @@ lpd://address/ps |
Linksys EtherFast®
- (see directions) | socket://address
+ (see directions) | socket://address
:4010
socket://address:4020
socket://address:4030 |
@@ -4163,16 +5902,16 @@ address:5503
-The Axis print servers can be configured using ARP, RARP, or BOOTP.
-However, on models that do not provide IPP support an additional step
-must be performed to configure the TCP/IP portion of the print server
-for use with CUPS.
+ The Axis print servers can be configured using ARP, RARP, or BOOTP.
+ However, on models that do not provide IPP support an additional step
+ must be performed to configure the TCP/IP portion of the print server
+ for use with CUPS.
-Each print server contains a configuration file named config
- that contains a list of network parameters used by the server. To
-modify this file you must first download it from the print server using
-the ftp(1) program:
+Each print server contains a configuration file named config
+ that contains a list of network parameters used by the server. To
+ modify this file you must first download it from the print server using
+ the ftp(1) program:
ftp ip-address ENTER
@@ -4195,8 +5934,8 @@ ftp> quit ENTER
-Next, edit the file with your favorite text editor and locate the
-lines beginning with:
+Next, edit the file with your favorite text editor and locate the
+ lines beginning with:
RTN_OPT. : YES
@@ -4212,7 +5951,7 @@ RTEL_PR8. : 0
- Change the RTN_OPT line to read:
+ Change the RTN_OPT line to read:
RTN_OPT. : NO
@@ -4220,9 +5959,9 @@ RTN_OPT. : NO
-This disables the Reverse TELNET protocol and enables the standard
-TELNET protocol on the print server. Next, assign a port number for
-each parallel and serial port on the server as follows:
+This disables the Reverse TELNET protocol and enables the standard
+ TELNET protocol on the print server. Next, assign a port number for
+ each parallel and serial port on the server as follows:
RTEL_PR1. : 9100
@@ -4237,9 +5976,9 @@ RTEL_PR8. : 9107
-This essentially makes the Axis print server look like a Hewlett
-Packard JetDirect EX print server. Save the file and then upload the
-new config file using the ftp command:
+This essentially makes the Axis print server look like a Hewlett
+ Packard JetDirect EX print server. Save the file and then upload the
+ new config file using the ftp command:
ftp ip-address ENTER
@@ -4263,18 +6002,18 @@ ftp> quit ENTER
221 Goodbye.
-Your Axis print server is now ready for use!
+Your Axis print server is now ready for use!
-The Linksys print servers can be configured using ARP, RARP, or
-BOOTP. Like older Axis print servers, an additional step must be
-performed to configure the TCP/IP portion of the print server for use
-with CUPS.
+ The Linksys print servers can be configured using ARP, RARP, or
+ BOOTP. Like older Axis print servers, an additional step must be
+ performed to configure the TCP/IP portion of the print server for use
+ with CUPS.
-Each print server contains a configuration file named CONFIG
- that contains a list of network parameters used by the server. To
-modify this file you must first download it from the print server using
-the ftp(1) program:
+Each print server contains a configuration file named CONFIG
+ that contains a list of network parameters used by the server. To
+ modify this file you must first download it from the print server using
+ the ftp(1) program:
ftp -n ip-address ENTER
@@ -4295,8 +6034,8 @@ ftp> quit ENTER
-Next, edit the file with your favorite text editor and locate the
-lines beginning with:
+Next, edit the file with your favorite text editor and locate the
+ lines beginning with:
0100 L1_PROUT:P1
@@ -4304,8 +6043,8 @@ lines beginning with:
0140 L3_PROUT:P1
-Change the port number for each parallel and serial port on the
-server as follows:
+Change the port number for each parallel and serial port on the
+ server as follows:
0100 L1_PROUT:P1
@@ -4315,9 +6054,9 @@ server as follows:
-This maps each virtual printer with a physical port. Save the file
-and then upload the new CONFIG file using the ftp
- command:
+This maps each virtual printer with a physical port. Save the file
+ and then upload the new CONFIG file using the ftp
+ command:
ftp -n ip-address ENTER
@@ -4334,96 +6073,179 @@ ftp> quit ENTER
221 Goodbye.
-Your Linksys print server is now ready for use!
+Your Linksys print server is now ready for use!
+
+The LPD backend supports several options which are included in the
+ device URI, e.g.:
+
+ lpd://server/name?option1=value1+option2=value2+...+optionN=valueN
+
+The following table summarizes the options and values that are
+ supported:
+
+
+
+Option=Value | Description |
+banner=off
+ banner=no
+ banner=false | Does not request a LPD banner
+ page for the job. (Default) |
+banner=on
+ banner=yes
+ banner=true | Requests a LPD banner page for the
+ job. |
+format=c
+ format=d
+ format=f
+ format=g
+ format=l
+ format=n
+ format=o
+ format=p
+ format=r
+ format=t
+ format=v | Specifies the LPD format code of the
+ print job. "format=l" is raw output, while "format=o" is PostScript.
+ (Default is "format=l" for raw output) |
+manual_copies=off
+ manual_copies=no
+ manual_copies=false | Specifies that the backend
+ should not send multiple copies of a print job in the print data file. |
+
+manual_copies=on
+ manual_copies=yes
+ manual_copies=true | Specifies that the backend
+ should send multiple copies of a print job in the print data file to
+ print more than one copy. (Default) |
+order=control,data | Specifies that the LPD
+ control file should be sent before the print data file. (Default) |
+order=data,control= | Specifies that the
+ print data file should be sent before the LPD control file. |
+reserve=off
+ reserve=no
+ reserve=false | Specifies that the backend
+ should not reserve a priviledged source port as required by RFC 1179. |
+
+reserve=on
+ reserve=yes
+ reserve=true
+ reserve=rfc1179 | Specifies that the backend
+ should reserve a priviledges source port from 721 to 731 inclusive as
+ required by RFC 1179. This option may cause reduced printing
+ performance when more than 11 LPD printers are defined on the server
+ due to port contention issues. |
+reserve=any | Specifies that the backend
+ should reserve a priviledges source port from 1 to 1023 inclusive. This
+ often works with LPD implementations that require a priviledged source
+ port but do not limit it to the range defined by RFC 1179, allowing for
+ more printers to be active at the same time. (Default) |
+sanitize_title=off
+ sanitize_title=no
+ sanitize_title=false | Specifies that the
+ backend should not sanitize the job title string. (Default on OSX) |
+sanitize_title=on
+ sanitize_title=yes
+ sanitize_title=true | Specifies that the backend
+ should sanitize the job title string. (Default on all but OSX) |
+timeout=N | Specifies the response timeout
+ for all LPD commands and transactions in seconds. (Default is 300
+ seconds) |
+
+
+
-This appendix lists the printer drivers that are provided with CUPS.
+This appendix lists the printer drivers that are provided with CUPS.
-CUPS includes the following printer drivers:
+CUPS includes the following printer drivers:
+EPSON Stylus Color, stcolor.ppd
+EPSON Stylus Photo, stphoto.ppd
+HP DeskJet, deskjet.ppd
+HP LaserJet, laserjet.ppd
+
+
+The DYMO Label Printer driver (dymo.ppd) supports the DYMO
+ LabelWriter 300 series (300/310/315/320/330/330 Turbo) thermal label
+ printers. It provides 136, 203, and 300 DPI output in black only.
-The EPSON 9-pin Dot Matrix driver (epson9.ppd) supports
-9-pin dot matrix printers that implement the ESC/P command set. It
-provides 60x72, 120x72, and 240x72 DPI output in black only.
+The EPSON 9-pin Dot Matrix driver (epson9.ppd) supports
+ 9-pin dot matrix printers that implement the ESC/P command set. It
+ provides 60x72, 120x72, and 240x72 DPI output in black only.
-The EPSON 24-pin Dot Matrix driver (epson9.ppd) supports
-24-pin dot matrix printers that implement the ESC/P command set. It
-provides 120x180, 180x180, 360x180, and 360x360 DPI output in black
-only.
+The EPSON 24-pin Dot Matrix driver (epson9.ppd) supports
+ 24-pin dot matrix printers that implement the ESC/P command set. It
+ provides 120x180, 180x180, 360x180, and 360x360 DPI output in black
+ only.
-The EPSON Stylus Color driver (stcolor.ppd) supports
-EPSON Stylus Color printers that implement the ESC/P2 command set. It
-provides 180, 360, and 720 DPI output in black and color (CMYK).
+The EPSON Stylus Color driver (stcolor.ppd) supports EPSON
+ Stylus Color printers that implement the ESC/P2 command set. It
+ provides 180, 360, and 720 DPI output in black and color (CMYK).
-The EPSON Stylus Photo driver (stphoto.ppd) supports
-EPSON Stylus Photo printers that implement the ESC/P2 command set. It
-provides 180, 360, and 720 DPI output in black and color (CMYKcm).
+The EPSON Stylus Photo driver (stphoto.ppd) supports EPSON
+ Stylus Photo printers that implement the ESC/P2 command set. It
+ provides 180, 360, and 720 DPI output in black and color (CMYKcm).
-The HP DeskJet driver (deskjet.ppd) supports HP DeskJet
-printers that implement the PCL command set. It provides 150, 300, and
-600 DPI output in black and color (CMYK).
-The DeskJet printers that implement the HP-PPA command set (720C,
-722C, 820C, and 1100C) are not supported due to a complete lack
-of documentation and support from Hewlett Packard.
-The duplexer provided with the HP DeskJet 900 series printers is
-also not supported for similar reasons.
+The HP DeskJet driver (deskjet.ppd) supports HP DeskJet
+ printers that implement the PCL command set. It provides 150, 300, and
+ 600 DPI output in black and color (CMYK).
+The DeskJet printers that implement the HP-PPA command set (720C,
+ 722C, 820C, and 1100C) are not supported due to a complete lack
+ of documentation and support from Hewlett Packard.
+The duplexer provided with the HP DeskJet 900 series printers is also
+ not supported for similar reasons.
-The HP LaserJet driver (laserjet.ppd) supports HP
-LaserJet printers that implement the PCL command set. It provides 150,
-300, and 600 DPI output in black only and supports the duplexer if
-installed.
-LaserJet printers that do not implement PCL (3100, 3150) are not
-supported due to a complete lack of documentation and support from
-Hewlett Packard.
+The HP LaserJet driver (laserjet.ppd) supports HP LaserJet
+ printers that implement the PCL command set. It provides 150, 300, and
+ 600 DPI output in black only and supports the duplexer if installed.
+LaserJet printers that do not implement PCL (3100, 3150) are not
+ supported due to a complete lack of documentation and support from
+ Hewlett Packard.
-This appendix lists the files and directories that are installed for
-the Common UNIX Printing System.
+ This appendix lists the files and directories that are installed for
+ the Common UNIX Printing System.
Pathname | Description |
-/etc/cups/certs/ | The location of
-authentication certificate files for local HTTP clients. |
-/etc/cups/classes.conf | The printer classes
-configuration file for the scheduler. |
-/etc/cups/cupsd.conf | The scheduler
-configuration file. |
-/etc/cups/interfaces/ | The location of
-System V interface scripts for printers. |
-/etc/cups/mime.convs | The list of standard
-file filters included with ESP Print Pro. |
-/etc/cups/mime.types | The list of
-recognized file types for ESP Print Pro. |
-/etc/cups/ppd/ | The location of PostScript
-Printer Description ("PPD") files for printers. |
-/etc/cups/printers.conf | The printer
-configuration file for the scheduler. |
-/usr/bin/cancel | The System V cancel job(s)
-command. |
-/usr/bin/disable | The System V disable
-printer command. |
-/usr/bin/enable | The System V enable
-printer command. |
+/etc/cups/certs/ | The location of
+ authentication certificate files for local HTTP clients. |
+/etc/cups/classes.conf | The printer classes
+ configuration file for the scheduler. |
+/etc/cups/cupsd.conf | The scheduler
+ configuration file. |
+/etc/cups/interfaces/ | The location of
+ System V interface scripts for printers. |
+/etc/cups/mime.convs | The list of standard
+ file filters included with CUPS. |
+/etc/cups/mime.types | The list of recognized
+ file types for CUPS. |
+/etc/cups/ppd/ | The location of PostScript
+ Printer Description ("PPD") files for printers. |
+/etc/cups/printers.conf | The printer
+ configuration file for the scheduler. |
+/usr/bin/cancel | The System V cancel job(s)
+ command. |
+/usr/bin/disable | The System V disable
+ printer command. |
+/usr/bin/enable | The System V enable printer
+ command. |
/usr/bin/lp | The System V print command. |
-/usr/bin/lpoptions | Sets user-defined
-printing options and defaults. |
-/usr/bin/lppasswd | Adds, changes, or
-removes Digest password accounts. |
+/usr/bin/lpoptions | Sets user-defined
+ printing options and defaults. |
+/usr/bin/lppasswd | Adds, changes, or removes
+ Digest password accounts. |
/usr/bin/lpq | The Berkeley status command. |
/usr/bin/lpr | The Berkeley print command. |
-/usr/bin/lprm | The Berkeley cancel job(s)
-command. |
-/usr/bin/lpstat | The System V status
-command. |
+/usr/bin/lprm | The Berkeley cancel job(s)
+ command. |
+/usr/bin/lpstat | The System V status
+ command. |
/usr/include/cups/ | CUPS API header files. |
/usr/lib32/libcups.a
@@ -4438,118 +6260,126 @@ command. |
/usr/lib/libcups.so.2
/usr/lib/libcupsimage.so.2 | Shared libraries (all others) |
-/usr/lib/cups/backend/ | Backends for
-various types of printer connections. |
-/usr/lib/cups/cgi-bin/ | CGI programs for
-the scheduler. |
-/usr/lib/cups/daemon/ | Daemons for polling
-and LPD support. |
-/usr/lib/cups/filter/ | Filters for various
-types of files. |
-/usr/lib/locale/ | The location of
-language-specific message files. (System V) |
-/usr/lib/nls/msg/ | The location of
-language-specific message files. (Compaq Tru64 UNIX) |
-/usr/share/locale/ | The location of
-language-specific message files. (Linux, *BSD) |
+/usr/libexec/cups/backend/ | Backends for
+ various types of printer connections (*BSD and OSX) |
+/usr/lib/cups/backend/ | Backends for various
+ types of printer connections (all others) |
+/usr/libexec/cups/cgi-bin/ | CGI programs for
+ the scheduler (*BSD and OSX) |
+/usr/lib/cups/cgi-bin/ | CGI programs for the
+ scheduler (all others) |
+/usr/libexec/cups/daemon/ | Daemons for
+ polling and LPD support (*BSD and OSX) |
+/usr/lib/cups/daemon/ | Daemons for polling
+ and LPD support (all others) |
+/usr/libexec/cups/filter/ | Filters for
+ various types of files (*BSD and OSX) |
+/usr/lib/cups/filter/ | Filters for various
+ types of files (all others) |
+/usr/lib/locale/ | The location of
+ language-specific message files. (System V) |
+/usr/lib/nls/msg/ | The location of
+ language-specific message files. (Compaq Tru64 UNIX) |
+/usr/share/locale/ | The location of
+ language-specific message files. (Linux, *BSD) |
/usr/sbin/accept | The accept-jobs command. |
/usr/sbin/cupsd | The CUPS print scheduler. |
-/usr/sbin/lpadmin | The System V printer
-administration tool. |
-/usr/sbin/lpc | The Berkeley printer
-administration tool. |
-/usr/sbin/lpinfo | The get-devices and
-get-ppds command. |
+/usr/sbin/lpadmin | The System V printer
+ administration tool. |
+/usr/sbin/lpc | The Berkeley printer
+ administration tool. |
+/usr/sbin/lpinfo | The get-devices and
+ get-ppds command. |
/usr/sbin/lpmove | The move-jobs command. |
/usr/sbin/reject | The reject-jobs command. |
/usr/share/catman/a_man/
/usr/share/catman/u_man/ | Man pages (IRIX) |
-/usr/share/man/ | Man pages (Compaq Tru64
-UNIX, HP-UX, Solaris) |
+/usr/share/man/ | Man pages (Compaq Tru64
+ UNIX, HP-UX, Solaris) |
/usr/man/ | Man pages (all others) |
-/usr/share/cups/data/ | The location of
-filter data files. |
-/usr/share/cups/data/testprint.ps | The
-PostScript test page file. |
-/usr/share/cups/fonts/ | The location of
-PostScript fonts for the PostScript RIP. |
-/usr/share/cups/model/ | The location of
-PostScript Printer Description ("PPD") files and interface scripts
-that may be used to setup a printer queue. |
-/usr/share/cups/pstoraster/ | Other
-PostScript RIP initialization files. |
-/usr/share/cups/pstoraster/Fontmap | The
-font mapping file (converts filenames to fontnames) |
-/usr/share/cups/templates/ | The location of
-HTML template files for the web interfaces. |
-/usr/share/doc/cups/ | Documentation and web
-page data for the scheduler. |
-/var/log/cups/ | The location of scheduler
-log files. |
-/var/spool/cups/ | The location of print
-files waiting to be printed. |
+/usr/share/cups/data/ | The location of
+ filter data files. |
+/usr/share/cups/data/testprint.ps | The
+ PostScript test page file. |
+/usr/share/cups/fonts/ | The location of
+ PostScript fonts for the PostScript RIP. |
+/usr/share/cups/model/ | The location of
+ PostScript Printer Description ("PPD") files and interface scripts that
+ may be used to setup a printer queue. |
+/usr/share/cups/pstoraster/ | Other
+ PostScript RIP initialization files. |
+/usr/share/cups/pstoraster/Fontmap | The font
+ mapping file (converts filenames to fontnames) |
+/usr/share/cups/templates/ | The location of
+ HTML template files for the web interfaces. |
+/usr/share/doc/cups/ | Documentation and web
+ page data for the scheduler. |
+/var/log/cups/ | The location of scheduler
+ log files. |
+/var/spool/cups/ | The location of print
+ files waiting to be printed. |
-This appendix covers some of the common problems first-time users
-encounter when installing and configuring CUPS.
-Commercial support for CUPS is available from Easy Software
-Products. For more information please contact us at:
+This appendix covers some of the common problems first-time users
+ encounter when installing and configuring CUPS.
+Commercial support for CUPS is available from Easy Software Products.
+ For more information please contact us at:
-Many applications read the /etc/printcap file to get a
-list of available printers.
-The default CUPS configuration does not create the /etc/printcap
- file automatically. To enable automatic creation and updating of this
-file, use the Printcap directive
-described in Chapter 6, "Printing System
-Management".
+Many applications read the /etc/printcap file to get a
+ list of available printers.
+The default CUPS configuration creates the /etc/printcap
+ file automatically. To enable or disable automatic creation and
+ updating of this file, use the Printcap
+ directive described in Chapter 6,
+ "Printing System Management".
-CUPS will ask you for a UNIX username and password when you perform
-printer administration tasks remotely or via a web browser. The default
-configuration requires that you use the root username and
-the corresponding password to authenticate the request.
-CUPS does not allow you to authenticate an administration request
-with an account that has no password for security reasons. If you do
-not have a password on your root account then you won't be
-able to add printers remotely or via the web interface!
+ CUPS will ask you for a UNIX username and password when you perform
+ printer administration tasks remotely or via a web browser. The default
+ configuration requires that you use the root username and
+ the corresponding password to authenticate the request.
+CUPS does not allow you to authenticate an administration request
+ with an account that has no password for security reasons. If you do
+ not have a password on your root account then you won't be
+ able to add printers remotely or via the web interface!
-To disable password authentication you need to edit the
-/etc/cups/cupsd.conf file and comment out the lines reading:
+To disable password authentication you need to edit the
+ /etc/cups/cupsd.conf file and comment out the lines reading:
AuthType Basic
AuthClass System
- for the /admin location. Then restart the CUPS server as
-described in Chapter 8, "Printing System
-Management".
+for the /admin location. Then restart the CUPS server as
+ described in Chapter 6, "Printing System
+ Management".
NOTE:
- Disabling password checks will allow any local user to change your
-printer and class configuration, but remote administration from
-another machine will still not be allowed.
+Disabling password checks will allow any local user to change your
+ printer and class configuration, but remote administration from another
+ machine will still not be allowed.
|
-
-The default CUPS configuration limits administration to the local
-machine. To open up access, edit the /etc/cups/cupsd.conf
- and comment out the lines reading:
+
+The default CUPS configuration limits administration to the local
+ machine. To open up access, edit the /etc/cups/cupsd.conf
+ and comment out the lines reading:
Order deny,allow
@@ -4557,16 +6387,16 @@ Deny from all
Allow from 127.0.0.1
- for the /admin location. Then restart the CUPS server as
-described in Chapter 8, "Printing System
-Management".
+for the /admin location. Then restart the CUPS server as
+ described in Chapter 6, "Printing System
+ Management".
@@ -4574,48 +6404,48 @@ ways to minimize them.
-This problem is usually caused by:
+This problem is usually caused by:
-- not specifying the correct password for the root account.
-- accessing the CUPS server using the hostname or IP address of the
-server without enabling remote access for administration functions.
-This can be corrected by following the instructions in the
-"I Can't Do Administration Tasks from Another Machine!" section
-earlier in this appendix.
-- not setting a password on the root account. CUPS will not
- authenticate a user account that does not have a password for
- security reasons.
-- authenticating using an account other than root, but the account
-you are using is not a member of the system group.
-- configuring CUPS to use Digest authentication, but your web
-browser does not support Digest authentication.
+- not specifying the correct password for the root account.
+- accessing the CUPS server using the hostname or IP address of the
+ server without enabling remote access for administration functions.
+ This can be corrected by following the instructions in the
+"I Can't Do Administration Tasks from Another Machine!" section
+ earlier in this appendix.
+- not setting a password on the root account. CUPS will not
+ authenticate a user account that does not have a password for security
+ reasons.
+- authenticating using an account other than root, but the account you
+ are using is not a member of the system group.
+- configuring CUPS to use Digest authentication, but your web browser
+ does not support Digest authentication.
-Under normal circumstances, "connection refused" messages for a
-networked printer should be expected from time to time. Most network
-interfaces only allow a single connection to be made at any given time
-(one job at a time) and will refuse access to all other systems while
-the first connection is active. CUPS automatically retries the
-connection once every 30 seconds.
-If the problem persists and you are unable to print any jobs to the
-printer, verify that another machine is not maintaining a connection
-with the printer, and that you have selected the proper port or printer
-name for the printer.
-Also, most external print servers will refuse connections if the
-connected printer is turned off or is off-line. Verify that the
-affected printer is turned on and is online.
+Under normal circumstances, "connection refused" messages for a
+ networked printer should be expected from time to time. Most network
+ interfaces only allow a single connection to be made at any given time
+ (one job at a time) and will refuse access to all other systems while
+ the first connection is active. CUPS automatically retries the
+ connection once every 30 seconds.
+If the problem persists and you are unable to print any jobs to the
+ printer, verify that another machine is not maintaining a connection
+ with the printer, and that you have selected the proper port or printer
+ name for the printer.
+Also, most external print servers will refuse connections if the
+ connected printer is turned off or is off-line. Verify that the
+ affected printer is turned on and is online.
-If you get "write error" messages on a printer queue the printer
-interface (usually a Hewlett Packard JetDirect interface) has timed out
-and reset the network connection from your workstation.
-The error is caused by that startup delay between the initial setup
-of the printer or plotter and the first page of print data that is
-sent.
+ If you get "write error" messages on a printer queue the printer
+ interface (usually a Hewlett Packard JetDirect interface) has timed out
+ and reset the network connection from your workstation.
+The error is caused by that startup delay between the initial setup
+ of the printer or plotter and the first page of print data that is
+ sent.
-To correct the problem, change the idle timeout on the interface to
-at least 180 seconds or 3 minutes. To change the timeout on a Hewlett
-Packard JetDirect interface, type:
+To correct the problem, change the idle timeout on the interface to
+ at least 180 seconds or 3 minutes. To change the timeout on a Hewlett
+ Packard JetDirect interface, type:
telnet ip-address ENTER
|