Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock X-Debbugs-Cc: c...@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 <zdoh...@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 <zdoh...@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 <o...@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 <zdoh...@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 <o...@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.kamppe...@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 <zdoh...@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.kampet...@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 <o...@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.kamppe...@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 <mp...@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 <o...@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.kampet...@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 <mp...@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 <mp...@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 <o...@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.kampet...@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 <mp...@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 <o...@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 <hel...@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.kampet...@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 <o...@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 <o...@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 <hel...@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 <o...@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 <o...@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 <o...@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 <o...@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.franc...@centraliens.net>, Helge Kreutzmann <deb...@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 <o...@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 <o...@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 <o...@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.franc...@centraliens.net>, Helge Kreutzmann <deb...@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