This commit is contained in:
Jiri Popelka 2012-05-15 17:16:59 +02:00
parent 33e7e92082
commit fecfdf6a4a
12 changed files with 84 additions and 255 deletions

1
.gitignore vendored
View File

@ -50,3 +50,4 @@ cups-1.4.4-source.tar.bz2
/cups-1.5rc1-source.tar.bz2
/cups-1.5.0-source.tar.bz2
/cups-1.5.2-source.tar.bz2
/cups-1.5.3-source.tar.bz2

View File

@ -1,13 +1,14 @@
diff -up cups-1.5b1/Makedefs.in.0755 cups-1.5b1/Makedefs.in
--- cups-1.5b1/Makedefs.in.0755 2011-05-24 16:43:27.000000000 +0200
+++ cups-1.5b1/Makedefs.in 2011-05-24 16:43:27.000000000 +0200
@@ -41,13 +41,13 @@ SHELL = /bin/sh
diff -up cups-1.5.3/Makedefs.in.0755 cups-1.5.3/Makedefs.in
--- cups-1.5.3/Makedefs.in.0755 2012-05-15 16:51:31.000000000 +0200
+++ cups-1.5.3/Makedefs.in 2012-05-15 16:52:59.246906315 +0200
@@ -41,14 +41,14 @@ SHELL = /bin/sh
# Installation programs...
#
-INSTALL_BIN = $(LIBTOOL) $(INSTALL) -c -m 555 @INSTALL_STRIP@
+INSTALL_BIN = $(LIBTOOL) $(INSTALL) -c -m 755 @INSTALL_STRIP@
INSTALL_CONFIG = $(INSTALL) -c -m @CUPS_CONFIG_FILE_PERM@
INSTALL_COMPDATA = $(INSTALL) -c -m 444 @INSTALL_GZIP@
INSTALL_DATA = $(INSTALL) -c -m 444
INSTALL_DIR = $(INSTALL) -d
-INSTALL_LIB = $(LIBTOOL) $(INSTALL) -c -m 555 @INSTALL_STRIP@
@ -18,9 +19,9 @@ diff -up cups-1.5b1/Makedefs.in.0755 cups-1.5b1/Makedefs.in
#
# Default user, group, and system groups for the scheduler...
diff -up cups-1.5b1/scheduler/Makefile.0755 cups-1.5b1/scheduler/Makefile
--- cups-1.5b1/scheduler/Makefile.0755 2011-05-12 00:17:34.000000000 +0200
+++ cups-1.5b1/scheduler/Makefile 2011-05-24 16:43:27.000000000 +0200
diff -up cups-1.5.3/scheduler/Makefile.0755 cups-1.5.3/scheduler/Makefile
--- cups-1.5.3/scheduler/Makefile.0755 2011-05-12 00:17:34.000000000 +0200
+++ cups-1.5.3/scheduler/Makefile 2012-05-15 16:51:31.703516547 +0200
@@ -213,7 +213,7 @@ install-data:
install-exec:
echo Installing programs in $(SBINDIR)...

View File

