- The configure script now prefers Clang over GCC.
- Fixed a compile problem on AIX (STR #4307)
+ - Kerberos credentials could get truncated when printing to a shared
+ printer.
- Printing using "ipps" URIs was not encrypted.
- Insecure ICC profiles prevented installation of user profiles for a
printer on OS X.
client.conf - client configuration file for cups
<h2 class="title"><a name="DESCRIPTION">Description</a></h2>
The <i>client.conf</i> file configures the CUPS client and is
-normally located in the <i>/etc/cups</i> or <i>~/.cups</i>
+normally located in the <i>/private/etc/cups</i> or <i>~/.cups</i>
directory. Each line in the file can be a configuration
directive, a blank line, or a comment. Comment lines start with
the # character.
</b><i>request-id limit user-id options
</i><h2 class="title"><a name="DESCRIPTION">Description</a></h2>
<i>cups-deviced</i> polls the backends in
-<i>/usr/lib/cups/backend</i> for a list of available devices.
+<i>/usr/libexec/cups/backend</i> for a list of available devices.
It is run by <a href='man-cupsd.html?TOPIC=Man+Pages'>cupsd(8)</a> in response to a
<i>CUPS-Get-Devices</i> request. The output format is an IPP
response message. The <i>request-id</i> argument is the request ID
<h2 class="title"><a name="DRIVERS">Drivers</a></h2>
Drivers can be static PPD files under the
<i>/usr/share/cups/model</i> directory or programs under the
-<i>/usr/lib/cups/driver</i> directory. Static PPD files must
+<i>/usr/libexec/cups/driver</i> directory. Static PPD files must
conform to the Adobe PPD File Format Specification version 4.3
and may be compressed using the <i>gzip(1)</i> program. Driver
programs must implement the command-line interface shown in the
<h2 class="title"><a name="DESCRIPTION">Description</a></h2>
The <i>cups-files.conf</i> file configures the files and directories used by the
CUPS scheduler, <a href='man-cupsd.html?TOPIC=Man+Pages'>cupsd(8)</a>. It is normally located in the
-<i>/etc/cups</i> directory.
+<i>/private/etc/cups</i> directory.
<p>Each line in the file can be a configuration directive, a blank line,
or a comment. Comment lines start with the # character.
<h2 class="title"><a name="DIRECTIVES">Directives</a></h2>
<br>
<pre>
- printer stream tcp nowait lp /usr/lib/cups/daemon/cups-lpd cups-lpd \
+ printer stream tcp nowait lp /usr/libexec/cups/daemon/cups-lpd cups-lpd \
-o document-format=application/octet-stream
</pre>
<p><p><b>Note:</b> If you are using Solaris 10 or higher, you must run
user = lp
group = sys
passenv =
- server = /usr/lib/cups/daemon/cups-lpd
+ server = /usr/libexec/cups/daemon/cups-lpd
server_args = -o document-format=application/octet-stream
}
</pre>
<h2 class="title"><a name="NAME">Name</a></h2>
snmp - cups snmp backend
<h2 class="title"><a name="SYNOPSIS">Synopsis</a></h2>
-<b>/usr/lib/cups/backend/snmp
+<b>/usr/libexec/cups/backend/snmp
</b><i>ip-address-or-hostname
</i><br>
<b>lpinfo -v --include-schemes snmp
Monitor MIBs along with some vendor private MIBs and intelligent port probes to
determine the correct device URI and make and model for each printer.
<h2 class="title"><a name="CONFIGURATION">Configuration</a></h2>
-The SNMP backend reads the /etc/cups/snmp.conf configuration file, if
+The SNMP backend reads the /private/etc/cups/snmp.conf configuration file, if
present, to set the default broadcast address, community name, and logging
level. The configuration file is documented in <a href='man-cups-snmp.conf.html?TOPIC=Man+Pages'>cups-snmp.conf(5)</a>. The
DebugLevel value can be overridden using the CUPS_DEBUG_LEVEL environment
cupsd.conf - server configuration file for cups
<h2 class="title"><a name="DESCRIPTION">Description</a></h2>
The <i>cupsd.conf</i> file configures the CUPS scheduler, <a href='man-cupsd.html?TOPIC=Man+Pages'>cupsd(8)</a>. It
-is normally located in the <i>/etc/cups</i> directory. <b>Note:</b>
+is normally located in the <i>/private/etc/cups</i> directory. <b>Note:</b>
File, directory, and user configuration directives that used to be allowed in
the <i>cupsd.conf</i> file are now stored in the <a href='man-cups-files.conf.html?TOPIC=Man+Pages'>cups-files.conf(5)</a> instead
in order to prevent certain types of privilege escalation attacks.
<i>cupsd</i> is the scheduler for CUPS. It implements a printing system based
upon the Internet Printing Protocol, version 2.1. If no options are specified
on the command-line then the default configuration file
-<i>/etc/cups/cupsd.conf</i> will be used.
+<i>/private/etc/cups/cupsd.conf</i> will be used.
<h2 class="title"><a name="OPTIONS">Options</a></h2>
<dl>
<dt>-c config-file
<h2 class="title"><a name="ROOT_ACCOUNT_OPTIONS">Root Account Options</a></h2>
When run by the root user, <i>lpoptions</i> gets and sets default
options and instances for <i>all users</i> in the
-/etc/cups/lpoptions file.
+/private/etc/cups/lpoptions file.
<h2 class="title"><a name="COMPATIBILITY">Compatibility</a></h2>
The <i>lpoptions</i> command is unique to CUPS.
<h2 class="title"><a name="FILES">Files</a></h2>
~/.cups/lpoptions - user defaults and instances created by non-root
users.
<br>
-/etc/cups/lpoptions - system-wide defaults and instances
+/private/etc/cups/lpoptions - system-wide defaults and instances
created by the root user.
<h2 class="title"><a name="SEE_ALSO">See Also</a></h2>
<a href='man-cancel.html?TOPIC=Man+Pages'>cancel(1)</a>, <a href='man-lp.html?TOPIC=Man+Pages'>lp(1)</a>, <a href='man-lpadmin.html?TOPIC=Man+Pages'>lpadmin(8)</a>, <a href='man-lpr.html?TOPIC=Man+Pages'>lpr(1)</a>,
fchown(cupsFileNumber(fp), 0, 0);
fchmod(cupsFileNumber(fp), 0400);
- cupsFilePuts(fp, "CUPSD-AUTH-V2\n");
+ cupsFilePuts(fp, "CUPSD-AUTH-V3\n");
for (i = 0;
i < (int)(sizeof(job->auth_env) / sizeof(job->auth_env[0]));
i < (int)(sizeof(job->auth_env) / sizeof(job->auth_env[0]));
i ++)
{
- httpEncode64_2(line, sizeof(line), auth_info->values[i].string.text,
- strlen(auth_info->values[i].string.text));
- cupsFilePutConf(fp, dest->auth_info_required[i], line);
+ if (strcmp(dest->auth_info_required[i], "negotiate"))
+ {
+ httpEncode64_2(line, sizeof(line), auth_info->values[i].string.text,
+ strlen(auth_info->values[i].string.text));
+ cupsFilePutConf(fp, dest->auth_info_required[i], line);
+ }
+ else
+ cupsFilePutConf(fp, dest->auth_info_required[i],
+ auth_info->values[i].string.text);
if (!strcmp(dest->auth_info_required[i], "username"))
cupsdSetStringf(job->auth_env + i, "AUTH_USERNAME=%s",
if (cupsFileGets(fp, line, sizeof(line)) &&
- !strcmp(line, "CUPSD-AUTH-V2"))
+ !strcmp(line, "CUPSD-AUTH-V3"))
{
i = 0;
while (cupsFileGetConf(fp, line, sizeof(line), &value, &linenum))
* Decode value...
*/
- bytes = sizeof(data);
- httpDecode64_2(data, &bytes, value);
+ if (strcmp(line, "negotiate") && strcmp(line, "uid"))
+ {
+ bytes = sizeof(data);
+ httpDecode64_2(data, &bytes, value);
+ }
/*
* Assign environment variables...
else if (!strcmp(line, "password"))
cupsdSetStringf(job->auth_env + i, "AUTH_PASSWORD=%s", data);
else if (!strcmp(line, "negotiate"))
- cupsdSetStringf(job->auth_env + i, "AUTH_NEGOTIATE=%s", data);
+ cupsdSetStringf(job->auth_env + i, "AUTH_NEGOTIATE=%s", value);
else
continue;
const char *f, /* I - Printf-style format string */
...) /* I - Additional args as needed */
{
- char v[4096]; /* Formatting string value */
+ char v[65536 + 64]; /* Formatting string value */
va_list ap; /* Argument pointer */
char *olds; /* Old string */