summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDidier Raboud <odyx@debian.org>2019-09-02 13:19:56 +0200
committerDidier Raboud <odyx@debian.org>2019-09-02 13:19:56 +0200
commite24870dbda03aab6098aa3ed3209136c0d100ed4 (patch)
tree756acf27d9f2d36cb22d8a61c213943290b165f9
parenta50ef39f953764fa59550beab1af18d03f5d3750 (diff)
Commit patch queue (exported by git-debrebase)debian/2.3.0-1archive/debian/2.3.0-1
[git-debrebase make-patches: export and commit patches]
-rw-r--r--debian/patches/0003-Install-root-backends-world-readable.patch65
-rw-r--r--debian/patches/0020-Let-snmp-backend-also-use-manufacturer-specific-MIBs.patch47
-rw-r--r--debian/patches/0035-Build-mantohtml-with-the-build-architecture-compiler.patch110
-rw-r--r--debian/patches/airprint-support.patch93
-rw-r--r--debian/patches/confdirperms.patch28
-rw-r--r--debian/patches/cups-set-default-error-policy-retry-job.patch75
-rw-r--r--debian/patches/cupsd-set-default-for-SyncOnClose-to-Yes.patch66
-rw-r--r--debian/patches/debianize_cups-config.patch50
-rw-r--r--debian/patches/default_log_settings.patch27
-rw-r--r--debian/patches/do-not-broadcast-with-hostnames.patch26
-rw-r--r--debian/patches/fixes-for-jobs-with-multiple-files-and-multiple-formats.patch28
-rw-r--r--debian/patches/logfiles_adm_readable.patch62
-rw-r--r--debian/patches/man-cups-lpd-drop-dangling-references.patch25
-rw-r--r--debian/patches/manpage-hyphen-minus.patch573
-rw-r--r--debian/patches/manpage-translations.patch343
-rw-r--r--debian/patches/move-cupsd-conf-default-to-share.patch64
-rw-r--r--debian/patches/no-conffile-timestamp.patch68
-rw-r--r--debian/patches/pwg-raster-attributes.patch111
-rw-r--r--debian/patches/reactivate_recommended_driver.patch41
-rw-r--r--debian/patches/removecvstag.patch31
-rw-r--r--debian/patches/rename-systemd-units.patch59
-rw-r--r--debian/patches/series33
-rw-r--r--debian/patches/show-compile-command-lines.patch23
-rw-r--r--debian/patches/test-i18n-nonlinux.patch26
-rw-r--r--debian/patches/tests-fix-ppdLocalize-on-unclean-env.patch32
-rw-r--r--debian/patches/tests-ignore-ipv6-address-family-not-supported.patch25
-rw-r--r--debian/patches/tests-ignore-kfreebsd-amd64-not-a-pdf.patch26
-rw-r--r--debian/patches/tests-ignore-kfreebsd-unable-to-write-uncompressed-print-data.patch26
-rw-r--r--debian/patches/tests-ignore-usb-crash.patch33
-rw-r--r--debian/patches/tests-ignore-warnings.patch30
-rw-r--r--debian/patches/tests-make-lpstat-call-reproducible.patch25
-rw-r--r--debian/patches/tests-no-pdftourf.patch67
-rw-r--r--debian/patches/tests-use-ipv4-lo-address.patch65
-rw-r--r--debian/patches/tests-wait-on-unfinished-jobs-everytime.patch30
34 files changed, 2433 insertions, 0 deletions
diff --git a/debian/patches/0003-Install-root-backends-world-readable.patch b/debian/patches/0003-Install-root-backends-world-readable.patch
new file mode 100644
index 000000000..9acfef10e
--- /dev/null
+++ b/debian/patches/0003-Install-root-backends-world-readable.patch
@@ -0,0 +1,65 @@
+From: Martin Pitt <mpitt@debian.org>
+Date: Tue, 9 Aug 2016 18:11:06 +0200
+Subject: Install root backends world-readable
+
+This is needed:
+ - to comply with Debian Policy
+ - because it is both nonsensical to not do so
+ - it also breaks system checkers, bug reporting, etc
+
+Bug: http://www.cups.org/str.php?L2935
+Bug-Debian: http://bugs.debian.org/410171
+---
+ backend/Makefile | 4 ++--
+ scheduler/cups-deviced.c | 2 +-
+ scheduler/job.c | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/backend/Makefile b/backend/Makefile
+index e3ce49b..b734458 100644
+--- a/backend/Makefile
++++ b/backend/Makefile
+@@ -13,7 +13,7 @@ include ../Makedefs
+ # Object files...
+ #
+
+-# RBACKENDS are installed mode 0700 so cupsd will run them as root...
++# RBACKENDS are installed mode 0744 so cupsd will run them as root...
+ #
+ # UBACKENDS and ULBACKENDS are installed mode 0755 so cupsd will run them as
+ # an unprivileged user...
+@@ -118,7 +118,7 @@ install-exec: $(INSTALLXPC)
+ echo Installing backends in $(SERVERBIN)/backend
+ $(INSTALL_DIR) -m 755 $(SERVERBIN)/backend
+ for file in $(RBACKENDS); do \
+- $(LIBTOOL) $(INSTALL_BIN) -m 700 $$file $(SERVERBIN)/backend; \
++ $(LIBTOOL) $(INSTALL_BIN) -m 744 $$file $(SERVERBIN)/backend; \
+ done
+ for file in $(UBACKENDS); do \
+ $(INSTALL_BIN) $$file $(SERVERBIN)/backend; \
+diff --git a/scheduler/cups-deviced.c b/scheduler/cups-deviced.c
+index 77703b9..14478fd 100644
+--- a/scheduler/cups-deviced.c
++++ b/scheduler/cups-deviced.c
+@@ -265,7 +265,7 @@ main(int argc, /* I - Number of command-line args */
+ * all others run as the unprivileged user...
+ */
+
+- start_backend(dent->filename, !(dent->fileinfo.st_mode & (S_IWGRP | S_IRWXO)));
++ start_backend(dent->filename, !(dent->fileinfo.st_mode & (S_IWGRP | S_IWOTH | S_IXOTH)));
+ }
+
+ cupsDirClose(dir);
+diff --git a/scheduler/job.c b/scheduler/job.c
+index 2cfb1b0..515fc8b 100644
+--- a/scheduler/job.c
++++ b/scheduler/job.c
+@@ -1247,7 +1247,7 @@ cupsdContinueJob(cupsd_job_t *job) /* I - Job */
+ else if (stat(command, &backinfo))
+ backroot = 0;
+ else
+- backroot = !(backinfo.st_mode & (S_IWGRP | S_IRWXO));
++ backroot = !(backinfo.st_mode & (S_IWGRP | S_IWOTH | S_IXOTH));
+
+ argv[0] = job->printer->sanitized_device_uri;
+
diff --git a/debian/patches/0020-Let-snmp-backend-also-use-manufacturer-specific-MIBs.patch b/debian/patches/0020-Let-snmp-backend-also-use-manufacturer-specific-MIBs.patch
new file mode 100644
index 000000000..9f41361a3
--- /dev/null
+++ b/debian/patches/0020-Let-snmp-backend-also-use-manufacturer-specific-MIBs.patch
@@ -0,0 +1,47 @@
+From: Tim Waugh <twaugh@redhat.com>
+Date: Tue, 9 Aug 2016 18:11:30 +0200
+Subject: Let snmp backend also use manufacturer-specific MIBs
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 8bit
+
+ … of HP and Ricoh to obtain the device IDs of network-connected
+ printers. This way we get more reliable information about make and model
+ and in addition the supported page description languages, which allows one to
+ identify whether an optional PostScript add-on is installed or for an
+ unsupported printer which generic PPD is the best choice (requested by
+ Ricoh).
+Bug: https://www.cups.org/str.php?L3552
+---
+ backend/snmp.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/backend/snmp.c b/backend/snmp.c
+index 66ac884..9572822 100644
+--- a/backend/snmp.c
++++ b/backend/snmp.c
+@@ -154,6 +154,8 @@ static const int UriOID[] = { CUPS_OID_ppmPortServiceNameOrURI, 1, 1, -1 };
+ static const int LexmarkProductOID[] = { 1,3,6,1,4,1,641,2,1,2,1,2,1,-1 };
+ static const int LexmarkProductOID2[] = { 1,3,6,1,4,1,674,10898,100,2,1,2,1,2,1,-1 };
+ static const int LexmarkDeviceIdOID[] = { 1,3,6,1,4,1,641,2,1,2,1,3,1,-1 };
++static const int HPDeviceIdOID[] = { 1,3,6,1,4,1,11,2,3,9,1,1,7,0,-1 };
++static const int RicohDeviceIdOID[] = { 1,3,6,1,4,1,367,3,2,1,1,1,11,0,-1 };
+ static const int XeroxProductOID[] = { 1,3,6,1,4,1,128,2,1,3,1,2,0,-1 };
+ static cups_array_t *DeviceURIs = NULL;
+ static int HostNameLookups = 0;
+@@ -969,9 +971,15 @@ read_snmp_response(int fd) /* I - SNMP socket file descriptor */
+ _cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1,
+ packet.community, CUPS_ASN1_GET_REQUEST,
+ DEVICE_ID, LexmarkDeviceIdOID);
++ _cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1,
++ packet.community, CUPS_ASN1_GET_REQUEST,
++ DEVICE_ID, RicohDeviceIdOID);
+ _cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1,
+ packet.community, CUPS_ASN1_GET_REQUEST,
+ DEVICE_PRODUCT, XeroxProductOID);
++ _cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1,
++ packet.community, CUPS_ASN1_GET_REQUEST,
++ DEVICE_ID, HPDeviceIdOID);
+ break;
+
+ case DEVICE_DESCRIPTION :
diff --git a/debian/patches/0035-Build-mantohtml-with-the-build-architecture-compiler.patch b/debian/patches/0035-Build-mantohtml-with-the-build-architecture-compiler.patch
new file mode 100644
index 000000000..07133c64e
--- /dev/null
+++ b/debian/patches/0035-Build-mantohtml-with-the-build-architecture-compiler.patch
@@ -0,0 +1,110 @@
+From: Helmut Grohne <helmut@subdivi.de>
+Date: Tue, 9 Aug 2016 18:11:49 +0200
+Subject: 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 511fbf8..fbd16fb 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 7eca9e3..2dfdbb9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -19,6 +19,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/airprint-support.patch b/debian/patches/airprint-support.patch
new file mode 100644
index 000000000..1405db6f6
--- /dev/null
+++ b/debian/patches/airprint-support.patch
@@ -0,0 +1,93 @@
+From: Till Kamppeter <till.kamppeter@gmail.com>
+Date: Tue, 9 Aug 2016 18:11:29 +0200
+Subject: Patch to support Apple AirPrint (printing from iPhone, iPad,
+ iPod Touch to a CUPS server)
+
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/711779
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1054495
+Bug-Debian: http://bugs.debian.org/700961
+Bug: https://cups.org/str.php?L4341
+Last-Update: 2015-02-10
+
+Patch-Name: airprint-support.patch
+---
+ conf/mime.convs.in | 3 +++
+ conf/mime.types | 3 +++
+ scheduler/conf.c | 2 +-
+ scheduler/dirsvc.c | 6 ++++++
+ scheduler/printers.c | 4 +++-
+ 5 files changed, 16 insertions(+), 2 deletions(-)
+
+diff --git a/conf/mime.convs.in b/conf/mime.convs.in
+index 57b459d..e042e01 100644
+--- a/conf/mime.convs.in
++++ b/conf/mime.convs.in
+@@ -44,6 +44,9 @@ application/postscript application/vnd.cups-postscript 66 pstops
+ application/vnd.cups-raster image/pwg-raster 100 rastertopwg
+ application/vnd.cups-raster image/urf 100 rastertopwg
+
++# Needed for printing from iOS (AirPrint) clients
++image/urf application/pdf 100 -
++
+ ########################################################################
+ #
+ # Raw filter...
+diff --git a/conf/mime.types b/conf/mime.types
+index fcd6b6e..ebb0525 100644
+--- a/conf/mime.types
++++ b/conf/mime.types
+@@ -108,6 +108,9 @@ image/x-alias pix short(8,8) short(8,24)
+ image/x-bitmap bmp string(0,BM) + !printable(2,14)
+ image/x-icon ico
+
++# Needed for printing from iOS (AirPrint) clients
++image/urf urf string(0,UNIRAST<00>)
++
+ ########################################################################
+ #
+ # Text files...
+diff --git a/scheduler/conf.c b/scheduler/conf.c
+index bb6049b..bb4f9d2 100644
+--- a/scheduler/conf.c
++++ b/scheduler/conf.c
+@@ -745,7 +745,7 @@ cupsdReadConfiguration(void)
+ DefaultShared = CUPS_DEFAULT_DEFAULT_SHARED;
+
+ #if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+- cupsdSetString(&DNSSDSubTypes, "_cups,_print");
++ cupsdSetString(&DNSSDSubTypes, "_cups,_print,_universal");
+ cupsdClearString(&DNSSDHostName);
+ #endif /* HAVE_DNSSD || HAVE_AVAHI */
+
+diff --git a/scheduler/dirsvc.c b/scheduler/dirsvc.c
+index ddd3701..fb2a305 100644
+--- a/scheduler/dirsvc.c
++++ b/scheduler/dirsvc.c
+@@ -440,6 +440,12 @@ dnssdBuildTxtRecord(
+ keyvalue[count ][0] = "pdl";
+ keyvalue[count++][1] = p->pdl ? p->pdl : "application/postscript";
+
++ /* iOS 6 does not accept this printer as AirPrint printer if there is
++ no URF txt record or "URF=none", "DM3" is the minimum needed found
++ by try and error */
++ keyvalue[count ][0] = "URF";
++ keyvalue[count++][1] = "DM3";
++
+ if (get_auth_info_required(p, air_str, sizeof(air_str)))
+ {
+ keyvalue[count ][0] = "air";
+diff --git a/scheduler/printers.c b/scheduler/printers.c
+index 5425237..b366bf5 100644
+--- a/scheduler/printers.c
++++ b/scheduler/printers.c
+@@ -3806,7 +3806,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/confdirperms.patch b/debian/patches/confdirperms.patch
new file mode 100644
index 000000000..524090f2b
--- /dev/null
+++ b/debian/patches/confdirperms.patch
@@ -0,0 +1,28 @@
+From: Martin Pitt <mpitt@debian.org>
+Date: Tue, 9 Aug 2016 18:11:41 +0200
+Subject: Do not mess with the permissions of cupsd.conf.
+
+Last-Update: 2015-02-10
+
+Patch-Name: confdirperms.patch
+---
+ scheduler/conf.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/scheduler/conf.c b/scheduler/conf.c
+index b73d33f..31eedbf 100644
+--- a/scheduler/conf.c
++++ b/scheduler/conf.c
+@@ -1135,10 +1135,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/cups-set-default-error-policy-retry-job.patch b/debian/patches/cups-set-default-error-policy-retry-job.patch
new file mode 100644
index 000000000..41540cddb
--- /dev/null
+++ b/debian/patches/cups-set-default-error-policy-retry-job.patch
@@ -0,0 +1,75 @@
+From: Martin Pitt <martin.pitt@ubuntu.com>
+Date: Tue, 9 Aug 2016 18:11:47 +0200
+Subject: Set default job error policy to "retry-job", since it is less
+
+ confusing and a better default on most machines.
+ .
+ Amend documentation accordingly.
+Author: Didier Raboud <odyx@debian.org>
+Origin: vendor
+Last-Update: 2016-07-03
+
+Patch-Name: cups-set-default-error-policy-retry-job.patch
+---
+ doc/help/man-cupsd.conf.html | 4 ++--
+ man/cupsd.conf.5 | 4 ++--
+ scheduler/conf.c | 6 +++---
+ 3 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/doc/help/man-cupsd.conf.html b/doc/help/man-cupsd.conf.html
+index 1668eee..7d161ed 100644
+--- a/doc/help/man-cupsd.conf.html
++++ b/doc/help/man-cupsd.conf.html
+@@ -95,9 +95,9 @@ The default is typically the server's ".local" hostname.
+ <dt><b>ErrorPolicy retry-current-job</b>
+ <dd style="margin-left: 5.0em">Specifies that a failed print job should be retried immediately unless otherwise specified for the printer.
+ <dt><b>ErrorPolicy retry-job</b>
+-<dd style="margin-left: 5.0em">Specifies that a failed print job should be retried at a later time unless otherwise specified for the printer.
++<dd style="margin-left: 5.0em">Specifies that a failed print job should be retried at a later time unless otherwise specified for the printer. The 'retry-job' error policy is the default.
+ <dt><b>ErrorPolicy stop-printer</b>
+-<dd style="margin-left: 5.0em">Specifies that a failed print job should stop the printer unless otherwise specified for the printer. The 'stop-printer' error policy is the default.
++<dd style="margin-left: 5.0em">Specifies that a failed print job should stop the printer unless otherwise specified for the printer.
+ <dt><a name="FilterLimit"></a><b>FilterLimit </b><i>limit</i>
+ <dd style="margin-left: 5.0em">Specifies the maximum cost of filters that are run concurrently, which can be used to minimize disk, memory, and CPU resource problems.
+ A limit of 0 disables filter limiting.
+diff --git a/man/cupsd.conf.5 b/man/cupsd.conf.5
+index 49fdb06..6d3d8e3 100644
+--- a/man/cupsd.conf.5
++++ b/man/cupsd.conf.5
+@@ -140,10 +140,10 @@ Specifies that a failed print job should be aborted (discarded) unless otherwise
+ Specifies that a failed print job should be retried immediately unless otherwise specified for the printer.
+ .TP 5
+ \fBErrorPolicy retry-job\fR
+-Specifies that a failed print job should be retried at a later time unless otherwise specified for the printer.
++Specifies that a failed print job should be retried at a later time unless otherwise specified for the printer. The 'retry-job' error policy is the default.
+ .TP 5
+ \fBErrorPolicy stop-printer\fR
+-Specifies that a failed print job should stop the printer unless otherwise specified for the printer. The 'stop-printer' error policy is the default.
++Specifies that a failed print job should stop the printer unless otherwise specified for the printer.
+ .\"#FilterLimit
+ .TP 5
+ \fBFilterLimit \fIlimit\fR
+diff --git a/scheduler/conf.c b/scheduler/conf.c
+index f2924f8..944655e 100644
+--- a/scheduler/conf.c
++++ b/scheduler/conf.c
+@@ -752,7 +752,7 @@ cupsdReadConfiguration(void)
+ cupsdSetString(&LPDConfigFile, CUPS_DEFAULT_LPD_CONFIG_FILE);
+ cupsdSetString(&SMBConfigFile, CUPS_DEFAULT_SMB_CONFIG_FILE);
+
+- cupsdSetString(&ErrorPolicy, "stop-printer");
++ cupsdSetString(&ErrorPolicy, "retry-job");
+
+ JobHistory = DEFAULT_HISTORY;
+ JobFiles = DEFAULT_FILES;
+@@ -1233,8 +1233,8 @@ cupsdReadConfiguration(void)
+ strcmp(ErrorPolicy, "retry-job") &&
+ strcmp(ErrorPolicy, "stop-printer"))
+ {
+- cupsdLogMessage(CUPSD_LOG_ALERT, "Invalid ErrorPolicy \"%s\", resetting to \"stop-printer\".", ErrorPolicy);
+- cupsdSetString(&ErrorPolicy, "stop-printer");
++ cupsdLogMessage(CUPSD_LOG_ALERT, "Invalid ErrorPolicy \"%s\", resetting to \"retry-job\".", ErrorPolicy);
++ cupsdSetString(&ErrorPolicy, "retry-job");
+ }
+
+ /*
diff --git a/debian/patches/cupsd-set-default-for-SyncOnClose-to-Yes.patch b/debian/patches/cupsd-set-default-for-SyncOnClose-to-Yes.patch
new file mode 100644
index 000000000..7352732b2
--- /dev/null
+++ b/debian/patches/cupsd-set-default-for-SyncOnClose-to-Yes.patch
@@ -0,0 +1,66 @@
+From: Tim Waugh <twaugh@redhat.com>
+Date: Tue, 9 Aug 2016 18:11:46 +0200
+Subject: Set the default for SyncOnClose to Yes
+
+Last-Update: 2015-02-10
+
+Patch-Name: cupsd-set-default-for-SyncOnClose-to-Yes.patch
+---
+ conf/cups-files.conf.in | 2 +-
+ doc/help/man-cups-files.conf.html | 2 +-
+ man/cups-files.conf.5 | 2 +-
+ scheduler/conf.c | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/conf/cups-files.conf.in b/conf/cups-files.conf.in
+index 4a78ba6..a3d088d 100644
+--- a/conf/cups-files.conf.in
++++ b/conf/cups-files.conf.in
+@@ -7,7 +7,7 @@
+ #FatalErrors @CUPS_FATAL_ERRORS@
+
+ # Do we call fsync() after writing configuration or status files?
+-#SyncOnClose No
++#SyncOnClose Yes
+
+ # Default user and group for filters/backends/helper programs; this cannot be
+ # any user or group that resolves to ID 0 for security reasons...
+diff --git a/doc/help/man-cups-files.conf.html b/doc/help/man-cups-files.conf.html
+index c567cbb..f2f6802 100644
+--- a/doc/help/man-cups-files.conf.html
++++ b/doc/help/man-cups-files.conf.html
+@@ -150,7 +150,7 @@ The default is "/var/run/cups" or "/etc/cups" depending on the platform.
+ <dd style="margin-left: 5.0em">Specifies whether the scheduler calls
+ <b>fsync</b>(2)
+ after writing configuration or state files.
+-The default is "No".
++The default is "Yes".
+ <dt><a name="SystemGroup"></a><b>SystemGroup </b><i>group-name </i>[ ... <i>group-name</i> ]
+ <dd style="margin-left: 5.0em">Specifies the group(s) to use for <i>@SYSTEM</i> group authentication.
+ The default contains "admin", "lpadmin", "root", "sys", and/or "system".
+diff --git a/man/cups-files.conf.5 b/man/cups-files.conf.5
+index 7249406..955f47b 100644
+--- a/man/cups-files.conf.5
++++ b/man/cups-files.conf.5
+@@ -211,7 +211,7 @@ The default is "/var/run/cups" or "/etc/cups" depending on the platform.
+ Specifies whether the scheduler calls
+ .BR fsync (2)
+ after writing configuration or state files.
+-The default is "No".
++The default is "Yes".
+ .\"#SystemGroup
+ .TP 5
+ \fBSystemGroup \fIgroup-name \fR[ ... \fIgroup-name\fR ]
+diff --git a/scheduler/conf.c b/scheduler/conf.c
+index 31eedbf..f2924f8 100644
+--- a/scheduler/conf.c
++++ b/scheduler/conf.c
+@@ -735,7 +735,7 @@ cupsdReadConfiguration(void)
+ RootCertDuration = 300;
+ Sandboxing = CUPSD_SANDBOXING_STRICT;
+ StrictConformance = FALSE;
+- SyncOnClose = FALSE;
++ SyncOnClose = TRUE;
+ Timeout = 900;
+ WebInterface = CUPS_DEFAULT_WEBIF;
+
diff --git a/debian/patches/debianize_cups-config.patch b/debian/patches/debianize_cups-config.patch
new file mode 100644
index 000000000..05e6037ef
--- /dev/null
+++ b/debian/patches/debianize_cups-config.patch
@@ -0,0 +1,50 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Tue, 9 Aug 2016 18:11:49 +0200
+Subject: 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
+Last-Update: 2014-06-11
+Patch-Name: debianize_cups-config.patch
+---
+ 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/default_log_settings.patch b/debian/patches/default_log_settings.patch
new file mode 100644
index 000000000..fca2bee7c
--- /dev/null
+++ b/debian/patches/default_log_settings.patch
@@ -0,0 +1,27 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Tue, 9 Aug 2016 18:11:40 +0200
+Subject: Deactivate CUPS' own log rotating as the system already provides a
+ more sophisticated log rotating
+
+Last-Update: 2015-02-10
+
+Patch-Name: default_log_settings.patch
+---
+ conf/cupsd.conf.in | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/conf/cupsd.conf.in b/conf/cupsd.conf.in
+index ab37ca6..78189e5 100644
+--- a/conf/cupsd.conf.in
++++ b/conf/cupsd.conf.in
+@@ -8,6 +8,10 @@
+ LogLevel @CUPS_LOG_LEVEL@
+ @CUPS_PAGE_LOG_FORMAT@
+
++# Deactivate CUPS' internal logrotating, as we provide a better one, especially
++# LogLevel debug2 gets usable now
++MaxLogSize 0
++
+ # Only listen for connections from the local machine.
+ Listen localhost:@DEFAULT_IPP_PORT@
+ @CUPS_LISTEN_DOMAINSOCKET@
diff --git a/debian/patches/do-not-broadcast-with-hostnames.patch b/debian/patches/do-not-broadcast-with-hostnames.patch
new file mode 100644
index 000000000..339a35266
--- /dev/null
+++ b/debian/patches/do-not-broadcast-with-hostnames.patch
@@ -0,0 +1,26 @@
+From: Till Kampetter <till.kampetter@gmail.com>
+Date: Tue, 9 Aug 2016 18:11:35 +0200
+Subject: Do not use host names for broadcasting print queues and
+
+ managing print queues broadcasted from other servers by default. Many
+ networks do not have valid host names for all machines.
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/449586
+
+Patch-Name: do-not-broadcast-with-hostnames.patch
+---
+ scheduler/conf.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scheduler/conf.c b/scheduler/conf.c
+index bb4f9d2..b73d33f 100644
+--- a/scheduler/conf.c
++++ b/scheduler/conf.c
+@@ -899,7 +899,7 @@ cupsdReadConfiguration(void)
+ cupsdAddAlias(ServerAlias, temp);
+ cupsdLogMessage(CUPSD_LOG_DEBUG, "Added auto ServerAlias %s", temp);
+
+- if (HostNameLookups || RemotePort)
++ if (HostNameLookups)
+ {
+ struct hostent *host; /* Host entry to get FQDN */
+
diff --git a/debian/patches/fixes-for-jobs-with-multiple-files-and-multiple-formats.patch b/debian/patches/fixes-for-jobs-with-multiple-files-and-multiple-formats.patch
new file mode 100644
index 000000000..3b18e3345
--- /dev/null
+++ b/debian/patches/fixes-for-jobs-with-multiple-files-and-multiple-formats.patch
@@ -0,0 +1,28 @@
+From: Tim Waugh <twaugh@redhat.com>
+Date: Tue, 9 Aug 2016 18:11:07 +0200
+Subject: Fix jobs with multiple files or multiple formats
+
+Bug-Redhat: https://bugzilla.redhat.com/show_bug.cgi?id=972242
+Bug: https://www.cups.org/str.php?L4348
+Last-Updated: 2015-02-10
+Patch-Name: fixes-for-jobs-with-multiple-files-and-multiple-formats.patch
+---
+ backend/ipp.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/backend/ipp.c b/backend/ipp.c
+index 8226acc..5902dd6 100644
+--- a/backend/ipp.c
++++ b/backend/ipp.c
+@@ -1803,7 +1803,10 @@ main(int argc, /* I - Number of command-line args */
+ ippAddBoolean(request, IPP_TAG_OPERATION, "last-document",
+ (i + 1) >= num_files);
+
+- if (document_format)
++ if (num_files > 1)
++ ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE,
++ "document-format", NULL, "application/octet-stream");
++ else if (document_format)
+ ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE,
+ "document-format", NULL, document_format);
+
diff --git a/debian/patches/logfiles_adm_readable.patch b/debian/patches/logfiles_adm_readable.patch
new file mode 100644
index 000000000..e72ba5836
--- /dev/null
+++ b/debian/patches/logfiles_adm_readable.patch
@@ -0,0 +1,62 @@
+From: Martin Pitt <mpitt@debian.org>
+Date: Tue, 9 Aug 2016 18:11:38 +0200
+Subject: Make log files readable to group "adm", if present.
+
+Bug-Ubuntu: https://launchpad.net/bugs/345953
+
+Last-Update: 2015-02-10
+Patch-Name: logfiles_adm_readable.patch
+---
+ scheduler/log.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/scheduler/log.c b/scheduler/log.c
+index cdb5437..d53d140 100644
+--- a/scheduler/log.c
++++ b/scheduler/log.c
+@@ -21,6 +21,7 @@
+ # include <systemd/sd-journal.h>
+ #endif /* HAVE_ASL_H */
+ #include <syslog.h>
++#include <grp.h>
+
+
+ /*
+@@ -110,6 +111,7 @@ cupsdCheckLogFile(cups_file_t **lf, /* IO - Log file */
+ filename[1024], /* Formatted log filename */
+ *ptr; /* Pointer into filename */
+ const char *logptr; /* Pointer into log filename */
++ struct group *loggrp; /* Group entry of log filename */
+
+
+ /*
+@@ -129,6 +131,11 @@ cupsdCheckLogFile(cups_file_t **lf, /* IO - Log file */
+ return (1);
+ }
+
++ /*
++ * Use adm group if possible, fall back to Group
++ */
++ loggrp = getgrnam("adm");
++
+ /*
+ * Format the filename as needed...
+ */
+@@ -241,7 +248,7 @@ cupsdCheckLogFile(cups_file_t **lf, /* IO - Log file */
+ * Change ownership and permissions of non-device logs...
+ */
+
+- fchown(cupsFileNumber(*lf), RunUser, Group);
++ fchown(cupsFileNumber(*lf), RunUser, loggrp ? loggrp->gr_gid : Group);
+ fchmod(cupsFileNumber(*lf), LogFilePerm);
+ }
+ }
+@@ -284,7 +291,7 @@ cupsdCheckLogFile(cups_file_t **lf, /* IO - Log file */
+ * Change ownership and permissions of non-device logs...
+ */
+
+- fchown(cupsFileNumber(*lf), RunUser, Group);
++ fchown(cupsFileNumber(*lf), RunUser, loggrp ? loggrp->gr_gid : Group);
+ fchmod(cupsFileNumber(*lf), LogFilePerm);
+ }
+
diff --git a/debian/patches/man-cups-lpd-drop-dangling-references.patch b/debian/patches/man-cups-lpd-drop-dangling-references.patch
new file mode 100644
index 000000000..711f28dff
--- /dev/null
+++ b/debian/patches/man-cups-lpd-drop-dangling-references.patch
@@ -0,0 +1,25 @@
+From: =?utf-8?q?Bastien_ROUCARI=C3=88S?= <bastien.roucaries@u-cergy.fr>
+Date: Tue, 9 Aug 2016 18:11:48 +0200
+Subject: Drop dangling references from cups-lpd.man
+
+Bug-Debian: http://bugs.debian.org/570157
+Last-Update: 2015-10-02
+Patch-Name: man-cups-lpd-drop-dangling-references.patch
+---
+ man/cups-lpd.8 | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/man/cups-lpd.8 b/man/cups-lpd.8
+index 344d2af..e998df3 100644
+--- a/man/cups-lpd.8
++++ b/man/cups-lpd.8
+@@ -109,9 +109,7 @@ Simply enable the
+ .B cups-lpd
+ service using the corresponding control program.
+ .SH SEE ALSO
+-.BR cups (1),
+ .BR cupsd (8),
+-.BR inetconv (1m),
+ .BR inetd (8),
+ .BR launchd (8),
+ .BR xinetd (8),
diff --git a/debian/patches/manpage-hyphen-minus.patch b/debian/patches/manpage-hyphen-minus.patch
new file mode 100644
index 000000000..9998a0ae8
--- /dev/null
+++ b/debian/patches/manpage-hyphen-minus.patch
@@ -0,0 +1,573 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Tue, 9 Aug 2016 18:11:05 +0200
+Subject: Fix hyphen-used-as-minus-sign manpage errors
+
+Automatically generated using sed -i -s 's/^-/\\-/g;s/ -/ \\-/g;s/"-/"\\-/g' man/*.man*
+Also fix a missing backslash escape
+
+Origin: vendor
+Bug-Upstream: https://cups.org/str.php?L4299
+Last-Update: 2015-02-10
+
+Patch-Name: manpage-hyphen-minus.patch
+---
+ man/backend.7 | 4 ++--
+ man/client.conf.5 | 4 ++--
+ man/cups-files.conf.5 | 2 +-
+ man/cups-lpd.8 | 6 +++---
+ man/cups-snmp.conf.5 | 2 +-
+ man/cups.1 | 2 +-
+ man/cupsctl.8 | 6 +++---
+ man/cupsd-logs.5 | 36 ++++++++++++++++++------------------
+ man/cupsd.conf.5 | 2 +-
+ man/cupsfilter.8 | 2 +-
+ man/filter.7 | 2 +-
+ man/ippeveprinter.1 | 6 +++---
+ man/ippfind.1 | 6 +++---
+ man/ipptoolfile.5 | 8 ++++----
+ man/lp.1 | 12 ++++++------
+ man/lpadmin.8 | 6 +++---
+ man/lpoptions.1 | 4 ++--
+ man/lpr.1 | 8 ++++----
+ man/mime.convs.5 | 6 +++---
+ man/mime.types.5 | 4 ++--
+ man/ppdc.1 | 2 +-
+ 21 files changed, 65 insertions(+), 65 deletions(-)
+
+diff --git a/man/backend.7 b/man/backend.7
+index 5a70326..3c42631 100644
+--- a/man/backend.7
++++ b/man/backend.7
+@@ -163,7 +163,7 @@ The scheduler will respond to this by canceling the job.
+ .TP 5
+ .B CUPS_BACKEND_RETRY
+ The print file was not successfully transmitted because of a temporary issue.
+-The scheduler will retry the job at a future time - other jobs may print before this one.
++The scheduler will retry the job at a future time \- other jobs may print before this one.
+ .TP 5
+ .B CUPS_BACKEND_RETRY_CURRENT
+ The print file was not successfully transmitted because of a temporary issue.
+@@ -198,7 +198,7 @@ or
+ programs to send print jobs or
+ .BR lpinfo (8)
+ to query for available printers using the backend.
+-The one exception is the SNMP backend - see
++The one exception is the SNMP backend \- see
+ .BR cups-snmp (8)
+ for more information.
+ .SH NOTES
+diff --git a/man/client.conf.5 b/man/client.conf.5
+index 8805561..92f1d95 100644
+--- a/man/client.conf.5
++++ b/man/client.conf.5
+@@ -64,7 +64,7 @@ The \fIAllowDH\fR option enables cipher suites using plain Diffie-Hellman key ne
+ The \fIAllowRC4\fR option enables the 128-bit RC4 cipher suites, which are required for some older clients.
+ The \fIAllowSSL3\fR option enables SSL v3.0, which is required for some older clients that do not support TLS v1.0.
+ The \fIDenyCBC\fR option disables all CBC cipher suites.
+-The \fIDenyTLS1.0\fR option disables TLS v1.0 support - this sets the minimum protocol version to TLS v1.1.
++The \fIDenyTLS1.0\fR option disables TLS v1.0 support \- this sets the minimum protocol version to TLS v1.1.
+ The \fIMinTLS\fR options set the minimum TLS version to support.
+ The \fIMaxTLS\fR options set the maximum TLS version to support.
+ Not all operating systems support TLS 1.3 at this time.
+@@ -114,7 +114,7 @@ Configuration settings can instead be viewed or changed using the
+ command:
+ .nf
+ defaults write /Library/Preferences/org.cups.PrintingPrefs.plist Encryption Required
+-defaults write /Library/Preferences/org.cups.PrintingPrefs.plist TrustOnFirstUse -bool NO
++defaults write /Library/Preferences/org.cups.PrintingPrefs.plist TrustOnFirstUse \-bool NO
+
+ defaults read /Library/Preferences/org.cups.PrintingPrefs.plist Encryption
+ .fi
+diff --git a/man/cups-files.conf.5 b/man/cups-files.conf.5
+index b451e2f..7249406 100644
+--- a/man/cups-files.conf.5
++++ b/man/cups-files.conf.5
+@@ -236,7 +236,7 @@ The following directives are deprecated and will be removed from a future versio
+ \fBFileDevice No\fR
+ Specifies whether the file pseudo-device can be used for new printer queues.
+ The URI "file:///dev/null" is always allowed.
+-File devices cannot be used with "raw" print queues - a PPD file is required.
++File devices cannot be used with "raw" print queues \- a PPD file is required.
+ The specified file is overwritten for every print job.
+ Writing to directories is not supported.
+ .\"#FontPath
+diff --git a/man/cups-lpd.8 b/man/cups-lpd.8
+index e8ce325..344d2af 100644
+--- a/man/cups-lpd.8
++++ b/man/cups-lpd.8
+@@ -15,9 +15,9 @@ cups-lpd \- receive print jobs and report printer status to lpd clients (depreca
+ [
+ \fB\-h \fIhostname\fR[\fB:\fIport\fR]
+ ] [
+-.B -n
++.B \-n
+ ] [
+-.B -o
++.B \-o
+ .I option=value
+ ]
+ .SH DESCRIPTION
+@@ -34,7 +34,7 @@ and
+ \fB-h \fIhostname\fR[\fB:\fIport\fR]
+ Sets the CUPS server (and port) to use.
+ .TP 5
+-.B -n
++.B \-n
+ Disables reverse address lookups; normally
+ .B cups-lpd
+ will try to discover the hostname of the client via a reverse DNS lookup.
+diff --git a/man/cups-snmp.conf.5 b/man/cups-snmp.conf.5
+index 4ca20f2..bb77c73 100644
+--- a/man/cups-snmp.conf.5
++++ b/man/cups-snmp.conf.5
+@@ -16,7 +16,7 @@ The
+ file configures how the standard CUPS network backends (http, https, ipp, ipps, lpd, snmp, and socket) access printer information using SNMPv1 and is normally located in the \fI/etc/cups\fR directory.
+ Each line in the file can be a configuration directive, a blank line, or a comment. Comment lines start with the # character.
+ .LP
+-The Community and DebugLevel directives are used by all backends. The remainder apply only to the SNMP backend -
++The Community and DebugLevel directives are used by all backends. The remainder apply only to the SNMP backend \-
+ .BR cups-snmp (8).
+ .SH DIRECTIVES
+ The following directives are understood by the CUPS network backends:
+diff --git a/man/cups.1 b/man/cups.1
+index 706620d..b0c51a7 100644
+--- a/man/cups.1
++++ b/man/cups.1
+@@ -38,7 +38,7 @@ The easiest way to start is by using the web interface to configure your printer
+ .LP
+ When you are asked for a username and password, enter your login username and password or the "root" username and password.
+ .LP
+-After the printer is added you will be asked to set the default printer options (paper size, output mode, etc.) for the printer. Make any changes as needed and then click/press on the Set Default Options button to save them. Some printers also support auto-configuration - click/press on the Query Printer for Default Options button to update the options automatically.
++After the printer is added you will be asked to set the default printer options (paper size, output mode, etc.) for the printer. Make any changes as needed and then click/press on the Set Default Options button to save them. Some printers also support auto-configuration \- click/press on the Query Printer for Default Options button to update the options automatically.
+ .LP
+ Once you have added the printer, you can print to it from any application. You can also choose Print Test Page from the maintenance menu to print a simple test page and verify that everything is working properly.
+ .LP
+diff --git a/man/cupsctl.8 b/man/cupsctl.8
+index 791954c..c88eb22 100644
+--- a/man/cupsctl.8
++++ b/man/cupsctl.8
+@@ -73,19 +73,19 @@ Display the current settings:
+ Enable debug logging:
+ .nf
+
+- cupsctl --debug-logging
++ cupsctl \--debug-logging
+
+ .fi
+ Get the current debug logging state:
+ .nf
+
+- cupsctl | grep '^_debug_logging' | awk -F= '{print $2}'
++ cupsctl | grep '^_debug_logging' | awk \-F= '{print $2}'
+
+ .fi
+ Disable printer sharing:
+ .nf
+
+- cupsctl --no-share-printers
++ cupsctl \--no-share-printers
+ .fi
+ .SH KNOWN ISSUES
+ You cannot set the Listen or Port directives using \fBcupsctl\fR.
+diff --git a/man/cupsd-logs.5 b/man/cupsd-logs.5
+index 2070be9..a912c46 100644
+--- a/man/cupsd-logs.5
++++ b/man/cupsd-logs.5
+@@ -30,25 +30,25 @@ Each line is in an extended version of the so-called "Common Log Format" used by
+ For example:
+ .nf
+
+- 10.0.1.2 - - [01/Dec/2005:21:50:28 +0000] "POST / HTTP/1.1" 200 317
++ 10.0.1.2 \- \- [01/Dec/2005:21:50:28 +0000] "POST / HTTP/1.1" 200 317
+ CUPS-Get-Printers successful-ok-ignored-or-substituted-attributes
+- localhost - - [01/Dec/2005:21:50:32 +0000] "GET /admin HTTP/1.1"
+- 200 0 - -
+- localhost - - [01/Dec/2005:21:50:32 +0000] "POST / HTTP/1.1"
++ localhost \- \- [01/Dec/2005:21:50:32 +0000] "GET /admin HTTP/1.1"
++ 200 0 \- \-
++ localhost \- \- [01/Dec/2005:21:50:32 +0000] "POST / HTTP/1.1"
+ 200 157 CUPS-Get-Printers
+ successful-ok-ignored-or-substituted-attributes
+- localhost - - [01/Dec/2005:21:50:32 +0000] "POST / HTTP/1.1"
+- 200 1411 CUPS-Get-Devices -
+- localhost - - [01/Dec/2005:21:50:32 +0000] "GET /admin HTTP/1.1"
+- 200 6667 - -
++ localhost \- \- [01/Dec/2005:21:50:32 +0000] "POST / HTTP/1.1"
++ 200 1411 CUPS-Get-Devices \-
++ localhost \- \- [01/Dec/2005:21:50:32 +0000] "GET /admin HTTP/1.1"
++ 200 6667 \- \-
+
+ .fi
+ The \fIhost\fR field will normally only be an IP address unless you have enabled the HostNameLookups directive in the \fIcupsd.conf\fR file or if the IP address corresponds to your local machine.
+ .LP
+-The \fIgroup\fR field always contains "-".
++The \fIgroup\fR field always contains "\-".
+ .LP
+ The \fIuser\fR field is the authenticated username of the requesting user.
+-If no username and password is supplied for the request then this field contains "-".
++If no username and password is supplied for the request then this field contains "\-".
+ .LP
+ The \fIdate-time\fR field is the date and time of the request in local time and is in the format "[DD/MON/YYYY:HH:MM:SS +ZZZZ]".
+ .LP
+@@ -98,7 +98,7 @@ Request too large; typically this means that a client tried to print a file larg
+ Upgrading to TLS-encrypted connection.
+ .TP 5
+ 500
+-Server error; typically this happens when the server is unable to open/create a file - consult the error_log file for details.
++Server error; typically this happens when the server is unable to open/create a file \- consult the error_log file for details.
+ .TP 5
+ 501
+ The client requested encryption but encryption support is not enabled/compiled in.
+@@ -110,11 +110,11 @@ HTTP version number not supported; typically this means that you have a maliciou
+ The \fIbytes\fR field contains the number of bytes in the request.
+ For POST requests the bytes field contains the number of bytes of non-IPP data that is received from the client.
+ .LP
+-The \fIipp-operation\fR field contains either "-" for non-IPP requests or the IPP operation name for POST requests containing an IPP request.
++The \fIipp-operation\fR field contains either "\-" for non-IPP requests or the IPP operation name for POST requests containing an IPP request.
+ .LP
+-The \fIipp-status\fR field contains either "-" for non-IPP requests or the IPP status code name for POST requests containing an IPP response.
++The \fIipp-status\fR field contains either "\-" for non-IPP requests or the IPP status code name for POST requests containing an IPP response.
+ .SS ERROR LOG FILE FORMAT
+-The \fIerror_log\fR file lists messages from the scheduler - errors, warnings, etc. The LogLevel directive in the
++The \fIerror_log\fR file lists messages from the scheduler \- errors, warnings, etc. The LogLevel directive in the
+ .BR cupsd.conf (5)
+ file controls which messages are logged:
+ .nf
+@@ -204,15 +204,15 @@ The format of this field is identical to the data-time field in the \fIaccess_lo
+ .LP
+ The \fInum-sheets\fR field provides the total number of pages (sheets) that have been printed on for the job.
+ .LP
+-The \fIjob-billing\fR field contains a copy of the job-billing or job-account-id attributes provided with the IPP Create-Job or Print-Job requests or "-" if neither was provided.
++The \fIjob-billing\fR field contains a copy of the job-billing or job-account-id attributes provided with the IPP Create-Job or Print-Job requests or "\-" if neither was provided.
+ .LP
+ The \fIjob-originating-host-name\fR field contains the hostname or IP address of the client that printed the job.
+ .LP
+-The \fIjob-name\fR field contains a copy of the job-name attribute provided with the IPP Create-Job or Print-Job requests or "-" if none was provided.
++The \fIjob-name\fR field contains a copy of the job-name attribute provided with the IPP Create-Job or Print-Job requests or "\-" if none was provided.
+ .LP
+-The \fImedia\fR field contains a copy of the media or media-col/media-size attribute provided with the IPP Create-Job or Print-Job requests or "-" if none was provided.
++The \fImedia\fR field contains a copy of the media or media-col/media-size attribute provided with the IPP Create-Job or Print-Job requests or "\-" if none was provided.
+ .LP
+-The \fIsides\fR field contains a copy of the sides attribute provided with the IPP Create-Job or Print-Job requests or "-" if none was provided.
++The \fIsides\fR field contains a copy of the sides attribute provided with the IPP Create-Job or Print-Job requests or "\-" if none was provided.
+ .SH SEE ALSO
+ .BR cupsd (8),
+ .BR cupsd.conf (5),
+diff --git a/man/cupsd.conf.5 b/man/cupsd.conf.5
+index 00b1a22..49fdb06 100644
+--- a/man/cupsd.conf.5
++++ b/man/cupsd.conf.5
+@@ -446,7 +446,7 @@ The \fIAllowDH\fR option enables cipher suites using plain Diffie-Hellman key ne
+ The \fIAllowRC4\fR option enables the 128-bit RC4 cipher suites, which are required for some older clients.
+ The \fIAllowSSL3\fR option enables SSL v3.0, which is required for some older clients that do not support TLS v1.0.
+ The \fIDenyCBC\fR option disables all CBC cipher suites.
+-The \fIDenyTLS1.0\fR option disables TLS v1.0 support - this sets the minimum protocol version to TLS v1.1.
++The \fIDenyTLS1.0\fR option disables TLS v1.0 support \- this sets the minimum protocol version to TLS v1.1.
+ The \fIMinTLS\fR options set the minimum TLS version to support.
+ The \fIMaxTLS\fR options set the maximum TLS version to support.
+ Not all operating systems support TLS 1.3 at this time.
+diff --git a/man/cupsfilter.8 b/man/cupsfilter.8
+index c655c21..fe4c5a2 100644
+--- a/man/cupsfilter.8
++++ b/man/cupsfilter.8
+@@ -126,7 +126,7 @@ command use the current user and security session. This may result in different
+ The following command will generate a PDF preview of job 42 for a printer named "myprinter" and save it to a file named "preview.pdf":
+ .nf
+
+- cupsfilter -m application/pdf -d myprinter -j 42 >preview.pdf
++ cupsfilter \-m application/pdf \-d myprinter \-j 42 >preview.pdf
+ .fi
+ .SH SEE ALSO
+ .BR cups (1),
+diff --git a/man/filter.7 b/man/filter.7
+index dbc3150..8cb79bb 100644
+--- a/man/filter.7
++++ b/man/filter.7
+@@ -136,7 +136,7 @@ Sets the named keywords in the printer's PPD file. This is typically used to upd
+ .TP 5
+ \fBSTATE: +\fI printer-state-reason \fR[ \fI... printer-state-reason\fR ]
+ .TP 5
+-\fBSTATE: -\fI printer-state-reason \fR[ \fI... printer-state-reason\fR ]
++\fBSTATE: \-\fI printer-state-reason \fR[ \fI... printer-state-reason\fR ]
+ Sets, adds, or removes "printer-state-reason" keywords for the current queue. Typically this is used to indicate media, ink, and toner conditions on a printer.
+ .TP 5
+ \fBWARNING:\fI message\fR
+diff --git a/man/ippeveprinter.1 b/man/ippeveprinter.1
+index 5753c69..2fcda8b 100644
+--- a/man/ippeveprinter.1
++++ b/man/ippeveprinter.1
+@@ -129,8 +129,8 @@ If "command" is not an absolute path ("/path/to/command"),
+ looks for the command in the "command" subdirectory of the CUPS binary directory, typically /usr/lib/cups/command or /usr/libexec/cups/command.
+ The
+ .BR cups-config (1)
+-command can be used to discover the correct binary directory ("cups-config --serverbin").
+-In addition, the CUPS_SERVERBIN environment variable can be used to override the default location of this directory - see the
++command can be used to discover the correct binary directory ("cups-config \--serverbin").
++In addition, the CUPS_SERVERBIN environment variable can be used to override the default location of this directory \- see the
+ .BR cups (1)
+ man page for more details.
+ .TP 5
+@@ -227,7 +227,7 @@ Logs an informational/progress message if \-v has been specified and copies the
+ \fBSTATE: \fIkeyword[,keyword,...]\fR
+ Sets the printer's "printer-state-reasons" attribute to the listed keywords.
+ .TP 5
+-\fBSTATE: -\fIkeyword[,keyword,...]\fR
++\fBSTATE: \-\fIkeyword[,keyword,...]\fR
+ Removes the listed keywords from the printer's "printer-state-reasons" attribute.
+ .TP 5
+ \fBSTATE: +\fIkeyword[,keyword,...]\fR
+diff --git a/man/ippfind.1 b/man/ippfind.1
+index 32f2e6f..d77ef75 100644
+--- a/man/ippfind.1
++++ b/man/ippfind.1
+@@ -75,7 +75,7 @@ True is the hostname matches the given regular expression.
+ .B \-l
+ .TP 5
+ .B \-\-ls
+-Lists attributes returned by Get-Printer-Attributes for IPP printers and traditional \fIfind\fR "-ls" output for HTTP URLs.
++Lists attributes returned by Get-Printer-Attributes for IPP printers and traditional \fIfind\fR "\-ls" output for HTTP URLs.
+ The result is true if the URI is accessible, false otherwise.
+ .TP 5
+ .B \-\-local
+@@ -108,7 +108,7 @@ The result is always true.
+ .B \-q
+ .TP 5
+ .B \-\-quiet
+-Quiet mode - just returns the exit codes below.
++Quiet mode \- just returns the exit codes below.
+ .TP 5
+ .B \-r
+ .TP 5
+@@ -141,7 +141,7 @@ True if the URI matches the given regular expression.
+ .TP 5
+ \fB\-\-exec \fIutility \fR[ \fIargument \fR... ] \fB;\fR
+ Executes the specified program if the current result is true.
+-"{foo}" arguments are replaced with the corresponding value - see SUBSTITUTIONS below.
++"{foo}" arguments are replaced with the corresponding value \- see SUBSTITUTIONS below.
+ .PP
+ Expressions may also contain modifiers:
+ .TP 5
+diff --git a/man/ipptoolfile.5 b/man/ipptoolfile.5
+index 7001017..5763232 100644
+--- a/man/ipptoolfile.5
++++ b/man/ipptoolfile.5
+@@ -166,8 +166,8 @@ The following directives are understood within a \fItest\fR:
+ \fBATTR \fItag attribute-name value(s)\fR
+ Adds an attribute to the test request.
+ Out-of-band tags (admin-define, delete-attribute, no-value, not-settable, unknown, unsupported) have no value.
+-Values for other tags are delimited by the comma (",") character - escape commas using the "\\" character.
+-Common attributes and values are listed in the IANA IPP registry - see references below.
++Values for other tags are delimited by the comma (",") character \- escape commas using the "\\" character.
++Common attributes and values are listed in the IANA IPP registry \- see references below.
+ .TP 5
+ \fBATTR collection \fIattribute-name \fB{ MEMBER \fItag member-name value(s) ... \fB}\fR [ \fI... \fB,{ \fI... \fB} \fR]
+ Adds a collection attribute to the test request.
+@@ -194,7 +194,7 @@ test report.
+ \fBEXPECT ?\fIattribute-name predicate(s)\fR
+ .TP 5
+ \fBEXPECT !\fIattribute-name\fR
+-Specifies that the response must/may/must not include the named attribute. Additional requirements can be added as predicates - see the "EXPECT PREDICATES" section for more information on predicates. Attribute names can specify member attributes by separating the attribute and member names with the forward slash, for example "media\-col/media\-size/x\-dimension".
++Specifies that the response must/may/must not include the named attribute. Additional requirements can be added as predicates \- see the "EXPECT PREDICATES" section for more information on predicates. Attribute names can specify member attributes by separating the attribute and member names with the forward slash, for example "media\-col/media\-size/x\-dimension".
+ .TP 5
+ \fBEXPECT-ALL \fIattribute-name \fR[ \fIpredicate(s) \fR]
+ .TP 5
+@@ -246,7 +246,7 @@ Specifies whether
+ will skip the current test if the previous test resulted in an error/failure.
+ .TP 5
+ \fBSTATUS \fIstatus-code \fR[ \fIpredicate\fR ]
+-Specifies an expected response status-code value. Additional requirements can be added as predicates - see the "STATUS PREDICATES" section for more information on predicates.
++Specifies an expected response status-code value. Additional requirements can be added as predicates \- see the "STATUS PREDICATES" section for more information on predicates.
+ .TP 5
+ \fBTEST\-ID "\fIidentifier\fR"
+ Specifies an identifier string for the current test.
+diff --git a/man/lp.1 b/man/lp.1
+index cbea3b8..839a482 100644
+--- a/man/lp.1
++++ b/man/lp.1
+@@ -83,7 +83,7 @@ lp \- print files
+ ]
+ .SH DESCRIPTION
+ \fBlp\fR submits files for printing or alters a pending job.
+-Use a filename of "-" to force printing from the standard input.
++Use a filename of "\-" to force printing from the standard input.
+ .SS THE DEFAULT DESTINATION
+ CUPS provides many ways to set the default destination. The \fBLPDEST\fR and \fBPRINTER\fR environment variables are consulted first.
+ If neither are set, the current default set using the
+@@ -153,7 +153,7 @@ Use a value of \fIrestart\fR with the \fI-i\fR option to restart a completed job
+ \fB\-P \fIpage-list\fR
+ Specifies which pages to print in the document.
+ The list can contain a list of numbers and ranges (#-#) separated by commas, e.g., "1,3-5,16".
+-The page numbers refer to the output pages and not the document's original pages - options like "number-up" can affect the numbering of the pages.
++The page numbers refer to the output pages and not the document's original pages \- options like "number-up" can affect the numbering of the pages.
+ .SS COMMON JOB OPTIONS
+ Aside from the printer-specific options reported by the
+ .BR lpoptions (1)
+@@ -183,7 +183,7 @@ Prints the job in reverse portrait (rotated 180 degrees).
+ \fB\-o print\-quality=4\fR
+ .TP 5
+ \fB\-o print\-quality=5\fR
+-Specifies the output quality - draft (3), normal (4), or best (5).
++Specifies the output quality \- draft (3), normal (4), or best (5).
+ .TP 5
+ \fB\-o sides=one\-sided\fR
+ Prints on one side of the paper.
+@@ -202,19 +202,19 @@ The \fI-q\fR option accepts a different range of values than the Solaris lp comm
+ Print two copies of a document to the default printer:
+ .nf
+
+- lp -n 2 filename
++ lp \-n 2 filename
+
+ .fi
+ Print a double-sided legal document to a printer called "foo":
+ .nf
+
+- lp -d foo -o media=legal -o sides=two-sided-long-edge filename
++ lp \-d foo \-o media=legal \-o sides=two-sided-long-edge filename
+
+ .fi
+ Print a presentation document 2-up to a printer called "bar":
+ .nf
+
+- lp -d bar -o number-up=2 filename
++ lp \-d bar \-o number-up=2 filename
+ .fi
+ .SH SEE ALSO
+ .BR cancel (1),
+diff --git a/man/lpadmin.8 b/man/lpadmin.8
+index 1b8c91b..ce6a698 100644
+--- a/man/lpadmin.8
++++ b/man/lpadmin.8
+@@ -120,7 +120,7 @@ command.
+ .TP 5
+ \fB\-o \fIname\fB-default=\fIvalue\fR
+ Sets a default server-side option for the destination.
+-Any print-time option can be defaulted, e.g., "-o number-up-default=2" to set the default "number-up" option value to 2.
++Any print-time option can be defaulted, e.g., "\-o number-up-default=2" to set the default "number-up" option value to 2.
+ .TP 5
+ \fB\-o port\-monitor=\fIname\fR
+ Sets the binary communications program to use when printing, "none", "bcp", or "tbcp".
+@@ -162,7 +162,7 @@ If the resulting class becomes empty it is removed.
+ Sets user-level access control on a destination.
+ Names starting with "@" are interpreted as UNIX groups.
+ The latter two forms turn user-level access control off.
+-Note: The user 'root' is not granted special access - using "-u allow:foo,bar" will allow users 'foo' and 'bar' to access the printer but NOT 'root'.
++Note: The user 'root' is not granted special access \- using "\-u allow:foo,bar" will allow users 'foo' and 'bar' to access the printer but NOT 'root'.
+ .TP 5
+ \fB\-v "\fIdevice-uri\fB"\fR
+ Sets the \fIdevice-uri\fR attribute of the printer queue.
+@@ -218,7 +218,7 @@ These files should not be edited directly and are an implementation detail of CU
+ Create an IPP Everywhere print queue:
+ .nf
+
+- lpadmin -p myprinter -E -v ipp://myprinter.local/ipp/print -m everywhere
++ lpadmin \-p myprinter \-E \-v ipp://myprinter.local/ipp/print \-m everywhere
+
+ .fi
+ .SH SEE ALSO
+diff --git a/man/lpoptions.1 b/man/lpoptions.1
+index a34fd01..7550d9a 100644
+--- a/man/lpoptions.1
++++ b/man/lpoptions.1
+@@ -102,9 +102,9 @@ Destinations can only be removed using the
+ .BR lpadmin (8)
+ command.
+ .SH FILES
+-\fI~/.cups/lpoptions\fR - user defaults and instances created by non-root users.
++\fI~/.cups/lpoptions\fR \- user defaults and instances created by non-root users.
+ .br
+-\fI/etc/cups/lpoptions\fR - system-wide defaults and instances created by the root user.
++\fI/etc/cups/lpoptions\fR \- system-wide defaults and instances created by the root user.
+ .SH CONFORMING TO
+ The \fBlpoptions\fR command is unique to CUPS.
+ .SH SEE ALSO
+diff --git a/man/lpr.1 b/man/lpr.1
+index f367cd9..635d126 100644
+--- a/man/lpr.1
++++ b/man/lpr.1
+@@ -138,7 +138,7 @@ Prints the job in reverse portrait (rotated 180 degrees).
+ \fB\-o print\-quality=4\fR
+ .TP 5
+ \fB\-o print\-quality=5\fR
+-Specifies the output quality - draft (3), normal (4), or best (5).
++Specifies the output quality \- draft (3), normal (4), or best (5).
+ .TP 5
+ \fB\-o sides=one\-sided\fR
+ Prints on one side of the paper.
+@@ -154,19 +154,19 @@ The \fI\-c\fR, \fI\-d\fR, \fI\-f\fR, \fI\-g\fR, \fI\-i\fR, \fI\-n\fR, \fI\-t\fR,
+ Print two copies of a document to the default printer:
+ .nf
+
+- lpr -# 2 filename
++ lpr \-# 2 filename
+
+ .fi
+ Print a double-sided legal document to a printer called "foo":
+ .nf
+
+- lpr -P foo -o media=legal -o sides=two-sided-long-edge filename
++ lpr \-P foo \-o media=legal \-o sides=two-sided-long-edge filename
+
+ .fi
+ Print a presentation document 2-up to a printer called "foo":
+ .nf
+
+- lpr -P foo -o number-up=2 filename
++ lpr \-P foo \-o number-up=2 filename
+ .fi
+ .SH SEE ALSO
+ .BR cancel (1),
+diff --git a/man/mime.convs.5 b/man/mime.convs.5
+index 25a6f76..04ba394 100644
+--- a/man/mime.convs.5
++++ b/man/mime.convs.5
+@@ -35,11 +35,11 @@ A value of 100 means that the filter uses a large amount of resources while a va
+ The \fIfilter\fR field specifies the filter program filename.
+ Filenames are relative to the CUPS filter directory.
+ .SH FILES
+-\fI/etc/cups\fR - Typical CUPS configuration directory.
++\fI/etc/cups\fR \- Typical CUPS configuration directory.
+ .br
+-\fI/usr/lib/cups/filter\fR - Typical CUPS filter directory.
++\fI/usr/lib/cups/filter\fR \- Typical CUPS filter directory.
+ .br
+-\fI/usr/libexec/cups/filter\fR - CUPS filter directory on macOS.
++\fI/usr/libexec/cups/filter\fR \- CUPS filter directory on macOS.
+ .SH EXAMPLES
+ Define a filter that converts PostScript documents to CUPS Raster format:
+ .nf
+diff --git a/man/mime.types.5 b/man/mime.types.5
+index 7e83de1..3572726 100644
+--- a/man/mime.types.5
++++ b/man/mime.types.5
+@@ -35,7 +35,7 @@ See the "TYPE MATCHING AND PRIORITY" section for more information.
+ .LP
+ The rules may be grouped using parenthesis, joined using "+" for a logical AND, joined using "," or whitespace for a logical OR, and negated using "!".
+ .SS RULES
+-Rules take two forms - a filename extension by itself and functions with test
++Rules take two forms \- a filename extension by itself and functions with test
+ values inside parenthesis.
+ The following functions are available:
+ .TP 5
+@@ -85,7 +85,7 @@ extension "doc", normally the type "text/bar" will be chosen since its name is
+ alphanumerically smaller than "text/foo".
+ However, if "text/foo" also defines a higher priority than "text/bar", "text/foo" will be chosen instead.
+ .SH FILES
+-\fI/etc/cups\fR - Typical CUPS configuration directory.
++\fI/etc/cups\fR \- Typical CUPS configuration directory.
+ .SH EXAMPLES
+ Define two MIME media types for raster data, with one being a subset with higher priority:
+ .nf
+diff --git a/man/ppdc.1 b/man/ppdc.1
+index 44e9d24..38e2669 100644
+--- a/man/ppdc.1
++++ b/man/ppdc.1
+@@ -85,7 +85,7 @@ The default is to generate uncompressed PPD files.
+ \fB\-\-crlf\fR
+ .TP 5
+ \fB\-\-lf\fR
+-Specifies the line ending to use - carriage return, carriage return and line feed, or line feed alone.
++Specifies the line ending to use \- carriage return, carriage return and line feed, or line feed alone.
+ The default is to use the line feed character alone.
+ .SH NOTES
+ PPD files are deprecated and will no longer be supported in a future feature release of CUPS.
diff --git a/debian/patches/manpage-translations.patch b/debian/patches/manpage-translations.patch
new file mode 100644
index 000000000..575d4c653
--- /dev/null
+++ b/debian/patches/manpage-translations.patch
@@ -0,0 +1,343 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Tue, 9 Aug 2016 18:11:50 +0200
+Subject: 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: http://bugs.debian.org/478597
+
+Patch-Name: manpage-translations.patch
+---
+ 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/move-cupsd-conf-default-to-share.patch b/debian/patches/move-cupsd-conf-default-to-share.patch
new file mode 100644
index 000000000..a645fc11d
--- /dev/null
+++ b/debian/patches/move-cupsd-conf-default-to-share.patch
@@ -0,0 +1,64 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Tue, 9 Aug 2016 18:11:24 +0200
+Subject: Move cupsd.conf.default from SERVERROOT to DATADIR
+
+Origin: vendor
+Bug: https://cups.org/str.php?L4342
+Bug-Debian: http://bugs.debian.org/640124
+Last-Update: 2015-02-10
+
+Patch-Name: move-cupsd-conf-default-to-share.patch
+---
+ 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 f087809..6e9a64a 100644
+--- a/cgi-bin/admin.c
++++ b/cgi-bin/admin.c
+@@ -1629,6 +1629,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 */
+
+
+ /*
+@@ -1712,7 +1713,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/no-conffile-timestamp.patch b/debian/patches/no-conffile-timestamp.patch
new file mode 100644
index 000000000..d58ae8c67
--- /dev/null
+++ b/debian/patches/no-conffile-timestamp.patch
@@ -0,0 +1,68 @@
+From: Joey Hess <joeyh@debian.org>
+Date: Tue, 9 Aug 2016 18:11:31 +0200
+Subject: Disable time stamps in conffiles,
+ to avoid ever-changing files in /etc.
+
+Bug: https://github.com/apple/cups/issues/3067
+Bug-Debian: https://bugs.debian.org/549673
+
+Patch-Name: no-conffile-timestamp.patch
+---
+ scheduler/classes.c | 2 +-
+ scheduler/job.c | 2 +-
+ scheduler/printers.c | 2 +-
+ scheduler/subscriptions.c | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/scheduler/classes.c b/scheduler/classes.c
+index 776e79a..ec6357f 100644
+--- a/scheduler/classes.c
++++ b/scheduler/classes.c
+@@ -688,7 +688,7 @@ cupsdSaveAllClasses(void)
+ strftime(temp, sizeof(temp) - 1, "%Y-%m-%d %H:%M", curdate);
+
+ cupsFilePuts(fp, "# Class configuration file for " CUPS_SVERSION "\n");
+- cupsFilePrintf(fp, "# Written by cupsd on %s\n", temp);
++ cupsFilePrintf(fp, "# Written by cupsd\n");
+ cupsFilePuts(fp, "# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING\n");
+
+ /*
+diff --git a/scheduler/job.c b/scheduler/job.c
+index 515fc8b..9c197ef 100644
+--- a/scheduler/job.c
++++ b/scheduler/job.c
+@@ -2201,7 +2201,7 @@ cupsdSaveAllJobs(void)
+ strftime(temp, sizeof(temp) - 1, "%Y-%m-%d %H:%M", curdate);
+
+ cupsFilePuts(fp, "# Job cache file for " CUPS_SVERSION "\n");
+- cupsFilePrintf(fp, "# Written by cupsd on %s\n", temp);
++ cupsFilePrintf(fp, "# Written by cupsd\n");
+ cupsFilePrintf(fp, "NextJobId %d\n", NextJobId);
+
+ /*
+diff --git a/scheduler/printers.c b/scheduler/printers.c
+index b366bf5..10ae912 100644
+--- a/scheduler/printers.c
++++ b/scheduler/printers.c
+@@ -1503,7 +1503,7 @@ cupsdSaveAllPrinters(void)
+ strftime(temp, sizeof(temp) - 1, "%Y-%m-%d %H:%M", curdate);
+
+ cupsFilePuts(fp, "# Printer configuration file for " CUPS_SVERSION "\n");
+- cupsFilePrintf(fp, "# Written by cupsd on %s\n", temp);
++ cupsFilePrintf(fp, "# Written by cupsd\n");
+ cupsFilePuts(fp, "# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING\n");
+
+ cupsFilePrintf(fp, "NextPrinterId %d\n", NextPrinterId);
+diff --git a/scheduler/subscriptions.c b/scheduler/subscriptions.c
+index 3267a2f..2542ab1 100644
+--- a/scheduler/subscriptions.c
++++ b/scheduler/subscriptions.c
+@@ -1051,7 +1051,7 @@ cupsdSaveAllSubscriptions(void)
+ strftime(temp, sizeof(temp) - 1, "%Y-%m-%d %H:%M", curdate);
+
+ cupsFilePuts(fp, "# Subscription configuration file for " CUPS_SVERSION "\n");
+- cupsFilePrintf(fp, "# Written by cupsd on %s\n", temp);
++ cupsFilePrintf(fp, "# Written by cupsd\n");
+
+ cupsFilePrintf(fp, "NextSubscriptionId %d\n", NextSubscriptionId);
+
diff --git a/debian/patches/pwg-raster-attributes.patch b/debian/patches/pwg-raster-attributes.patch
new file mode 100644
index 000000000..d4ec5d60a
--- /dev/null
+++ b/debian/patches/pwg-raster-attributes.patch
@@ -0,0 +1,111 @@
+From: Till Kamppeter <till.kamppeter@gmail.com>
+Date: Tue, 9 Aug 2016 18:11:04 +0200
+Subject: For PWG Raster, add required IPP attributes
+
+Add required by IPP Everywhere for PWG Raster when PWG Raster as input format
+is supported
+
+Bug-Upstream: https://www.cups.org/str.php?L4428
+Last-Update: 2015-02-10
+Patch-Name: pwg-raster-attributes.patch
+---
+ scheduler/printers.c | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 76 insertions(+), 1 deletion(-)
+
+diff --git a/scheduler/printers.c b/scheduler/printers.c
+index 75ef4c0..5425237 100644
+--- a/scheduler/printers.c
++++ b/scheduler/printers.c
+@@ -2249,9 +2249,10 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p)/* I - Printer to setup */
+ cupsd_location_t *auth; /* Pointer to authentication element */
+ const char *auth_supported; /* Authentication supported */
+ ipp_t *oldattrs; /* Old printer attributes */
+- ipp_attribute_t *attr; /* Attribute data */
++ ipp_attribute_t *attr, *attr2; /* Attribute data */
+ char *name, /* Current user/group name */
+ *filter; /* Current filter */
++ mime_type_t *type;
+
+
+ /*
+@@ -2584,6 +2585,80 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p)/* I - Printer to setup */
+
+ add_printer_formats(p);
+
++ /*
++ * Add "pwg-raster-document-xxx-supported" attributes if PWG Raster input
++ * is supported
++ */
++ for (type = (mime_type_t *)cupsArrayFirst(p->filetypes);
++ type;
++ type = (mime_type_t *)cupsArrayNext(p->filetypes))
++ {
++ if (!_cups_strcasecmp(type->super, "image"))
++ {
++ if (!_cups_strcasecmp(type->type, "pwg-raster"))
++ {
++ if (p->ppd_attrs != NULL &&
++ (attr = ippFindAttribute(p->ppd_attrs,
++ "printer-resolution-supported",
++ IPP_TAG_ZERO)) != NULL)
++ {
++ attr2 = ippAddResolutions(p->attrs, IPP_TAG_PRINTER,
++ "pwg-raster-document-resolution-supported",
++ attr->num_values, IPP_RES_PER_INCH,
++ NULL, NULL);
++ for (i = 0; i < attr->num_values; i ++)
++ {
++ attr2->values[i].resolution.xres =
++ attr->values[i].resolution.xres;
++ attr2->values[i].resolution.yres =
++ attr->values[i].resolution.yres;
++ attr2->values[i].resolution.units = IPP_RES_PER_INCH;
++ }
++ }
++ else
++ {
++ static const int pwg_raster_document_resolution_supported[] =
++ {
++ 300,
++ 600,
++ 1200
++ };
++ ippAddResolutions(p->attrs, IPP_TAG_PRINTER,
++ "pwg-raster-document-resolution-supported",
++ (int)(sizeof(pwg_raster_document_resolution_supported) /
++ sizeof(pwg_raster_document_resolution_supported[0])),
++ IPP_RES_PER_INCH,
++ pwg_raster_document_resolution_supported,
++ pwg_raster_document_resolution_supported);
++ }
++ ippAddString(p->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD,
++ "pwg-raster-document-sheet-back", NULL, "normal");
++ static const char * const pwg_raster_document_type_supported[] =
++ {
++ "adobergb-8",
++ "adobergb-16",
++ "black-1",
++ "black-8",
++ "black-16",
++ "cmyk-8",
++ "cmyk-16",
++ "rgb-8",
++ "rgb-16",
++ "sgray-1",
++ "sgray-8",
++ "sgray-16",
++ "srgb-8",
++ "srgb-16"
++ };
++ ippAddStrings(p->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD,
++ "pwg-raster-document-type-supported",
++ (int)(sizeof(pwg_raster_document_type_supported) /
++ sizeof(pwg_raster_document_type_supported[0])), NULL,
++ pwg_raster_document_type_supported);
++ }
++ }
++ }
++
+ /*
+ * Add name-default attributes...
+ */
diff --git a/debian/patches/reactivate_recommended_driver.patch b/debian/patches/reactivate_recommended_driver.patch
new file mode 100644
index 000000000..382f384a2
--- /dev/null
+++ b/debian/patches/reactivate_recommended_driver.patch
@@ -0,0 +1,41 @@
+From: Till Kampetter <till.kampetter@gmail.com>
+Date: Tue, 9 Aug 2016 18:11:36 +0200
+Subject: CUPS removes the "(recommended)" comments of the NickNames of
+ Foomatic PPDs when listing available PPDs. This patch removes this removal
+ action.
+
+Last-Update: 2015-02-10
+
+Patch-Name: reactivate_recommended_driver.patch
+---
+ 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/removecvstag.patch b/debian/patches/removecvstag.patch
new file mode 100644
index 000000000..1925abf85
--- /dev/null
+++ b/debian/patches/removecvstag.patch
@@ -0,0 +1,31 @@
+From: Kenshi Muto <kmuto@debian.org>
+Date: Tue, 9 Aug 2016 18:11:33 +0200
+Subject: Do not write VCS tags into installed conffiles
+
+Bug: http://www.cups.org/str.php?L2369
+Origin: vendor
+Author: Didier Raboud <odyx@debian.org>
+Last-Update: 2014-01-16
+
+Patch-Name: removecvstag.patch
+---
+ conf/Makefile | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/conf/Makefile b/conf/Makefile
+index 42a123f..db0060d 100644
+--- a/conf/Makefile
++++ b/conf/Makefile
+@@ -69,8 +69,12 @@ install-data:
+ $(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(SERVERROOT)/$$file.N ; \
+ else \
+ $(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(SERVERROOT) ; \
++ grep -v "\$$Id[:\$$]" $(SERVERROOT)/$$file > $(SERVERROOT)/$$file.n ; \
++ mv $(SERVERROOT)/$$file.n $(SERVERROOT)/$$file ; \
+ fi ; \
+ $(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(DATADIR)/$$file.default; \
++ grep -v "\$$Id[:\$$]" $(DATADIR)/$$file.default > $(DATADIR)/$$file.default.n ; \
++ mv $(DATADIR)/$$file.default.n $(DATADIR)/$$file.default ; \
+ done
+ $(INSTALL_DIR) -m 755 $(DATADIR)/mime
+ for file in $(REPLACE); do \
diff --git a/debian/patches/rename-systemd-units.patch b/debian/patches/rename-systemd-units.patch
new file mode 100644
index 000000000..4d2456ab1
--- /dev/null
+++ b/debian/patches/rename-systemd-units.patch
@@ -0,0 +1,59 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Tue, 9 Aug 2016 18:11:34 +0200
+Subject: Rename the systemd service file from org.cups.cups.* to cups.*
+
+Patch-Name: rename-systemd-units.patch
+---
+ scheduler/org.cups.cups-lpd.socket | 2 +-
+ scheduler/org.cups.cupsd.path.in | 2 +-
+ scheduler/org.cups.cupsd.service.in | 2 +-
+ scheduler/org.cups.cupsd.socket.in | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/scheduler/org.cups.cups-lpd.socket b/scheduler/org.cups.cups-lpd.socket
+index ed23f9d..eb84459 100644
+--- a/scheduler/org.cups.cups-lpd.socket
++++ b/scheduler/org.cups.cups-lpd.socket
+@@ -1,6 +1,6 @@
+ [Unit]
+ Description=CUPS LPD Server Socket
+-PartOf=org.cups.cups-lpd.service
++PartOf=cups-lpd.service
+
+ [Socket]
+ ListenStream=515
+diff --git a/scheduler/org.cups.cupsd.path.in b/scheduler/org.cups.cupsd.path.in
+index 0f1cc46..7c8509f 100644
+--- a/scheduler/org.cups.cupsd.path.in
++++ b/scheduler/org.cups.cupsd.path.in
+@@ -1,6 +1,6 @@
+ [Unit]
+ Description=CUPS Scheduler
+-PartOf=org.cups.cupsd.service
++PartOf=cups.service
+
+ [Path]
+ PathExists=@CUPS_CACHEDIR@/org.cups.cupsd
+diff --git a/scheduler/org.cups.cupsd.service.in b/scheduler/org.cups.cupsd.service.in
+index 5273762..cd23343 100644
+--- a/scheduler/org.cups.cupsd.service.in
++++ b/scheduler/org.cups.cupsd.service.in
+@@ -9,5 +9,5 @@ Type=simple
+ Restart=on-failure
+
+ [Install]
+-Also=org.cups.cupsd.socket org.cups.cupsd.path
++Also=cups.socket cups.path
+ WantedBy=printer.target
+diff --git a/scheduler/org.cups.cupsd.socket.in b/scheduler/org.cups.cupsd.socket.in
+index 613b977..3c37d72 100644
+--- a/scheduler/org.cups.cupsd.socket.in
++++ b/scheduler/org.cups.cupsd.socket.in
+@@ -1,6 +1,6 @@
+ [Unit]
+ Description=CUPS Scheduler
+-PartOf=org.cups.cupsd.service
++PartOf=cups.service
+
+ [Socket]
+ ListenStream=@CUPS_DEFAULT_DOMAINSOCKET@
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 000000000..5ebddb187
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,33 @@
+pwg-raster-attributes.patch
+manpage-hyphen-minus.patch
+0003-Install-root-backends-world-readable.patch
+fixes-for-jobs-with-multiple-files-and-multiple-formats.patch
+tests-ignore-warnings.patch
+tests-ignore-usb-crash.patch
+tests-ignore-kfreebsd-amd64-not-a-pdf.patch
+tests-ignore-ipv6-address-family-not-supported.patch
+tests-ignore-kfreebsd-unable-to-write-uncompressed-print-data.patch
+test-i18n-nonlinux.patch
+tests-wait-on-unfinished-jobs-everytime.patch
+tests-fix-ppdLocalize-on-unclean-env.patch
+tests-use-ipv4-lo-address.patch
+tests-make-lpstat-call-reproducible.patch
+tests-no-pdftourf.patch
+move-cupsd-conf-default-to-share.patch
+airprint-support.patch
+0020-Let-snmp-backend-also-use-manufacturer-specific-MIBs.patch
+no-conffile-timestamp.patch
+removecvstag.patch
+rename-systemd-units.patch
+do-not-broadcast-with-hostnames.patch
+reactivate_recommended_driver.patch
+logfiles_adm_readable.patch
+default_log_settings.patch
+confdirperms.patch
+show-compile-command-lines.patch
+cupsd-set-default-for-SyncOnClose-to-Yes.patch
+cups-set-default-error-policy-retry-job.patch
+man-cups-lpd-drop-dangling-references.patch
+debianize_cups-config.patch
+0035-Build-mantohtml-with-the-build-architecture-compiler.patch
+manpage-translations.patch
diff --git a/debian/patches/show-compile-command-lines.patch b/debian/patches/show-compile-command-lines.patch
new file mode 100644
index 000000000..dd1a1f08b
--- /dev/null
+++ b/debian/patches/show-compile-command-lines.patch
@@ -0,0 +1,23 @@
+From: Till Kampetter <till.kampetter@gmail.com>
+Date: Tue, 9 Aug 2016 18:11:43 +0200
+Subject: Show compile command lines
+
+Patch-Name: show-compile-command-lines.patch
+---
+ Makedefs.in | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/Makedefs.in b/Makedefs.in
+index 9ee7585..511fbf8 100644
+--- a/Makedefs.in
++++ b/Makedefs.in
+@@ -263,8 +263,7 @@ USBQUIRKS = @USBQUIRKS@
+ # Rules...
+ #
+
+-.SILENT:
+-.SUFFIXES: .a .c .cxx .h .o
++.SUFFIXES: .1 .1.gz .1m .1m.gz .3 .3.gz .5 .5.gz .7 .7.gz .8 .8.gz .a .c .cxx .h .man .o .gz
+
+ .c.o:
+ echo Compiling $<...
diff --git a/debian/patches/test-i18n-nonlinux.patch b/debian/patches/test-i18n-nonlinux.patch
new file mode 100644
index 000000000..0024719b8
--- /dev/null
+++ b/debian/patches/test-i18n-nonlinux.patch
@@ -0,0 +1,26 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Tue, 9 Aug 2016 18:11:16 +0200
+Subject: Tests: Do not run the CUPS_EUC_JP test case on BSD/Hurd either,
+ as glibc's iconv behavior is different than what the test expects.
+
+Bug-Debian: http://bugs.debian.org/662996
+
+Last-Update: 2015-10-02
+Patch-Name: test-i18n-nonlinux.patch
+---
+ cups/testi18n.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cups/testi18n.c b/cups/testi18n.c
+index 45e1cab..449670c 100644
+--- a/cups/testi18n.c
++++ b/cups/testi18n.c
+@@ -410,7 +410,7 @@ main(int argc, /* I - Argument Count */
+ puts("PASS");
+ }
+
+-#ifndef __linux
++#if !defined(__linux__) && !defined(__GLIBC__)
+ fputs("cupsCharsetToUTF8(CUPS_EUC_JP): ", stdout);
+
+ strlcpy(legsrc, legdest, sizeof(legsrc));
diff --git a/debian/patches/tests-fix-ppdLocalize-on-unclean-env.patch b/debian/patches/tests-fix-ppdLocalize-on-unclean-env.patch
new file mode 100644
index 000000000..0c5c6e9c3
--- /dev/null
+++ b/debian/patches/tests-fix-ppdLocalize-on-unclean-env.patch
@@ -0,0 +1,32 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Tue, 9 Aug 2016 18:11:18 +0200
+Subject: Tests: Force LC_* environment variables when testing (non)
+ l10n'isation.
+
+ Permits building in non-"C" environments.
+Origin: vendor
+Last-Update: 2015-02-10
+Patch-Name: tests-fix-ppdLocalize-on-unclean-env.patch
+---
+ cups/testppd.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/cups/testppd.c b/cups/testppd.c
+index 36707f2..a4ab7bf 100644
+--- a/cups/testppd.c
++++ b/cups/testppd.c
+@@ -658,6 +658,14 @@ main(int argc, /* I - Number of command-line arguments */
+ * Test localization...
+ */
+
++ /*
++ * Enforce void localization
++ */
++ putenv("LANG=C");
++ putenv("LC_ALL=C");
++ putenv("LC_CTYPE=C");
++ putenv("LC_MESSAGES=C");
++
+ fputs("ppdLocalizeIPPReason(text): ", stdout);
+ if (ppdLocalizeIPPReason(ppd, "foo", NULL, buffer, sizeof(buffer)) &&
+ !strcmp(buffer, "Foo Reason"))
diff --git a/debian/patches/tests-ignore-ipv6-address-family-not-supported.patch b/debian/patches/tests-ignore-ipv6-address-family-not-supported.patch
new file mode 100644
index 000000000..2d0271089
--- /dev/null
+++ b/debian/patches/tests-ignore-ipv6-address-family-not-supported.patch
@@ -0,0 +1,25 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Tue, 9 Aug 2016 18:33:56 +0200
+Subject: Tests: ignore errors triggered on ipv6-deprived hosts
+
+Ignore the 'Address family not supported by protocol' error that breaks the
+errorlines counting on buildds without a working IPv6 stack.
+Origin: vendor
+Last-Update: 2015-02-10
+Patch-Name: tests-ignore-ipv6-address-family-not-supported.patch
+---
+ test/run-stp-tests.sh | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/test/run-stp-tests.sh b/test/run-stp-tests.sh
+index f5a98dd..f3a4321 100755
+--- a/test/run-stp-tests.sh
++++ b/test/run-stp-tests.sh
+@@ -1030,6 +1030,7 @@ count=`$GREP '^E ' $BASE/log/error_log | $GREP -v 'Unknown default SystemGroup'
+ $GREP -v '(dnssd) stopped with status 1' | \
+ $GREP -v 'loadFile failed: temp file: not a PDF file' | \
+ $GREP -v 'Failed to connect to system bus' | \
++ $GREP -v -E 'Unable to open listen socket for address .* Address family not supported by protocol.' | \
+ wc -l | awk '{print $1}'`
+ if test $count != 33; then
+ echo "FAIL: $count error messages, expected 33."
diff --git a/debian/patches/tests-ignore-kfreebsd-amd64-not-a-pdf.patch b/debian/patches/tests-ignore-kfreebsd-amd64-not-a-pdf.patch
new file mode 100644
index 000000000..eea2bfe8a
--- /dev/null
+++ b/debian/patches/tests-ignore-kfreebsd-amd64-not-a-pdf.patch
@@ -0,0 +1,26 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Tue, 9 Aug 2016 18:30:48 +0200
+Subject: Tests: ignore loadFile failures
+
+Ignore the 'loadFile failed: temp file: not a PDF file' error that sometimes
+breaks the errorlines counting on kfreebsd-amd64 for some reason
+Origin: vendor
+Last-Update: 2015-02-10
+Patch-Name: tests-ignore-kfreebsd-amd64-not-a-pdf.patch
+---
+ test/run-stp-tests.sh | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/test/run-stp-tests.sh b/test/run-stp-tests.sh
+index 8bde425..f5a98dd 100755
+--- a/test/run-stp-tests.sh
++++ b/test/run-stp-tests.sh
+@@ -1028,6 +1028,8 @@ fi
+ count=`$GREP '^E ' $BASE/log/error_log | $GREP -v 'Unknown default SystemGroup' | \
+ $GREP -v '(usb) crashed on signal 11' | \
+ $GREP -v '(dnssd) stopped with status 1' | \
++ $GREP -v 'loadFile failed: temp file: not a PDF file' | \
++ $GREP -v 'Failed to connect to system bus' | \
+ wc -l | awk '{print $1}'`
+ if test $count != 33; then
+ echo "FAIL: $count error messages, expected 33."
diff --git a/debian/patches/tests-ignore-kfreebsd-unable-to-write-uncompressed-print-data.patch b/debian/patches/tests-ignore-kfreebsd-unable-to-write-uncompressed-print-data.patch
new file mode 100644
index 000000000..e6280a925
--- /dev/null
+++ b/debian/patches/tests-ignore-kfreebsd-unable-to-write-uncompressed-print-data.patch
@@ -0,0 +1,26 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Tue, 9 Aug 2016 18:36:02 +0200
+Subject: Tests: ignore the failure to write uncompressed data
+
+Ignore the 'Unable to write uncompressed print data: Broken pipe' error that
+sometimes breaks the errorlines counting on kfreebsd for some reason.
+Origin: vendor
+Last-Update: 2016-08-09
+
+Patch-Name: tests-ignore-kfreebsd-unable-to-write-uncompressed-print-data.patch
+---
+ test/run-stp-tests.sh | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/test/run-stp-tests.sh b/test/run-stp-tests.sh
+index f3a4321..c072ad8 100755
+--- a/test/run-stp-tests.sh
++++ b/test/run-stp-tests.sh
+@@ -1031,6 +1031,7 @@ count=`$GREP '^E ' $BASE/log/error_log | $GREP -v 'Unknown default SystemGroup'
+ $GREP -v 'loadFile failed: temp file: not a PDF file' | \
+ $GREP -v 'Failed to connect to system bus' | \
+ $GREP -v -E 'Unable to open listen socket for address .* Address family not supported by protocol.' | \
++ $GREP -v 'Unable to write uncompressed print data: Broken pipe' | \
+ wc -l | awk '{print $1}'`
+ if test $count != 33; then
+ echo "FAIL: $count error messages, expected 33."
diff --git a/debian/patches/tests-ignore-usb-crash.patch b/debian/patches/tests-ignore-usb-crash.patch
new file mode 100644
index 000000000..1a0f41289
--- /dev/null
+++ b/debian/patches/tests-ignore-usb-crash.patch
@@ -0,0 +1,33 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Tue, 9 Aug 2016 18:11:10 +0200
+Subject: Tests: ignore usb & dnssd backend unexpected exits
+
+Ignore the following errors:
+ "[cups-deviced] PID * (usb) crashed on signal 11!" and
+ "[cups-deviced] PID * (dnssd) stopped with status 1"
+
+ They seem to regularly happen on Debian/Ubuntu buildds and break error lines
+ counting.
+Last-Update: 2015-02-10
+
+Patch-Name: tests-ignore-usb-crash.patch
+---
+ test/run-stp-tests.sh | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/test/run-stp-tests.sh b/test/run-stp-tests.sh
+index a601581..8bde425 100755
+--- a/test/run-stp-tests.sh
++++ b/test/run-stp-tests.sh
+@@ -1025,7 +1025,10 @@ else
+ fi
+
+ # Error log messages
+-count=`$GREP '^E ' $BASE/log/error_log | $GREP -v 'Unknown default SystemGroup' | wc -l | awk '{print $1}'`
++count=`$GREP '^E ' $BASE/log/error_log | $GREP -v 'Unknown default SystemGroup' | \
++ $GREP -v '(usb) crashed on signal 11' | \
++ $GREP -v '(dnssd) stopped with status 1' | \
++ wc -l | awk '{print $1}'`
+ if test $count != 33; then
+ echo "FAIL: $count error messages, expected 33."
+ $GREP '^E ' $BASE/log/error_log
diff --git a/debian/patches/tests-ignore-warnings.patch b/debian/patches/tests-ignore-warnings.patch
new file mode 100644
index 000000000..25fb5ee30
--- /dev/null
+++ b/debian/patches/tests-ignore-warnings.patch
@@ -0,0 +1,30 @@
+From: Martin Pitt <mpitt@debian.org>
+Date: Tue, 9 Aug 2016 18:11:09 +0200
+Subject: Tests: Ignore warnings from colord and Avahi
+
+These warnings change the expected number of warnings
+
+Last-Update: 2015-08-05
+
+Patch-Name: tests-ignore-warnings.patch
+---
+ test/run-stp-tests.sh | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/test/run-stp-tests.sh b/test/run-stp-tests.sh
+index 2f9630f..a601581 100755
+--- a/test/run-stp-tests.sh
++++ b/test/run-stp-tests.sh
+@@ -1040,7 +1040,11 @@ else
+ fi
+
+ # Warning log messages
+-count=`$GREP '^W ' $BASE/log/error_log | $GREP -v CreateProfile | wc -l | awk '{print $1}'`
++count=`$GREP '^W ' $BASE/log/error_log | $GREP -v CreateProfile | \
++ $GREP -v 'Unable to initialize USB access via libusb, libusb error' | \
++ $GREP -v 'org.freedesktop.ColorManager' | \
++ $GREP -v -E 'Avahi client failed: -(1|26)' | \
++ wc -l | awk '{print $1}'`
+ if test $count != 8; then
+ echo "FAIL: $count warning messages, expected 8."
+ $GREP '^W ' $BASE/log/error_log
diff --git a/debian/patches/tests-make-lpstat-call-reproducible.patch b/debian/patches/tests-make-lpstat-call-reproducible.patch
new file mode 100644
index 000000000..a342c06a0
--- /dev/null
+++ b/debian/patches/tests-make-lpstat-call-reproducible.patch
@@ -0,0 +1,25 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Tue, 9 Aug 2016 18:11:22 +0200
+Subject: Tests: Force LC_ALL=C environment variable when grepping the output
+ of lpstat
+
+Permits testing in non-"C" environments.
+Origin: vendor
+Last-Update: 2016-07-11
+Patch-Name: tests-make-lpstat-call-reproducible.patch
+---
+ test/run-stp-tests.sh | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/test/run-stp-tests.sh b/test/run-stp-tests.sh
+index 3f0becd..baebdee 100755
+--- a/test/run-stp-tests.sh
++++ b/test/run-stp-tests.sh
+@@ -642,6 +642,7 @@ echo "DYLD_LIBRARY_PATH=\"$DYLD_LIBRARY_PATH\"; export DYLD_LIBRARY_PATH" >>$run
+ echo "LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH\"; export LD_LIBRARY_PATH" >>$runcups
+ echo "LD_PRELOAD=\"$LD_PRELOAD\"; export LD_PRELOAD" >>$runcups
+ echo "LOCALEDIR=\"$LOCALEDIR\"; export LOCALEDIR" >>$runcups
++echo "LC_ALL=\"C\"; export LC_ALL" >>$runcups
+ if test "x$CUPS_DEBUG_LEVEL" != x; then
+ echo "CUPS_DEBUG_FILTER='$CUPS_DEBUG_FILTER'; export CUPS_DEBUG_FILTER" >>$runcups
+ echo "CUPS_DEBUG_LEVEL=$CUPS_DEBUG_LEVEL; export CUPS_DEBUG_LEVEL" >>$runcups
diff --git a/debian/patches/tests-no-pdftourf.patch b/debian/patches/tests-no-pdftourf.patch
new file mode 100644
index 000000000..f0da622f1
--- /dev/null
+++ b/debian/patches/tests-no-pdftourf.patch
@@ -0,0 +1,67 @@
+From: Michael Sweet <michael.r.sweet@gmail.com>
+Date: Tue, 9 Aug 2016 18:11:23 +0200
+Subject: revert commit 830cfed95a5349b008999eebd34f5233bc35829c
+
+ "Update "make test" to include alternate filter."
+ .
+ This fixes the error lines counting in the test, and is unneeded as pdftourf
+ is not shipped in Debian.
+Origin: upstream
+
+Patch-Name: tests-no-pdftourf.patch
+---
+ test/run-stp-tests.sh | 4 +---
+ test/test.convs | 1 -
+ test/test.types | 2 --
+ 3 files changed, 1 insertion(+), 6 deletions(-)
+ delete mode 100644 test/test.types
+
+diff --git a/test/run-stp-tests.sh b/test/run-stp-tests.sh
+index baebdee..001e2f6 100755
+--- a/test/run-stp-tests.sh
++++ b/test/run-stp-tests.sh
+@@ -268,7 +268,7 @@ case "$usedebugprintfs" in
+ echo "Enabling debug printfs (level $usedebugprintfs); log files can be found in $BASE/log..."
+ CUPS_DEBUG_LOG="$BASE/log/debug_printfs.%d"; export CUPS_DEBUG_LOG
+ CUPS_DEBUG_LEVEL="$usedebugprintfs"; export CUPS_DEBUG_LEVEL
+- CUPS_DEBUG_FILTER='^(http|_http|ipp|_ipp|cups.*Request|cupsGetResponse|cupsSend|mime).*$'; export CUPS_DEBUG_FILTER
++ CUPS_DEBUG_FILTER='^(http|_http|ipp|_ipp|cups.*Request|cupsGetResponse|cupsSend).*$'; export CUPS_DEBUG_FILTER
+ ;;
+
+ *)
+@@ -443,14 +443,12 @@ EOF
+ }
+
+ ln -s $root/test/test.convs $BASE/share/mime
+-ln -s $root/test/test.types $BASE/share/mime
+
+ if test `uname` = Darwin; then
+ instfilter cgimagetopdf imagetopdf pdf
+ instfilter cgpdftopdf pdftopdf passthru
+ instfilter cgpdftops pdftops ps
+ instfilter cgpdftoraster pdftoraster raster
+- instfilter cgpdftoraster pdftourf raster
+ instfilter cgtexttopdf texttopdf pdf
+ instfilter pstocupsraster pstoraster raster
+ else
+diff --git a/test/test.convs b/test/test.convs
+index 77a9ce0..57540aa 100644
+--- a/test/test.convs
++++ b/test/test.convs
+@@ -2,7 +2,6 @@
+ application/pdf application/vnd.cups-pdf 100 pdftopdf
+ application/pdf application/postscript 100 pdftops
+ application/pdf application/vnd.cups-raster 100 pdftoraster
+-application/pdf image/urf 100 pdftourf
+ application/postscript application/vnd.cups-raster 100 pstoraster
+ image/jpeg application/pdf 100 imagetopdf
+ text/plain application/pdf 100 texttopdf
+diff --git a/test/test.types b/test/test.types
+deleted file mode 100644
+index 914081c..0000000
+--- a/test/test.types
++++ /dev/null
+@@ -1,2 +0,0 @@
+-# Test file listing potential MIME media types that are not in the standard mime.types file
+-image/urf
+\ No newline at end of file
diff --git a/debian/patches/tests-use-ipv4-lo-address.patch b/debian/patches/tests-use-ipv4-lo-address.patch
new file mode 100644
index 000000000..f6ff7165f
--- /dev/null
+++ b/debian/patches/tests-use-ipv4-lo-address.patch
@@ -0,0 +1,65 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Tue, 9 Aug 2016 18:11:21 +0200
+Subject: Tests: Use 127.0.0.1 instead of localhost to help pbuilder
+
+This should make the test-suite work in pbuilder. It apparently also fixes an
+ipp backend problem in the test-suite.
+
+Origin: vendor
+Last-Update: 2016-08-05
+Patch-Name: tests-use-ipv4-lo-address.patch
+---
+ test/5.1-lpadmin.sh | 4 ++--
+ test/run-stp-tests.sh | 8 ++++----
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/test/5.1-lpadmin.sh b/test/5.1-lpadmin.sh
+index 7efc398..08b8c50 100644
+--- a/test/5.1-lpadmin.sh
++++ b/test/5.1-lpadmin.sh
+@@ -52,8 +52,8 @@ echo ""
+
+ echo "Add Shared Printer Test"
+ echo ""
+-echo " lpadmin -p Test3 -E -v ipp://localhost:$IPP_PORT/printers/Test2 -m everywhere"
+-$runcups $VALGRIND ../systemv/lpadmin -p Test3 -E -v ipp://localhost:$IPP_PORT/printers/Test2 -m everywhere 2>&1
++echo " lpadmin -p Test3 -E -v ipp://127.0.0.1:$IPP_PORT/printers/Test2 -m everywhere"
++$runcups $VALGRIND ../systemv/lpadmin -p Test3 -E -v ipp://127.0.0.1:$IPP_PORT/printers/Test2 -m everywhere 2>&1
+ if test $? != 0; then
+ echo " FAILED"
+ exit 1
+diff --git a/test/run-stp-tests.sh b/test/run-stp-tests.sh
+index 4929820..3f0becd 100755
+--- a/test/run-stp-tests.sh
++++ b/test/run-stp-tests.sh
+@@ -490,7 +490,7 @@ fi
+ cat >$BASE/cupsd.conf <<EOF
+ StrictConformance Yes
+ Browsing Off
+-Listen localhost:$port
++Listen 127.0.0.1:$port
+ Listen $BASE/sock
+ MaxSubscriptions 3
+ MaxLogSize 0
+@@ -617,7 +617,7 @@ fi
+
+ # These get exported because they don't have side-effects...
+ CUPS_DISABLE_APPLE_DEFAULT=yes; export CUPS_DISABLE_APPLE_DEFAULT
+-CUPS_SERVER=localhost:$port; export CUPS_SERVER
++CUPS_SERVER=127.0.0.1:$port; export CUPS_SERVER
+ CUPS_SERVERROOT=$BASE; export CUPS_SERVERROOT
+ CUPS_STATEDIR=$BASE; export CUPS_STATEDIR
+ CUPS_DATADIR=$BASE/share; export CUPS_DATADIR
+@@ -743,10 +743,10 @@ for file in 4*.test ../examples/ipp-2.1.test; do
+ echo $ac_n "`date '+[%d/%b/%Y:%H:%M:%S %z]'` $ac_c" >>$strfile
+
+ if test $file = ../examples/ipp-2.1.test; then
+- uri="ipp://localhost:$port/printers/Test1"
++ uri="ipp://127.0.0.1:$port/printers/Test1"
+ options="-V 2.1 -d NOPRINT=1 -f testfile.ps"
+ else
+- uri="ipp://localhost:$port/printers"
++ uri="ipp://127.0.0.1:$port/printers"
+ options=""
+ fi
+ $runcups $VALGRIND ../tools/ipptool -tI $options $uri $file >> $strfile
diff --git a/debian/patches/tests-wait-on-unfinished-jobs-everytime.patch b/debian/patches/tests-wait-on-unfinished-jobs-everytime.patch
new file mode 100644
index 000000000..f29cb785b
--- /dev/null
+++ b/debian/patches/tests-wait-on-unfinished-jobs-everytime.patch
@@ -0,0 +1,30 @@
+From: Didier Raboud <odyx@debian.org>
+Date: Tue, 9 Aug 2016 18:11:17 +0200
+Subject: Tests: Make sure that all scheduled jobs are finished before
+
+ running a new test. Fixes failures on slow architectures like armel and
+ mipsel.
+Bug-Debian: http://bugs.debian.org/670878
+Last-Update: 2015-02-10
+
+Patch-Name: tests-wait-on-unfinished-jobs-everytime.patch
+---
+ test/run-stp-tests.sh | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/test/run-stp-tests.sh b/test/run-stp-tests.sh
+index c072ad8..4929820 100755
+--- a/test/run-stp-tests.sh
++++ b/test/run-stp-tests.sh
+@@ -776,6 +776,11 @@ echo " $date by $user on `hostname`." >>$strfile
+ echo " <pre>" >>$strfile
+
+ for file in 5*.sh; do
++ #
++ # Make sure the past jobs are done before going on.
++ #
++ ./waitjobs.sh 1800
++
+ echo $ac_n "Performing $file: $ac_c"
+ echo "" >>$strfile
+ echo "`date '+[%d/%b/%Y:%H:%M:%S %z]'` \"$file\":" >>$strfile