From f73c4567702c753af87d11dfcfc40430e806a828 Mon Sep 17 00:00:00 2001 From: Didier Raboud Date: Fri, 12 Feb 2021 14:09:07 +0100 Subject: Commit patch queue (exported by git-debrebase) [git-debrebase make-patches: export and commit patches] --- ...-point-to-client.conf.5-not-client.conf.7.patch | 23 ++ debian/patches/0002-Apple-AirPrint-support.patch | 90 ++++++ ...tic-PPDs-recommended-stanzas-in-NickNames.patch | 37 +++ .../0004-Debian-Set-LogFileGroup-to-adm.patch | 23 ++ ...-cupsd.conf.default-from-SERVERROOT-to-DA.patch | 62 ++++ ...ot-alter-the-permissions-of-cupsd.conf-ev.patch | 27 ++ .../0007-Debian-Show-compile-command-lines.patch | 20 ++ ...dpkg-architecture-in-cups-config-to-make-.patch | 49 +++ ...d-mantohtml-with-the-build-architecture-c.patch | 110 +++++++ ...oducibility-httpAddrGetHostname-test-fail.patch | 23 ++ ...roducibility-Do-not-run-stp-tests-as-root.patch | 23 ++ ...oducibility-Run-testlang-for-each-provide.patch | 30 ++ ...-infrastructure-and-translations-for-manp.patch | 341 +++++++++++++++++++++ debian/patches/series | 13 + 14 files changed, 871 insertions(+) create mode 100644 debian/patches/0001-Let-cups.1-point-to-client.conf.5-not-client.conf.7.patch create mode 100644 debian/patches/0002-Apple-AirPrint-support.patch create mode 100644 debian/patches/0003-Keep-foomatic-PPDs-recommended-stanzas-in-NickNames.patch create mode 100644 debian/patches/0004-Debian-Set-LogFileGroup-to-adm.patch create mode 100644 debian/patches/0005-Debian-Move-cupsd.conf.default-from-SERVERROOT-to-DA.patch create mode 100644 debian/patches/0006-Debian-Do-not-alter-the-permissions-of-cupsd.conf-ev.patch create mode 100644 debian/patches/0007-Debian-Show-compile-command-lines.patch create mode 100644 debian/patches/0008-Debian-Use-dpkg-architecture-in-cups-config-to-make-.patch create mode 100644 debian/patches/0009-Debian-Build-mantohtml-with-the-build-architecture-c.patch create mode 100644 debian/patches/0010-Debian-Reproducibility-httpAddrGetHostname-test-fail.patch create mode 100644 debian/patches/0011-Debian-Reproducibility-Do-not-run-stp-tests-as-root.patch create mode 100644 debian/patches/0012-Debian-Reproducibility-Run-testlang-for-each-provide.patch create mode 100644 debian/patches/0013-Debian-po4a-infrastructure-and-translations-for-manp.patch create mode 100644 debian/patches/series diff --git a/debian/patches/0001-Let-cups.1-point-to-client.conf.5-not-client.conf.7.patch b/debian/patches/0001-Let-cups.1-point-to-client.conf.5-not-client.conf.7.patch new file mode 100644 index 000000000..db22adeee --- /dev/null +++ b/debian/patches/0001-Let-cups.1-point-to-client.conf.5-not-client.conf.7.patch @@ -0,0 +1,23 @@ +From: Didier Raboud +Date: Fri, 12 Feb 2021 13:47:22 +0100 +Subject: Let cups.1 point to client.conf.5, not client.conf.7 + +Bug: https://github.com/OpenPrinting/cups/pull/92 +Closes: #982303 +--- + man/cups.1 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/man/cups.1 b/man/cups.1 +index 706620d..751ad9a 100644 +--- a/man/cups.1 ++++ b/man/cups.1 +@@ -125,7 +125,7 @@ Printers that do not support IPP can be supported using applications such as + .BR ippeveprinter (1). + .SH SEE ALSO + .BR cancel (1), +-.BR client.conf (7), ++.BR client.conf (5), + .BR cupsctl (8), + .BR cupsd (8), + .BR lp (1), diff --git a/debian/patches/0002-Apple-AirPrint-support.patch b/debian/patches/0002-Apple-AirPrint-support.patch new file mode 100644 index 000000000..5fc39dfe8 --- /dev/null +++ b/debian/patches/0002-Apple-AirPrint-support.patch @@ -0,0 +1,90 @@ +From: Till Kamppeter +Date: Tue, 9 Aug 2016 18:11:29 +0200 +Subject: Apple AirPrint support + +Bug-Ubuntu: https://bugs.launchpad.net/bugs/711779 +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1054495 +Bug-Debian: https://bugs.debian.org/700961 +Bug: https://github.com/apple/cups/issues/4341 +Bug: https://github.com/OpenPrinting/cups/pull/27 +--- + conf/mime.convs.in | 3 +++ + conf/mime.types | 3 +++ + scheduler/conf.c | 2 +- + scheduler/dirsvc.c | 6 ++++++ + scheduler/printers.c | 4 +++- + 5 files changed, 16 insertions(+), 2 deletions(-) + +diff --git a/conf/mime.convs.in b/conf/mime.convs.in +index 57b459d..e042e01 100644 +--- a/conf/mime.convs.in ++++ b/conf/mime.convs.in +@@ -44,6 +44,9 @@ application/postscript application/vnd.cups-postscript 66 pstops + application/vnd.cups-raster image/pwg-raster 100 rastertopwg + application/vnd.cups-raster image/urf 100 rastertopwg + ++# Needed for printing from iOS (AirPrint) clients ++image/urf application/pdf 100 - ++ + ######################################################################## + # + # Raw filter... +diff --git a/conf/mime.types b/conf/mime.types +index fcd6b6e..ebb0525 100644 +--- a/conf/mime.types ++++ b/conf/mime.types +@@ -108,6 +108,9 @@ image/x-alias pix short(8,8) short(8,24) + image/x-bitmap bmp string(0,BM) + !printable(2,14) + image/x-icon ico + ++# Needed for printing from iOS (AirPrint) clients ++image/urf urf string(0,UNIRAST<00>) ++ + ######################################################################## + # + # Text files... +diff --git a/scheduler/conf.c b/scheduler/conf.c +index 74531a8..bfd1b0b 100644 +--- a/scheduler/conf.c ++++ b/scheduler/conf.c +@@ -750,7 +750,7 @@ cupsdReadConfiguration(void) + DefaultShared = CUPS_DEFAULT_DEFAULT_SHARED; + + #if defined(HAVE_DNSSD) || defined(HAVE_AVAHI) +- cupsdSetString(&DNSSDSubTypes, "_cups,_print"); ++ cupsdSetString(&DNSSDSubTypes, "_cups,_print,_universal"); + cupsdClearString(&DNSSDHostName); + #endif /* HAVE_DNSSD || HAVE_AVAHI */ + +diff --git a/scheduler/dirsvc.c b/scheduler/dirsvc.c +index ddd3701..fb2a305 100644 +--- a/scheduler/dirsvc.c ++++ b/scheduler/dirsvc.c +@@ -440,6 +440,12 @@ dnssdBuildTxtRecord( + keyvalue[count ][0] = "pdl"; + keyvalue[count++][1] = p->pdl ? p->pdl : "application/postscript"; + ++ /* iOS 6 does not accept this printer as AirPrint printer if there is ++ no URF txt record or "URF=none", "DM3" is the minimum needed found ++ by try and error */ ++ keyvalue[count ][0] = "URF"; ++ keyvalue[count++][1] = "DM3"; ++ + if (get_auth_info_required(p, air_str, sizeof(air_str))) + { + keyvalue[count ][0] = "air"; +diff --git a/scheduler/printers.c b/scheduler/printers.c +index 7e9a9f2..3e00874 100644 +--- a/scheduler/printers.c ++++ b/scheduler/printers.c +@@ -3733,7 +3733,9 @@ add_printer_formats(cupsd_printer_t *p) /* I - Printer */ + } + else if (!_cups_strcasecmp(type->super, "image")) + { +- if (!_cups_strcasecmp(type->type, "jpeg")) ++ if (!_cups_strcasecmp(type->type, "urf")) ++ strlcat(pdl, "image/urf,", sizeof(pdl)); ++ else if (!_cups_strcasecmp(type->type, "jpeg")) + strlcat(pdl, "image/jpeg,", sizeof(pdl)); + else if (!_cups_strcasecmp(type->type, "png")) + strlcat(pdl, "image/png,", sizeof(pdl)); diff --git a/debian/patches/0003-Keep-foomatic-PPDs-recommended-stanzas-in-NickNames.patch b/debian/patches/0003-Keep-foomatic-PPDs-recommended-stanzas-in-NickNames.patch new file mode 100644 index 000000000..0da73cea6 --- /dev/null +++ b/debian/patches/0003-Keep-foomatic-PPDs-recommended-stanzas-in-NickNames.patch @@ -0,0 +1,37 @@ +From: Till Kampetter +Date: Tue, 9 Aug 2016 18:11:36 +0200 +Subject: Keep foomatic PPDs "(recommended)" stanzas in NickNames + +Bug-Upstream: https://github.com/OpenPrinting/cups/pull/33 +--- + scheduler/cups-driverd.cxx | 10 ---------- + 1 file changed, 10 deletions(-) + +diff --git a/scheduler/cups-driverd.cxx b/scheduler/cups-driverd.cxx +index 85516eb..874eb3c 100644 +--- a/scheduler/cups-driverd.cxx ++++ b/scheduler/cups-driverd.cxx +@@ -240,7 +240,6 @@ add_ppd(const char *filename, /* I - PPD filename */ + const char *scheme) /* I - PPD scheme */ + { + ppd_info_t *ppd; /* PPD */ +- char *recommended; /* Foomatic driver string */ + + + /* +@@ -278,15 +277,6 @@ add_ppd(const char *filename, /* I - PPD filename */ + strlcpy(ppd->record.device_id, device_id, sizeof(ppd->record.device_id)); + strlcpy(ppd->record.scheme, scheme, sizeof(ppd->record.scheme)); + +- /* +- * Strip confusing (and often wrong) "recommended" suffix added by +- * Foomatic drivers... +- */ +- +- if ((recommended = strstr(ppd->record.make_and_model, +- " (recommended)")) != NULL) +- *recommended = '\0'; +- + /* + * Add the PPD to the PPD arrays... + */ diff --git a/debian/patches/0004-Debian-Set-LogFileGroup-to-adm.patch b/debian/patches/0004-Debian-Set-LogFileGroup-to-adm.patch new file mode 100644 index 000000000..597d9bfad --- /dev/null +++ b/debian/patches/0004-Debian-Set-LogFileGroup-to-adm.patch @@ -0,0 +1,23 @@ +From: Martin Pitt +Date: Tue, 9 Aug 2016 18:11:38 +0200 +Subject: Debian: Set LogFileGroup to adm + +--- + conf/cups-files.conf.in | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/conf/cups-files.conf.in b/conf/cups-files.conf.in +index af11fcc..80ca351 100644 +--- a/conf/cups-files.conf.in ++++ b/conf/cups-files.conf.in +@@ -29,6 +29,10 @@ SystemGroup @CUPS_SYSTEM_GROUPS@ + #ConfigFilePerm 0@CUPS_CONFIG_FILE_PERM@ + #LogFilePerm 0@CUPS_LOG_FILE_PERM@ + ++# Specifies the group name or ID that will be used for log files. ++# The default group in Debian is "adm". ++LogFileGroup adm ++ + # Location of the file logging all access to the scheduler; may be the name + # "syslog". If not an absolute path, the value of ServerRoot is used as the + # root directory. Also see the "AccessLogLevel" directive in cupsd.conf. diff --git a/debian/patches/0005-Debian-Move-cupsd.conf.default-from-SERVERROOT-to-DA.patch b/debian/patches/0005-Debian-Move-cupsd.conf.default-from-SERVERROOT-to-DA.patch new file mode 100644 index 000000000..c4efe6cad --- /dev/null +++ b/debian/patches/0005-Debian-Move-cupsd.conf.default-from-SERVERROOT-to-DA.patch @@ -0,0 +1,62 @@ +From: Didier Raboud +Date: Tue, 9 Aug 2016 18:11:24 +0200 +Subject: Debian: Move cupsd.conf.default from SERVERROOT to DATADIR + +Origin: vendor +Bug: https://github.com/apple/cups/issues/4342 +Bug: https://github.com/OpenPrinting/cups/pull/26 +Bug-Debian: https://bugs.debian.org/640124 +--- + cgi-bin/admin.c | 6 +++++- + conf/Makefile | 5 +++-- + 2 files changed, 8 insertions(+), 3 deletions(-) + +diff --git a/cgi-bin/admin.c b/cgi-bin/admin.c +index c648938..5ff7501 100644 +--- a/cgi-bin/admin.c ++++ b/cgi-bin/admin.c +@@ -1636,6 +1636,7 @@ do_config_server(http_t *http) /* I - HTTP connection */ + int ch; /* Character from file */ + char filename[1024]; /* Filename */ + const char *server_root; /* Location of config files */ ++ const char *data_dir; /* Location of data files */ + + + /* +@@ -1719,7 +1720,10 @@ do_config_server(http_t *http) /* I - HTTP connection */ + * well... + */ + +- strlcat(filename, ".default", sizeof(filename)); ++ if ((data_dir = getenv("CUPS_DATADIR")) == NULL) ++ data_dir = CUPS_DATADIR; ++ ++ snprintf(filename, sizeof(filename), "%s/cupsd.conf.default",data_dir); + + if (!stat(filename, &info) && info.st_size < (1024 * 1024) && + (cupsd = cupsFileOpen(filename, "r")) != NULL) +diff --git a/conf/Makefile b/conf/Makefile +index e249e60..42a123f 100644 +--- a/conf/Makefile ++++ b/conf/Makefile +@@ -70,7 +70,7 @@ install-data: + else \ + $(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(SERVERROOT) ; \ + fi ; \ +- $(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(SERVERROOT)/$$file.default; \ ++ $(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(DATADIR)/$$file.default; \ + done + $(INSTALL_DIR) -m 755 $(DATADIR)/mime + for file in $(REPLACE); do \ +@@ -118,9 +118,10 @@ install-libs: + # + + uninstall: +- for file in $(KEEP) $(REPLACE) cupsd.conf.default; do \ ++ for file in $(KEEP) $(REPLACE); do \ + $(RM) $(SERVERROOT)/$$file; \ + done ++ $(RM) $(DATADIR)/cupsd.conf.default + -$(RMDIR) $(SERVERROOT) + for file in $(REPLACE); do \ + $(RM) $(DATADIR)/mime/$$file; \ diff --git a/debian/patches/0006-Debian-Do-not-alter-the-permissions-of-cupsd.conf-ev.patch b/debian/patches/0006-Debian-Do-not-alter-the-permissions-of-cupsd.conf-ev.patch new file mode 100644 index 000000000..bcbc93a03 --- /dev/null +++ b/debian/patches/0006-Debian-Do-not-alter-the-permissions-of-cupsd.conf-ev.patch @@ -0,0 +1,27 @@ +From: Martin Pitt +Date: Tue, 9 Aug 2016 18:11:41 +0200 +Subject: Debian: Do not alter the permissions of cupsd.conf, ever + +Origin: vendor +Bug: https://github.com/OpenPrinting/cups/pull/36 +--- + scheduler/conf.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/scheduler/conf.c b/scheduler/conf.c +index bfd1b0b..c8cd5ea 100644 +--- a/scheduler/conf.c ++++ b/scheduler/conf.c +@@ -1140,10 +1140,12 @@ cupsdReadConfiguration(void) + Group, 1, 1) < 0 || + cupsdCheckPermissions(ServerRoot, "ssl", 0700, RunUser, + Group, 1, 0) < 0 || ++ /* Never alter permissions of central conffile + cupsdCheckPermissions(ConfigurationFile, NULL, ConfigFilePerm, RunUser, + Group, 0, 0) < 0 || + cupsdCheckPermissions(CupsFilesFile, NULL, ConfigFilePerm, RunUser, + Group, 0, 0) < 0 || ++ */ + cupsdCheckPermissions(ServerRoot, "classes.conf", 0600, RunUser, + Group, 0, 0) < 0 || + cupsdCheckPermissions(ServerRoot, "printers.conf", 0600, RunUser, diff --git a/debian/patches/0007-Debian-Show-compile-command-lines.patch b/debian/patches/0007-Debian-Show-compile-command-lines.patch new file mode 100644 index 000000000..a3c709609 --- /dev/null +++ b/debian/patches/0007-Debian-Show-compile-command-lines.patch @@ -0,0 +1,20 @@ +From: Till Kampetter +Date: Tue, 9 Aug 2016 18:11:43 +0200 +Subject: Debian: Show compile command lines + +--- + Makedefs.in | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/Makedefs.in b/Makedefs.in +index 9ee7585..038bb94 100644 +--- a/Makedefs.in ++++ b/Makedefs.in +@@ -263,7 +263,6 @@ USBQUIRKS = @USBQUIRKS@ + # Rules... + # + +-.SILENT: + .SUFFIXES: .a .c .cxx .h .o + + .c.o: diff --git a/debian/patches/0008-Debian-Use-dpkg-architecture-in-cups-config-to-make-.patch b/debian/patches/0008-Debian-Use-dpkg-architecture-in-cups-config-to-make-.patch new file mode 100644 index 000000000..7f508d999 --- /dev/null +++ b/debian/patches/0008-Debian-Use-dpkg-architecture-in-cups-config-to-make-.patch @@ -0,0 +1,49 @@ +From: Didier Raboud +Date: Tue, 9 Aug 2016 18:11:49 +0200 +Subject: Debian: Use dpkg-architecture in cups-config to make it + architecture-independant + + Also filter -L/usr/lib/(triplet) out of LDFLAGS. + Also strip unnecessary libs from --libs. + Also launch krb5-config at runtime to avoid getting usr/lib/(triplet) from krb5-config + +Bug-Debian: https://bugs.debian.org/741519 +Bug-Debian: https://bugs.debian.org/727058 +Bug-Debian: https://bugs.debian.org/730838 +Bug-Debian: https://bugs.debian.org/751157 +--- + cups-config.in | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/cups-config.in b/cups-config.in +index 9dd094d..b073a07 100755 +--- a/cups-config.in ++++ b/cups-config.in +@@ -17,7 +17,7 @@ prefix=@prefix@ + exec_prefix=@exec_prefix@ + bindir=@bindir@ + includedir=@includedir@ +-libdir=@libdir@ ++libdir=${prefix}/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH) + datarootdir=@datadir@ + datadir=@datadir@ + sysconfdir=@sysconfdir@ +@@ -29,7 +29,8 @@ INSTALLSTATIC=@INSTALLSTATIC@ + # flags for compiler and linker... + CFLAGS="" + LDFLAGS="@EXPORT_LDFLAGS@" +-LIBS="@LIBGSSAPI@ @DNSSDLIBS@ @EXPORT_SSLLIBS@ @LIBZ@ @LIBS@" ++LIBGSSAPI=`[ ! -x /usr/bin/krb5-config ] || /usr/bin/krb5-config --libs` ++LIBS="$LIBGSSAPI @DNSSDLIBS@ @EXPORT_SSLLIBS@ @LIBZ@ @LIBS@" + + # Check for local invocation... + selfdir=`dirname $0` +@@ -43,7 +44,7 @@ else + CFLAGS="$CFLAGS -I$includedir" + fi + +- if test $libdir != /usr/lib -a $libdir != /usr/lib32 -a $libdir != /usr/lib64; then ++ if test $libdir != /usr/lib -a $libdir != /usr/lib32 -a $libdir != /usr/lib64 -a $libdir != /usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH); then + LDFLAGS="$LDFLAGS -L$libdir" + fi + fi diff --git a/debian/patches/0009-Debian-Build-mantohtml-with-the-build-architecture-c.patch b/debian/patches/0009-Debian-Build-mantohtml-with-the-build-architecture-c.patch new file mode 100644 index 000000000..44c038d74 --- /dev/null +++ b/debian/patches/0009-Debian-Build-mantohtml-with-the-build-architecture-c.patch @@ -0,0 +1,110 @@ +From: Helmut Grohne +Date: Tue, 9 Aug 2016 18:11:49 +0200 +Subject: Debian: Build mantohtml with the build architecture compiler + +mantohtml is run during build. Thus it needs to be built with the build +architecture compiler (or execution fails). The obvious part is switching to +CC_FOR_BUILD. That also depends on it not requiring any other cups components. +In particular, removing uses of strlcpy and replacing host architecture- +specific includes is thus needed. + +Bug-Debian: https://bugs.debian.org/837936 +--- + Makedefs.in | 1 + + configure.ac | 9 +++++++++ + man/Makefile | 5 ++--- + man/mantohtml.c | 15 ++++++++++----- + 4 files changed, 22 insertions(+), 8 deletions(-) + +diff --git a/Makedefs.in b/Makedefs.in +index 038bb94..291099c 100644 +--- a/Makedefs.in ++++ b/Makedefs.in +@@ -22,6 +22,7 @@ CUPS_VERSION = @CUPS_VERSION@ + AR = @AR@ + AWK = @AWK@ + CC = @LIBTOOL_CC@ @CC@ ++CC_FOR_BUILD = @CC_FOR_BUILD@ + CHMOD = @CHMOD@ + CXX = @LIBTOOL_CXX@ @CXX@ + DSO = @DSO@ +diff --git a/configure.ac b/configure.ac +index 93a4b97..b60b832 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -20,6 +20,15 @@ sinclude(config-scripts/cups-common.m4) + sinclude(config-scripts/cups-directories.m4) + sinclude(config-scripts/cups-manpages.m4) + ++AC_MSG_CHECKING([for build system compiler]) ++if test "$cross_compiling" = yes; then ++ CC_FOR_BUILD=${CC_FOR_BUILD-cc} ++else ++ CC_FOR_BUILD=${CC} ++fi ++AC_MSG_RESULT(${CC_FOR_BUILD}) ++AC_SUBST(CC_FOR_BUILD) ++ + sinclude(config-scripts/cups-sharedlibs.m4) + sinclude(config-scripts/cups-libtool.m4) + sinclude(config-scripts/cups-compiler.m4) +diff --git a/man/Makefile b/man/Makefile +index 621fe60..e01591a 100644 +--- a/man/Makefile ++++ b/man/Makefile +@@ -222,6 +222,5 @@ html: $(MAN1) $(MAN5) $(MAN7) $(MAN8) mantohtml + ./mantohtml $$file >../doc/help/man-`basename $$file .8`.html; \ + done + +-mantohtml: mantohtml.o ../cups/$(LIBCUPSSTATIC) +- $(LD_CC) $(ARCHFLAGS) $(ALL_LDFLAGS) -o $@ mantohtml.o $(LINKCUPSSTATIC) +- $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ ++mantohtml: mantohtml.c ++ $(CC_FOR_BUILD) -o $@ $< +diff --git a/man/mantohtml.c b/man/mantohtml.c +index 2a9353a..6223f17 100644 +--- a/man/mantohtml.c ++++ b/man/mantohtml.c +@@ -11,8 +11,10 @@ + * Include necessary headers. + */ + +-#include +-#include ++#include ++#include ++#include ++#include + #include + + +@@ -811,7 +813,8 @@ main(int argc, /* I - Number of command-line args */ + * Anchor for HTML output... + */ + +- strlcpy(anchor, line + 4, sizeof(anchor)); ++ strncpy(anchor, line + 4, sizeof(anchor) - 1); ++ anchor[sizeof(anchor) - 1] = '\0'; + } + else if (strncmp(line, ".\\\"", 3)) + { +@@ -940,7 +943,8 @@ html_alternate(const char *s, /* I - String */ + manfile[1024], /* Man page filename */ + manurl[1024]; /* Man page URL */ + +- strlcpy(name, s, sizeof(name)); ++ strncpy(name, s, sizeof(name) - 1); ++ name[sizeof(name) - 1] = '\0'; + if ((size_t)(end - s) < sizeof(name)) + name[end - s] = '\0'; + +@@ -1173,7 +1177,8 @@ html_fputs(const char *s, /* I - String */ + if (end[-1] == ',' || end[-1] == '.' || end[-1] == ')') + end --; + +- strlcpy(temp, s, sizeof(temp)); ++ strncpy(temp, s, sizeof(temp) - 1); ++ temp[sizeof(temp) - 1] = '\0'; + if ((size_t)(end -s) < sizeof(temp)) + temp[end - s] = '\0'; + diff --git a/debian/patches/0010-Debian-Reproducibility-httpAddrGetHostname-test-fail.patch b/debian/patches/0010-Debian-Reproducibility-httpAddrGetHostname-test-fail.patch new file mode 100644 index 000000000..8db9ff408 --- /dev/null +++ b/debian/patches/0010-Debian-Reproducibility-httpAddrGetHostname-test-fail.patch @@ -0,0 +1,23 @@ +From: Didier Raboud +Date: Wed, 3 Feb 2021 14:27:34 +0100 +Subject: Debian: Reproducibility: httpAddrGetHostname() test fails under + reprotest; skip it + +--- + cups/testhttp.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/cups/testhttp.c b/cups/testhttp.c +index dfb767c..8cb87d6 100644 +--- a/cups/testhttp.c ++++ b/cups/testhttp.c +@@ -416,8 +416,7 @@ main(int argc, /* I - Number of command-line arguments */ + } + else + { +- failures ++; +- puts("FAIL"); ++ puts("FAIL (Debian Reproducibility; failure allowed, as this is known to fail under reprotest"); + } + + /* diff --git a/debian/patches/0011-Debian-Reproducibility-Do-not-run-stp-tests-as-root.patch b/debian/patches/0011-Debian-Reproducibility-Do-not-run-stp-tests-as-root.patch new file mode 100644 index 000000000..545310493 --- /dev/null +++ b/debian/patches/0011-Debian-Reproducibility-Do-not-run-stp-tests-as-root.patch @@ -0,0 +1,23 @@ +From: Didier Raboud +Date: Wed, 3 Feb 2021 16:30:08 +0100 +Subject: Debian: Reproducibility: Do not run stp tests as root + +Reprotest insist in running these tests as root; skip them there. +--- + test/run-stp-tests.sh | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/test/run-stp-tests.sh b/test/run-stp-tests.sh +index 4498a8c..ce868ea 100755 +--- a/test/run-stp-tests.sh ++++ b/test/run-stp-tests.sh +@@ -19,7 +19,8 @@ argcount=$# + + if test "x`id -u`" = x0; then + echo Please run this as a normal user. Not supported when run as root. +- exit 1 ++ echo "Debian Reproducibility: Skipping allowed, as this is known to break under reprotest. This message MUST NOT be visible in normal Debian buildd logs." ++ exit 0 + fi + + # diff --git a/debian/patches/0012-Debian-Reproducibility-Run-testlang-for-each-provide.patch b/debian/patches/0012-Debian-Reproducibility-Run-testlang-for-each-provide.patch new file mode 100644 index 000000000..952576dbf --- /dev/null +++ b/debian/patches/0012-Debian-Reproducibility-Run-testlang-for-each-provide.patch @@ -0,0 +1,30 @@ +From: Didier Raboud +Date: Wed, 3 Feb 2021 16:20:20 +0100 +Subject: Debian: Reproducibility: Run testlang for each provided CUPS locale +MIME-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 8bit + +… and only for these. + +Of the build environment forces LC_ALL to a non-provided locale, the build will fail. +--- + cups/Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cups/Makefile b/cups/Makefile +index 4e2aa6d..2068349 100644 +--- a/cups/Makefile ++++ b/cups/Makefile +@@ -639,9 +639,9 @@ testlang: testlang.o $(LIBCUPSSTATIC) + lang=`basename $$po .po | sed -e '1,$$s/^cups_//'`; \ + $(MKDIR) locale/$$lang; \ + $(LN) ../../$$po locale/$$lang; \ ++ echo Running language API tests for $$lang...; \ ++ LOCALEDIR=locale ./testlang -l $$lang; \ + done +- echo Running language API tests... +- LOCALEDIR=locale ./testlang + + + # diff --git a/debian/patches/0013-Debian-po4a-infrastructure-and-translations-for-manp.patch b/debian/patches/0013-Debian-po4a-infrastructure-and-translations-for-manp.patch new file mode 100644 index 000000000..ef9aa4262 --- /dev/null +++ b/debian/patches/0013-Debian-po4a-infrastructure-and-translations-for-manp.patch @@ -0,0 +1,341 @@ +From: Didier Raboud +Date: Tue, 9 Aug 2016 18:11:50 +0200 +Subject: Debian: po4a infrastructure and translations for manpages +MIME-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 8bit + +Author: Nicolas François , Helge Kreutzmann +Origin: vendor +Bug-Debian: https://bugs.debian.org/478597 +--- + man/Makefile | 17 +++- + man/Makefile.l10n | 235 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + man/de/Makefile | 7 ++ + man/fr/Makefile | 7 ++ + 4 files changed, 264 insertions(+), 2 deletions(-) + create mode 100644 man/Makefile.l10n + create mode 100644 man/de/Makefile + create mode 100644 man/fr/Makefile + +diff --git a/man/Makefile b/man/Makefile +index e01591a..48f06c4 100644 +--- a/man/Makefile ++++ b/man/Makefile +@@ -63,12 +63,18 @@ MAN8 = cupsaccept.8 \ + lpmove.8 \ + lpc.8 + ++LANGUAGES=de fr + + # + # Make everything... + # + +-all: $(MAN1) $(MAN5) $(MAN7) $(MAN8) ++all: $(MAN1) $(MAN5) $(MAN7) $(MAN8) translations ++ ++translations: ++ # Update the translations and build the translated material ++ po4a --previous ../debian/manpage-po4a/cups.cfg ++ for lang in $(LANGUAGES); do $(MAKE) -C $$lang; done + + + # +@@ -91,6 +97,12 @@ unittests: + + clean: + $(RM) mantohtml mantohtml.o ++ $(RM) $(MAN1) $(MAN5) $(MAN7) $(MAN8) ++ for lang in $(LANGUAGES); do $(MAKE) -C $$lang clean; done ++ # Make sure the PO files are updated and remove generated ++ # translations. ++ po4a --previous --rm-translations ../debian/manpage-po4a/cups.cfg ++ $(RM) ../debian/manpage-po4a/po/cups.pot + + + # +@@ -142,6 +154,7 @@ install-data: all + $(RM) $(MANDIR)/man8/$$file; \ + $(LN) cupsd-helper.8 $(MANDIR)/man8/$$file; \ + done ++ for lang in $(LANGUAGES); do $(MAKE) -C $$lang install; done + + + # +@@ -189,7 +202,7 @@ uninstall: + for file in $(MAN8) cupsenable.8 cupsreject.8 cups-deviced.8 cups-driverd.8 cups-exec.8; do \ + $(RM) $(MANDIR)/man8/$$file; \ + done +- -$(RMDIR) $(MANDIR)/man8 ++ -$(RMDIR) $(AMANDIR)/man$(MAN8DIR) + + + # +diff --git a/man/Makefile.l10n b/man/Makefile.l10n +new file mode 100644 +index 0000000..08390f5 +--- /dev/null ++++ b/man/Makefile.l10n +@@ -0,0 +1,235 @@ ++# ++# Man page makefile for CUPS. ++# ++# Copyright © 2007-2019 by Apple Inc. ++# Copyright © 1993-2006 by Easy Software Products. ++# ++# Licensed under Apache License v2.0. See the file "LICENSE" for more ++# information. ++# ++ ++include ../../Makedefs ++ ++ ++# ++# Man pages... ++# ++ ++MAN1 = cancel.1 \ ++ cups.1 \ ++ cups-config.1 \ ++ cupstestppd.1 \ ++ ippeveprinter.1 \ ++ $(IPPFIND_MAN) \ ++ ipptool.1 \ ++ lp.1 \ ++ lpoptions.1 \ ++ lpq.1 \ ++ lprm.1 \ ++ lpr.1 \ ++ lpstat.1 \ ++ ppdc.1 \ ++ ppdhtml.1 \ ++ ppdi.1 \ ++ ppdmerge.1 \ ++ ppdpo.1 ++MAN5 = classes.conf.5 \ ++ client.conf.5 \ ++ cups-files.conf.5 \ ++ cups-snmp.conf.5 \ ++ cupsd.conf.5 \ ++ cupsd-logs.5 \ ++ ipptoolfile.5 \ ++ mailto.conf.5 \ ++ mime.convs.5 \ ++ mime.types.5 \ ++ ppdcfile.5 \ ++ printers.conf.5 \ ++ subscriptions.conf.5 ++MAN7 = backend.7 \ ++ filter.7 \ ++ ippevepcl.7 \ ++ notifier.7 ++MAN8 = cupsaccept.8 \ ++ cupsctl.8 \ ++ cupsfilter.8 \ ++ cups-lpd.8 \ ++ cups-snmp.8 \ ++ cupsd.8 \ ++ cupsd-helper.8 \ ++ cupsenable.8 \ ++ lpadmin.8 \ ++ lpinfo.8 \ ++ lpmove.8 \ ++ lpc.8 ++ ++ ++# ++# Make everything... ++# ++ ++# Debian-specific patch: Just assume all files are here. ++all: ++ ++ ++# ++# Make library targets... ++# ++ ++libs: ++ ++ ++# ++# Make unit tests... ++# ++ ++unittests: ++ ++ ++# ++# Clean all config and object files... ++# ++ ++clean: ++ $(RM) mantohtml mantohtml.o ++ ++ ++# ++# Dummy depend target... ++# ++ ++depend: ++ ++ ++# ++# Install all targets... ++# ++ ++# Debian-specific patch: directory-based language namespace ++MANDIR := $(MANDIR)/$(LANGUAGE) ++ ++install: all install-data install-headers install-libs install-exec ++ ++ ++# ++# Install data files... ++# ++ ++# Debian-specific patch: skip if doesn't exist ++install-data: all ++ echo Installing man pages in $(MANDIR)/man1... ++ $(INSTALL_DIR) -m 755 $(MANDIR)/man1 ++ for file in $(MAN1); do \ ++ [ ! -r $$file ] || \ ++ $(INSTALL_MAN) $$file $(MANDIR)/man1; \ ++ done ++ echo Installing man pages in $(MANDIR)/man5... ++ $(INSTALL_DIR) -m 755 $(MANDIR)/man5 ++ for file in $(MAN5); do \ ++ [ ! -r $$file ] || \ ++ $(INSTALL_MAN) $$file $(MANDIR)/man5; \ ++ done ++ echo Installing man pages in $(MANDIR)/man7... ++ $(INSTALL_DIR) -m 755 $(MANDIR)/man7 ++ for file in $(MAN7); do \ ++ [ ! -r $$file ] || \ ++ $(INSTALL_MAN) $$file $(MANDIR)/man7; \ ++ done ++ $(RM) $(MANDIR)/man7/ippeveps.7 ++ $(LN) ippevepcl.7 $(MANDIR)/man7/ippeveps.7 ++ echo Installing man pages in $(MANDIR)/man8... ++ $(INSTALL_DIR) -m 755 $(MANDIR)/man8 ++ for file in $(MAN8); do \ ++ [ ! -r $$file ] || \ ++ $(INSTALL_MAN) $$file $(MANDIR)/man8; \ ++ done ++ $(RM) $(MANDIR)/man8/cupsdisable.8 ++ $(LN) cupsenable.8 $(MANDIR)/man8/cupsdisable.8 ++ $(RM) $(MANDIR)/man8/cupsreject.8 ++ $(LN) cupsaccept.8 $(MANDIR)/man8/cupsreject.8 ++ for file in cups-deviced.8 cups-driverd.8 cups-exec.8; do \ ++ $(RM) $(MANDIR)/man8/$$file; \ ++ $(LN) cupsd-helper.8 $(MANDIR)/man8/$$file; \ ++ done ++ ++ ++# ++# Install programs... ++# ++ ++install-exec: ++ ++ ++# ++# Install headers... ++# ++ ++install-headers: ++ ++ ++# ++# Install libraries... ++# ++ ++install-libs: ++ ++ ++# ++# Uninstall files... ++# ++ ++uninstall: ++ echo Uninstalling man pages from $(MANDIR)/man1... ++ for file in $(MAN1); do \ ++ $(RM) $(MANDIR)/man1/$$file; \ ++ done ++ -$(RMDIR) $(MANDIR)/man1 ++ echo Uninstalling man pages from $(MANDIR)/man5... ++ for file in $(MAN5); do \ ++ $(RM) $(MANDIR)/man5/$$file; \ ++ done ++ -$(RMDIR) $(MANDIR)/man5 ++ echo Uninstalling man pages from $(MANDIR)/man7... ++ for file in $(MAN7) ippeveps.7; do \ ++ $(RM) $(MANDIR)/man7/$$file; \ ++ done ++ -$(RMDIR) $(MANDIR)/man7 ++ echo Uninstalling man pages from $(MANDIR)/man8... ++ for file in $(MAN8) cupsenable.8 cupsreject.8 cups-deviced.8 cups-driverd.8 cups-exec.8; do \ ++ $(RM) $(MANDIR)/man8/$$file; \ ++ done ++ -$(RMDIR) $(MANDIR)/man8 ++ ++ ++# ++# Local programs (not built when cross-compiling...) ++# ++ ++local: html ++ ++ ++# ++# Make html versions of man pages... ++# ++ ++html: $(MAN1) $(MAN5) $(MAN7) $(MAN8) mantohtml ++ echo Converting man pages to HTML... ++ for file in $(MAN1); do \ ++ echo " $$file..."; \ ++ ./mantohtml $$file >../doc/help/man-`basename $$file .1`.html; \ ++ done ++ for file in $(MAN5); do \ ++ echo " $$file..."; \ ++ ./mantohtml $$file >../doc/help/man-`basename $$file .5`.html; \ ++ done ++ for file in $(MAN7); do \ ++ echo " $$file..."; \ ++ ./mantohtml $$file >../doc/help/man-`basename $$file .7`.html; \ ++ done ++ for file in $(MAN8); do \ ++ echo " $$file..."; \ ++ ./mantohtml $$file >../doc/help/man-`basename $$file .8`.html; \ ++ done ++ ++mantohtml: mantohtml.c ++ $(CC_FOR_BUILD) -o $@ $< +diff --git a/man/de/Makefile b/man/de/Makefile +new file mode 100644 +index 0000000..7c23784 +--- /dev/null ++++ b/man/de/Makefile +@@ -0,0 +1,7 @@ ++# ++# Man page makefile for the Common UNIX Printing System (CUPS). ++# ++ ++LANGUAGE=de ++ ++include ../Makefile.l10n +diff --git a/man/fr/Makefile b/man/fr/Makefile +new file mode 100644 +index 0000000..6a50e93 +--- /dev/null ++++ b/man/fr/Makefile +@@ -0,0 +1,7 @@ ++# ++# Man page makefile for the Common UNIX Printing System (CUPS). ++# ++ ++LANGUAGE=fr ++ ++include ../Makefile.l10n diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 000000000..a718d15b1 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,13 @@ +0001-Let-cups.1-point-to-client.conf.5-not-client.conf.7.patch +0002-Apple-AirPrint-support.patch +0003-Keep-foomatic-PPDs-recommended-stanzas-in-NickNames.patch +0004-Debian-Set-LogFileGroup-to-adm.patch +0005-Debian-Move-cupsd.conf.default-from-SERVERROOT-to-DA.patch +0006-Debian-Do-not-alter-the-permissions-of-cupsd.conf-ev.patch +0007-Debian-Show-compile-command-lines.patch +0008-Debian-Use-dpkg-architecture-in-cups-config-to-make-.patch +0009-Debian-Build-mantohtml-with-the-build-architecture-c.patch +0010-Debian-Reproducibility-httpAddrGetHostname-test-fail.patch +0011-Debian-Reproducibility-Do-not-run-stp-tests-as-root.patch +0012-Debian-Reproducibility-Run-testlang-for-each-provide.patch +0013-Debian-po4a-infrastructure-and-translations-for-manp.patch -- cgit v1.2.3