Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 20 Apr 2014 20:02:06 +0000 (UTC)
From:      Antoine Brodin <antoine@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r351638 - in head/print/p5-Net-CUPS: . files
Message-ID:  <201404202002.s3KK26V1016004@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: antoine
Date: Sun Apr 20 20:02:06 2014
New Revision: 351638
URL: http://svnweb.freebsd.org/changeset/ports/351638
QAT: https://qat.redports.org/buildarchive/r351638/

Log:
  Unbreak with new cups
  
  PR:		ports/188451
  Obtained from:	https://rt.cpan.org/Public/Bug/Display.html?id=78583
  With hat:	portmgr

Added:
  head/print/p5-Net-CUPS/files/
  head/print/p5-Net-CUPS/files/patch-CUPS.xs   (contents, props changed)
Modified:
  head/print/p5-Net-CUPS/Makefile

Modified: head/print/p5-Net-CUPS/Makefile
==============================================================================
--- head/print/p5-Net-CUPS/Makefile	Sun Apr 20 19:41:54 2014	(r351637)
+++ head/print/p5-Net-CUPS/Makefile	Sun Apr 20 20:02:06 2014	(r351638)
@@ -12,7 +12,8 @@ MAINTAINER=	vg@FreeBSD.org
 COMMENT=	Interface to the CUPS API
 
 BUILD_DEPENDS=	cups-config:${PORTSDIR}/print/cups-client
-LIB_DEPENDS=	libcupsimage.so:${PORTSDIR}/print/cups-image
+LIB_DEPENDS=	libcupsimage.so:${PORTSDIR}/print/cups-image \
+		libcupsfilters.so:${PORTSDIR}/print/cups-filters
 
 USES=		perl5
 USE_PERL5=	configure

