summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbouyer <bouyer@pkgsrc.org>2018-07-24 12:19:21 +0000
committerbouyer <bouyer@pkgsrc.org>2018-07-24 12:19:21 +0000
commitcae26919602f280e15b2e3c58891b87c91b0020c (patch)
tree8ac9cd516f880f79a9f2c356c62751d62e11fe6b
parentbfc906d073db30088d13173dcc806d94473de47d (diff)
downloadpkgsrc-cae26919602f280e15b2e3c58891b87c91b0020c.tar.gz
Add patches from debian to support basic airprint.
Some details about airprint are in https://wiki.debian.org/AirPrint Proposed on tech-pkg@ on Jul 20 Bump PKGREVISION
-rw-r--r--print/cups-base/Makefile4
-rw-r--r--print/cups-base/distinfo6
-rw-r--r--print/cups-base/patches/patch-airprint-conf_mime.convs.in37
-rw-r--r--print/cups-base/patches/patch-airprint-scheduler_conf.c36
-rw-r--r--print/cups-base/patches/patch-airprint-scheduler_dirsvc.c40
-rw-r--r--print/cups-base/patches/patch-airprint-scheduler_printers.c152
6 files changed, 272 insertions, 3 deletions
diff --git a/print/cups-base/Makefile b/print/cups-base/Makefile
index 573d2cf1cbb..dc3908b82f6 100644
--- a/print/cups-base/Makefile
+++ b/print/cups-base/Makefile
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.12 2018/07/04 13:40:33 jperkin Exp $
+# $NetBSD: Makefile,v 1.13 2018/07/24 12:19:21 bouyer Exp $
.include "../../print/cups/Makefile.common"
-PKGREVISION=1
+PKGREVISION=2
DISTNAME= cups-${CUPS_VERS}-source
PKGNAME= cups-base-${CUPS_VERS}
diff --git a/print/cups-base/distinfo b/print/cups-base/distinfo
index 469e74e9151..997eaa583a5 100644
--- a/print/cups-base/distinfo
+++ b/print/cups-base/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.8 2018/07/09 13:53:34 youri Exp $
+$NetBSD: distinfo,v 1.9 2018/07/24 12:19:21 bouyer Exp $
SHA1 (cups-2.2.8-source.tar.gz) = f8c572d5b2405091e3be6836523a6abdda645f60
RMD160 (cups-2.2.8-source.tar.gz) = 79bc052e3f70408a698bfbe2556b53d2f0140b2c
@@ -7,6 +7,10 @@ Size (cups-2.2.8-source.tar.gz) = 10374921 bytes
SHA1 (patch-ae) = f34ec899f4816bdcf96ff315e001e3ac5a960200
SHA1 (patch-af) = 6ae6ae6006387db69bf7c15f7c8500708c9e8f56
SHA1 (patch-ai) = 2c1ca67ea6f6c1dedb4c8ff97736f328a2b9a7c6
+SHA1 (patch-airprint-conf_mime.convs.in) = 413a5ef448ab42858db804cfbfc1b8ff5b6bbf77
+SHA1 (patch-airprint-scheduler_conf.c) = f54ba16cc32dc09cd5bd8e864e1510ed2a84d6ed
+SHA1 (patch-airprint-scheduler_dirsvc.c) = bef4ea8e898dffc67c4866baa701e12570eb6fca
+SHA1 (patch-airprint-scheduler_printers.c) = 7fc0157f990a6e4dfa04c0b2c5684422229af725
SHA1 (patch-at) = ef6303936daf0826dc4725f5369bfb1add832b1f
SHA1 (patch-conf-cups-files.conf.in) = 327cc8b62e606389542870aa6619ade10377b044
SHA1 (patch-conf_Makefile) = bb8313e493c02959edfe1e53f50b9f16ce6f42e0
diff --git a/print/cups-base/patches/patch-airprint-conf_mime.convs.in b/print/cups-base/patches/patch-airprint-conf_mime.convs.in
new file mode 100644
index 00000000000..1b79bc1aeb1
--- /dev/null
+++ b/print/cups-base/patches/patch-airprint-conf_mime.convs.in
@@ -0,0 +1,37 @@
+$NetBSD: patch-airprint-conf_mime.convs.in,v 1.1 2018/07/24 12:19:21 bouyer Exp $
+
+From bbc3507a260d29db3fc5601826f33c10f9dccd1e Mon Sep 17 00:00:00 2001
+From: Till Kamppeter <till.kamppeter@gmail.com>
+Date: Tue, 9 Aug 2016 18:11:29 +0200
+Subject: Patch to support Apple AirPrint (printing from iPhone, iPad, iPod
+ Touch to a CUPS server)
+
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/711779
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1054495
+Bug-Debian: http://bugs.debian.org/700961
+Bug: https://cups.org/str.php?L4341
+Last-Update: 2015-02-10
+
+Patch-Name: airprint-support.patch
+---
+ conf/mime.convs.in | 3 +++
+ conf/mime.types | 3 +++
+ scheduler/conf.c | 2 +-
+ scheduler/dirsvc.c | 6 ++++++
+ scheduler/printers.c | 4 +++-
+ 5 files changed, 16 insertions(+), 2 deletions(-)
+
+diff --git a/conf/mime.convs.in b/conf/mime.convs.in
+index bffd04f84..33ce812e3 100644
+--- conf/mime.convs.in.orig
++++ conf/mime.convs.in
+@@ -47,6 +47,9 @@ application/postscript application/vnd.cups-postscript 66 pstops
+ application/vnd.cups-raster image/pwg-raster 100 rastertopwg
+ application/vnd.cups-raster image/urf 100 rastertopwg
+
++# Needed for printing from iOS (AirPrint) clients
++image/urf application/pdf 100 -
++
+ ########################################################################
+ #
+ # Raw filter...
diff --git a/print/cups-base/patches/patch-airprint-scheduler_conf.c b/print/cups-base/patches/patch-airprint-scheduler_conf.c
new file mode 100644
index 00000000000..3fa80423d4f
--- /dev/null
+++ b/print/cups-base/patches/patch-airprint-scheduler_conf.c
@@ -0,0 +1,36 @@
+$NetBSD: patch-airprint-scheduler_conf.c,v 1.1 2018/07/24 12:19:21 bouyer Exp $
+
+From bbc3507a260d29db3fc5601826f33c10f9dccd1e Mon Sep 17 00:00:00 2001
+From: Till Kamppeter <till.kamppeter@gmail.com>
+Date: Tue, 9 Aug 2016 18:11:29 +0200
+Subject: Patch to support Apple AirPrint (printing from iPhone, iPad, iPod
+ Touch to a CUPS server)
+
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/711779
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1054495
+Bug-Debian: http://bugs.debian.org/700961
+Bug: https://cups.org/str.php?L4341
+Last-Update: 2015-02-10
+
+Patch-Name: airprint-support.patch
+---
+ conf/mime.convs.in | 3 +++
+ conf/mime.types | 3 +++
+ scheduler/conf.c | 2 +-
+ scheduler/dirsvc.c | 6 ++++++
+ scheduler/printers.c | 4 +++-
+ 5 files changed, 16 insertions(+), 2 deletions(-)
+
+diff --git a/scheduler/conf.c b/scheduler/conf.c
+index 9c1be7089..52f2a6d35 100644
+--- scheduler/conf.c.orig
++++ scheduler/conf.c
+@@ -745,7 +745,7 @@ cupsdReadConfiguration(void)
+ DefaultShared = CUPS_DEFAULT_DEFAULT_SHARED;
+
+ #if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+- cupsdSetString(&DNSSDSubTypes, "_cups,_print");
++ cupsdSetString(&DNSSDSubTypes, "_cups,_print,_universal");
+ #endif /* HAVE_DNSSD || HAVE_AVAHI */
+
+ cupsdSetString(&LPDConfigFile, CUPS_DEFAULT_LPD_CONFIG_FILE);
diff --git a/print/cups-base/patches/patch-airprint-scheduler_dirsvc.c b/print/cups-base/patches/patch-airprint-scheduler_dirsvc.c
new file mode 100644
index 00000000000..9b35a5c2d2f
--- /dev/null
+++ b/print/cups-base/patches/patch-airprint-scheduler_dirsvc.c
@@ -0,0 +1,40 @@
+$NetBSD: patch-airprint-scheduler_dirsvc.c,v 1.1 2018/07/24 12:19:21 bouyer Exp $
+
+From bbc3507a260d29db3fc5601826f33c10f9dccd1e Mon Sep 17 00:00:00 2001
+From: Till Kamppeter <till.kamppeter@gmail.com>
+Date: Tue, 9 Aug 2016 18:11:29 +0200
+Subject: Patch to support Apple AirPrint (printing from iPhone, iPad, iPod
+ Touch to a CUPS server)
+
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/711779
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1054495
+Bug-Debian: http://bugs.debian.org/700961
+Bug: https://cups.org/str.php?L4341
+Last-Update: 2015-02-10
+
+Patch-Name: airprint-support.patch
+---
+ conf/mime.convs.in | 3 +++
+ conf/mime.types | 3 +++
+ scheduler/conf.c | 2 +-
+ scheduler/dirsvc.c | 6 ++++++
+ scheduler/printers.c | 4 +++-
+ 5 files changed, 16 insertions(+), 2 deletions(-)
+
+diff --git a/scheduler/dirsvc.c b/scheduler/dirsvc.c
+index 3dab90ca9..f21942af3 100644
+--- scheduler/dirsvc.c.orig
++++ scheduler/dirsvc.c
+@@ -443,6 +443,12 @@ dnssdBuildTxtRecord(
+ keyvalue[count ][0] = "pdl";
+ keyvalue[count++][1] = p->pdl ? p->pdl : "application/postscript";
+
++ /* iOS 6 does not accept this printer as AirPrint printer if there is
++ no URF txt record or "URF=none", "DM3" is the minimum needed found
++ by try and error */
++ keyvalue[count ][0] = "URF";
++ keyvalue[count++][1] = "DM3";
++
+ if (get_auth_info_required(p, air_str, sizeof(air_str)))
+ {
+ keyvalue[count ][0] = "air";
diff --git a/print/cups-base/patches/patch-airprint-scheduler_printers.c b/print/cups-base/patches/patch-airprint-scheduler_printers.c
new file mode 100644
index 00000000000..15c1db47c06
--- /dev/null
+++ b/print/cups-base/patches/patch-airprint-scheduler_printers.c
@@ -0,0 +1,152 @@
+$NetBSD: patch-airprint-scheduler_printers.c,v 1.1 2018/07/24 12:19:21 bouyer Exp $
+
+From debian:
+From 7147c814439aafb26ff0262a7d6b8ef56d20969f Mon Sep 17 00:00:00 2001
+From: Till Kamppeter <till.kamppeter@gmail.com>
+Date: Tue, 9 Aug 2016 18:11:04 +0200
+Subject: For PWG Raster, add required IPP attributes
+
+Add required by IPP Everywhere for PWG Raster when PWG Raster as input format
+is supported
+
+Bug-Upstream: https://www.cups.org/str.php?L4428
+Last-Update: 2015-02-10
+Patch-Name: pwg-raster-attributes.patch
+---
+ scheduler/printers.c | 77 +++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 76 insertions(+), 1 deletion(-)
+
+diff --git a/scheduler/printers.c b/scheduler/printers.c
+index bb99907ad..a0ebcbd3e 100644
+--- scheduler/printers.c.orig
++++ scheduler/printers.c
+@@ -2199,9 +2199,10 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p)/* I - Printer to setup */
+ cupsd_location_t *auth; /* Pointer to authentication element */
+ const char *auth_supported; /* Authentication supported */
+ ipp_t *oldattrs; /* Old printer attributes */
+- ipp_attribute_t *attr; /* Attribute data */
++ ipp_attribute_t *attr, *attr2; /* Attribute data */
+ char *name, /* Current user/group name */
+ *filter; /* Current filter */
++ mime_type_t *type;
+
+
+ DEBUG_printf(("cupsdSetPrinterAttrs: entering name = %s, type = %x\n", p->name,
+@@ -2538,6 +2539,80 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p)/* I - Printer to setup */
+ DEBUG_printf(("cupsdSetPrinterAttrs: leaving name = %s, type = %x\n", p->name,
+ p->type));
+
++ /*
++ * Add "pwg-raster-document-xxx-supported" attributes if PWG Raster input
++ * is supported
++ */
++ for (type = (mime_type_t *)cupsArrayFirst(p->filetypes);
++ type;
++ type = (mime_type_t *)cupsArrayNext(p->filetypes))
++ {
++ if (!_cups_strcasecmp(type->super, "image"))
++ {
++ if (!_cups_strcasecmp(type->type, "pwg-raster"))
++ {
++ if (p->ppd_attrs != NULL &&
++ (attr = ippFindAttribute(p->ppd_attrs,
++ "printer-resolution-supported",
++ IPP_TAG_ZERO)) != NULL)
++ {
++ attr2 = ippAddResolutions(p->attrs, IPP_TAG_PRINTER,
++ "pwg-raster-document-resolution-supported",
++ attr->num_values, IPP_RES_PER_INCH,
++ NULL, NULL);
++ for (i = 0; i < attr->num_values; i ++)
++ {
++ attr2->values[i].resolution.xres =
++ attr->values[i].resolution.xres;
++ attr2->values[i].resolution.yres =
++ attr->values[i].resolution.yres;
++ attr2->values[i].resolution.units = IPP_RES_PER_INCH;
++ }
++ }
++ else
++ {
++ static const int pwg_raster_document_resolution_supported[] =
++ {
++ 300,
++ 600,
++ 1200
++ };
++ ippAddResolutions(p->attrs, IPP_TAG_PRINTER,
++ "pwg-raster-document-resolution-supported",
++ (int)(sizeof(pwg_raster_document_resolution_supported) /
++ sizeof(pwg_raster_document_resolution_supported[0])),
++ IPP_RES_PER_INCH,
++ pwg_raster_document_resolution_supported,
++ pwg_raster_document_resolution_supported);
++ }
++ ippAddString(p->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD,
++ "pwg-raster-document-sheet-back", NULL, "normal");
++ static const char * const pwg_raster_document_type_supported[] =
++ {
++ "adobergb-8",
++ "adobergb-16",
++ "black-1",
++ "black-8",
++ "black-16",
++ "cmyk-8",
++ "cmyk-16",
++ "rgb-8",
++ "rgb-16",
++ "sgray-1",
++ "sgray-8",
++ "sgray-16",
++ "srgb-8",
++ "srgb-16"
++ };
++ ippAddStrings(p->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD,
++ "pwg-raster-document-type-supported",
++ (int)(sizeof(pwg_raster_document_type_supported) /
++ sizeof(pwg_raster_document_type_supported[0])), NULL,
++ pwg_raster_document_type_supported);
++ }
++ }
++ }
++
+ /*
+ * Add name-default attributes...
+ */
+
+From bbc3507a260d29db3fc5601826f33c10f9dccd1e Mon Sep 17 00:00:00 2001
+From: Till Kamppeter <till.kamppeter@gmail.com>
+Date: Tue, 9 Aug 2016 18:11:29 +0200
+Subject: Patch to support Apple AirPrint (printing from iPhone, iPad, iPod
+ Touch to a CUPS server)
+
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/711779
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1054495
+Bug-Debian: http://bugs.debian.org/700961
+Bug: https://cups.org/str.php?L4341
+Last-Update: 2015-02-10
+
+Patch-Name: airprint-support.patch
+---
+ conf/mime.convs.in | 3 +++
+ conf/mime.types | 3 +++
+ scheduler/conf.c | 2 +-
+ scheduler/dirsvc.c | 6 ++++++
+ scheduler/printers.c | 4 +++-
+ 5 files changed, 16 insertions(+), 2 deletions(-)
+
+diff --git a/scheduler/printers.c b/scheduler/printers.c
+index a0ebcbd3e..b5fe9e031 100644
+--- scheduler/printers.c.orig
++++ scheduler/printers.c
+@@ -3765,7 +3765,9 @@ add_printer_formats(cupsd_printer_t *p) /* I - Printer */
+ }
+ else if (!_cups_strcasecmp(type->super, "image"))
+ {
+- if (!_cups_strcasecmp(type->type, "jpeg"))
++ if (!_cups_strcasecmp(type->type, "urf"))
++ strlcat(pdl, "image/urf,", sizeof(pdl));
++ else if (!_cups_strcasecmp(type->type, "jpeg"))
+ strlcat(pdl, "image/jpeg,", sizeof(pdl));
+ else if (!_cups_strcasecmp(type->type, "png"))
+ strlcat(pdl, "image/png,", sizeof(pdl));