packages: cups/cups.spec, cups/cups-branch.diff (NEW) - rel 3; branch diff ...

arekm arekm at pld-linux.org
Sun Sep 6 13:26:07 CEST 2009


Author: arekm                        Date: Sun Sep  6 11:26:07 2009 GMT
Module: packages                      Tag: HEAD
---- Log message:
- rel 3; branch diff fixes

---- Files affected:
packages/cups:
   cups.spec (1.266 -> 1.267) , cups-branch.diff (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/cups/cups.spec
diff -u packages/cups/cups.spec:1.266 packages/cups/cups.spec:1.267
--- packages/cups/cups.spec:1.266	Sat Aug 29 23:36:33 2009
+++ packages/cups/cups.spec	Sun Sep  6 13:26:02 2009
@@ -15,7 +15,7 @@
 Summary(pt_BR.UTF-8):	Sistema Unix de Impressão
 Name:		cups
 Version:	1.4.0
-Release:	2
+Release:	3
 Epoch:		1
 License:	LGPL v2 (libraries), GPL v2 (the rest) + openssl exception
 Group:		Applications/Printing
@@ -26,6 +26,9 @@
 Source3:	%{name}.logrotate
 Source4:	%{name}.mailto.conf
 Source5:	%{name}-lpd.inetd
+# svn diff http://svn.easysw.com/public/cups/tags/release-1.4.0/ http://svn.easysw.com/public/cups/branches/branch-1.4/ > cups-branch.diff
+# + drop config-scripts/cups-common.m4 change
+Patch100:	%{name}-branch.diff
 Patch0:		%{name}-config.patch
 Patch2:		%{name}-options.patch
 Patch3:		%{name}-man_pages_linking.patch
@@ -326,6 +329,7 @@
 
 %prep
 %setup -q
+%patch100 -p0
 %patch0 -p1
 %patch2 -p1
 %patch3 -p1
@@ -743,6 +747,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.267  2009/09/06 11:26:02  arekm
+- rel 3; branch diff fixes
+
 Revision 1.266  2009/08/29 21:36:33  arekm
 - rel 2
 

================================================================
Index: packages/cups/cups-branch.diff
diff -u /dev/null packages/cups/cups-branch.diff:1.1
--- /dev/null	Sun Sep  6 13:26:07 2009
+++ packages/cups/cups-branch.diff	Sun Sep  6 13:26:02 2009
@@ -0,0 +1,1436 @@
+Index: conf/cupsd.conf.in
+===================================================================
+--- conf/cupsd.conf.in	(.../tags/release-1.4.0)	(wersja 8809)
++++ conf/cupsd.conf.in	(.../branches/branch-1.4)	(wersja 8809)
+@@ -1,9 +1,8 @@
+ #
+ # "$Id$"
+ #
+-#   Sample configuration file for the Common UNIX Printing System (CUPS)
+-#   scheduler.  See "man cupsd.conf" for a complete description of this
+-#   file.
++# Sample configuration file for the CUPS scheduler.  See "man cupsd.conf" for a
++# complete description of this file.
+ #
+ 
+ # Log general information in error_log - change "@CUPS_LOG_LEVEL@" to "debug"
+Index: conf/mime.types
+===================================================================
+--- conf/mime.types	(.../tags/release-1.4.0)	(wersja 8809)
++++ conf/mime.types	(.../branches/branch-1.4)	(wersja 8809)
+@@ -95,7 +95,7 @@
+ 
+ image/gif			gif string(0,GIF87a) string(0,GIF89a)
+ image/png			png string(0,<89>PNG)
+-image/jpeg			jpeg jpg jpe string(0,<FFD8FF>) &&\
++image/jpeg			jpeg jpg jpe string(0,<FFD8FF>) +\
+ 				(char(3,0xe0) char(3,0xe1) char(3,0xe2) char(3,0xe3)\
+ 				 char(3,0xe4) char(3,0xe5) char(3,0xe6) char(3,0xe7)\
+ 				 char(3,0xe8) char(3,0xe9) char(3,0xea) char(3,0xeb)\
+@@ -114,7 +114,7 @@
+ 
+ #image/fpx			fpx
+ image/x-alias			pix short(8,8) short(8,24)
+-image/x-bitmap			bmp string(0,BM) && !printable(2,14)
++image/x-bitmap			bmp string(0,BM) + !printable(2,14)
+ image/x-icon			ico
+ 
+ ########################################################################
+Index: backend/runloop.c
+===================================================================
+--- backend/runloop.c	(.../tags/release-1.4.0)	(wersja 8809)
++++ backend/runloop.c	(.../branches/branch-1.4)	(wersja 8809)
+@@ -147,7 +147,7 @@
+     int         snmp_fd,		/* I - SNMP socket or -1 if none */
+     http_addr_t *addr,			/* I - Address of device */
+     int         use_bc,			/* I - Use back-channel? */
+-    void        (*side_cb)(int, int, int, http_addr_t *, int))
++    int         (*side_cb)(int, int, int, http_addr_t *, int))
+ 					/* I - Side-channel callback */
+ {
+   int		nfds;			/* Maximum file descriptor value + 1 */
+@@ -274,7 +274,8 @@
+       * loop since it may have read from print_fd...
+       */
+ 
+-      (*side_cb)(print_fd, device_fd, snmp_fd, addr, use_bc);
++      if ((*side_cb)(print_fd, device_fd, snmp_fd, addr, use_bc))
++        side_cb = NULL;
+       continue;
+     }
+ 
+Index: backend/backend-private.h
+===================================================================
+--- backend/backend-private.h	(.../tags/release-1.4.0)	(wersja 8809)
++++ backend/backend-private.h	(.../branches/branch-1.4)	(wersja 8809)
+@@ -276,16 +276,16 @@
+ extern int		backendGetMakeModel(const char *device_id,
+ 			                    char *make_model,
+ 				            int make_model_size);
+-extern void		backendNetworkSideCB(int print_fd, int device_fd,
++extern int		backendNetworkSideCB(int print_fd, int device_fd,
+ 			                     int snmp_fd, http_addr_t *addr,
+ 					     int use_bc);
+ extern ssize_t		backendRunLoop(int print_fd, int device_fd, int snmp_fd,
+ 			               http_addr_t *addr, int use_bc,
+-				       void (*side_cb)(int print_fd,
+-				                       int device_fd,
+-						       int snmp_fd,
+-						       http_addr_t *addr,
+-						       int use_bc));
++				       int (*side_cb)(int print_fd,
++				                      int device_fd,
++						      int snmp_fd,
++						      http_addr_t *addr,
++						      int use_bc));
+ extern int		backendSNMPSupplies(int snmp_fd, http_addr_t *addr,
+ 			                    int *page_count,
+ 					    int *printer_state);
+Index: backend/usb-libusb.c
+===================================================================
+--- backend/usb-libusb.c	(.../tags/release-1.4.0)	(wersja 8809)
++++ backend/usb-libusb.c	(.../branches/branch-1.4)	(wersja 8809)
+@@ -179,7 +179,12 @@
+       }
+ 
+       if (pfds[1].revents & POLLIN)
+-        tbytes += side_cb(printer, print_fd);
++      {
++        if ((bytes = side_cb(printer, print_fd)) < 0)
++	  pfds[1].events = 0;		/* Filter has gone away... */
++	else
++          tbytes += bytes;
++      }
+     }
+   }
+ 
+@@ -745,10 +750,7 @@
+   datalen = sizeof(data);
+ 
+   if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
+-  {
+-    _cupsLangPuts(stderr, _("WARNING: Failed to read side-channel request!\n"));
+-    return (0);
+-  }
++    return (-1);
+ 
+   switch (command)
+   {
+Index: backend/usb-unix.c
+===================================================================
+--- backend/usb-unix.c	(.../tags/release-1.4.0)	(wersja 8809)
++++ backend/usb-unix.c	(.../branches/branch-1.4)	(wersja 8809)
+@@ -36,7 +36,7 @@
+  */
+ 
+ static int	open_device(const char *uri, int *use_bc);
+-static void	side_cb(int print_fd, int device_fd, int snmp_fd,
++static int	side_cb(int print_fd, int device_fd, int snmp_fd,
+ 		        http_addr_t *addr, int use_bc);
+ 
+ 
+@@ -579,10 +579,7 @@
+   datalen = sizeof(data);
+ 
+   if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
+-  {
+-    _cupsLangPuts(stderr, _("WARNING: Failed to read side-channel request!\n"));
+-    return;
+-  }
++    return (-1);
+ 
+   switch (command)
+   {
+@@ -625,7 +622,7 @@
+ 	break;
+   }
+ 
+-  cupsSideChannelWrite(command, status, data, datalen, 1.0);
++  return (cupsSideChannelWrite(command, status, data, datalen, 1.0));
+ }
+ 
+ 
+Index: backend/usb-darwin.c
+===================================================================
+--- backend/usb-darwin.c	(.../tags/release-1.4.0)	(wersja 8809)
++++ backend/usb-darwin.c	(.../branches/branch-1.4)	(wersja 8809)
+@@ -292,9 +292,8 @@
+ #if defined(__i386__) || defined(__x86_64__)
+ static pid_t	child_pid;		/* Child PID */
+ static void run_legacy_backend(int argc, char *argv[], int fd);	/* Starts child backend process running as a ppc executable */
+-#endif /* __i386__ || __x86_64__ */
+-static int	job_canceled = 0;	/* Was the job canceled? */
+ static void sigterm_handler(int sig);	/* SIGTERM handler */
++#endif /* __i386__ || __x86_64__ */
+ 
+ #ifdef PARSE_PS_ERRORS
+ static const char *next_line (const char *buffer);
+@@ -461,9 +460,9 @@
+   fputs("STATE: -connecting-to-device\n", stderr);
+ 
+   /*
+-   * Now that we are "connected" to the port, catch SIGTERM so that we
++   * Now that we are "connected" to the port, ignore SIGTERM so that we
+    * can finish out any page data the driver sends (e.g. to eject the
+-   * current page...  Only catch SIGTERM if we are printing data from
++   * current page...  Only ignore SIGTERM if we are printing data from
+    * stdin (otherwise you can't cancel raw jobs...)
+    */
+ 
+@@ -475,7 +474,7 @@
+     memset(&action, 0, sizeof(action));
+ 
+     sigemptyset(&action.sa_mask);
+-    action.sa_handler = sigterm_handler;
++    action.sa_handler = SIG_IGN;
+     sigaction(SIGTERM, &action, NULL);
+   }
+ 
+@@ -725,7 +724,7 @@
+ 	  fprintf(stderr, "DEBUG: USB class driver Abort returned %x\n",
+ 	          err);
+ 
+-	  status = job_canceled ? CUPS_BACKEND_FAILED : CUPS_BACKEND_STOP;
++	  status = CUPS_BACKEND_FAILED;
+ 	  break;
+ 	}
+ 	else if (bytes > 0)
+@@ -944,7 +943,7 @@
+     datalen = sizeof(data);
+ 
+     if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
+-      continue;
++      break;
+ 
+     switch (command)
+     {
+@@ -2020,9 +2019,7 @@
+ 
+   exit(exitstatus);
+ }
+-#endif /* __i386__ || __x86_64__ */
+ 
+-
+ /*
+  * 'sigterm_handler()' - SIGTERM handler.
+  */
+@@ -2030,7 +2027,8 @@
+ static void
+ sigterm_handler(int sig)		/* I - Signal */
+ {
+-#if defined(__i386__) || defined(__x86_64__)
++  /* If we started a child process pass the signal on to it...
++   */
+   if (child_pid)
+   {
+    /*
+@@ -2052,16 +2050,11 @@
+       exit(CUPS_BACKEND_STOP);
+     }
+   }
+-#endif /* __i386__ || __x86_64__ */
+-
+- /*
+-  * Otherwise just flag that the job has been canceled...
+-  */
+-
+-  job_canceled = 1;
+ }
+ 
++#endif /* __i386__ || __x86_64__ */
+ 
++
+ #ifdef PARSE_PS_ERRORS
+ /*
+  * 'next_line()' - Find the next line in a buffer.
+Index: backend/serial.c
+===================================================================
+--- backend/serial.c	(.../tags/release-1.4.0)	(wersja 8809)
++++ backend/serial.c	(.../branches/branch-1.4)	(wersja 8809)
+@@ -84,7 +84,7 @@
+  */
+ 
+ static void	list_devices(void);
+-static void	side_cb(int print_fd, int device_fd, int use_bc);
++static int	side_cb(int print_fd, int device_fd, int use_bc);
+ 
+ 
+ /*
+@@ -109,7 +109,8 @@
+ 		sep;			/* Option separator */
+   int		port;			/* Port number (not used) */
+   int		copies;			/* Number of copies to print */
+-  int		print_fd,		/* Print file */
++  int		side_eof = 0,		/* Saw EOF on side-channel? */
++		print_fd,		/* Print file */
+ 		device_fd;		/* Serial device */
+   int		nfds;			/* Maximum file descriptor value + 1 */
+   fd_set	input,			/* Input set for reading */
+@@ -558,7 +559,7 @@
+       if (!print_bytes)
+ 	FD_SET(print_fd, &input);
+       FD_SET(device_fd, &input);
+-      if (!print_bytes)
++      if (!print_bytes && !side_eof)
+         FD_SET(CUPS_SC_FD, &input);
+ 
+       FD_ZERO(&output);
+@@ -579,7 +580,8 @@
+ 	* loop since it may have read from print_fd...
+ 	*/
+ 
+-        side_cb(print_fd, device_fd, 1);
++        if (side_cb(print_fd, device_fd, 1))
++	  side_eof = 1;
+ 	continue;
+       }
+ 
+@@ -1278,7 +1280,7 @@
+  * 'side_cb()' - Handle side-channel requests...
+  */
+ 
+-static void
++static int				/* O - 0 on success, -1 on error */
+ side_cb(int print_fd,			/* I - Print file */
+         int device_fd,			/* I - Device file */
+ 	int use_bc)			/* I - Using back-channel? */
+@@ -1292,11 +1294,7 @@
+   datalen = sizeof(data);
+ 
+   if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
+-  {
+-    _cupsLangPuts(stderr,
+-                  _("WARNING: Failed to read side-channel request!\n"));
+-    return;
+-  }
++    return (-1);
+ 
+   switch (command)
+   {
+@@ -1323,7 +1321,7 @@
+ 	break;
+   }
+ 
+-  cupsSideChannelWrite(command, status, data, datalen, 1.0);
++  return (cupsSideChannelWrite(command, status, data, datalen, 1.0));
+ }
+ 
+ 
+Index: backend/snmp-supplies.c
+===================================================================
+--- backend/snmp-supplies.c	(.../tags/release-1.4.0)	(wersja 8809)
++++ backend/snmp-supplies.c	(.../branches/branch-1.4)	(wersja 8809)
+@@ -229,8 +229,11 @@
+         packet.object_type != CUPS_ASN1_OCTET_STRING)
+       return (-1);
+ 
+-    new_state = (packet.object_value.string.bytes[0] << 8) |
+-		packet.object_value.string.bytes[1];
++    if (packet.object_value.string.num_bytes == 2)
++      new_state = (packet.object_value.string.bytes[0] << 8) |
++		  packet.object_value.string.bytes[1];
++    else
++      new_state = 0;
+ 
+     if (current_state < 0)
+       change_state = 0xffff;
+Index: backend/pap.c
+===================================================================
+--- backend/pap.c	(.../tags/release-1.4.0)	(wersja 8809)
++++ backend/pap.c	(.../branches/branch-1.4)	(wersja 8809)
+@@ -1278,7 +1278,7 @@
+  * 'sidechannel_request()' - Handle side-channel requests.
+  */
+ 
+-static void
++static int
+ sidechannel_request()
+ {
+   cups_sc_command_t	command;	/* Request command */
+@@ -1289,32 +1289,29 @@
+   datalen = sizeof(data);
+ 
+   if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
+-  {
+-    fputs(_("WARNING: Failed to read side-channel request!\n"), stderr);
+-    return;
+-  }
++    return (-1);
+ 
+   switch (command)
+   {
+     case CUPS_SC_CMD_GET_BIDI:		/* Is the connection bidirectional? */
+ 	data[0] = 1;
+-	cupsSideChannelWrite(command, CUPS_SC_STATUS_OK, data, 1, 1.0);
++	return (cupsSideChannelWrite(command, CUPS_SC_STATUS_OK, data, 1, 1.0));
+ 	break;
+ 
+     case CUPS_SC_CMD_GET_STATE:		/* Return device state */
+ 	data[0] = CUPS_SC_STATE_ONLINE;
+-	cupsSideChannelWrite(command, CUPS_SC_STATUS_OK, data, 1, 1.0);
++	return (cupsSideChannelWrite(command, CUPS_SC_STATUS_OK, data, 1, 1.0));
+ 	break;
+ 
+     case CUPS_SC_CMD_DRAIN_OUTPUT:	/* Drain all pending output */
+     case CUPS_SC_CMD_SOFT_RESET:	/* Do a soft reset */
+     case CUPS_SC_CMD_GET_DEVICE_ID:	/* Return IEEE-1284 device ID */
+     default:
+-	cupsSideChannelWrite(command, CUPS_SC_STATUS_NOT_IMPLEMENTED, 
+-			     NULL, 0, 1.0);
++	return (cupsSideChannelWrite(command, CUPS_SC_STATUS_NOT_IMPLEMENTED, 
++			             NULL, 0, 1.0));
+ 	break;
+   }
+-  return;
++  return (0);
+ }
+ 
+ 
+Index: backend/ipp.c
+===================================================================
+--- backend/ipp.c	(.../tags/release-1.4.0)	(wersja 8809)
++++ backend/ipp.c	(.../branches/branch-1.4)	(wersja 8809)
+@@ -45,6 +45,8 @@
+ 
+ static char	*password = NULL;	/* Password for device URI */
+ static int	password_tries = 0;	/* Password tries */
++static const char *auth_info_required = "none";
++					/* New auth-info-required value */
+ #ifdef __APPLE__
+ static char	pstmpname[1024] = "";	/* Temporary PostScript file name */
+ #endif /* __APPLE__ */
+@@ -1049,16 +1051,21 @@
+         _cupsLangPrintf(stderr, _("ERROR: Print file was not accepted (%s)!\n"),
+ 			cupsLastErrorString());
+ 
+-	if (ipp_status == IPP_NOT_AUTHORIZED)
++	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))
+-	    fputs("ATTR: auth-info-required=negotiate\n", stderr);
+-	  else
+-	    fputs("ATTR: auth-info-required=username,password\n", stderr);
++	    auth_info_required = "negotiate";
+ 	}
+       }
+     }
+@@ -1239,6 +1246,19 @@
+ 	    break;
+ 	  }
+ 	}
++	else
++	{
++	 /*
++	  * If the printer does not return a job-state attribute, it does not
++	  * conform to the IPP specification - break out immediately and fail
++	  * the job...
++	  */
++
++          fputs("DEBUG: No job-state available from printer - stopping queue.\n",
++	        stderr);
++	  ipp_status = IPP_INTERNAL_ERROR;
++	  break;
++	}
+       }
+ 
+       ippDelete(response);
+@@ -1283,7 +1303,16 @@
+       page_count > start_count)
+     fprintf(stderr, "PAGE: total %d\n", page_count - start_count);
+ 
++#ifdef HAVE_GSSAPI
+  /*
++  * See if we used Kerberos at all...
++  */
++
++  if (http->gssctx)
++    auth_info_required = "negotiate";
++#endif /* HAVE_GSSAPI */
++
++ /*
+   * Free memory...
+   */
+ 
+@@ -1315,8 +1344,12 @@
+   * Return the queue status...
+   */
+ 
+-  if (ipp_status == IPP_NOT_AUTHORIZED)
++  fprintf(stderr, "ATTR: auth-info-required=%s\n", auth_info_required);
++
++  if (ipp_status == IPP_NOT_AUTHORIZED || ipp_status == IPP_FORBIDDEN)
+     return (CUPS_BACKEND_AUTH_REQUIRED);
++  else if (ipp_status == IPP_INTERNAL_ERROR)
++    return (CUPS_BACKEND_STOP);
+   else if (ipp_status > IPP_OK_CONFLICT)
+     return (CUPS_BACKEND_FAILED);
+   else
+@@ -1517,6 +1550,12 @@
+ {
+   (void)prompt;
+ 
++ /*
++  * Remember that we need to authenticate...
++  */
++
++  auth_info_required = "username,password";
++
+   if (password && *password && password_tries < 3)
+   {
+     password_tries ++;
+@@ -1526,23 +1565,10 @@
+   else
+   {
+    /*
+-    * If there is no password set in the device URI, return the
+-    * "authentication required" exit code...
++    * Give up after 3 tries or if we don't have a password to begin with...
+     */
+ 
+-    if (tmpfilename[0])
+-      unlink(tmpfilename);
+-
+-#ifdef __APPLE__
+-    if (pstmpname[0])
+-      unlink(pstmpname);
+-#endif /* __APPLE__ */
+-
+-    fputs("ATTR: auth-info-required=username,password\n", stderr);
+-
+-    exit(CUPS_BACKEND_AUTH_REQUIRED);
+-
+-    return (NULL);			/* Eliminate compiler warning */
++    return (NULL);
+   }
+ }
+ 
+Index: backend/network.c
+===================================================================
+--- backend/network.c	(.../tags/release-1.4.0)	(wersja 8809)
++++ backend/network.c	(.../branches/branch-1.4)	(wersja 8809)
+@@ -61,7 +61,7 @@
+  * 'backendNetworkSideCB()' - Handle common network side-channel commands.
+  */
+ 
+-void
++int					/* O - -1 on error, 0 on success */
+ backendNetworkSideCB(
+     int         print_fd,		/* I - Print file or -1 */
+     int         device_fd,		/* I - Device file or -1 */
+@@ -79,10 +79,7 @@
+   datalen = sizeof(data);
+ 
+   if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
+-  {
+-    _cupsLangPuts(stderr, _("WARNING: Failed to read side-channel request!\n"));
+-    return;
+-  }
++    return (-1);
+ 
+   switch (command)
+   {
+@@ -284,7 +281,7 @@
+ 	break;
+   }
+ 
+-  cupsSideChannelWrite(command, status, data, datalen, 1.0);
++  return (cupsSideChannelWrite(command, status, data, datalen, 1.0));
+ }
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/cups/cups.spec?r1=1.266&r2=1.267&f=u



More information about the pld-cvs-commit mailing list