From 8e43e2536eaa8204cdc5f022764fcbc77bda9036 Mon Sep 17 00:00:00 2001 From: Tijl Coosemans Date: Fri, 13 Dec 2019 15:16:07 +0000 Subject: [PATCH] MFH: r520041 Add a patch to let the implicitclass backend run the ipp backend. This fixes printer queues for remote printers detected by cups-browsed. PR: 242615 Submitted by: J.R. Oldroyd Approved by: ports-secteam (blanket) --- print/cups-filters/Makefile | 1 + .../files/patch-backend-implicitclass.c | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 print/cups-filters/files/patch-backend-implicitclass.c diff --git a/print/cups-filters/Makefile b/print/cups-filters/Makefile index d608a02617d3..099d612aa9d5 100644 --- a/print/cups-filters/Makefile +++ b/print/cups-filters/Makefile @@ -2,6 +2,7 @@ PORTNAME= cups-filters PORTVERSION= 1.25.6 +PORTREVISION= 1 CATEGORIES= print MASTER_SITES= https://www.openprinting.org/download/cups-filters/ diff --git a/print/cups-filters/files/patch-backend-implicitclass.c b/print/cups-filters/files/patch-backend-implicitclass.c new file mode 100644 index 000000000000..25e90f3e9c1b --- /dev/null +++ b/print/cups-filters/files/patch-backend-implicitclass.c @@ -0,0 +1,29 @@ +--- backend/implicitclass.c.orig 2019-11-29 20:18:29 UTC ++++ backend/implicitclass.c +@@ -98,7 +98,7 @@ main(int argc, /* I - Number of command-line args + ipp_attribute_t *attr; + int bytes; /* Bytes copied */ + char uri[HTTP_MAX_URI]; +- char *argv_nt[7]; ++ char *argv_nt[8]; + int outbuflen,filefd,exit_status,dup_status; + static const char *pattrs[] = + { +@@ -350,6 +350,7 @@ main(int argc, /* I - Number of command-line args + /* We will send the filtered output of the pdftoippprinter.c to + the IPP Backend*/ + argv_nt[6] = tempfile_filter; ++ argv_nt[7] = NULL; + fprintf(stderr, "DEBUG: The filtered output of pdftoippprinter is written to file %s\n", + tempfile_filter); + +@@ -383,7 +384,8 @@ main(int argc, /* I - Number of command-line args + pid_t pid = fork(); + if ( pid == 0 ) { + fprintf(stderr, "DEBUG: Started IPP Backend with pid: %d\n",getpid()); +- execv("/usr/lib/cups/backend/ipp",argv_nt); ++ execv(CUPS_SERVERBIN "/backend/ipp",argv_nt); ++ exit(CUPS_BACKEND_FAILED); + } else { + int status; + waitpid(pid, &status, 0);