2.3.1
This commit is contained in:
parent
69caed9f03
commit
9776733d08
1
.gitignore
vendored
1
.gitignore
vendored
@ -91,3 +91,4 @@ cups-1.4.4-source.tar.bz2
|
||||
/cups-2.2.11-source.tar.gz
|
||||
/cups-2.2.12-source.tar.gz
|
||||
/cups-2.3.0-source.tar.gz
|
||||
/cups-2.3.1-source.tar.gz
|
||||
|
@ -1,23 +0,0 @@
|
||||
From f8688d733bc1ecf86e5b7af7c40b758c0c9c4f28 Mon Sep 17 00:00:00 2001
|
||||
From: Michael R Sweet <michael.r.sweet@gmail.com>
|
||||
Date: Thu, 5 Sep 2019 12:43:58 -0400
|
||||
Subject: [PATCH] Add workaround for systemd's lack of true launch-on-demand
|
||||
support (Issue #5640)
|
||||
|
||||
diff --git a/scheduler/main.c b/scheduler/main.c
|
||||
index 842b00a42..d5fdf971a 100644
|
||||
--- a/scheduler/main.c
|
||||
+++ b/scheduler/main.c
|
||||
@@ -757,7 +757,9 @@ main(int argc, /* I - Number of command-line args */
|
||||
#ifdef HAVE_ONDEMAND
|
||||
if (OnDemand)
|
||||
{
|
||||
+# ifndef HAVE_SYSTEMD /* Issue #5640: systemd doesn't actually support launch-on-demand services, need to fake it */
|
||||
stop_scheduler = 1;
|
||||
+# endif /* HAVE_SYSTEMD */
|
||||
break;
|
||||
}
|
||||
#endif /* HAVE_ONDEMAND */
|
||||
--
|
||||
2.20.1
|
||||
|
@ -1,110 +0,0 @@
|
||||
From eff8c82f6a43ee1816e3b5899381d525c3231d37 Mon Sep 17 00:00:00 2001
|
||||
From: Michael R Sweet <michael.r.sweet@gmail.com>
|
||||
Date: Wed, 2 Oct 2019 14:06:02 -0400
|
||||
Subject: [PATCH] Fix handling of printer resource files (Issue #5652)
|
||||
diff --git a/scheduler/client.c b/scheduler/client.c
|
||||
index f693e7c49..c2ee8f12a 100644
|
||||
--- a/scheduler/client.c
|
||||
+++ b/scheduler/client.c
|
||||
@@ -1099,7 +1099,7 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */
|
||||
}
|
||||
}
|
||||
}
|
||||
- else if (!strncmp(con->uri, "/admin", 6) || !strncmp(con->uri, "/printers", 9) || !strncmp(con->uri, "/classes", 8) || !strncmp(con->uri, "/help", 5) || !strncmp(con->uri, "/jobs", 5))
|
||||
+ else if (!buf[0] && (!strncmp(con->uri, "/admin", 6) || !strncmp(con->uri, "/classes", 8) || !strncmp(con->uri, "/help", 5) || !strncmp(con->uri, "/jobs", 5) || !strncmp(con->uri, "/printers", 9)))
|
||||
{
|
||||
if (!WebInterface)
|
||||
{
|
||||
@@ -1125,14 +1125,6 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */
|
||||
cupsdSetStringf(&con->command, "%s/cgi-bin/admin.cgi", ServerBin);
|
||||
cupsdSetString(&con->options, strchr(con->uri + 6, '?'));
|
||||
}
|
||||
- else if (!strncmp(con->uri, "/printers", 9))
|
||||
- {
|
||||
- cupsdSetStringf(&con->command, "%s/cgi-bin/printers.cgi", ServerBin);
|
||||
- if (con->uri[9] && con->uri[10])
|
||||
- cupsdSetString(&con->options, con->uri + 9);
|
||||
- else
|
||||
- cupsdSetString(&con->options, NULL);
|
||||
- }
|
||||
else if (!strncmp(con->uri, "/classes", 8))
|
||||
{
|
||||
cupsdSetStringf(&con->command, "%s/cgi-bin/classes.cgi", ServerBin);
|
||||
@@ -1149,6 +1141,14 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */
|
||||
else
|
||||
cupsdSetString(&con->options, NULL);
|
||||
}
|
||||
+ else if (!strncmp(con->uri, "/printers", 9))
|
||||
+ {
|
||||
+ cupsdSetStringf(&con->command, "%s/cgi-bin/printers.cgi", ServerBin);
|
||||
+ if (con->uri[9] && con->uri[10])
|
||||
+ cupsdSetString(&con->options, con->uri + 9);
|
||||
+ else
|
||||
+ cupsdSetString(&con->options, NULL);
|
||||
+ }
|
||||
else
|
||||
{
|
||||
cupsdSetStringf(&con->command, "%s/cgi-bin/help.cgi", ServerBin);
|
||||
@@ -1458,7 +1458,7 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */
|
||||
break;
|
||||
}
|
||||
|
||||
- if (!strncmp(con->uri, "/admin", 6) || !strncmp(con->uri, "/printers", 9) || !strncmp(con->uri, "/classes", 8) || !strncmp(con->uri, "/help", 5) || !strncmp(con->uri, "/jobs", 5))
|
||||
+ if (!buf[0] && (!strncmp(con->uri, "/admin", 6) || !strncmp(con->uri, "/classes", 8) || !strncmp(con->uri, "/help", 5) || !strncmp(con->uri, "/jobs", 5) || !strncmp(con->uri, "/printers", 9)))
|
||||
{
|
||||
/*
|
||||
* CGI output...
|
||||
@@ -2701,6 +2701,7 @@ get_file(cupsd_client_t *con, /* I - Client connection */
|
||||
* Figure out the real filename...
|
||||
*/
|
||||
|
||||
+ filename[0] = '\0';
|
||||
language[0] = '\0';
|
||||
|
||||
if (!strncmp(con->uri, "/help", 5) && (con->uri[5] == '/' || !con->uri[5]))
|
||||
@@ -2718,6 +2719,7 @@ get_file(cupsd_client_t *con, /* I - Client connection */
|
||||
|
||||
if ((p = cupsdFindDest(dest)) == NULL)
|
||||
{
|
||||
+ strlcpy(filename, "/", len);
|
||||
cupsdLogClient(con, CUPSD_LOG_INFO, "No destination \"%s\" found.", dest);
|
||||
return (NULL);
|
||||
}
|
||||
@@ -2754,6 +2756,7 @@ get_file(cupsd_client_t *con, /* I - Client connection */
|
||||
|
||||
if ((p = cupsdFindDest(dest)) == NULL)
|
||||
{
|
||||
+ strlcpy(filename, "/", len);
|
||||
cupsdLogClient(con, CUPSD_LOG_INFO, "No destination \"%s\" found.", dest);
|
||||
return (NULL);
|
||||
}
|
||||
@@ -2786,6 +2789,14 @@ get_file(cupsd_client_t *con, /* I - Client connection */
|
||||
|
||||
perm_check = 0;
|
||||
}
|
||||
+ else if (!strncmp(con->uri, "/admin", 6) || !strncmp(con->uri, "/classes", 8) || !strncmp(con->uri, "/jobs", 5) || !strncmp(con->uri, "/printers", 9))
|
||||
+ {
|
||||
+ /*
|
||||
+ * Admin/class/job/printer pages are served by CGI...
|
||||
+ */
|
||||
+
|
||||
+ return (NULL);
|
||||
+ }
|
||||
else if (!strncmp(con->uri, "/rss/", 5) && !strchr(con->uri + 5, '/'))
|
||||
snprintf(filename, len, "%s/rss/%s", CacheDir, con->uri + 5);
|
||||
else if (!strncmp(con->uri, "/strings/", 9) && !strcmp(con->uri + strlen(con->uri) - 8, ".strings"))
|
||||
@@ -2795,12 +2806,14 @@ get_file(cupsd_client_t *con, /* I - Client connection */
|
||||
|
||||
if ((p = cupsdFindDest(dest)) == NULL)
|
||||
{
|
||||
+ strlcpy(filename, "/", len);
|
||||
cupsdLogClient(con, CUPSD_LOG_INFO, "No destination \"%s\" found.", dest);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
if (!p->strings)
|
||||
{
|
||||
+ strlcpy(filename, "/", len);
|
||||
cupsdLogClient(con, CUPSD_LOG_INFO, "No strings files for \"%s\".", dest);
|
||||
return (NULL);
|
||||
}
|
@ -1,49 +0,0 @@
|
||||
From 2a06655e5c1925f09d5a2e38cd073eb1b6f069ad Mon Sep 17 00:00:00 2001
|
||||
From: Michael R Sweet <michael.r.sweet@gmail.com>
|
||||
Date: Tue, 15 Oct 2019 17:05:55 -0400
|
||||
Subject: [PATCH] PPD files containing custom option keywords did not work
|
||||
(Issue #5639)
|
||||
|
||||
diff --git a/cups/ppd.c b/cups/ppd.c
|
||||
index fae19c42e..ff52df2e1 100644
|
||||
--- a/cups/ppd.c
|
||||
+++ b/cups/ppd.c
|
||||
@@ -1874,9 +1874,9 @@ _ppdOpen(
|
||||
{
|
||||
if (!_cups_strcasecmp(name, "custom") || !_cups_strncasecmp(name, "custom.", 7))
|
||||
{
|
||||
- pg->ppd_status = PPD_ILLEGAL_OPTION_KEYWORD;
|
||||
-
|
||||
- goto error;
|
||||
+ char cname[PPD_MAX_NAME]; /* Rewrite with a leading underscore */
|
||||
+ snprintf(cname, sizeof(cname), "_%s", name);
|
||||
+ strlcpy(name, cname, sizeof(name));
|
||||
}
|
||||
|
||||
if ((size = ppdPageSize(ppd, name)) == NULL)
|
||||
@@ -1903,9 +1903,9 @@ _ppdOpen(
|
||||
{
|
||||
if (!_cups_strcasecmp(name, "custom") || !_cups_strncasecmp(name, "custom.", 7))
|
||||
{
|
||||
- pg->ppd_status = PPD_ILLEGAL_OPTION_KEYWORD;
|
||||
-
|
||||
- goto error;
|
||||
+ char cname[PPD_MAX_NAME]; /* Rewrite with a leading underscore */
|
||||
+ snprintf(cname, sizeof(cname), "_%s", name);
|
||||
+ strlcpy(name, cname, sizeof(name));
|
||||
}
|
||||
|
||||
if ((size = ppdPageSize(ppd, name)) == NULL)
|
||||
@@ -1939,9 +1939,9 @@ _ppdOpen(
|
||||
|
||||
if (!_cups_strcasecmp(name, "custom") || !_cups_strncasecmp(name, "custom.", 7))
|
||||
{
|
||||
- pg->ppd_status = PPD_ILLEGAL_OPTION_KEYWORD;
|
||||
-
|
||||
- goto error;
|
||||
+ char cname[PPD_MAX_NAME]; /* Rewrite with a leading underscore */
|
||||
+ snprintf(cname, sizeof(cname), "_%s", name);
|
||||
+ strlcpy(name, cname, sizeof(name));
|
||||
}
|
||||
|
||||
if (!strcmp(keyword, "PageSize"))
|
@ -1,19 +0,0 @@
|
||||
From eda46e3aac94d42e4199d95befe99ff83afb098f Mon Sep 17 00:00:00 2001
|
||||
From: Zdenek Dohnal <zdohnal@redhat.com>
|
||||
Date: Mon, 29 Jul 2019 10:33:06 +0200
|
||||
Subject: [PATCH] SIGSEGV in CUPS web ui when adding a printer
|
||||
|
||||
diff --git a/cgi-bin/var.c b/cgi-bin/var.c
|
||||
index 306375bd6..fb9d051c0 100644
|
||||
--- a/cgi-bin/var.c
|
||||
+++ b/cgi-bin/var.c
|
||||
@@ -170,6 +170,9 @@ cgiGetArray(const char *name, /* I - Name of array variable */
|
||||
if (element < 0 || element >= var->nvalues)
|
||||
return (NULL);
|
||||
|
||||
+ if (var->values[element] == NULL)
|
||||
+ return (NULL);
|
||||
+
|
||||
return (strdup(var->values[element]));
|
||||
}
|
||||
|
@ -1,11 +1,11 @@
|
||||
diff -up cups-1.6.2/ppdc/sample.drv.dymo-deviceid cups-1.6.2/ppdc/sample.drv
|
||||
--- cups-1.6.2/ppdc/sample.drv.dymo-deviceid 2013-06-18 16:57:02.110662953 +0100
|
||||
+++ cups-1.6.2/ppdc/sample.drv 2013-06-18 16:58:56.513989117 +0100
|
||||
@@ -125,6 +125,7 @@ Version "1.5"
|
||||
diff -up cups-2.3.1/ppdc/sample.drv.dymo-deviceid cups-2.3.1/ppdc/sample.drv
|
||||
--- cups-2.3.1/ppdc/sample.drv.dymo-deviceid 2019-12-16 09:22:34.476492212 +0100
|
||||
+++ cups-2.3.1/ppdc/sample.drv 2019-12-16 09:23:44.665003895 +0100
|
||||
@@ -129,6 +129,7 @@ Version "2.3"
|
||||
{
|
||||
Manufacturer "Dymo"
|
||||
Manufacturer "DYMO"
|
||||
ModelName "Label Printer"
|
||||
+ Attribute "1284DeviceID" "" "MFG:DYMO;MDL:LabelWriter 400;"
|
||||
Attribute NickName "" "Dymo Label Printer"
|
||||
Attribute NickName "" "DYMO Label Printer"
|
||||
PCFileName "dymo.ppd"
|
||||
DriverType label
|
||||
|
25
cups.spec
25
cups.spec
@ -14,8 +14,8 @@
|
||||
Summary: CUPS printing system
|
||||
Name: cups
|
||||
Epoch: 1
|
||||
Version: 2.3.0
|
||||
Release: 2%{?dist}
|
||||
Version: 2.3.1
|
||||
Release: 1%{?dist}
|
||||
License: ASL 2.0 with exceptions for GPL2/LGPL2
|
||||
Url: http://www.cups.org/
|
||||
Source0: https://github.com/apple/cups/releases/download/v%{VERSION}/cups-%{VERSION}-source.tar.gz
|
||||
@ -92,16 +92,6 @@ Patch21: cups-dymo-deviceid.patch
|
||||
Patch100: cups-lspp.patch
|
||||
|
||||
#### UPSTREAM PATCHES ####
|
||||
# cupsctl does not work in 2.2.12, because systemd does not have launch-on-demand feature
|
||||
Patch1001: 0001-Add-workaround-for-systemd-s-lack-of-true-launch-on-.patch
|
||||
# cannot modify printer uri or create raw print queue
|
||||
Patch1002: 0001-Fix-handling-of-printer-resource-files-Issue-5652.patch
|
||||
# some ppds use custom keyword, which is incorrect - the correct is 'Custom Size' and ppd
|
||||
# parser ended with error when encountered it. Now the parser adds underscore to incorrect
|
||||
# keyword and continues
|
||||
Patch1003: 0001-PPD-files-containing-custom-option-keywords-did-not-.patch
|
||||
# SIGSEGV in web ui
|
||||
Patch1004: 0001-SIGSEGV-in-CUPS-web-ui-when-adding-a-printer.patch
|
||||
|
||||
##### Patches removed because IMHO they aren't no longer needed
|
||||
##### but still I'll leave them in git in case their removal
|
||||
@ -297,13 +287,6 @@ to CUPS daemon. This solution will substitute printer drivers and raw queues in
|
||||
%patch21 -p1 -b .dymo-deviceid
|
||||
|
||||
#### UPSTREAMED PATCHES ####
|
||||
%patch1001 -p1 -b .cupsctl-not-working
|
||||
# unable to modify device uri
|
||||
%patch1002 -p1 -b .cannot-modify-uri
|
||||
# 1750904 - cups is unable to add ppd with custom/Custom option
|
||||
%patch1003 -p1 -b .ppd-custom-option
|
||||
# 1720688 - [abrt] cups: __strlen_avx2(): printers.cgi killed by SIGSEGV
|
||||
%patch1004 -p1 -b .webui-sigsegv
|
||||
|
||||
# removed dbus patch - seems breaking things
|
||||
# Fix implementation of com.redhat.PrinterSpooler D-Bus object.
|
||||
@ -616,6 +599,7 @@ rm -f %{cups_serverbin}/backend/smb
|
||||
%{_bindir}/cupstestppd
|
||||
#%%{_bindir}/cupstestdsc
|
||||
%{_bindir}/ppd*
|
||||
%attr{755,root,root} %{cups_serverbin}/backend/ipp
|
||||
%{cups_serverbin}/backend/*
|
||||
%{cups_serverbin}/cgi-bin
|
||||
%dir %{cups_serverbin}/daemon
|
||||
@ -724,6 +708,9 @@ rm -f %{cups_serverbin}/backend/smb
|
||||
%{_mandir}/man7/ippevepcl.7.gz
|
||||
|
||||
%changelog
|
||||
* Mon Dec 16 2019 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.3.1-1
|
||||
- 2.3.1
|
||||
|
||||
* Fri Nov 29 2019 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.3.0-2
|
||||
- 1777921 - cups unit file makes systemd to complain
|
||||
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (cups-2.3.0-source.tar.gz) = c51f173b5fbae1554a3f4a3786fb3b5566e50d9f775473788ee3553922ac7e02e4785492c87c93fd46f159f50d97cc10ff6feafb3397cd9c1840840f3a9cdfae
|
||||
SHA512 (cups-2.3.1-source.tar.gz) = e3f3ad9e78c1c723d46cc2276957ac67495483882f639421203d9dad227eacbb1259717a92489e710995fdc89e2d575202e4b43117aff08ff1230dcf06674376
|
||||
|
Loading…
Reference in New Issue
Block a user