Bug#989161: [pre-approval] unblock: cups/2.3.3op2-3+deb11u1
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
X-Debbugs-Cc: cups@packages.debian.org
Please approve the following update for src:cups
[ Reason ]
Mikko Rapeli reported a USB printing regression in #989073, which, lukily
enough, was already reported and fixed upstream. It matters for Bullseye's
quality to ensure smooth USB printing.
[ Impact ]
Failure to print without comprehensible error messages nor configurable ways
to fix USB printing.
[ Tests ]
There are none, but as you'll see, these patches merely extend timeouts; also,
they have been reviewed and merged upstream, by the long-term upstream author,
Michael Sweet.
[ Risks ]
Given the trivialness of the patches as well as the extended review, I
consider the risks to be negligible.
[ Checklist ]
[x] all changes are documented in the d/changelog
[x] I reviewed all changes and I approve them
[x] attach debdiff against the package in testing
[ Other info ]
I'm also attaching the "direct" patches, as my use of git debrebase produces a
noisy debdiff. I have also picked the 2.3.3op2-3+deb11u1 version, as
2.3.3op2-4 was already uploaded in experimental; please advise if a change is
needed.
Many thanks for your work!
unblock cups/2.3.3op2-3+deb11u1
From: Zdenek Dohnal <zdohnal@redhat.com>
Date: Tue, 13 Apr 2021 15:44:14 +0200
Subject: backend/usb-libusb.c: Use 60s timeout for reading at backchannel
Some older models malfunction if timeout is too short.
Origin: upstream, https://github.com/OpenPrinting/cups/pull/174
Bug: https://github.com/OpenPrinting/cups/issues/160
Bug-Debian: https://bugs.debian.org/989073
---
backend/usb-libusb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/backend/usb-libusb.c b/backend/usb-libusb.c
index d6b0eb4..fbb0d9d 100644
--- a/backend/usb-libusb.c
+++ b/backend/usb-libusb.c
@@ -1704,7 +1704,7 @@ static void *read_thread(void *reference)
readstatus = libusb_bulk_transfer(g.printer->handle,
g.printer->read_endp,
readbuffer, rbytes,
- &rbytes, 250);
+ &rbytes, 60000);
if (readstatus == LIBUSB_SUCCESS && rbytes > 0)
{
fprintf(stderr, "DEBUG: Read %d bytes of back-channel data...\n", (int)rbytes);
From: Zdenek Dohnal <zdohnal@redhat.com>
Date: Tue, 13 Apr 2021 15:47:37 +0200
Subject: backend/usb-libusb.c: Revert enforcing read limits
This commit reverts the change introduced by 2.2.12 [1] - its
implementation caused a regression with Lexmark filters.
[1] https://github.com/apple/cups/commit/35e927f83529cd9b4bc37bcd418c50e307fced35
Origin: upstream, https://github.com/OpenPrinting/cups/pull/174
Bug: https://github.com/OpenPrinting/cups/issues/72
---
backend/usb-libusb.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/backend/usb-libusb.c b/backend/usb-libusb.c
index fbb0d9d..89b5182 100644
--- a/backend/usb-libusb.c
+++ b/backend/usb-libusb.c
@@ -1721,7 +1721,8 @@ static void *read_thread(void *reference)
* Make sure this loop executes no more than once every 250 miliseconds...
*/
- if ((g.wait_eof || !g.read_thread_stop))
+ if ((readstatus != LIBUSB_SUCCESS || rbytes == 0) &&
+ (g.wait_eof || !g.read_thread_stop))
usleep(250000);
}
while (g.wait_eof || !g.read_thread_stop);
diff -Nru cups-2.3.3op2/debian/changelog cups-2.3.3op2/debian/changelog
--- cups-2.3.3op2/debian/changelog 2021-02-12 14:09:29.000000000 +0100
+++ cups-2.3.3op2/debian/changelog 2021-05-27 08:49:36.000000000 +0200
@@ -1,3 +1,12 @@
+cups (2.3.3op2-3+deb11u1) unstable; urgency=medium
+
+ * Backport 2 upstream USB backend fixes:
+ - Revert enforcing read limits (caused a regression with Lexmark filters)
+ - Use 60s timeout (instead of 250ms) for reading at backchannel, as some
+ older models malfunction if timeout is too short (Closes: #989073)
+
+ -- Didier Raboud <odyx@debian.org> Thu, 27 May 2021 08:49:36 +0200
+
cups (2.3.3op2-3) unstable; urgency=medium
[ Helge Kreutzmann ]
diff -Nru cups-2.3.3op2/debian/patches/0001-backend-usb-libusb.c-Use-60s-timeout-for-reading-at-.patch cups-2.3.3op2/debian/patches/0001-backend-usb-libusb.c-Use-60s-timeout-for-reading-at-.patch
--- cups-2.3.3op2/debian/patches/0001-backend-usb-libusb.c-Use-60s-timeout-for-reading-at-.patch 1970-01-01 01:00:00.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0001-backend-usb-libusb.c-Use-60s-timeout-for-reading-at-.patch 2021-05-27 08:49:36.000000000 +0200
@@ -0,0 +1,26 @@
+From: Zdenek Dohnal <zdohnal@redhat.com>
+Date: Tue, 13 Apr 2021 15:44:14 +0200
+Subject: backend/usb-libusb.c: Use 60s timeout for reading at backchannel
+
+Some older models malfunction if timeout is too short.
+
+Origin: upstream, https://github.com/OpenPrinting/cups/pull/174
+Bug: https://github.com/OpenPrinting/cups/issues/160
+Bug-Debian: https://bugs.debian.org/989073
+---
+ backend/usb-libusb.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/backend/usb-libusb.c b/backend/usb-libusb.c
+index d6b0eb4..fbb0d9d 100644
+--- a/backend/usb-libusb.c
++++ b/backend/usb-libusb.c
+@@ -1704,7 +1704,7 @@ static void *read_thread(void *reference)
+ readstatus = libusb_bulk_transfer(g.printer->handle,
+ g.printer->read_endp,
+ readbuffer, rbytes,
+- &rbytes, 250);
++ &rbytes, 60000);
+ if (readstatus == LIBUSB_SUCCESS && rbytes > 0)
+ {
+ fprintf(stderr, "DEBUG: Read %d bytes of back-channel data...\n", (int)rbytes);
diff -Nru cups-2.3.3op2/debian/patches/0001-Let-cups.1-point-to-client.conf.5-not-client.conf.7.patch cups-2.3.3op2/debian/patches/0001-Let-cups.1-point-to-client.conf.5-not-client.conf.7.patch
--- cups-2.3.3op2/debian/patches/0001-Let-cups.1-point-to-client.conf.5-not-client.conf.7.patch 2021-02-12 14:09:29.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0001-Let-cups.1-point-to-client.conf.5-not-client.conf.7.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,23 +0,0 @@
-From: Didier Raboud <odyx@debian.org>
-Date: Fri, 12 Feb 2021 13:47:22 +0100
-Subject: Let cups.1 point to client.conf.5, not client.conf.7
-
-Bug: https://github.com/OpenPrinting/cups/pull/92
-Closes: #982303
----
- man/cups.1 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/man/cups.1 b/man/cups.1
-index 706620d..751ad9a 100644
---- a/man/cups.1
-+++ b/man/cups.1
-@@ -125,7 +125,7 @@ Printers that do not support IPP can be supported using applications such as
- .BR ippeveprinter (1).
- .SH SEE ALSO
- .BR cancel (1),
--.BR client.conf (7),
-+.BR client.conf (5),
- .BR cupsctl (8),
- .BR cupsd (8),
- .BR lp (1),
diff -Nru cups-2.3.3op2/debian/patches/0002-Apple-AirPrint-support.patch cups-2.3.3op2/debian/patches/0002-Apple-AirPrint-support.patch
--- cups-2.3.3op2/debian/patches/0002-Apple-AirPrint-support.patch 2021-02-12 14:09:29.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0002-Apple-AirPrint-support.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,90 +0,0 @@
-From: Till Kamppeter <till.kamppeter@gmail.com>
-Date: Tue, 9 Aug 2016 18:11:29 +0200
-Subject: Apple AirPrint support
-
-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
-Bug: https://github.com/OpenPrinting/cups/pull/27
----
- 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 74531a8..bfd1b0b 100644
---- a/scheduler/conf.c
-+++ b/scheduler/conf.c
-@@ -750,7 +750,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 7e9a9f2..3e00874 100644
---- a/scheduler/printers.c
-+++ b/scheduler/printers.c
-@@ -3733,7 +3733,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));
diff -Nru cups-2.3.3op2/debian/patches/0002-backend-usb-libusb.c-Revert-enforcing-read-limits.patch cups-2.3.3op2/debian/patches/0002-backend-usb-libusb.c-Revert-enforcing-read-limits.patch
--- cups-2.3.3op2/debian/patches/0002-backend-usb-libusb.c-Revert-enforcing-read-limits.patch 1970-01-01 01:00:00.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0002-backend-usb-libusb.c-Revert-enforcing-read-limits.patch 2021-05-27 08:49:36.000000000 +0200
@@ -0,0 +1,29 @@
+From: Zdenek Dohnal <zdohnal@redhat.com>
+Date: Tue, 13 Apr 2021 15:47:37 +0200
+Subject: backend/usb-libusb.c: Revert enforcing read limits
+
+This commit reverts the change introduced by 2.2.12 [1] - its
+implementation caused a regression with Lexmark filters.
+
+[1] https://github.com/apple/cups/commit/35e927f83529cd9b4bc37bcd418c50e307fced35
+
+Origin: upstream, https://github.com/OpenPrinting/cups/pull/174
+Bug: https://github.com/OpenPrinting/cups/issues/72
+---
+ backend/usb-libusb.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/backend/usb-libusb.c b/backend/usb-libusb.c
+index fbb0d9d..89b5182 100644
+--- a/backend/usb-libusb.c
++++ b/backend/usb-libusb.c
+@@ -1721,7 +1721,8 @@ static void *read_thread(void *reference)
+ * Make sure this loop executes no more than once every 250 miliseconds...
+ */
+
+- if ((g.wait_eof || !g.read_thread_stop))
++ if ((readstatus != LIBUSB_SUCCESS || rbytes == 0) &&
++ (g.wait_eof || !g.read_thread_stop))
+ usleep(250000);
+ }
+ while (g.wait_eof || !g.read_thread_stop);
diff -Nru cups-2.3.3op2/debian/patches/0003-Keep-foomatic-PPDs-recommended-stanzas-in-NickNames.patch cups-2.3.3op2/debian/patches/0003-Keep-foomatic-PPDs-recommended-stanzas-in-NickNames.patch
--- cups-2.3.3op2/debian/patches/0003-Keep-foomatic-PPDs-recommended-stanzas-in-NickNames.patch 2021-02-12 14:09:29.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0003-Keep-foomatic-PPDs-recommended-stanzas-in-NickNames.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,37 +0,0 @@
-From: Till Kampetter <till.kampetter@gmail.com>
-Date: Tue, 9 Aug 2016 18:11:36 +0200
-Subject: Keep foomatic PPDs "(recommended)" stanzas in NickNames
-
-Bug-Upstream: https://github.com/OpenPrinting/cups/pull/33
----
- scheduler/cups-driverd.cxx | 10 ----------
- 1 file changed, 10 deletions(-)
-
-diff --git a/scheduler/cups-driverd.cxx b/scheduler/cups-driverd.cxx
-index 85516eb..874eb3c 100644
---- a/scheduler/cups-driverd.cxx
-+++ b/scheduler/cups-driverd.cxx
-@@ -240,7 +240,6 @@ add_ppd(const char *filename, /* I - PPD filename */
- const char *scheme) /* I - PPD scheme */
- {
- ppd_info_t *ppd; /* PPD */
-- char *recommended; /* Foomatic driver string */
-
-
- /*
-@@ -278,15 +277,6 @@ add_ppd(const char *filename, /* I - PPD filename */
- strlcpy(ppd->record.device_id, device_id, sizeof(ppd->record.device_id));
- strlcpy(ppd->record.scheme, scheme, sizeof(ppd->record.scheme));
-
-- /*
-- * Strip confusing (and often wrong) "recommended" suffix added by
-- * Foomatic drivers...
-- */
--
-- if ((recommended = strstr(ppd->record.make_and_model,
-- " (recommended)")) != NULL)
-- *recommended = '\0';
--
- /*
- * Add the PPD to the PPD arrays...
- */
diff -Nru cups-2.3.3op2/debian/patches/0003-Let-cups.1-point-to-client.conf.5-not-client.conf.7.patch cups-2.3.3op2/debian/patches/0003-Let-cups.1-point-to-client.conf.5-not-client.conf.7.patch
--- cups-2.3.3op2/debian/patches/0003-Let-cups.1-point-to-client.conf.5-not-client.conf.7.patch 1970-01-01 01:00:00.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0003-Let-cups.1-point-to-client.conf.5-not-client.conf.7.patch 2021-05-27 08:49:36.000000000 +0200
@@ -0,0 +1,23 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Fri, 12 Feb 2021 13:47:22 +0100
+Subject: Let cups.1 point to client.conf.5, not client.conf.7
+
+Bug: https://github.com/OpenPrinting/cups/pull/92
+Closes: #982303
+---
+ man/cups.1 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/man/cups.1 b/man/cups.1
+index 706620d..751ad9a 100644
+--- a/man/cups.1
++++ b/man/cups.1
+@@ -125,7 +125,7 @@ Printers that do not support IPP can be supported using applications such as
+ .BR ippeveprinter (1).
+ .SH SEE ALSO
+ .BR cancel (1),
+-.BR client.conf (7),
++.BR client.conf (5),
+ .BR cupsctl (8),
+ .BR cupsd (8),
+ .BR lp (1),
diff -Nru cups-2.3.3op2/debian/patches/0004-Apple-AirPrint-support.patch cups-2.3.3op2/debian/patches/0004-Apple-AirPrint-support.patch
--- cups-2.3.3op2/debian/patches/0004-Apple-AirPrint-support.patch 1970-01-01 01:00:00.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0004-Apple-AirPrint-support.patch 2021-05-27 08:49:36.000000000 +0200
@@ -0,0 +1,90 @@
+From: Till Kamppeter <till.kamppeter@gmail.com>
+Date: Tue, 9 Aug 2016 18:11:29 +0200
+Subject: Apple AirPrint support
+
+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
+Bug: https://github.com/OpenPrinting/cups/pull/27
+---
+ 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 74531a8..bfd1b0b 100644
+--- a/scheduler/conf.c
++++ b/scheduler/conf.c
+@@ -750,7 +750,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 7e9a9f2..3e00874 100644
+--- a/scheduler/printers.c
++++ b/scheduler/printers.c
+@@ -3733,7 +3733,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));
diff -Nru cups-2.3.3op2/debian/patches/0004-Debian-Set-LogFileGroup-to-adm.patch cups-2.3.3op2/debian/patches/0004-Debian-Set-LogFileGroup-to-adm.patch
--- cups-2.3.3op2/debian/patches/0004-Debian-Set-LogFileGroup-to-adm.patch 2021-02-12 14:09:29.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0004-Debian-Set-LogFileGroup-to-adm.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,23 +0,0 @@
-From: Martin Pitt <mpitt@debian.org>
-Date: Tue, 9 Aug 2016 18:11:38 +0200
-Subject: Debian: Set LogFileGroup to adm
-
----
- conf/cups-files.conf.in | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/conf/cups-files.conf.in b/conf/cups-files.conf.in
-index af11fcc..80ca351 100644
---- a/conf/cups-files.conf.in
-+++ b/conf/cups-files.conf.in
-@@ -29,6 +29,10 @@ SystemGroup @CUPS_SYSTEM_GROUPS@
- #ConfigFilePerm 0@CUPS_CONFIG_FILE_PERM@
- #LogFilePerm 0@CUPS_LOG_FILE_PERM@
-
-+# Specifies the group name or ID that will be used for log files.
-+# The default group in Debian is "adm".
-+LogFileGroup adm
-+
- # Location of the file logging all access to the scheduler; may be the name
- # "syslog". If not an absolute path, the value of ServerRoot is used as the
- # root directory. Also see the "AccessLogLevel" directive in cupsd.conf.
diff -Nru cups-2.3.3op2/debian/patches/0005-Debian-Move-cupsd.conf.default-from-SERVERROOT-to-DA.patch cups-2.3.3op2/debian/patches/0005-Debian-Move-cupsd.conf.default-from-SERVERROOT-to-DA.patch
--- cups-2.3.3op2/debian/patches/0005-Debian-Move-cupsd.conf.default-from-SERVERROOT-to-DA.patch 2021-02-12 14:09:29.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0005-Debian-Move-cupsd.conf.default-from-SERVERROOT-to-DA.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,62 +0,0 @@
-From: Didier Raboud <odyx@debian.org>
-Date: Tue, 9 Aug 2016 18:11:24 +0200
-Subject: Debian: Move cupsd.conf.default from SERVERROOT to DATADIR
-
-Origin: vendor
-Bug: https://github.com/apple/cups/issues/4342
-Bug: https://github.com/OpenPrinting/cups/pull/26
-Bug-Debian: https://bugs.debian.org/640124
----
- cgi-bin/admin.c | 6 +++++-
- conf/Makefile | 5 +++--
- 2 files changed, 8 insertions(+), 3 deletions(-)
-
-diff --git a/cgi-bin/admin.c b/cgi-bin/admin.c
-index c648938..5ff7501 100644
---- a/cgi-bin/admin.c
-+++ b/cgi-bin/admin.c
-@@ -1636,6 +1636,7 @@ do_config_server(http_t *http) /* I - HTTP connection */
- int ch; /* Character from file */
- char filename[1024]; /* Filename */
- const char *server_root; /* Location of config files */
-+ const char *data_dir; /* Location of data files */
-
-
- /*
-@@ -1719,7 +1720,10 @@ do_config_server(http_t *http) /* I - HTTP connection */
- * well...
- */
-
-- strlcat(filename, ".default", sizeof(filename));
-+ if ((data_dir = getenv("CUPS_DATADIR")) == NULL)
-+ data_dir = CUPS_DATADIR;
-+
-+ snprintf(filename, sizeof(filename), "%s/cupsd.conf.default",data_dir);
-
- if (!stat(filename, &info) && info.st_size < (1024 * 1024) &&
- (cupsd = cupsFileOpen(filename, "r")) != NULL)
-diff --git a/conf/Makefile b/conf/Makefile
-index e249e60..42a123f 100644
---- a/conf/Makefile
-+++ b/conf/Makefile
-@@ -70,7 +70,7 @@ install-data:
- else \
- $(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(SERVERROOT) ; \
- fi ; \
-- $(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(SERVERROOT)/$$file.default; \
-+ $(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(DATADIR)/$$file.default; \
- done
- $(INSTALL_DIR) -m 755 $(DATADIR)/mime
- for file in $(REPLACE); do \
-@@ -118,9 +118,10 @@ install-libs:
- #
-
- uninstall:
-- for file in $(KEEP) $(REPLACE) cupsd.conf.default; do \
-+ for file in $(KEEP) $(REPLACE); do \
- $(RM) $(SERVERROOT)/$$file; \
- done
-+ $(RM) $(DATADIR)/cupsd.conf.default
- -$(RMDIR) $(SERVERROOT)
- for file in $(REPLACE); do \
- $(RM) $(DATADIR)/mime/$$file; \
diff -Nru cups-2.3.3op2/debian/patches/0005-Keep-foomatic-PPDs-recommended-stanzas-in-NickNames.patch cups-2.3.3op2/debian/patches/0005-Keep-foomatic-PPDs-recommended-stanzas-in-NickNames.patch
--- cups-2.3.3op2/debian/patches/0005-Keep-foomatic-PPDs-recommended-stanzas-in-NickNames.patch 1970-01-01 01:00:00.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0005-Keep-foomatic-PPDs-recommended-stanzas-in-NickNames.patch 2021-05-27 08:49:36.000000000 +0200
@@ -0,0 +1,37 @@
+From: Till Kampetter <till.kampetter@gmail.com>
+Date: Tue, 9 Aug 2016 18:11:36 +0200
+Subject: Keep foomatic PPDs "(recommended)" stanzas in NickNames
+
+Bug-Upstream: https://github.com/OpenPrinting/cups/pull/33
+---
+ scheduler/cups-driverd.cxx | 10 ----------
+ 1 file changed, 10 deletions(-)
+
+diff --git a/scheduler/cups-driverd.cxx b/scheduler/cups-driverd.cxx
+index 85516eb..874eb3c 100644
+--- a/scheduler/cups-driverd.cxx
++++ b/scheduler/cups-driverd.cxx
+@@ -240,7 +240,6 @@ add_ppd(const char *filename, /* I - PPD filename */
+ const char *scheme) /* I - PPD scheme */
+ {
+ ppd_info_t *ppd; /* PPD */
+- char *recommended; /* Foomatic driver string */
+
+
+ /*
+@@ -278,15 +277,6 @@ add_ppd(const char *filename, /* I - PPD filename */
+ strlcpy(ppd->record.device_id, device_id, sizeof(ppd->record.device_id));
+ strlcpy(ppd->record.scheme, scheme, sizeof(ppd->record.scheme));
+
+- /*
+- * Strip confusing (and often wrong) "recommended" suffix added by
+- * Foomatic drivers...
+- */
+-
+- if ((recommended = strstr(ppd->record.make_and_model,
+- " (recommended)")) != NULL)
+- *recommended = '\0';
+-
+ /*
+ * Add the PPD to the PPD arrays...
+ */
diff -Nru cups-2.3.3op2/debian/patches/0006-Debian-Do-not-alter-the-permissions-of-cupsd.conf-ev.patch cups-2.3.3op2/debian/patches/0006-Debian-Do-not-alter-the-permissions-of-cupsd.conf-ev.patch
--- cups-2.3.3op2/debian/patches/0006-Debian-Do-not-alter-the-permissions-of-cupsd.conf-ev.patch 2021-02-12 14:09:29.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0006-Debian-Do-not-alter-the-permissions-of-cupsd.conf-ev.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,27 +0,0 @@
-From: Martin Pitt <mpitt@debian.org>
-Date: Tue, 9 Aug 2016 18:11:41 +0200
-Subject: Debian: Do not alter the permissions of cupsd.conf, ever
-
-Origin: vendor
-Bug: https://github.com/OpenPrinting/cups/pull/36
----
- scheduler/conf.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/scheduler/conf.c b/scheduler/conf.c
-index bfd1b0b..c8cd5ea 100644
---- a/scheduler/conf.c
-+++ b/scheduler/conf.c
-@@ -1140,10 +1140,12 @@ cupsdReadConfiguration(void)
- Group, 1, 1) < 0 ||
- cupsdCheckPermissions(ServerRoot, "ssl", 0700, RunUser,
- Group, 1, 0) < 0 ||
-+ /* Never alter permissions of central conffile
- cupsdCheckPermissions(ConfigurationFile, NULL, ConfigFilePerm, RunUser,
- Group, 0, 0) < 0 ||
- cupsdCheckPermissions(CupsFilesFile, NULL, ConfigFilePerm, RunUser,
- Group, 0, 0) < 0 ||
-+ */
- cupsdCheckPermissions(ServerRoot, "classes.conf", 0600, RunUser,
- Group, 0, 0) < 0 ||
- cupsdCheckPermissions(ServerRoot, "printers.conf", 0600, RunUser,
diff -Nru cups-2.3.3op2/debian/patches/0006-Debian-Set-LogFileGroup-to-adm.patch cups-2.3.3op2/debian/patches/0006-Debian-Set-LogFileGroup-to-adm.patch
--- cups-2.3.3op2/debian/patches/0006-Debian-Set-LogFileGroup-to-adm.patch 1970-01-01 01:00:00.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0006-Debian-Set-LogFileGroup-to-adm.patch 2021-05-27 08:49:36.000000000 +0200
@@ -0,0 +1,23 @@
+From: Martin Pitt <mpitt@debian.org>
+Date: Tue, 9 Aug 2016 18:11:38 +0200
+Subject: Debian: Set LogFileGroup to adm
+
+---
+ conf/cups-files.conf.in | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/conf/cups-files.conf.in b/conf/cups-files.conf.in
+index af11fcc..80ca351 100644
+--- a/conf/cups-files.conf.in
++++ b/conf/cups-files.conf.in
+@@ -29,6 +29,10 @@ SystemGroup @CUPS_SYSTEM_GROUPS@
+ #ConfigFilePerm 0@CUPS_CONFIG_FILE_PERM@
+ #LogFilePerm 0@CUPS_LOG_FILE_PERM@
+
++# Specifies the group name or ID that will be used for log files.
++# The default group in Debian is "adm".
++LogFileGroup adm
++
+ # Location of the file logging all access to the scheduler; may be the name
+ # "syslog". If not an absolute path, the value of ServerRoot is used as the
+ # root directory. Also see the "AccessLogLevel" directive in cupsd.conf.
diff -Nru cups-2.3.3op2/debian/patches/0007-Debian-Move-cupsd.conf.default-from-SERVERROOT-to-DA.patch cups-2.3.3op2/debian/patches/0007-Debian-Move-cupsd.conf.default-from-SERVERROOT-to-DA.patch
--- cups-2.3.3op2/debian/patches/0007-Debian-Move-cupsd.conf.default-from-SERVERROOT-to-DA.patch 1970-01-01 01:00:00.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0007-Debian-Move-cupsd.conf.default-from-SERVERROOT-to-DA.patch 2021-05-27 08:49:36.000000000 +0200
@@ -0,0 +1,62 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Tue, 9 Aug 2016 18:11:24 +0200
+Subject: Debian: Move cupsd.conf.default from SERVERROOT to DATADIR
+
+Origin: vendor
+Bug: https://github.com/apple/cups/issues/4342
+Bug: https://github.com/OpenPrinting/cups/pull/26
+Bug-Debian: https://bugs.debian.org/640124
+---
+ cgi-bin/admin.c | 6 +++++-
+ conf/Makefile | 5 +++--
+ 2 files changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/cgi-bin/admin.c b/cgi-bin/admin.c
+index c648938..5ff7501 100644
+--- a/cgi-bin/admin.c
++++ b/cgi-bin/admin.c
+@@ -1636,6 +1636,7 @@ do_config_server(http_t *http) /* I - HTTP connection */
+ int ch; /* Character from file */
+ char filename[1024]; /* Filename */
+ const char *server_root; /* Location of config files */
++ const char *data_dir; /* Location of data files */
+
+
+ /*
+@@ -1719,7 +1720,10 @@ do_config_server(http_t *http) /* I - HTTP connection */
+ * well...
+ */
+
+- strlcat(filename, ".default", sizeof(filename));
++ if ((data_dir = getenv("CUPS_DATADIR")) == NULL)
++ data_dir = CUPS_DATADIR;
++
++ snprintf(filename, sizeof(filename), "%s/cupsd.conf.default",data_dir);
+
+ if (!stat(filename, &info) && info.st_size < (1024 * 1024) &&
+ (cupsd = cupsFileOpen(filename, "r")) != NULL)
+diff --git a/conf/Makefile b/conf/Makefile
+index e249e60..42a123f 100644
+--- a/conf/Makefile
++++ b/conf/Makefile
+@@ -70,7 +70,7 @@ install-data:
+ else \
+ $(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(SERVERROOT) ; \
+ fi ; \
+- $(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(SERVERROOT)/$$file.default; \
++ $(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(DATADIR)/$$file.default; \
+ done
+ $(INSTALL_DIR) -m 755 $(DATADIR)/mime
+ for file in $(REPLACE); do \
+@@ -118,9 +118,10 @@ install-libs:
+ #
+
+ uninstall:
+- for file in $(KEEP) $(REPLACE) cupsd.conf.default; do \
++ for file in $(KEEP) $(REPLACE); do \
+ $(RM) $(SERVERROOT)/$$file; \
+ done
++ $(RM) $(DATADIR)/cupsd.conf.default
+ -$(RMDIR) $(SERVERROOT)
+ for file in $(REPLACE); do \
+ $(RM) $(DATADIR)/mime/$$file; \
diff -Nru cups-2.3.3op2/debian/patches/0007-Debian-Show-compile-command-lines.patch cups-2.3.3op2/debian/patches/0007-Debian-Show-compile-command-lines.patch
--- cups-2.3.3op2/debian/patches/0007-Debian-Show-compile-command-lines.patch 2021-02-12 14:09:29.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0007-Debian-Show-compile-command-lines.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
-From: Till Kampetter <till.kampetter@gmail.com>
-Date: Tue, 9 Aug 2016 18:11:43 +0200
-Subject: Debian: Show compile command lines
-
----
- Makedefs.in | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/Makedefs.in b/Makedefs.in
-index 9ee7585..038bb94 100644
---- a/Makedefs.in
-+++ b/Makedefs.in
-@@ -263,7 +263,6 @@ USBQUIRKS = @USBQUIRKS@
- # Rules...
- #
-
--.SILENT:
- .SUFFIXES: .a .c .cxx .h .o
-
- .c.o:
diff -Nru cups-2.3.3op2/debian/patches/0008-Debian-Do-not-alter-the-permissions-of-cupsd.conf-ev.patch cups-2.3.3op2/debian/patches/0008-Debian-Do-not-alter-the-permissions-of-cupsd.conf-ev.patch
--- cups-2.3.3op2/debian/patches/0008-Debian-Do-not-alter-the-permissions-of-cupsd.conf-ev.patch 1970-01-01 01:00:00.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0008-Debian-Do-not-alter-the-permissions-of-cupsd.conf-ev.patch 2021-05-27 08:49:36.000000000 +0200
@@ -0,0 +1,27 @@
+From: Martin Pitt <mpitt@debian.org>
+Date: Tue, 9 Aug 2016 18:11:41 +0200
+Subject: Debian: Do not alter the permissions of cupsd.conf, ever
+
+Origin: vendor
+Bug: https://github.com/OpenPrinting/cups/pull/36
+---
+ scheduler/conf.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/scheduler/conf.c b/scheduler/conf.c
+index bfd1b0b..c8cd5ea 100644
+--- a/scheduler/conf.c
++++ b/scheduler/conf.c
+@@ -1140,10 +1140,12 @@ cupsdReadConfiguration(void)
+ Group, 1, 1) < 0 ||
+ cupsdCheckPermissions(ServerRoot, "ssl", 0700, RunUser,
+ Group, 1, 0) < 0 ||
++ /* Never alter permissions of central conffile
+ cupsdCheckPermissions(ConfigurationFile, NULL, ConfigFilePerm, RunUser,
+ Group, 0, 0) < 0 ||
+ cupsdCheckPermissions(CupsFilesFile, NULL, ConfigFilePerm, RunUser,
+ Group, 0, 0) < 0 ||
++ */
+ cupsdCheckPermissions(ServerRoot, "classes.conf", 0600, RunUser,
+ Group, 0, 0) < 0 ||
+ cupsdCheckPermissions(ServerRoot, "printers.conf", 0600, RunUser,
diff -Nru cups-2.3.3op2/debian/patches/0008-Debian-Use-dpkg-architecture-in-cups-config-to-make-.patch cups-2.3.3op2/debian/patches/0008-Debian-Use-dpkg-architecture-in-cups-config-to-make-.patch
--- cups-2.3.3op2/debian/patches/0008-Debian-Use-dpkg-architecture-in-cups-config-to-make-.patch 2021-02-12 14:09:29.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0008-Debian-Use-dpkg-architecture-in-cups-config-to-make-.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,49 +0,0 @@
-From: Didier Raboud <odyx@debian.org>
-Date: Tue, 9 Aug 2016 18:11:49 +0200
-Subject: Debian: Use dpkg-architecture in cups-config to make it
- architecture-independant
-
- Also filter -L/usr/lib/(triplet) out of LDFLAGS.
- Also strip unnecessary libs from --libs.
- Also launch krb5-config at runtime to avoid getting usr/lib/(triplet) from krb5-config
-
-Bug-Debian: https://bugs.debian.org/741519
-Bug-Debian: https://bugs.debian.org/727058
-Bug-Debian: https://bugs.debian.org/730838
-Bug-Debian: https://bugs.debian.org/751157
----
- cups-config.in | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/cups-config.in b/cups-config.in
-index 9dd094d..b073a07 100755
---- a/cups-config.in
-+++ b/cups-config.in
-@@ -17,7 +17,7 @@ prefix=@prefix@
- exec_prefix=@exec_prefix@
- bindir=@bindir@
- includedir=@includedir@
--libdir=@libdir@
-+libdir=${prefix}/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)
- datarootdir=@datadir@
- datadir=@datadir@
- sysconfdir=@sysconfdir@
-@@ -29,7 +29,8 @@ INSTALLSTATIC=@INSTALLSTATIC@
- # flags for compiler and linker...
- CFLAGS=""
- LDFLAGS="@EXPORT_LDFLAGS@"
--LIBS="@LIBGSSAPI@ @DNSSDLIBS@ @EXPORT_SSLLIBS@ @LIBZ@ @LIBS@"
-+LIBGSSAPI=`[ ! -x /usr/bin/krb5-config ] || /usr/bin/krb5-config --libs`
-+LIBS="$LIBGSSAPI @DNSSDLIBS@ @EXPORT_SSLLIBS@ @LIBZ@ @LIBS@"
-
- # Check for local invocation...
- selfdir=`dirname $0`
-@@ -43,7 +44,7 @@ else
- CFLAGS="$CFLAGS -I$includedir"
- fi
-
-- if test $libdir != /usr/lib -a $libdir != /usr/lib32 -a $libdir != /usr/lib64; then
-+ if test $libdir != /usr/lib -a $libdir != /usr/lib32 -a $libdir != /usr/lib64 -a $libdir != /usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH); then
- LDFLAGS="$LDFLAGS -L$libdir"
- fi
- fi
diff -Nru cups-2.3.3op2/debian/patches/0009-Debian-Build-mantohtml-with-the-build-architecture-c.patch cups-2.3.3op2/debian/patches/0009-Debian-Build-mantohtml-with-the-build-architecture-c.patch
--- cups-2.3.3op2/debian/patches/0009-Debian-Build-mantohtml-with-the-build-architecture-c.patch 2021-02-12 14:09:29.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0009-Debian-Build-mantohtml-with-the-build-architecture-c.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,110 +0,0 @@
-From: Helmut Grohne <helmut@subdivi.de>
-Date: Tue, 9 Aug 2016 18:11:49 +0200
-Subject: Debian: Build mantohtml with the build architecture compiler
-
-mantohtml is run during build. Thus it needs to be built with the build
-architecture compiler (or execution fails). The obvious part is switching to
-CC_FOR_BUILD. That also depends on it not requiring any other cups components.
-In particular, removing uses of strlcpy and replacing host architecture-
-specific includes is thus needed.
-
-Bug-Debian: https://bugs.debian.org/837936
----
- Makedefs.in | 1 +
- configure.ac | 9 +++++++++
- man/Makefile | 5 ++---
- man/mantohtml.c | 15 ++++++++++-----
- 4 files changed, 22 insertions(+), 8 deletions(-)
-
-diff --git a/Makedefs.in b/Makedefs.in
-index 038bb94..291099c 100644
---- a/Makedefs.in
-+++ b/Makedefs.in
-@@ -22,6 +22,7 @@ CUPS_VERSION = @CUPS_VERSION@
- AR = @AR@
- AWK = @AWK@
- CC = @LIBTOOL_CC@ @CC@
-+CC_FOR_BUILD = @CC_FOR_BUILD@
- CHMOD = @CHMOD@
- CXX = @LIBTOOL_CXX@ @CXX@
- DSO = @DSO@
-diff --git a/configure.ac b/configure.ac
-index 93a4b97..b60b832 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -20,6 +20,15 @@ sinclude(config-scripts/cups-common.m4)
- sinclude(config-scripts/cups-directories.m4)
- sinclude(config-scripts/cups-manpages.m4)
-
-+AC_MSG_CHECKING([for build system compiler])
-+if test "$cross_compiling" = yes; then
-+ CC_FOR_BUILD=${CC_FOR_BUILD-cc}
-+else
-+ CC_FOR_BUILD=${CC}
-+fi
-+AC_MSG_RESULT(${CC_FOR_BUILD})
-+AC_SUBST(CC_FOR_BUILD)
-+
- sinclude(config-scripts/cups-sharedlibs.m4)
- sinclude(config-scripts/cups-libtool.m4)
- sinclude(config-scripts/cups-compiler.m4)
-diff --git a/man/Makefile b/man/Makefile
-index 621fe60..e01591a 100644
---- a/man/Makefile
-+++ b/man/Makefile
-@@ -222,6 +222,5 @@ html: $(MAN1) $(MAN5) $(MAN7) $(MAN8) mantohtml
- ./mantohtml $$file >../doc/help/man-`basename $$file .8`.html; \
- done
-
--mantohtml: mantohtml.o ../cups/$(LIBCUPSSTATIC)
-- $(LD_CC) $(ARCHFLAGS) $(ALL_LDFLAGS) -o $@ mantohtml.o $(LINKCUPSSTATIC)
-- $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
-+mantohtml: mantohtml.c
-+ $(CC_FOR_BUILD) -o $@ $<
-diff --git a/man/mantohtml.c b/man/mantohtml.c
-index 2a9353a..6223f17 100644
---- a/man/mantohtml.c
-+++ b/man/mantohtml.c
-@@ -11,8 +11,10 @@
- * Include necessary headers.
- */
-
--#include <cups/string-private.h>
--#include <cups/array-private.h>
-+#include <ctype.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
- #include <unistd.h>
-
-
-@@ -811,7 +813,8 @@ main(int argc, /* I - Number of command-line args */
- * Anchor for HTML output...
- */
-
-- strlcpy(anchor, line + 4, sizeof(anchor));
-+ strncpy(anchor, line + 4, sizeof(anchor) - 1);
-+ anchor[sizeof(anchor) - 1] = '\0';
- }
- else if (strncmp(line, ".\\\"", 3))
- {
-@@ -940,7 +943,8 @@ html_alternate(const char *s, /* I - String */
- manfile[1024], /* Man page filename */
- manurl[1024]; /* Man page URL */
-
-- strlcpy(name, s, sizeof(name));
-+ strncpy(name, s, sizeof(name) - 1);
-+ name[sizeof(name) - 1] = '\0';
- if ((size_t)(end - s) < sizeof(name))
- name[end - s] = '\0';
-
-@@ -1173,7 +1177,8 @@ html_fputs(const char *s, /* I - String */
- if (end[-1] == ',' || end[-1] == '.' || end[-1] == ')')
- end --;
-
-- strlcpy(temp, s, sizeof(temp));
-+ strncpy(temp, s, sizeof(temp) - 1);
-+ temp[sizeof(temp) - 1] = '\0';
- if ((size_t)(end -s) < sizeof(temp))
- temp[end - s] = '\0';
-
diff -Nru cups-2.3.3op2/debian/patches/0009-Debian-Show-compile-command-lines.patch cups-2.3.3op2/debian/patches/0009-Debian-Show-compile-command-lines.patch
--- cups-2.3.3op2/debian/patches/0009-Debian-Show-compile-command-lines.patch 1970-01-01 01:00:00.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0009-Debian-Show-compile-command-lines.patch 2021-05-27 08:49:36.000000000 +0200
@@ -0,0 +1,20 @@
+From: Till Kampetter <till.kampetter@gmail.com>
+Date: Tue, 9 Aug 2016 18:11:43 +0200
+Subject: Debian: Show compile command lines
+
+---
+ Makedefs.in | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/Makedefs.in b/Makedefs.in
+index 9ee7585..038bb94 100644
+--- a/Makedefs.in
++++ b/Makedefs.in
+@@ -263,7 +263,6 @@ USBQUIRKS = @USBQUIRKS@
+ # Rules...
+ #
+
+-.SILENT:
+ .SUFFIXES: .a .c .cxx .h .o
+
+ .c.o:
diff -Nru cups-2.3.3op2/debian/patches/0010-Debian-Reproducibility-httpAddrGetHostname-test-fail.patch cups-2.3.3op2/debian/patches/0010-Debian-Reproducibility-httpAddrGetHostname-test-fail.patch
--- cups-2.3.3op2/debian/patches/0010-Debian-Reproducibility-httpAddrGetHostname-test-fail.patch 2021-02-12 14:09:29.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0010-Debian-Reproducibility-httpAddrGetHostname-test-fail.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,23 +0,0 @@
-From: Didier Raboud <odyx@debian.org>
-Date: Wed, 3 Feb 2021 14:27:34 +0100
-Subject: Debian: Reproducibility: httpAddrGetHostname() test fails under
- reprotest; skip it
-
----
- cups/testhttp.c | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/cups/testhttp.c b/cups/testhttp.c
-index dfb767c..8cb87d6 100644
---- a/cups/testhttp.c
-+++ b/cups/testhttp.c
-@@ -416,8 +416,7 @@ main(int argc, /* I - Number of command-line arguments */
- }
- else
- {
-- failures ++;
-- puts("FAIL");
-+ puts("FAIL (Debian Reproducibility; failure allowed, as this is known to fail under reprotest");
- }
-
- /*
diff -Nru cups-2.3.3op2/debian/patches/0010-Debian-Use-dpkg-architecture-in-cups-config-to-make-.patch cups-2.3.3op2/debian/patches/0010-Debian-Use-dpkg-architecture-in-cups-config-to-make-.patch
--- cups-2.3.3op2/debian/patches/0010-Debian-Use-dpkg-architecture-in-cups-config-to-make-.patch 1970-01-01 01:00:00.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0010-Debian-Use-dpkg-architecture-in-cups-config-to-make-.patch 2021-05-27 08:49:36.000000000 +0200
@@ -0,0 +1,49 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Tue, 9 Aug 2016 18:11:49 +0200
+Subject: Debian: Use dpkg-architecture in cups-config to make it
+ architecture-independant
+
+ Also filter -L/usr/lib/(triplet) out of LDFLAGS.
+ Also strip unnecessary libs from --libs.
+ Also launch krb5-config at runtime to avoid getting usr/lib/(triplet) from krb5-config
+
+Bug-Debian: https://bugs.debian.org/741519
+Bug-Debian: https://bugs.debian.org/727058
+Bug-Debian: https://bugs.debian.org/730838
+Bug-Debian: https://bugs.debian.org/751157
+---
+ cups-config.in | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/cups-config.in b/cups-config.in
+index 9dd094d..b073a07 100755
+--- a/cups-config.in
++++ b/cups-config.in
+@@ -17,7 +17,7 @@ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+ bindir=@bindir@
+ includedir=@includedir@
+-libdir=@libdir@
++libdir=${prefix}/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)
+ datarootdir=@datadir@
+ datadir=@datadir@
+ sysconfdir=@sysconfdir@
+@@ -29,7 +29,8 @@ INSTALLSTATIC=@INSTALLSTATIC@
+ # flags for compiler and linker...
+ CFLAGS=""
+ LDFLAGS="@EXPORT_LDFLAGS@"
+-LIBS="@LIBGSSAPI@ @DNSSDLIBS@ @EXPORT_SSLLIBS@ @LIBZ@ @LIBS@"
++LIBGSSAPI=`[ ! -x /usr/bin/krb5-config ] || /usr/bin/krb5-config --libs`
++LIBS="$LIBGSSAPI @DNSSDLIBS@ @EXPORT_SSLLIBS@ @LIBZ@ @LIBS@"
+
+ # Check for local invocation...
+ selfdir=`dirname $0`
+@@ -43,7 +44,7 @@ else
+ CFLAGS="$CFLAGS -I$includedir"
+ fi
+
+- if test $libdir != /usr/lib -a $libdir != /usr/lib32 -a $libdir != /usr/lib64; then
++ if test $libdir != /usr/lib -a $libdir != /usr/lib32 -a $libdir != /usr/lib64 -a $libdir != /usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH); then
+ LDFLAGS="$LDFLAGS -L$libdir"
+ fi
+ fi
diff -Nru cups-2.3.3op2/debian/patches/0011-Debian-Build-mantohtml-with-the-build-architecture-c.patch cups-2.3.3op2/debian/patches/0011-Debian-Build-mantohtml-with-the-build-architecture-c.patch
--- cups-2.3.3op2/debian/patches/0011-Debian-Build-mantohtml-with-the-build-architecture-c.patch 1970-01-01 01:00:00.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0011-Debian-Build-mantohtml-with-the-build-architecture-c.patch 2021-05-27 08:49:36.000000000 +0200
@@ -0,0 +1,110 @@
+From: Helmut Grohne <helmut@subdivi.de>
+Date: Tue, 9 Aug 2016 18:11:49 +0200
+Subject: Debian: Build mantohtml with the build architecture compiler
+
+mantohtml is run during build. Thus it needs to be built with the build
+architecture compiler (or execution fails). The obvious part is switching to
+CC_FOR_BUILD. That also depends on it not requiring any other cups components.
+In particular, removing uses of strlcpy and replacing host architecture-
+specific includes is thus needed.
+
+Bug-Debian: https://bugs.debian.org/837936
+---
+ Makedefs.in | 1 +
+ configure.ac | 9 +++++++++
+ man/Makefile | 5 ++---
+ man/mantohtml.c | 15 ++++++++++-----
+ 4 files changed, 22 insertions(+), 8 deletions(-)
+
+diff --git a/Makedefs.in b/Makedefs.in
+index 038bb94..291099c 100644
+--- a/Makedefs.in
++++ b/Makedefs.in
+@@ -22,6 +22,7 @@ CUPS_VERSION = @CUPS_VERSION@
+ AR = @AR@
+ AWK = @AWK@
+ CC = @LIBTOOL_CC@ @CC@
++CC_FOR_BUILD = @CC_FOR_BUILD@
+ CHMOD = @CHMOD@
+ CXX = @LIBTOOL_CXX@ @CXX@
+ DSO = @DSO@
+diff --git a/configure.ac b/configure.ac
+index 93a4b97..b60b832 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -20,6 +20,15 @@ sinclude(config-scripts/cups-common.m4)
+ sinclude(config-scripts/cups-directories.m4)
+ sinclude(config-scripts/cups-manpages.m4)
+
++AC_MSG_CHECKING([for build system compiler])
++if test "$cross_compiling" = yes; then
++ CC_FOR_BUILD=${CC_FOR_BUILD-cc}
++else
++ CC_FOR_BUILD=${CC}
++fi
++AC_MSG_RESULT(${CC_FOR_BUILD})
++AC_SUBST(CC_FOR_BUILD)
++
+ sinclude(config-scripts/cups-sharedlibs.m4)
+ sinclude(config-scripts/cups-libtool.m4)
+ sinclude(config-scripts/cups-compiler.m4)
+diff --git a/man/Makefile b/man/Makefile
+index 621fe60..e01591a 100644
+--- a/man/Makefile
++++ b/man/Makefile
+@@ -222,6 +222,5 @@ html: $(MAN1) $(MAN5) $(MAN7) $(MAN8) mantohtml
+ ./mantohtml $$file >../doc/help/man-`basename $$file .8`.html; \
+ done
+
+-mantohtml: mantohtml.o ../cups/$(LIBCUPSSTATIC)
+- $(LD_CC) $(ARCHFLAGS) $(ALL_LDFLAGS) -o $@ mantohtml.o $(LINKCUPSSTATIC)
+- $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
++mantohtml: mantohtml.c
++ $(CC_FOR_BUILD) -o $@ $<
+diff --git a/man/mantohtml.c b/man/mantohtml.c
+index 2a9353a..6223f17 100644
+--- a/man/mantohtml.c
++++ b/man/mantohtml.c
+@@ -11,8 +11,10 @@
+ * Include necessary headers.
+ */
+
+-#include <cups/string-private.h>
+-#include <cups/array-private.h>
++#include <ctype.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
+ #include <unistd.h>
+
+
+@@ -811,7 +813,8 @@ main(int argc, /* I - Number of command-line args */
+ * Anchor for HTML output...
+ */
+
+- strlcpy(anchor, line + 4, sizeof(anchor));
++ strncpy(anchor, line + 4, sizeof(anchor) - 1);
++ anchor[sizeof(anchor) - 1] = '\0';
+ }
+ else if (strncmp(line, ".\\\"", 3))
+ {
+@@ -940,7 +943,8 @@ html_alternate(const char *s, /* I - String */
+ manfile[1024], /* Man page filename */
+ manurl[1024]; /* Man page URL */
+
+- strlcpy(name, s, sizeof(name));
++ strncpy(name, s, sizeof(name) - 1);
++ name[sizeof(name) - 1] = '\0';
+ if ((size_t)(end - s) < sizeof(name))
+ name[end - s] = '\0';
+
+@@ -1173,7 +1177,8 @@ html_fputs(const char *s, /* I - String */
+ if (end[-1] == ',' || end[-1] == '.' || end[-1] == ')')
+ end --;
+
+- strlcpy(temp, s, sizeof(temp));
++ strncpy(temp, s, sizeof(temp) - 1);
++ temp[sizeof(temp) - 1] = '\0';
+ if ((size_t)(end -s) < sizeof(temp))
+ temp[end - s] = '\0';
+
diff -Nru cups-2.3.3op2/debian/patches/0011-Debian-Reproducibility-Do-not-run-stp-tests-as-root.patch cups-2.3.3op2/debian/patches/0011-Debian-Reproducibility-Do-not-run-stp-tests-as-root.patch
--- cups-2.3.3op2/debian/patches/0011-Debian-Reproducibility-Do-not-run-stp-tests-as-root.patch 2021-02-12 14:09:29.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0011-Debian-Reproducibility-Do-not-run-stp-tests-as-root.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,23 +0,0 @@
-From: Didier Raboud <odyx@debian.org>
-Date: Wed, 3 Feb 2021 16:30:08 +0100
-Subject: Debian: Reproducibility: Do not run stp tests as root
-
-Reprotest insist in running these tests as root; skip them there.
----
- test/run-stp-tests.sh | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/test/run-stp-tests.sh b/test/run-stp-tests.sh
-index 4498a8c..ce868ea 100755
---- a/test/run-stp-tests.sh
-+++ b/test/run-stp-tests.sh
-@@ -19,7 +19,8 @@ argcount=$#
-
- if test "x`id -u`" = x0; then
- echo Please run this as a normal user. Not supported when run as root.
-- exit 1
-+ echo "Debian Reproducibility: Skipping allowed, as this is known to break under reprotest. This message MUST NOT be visible in normal Debian buildd logs."
-+ exit 0
- fi
-
- #
diff -Nru cups-2.3.3op2/debian/patches/0012-Debian-Reproducibility-httpAddrGetHostname-test-fail.patch cups-2.3.3op2/debian/patches/0012-Debian-Reproducibility-httpAddrGetHostname-test-fail.patch
--- cups-2.3.3op2/debian/patches/0012-Debian-Reproducibility-httpAddrGetHostname-test-fail.patch 1970-01-01 01:00:00.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0012-Debian-Reproducibility-httpAddrGetHostname-test-fail.patch 2021-05-27 08:49:36.000000000 +0200
@@ -0,0 +1,23 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Wed, 3 Feb 2021 14:27:34 +0100
+Subject: Debian: Reproducibility: httpAddrGetHostname() test fails under
+ reprotest; skip it
+
+---
+ cups/testhttp.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/cups/testhttp.c b/cups/testhttp.c
+index dfb767c..8cb87d6 100644
+--- a/cups/testhttp.c
++++ b/cups/testhttp.c
+@@ -416,8 +416,7 @@ main(int argc, /* I - Number of command-line arguments */
+ }
+ else
+ {
+- failures ++;
+- puts("FAIL");
++ puts("FAIL (Debian Reproducibility; failure allowed, as this is known to fail under reprotest");
+ }
+
+ /*
diff -Nru cups-2.3.3op2/debian/patches/0012-Debian-Reproducibility-Run-testlang-for-each-provide.patch cups-2.3.3op2/debian/patches/0012-Debian-Reproducibility-Run-testlang-for-each-provide.patch
--- cups-2.3.3op2/debian/patches/0012-Debian-Reproducibility-Run-testlang-for-each-provide.patch 2021-02-12 14:09:29.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0012-Debian-Reproducibility-Run-testlang-for-each-provide.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
-From: Didier Raboud <odyx@debian.org>
-Date: Wed, 3 Feb 2021 16:20:20 +0100
-Subject: Debian: Reproducibility: Run testlang for each provided CUPS locale
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 8bit
-
-… and only for these.
-
-Of the build environment forces LC_ALL to a non-provided locale, the build will fail.
----
- cups/Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/cups/Makefile b/cups/Makefile
-index 4e2aa6d..2068349 100644
---- a/cups/Makefile
-+++ b/cups/Makefile
-@@ -639,9 +639,9 @@ testlang: testlang.o $(LIBCUPSSTATIC)
- lang=`basename $$po .po | sed -e '1,$$s/^cups_//'`; \
- $(MKDIR) locale/$$lang; \
- $(LN) ../../$$po locale/$$lang; \
-+ echo Running language API tests for $$lang...; \
-+ LOCALEDIR=locale ./testlang -l $$lang; \
- done
-- echo Running language API tests...
-- LOCALEDIR=locale ./testlang
-
-
- #
diff -Nru cups-2.3.3op2/debian/patches/0013-Debian-po4a-infrastructure-and-translations-for-manp.patch cups-2.3.3op2/debian/patches/0013-Debian-po4a-infrastructure-and-translations-for-manp.patch
--- cups-2.3.3op2/debian/patches/0013-Debian-po4a-infrastructure-and-translations-for-manp.patch 2021-02-12 14:09:29.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0013-Debian-po4a-infrastructure-and-translations-for-manp.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,341 +0,0 @@
-From: Didier Raboud <odyx@debian.org>
-Date: Tue, 9 Aug 2016 18:11:50 +0200
-Subject: Debian: po4a infrastructure and translations for manpages
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 8bit
-
-Author: Nicolas François <nicolas.francois@centraliens.net>, Helge Kreutzmann <debian@helgefjell.de>
-Origin: vendor
-Bug-Debian: https://bugs.debian.org/478597
----
- man/Makefile | 17 +++-
- man/Makefile.l10n | 235 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
- man/de/Makefile | 7 ++
- man/fr/Makefile | 7 ++
- 4 files changed, 264 insertions(+), 2 deletions(-)
- create mode 100644 man/Makefile.l10n
- create mode 100644 man/de/Makefile
- create mode 100644 man/fr/Makefile
-
-diff --git a/man/Makefile b/man/Makefile
-index e01591a..48f06c4 100644
---- a/man/Makefile
-+++ b/man/Makefile
-@@ -63,12 +63,18 @@ MAN8 = cupsaccept.8 \
- lpmove.8 \
- lpc.8
-
-+LANGUAGES=de fr
-
- #
- # Make everything...
- #
-
--all: $(MAN1) $(MAN5) $(MAN7) $(MAN8)
-+all: $(MAN1) $(MAN5) $(MAN7) $(MAN8) translations
-+
-+translations:
-+ # Update the translations and build the translated material
-+ po4a --previous ../debian/manpage-po4a/cups.cfg
-+ for lang in $(LANGUAGES); do $(MAKE) -C $$lang; done
-
-
- #
-@@ -91,6 +97,12 @@ unittests:
-
- clean:
- $(RM) mantohtml mantohtml.o
-+ $(RM) $(MAN1) $(MAN5) $(MAN7) $(MAN8)
-+ for lang in $(LANGUAGES); do $(MAKE) -C $$lang clean; done
-+ # Make sure the PO files are updated and remove generated
-+ # translations.
-+ po4a --previous --rm-translations ../debian/manpage-po4a/cups.cfg
-+ $(RM) ../debian/manpage-po4a/po/cups.pot
-
-
- #
-@@ -142,6 +154,7 @@ install-data: all
- $(RM) $(MANDIR)/man8/$$file; \
- $(LN) cupsd-helper.8 $(MANDIR)/man8/$$file; \
- done
-+ for lang in $(LANGUAGES); do $(MAKE) -C $$lang install; done
-
-
- #
-@@ -189,7 +202,7 @@ uninstall:
- for file in $(MAN8) cupsenable.8 cupsreject.8 cups-deviced.8 cups-driverd.8 cups-exec.8; do \
- $(RM) $(MANDIR)/man8/$$file; \
- done
-- -$(RMDIR) $(MANDIR)/man8
-+ -$(RMDIR) $(AMANDIR)/man$(MAN8DIR)
-
-
- #
-diff --git a/man/Makefile.l10n b/man/Makefile.l10n
-new file mode 100644
-index 0000000..08390f5
---- /dev/null
-+++ b/man/Makefile.l10n
-@@ -0,0 +1,235 @@
-+#
-+# Man page makefile for CUPS.
-+#
-+# Copyright © 2007-2019 by Apple Inc.
-+# Copyright © 1993-2006 by Easy Software Products.
-+#
-+# Licensed under Apache License v2.0. See the file "LICENSE" for more
-+# information.
-+#
-+
-+include ../../Makedefs
-+
-+
-+#
-+# Man pages...
-+#
-+
-+MAN1 = cancel.1 \
-+ cups.1 \
-+ cups-config.1 \
-+ cupstestppd.1 \
-+ ippeveprinter.1 \
-+ $(IPPFIND_MAN) \
-+ ipptool.1 \
-+ lp.1 \
-+ lpoptions.1 \
-+ lpq.1 \
-+ lprm.1 \
-+ lpr.1 \
-+ lpstat.1 \
-+ ppdc.1 \
-+ ppdhtml.1 \
-+ ppdi.1 \
-+ ppdmerge.1 \
-+ ppdpo.1
-+MAN5 = classes.conf.5 \
-+ client.conf.5 \
-+ cups-files.conf.5 \
-+ cups-snmp.conf.5 \
-+ cupsd.conf.5 \
-+ cupsd-logs.5 \
-+ ipptoolfile.5 \
-+ mailto.conf.5 \
-+ mime.convs.5 \
-+ mime.types.5 \
-+ ppdcfile.5 \
-+ printers.conf.5 \
-+ subscriptions.conf.5
-+MAN7 = backend.7 \
-+ filter.7 \
-+ ippevepcl.7 \
-+ notifier.7
-+MAN8 = cupsaccept.8 \
-+ cupsctl.8 \
-+ cupsfilter.8 \
-+ cups-lpd.8 \
-+ cups-snmp.8 \
-+ cupsd.8 \
-+ cupsd-helper.8 \
-+ cupsenable.8 \
-+ lpadmin.8 \
-+ lpinfo.8 \
-+ lpmove.8 \
-+ lpc.8
-+
-+
-+#
-+# Make everything...
-+#
-+
-+# Debian-specific patch: Just assume all files are here.
-+all:
-+
-+
-+#
-+# Make library targets...
-+#
-+
-+libs:
-+
-+
-+#
-+# Make unit tests...
-+#
-+
-+unittests:
-+
-+
-+#
-+# Clean all config and object files...
-+#
-+
-+clean:
-+ $(RM) mantohtml mantohtml.o
-+
-+
-+#
-+# Dummy depend target...
-+#
-+
-+depend:
-+
-+
-+#
-+# Install all targets...
-+#
-+
-+# Debian-specific patch: directory-based language namespace
-+MANDIR := $(MANDIR)/$(LANGUAGE)
-+
-+install: all install-data install-headers install-libs install-exec
-+
-+
-+#
-+# Install data files...
-+#
-+
-+# Debian-specific patch: skip if doesn't exist
-+install-data: all
-+ echo Installing man pages in $(MANDIR)/man1...
-+ $(INSTALL_DIR) -m 755 $(MANDIR)/man1
-+ for file in $(MAN1); do \
-+ [ ! -r $$file ] || \
-+ $(INSTALL_MAN) $$file $(MANDIR)/man1; \
-+ done
-+ echo Installing man pages in $(MANDIR)/man5...
-+ $(INSTALL_DIR) -m 755 $(MANDIR)/man5
-+ for file in $(MAN5); do \
-+ [ ! -r $$file ] || \
-+ $(INSTALL_MAN) $$file $(MANDIR)/man5; \
-+ done
-+ echo Installing man pages in $(MANDIR)/man7...
-+ $(INSTALL_DIR) -m 755 $(MANDIR)/man7
-+ for file in $(MAN7); do \
-+ [ ! -r $$file ] || \
-+ $(INSTALL_MAN) $$file $(MANDIR)/man7; \
-+ done
-+ $(RM) $(MANDIR)/man7/ippeveps.7
-+ $(LN) ippevepcl.7 $(MANDIR)/man7/ippeveps.7
-+ echo Installing man pages in $(MANDIR)/man8...
-+ $(INSTALL_DIR) -m 755 $(MANDIR)/man8
-+ for file in $(MAN8); do \
-+ [ ! -r $$file ] || \
-+ $(INSTALL_MAN) $$file $(MANDIR)/man8; \
-+ done
-+ $(RM) $(MANDIR)/man8/cupsdisable.8
-+ $(LN) cupsenable.8 $(MANDIR)/man8/cupsdisable.8
-+ $(RM) $(MANDIR)/man8/cupsreject.8
-+ $(LN) cupsaccept.8 $(MANDIR)/man8/cupsreject.8
-+ for file in cups-deviced.8 cups-driverd.8 cups-exec.8; do \
-+ $(RM) $(MANDIR)/man8/$$file; \
-+ $(LN) cupsd-helper.8 $(MANDIR)/man8/$$file; \
-+ done
-+
-+
-+#
-+# Install programs...
-+#
-+
-+install-exec:
-+
-+
-+#
-+# Install headers...
-+#
-+
-+install-headers:
-+
-+
-+#
-+# Install libraries...
-+#
-+
-+install-libs:
-+
-+
-+#
-+# Uninstall files...
-+#
-+
-+uninstall:
-+ echo Uninstalling man pages from $(MANDIR)/man1...
-+ for file in $(MAN1); do \
-+ $(RM) $(MANDIR)/man1/$$file; \
-+ done
-+ -$(RMDIR) $(MANDIR)/man1
-+ echo Uninstalling man pages from $(MANDIR)/man5...
-+ for file in $(MAN5); do \
-+ $(RM) $(MANDIR)/man5/$$file; \
-+ done
-+ -$(RMDIR) $(MANDIR)/man5
-+ echo Uninstalling man pages from $(MANDIR)/man7...
-+ for file in $(MAN7) ippeveps.7; do \
-+ $(RM) $(MANDIR)/man7/$$file; \
-+ done
-+ -$(RMDIR) $(MANDIR)/man7
-+ echo Uninstalling man pages from $(MANDIR)/man8...
-+ for file in $(MAN8) cupsenable.8 cupsreject.8 cups-deviced.8 cups-driverd.8 cups-exec.8; do \
-+ $(RM) $(MANDIR)/man8/$$file; \
-+ done
-+ -$(RMDIR) $(MANDIR)/man8
-+
-+
-+#
-+# Local programs (not built when cross-compiling...)
-+#
-+
-+local: html
-+
-+
-+#
-+# Make html versions of man pages...
-+#
-+
-+html: $(MAN1) $(MAN5) $(MAN7) $(MAN8) mantohtml
-+ echo Converting man pages to HTML...
-+ for file in $(MAN1); do \
-+ echo " $$file..."; \
-+ ./mantohtml $$file >../doc/help/man-`basename $$file .1`.html; \
-+ done
-+ for file in $(MAN5); do \
-+ echo " $$file..."; \
-+ ./mantohtml $$file >../doc/help/man-`basename $$file .5`.html; \
-+ done
-+ for file in $(MAN7); do \
-+ echo " $$file..."; \
-+ ./mantohtml $$file >../doc/help/man-`basename $$file .7`.html; \
-+ done
-+ for file in $(MAN8); do \
-+ echo " $$file..."; \
-+ ./mantohtml $$file >../doc/help/man-`basename $$file .8`.html; \
-+ done
-+
-+mantohtml: mantohtml.c
-+ $(CC_FOR_BUILD) -o $@ $<
-diff --git a/man/de/Makefile b/man/de/Makefile
-new file mode 100644
-index 0000000..7c23784
---- /dev/null
-+++ b/man/de/Makefile
-@@ -0,0 +1,7 @@
-+#
-+# Man page makefile for the Common UNIX Printing System (CUPS).
-+#
-+
-+LANGUAGE=de
-+
-+include ../Makefile.l10n
-diff --git a/man/fr/Makefile b/man/fr/Makefile
-new file mode 100644
-index 0000000..6a50e93
---- /dev/null
-+++ b/man/fr/Makefile
-@@ -0,0 +1,7 @@
-+#
-+# Man page makefile for the Common UNIX Printing System (CUPS).
-+#
-+
-+LANGUAGE=fr
-+
-+include ../Makefile.l10n
diff -Nru cups-2.3.3op2/debian/patches/0013-Debian-Reproducibility-Do-not-run-stp-tests-as-root.patch cups-2.3.3op2/debian/patches/0013-Debian-Reproducibility-Do-not-run-stp-tests-as-root.patch
--- cups-2.3.3op2/debian/patches/0013-Debian-Reproducibility-Do-not-run-stp-tests-as-root.patch 1970-01-01 01:00:00.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0013-Debian-Reproducibility-Do-not-run-stp-tests-as-root.patch 2021-05-27 08:49:36.000000000 +0200
@@ -0,0 +1,23 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Wed, 3 Feb 2021 16:30:08 +0100
+Subject: Debian: Reproducibility: Do not run stp tests as root
+
+Reprotest insist in running these tests as root; skip them there.
+---
+ test/run-stp-tests.sh | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/test/run-stp-tests.sh b/test/run-stp-tests.sh
+index 4498a8c..ce868ea 100755
+--- a/test/run-stp-tests.sh
++++ b/test/run-stp-tests.sh
+@@ -19,7 +19,8 @@ argcount=$#
+
+ if test "x`id -u`" = x0; then
+ echo Please run this as a normal user. Not supported when run as root.
+- exit 1
++ echo "Debian Reproducibility: Skipping allowed, as this is known to break under reprotest. This message MUST NOT be visible in normal Debian buildd logs."
++ exit 0
+ fi
+
+ #
diff -Nru cups-2.3.3op2/debian/patches/0014-Debian-Reproducibility-Run-testlang-for-each-provide.patch cups-2.3.3op2/debian/patches/0014-Debian-Reproducibility-Run-testlang-for-each-provide.patch
--- cups-2.3.3op2/debian/patches/0014-Debian-Reproducibility-Run-testlang-for-each-provide.patch 1970-01-01 01:00:00.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0014-Debian-Reproducibility-Run-testlang-for-each-provide.patch 2021-05-27 08:49:36.000000000 +0200
@@ -0,0 +1,30 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Wed, 3 Feb 2021 16:20:20 +0100
+Subject: Debian: Reproducibility: Run testlang for each provided CUPS locale
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 8bit
+
+… and only for these.
+
+Of the build environment forces LC_ALL to a non-provided locale, the build will fail.
+---
+ cups/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/cups/Makefile b/cups/Makefile
+index 4e2aa6d..2068349 100644
+--- a/cups/Makefile
++++ b/cups/Makefile
+@@ -639,9 +639,9 @@ testlang: testlang.o $(LIBCUPSSTATIC)
+ lang=`basename $$po .po | sed -e '1,$$s/^cups_//'`; \
+ $(MKDIR) locale/$$lang; \
+ $(LN) ../../$$po locale/$$lang; \
++ echo Running language API tests for $$lang...; \
++ LOCALEDIR=locale ./testlang -l $$lang; \
+ done
+- echo Running language API tests...
+- LOCALEDIR=locale ./testlang
+
+
+ #
diff -Nru cups-2.3.3op2/debian/patches/0015-Debian-po4a-infrastructure-and-translations-for-manp.patch cups-2.3.3op2/debian/patches/0015-Debian-po4a-infrastructure-and-translations-for-manp.patch
--- cups-2.3.3op2/debian/patches/0015-Debian-po4a-infrastructure-and-translations-for-manp.patch 1970-01-01 01:00:00.000000000 +0100
+++ cups-2.3.3op2/debian/patches/0015-Debian-po4a-infrastructure-and-translations-for-manp.patch 2021-05-27 08:49:36.000000000 +0200
@@ -0,0 +1,341 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Tue, 9 Aug 2016 18:11:50 +0200
+Subject: Debian: po4a infrastructure and translations for manpages
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 8bit
+
+Author: Nicolas François <nicolas.francois@centraliens.net>, Helge Kreutzmann <debian@helgefjell.de>
+Origin: vendor
+Bug-Debian: https://bugs.debian.org/478597
+---
+ man/Makefile | 17 +++-
+ man/Makefile.l10n | 235 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ man/de/Makefile | 7 ++
+ man/fr/Makefile | 7 ++
+ 4 files changed, 264 insertions(+), 2 deletions(-)
+ create mode 100644 man/Makefile.l10n
+ create mode 100644 man/de/Makefile
+ create mode 100644 man/fr/Makefile
+
+diff --git a/man/Makefile b/man/Makefile
+index e01591a..48f06c4 100644
+--- a/man/Makefile
++++ b/man/Makefile
+@@ -63,12 +63,18 @@ MAN8 = cupsaccept.8 \
+ lpmove.8 \
+ lpc.8
+
++LANGUAGES=de fr
+
+ #
+ # Make everything...
+ #
+
+-all: $(MAN1) $(MAN5) $(MAN7) $(MAN8)
++all: $(MAN1) $(MAN5) $(MAN7) $(MAN8) translations
++
++translations:
++ # Update the translations and build the translated material
++ po4a --previous ../debian/manpage-po4a/cups.cfg
++ for lang in $(LANGUAGES); do $(MAKE) -C $$lang; done
+
+
+ #
+@@ -91,6 +97,12 @@ unittests:
+
+ clean:
+ $(RM) mantohtml mantohtml.o
++ $(RM) $(MAN1) $(MAN5) $(MAN7) $(MAN8)
++ for lang in $(LANGUAGES); do $(MAKE) -C $$lang clean; done
++ # Make sure the PO files are updated and remove generated
++ # translations.
++ po4a --previous --rm-translations ../debian/manpage-po4a/cups.cfg
++ $(RM) ../debian/manpage-po4a/po/cups.pot
+
+
+ #
+@@ -142,6 +154,7 @@ install-data: all
+ $(RM) $(MANDIR)/man8/$$file; \
+ $(LN) cupsd-helper.8 $(MANDIR)/man8/$$file; \
+ done
++ for lang in $(LANGUAGES); do $(MAKE) -C $$lang install; done
+
+
+ #
+@@ -189,7 +202,7 @@ uninstall:
+ for file in $(MAN8) cupsenable.8 cupsreject.8 cups-deviced.8 cups-driverd.8 cups-exec.8; do \
+ $(RM) $(MANDIR)/man8/$$file; \
+ done
+- -$(RMDIR) $(MANDIR)/man8
++ -$(RMDIR) $(AMANDIR)/man$(MAN8DIR)
+
+
+ #
+diff --git a/man/Makefile.l10n b/man/Makefile.l10n
+new file mode 100644
+index 0000000..08390f5
+--- /dev/null
++++ b/man/Makefile.l10n
+@@ -0,0 +1,235 @@
++#
++# Man page makefile for CUPS.
++#
++# Copyright © 2007-2019 by Apple Inc.
++# Copyright © 1993-2006 by Easy Software Products.
++#
++# Licensed under Apache License v2.0. See the file "LICENSE" for more
++# information.
++#
++
++include ../../Makedefs
++
++
++#
++# Man pages...
++#
++
++MAN1 = cancel.1 \
++ cups.1 \
++ cups-config.1 \
++ cupstestppd.1 \
++ ippeveprinter.1 \
++ $(IPPFIND_MAN) \
++ ipptool.1 \
++ lp.1 \
++ lpoptions.1 \
++ lpq.1 \
++ lprm.1 \
++ lpr.1 \
++ lpstat.1 \
++ ppdc.1 \
++ ppdhtml.1 \
++ ppdi.1 \
++ ppdmerge.1 \
++ ppdpo.1
++MAN5 = classes.conf.5 \
++ client.conf.5 \
++ cups-files.conf.5 \
++ cups-snmp.conf.5 \
++ cupsd.conf.5 \
++ cupsd-logs.5 \
++ ipptoolfile.5 \
++ mailto.conf.5 \
++ mime.convs.5 \
++ mime.types.5 \
++ ppdcfile.5 \
++ printers.conf.5 \
++ subscriptions.conf.5
++MAN7 = backend.7 \
++ filter.7 \
++ ippevepcl.7 \
++ notifier.7
++MAN8 = cupsaccept.8 \
++ cupsctl.8 \
++ cupsfilter.8 \
++ cups-lpd.8 \
++ cups-snmp.8 \
++ cupsd.8 \
++ cupsd-helper.8 \
++ cupsenable.8 \
++ lpadmin.8 \
++ lpinfo.8 \
++ lpmove.8 \
++ lpc.8
++
++
++#
++# Make everything...
++#
++
++# Debian-specific patch: Just assume all files are here.
++all:
++
++
++#
++# Make library targets...
++#
++
++libs:
++
++
++#
++# Make unit tests...
++#
++
++unittests:
++
++
++#
++# Clean all config and object files...
++#
++
++clean:
++ $(RM) mantohtml mantohtml.o
++
++
++#
++# Dummy depend target...
++#
++
++depend:
++
++
++#
++# Install all targets...
++#
++
++# Debian-specific patch: directory-based language namespace
++MANDIR := $(MANDIR)/$(LANGUAGE)
++
++install: all install-data install-headers install-libs install-exec
++
++
++#
++# Install data files...
++#
++
++# Debian-specific patch: skip if doesn't exist
++install-data: all
++ echo Installing man pages in $(MANDIR)/man1...
++ $(INSTALL_DIR) -m 755 $(MANDIR)/man1
++ for file in $(MAN1); do \
++ [ ! -r $$file ] || \
++ $(INSTALL_MAN) $$file $(MANDIR)/man1; \
++ done
++ echo Installing man pages in $(MANDIR)/man5...
++ $(INSTALL_DIR) -m 755 $(MANDIR)/man5
++ for file in $(MAN5); do \
++ [ ! -r $$file ] || \
++ $(INSTALL_MAN) $$file $(MANDIR)/man5; \
++ done
++ echo Installing man pages in $(MANDIR)/man7...
++ $(INSTALL_DIR) -m 755 $(MANDIR)/man7
++ for file in $(MAN7); do \
++ [ ! -r $$file ] || \
++ $(INSTALL_MAN) $$file $(MANDIR)/man7; \
++ done
++ $(RM) $(MANDIR)/man7/ippeveps.7
++ $(LN) ippevepcl.7 $(MANDIR)/man7/ippeveps.7
++ echo Installing man pages in $(MANDIR)/man8...
++ $(INSTALL_DIR) -m 755 $(MANDIR)/man8
++ for file in $(MAN8); do \
++ [ ! -r $$file ] || \
++ $(INSTALL_MAN) $$file $(MANDIR)/man8; \
++ done
++ $(RM) $(MANDIR)/man8/cupsdisable.8
++ $(LN) cupsenable.8 $(MANDIR)/man8/cupsdisable.8
++ $(RM) $(MANDIR)/man8/cupsreject.8
++ $(LN) cupsaccept.8 $(MANDIR)/man8/cupsreject.8
++ for file in cups-deviced.8 cups-driverd.8 cups-exec.8; do \
++ $(RM) $(MANDIR)/man8/$$file; \
++ $(LN) cupsd-helper.8 $(MANDIR)/man8/$$file; \
++ done
++
++
++#
++# Install programs...
++#
++
++install-exec:
++
++
++#
++# Install headers...
++#
++
++install-headers:
++
++
++#
++# Install libraries...
++#
++
++install-libs:
++
++
++#
++# Uninstall files...
++#
++
++uninstall:
++ echo Uninstalling man pages from $(MANDIR)/man1...
++ for file in $(MAN1); do \
++ $(RM) $(MANDIR)/man1/$$file; \
++ done
++ -$(RMDIR) $(MANDIR)/man1
++ echo Uninstalling man pages from $(MANDIR)/man5...
++ for file in $(MAN5); do \
++ $(RM) $(MANDIR)/man5/$$file; \
++ done
++ -$(RMDIR) $(MANDIR)/man5
++ echo Uninstalling man pages from $(MANDIR)/man7...
++ for file in $(MAN7) ippeveps.7; do \
++ $(RM) $(MANDIR)/man7/$$file; \
++ done
++ -$(RMDIR) $(MANDIR)/man7
++ echo Uninstalling man pages from $(MANDIR)/man8...
++ for file in $(MAN8) cupsenable.8 cupsreject.8 cups-deviced.8 cups-driverd.8 cups-exec.8; do \
++ $(RM) $(MANDIR)/man8/$$file; \
++ done
++ -$(RMDIR) $(MANDIR)/man8
++
++
++#
++# Local programs (not built when cross-compiling...)
++#
++
++local: html
++
++
++#
++# Make html versions of man pages...
++#
++
++html: $(MAN1) $(MAN5) $(MAN7) $(MAN8) mantohtml
++ echo Converting man pages to HTML...
++ for file in $(MAN1); do \
++ echo " $$file..."; \
++ ./mantohtml $$file >../doc/help/man-`basename $$file .1`.html; \
++ done
++ for file in $(MAN5); do \
++ echo " $$file..."; \
++ ./mantohtml $$file >../doc/help/man-`basename $$file .5`.html; \
++ done
++ for file in $(MAN7); do \
++ echo " $$file..."; \
++ ./mantohtml $$file >../doc/help/man-`basename $$file .7`.html; \
++ done
++ for file in $(MAN8); do \
++ echo " $$file..."; \
++ ./mantohtml $$file >../doc/help/man-`basename $$file .8`.html; \
++ done
++
++mantohtml: mantohtml.c
++ $(CC_FOR_BUILD) -o $@ $<
+diff --git a/man/de/Makefile b/man/de/Makefile
+new file mode 100644
+index 0000000..7c23784
+--- /dev/null
++++ b/man/de/Makefile
+@@ -0,0 +1,7 @@
++#
++# Man page makefile for the Common UNIX Printing System (CUPS).
++#
++
++LANGUAGE=de
++
++include ../Makefile.l10n
+diff --git a/man/fr/Makefile b/man/fr/Makefile
+new file mode 100644
+index 0000000..6a50e93
+--- /dev/null
++++ b/man/fr/Makefile
+@@ -0,0 +1,7 @@
++#
++# Man page makefile for the Common UNIX Printing System (CUPS).
++#
++
++LANGUAGE=fr
++
++include ../Makefile.l10n
diff -Nru cups-2.3.3op2/debian/patches/series cups-2.3.3op2/debian/patches/series
--- cups-2.3.3op2/debian/patches/series 2021-02-12 14:09:29.000000000 +0100
+++ cups-2.3.3op2/debian/patches/series 2021-05-27 08:49:36.000000000 +0200
@@ -1,13 +1,15 @@
-0001-Let-cups.1-point-to-client.conf.5-not-client.conf.7.patch
-0002-Apple-AirPrint-support.patch
-0003-Keep-foomatic-PPDs-recommended-stanzas-in-NickNames.patch
-0004-Debian-Set-LogFileGroup-to-adm.patch
-0005-Debian-Move-cupsd.conf.default-from-SERVERROOT-to-DA.patch
-0006-Debian-Do-not-alter-the-permissions-of-cupsd.conf-ev.patch
-0007-Debian-Show-compile-command-lines.patch
-0008-Debian-Use-dpkg-architecture-in-cups-config-to-make-.patch
-0009-Debian-Build-mantohtml-with-the-build-architecture-c.patch
-0010-Debian-Reproducibility-httpAddrGetHostname-test-fail.patch
-0011-Debian-Reproducibility-Do-not-run-stp-tests-as-root.patch
-0012-Debian-Reproducibility-Run-testlang-for-each-provide.patch
-0013-Debian-po4a-infrastructure-and-translations-for-manp.patch
+0001-backend-usb-libusb.c-Use-60s-timeout-for-reading-at-.patch
+0002-backend-usb-libusb.c-Revert-enforcing-read-limits.patch
+0003-Let-cups.1-point-to-client.conf.5-not-client.conf.7.patch
+0004-Apple-AirPrint-support.patch
+0005-Keep-foomatic-PPDs-recommended-stanzas-in-NickNames.patch
+0006-Debian-Set-LogFileGroup-to-adm.patch
+0007-Debian-Move-cupsd.conf.default-from-SERVERROOT-to-DA.patch
+0008-Debian-Do-not-alter-the-permissions-of-cupsd.conf-ev.patch
+0009-Debian-Show-compile-command-lines.patch
+0010-Debian-Use-dpkg-architecture-in-cups-config-to-make-.patch
+0011-Debian-Build-mantohtml-with-the-build-architecture-c.patch
+0012-Debian-Reproducibility-httpAddrGetHostname-test-fail.patch
+0013-Debian-Reproducibility-Do-not-run-stp-tests-as-root.patch
+0014-Debian-Reproducibility-Run-testlang-for-each-provide.patch
+0015-Debian-po4a-infrastructure-and-translations-for-manp.patch
Reply to: