rpms/cups/devel cups-eggcups.patch,1.1,1.2 cups.spec,1.284,1.285

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Fri Nov 3 12:12:20 UTC 2006


Author: twaugh

Update of /cvs/dist/rpms/cups/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv10378

Modified Files:
	cups-eggcups.patch cups.spec 
Log Message:
* Fri Nov  3 2006 Tim Waugh <twaugh at redhat.com> 1:1.2.5-6
- Restore missed JobQueuedRemote D-Bus signal in ipp backend (part of
  bug #212763).
- Resolves: rhbz#212763


cups-eggcups.patch:
 Makedefs.in                   |    1 
 backend/Makefile              |    2 -
 backend/ipp.c                 |   73 ++++++++++++++++++++++++++++++++++++++++++
 config-scripts/cups-common.m4 |    5 ++
 scheduler/subscriptions.c     |    9 ++---
 5 files changed, 84 insertions(+), 6 deletions(-)

Index: cups-eggcups.patch
===================================================================
RCS file: /cvs/dist/rpms/cups/devel/cups-eggcups.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- cups-eggcups.patch	1 Nov 2006 17:44:50 -0000	1.1
+++ cups-eggcups.patch	3 Nov 2006 12:12:18 -0000	1.2
@@ -1,11 +1,167 @@
+--- cups-1.2.5/config-scripts/cups-common.m4.eggcups	2006-10-20 16:11:40.000000000 +0100
++++ cups-1.2.5/config-scripts/cups-common.m4	2006-11-03 09:55:31.000000000 +0000
+@@ -191,6 +191,7 @@
+ dnl Extra platform-specific libraries...
+ BACKLIBS=""
+ CUPSDLIBS=""
++DBUSLIBS=""
+ DBUSDIR=""
+ 
+ AC_ARG_ENABLE(dbus, [  --enable-dbus           enable DBUS support, default=auto])
+@@ -234,7 +235,8 @@
+ 					AC_MSG_RESULT(yes)
+ 					AC_DEFINE(HAVE_DBUS)
+ 					CFLAGS="$CFLAGS `$PKGCONFIG --cflags dbus-1` -DDBUS_API_SUBJECT_TO_CHANGE"
+-					CUPSDLIBS="`$PKGCONFIG --libs dbus-1`"
++					DBUSLIBS="`$PKGCONFIG --libs dbus-1`"
++					CUPSDLIBS="$DBUSLIBS"
+ 					DBUSDIR="/etc/dbus-1/system.d"
+ 					AC_CHECK_LIB(dbus-1,
+ 					    dbus_message_iter_init_append,
+@@ -256,6 +258,7 @@
+ 
+ AC_SUBST(BACKLIBS)
+ AC_SUBST(CUPSDLIBS)
++AC_SUBST(DBUSLIBS)
+ AC_SUBST(DBUSDIR)
+ 
+ dnl New default port definition for IPP...
 --- cups-1.2.5/scheduler/subscriptions.c.eggcups	2006-09-29 03:26:29.000000000 +0100
-+++ cups-1.2.5/scheduler/subscriptions.c	2006-11-01 17:32:33.000000000 +0000
-@@ -1321,7 +1321,7 @@
++++ cups-1.2.5/scheduler/subscriptions.c	2006-11-03 09:59:16.000000000 +0000
+@@ -1321,13 +1321,14 @@
      what = "PrinterAdded";
    else if (event & CUPSD_EVENT_PRINTER_DELETED)
      what = "PrinterRemoved";
 -  else if (event & CUPSD_EVENT_PRINTER_CHANGED)
-+  else if (event & (CUPSD_EVENT_PRINTER_CHANGED|CUPSD_EVENT_JOB_STATE_CHANGED))
-     what = "QueueChanged";
+-    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)
++           job->state_value == IPP_JOB_PROCESSING &&
++	   dest && !strncmp (dest->device_uri, "ipp:", 4))
+     what = "JobStartedLocal";
++  else if (event & (CUPSD_EVENT_PRINTER_CHANGED|CUPSD_EVENT_JOB_STATE_CHANGED))
++    what = "QueueChanged";
+   else
+     return;
+ 
+@@ -1363,7 +1364,7 @@
+   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));
+--- cups-1.2.5/backend/ipp.c.eggcups	2006-09-13 19:22:34.000000000 +0100
++++ cups-1.2.5/backend/ipp.c	2006-11-03 10:02:04.000000000 +0000
+@@ -54,6 +54,70 @@
+ #include <signal.h>
+ #include <sys/wait.h>
+ 
++#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 */
+ 
+ /*
+  * Globals...
+@@ -936,6 +1000,15 @@
+       fprintf(stderr, "NOTICE: Print file accepted - job ID %d.\n", 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 */
++
+     ippDelete(response);
+ 
+     if (job_cancelled)
+--- cups-1.2.5/backend/Makefile.eggcups	2006-05-26 20:51:59.000000000 +0100
++++ cups-1.2.5/backend/Makefile	2006-11-03 09:55:31.000000000 +0000
+@@ -134,7 +134,7 @@
+ 
+ ipp:	ipp.o ../cups/$(LIBCUPS)
+ 	echo Linking $@...
+-	$(CC) $(LDFLAGS) -o ipp ipp.o $(LIBS)
++	$(CC) $(LDFLAGS) -o ipp ipp.o $(LIBS) $(DBUSLIBS)
+ 	$(RM) http
+ 	$(LN) ipp http
+ 
+--- cups-1.2.5/Makedefs.in.eggcups	2006-11-03 09:55:31.000000000 +0000
++++ cups-1.2.5/Makedefs.in	2006-11-03 09:55:31.000000000 +0000
+@@ -124,6 +124,7 @@
+ 			@LARGEFILE@ @PTHREAD_FLAGS@ $(OPTIONS)
+ COMMONLIBS	=	@LIBS@
+ CUPSDLIBS	=	@CUPSDLIBS@
++DBUSLIBS	=	@DBUSLIBS@
+ CXXFLAGS	=	-I.. $(SSLFLAGS) @CPPFLAGS@ @CXXFLAGS@ \
+ 			@LARGEFILE@ @PTHREAD_FLAGS@ $(OPTIONS)
+ CXXLIBS		=	@CXXLIBS@


Index: cups.spec
===================================================================
RCS file: /cvs/dist/rpms/cups/devel/cups.spec,v
retrieving revision 1.284
retrieving revision 1.285
diff -u -r1.284 -r1.285
--- cups.spec	2 Nov 2006 11:39:16 -0000	1.284
+++ cups.spec	3 Nov 2006 12:12:18 -0000	1.285
@@ -6,7 +6,7 @@
 Summary: Common Unix Printing System
 Name: cups
 Version: 1.2.5
-Release: 5%{?dist}
+Release: 6%{?dist}
 License: GPL
 Group: System Environment/Daemons
 Source: ftp://ftp.easysw.com/pub/cups/%{version}/cups-%{version}-source.tar.bz2
@@ -426,6 +426,10 @@
 %{cups_serverbin}/daemon/cups-lpd
 
 %changelog
+* Fri Nov  3 2006 Tim Waugh <twaugh at redhat.com> 1:1.2.5-6
+- Restore missed JobQueuedRemote D-Bus signal in ipp backend (part of
+  bug #212763).
+
 * Thu Nov  2 2006 Tim Waugh <twaugh at redhat.com>
 - LSPP patch fix (bug #213498).
 




More information about the fedora-cvs-commits mailing list