+++ /dev/null
-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 */
-
-+#if HAVE_DBUS
-+#include <dbus/dbus.h>
-+
-+static DBusConnection *dbus_connection = NULL;
-+
-+static int
-+init_dbus (void)
-+{
-+ DBusConnection *connection;
-+ DBusError error;
-+
-+ if (dbus_connection &&
-+ !dbus_connection_get_is_connected (dbus_connection)) {
-+ dbus_connection_unref (dbus_connection);
-+ dbus_connection = NULL;
-+ }
-+
-+ dbus_error_init (&error);
-+ connection = dbus_bus_get (getuid () ? DBUS_BUS_SESSION : DBUS_BUS_SYSTEM, &error);
-+ if (connection == NULL) {
-+ dbus_error_free (&error);
-+ return -1;
-+ }
-+
-+ dbus_connection = connection;
-+ return 0;
-+}
-+
-+int
-+dbus_broadcast_queued_remote (const char *printer_uri,
-+ ipp_status_t status,
-+ unsigned int local_job_id,
-+ unsigned int remote_job_id,
-+ const char *username,
-+ const char *printer_name)
-+{
-+ DBusMessage *message;
-+ DBusMessageIter iter;
-+ const char *errstr;
-+
-+ if (!dbus_connection || !dbus_connection_get_is_connected (dbus_connection)) {
-+ if (init_dbus () || !dbus_connection)
-+ return -1;
-+ }
-+
-+ errstr = ippErrorString (status);
-+ message = dbus_message_new_signal ("/com/redhat/PrinterSpooler",
-+ "com.redhat.PrinterSpooler",
-+ "JobQueuedRemote");
-+ dbus_message_iter_init_append (message, &iter);
-+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &printer_uri);
-+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &errstr);
-+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_UINT32, &local_job_id);
-+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_UINT32, &remote_job_id);
-+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &username);
-+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &printer_name);
-+
-+ dbus_connection_send (dbus_connection, message, NULL);
-+ dbus_connection_flush (dbus_connection);
-+ dbus_message_unref (message);
-+
-+ return 0;
-+}
-+#endif /* HAVE_DBUS */
-
- /*
- * Local functions...
-@@ -1520,6 +1584,15 @@ main(int argc, /* I - Number of comm
- _("Print file accepted - job ID %d."), job_id);
- }
-
-+#if HAVE_DBUS
-+ dbus_broadcast_queued_remote (argv[0],
-+ ipp_status,
-+ atoi (argv[1]),
-+ job_id,
-+ argv[2],
-+ getenv ("PRINTER"));
-+#endif /* HAVE_DBUS */
-+
- fprintf(stderr, "DEBUG: job-id=%d\n", job_id);
- ippDelete(response);
-
-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
- echo Linking $@...
-- $(CC) $(LDFLAGS) -o ipp ipp.o libbackend.a $(LIBS)
-+ $(CC) $(LDFLAGS) -o ipp ipp.o libbackend.a $(LIBS) $(SERVERLIBS)
- $(RM) http
- $(LN) ipp http
-
-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";
-- else if (event & CUPSD_EVENT_PRINTER_CHANGED)
-- what = "QueueChanged";
- else if (event & CUPSD_EVENT_JOB_CREATED)
- what = "JobQueuedLocal";
- else if ((event & CUPSD_EVENT_JOB_STATE) && job &&
- job->state_value == IPP_JOB_PROCESSING)
- what = "JobStartedLocal";
-+ else if (event & (CUPSD_EVENT_PRINTER_CHANGED|CUPSD_EVENT_JOB_STATE_CHANGED|CUPSD_EVENT_PRINTER_STATE_CHANGED))
-+ what = "QueueChanged";
- else
- return;
-
-@@ -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);
-- if (job)
-+ if (job && strcmp (what, "QueueChanged") != 0)
- {
- dbus_message_iter_append_uint32(&iter, job->id);
- dbus_message_iter_append_string(&iter, job->username);