From: msweet
Date: Tue, 9 Aug 2011 21:32:14 +0000 (+0000)
Subject: Merge changes from CUPS 1.5.1-r9875.
X-Git-Tag: release-1.6.3~40
X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=771bd8cbffe1ffb06d90b2c7f00191830e6b738c;p=thirdparty%2Fcups.git
Merge changes from CUPS 1.5.1-r9875.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3363 a1ca3aef-8c08-0410-bb20-df032aa958be
---
diff --git a/CHANGES-1.4.txt b/CHANGES-1.4.txt
index 9376825a88..09326b2886 100644
--- a/CHANGES-1.4.txt
+++ b/CHANGES-1.4.txt
@@ -1,6 +1,13 @@
CHANGES-1.4.txt
---------------
+CHANGES IN CUPS V1.4.8
+
+ - The scheduler would delete job data files when restarted (STR #3880)
+ - The network backends could crash if a printer returned a value of 0
+ for the maximum capacity for a supply (STR #3875)
+
+
CHANGES IN CUPS V1.4.7
- Documentation changes (STR #3710, STR #3720, STR #3745, STR #3750,
@@ -9,6 +16,7 @@ CHANGES IN CUPS V1.4.7
STR #3755, STR #3769, STR #3783)
- Configure script fixes (STR #3659, STR #3691)
- Compilation fixes (STR #3718, STR #3771, STR #3774)
+ - The imageto* filters could crash with bad GIF files (STR #3867)
- The scheduler might leave old job data files in the spool directory
(STR #3795)
- CUPS did not work with locales using the ASCII character set
diff --git a/CHANGES.txt b/CHANGES.txt
index 0ae200933f..3de675517a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,6 +1,40 @@
-CHANGES.txt - 2011-06-14
+CHANGES.txt - 2011-08-06
------------------------
+CHANGES IN CUPS V1.5.1
+
+ - Documentation updates (STR #3885)
+ - The scheduler did not report the correct version in the Server: header
+ (STR #3903)
+ - The scheduler did not support 1284 device IDs reported by driver
+ interface programs longer than 127 characters (STR #3871)
+ - The image filters did not support loading images larger than the
+ RIPCache setting (STR #3901)
+ - "PAGE: total NNN" messages did not get logged properly (STR #3887)
+ - Updated the PWG Raster support to conform to the current draft of the
+ PWG Raster Format specification.
+ - The PWG Raster filter did not always write the correct number of
+ padding lines on the bottom of the page (STR #3904)
+ - When reporting a denial-of-service attack from the domain socket, the
+ address reported does not always contain the correct path (STR #3888)
+ - Badly formed GIF files could cause the image filters to crash
+ (STR #3914)
+ - Jobs canceled at the printer were retried by the IPP backend.
+ - "cupsfilter -u" deleted the input file instead of the PPD file.
+ - The scheduler did not compute the cost of PPD filters defined using
+ the cupsFilter2 keyword properly.
+ - The scheduler did not correctly support the maxsize() attribute for
+ PPD filters.
+
+
+CHANGES IN CUPS V1.5.0
+
+ - Documentation updates.
+ - Localization update (STR #3865)
+ - Needed to limit TLS to v1.0 on some versions of Mac OS X.
+ - The snmp backend did not work with some printers.
+
+
CHANGES IN CUPS V1.5rc1
- Compile fixes (STR #3849, STR #3850)
diff --git a/INSTALL.txt b/INSTALL.txt
index 06b718db03..a7b5a5869b 100644
--- a/INSTALL.txt
+++ b/INSTALL.txt
@@ -1,5 +1,5 @@
-INSTALL - CUPS v1.5rc1 - 2011-06-14
------------------------------------
+INSTALL - CUPS v1.5.0 - 2011-07-25
+----------------------------------
This file describes how to compile and install CUPS from source code. For more
information on CUPS see the file called "README.txt". A complete change log can
diff --git a/README.txt b/README.txt
index 42892ce758..f278e4dec3 100644
--- a/README.txt
+++ b/README.txt
@@ -1,4 +1,4 @@
-README - CUPS v1.5rc1 - 2011-06-14
+README - CUPS v1.5.0 - 2011-07-25
----------------------------------
Looking for compile instructions? Read the file "INSTALL.txt"
diff --git a/backend/ipp.c b/backend/ipp.c
index 5f39e9acf3..d5e18fefc8 100644
--- a/backend/ipp.c
+++ b/backend/ipp.c
@@ -1407,6 +1407,8 @@ main(int argc, /* I - Number of command-line args */
goto cleanup;
}
}
+ else if (ipp_status == IPP_ERROR_JOB_CANCELED)
+ goto cleanup;
else
{
/*
@@ -1768,7 +1770,7 @@ main(int argc, /* I - Number of command-line args */
else if (ipp_status == IPP_DOCUMENT_FORMAT ||
ipp_status == IPP_CONFLICT)
return (CUPS_BACKEND_FAILED);
- else if (ipp_status > IPP_OK_CONFLICT)
+ else if (ipp_status > IPP_OK_CONFLICT && ipp_status != IPP_ERROR_JOB_CANCELED)
return (CUPS_BACKEND_RETRY_CURRENT);
else
{
diff --git a/backend/snmp.c b/backend/snmp.c
index c53bf1616a..08ee25e2a1 100644
--- a/backend/snmp.c
+++ b/backend/snmp.c
@@ -948,7 +948,7 @@ read_snmp_response(int fd) /* I - SNMP socket file descriptor */
debug_printf("DEBUG: request-id=%d\n", packet.request_id);
debug_printf("DEBUG: error-status=%d\n", packet.error_status);
- if (packet.error_status)
+ if (packet.error_status && packet.request_id != DEVICE_TYPE)
return;
/*
diff --git a/conf/mime.types b/conf/mime.types
index 77944f4bbf..217d75bee9 100644
--- a/conf/mime.types
+++ b/conf/mime.types
@@ -92,7 +92,7 @@ image/jpeg jpeg jpg jpe string(0,) +\
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))
-image/pwg-raster string(0,"RaS2") + string(356,<0000000000000000>) priority(100)
+image/pwg-raster string(0,"RaS2") + string(4,PwgRaster<00>) priority(100)
image/tiff tiff tif string(0,MM<002A>) string(0,II<2A00>)
image/x-photocd pcd string(2048,PCD_IPI)
image/x-portable-anymap pnm
diff --git a/config-scripts/cups-common.m4 b/config-scripts/cups-common.m4
index 4c6c5262f5..7e6d84b302 100644
--- a/config-scripts/cups-common.m4
+++ b/config-scripts/cups-common.m4
@@ -20,7 +20,7 @@ dnl Set the name of the config header file...
AC_CONFIG_HEADER(config.h)
dnl Version number information...
-CUPS_VERSION="1.5rc1"
+CUPS_VERSION="1.5.1"
CUPS_REVISION=""
#if test -z "$CUPS_REVISION" -a -d .svn; then
# CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[[a-zA-Z]]*//g'`"
diff --git a/config-scripts/cups-ssl.m4 b/config-scripts/cups-ssl.m4
index 461d456da1..48012d9264 100644
--- a/config-scripts/cups-ssl.m4
+++ b/config-scripts/cups-ssl.m4
@@ -56,6 +56,12 @@ if test x$enable_ssl != xno; then
AC_CHECK_HEADER(Security/SecIdentitySearchPriv.h,
AC_DEFINE(HAVE_SECIDENTITYSEARCHPRIV_H))
+ dnl Check for SSLSetProtocolVersionMax...
+ SAVELIBS="$LIBS"
+ LIBS="$LIBS -framework Security"
+ AC_CHECK_FUNC(SSLSetProtocolVersionMax)
+ LIBS="$SAVELIBS"
+
dnl Check for SecCertificateCopyData..
AC_MSG_CHECKING(for SecCertificateCopyData)
if test $uversion -ge 100; then
diff --git a/config.h.in b/config.h.in
index ee79d88329..188b7527f8 100644
--- a/config.h.in
+++ b/config.h.in
@@ -342,6 +342,13 @@
#undef HAVE_SECPOLICYCREATESSL
+/*
+ * Do we have the SSLSetProtocolVersionMax function?
+ */
+
+#undef HAVE_SSLSETPROTOCOLVERSIONMAX
+
+
/*
* Do we have the cssmErrorString function?
*/
diff --git a/cups/cups.h b/cups/cups.h
index 716533c659..14cb02bba8 100644
--- a/cups/cups.h
+++ b/cups/cups.h
@@ -60,10 +60,10 @@ extern "C" {
* Constants...
*/
-# define CUPS_VERSION 1.0499
+# define CUPS_VERSION 1.0501
# define CUPS_VERSION_MAJOR 1
# define CUPS_VERSION_MINOR 5
-# define CUPS_VERSION_PATCH -1
+# define CUPS_VERSION_PATCH 1
# define CUPS_BC_FD 3 /* Back-channel file descriptor for select/poll */
# define CUPS_DATE_ANY (time_t)-1
diff --git a/cups/http-addr.c b/cups/http-addr.c
index 78f1f8191a..faf7348d2a 100644
--- a/cups/http-addr.c
+++ b/cups/http-addr.c
@@ -366,7 +366,12 @@ httpAddrString(const http_addr_t *addr, /* I - Address to convert */
#ifdef AF_LOCAL
if (addr->addr.sa_family == AF_LOCAL)
- strlcpy(s, addr->un.sun_path, slen);
+ {
+ if (addr->un.sun_path[0] == '/')
+ strlcpy(s, addr->un.sun_path, slen);
+ else
+ strlcpy(s, "localhost", slen);
+ }
else
#endif /* AF_LOCAL */
if (addr->addr.sa_family == AF_INET)
diff --git a/cups/http.c b/cups/http.c
index 50ebac3570..037efd32e4 100644
--- a/cups/http.c
+++ b/cups/http.c
@@ -3920,6 +3920,15 @@ http_setup_ssl(http_t *http) /* I - Connection to server */
cg->expired_root, (int)error));
}
+# ifdef HAVE_SSLSETPROTOCOLVERSIONMAX
+ if (!error)
+ {
+ error = SSLSetProtocolVersionMax(http->tls, kTLSProtocol1);
+ DEBUG_printf(("4http_setup_ssl: SSLSetProtocolVersionMax(kTLSProtocol1), "
+ "error=%d", (int)error));
+ }
+# endif /* HAVE_SSLSETPROTOCOLVERSIONMAX */
+
# ifdef HAVE_SECCERTIFICATECOPYDATA
if (!error)
{
diff --git a/cups/ipp-support.c b/cups/ipp-support.c
index 607c2764c4..cbf144dbb7 100644
--- a/cups/ipp-support.c
+++ b/cups/ipp-support.c
@@ -165,7 +165,8 @@ static char * const ipp_std_ops[] =
"Cancel-Jobs",
"Cancel-My-Jobs",
"Resubmit-Job",
- "Close-Job"
+ "Close-Job",
+ "Identify-Printer"
},
* const ipp_cups_ops[] =
{
diff --git a/cups/ipp.h b/cups/ipp.h
index 1ae9d0d53b..1626cabb28 100644
--- a/cups/ipp.h
+++ b/cups/ipp.h
@@ -241,6 +241,7 @@ typedef enum ipp_op_e /**** IPP operations ****/
IPP_CANCEL_MY_JOBS, /* Cancel-My-Jobs */
IPP_RESUBMIT_JOB, /* Resubmit-Job */
IPP_CLOSE_JOB, /* Close-Job */
+ IPP_IDENTIFY_PRINTER, /* Identify-Printer (proposed IPP JPS3) */
IPP_PRIVATE = 0x4000, /* Reserved @private@ */
CUPS_GET_DEFAULT, /* Get the default printer */
CUPS_GET_PRINTERS, /* Get a list of printers and/or classes */
diff --git a/doc/help/kerberos.html b/doc/help/kerberos.html
index 82c9b5ffe0..cb8b88c29d 100644
--- a/doc/help/kerberos.html
+++ b/doc/help/kerberos.html
@@ -8,11 +8,7 @@
Using Kerberos Authentication
-CUPS allows you to use a Key Distribution Center (KDC) for authentication
-on your local CUPS server and when printing to a remote authenticated queue.
-This document describes how to configure CUPS to use Kerberos authentication
-and provides links to the MIT help pages for configuring Kerberos on your
-systems and network.
+CUPS allows you to use a Key Distribution Center (KDC) for authentication on your local CUPS server and when printing to a remote authenticated queue. This document describes how to configure CUPS to use Kerberos authentication and provides links to the MIT help pages for configuring Kerberos on your systems and network.
@@ -23,42 +19,31 @@ systems and network.
Heimdal Kerberos (any version) or MIT Kerberos (1.6.3 or newer)
- Properly configured Domain Name System (DNS)
- infrastructure:
- - DNS server(s) with static IP addresses for all CUPS clients
- and servers or configured to allow DHCP updates to the host
- addresses
+ - Properly configured Domain Name System (DNS) infrastructure (for your servers):
+ - DNS server(s) with static IP addresses for all CUPS servers or configured to allow DHCP updates to the host addresses and
- All CUPS clients and servers configured to use the same
- DNS server(s)
+DNS server(s).
Properly configured Kerberos infrastructure:
- - KDC configured to allow CUPS clients and servers to obtain
- Service Granting Tickets (SGTs) for the "ipp" service
- - LDAP-based user accounts - both OpenDirectory and
- ActiveDirectory provide this with the KDC
- - CUPS clients and servers bound to the KDC and LDAP
- server(s)
+ - KDC configured to allow CUPS servers to obtain Service Granting Tickets (SGTs) for the "host" service,
+ - LDAP-based user accounts - both OpenDirectory and ActiveDirectory provide this with the KDC, and
+ - CUPS clients and servers bound to the same KDC and LDAP
+ server(s).
- An "ipp" Service Granting Ticket (SGT) for every CUPS client and
- server
+ A "host" Service Granting Ticket (SGT) for every CUPS server
-Before you can use Kerberos with CUPS, you will need to configure
-Kerberos on your system and setup a system as a KDC. Because this
-configuration is highly system and site-specific, please consult
-the following on-line resources provided by the creators of Kerberos
-at the Massachusetts Institute of Technology (MIT):
+Before you can use Kerberos with CUPS, you will need to configure Kerberos on your system and setup a system as a KDC. Because this configuration is highly system and site-specific, please consult the following on-line resources provided by the creators of Kerberos at the Massachusetts Institute of Technology (MIT):
cupsctl DefaultAuthType=Negotiate
-You can also enable Kerberos from the web interface by checking the
-Use Kerberos Authentication box and clicking Change
-Settings:
+You can also enable Kerberos from the web interface by checking the Use Kerberos Authentication box and clicking Change Settings:
-http://localhost:631/admin
+http://server.example.com:631/admin
-After you have enabled Kerberos authentication, use the built-in
-"authenticated" policy or your own custom policies with the printers you
-will be sharing. See Managing Operation Policies
-for more information.
+After you have enabled Kerberos authentication, use the built-in "authenticated" policy or your own custom policies with the printers you will be sharing. See Managing Operation Policies for more information.
-CUPS implements Kerberos over HTTP using GSSAPI and the service name
-"host". Because of limitations in the HTTP GSSAPI protocol extension, only
-a single domain/KDC is supported for authentication.
-
-When doing printing tasks that require authentication, CUPS requests a
-single-use "ticket" from your login session to authenticate who you are.
-This ticket gives CUPS a username of the form "user@REALM", which is then
-converted to just "user" for purposes of user and group checks.
-
-In order to support printing to a shared printer, CUPS has to ask the KDC
-for a copy of your credentials (this is called delegation) that can be sent to
-the remote server for authentication. Delegation only works when the system
-has a stable hostname which maps to the current address of the system, which
-is why you need a static IP address or DHCP that updates the DNS entry for your
-system.
+CUPS implements Kerberos over HTTP using GSSAPI and the service name "host". Because of limitations in the HTTP GSSAPI protocol extension, only a single domain/KDC is supported for authentication. The HTTP extension is described in RFC 4559.
+
+When doing printing tasks that require authentication, CUPS requests single-use "tickets" from your login session to authenticate who you are. These tickets give CUPS a username of the form "user@REALM", which is then converted to just "user" for purposes of user and group checks.
+
+In order to support printing to a shared printer, CUPS runs the IPP backend as the owner of the print job so it can obtain the necessary credentials.