Added: head/print/p5-Net-CUPS/files/patch-CUPS.xs
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/p5-Net-CUPS/files/patch-CUPS.xs	Sun Apr 20 20:02:06 2014	(r351638)
@@ -0,0 +1,165 @@
+Patch obtained from: https://rt.cpan.org/Public/Bug/Display.html?id=78583
+
+--- ./CUPS.xs.orig	2009-07-30 13:42:59.000000000 +0000
++++ ./CUPS.xs	2014-04-20 19:18:15.000000000 +0000
+@@ -5,9 +5,17 @@
+ #include "ppport.h"
+ 
+ #include <cups/cups.h>
++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
++#define HAVE_CUPS_1_6 1
++#endif
++
+ /*#include <cups/backend.h>*/
+ #include <cups/http.h>
+-#include <cups/image.h>
++#ifdef HAVE_CUPS_1_6
++ #include <cupsfilters/image.h>
++#else
++ #include <cups/image.h>
++#endif
+ #include <cups/ipp.h>
+ #include <cups/ppd.h>
+ #include <cups/file.h>
+@@ -19,6 +27,17 @@
+ #include "const-c.inc"
+ #include "packer.c"
+ 
++#ifndef HAVE_CUPS_1_6
++#define ippGetGroupTag(attr)  attr->group_tag
++#define ippGetName(attr)      attr->name
++#define ippGetValueTag(attr)  attr->value_tag
++#define ippGetInteger(attr, element) attr->values[element].integer
++#define ippGetString(attr, element, language) attr->values[element].string.text
++#define ippGetStatusCode(ipp)  ipp->request.status.status_code
++#define ippFirstAttribute(ipp) ipp->current = ipp->attrs
++#define ippNextAttribute(ipp)  ipp->current = ipp->current->next
++#endif
++
+ static SV *password_cb = (SV*) NULL;
+ 
+ const char *
+@@ -200,7 +219,7 @@
+ 		if (response != NULL) {
+ 			attr = ippFindAttribute(response, "ppd-make", IPP_TAG_TEXT); 
+ 			rv = sv_newmortal();
+-			sv_setpv(rv, attr->values[0].string.text);
++			sv_setpv(rv, ippGetString(attr, 0, NULL));
+ 			XPUSHs(rv);
+ 			count++;
+ 
+@@ -211,7 +230,7 @@
+ 				}
+ 
+ 				rv = sv_newmortal();
+-				sv_setpv(rv, attr->values[0].string.text);
++				sv_setpv(rv, ippGetString(attr, 0, NULL));
+ 				XPUSHs(rv);
+ 				count++;
+ 			}			
+@@ -252,7 +271,7 @@
+ 									"ppd-make-and-model", 
+ 									IPP_TAG_TEXT); 
+ 			rv = sv_newmortal();
+-			sv_setpv(rv, attr->values[0].string.text);
++			sv_setpv(rv, ippGetString(attr, 0, NULL));
+ 			XPUSHs(rv);
+ 			count++;
+ 			while (attr != NULL) {
+@@ -263,7 +282,7 @@
+ 					break;
+ 				}
+ 				rv = sv_newmortal();
+-				sv_setpv(rv, attr->values[0].string.text);
++				sv_setpv(rv, ippGetString(attr, 0, NULL));
+ 				XPUSHs(rv);
+ 				count++;
+ 			}			
+@@ -356,14 +375,14 @@
+ 		if (response != NULL) {
+ 			attr = ippFindAttribute(response, "ppd-name", IPP_TAG_NAME );
+ 			while ((attr != NULL) && (i < 1)) {
+-				tmpppd = attr->values[0].string.text;	
++				tmpppd = ippGetString(attr, 0, NULL);	
+ 				attr = ippFindNextAttribute(response, 
+ 											"ppd-make", 
+ 											IPP_TAG_TEXT);
+ 				attr = ippFindNextAttribute(response, 
+ 											"ppd-make-and-model", 
+ 											IPP_TAG_TEXT);
+-				if (strcmp(attr->values[0].string.text, ppdfilename) == 0 ) {
++				if (strcmp(ippGetString(attr, 0, NULL), ppdfilename) == 0 ) {
+ 					/* return tmpppd; */
+ 					strcpy(test, tmpppd);	
+ 					break;	
+@@ -410,12 +429,12 @@
+ 			attr = ippFindNextAttribute(response, "printer-name", IPP_TAG_NAME);
+ 
+ 			while (attr != NULL) {
+-				if (strcmp(attr->values[0].string.text, device) == 0) { 
++				if (strcmp(ippGetString(attr, 0, NULL), device) == 0) { 
+ 					attr = ippFindNextAttribute( response, 
+ 												 attribute, 
+ 												 attribute_type);
+ 					rv = sv_newmortal();  
+-					sv_setpv( rv, attr->values[0].string.text); 
++					sv_setpv( rv, ippGetString(attr, 0, NULL)); 
+ 					XPUSHs( rv );
+ 					break;	
+ 				}					
+@@ -858,15 +877,15 @@
+ 		SV* rv = NULL;
+ 		int count = 0;
+ 		ipp_attribute_t* attr = NULL;
+-		for (attr = ipp->attrs; attr != NULL; attr = attr->next)
++		for (attr = ippFirstAttribute(ipp); attr != NULL; attr = ippNextAttribute(ipp))
+ 		{
+-			while (attr != NULL && attr->group_tag != IPP_TAG_JOB)
+- 		       attr = attr->next;
++			while (attr != NULL && ippGetGroupTag(attr) != IPP_TAG_JOB)
++ 		       attr = ippNextAttribute(ipp);
+ 
+ 			if (attr == NULL)
+ 				break;
+ 			rv = sv_newmortal();
+-			sv_setpv( rv, attr->name );
++			sv_setpv( rv, ippGetName(attr) );
+ 			XPUSHs( rv );
+ 			count++;
+ 		}
+@@ -880,27 +899,27 @@
+ 		SV* rv = NULL;
+ 		int count = 0;
+ 		ipp_attribute_t* attr = NULL;
+-		for (attr = ipp->attrs; attr != NULL; attr = attr->next)
++		for (attr = ippFirstAttribute(ipp); attr != NULL; attr = ippNextAttribute(ipp))
+ 		{
+-			while (attr != NULL && attr->group_tag != IPP_TAG_JOB)
+- 		       attr = attr->next;
++			while (attr != NULL && ippGetGroupTag(attr) != IPP_TAG_JOB)
++ 		       attr = ippNextAttribute(ipp);
+ 
+ 			if (attr == NULL)
+ 				break;
+ 
+-			if( !strcmp( attr->name, name ) )
++			if( !strcmp( ippGetName(attr), name ) )
+ 			{
+ 				rv = sv_newmortal();
+-				if( ( attr->value_tag == IPP_TAG_INTEGER ) ||
+-					( attr->value_tag == IPP_TAG_ENUM ) )
++				if( ( ippGetValueTag(attr) == IPP_TAG_INTEGER ) ||
++					( ippGetValueTag(attr) == IPP_TAG_ENUM ) )
+ 				{
+ 					/* We have a number with any luck ... */
+-					sv_setiv( rv, attr->values[0].integer );
++					sv_setiv( rv, ippGetInteger(attr, 0) );
+ 				}
+ 				else
+ 				{
+ 					/* We have a string ... maybe ... try to set it. */
+-					sv_setpv( rv, attr->values[0].string.text );
++					sv_setpv( rv, ippGetString(attr, 0, NULL) );
+ 				}
+ 
+ 				XPUSHs( rv );



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201404202002.s3KK26V1016004>