diff options
author | Didier Raboud <odyx@debian.org> | 2020-02-24 11:47:38 +0100 |
---|---|---|
committer | Didier Raboud <odyx@debian.org> | 2020-02-24 11:47:38 +0100 |
commit | 9495f729eaf7aa740a23135520cbf2b199a0dd08 (patch) | |
tree | 5e009037123ab535898a0727b8dcb2cf1f300f23 /debian/patches/0020-Patch-to-support-Apple-AirPrint-printing-from-iPhone.patch | |
parent | b012a8137afdd2386a9edd2fa9f0b55c93638ada (diff) |
Commit patch queue (exported by git-debrebase)
[git-debrebase make-patches: export and commit patches]
Diffstat (limited to 'debian/patches/0020-Patch-to-support-Apple-AirPrint-printing-from-iPhone.patch')
-rw-r--r-- | debian/patches/0020-Patch-to-support-Apple-AirPrint-printing-from-iPhone.patch | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/debian/patches/0020-Patch-to-support-Apple-AirPrint-printing-from-iPhone.patch b/debian/patches/0020-Patch-to-support-Apple-AirPrint-printing-from-iPhone.patch new file mode 100644 index 000000000..768134e37 --- /dev/null +++ b/debian/patches/0020-Patch-to-support-Apple-AirPrint-printing-from-iPhone.patch @@ -0,0 +1,91 @@ +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: https://bugs.debian.org/700961 +Bug: https://github.com/apple/cups/issues/4341 +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 57b459d..e042e01 100644 +--- a/conf/mime.convs.in ++++ b/conf/mime.convs.in +@@ -44,6 +44,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/conf/mime.types b/conf/mime.types +index fcd6b6e..ebb0525 100644 +--- a/conf/mime.types ++++ b/conf/mime.types +@@ -108,6 +108,9 @@ image/x-alias pix short(8,8) short(8,24) + image/x-bitmap bmp string(0,BM) + !printable(2,14) + image/x-icon ico + ++# Needed for printing from iOS (AirPrint) clients ++image/urf urf string(0,UNIRAST<00>) ++ + ######################################################################## + # + # Text files... +diff --git a/scheduler/conf.c b/scheduler/conf.c +index bb6049b..bb4f9d2 100644 +--- a/scheduler/conf.c ++++ b/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"); + cupsdClearString(&DNSSDHostName); + #endif /* HAVE_DNSSD || HAVE_AVAHI */ + +diff --git a/scheduler/dirsvc.c b/scheduler/dirsvc.c +index ddd3701..fb2a305 100644 +--- a/scheduler/dirsvc.c ++++ b/scheduler/dirsvc.c +@@ -440,6 +440,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/scheduler/printers.c b/scheduler/printers.c +index 8069039..2fff84b 100644 +--- a/scheduler/printers.c ++++ b/scheduler/printers.c +@@ -3731,7 +3731,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)); |