@ -1,6 +1,6 @@
diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
--- cups-1.5.2/backend/dnssd.c.avahi-2-backend 2012-03-14 15:04:17.692305593 +0000
+++ cups-1.5.2/backend/dnssd.c 2012-03-14 15:05:38.966405938 +0000
diff -up cups-1.5.3/backend/dnssd.c.avahi-2-backend cups-1.5.3/backend/dnssd.c
--- cups-1.5.3/backend/dnssd.c.avahi-2-backend 2012-05-15 16:53:18.164774446 +0200
+++ cups-1.5.3/backend/dnssd.c 2012-05-15 17:09:07.684155704 +0200
@@ -15,14 +15,21 @@
*
* Contents:
@ -85,23 +85,24 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
static void browse_callback(DNSServiceRef sdRef,
DNSServiceFlags flags,
uint32_t interfaceIndex,
@@ -93,12 +131,6 @@ static void browse_local_callback(DNSSe
const char *regtype,
@@ -95,13 +133,6 @@ static void browse_local_callback(DNSSe
const char *replyDomain,
void *context);
void *context)
__attribute__((nonnull(1,5,6,7,8)));
-static int compare_devices(cups_device_t *a, cups_device_t *b);
-static void exec_backend(char **argv);
-static cups_device_t *get_device(cups_array_t *devices,
- const char *serviceName,
- const char *regtype,
- const char *replyDomain);
- const char *replyDomain)
- __attribute__((nonnull(1,2,3,4)));
static void query_callback(DNSServiceRef sdRef,
DNSServiceFlags flags,
uint32_t interfaceIndex,
@@ -107,9 +139,118 @@ static void query_callback(DNSServiceRe
uint16_t rrclass, uint16_t rdlen,
@@ -111,10 +142,119 @@ static void query_callback(DNSServiceRe
const void *rdata, uint32_t ttl,
void *context);
void *context)
__attribute__((nonnull(1,5,9,11)));
+#endif /* HAVE_DNSSD */
+#ifdef HAVE_AVAHI
+static void avahi_client_callback (AvahiClient *client,
@ -117,7 +118,6 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
+ AvahiLookupResultFlags flags,
+ void *context);
+#endif /* HAVE_AVAHI */
+
+static cups_device_t * find_device (cups_array_t *devices,
+ cups_txt_records_t *txt,
+ cups_device_t *dkey);
@ -126,9 +126,11 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
+static cups_device_t *get_device(cups_array_t *devices,
+ const char *serviceName,
+ const char *regtype,
+ const char *replyDomain);
+ const char *replyDomain)
+ __attribute__((nonnull(1,2,3,4)));
static void sigterm_handler(int sig);
static void unquote(char *dst, const char *src, size_t dstsize);
static void unquote(char *dst, const char *src, size_t dstsize)
__attribute__((nonnull(1,2)));
+#ifdef HAVE_AVAHI
+static AvahiSimplePoll *simple_poll = NULL;
@ -217,7 +219,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
/*
* 'main()' - Browse for printers.
@@ -120,6 +261,13 @@ main(int argc, /* I - Number of comm
@@ -125,6 +265,13 @@ main(int argc, /* I - Number of comm
char *argv[]) /* I - Command-line arguments */
{
const char *name; /* Backend name */
@ -231,7 +233,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
DNSServiceRef main_ref, /* Main service reference */
fax_ipp_ref, /* IPP fax service reference */
ipp_ref, /* IPP service reference */
@@ -133,12 +281,11 @@ main(int argc, /* I - Number of comm
@@ -138,12 +285,11 @@ main(int argc, /* I - Number of comm
pdl_datastream_ref, /* AppSocket service reference */
printer_ref, /* LPD service reference */
riousbprint_ref; /* Remote IO service reference */
@ -249,7 +251,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
struct sigaction action; /* Actions for POSIX signals */
#endif /* HAVE_SIGACTION && !HAVE_SIGSET */
@@ -198,6 +345,49 @@ main(int argc, /* I - Number of comm
@@ -203,6 +349,49 @@ main(int argc, /* I - Number of comm
* Browse for different kinds of printers...
*/
@ -299,7 +301,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
if (DNSServiceCreateConnection(&main_ref) != kDNSServiceErr_NoError)
{
perror("ERROR: Unable to create service connection");
@@ -258,6 +448,7 @@ main(int argc, /* I - Number of comm
@@ -263,6 +452,7 @@ main(int argc, /* I - Number of comm
riousbprint_ref = main_ref;
DNSServiceBrowse(&riousbprint_ref, kDNSServiceFlagsShareConnection, 0,
"_riousbprint._tcp", NULL, browse_callback, devices);
@ -307,7 +309,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
/*
* Loop until we are killed...
@@ -265,6 +456,9 @@ main(int argc, /* I - Number of comm
@@ -270,6 +460,9 @@ main(int argc, /* I - Number of comm
while (!job_canceled)
{
@ -317,7 +319,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
FD_ZERO(&input);
FD_SET(fd, &input);
@@ -284,11 +478,35 @@ main(int argc, /* I - Number of comm
@@ -289,11 +482,35 @@ main(int argc, /* I - Number of comm
}
else
{
@ -353,7 +355,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
cups_device_t *best; /* Best matching device */
char device_uri[1024]; /* Device URI */
int count; /* Number of queries */
@@ -302,6 +520,7 @@ main(int argc, /* I - Number of comm
@@ -307,6 +524,7 @@ main(int argc, /* I - Number of comm
if (device->sent)
sent ++;
@ -361,7 +363,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
if (device->ref)
count ++;
@@ -333,14 +552,23 @@ main(int argc, /* I - Number of comm
@@ -338,14 +556,23 @@ main(int argc, /* I - Number of comm
count ++;
}
}
@ -386,7 +388,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
if (!best)
best = device;
@@ -401,6 +629,7 @@ main(int argc, /* I - Number of comm
@@ -406,6 +633,7 @@ main(int argc, /* I - Number of comm
}
@ -394,7 +396,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
/*
* 'browse_callback()' - Browse devices.
*/
@@ -489,6 +718,7 @@ browse_local_callback(
@@ -494,6 +722,7 @@ browse_local_callback(
device->fullName);
device->sent = 1;
}
@ -402,7 +404,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
/*
@@ -569,6 +799,41 @@ exec_backend(char **argv) /* I - Comman
@@ -574,6 +803,41 @@ exec_backend(char **argv) /* I - Comman
/*
@ -444,7 +446,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
* 'get_device()' - Create or update a device.
*/
@@ -589,20 +854,7 @@ get_device(cups_array_t *devices, /* I -
@@ -594,20 +858,7 @@ get_device(cups_array_t *devices, /* I -
*/
key.name = (char *)serviceName;
@ -466,7 +468,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
for (device = cupsArrayFind(devices, &key);
device;
@@ -622,8 +874,14 @@ get_device(cups_array_t *devices, /* I -
@@ -627,8 +878,14 @@ get_device(cups_array_t *devices, /* I -
free(device->domain);
device->domain = strdup(replyDomain);
@ -481,7 +483,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
free(device->fullName);
device->fullName = strdup(fullName);
}
@@ -643,6 +901,9 @@ get_device(cups_array_t *devices, /* I -
@@ -648,6 +905,9 @@ get_device(cups_array_t *devices, /* I -
device->domain = strdup(replyDomain);
device->type = key.type;
device->priority = 50;
@ -491,7 +493,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
cupsArrayAdd(devices, device);
@@ -650,13 +911,20 @@ get_device(cups_array_t *devices, /* I -
@@ -655,13 +915,20 @@ get_device(cups_array_t *devices, /* I -
* Set the "full name" of this service, which is used for queries...
*/
@ -512,7 +514,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
/*
* 'query_callback()' - Process query data.
*/
@@ -680,7 +948,7 @@ query_callback(
@@ -685,7 +952,7 @@ query_callback(
*ptr; /* Pointer into string */
cups_device_t dkey, /* Search key */
*device; /* Device */
@ -521,7 +523,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
fprintf(stderr, "DEBUG2: query_callback(sdRef=%p, flags=%x, "
"interfaceIndex=%d, errorCode=%d, fullName=\"%s\", "
@@ -714,94 +982,233 @@ query_callback(
@@ -719,94 +986,233 @@ query_callback(
if ((ptr = strstr(name, "._")) != NULL)
*ptr = '\0';
@ -638,7 +640,8 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
else
- dkey.type = CUPS_DEVICE_RIOUSBPRINT;
+ fprintf (stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", name);
+
- for (device = cupsArrayFind(devices, &dkey);
+ avahi_service_resolver_free (resolver);
+}
+
@ -713,8 +716,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
+}
+#endif /* HAVE_AVAHI */
+
- for (device = cupsArrayFind(devices, &dkey);
+
+/*
+ * 'find_device()' - Find a device from its name and domain.
+ */
@ -817,7 +819,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
{
/*
* Add USB device ID information...
@@ -856,6 +1263,10 @@ query_callback(
@@ -861,6 +1267,10 @@ query_callback(
if (device->type == CUPS_DEVICE_PRINTER)
device->sent = 1;
}
@ -828,7 +830,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
}
if (device->device_id)
@@ -912,11 +1323,9 @@ query_callback(
@@ -917,11 +1327,9 @@ query_callback(
}
}
@ -841,9 +843,9 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
/*
* 'sigterm_handler()' - Handle termination signals...
*/
diff -up cups-1.5.2/cups/http-support.c.avahi-2-backend cups-1.5.2/cups/http-support.c
--- cups-1.5.2/cups/http-support.c.avahi-2-backend 2011-09-26 19:46:46.000000000 +0100
+++ cups-1.5.2/cups/http-support.c 2012-03-14 15:05:38.997405971 +0000
diff -up cups-1.5.3/cups/http-support.c.avahi-2-backend cups-1.5.3/cups/http-support.c
--- cups-1.5.3/cups/http-support.c.avahi-2-backend 2012-02-15 02:06:12.000000000 +0100
+++ cups-1.5.3/cups/http-support.c 2012-05-15 17:04:51.045944634 +0200
@@ -43,6 +43,10 @@
* http_copy_decode() - Copy and decode a URI.
* http_copy_encode() - Copy and encode a URI.
@ -892,7 +894,7 @@ diff -up cups-1.5.2/cups/http-support.c.avahi-2-backend cups-1.5.2/cups/http-sup
/*
* 'httpAssembleURI()' - Assemble a uniform resource identifier from its
@@ -1431,6 +1458,9 @@ _httpResolveURI(
@@ -1434,6 +1461,9 @@ _httpResolveURI(
if (strstr(hostname, "._tcp"))
{
@ -902,7 +904,7 @@ diff -up cups-1.5.2/cups/http-support.c.avahi-2-backend cups-1.5.2/cups/http-sup
#ifdef HAVE_DNSSD
# ifdef WIN32
# pragma comment(lib, "dnssd.lib")
@@ -1449,6 +1479,17 @@ _httpResolveURI(
@@ -1452,6 +1482,17 @@ _httpResolveURI(
fd_set input_set; /* Input set for select() */
struct timeval stimeout; /* Timeout value for select() */
#endif /* HAVE_POLL */
@ -920,7 +922,7 @@ diff -up cups-1.5.2/cups/http-support.c.avahi-2-backend cups-1.5.2/cups/http-sup
if (options & _HTTP_RESOLVE_STDERR)
fprintf(stderr, "DEBUG: Resolving \"%s\"...\n", hostname);
@@ -1485,9 +1526,16 @@ _httpResolveURI(
@@ -1488,9 +1529,16 @@ _httpResolveURI(
if (domain)
*domain++ = '\0';
@ -937,7 +939,7 @@ diff -up cups-1.5.2/cups/http-support.c.avahi-2-backend cups-1.5.2/cups/http-sup
resolved_uri[0] = '\0';
DEBUG_printf(("6_httpResolveURI: Resolving hostname=\"%s\", regtype=\"%s\", "
@@ -1501,6 +1549,7 @@ _httpResolveURI(
@@ -1504,6 +1552,7 @@ _httpResolveURI(
uri = NULL;
@ -945,7 +947,7 @@ diff -up cups-1.5.2/cups/http-support.c.avahi-2-backend cups-1.5.2/cups/http-sup
if (DNSServiceCreateConnection(&ref) == kDNSServiceErr_NoError)
{
localref = ref;
@@ -1608,6 +1657,36 @@ _httpResolveURI(
@@ -1611,6 +1660,36 @@ _httpResolveURI(
DNSServiceRefDeallocate(ref);
}
@ -982,7 +984,7 @@ diff -up cups-1.5.2/cups/http-support.c.avahi-2-backend cups-1.5.2/cups/http-sup
if (options & _HTTP_RESOLVE_STDERR)
{
@@ -1619,13 +1698,13 @@ _httpResolveURI(
@@ -1622,13 +1701,13 @@ _httpResolveURI(
fputs("STATE: -connecting-to-device,offline-report\n", stderr);
}
@ -998,10 +1000,10 @@ diff -up cups-1.5.2/cups/http-support.c.avahi-2-backend cups-1.5.2/cups/http-sup
if ((options & _HTTP_RESOLVE_STDERR) && !uri)
_cupsLangPrintFilter(stderr, "ERROR", _("Unable to find printer."));
@@ -1914,6 +1993,116 @@ http_resolve_cb(
@@ -1916,6 +1995,115 @@ http_resolve_cb(
}
#endif /* HAVE_DNSSD */
+#ifdef HAVE_AVAHI
+/*
+ * 'avahi_resolve_uri_client_cb()' - Avahi client callback for resolving URI.
@ -1111,7 +1113,6 @@ diff -up cups-1.5.2/cups/http-support.c.avahi-2-backend cups-1.5.2/cups/http-sup
+}
+#endif /* HAVE_AVAHI */
+
+
/*
* End of "$Id: http-support.c 10017 2011-09-26 18:46:46Z mike $".
*/
* End of "$Id: http-support.c 10284 2012-02-15 01:06:12Z mike $".

View File

@ -1,7 +1,7 @@
diff -up cups-1.5b1/backend/ipp.c.eggcups cups-1.5b1/backend/ipp.c
--- cups-1.5b1/backend/ipp.c.eggcups 2011-05-21 06:02:41.000000000 +0200
+++ cups-1.5b1/backend/ipp.c 2011-05-23 18:07:45.000000000 +0200
@@ -133,6 +133,70 @@ static cups_array_t *state_reasons; /* A
diff -up cups-1.5.3/backend/ipp.c.eggcups cups-1.5.3/backend/ipp.c
--- cups-1.5.3/backend/ipp.c.eggcups 2012-05-05 01:00:01.000000000 +0200
+++ cups-1.5.3/backend/ipp.c 2012-05-15 16:50:41.142868986 +0200
@@ -138,6 +138,70 @@ static cups_array_t *state_reasons; /* A
static char tmpfilename[1024] = "";
/* Temporary spool file name */
@ -72,7 +72,7 @@ diff -up cups-1.5b1/backend/ipp.c.eggcups cups-1.5b1/backend/ipp.c
/*
* Local functions...
@@ -1461,6 +1525,15 @@ main(int argc, /* I - Number of comm
@@ -1520,6 +1584,15 @@ main(int argc, /* I - Number of comm
_("Print file accepted - job ID %d."), job_id);
}
@ -85,12 +85,12 @@ diff -up cups-1.5b1/backend/ipp.c.eggcups cups-1.5b1/backend/ipp.c
+ getenv ("PRINTER"));
+#endif /* HAVE_DBUS */
+
fprintf(stderr, "DEBUG: job-id=%d\n", job_id);
ippDelete(response);
if (job_canceled)
diff -up cups-1.5b1/backend/Makefile.eggcups cups-1.5b1/backend/Makefile
--- cups-1.5b1/backend/Makefile.eggcups 2011-05-04 06:28:00.000000000 +0200
+++ cups-1.5b1/backend/Makefile 2011-05-23 18:03:22.000000000 +0200
diff -up cups-1.5.3/backend/Makefile.eggcups cups-1.5.3/backend/Makefile
--- cups-1.5.3/backend/Makefile.eggcups 2012-04-23 19:42:12.000000000 +0200
+++ cups-1.5.3/backend/Makefile 2012-05-15 16:48:17.253871982 +0200
@@ -212,7 +212,7 @@ dnssd: dnssd.o ../cups/$(LIBCUPS) libbac
ipp: ipp.o ../cups/$(LIBCUPS) libbackend.a
@ -100,10 +100,10 @@ diff -up cups-1.5b1/backend/Makefile.eggcups cups-1.5b1/backend/Makefile
$(RM) http
$(LN) ipp http
diff -up cups-1.5b1/scheduler/subscriptions.c.eggcups cups-1.5b1/scheduler/subscriptions.c
--- cups-1.5b1/scheduler/subscriptions.c.eggcups 2011-05-20 05:49:49.000000000 +0200
+++ cups-1.5b1/scheduler/subscriptions.c 2011-05-23 18:03:22.000000000 +0200
@@ -1310,13 +1310,13 @@ cupsd_send_dbus(cupsd_eventmask_t event,
diff -up cups-1.5.3/scheduler/subscriptions.c.eggcups cups-1.5.3/scheduler/subscriptions.c
--- cups-1.5.3/scheduler/subscriptions.c.eggcups 2012-02-12 06:48:09.000000000 +0100
+++ cups-1.5.3/scheduler/subscriptions.c 2012-05-15 16:48:17.253871982 +0200
@@ -1314,13 +1314,13 @@ cupsd_send_dbus(cupsd_eventmask_t event,
what = "PrinterAdded";
else if (event & CUPSD_EVENT_PRINTER_DELETED)
what = "PrinterRemoved";
@ -119,7 +119,7 @@ diff -up cups-1.5b1/scheduler/subscriptions.c.eggcups cups-1.5b1/scheduler/subsc
else
return;
@@ -1352,7 +1352,7 @@ cupsd_send_dbus(cupsd_eventmask_t event,
@@ -1356,7 +1356,7 @@ cupsd_send_dbus(cupsd_eventmask_t event,
dbus_message_append_iter_init(message, &iter);
if (dest)
dbus_message_iter_append_string(&iter, dest->name);

View File

@ -1,7 +1,7 @@
diff -up cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs cups-1.5b1/config-scripts/cups-ssl.m4
--- cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs 2011-05-11 02:52:08.000000000 +0200
+++ cups-1.5b1/config-scripts/cups-ssl.m4 2011-05-23 17:47:27.000000000 +0200
@@ -164,7 +164,7 @@ AC_SUBST(IPPALIASES)
diff -up cups-1.5.3/config-scripts/cups-ssl.m4.no-export-ssllibs cups-1.5.3/config-scripts/cups-ssl.m4
--- cups-1.5.3/config-scripts/cups-ssl.m4.no-export-ssllibs 2012-03-21 05:45:48.000000000 +0100
+++ cups-1.5.3/config-scripts/cups-ssl.m4 2012-05-15 16:47:13.753314620 +0200
@@ -173,7 +173,7 @@ AC_SUBST(IPPALIASES)
AC_SUBST(SSLFLAGS)
AC_SUBST(SSLLIBS)
@ -9,4 +9,4 @@ diff -up cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs cups-1.5b1/conf
+EXPORT_SSLLIBS=""
AC_SUBST(EXPORT_SSLLIBS)
dnl

View File

@ -1,11 +0,0 @@
diff -up cups-1.5.2/scheduler/cups-polld.c.polld-reconnect cups-1.5.2/scheduler/cups-polld.c
--- cups-1.5.2/scheduler/cups-polld.c.polld-reconnect 2011-05-07 00:07:28.000000000 +0100
+++ cups-1.5.2/scheduler/cups-polld.c 2012-02-23 10:50:57.272513141 +0000
@@ -291,6 +291,7 @@ poll_server(http_t *http, /* I - H
fprintf(stderr, "ERROR: %s CUPS-Get-Printers failed: %s\n", prefix,
cupsLastErrorString());
ippDelete(response);
+ restart_polling = 1;
return (-1);
}

View File

@ -1,43 +0,0 @@
From 19e2adf8307c8a908da80ceef335517139e5bf64 Mon Sep 17 00:00:00 2001
From: mike <mike@7a7537e8-13f0-0310-91df-b6672ffda945>
Date: Mon, 13 Feb 2012 23:43:07 +0000
Subject: [PATCH] Detect authentication errors for all requests.
git-svn-id: http://svn.easysw.com/public/cups/trunk@10277 7a7537e8-13f0-0310-91df-b6672ffda945
---
backend/ipp.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/backend/ipp.c b/backend/ipp.c
index bcaab37..d4719e4 100644
--- a/backend/ipp.c
+++ b/backend/ipp.c
@@ -898,7 +898,9 @@ main(int argc, /* I - Number of command-line args */
return (CUPS_BACKEND_STOP);
}
- else if (ipp_status == IPP_NOT_AUTHORIZED || ipp_status == IPP_FORBIDDEN)
+ else if (ipp_status == IPP_NOT_AUTHORIZED ||
+ ipp_status == IPP_FORBIDDEN ||
+ ipp_status == IPP_AUTHENTICATION_CANCELED)
{
const char *www_auth = httpGetField(http, HTTP_FIELD_WWW_AUTHENTICATE);
/* WWW-Authenticate field value */
@@ -1472,11 +1474,12 @@ main(int argc, /* I - Number of command-line args */
_cupsLangPrintFilter(stderr, "ERROR",
_("Print file was not accepted."));
- if (ipp_status == IPP_NOT_AUTHORIZED || ipp_status == IPP_FORBIDDEN)
+ if (ipp_status == IPP_NOT_AUTHORIZED || ipp_status == IPP_FORBIDDEN ||
+ ipp_status == IPP_AUTHENTICATION_CANCELED)
{
const char *www_auth = httpGetField(http, HTTP_FIELD_WWW_AUTHENTICATE);
/* WWW-Authenticate field value */
-
+
if (!strncmp(www_auth, "Negotiate", 9))
auth_info_required = "negotiate";
else if (www_auth[0])
--
1.7.7.6

View File

@ -1,74 +0,0 @@
diff -up cups-1.5.2/backend/ipp.c.str3985 cups-1.5.2/backend/ipp.c
--- cups-1.5.2/backend/ipp.c.str3985 2012-04-05 10:28:12.568898781 +0200
+++ cups-1.5.2/backend/ipp.c 2012-04-05 10:32:07.165612536 +0200
@@ -957,9 +957,13 @@ main(int argc, /* I - Number of comm
}
else if (ipp_status == IPP_NOT_AUTHORIZED || ipp_status == IPP_FORBIDDEN)
{
- if (!strncmp(httpGetField(http, HTTP_FIELD_WWW_AUTHENTICATE),
- "Negotiate", 9))
+ const char *www_auth = httpGetField(http, HTTP_FIELD_WWW_AUTHENTICATE);
+ /* WWW-Authenticate field value */
+
+ if (!strncmp(www_auth, "Negotiate", 9))
auth_info_required = "negotiate";
+ else if (www_auth[0])
+ auth_info_required = "username,password";
fprintf(stderr, "ATTR: auth-info-required=%s\n", auth_info_required);
return (CUPS_BACKEND_AUTH_REQUIRED);
@@ -1315,23 +1319,13 @@ main(int argc, /* I - Number of comm
else if (ipp_status == IPP_NOT_AUTHORIZED || ipp_status == IPP_FORBIDDEN ||
ipp_status == IPP_AUTHENTICATION_CANCELED)
{
- /*
- * Update auth-info-required as needed...
- */
-
- fprintf(stderr, "DEBUG: WWW-Authenticate=\"%s\"\n",
- httpGetField(http, HTTP_FIELD_WWW_AUTHENTICATE));
-
- /*
- * Normal authentication goes through the password callback, which sets
- * auth_info_required to "username,password". Kerberos goes directly
- * through GSSAPI, so look for Negotiate in the WWW-Authenticate header
- * here and set auth_info_required as needed...
- */
+ const char *www_auth = httpGetField(http, HTTP_FIELD_WWW_AUTHENTICATE);
+ /* WWW-Authenticate field value */
- if (!strncmp(httpGetField(http, HTTP_FIELD_WWW_AUTHENTICATE),
- "Negotiate", 9))
+ if (!strncmp(www_auth, "Negotiate", 9))
auth_info_required = "negotiate";
+ else if (www_auth[0])
+ auth_info_required = "username,password";
goto cleanup;
}
@@ -1486,19 +1480,13 @@ main(int argc, /* I - Number of comm
if (ipp_status == IPP_NOT_AUTHORIZED || ipp_status == IPP_FORBIDDEN)
{
- fprintf(stderr, "DEBUG: WWW-Authenticate=\"%s\"\n",
- httpGetField(http, HTTP_FIELD_WWW_AUTHENTICATE));
-
- /*
- * Normal authentication goes through the password callback, which sets
- * auth_info_required to "username,password". Kerberos goes directly
- * through GSSAPI, so look for Negotiate in the WWW-Authenticate header
- * here and set auth_info_required as needed...
- */
-
- if (!strncmp(httpGetField(http, HTTP_FIELD_WWW_AUTHENTICATE),
- "Negotiate", 9))
+ const char *www_auth = httpGetField(http, HTTP_FIELD_WWW_AUTHENTICATE);
+ /* WWW-Authenticate field value */
+
+ if (!strncmp(www_auth, "Negotiate", 9))
auth_info_required = "negotiate";
+ else if (www_auth[0])
+ auth_info_required = "username,password";
}
else
sleep(10);

View File

@ -1,16 +0,0 @@
diff -up cups-1.5.2/scheduler/subscriptions.c.str4014 cups-1.5.2/scheduler/subscriptions.c
--- cups-1.5.2/scheduler/subscriptions.c.str4014 2012-02-15 13:17:24.065004731 +0000
+++ cups-1.5.2/scheduler/subscriptions.c 2012-02-15 13:17:34.021009331 +0000
@@ -146,7 +146,11 @@ cupsdAddEvent(
temp->time = time(NULL);
temp->attrs = ippNew();
temp->job = job;
- temp->dest = dest;
+
+ if (dest)
+ temp->dest = dest;
+ else if (job)
+ temp->dest = dest = cupsdFindPrinter(job->dest);
/*
* Add common event notification attributes...

View File

@ -1,12 +0,0 @@
diff -up cups-1.5.2/cups/language.c.translation cups-1.5.2/cups/language.c
--- cups-1.5.2/cups/language.c.translation 2011-11-01 07:06:15.000000000 +0100
+++ cups-1.5.2/cups/language.c 2012-02-28 10:54:58.448744034 +0100
@@ -1134,7 +1134,7 @@ _cupsMessageLookup(cups_array_t *a, /* I
}
#endif /* __APPLE__ && CUPS_BUNDLEDIR */
- if (match && match->str)
+ if (match && match->str && (strlen(match->str) > 0))
return (match->str);
else
return (m);

View File

@ -11,8 +11,8 @@
Summary: Common Unix Printing System
Name: cups
Version: 1.5.2
Release: 13%{?dist}
Version: 1.5.3
Release: 1%{?dist}
License: GPLv2
Group: System Environment/Daemons
Source: http://ftp.easysw.com/pub/cups/%{version}/cups-%{version}-source.tar.bz2
@ -69,11 +69,6 @@ Patch34: cups-avahi-5-services.patch
Patch35: cups-icc.patch
Patch36: cups-systemd-socket.patch
Patch37: cups-str4014.patch
Patch38: cups-polld-reconnect.patch
Patch39: cups-translation.patch
Patch40: cups-str3985.patch
Patch41: cups-revision10277.patch
Patch100: cups-lspp.patch
@ -292,22 +287,6 @@ Sends IPP requests to the specified URI and tests and/or displays the results.
# Poettering).
%patch36 -p1 -b .systemd-socket
# Synthesize notify-printer-uri for job-completed events where the job
# never started processing (bug #784786, STR #4014).
%patch37 -p1 -b .str4014
# cups-polld: restart polling on error (bug #769292, STR #4031).
%patch38 -p1 -b .polld-reconnect
# If the translated message is empty return the original message (bug #797570, STR #4033).
%patch39 -p1 -b .translation
# The IPP backend did not always setup username/password authentication for printers (bug #810007, STR #3985)
%patch40 -p1 -b .str3985
# Detect authentication errors for all requests.
%patch41 -p1 -b .revision10277
%if %lspp
# LSPP support.
%patch100 -p1 -b .lspp
@ -676,6 +655,9 @@ rm -f %{cups_serverbin}/backend/smb
%{_mandir}/man1/ipptool.1.gz
%changelog
* Tue May 15 2012 Jiri Popelka <jpopelka@redhat.com> 1:1.5.3-1
- 1.5.3
* Wed May 09 2012 Jiri Popelka <jpopelka@redhat.com> 1:1.5.2-13
- Add triggers for samba4-client. (#817110)
- No need to define BuildRoot and clean it in clean and install section anymore.

View File

@ -1 +1 @@
9471d2a7c920cfbb17133c32d2e6866f cups-1.5.2-source.tar.bz2
e1ad15257aa6f162414ea3beae0c5df8 cups-1.5.3-source.tar.bz2