summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDidier Raboud <odyx@debian.org>2021-02-12 14:09:07 +0100
committerDidier Raboud <odyx@debian.org>2021-02-12 14:09:07 +0100
commitf73c4567702c753af87d11dfcfc40430e806a828 (patch)
tree6f9d4dff82166cffe871c3ad4003b8eabe018c65
parente52d5286f5d9ece4d1f980eeee9988d26327af40 (diff)
Commit patch queue (exported by git-debrebase)
[git-debrebase make-patches: export and commit patches]
-rw-r--r--debian/patches/0001-Let-cups.1-point-to-client.conf.5-not-client.conf.7.patch23
-rw-r--r--debian/patches/0002-Apple-AirPrint-support.patch90
-rw-r--r--debian/patches/0003-Keep-foomatic-PPDs-recommended-stanzas-in-NickNames.patch37
-rw-r--r--debian/patches/0004-Debian-Set-LogFileGroup-to-adm.patch23
-rw-r--r--debian/patches/0005-Debian-Move-cupsd.conf.default-from-SERVERROOT-to-DA.patch62
-rw-r--r--debian/patches/0006-Debian-Do-not-alter-the-permissions-of-cupsd.conf-ev.patch27
-rw-r--r--debian/patches/0007-Debian-Show-compile-command-lines.patch20
-rw-r--r--debian/patches/0008-Debian-Use-dpkg-architecture-in-cups-config-to-make-.patch49
-rw-r--r--debian/patches/0009-Debian-Build-mantohtml-with-the-build-architecture-c.patch110
-rw-r--r--debian/patches/0010-Debian-Reproducibility-httpAddrGetHostname-test-fail.patch23
-rw-r--r--debian/patches/0011-Debian-Reproducibility-Do-not-run-stp-tests-as-root.patch23
-rw-r--r--debian/patches/0012-Debian-Reproducibility-Run-testlang-for-each-provide.patch30
-rw-r--r--debian/patches/0013-Debian-po4a-infrastructure-and-translations-for-manp.patch341
-rw-r--r--debian/patches/series13
14 files changed, 871 insertions, 0 deletions
diff --git a/debian/patches/0001-Let-cups.1-point-to-client.conf.5-not-client.conf.7.patch b/debian/patches/0001-Let-cups.1-point-to-client.conf.5-not-client.conf.7.patch
new file mode 100644
index 000000000..db22adeee
--- /dev/null
+++ b/debian/patches/0001-Let-cups.1-point-to-client.conf.5-not-client.conf.7.patch
@@ -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 --git a/debian/patches/0002-Apple-AirPrint-support.patch b/debian/patches/0002-Apple-AirPrint-support.patch
new file mode 100644
index 000000000..5fc39dfe8
--- /dev/null
+++ b/debian/patches/0002-Apple-AirPrint-support.patch
@@ -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 --git a/debian/patches/0003-Keep-foomatic-PPDs-recommended-stanzas-in-NickNames.patch b/debian/patches/0003-Keep-foomatic-PPDs-recommended-stanzas-in-NickNames.patch
new file mode 100644
index 000000000..0da73cea6
--- /dev/null
+++ b/debian/patches/0003-Keep-foomatic-PPDs-recommended-stanzas-in-NickNames.patch
@@ -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 --git a/debian/patches/0004-Debian-Set-LogFileGroup-to-adm.patch b/debian/patches/0004-Debian-Set-LogFileGroup-to-adm.patch
new file mode 100644
index 000000000..597d9bfad
--- /dev/null
+++ b/debian/patches/0004-Debian-Set-LogFileGroup-to-adm.patch
@@ -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 --git a/debian/patches/0005-Debian-Move-cupsd.conf.default-from-SERVERROOT-to-DA.patch b/debian/patches/0005-Debian-Move-cupsd.conf.default-from-SERVERROOT-to-DA.patch
new file mode 100644
index 000000000..c4efe6cad
--- /dev/null
+++ b/debian/patches/0005-Debian-Move-cupsd.conf.default-from-SERVERROOT-to-DA.patch
@@ -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 --git a/debian/patches/0006-Debian-Do-not-alter-the-permissions-of-cupsd.conf-ev.patch b/debian/patches/0006-Debian-Do-not-alter-the-permissions-of-cupsd.conf-ev.patch
new file mode 100644
index 000000000..bcbc93a03
--- /dev/null
+++ b/debian/patches/0006-Debian-Do-not-alter-the-permissions-of-cupsd.conf-ev.patch
@@ -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 --git a/debian/patches/0007-Debian-Show-compile-command-lines.patch b/debian/patches/0007-Debian-Show-compile-command-lines.patch
new file mode 100644
index 000000000..a3c709609
--- /dev/null
+++ b/debian/patches/0007-Debian-Show-compile-command-lines.patch
@@ -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 --git a/debian/patches/0008-Debian-Use-dpkg-architecture-in-cups-config-to-make-.patch b/debian/patches/0008-Debian-Use-dpkg-architecture-in-cups-config-to-make-.patch
new file mode 100644
index 000000000..7f508d999
--- /dev/null
+++ b/debian/patches/0008-Debian-Use-dpkg-architecture-in-cups-config-to-make-.patch
@@ -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 --git a/debian/patches/0009-Debian-Build-mantohtml-with-the-build-architecture-c.patch b/debian/patches/0009-Debian-Build-mantohtml-with-the-build-architecture-c.patch
new file mode 100644
index 000000000..44c038d74
--- /dev/null
+++ b/debian/patches/0009-Debian-Build-mantohtml-with-the-build-architecture-c.patch
@@ -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 --git a/debian/patches/0010-Debian-Reproducibility-httpAddrGetHostname-test-fail.patch b/debian/patches/0010-Debian-Reproducibility-httpAddrGetHostname-test-fail.patch
new file mode 100644
index 000000000..8db9ff408
--- /dev/null
+++ b/debian/patches/0010-Debian-Reproducibility-httpAddrGetHostname-test-fail.patch
@@ -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 --git a/debian/patches/0011-Debian-Reproducibility-Do-not-run-stp-tests-as-root.patch b/debian/patches/0011-Debian-Reproducibility-Do-not-run-stp-tests-as-root.patch
new file mode 100644
index 000000000..545310493
--- /dev/null
+++ b/debian/patches/0011-Debian-Reproducibility-Do-not-run-stp-tests-as-root.patch
@@ -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 --git a/debian/patches/0012-Debian-Reproducibility-Run-testlang-for-each-provide.patch b/debian/patches/0012-Debian-Reproducibility-Run-testlang-for-each-provide.patch
new file mode 100644
index 000000000..952576dbf
--- /dev/null
+++ b/debian/patches/0012-Debian-Reproducibility-Run-testlang-for-each-provide.patch
@@ -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 --git a/debian/patches/0013-Debian-po4a-infrastructure-and-translations-for-manp.patch b/debian/patches/0013-Debian-po4a-infrastructure-and-translations-for-manp.patch
new file mode 100644
index 000000000..ef9aa4262
--- /dev/null
+++ b/debian/patches/0013-Debian-po4a-infrastructure-and-translations-for-manp.patch
@@ -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 --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 000000000..a718d15b1
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,13 @@
+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