fixes CVE-2023-32324
2211834 - cups-2.4.4 is available 1985917 - Cups ignores black and white setting 2094530 - After upgrade 35 to 36 process rastertokpsl (Kyocera cups-filter driver) segfaulted
This commit is contained in:
parent
129b6905e7
commit
f9e7fe7f59
1
.gitignore
vendored
1
.gitignore
vendored
@ -98,3 +98,4 @@ cups-1.4.4-source.tar.bz2
|
|||||||
/cups-2.4.0-source.tar.gz
|
/cups-2.4.0-source.tar.gz
|
||||||
/cups-2.4.1-source.tar.gz
|
/cups-2.4.1-source.tar.gz
|
||||||
/cups-2.4.2-source.tar.gz
|
/cups-2.4.2-source.tar.gz
|
||||||
|
/cups-2.4.4-source.tar.gz
|
||||||
|
@ -1,85 +0,0 @@
|
|||||||
From b0f1a00a02e9f92f8a3c42ec90806ba4e4e532ec Mon Sep 17 00:00:00 2001
|
|
||||||
From: Zdenek Dohnal <zdohnal@redhat.com>
|
|
||||||
Date: Mon, 20 Jun 2022 18:17:58 +0200
|
|
||||||
Subject: [PATCH] Don't override color settings from print dialog
|
|
||||||
|
|
||||||
When we put print-color-mode as a default attribute, it always overrides
|
|
||||||
settings from print dialog. We need to respect those settings and transform
|
|
||||||
the known PPD options into print-color-mode options.
|
|
||||||
---
|
|
||||||
cups/ppd-cache.c | 39 +++++++++++++++++++++++++++++++++++----
|
|
||||||
scheduler/ipp.c | 3 +++
|
|
||||||
2 files changed, 38 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/cups/ppd-cache.c b/cups/ppd-cache.c
|
|
||||||
index 886181319..f72d834f5 100644
|
|
||||||
--- a/cups/ppd-cache.c
|
|
||||||
+++ b/cups/ppd-cache.c
|
|
||||||
@@ -259,15 +259,46 @@ _cupsConvertOptions(
|
|
||||||
|
|
||||||
color_attr_name = print_color_mode_sup ? "print-color-mode" : "output-mode";
|
|
||||||
|
|
||||||
- if ((keyword = cupsGetOption("print-color-mode", num_options, options)) == NULL)
|
|
||||||
+ /*
|
|
||||||
+ * If we use PPD with standardized PPD option for color support - ColorModel,
|
|
||||||
+ * prefer it to don't break color/grayscale support for PPDs, either classic
|
|
||||||
+ * or the ones generated from IPP Get-Printer-Attributes response.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+ if ((keyword = cupsGetOption("ColorModel", num_options, options)) == NULL)
|
|
||||||
{
|
|
||||||
+ /*
|
|
||||||
+ * No ColorModel in options...
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
if ((choice = ppdFindMarkedChoice(ppd, "ColorModel")) != NULL)
|
|
||||||
{
|
|
||||||
- if (!_cups_strcasecmp(choice->choice, "Gray"))
|
|
||||||
- keyword = "monochrome";
|
|
||||||
+ /*
|
|
||||||
+ * ColorModel is taken from PPD as its default option.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+ if (!strcmp(choice->choice, "Gray") || !strcmp(choice->choice, "FastGray") || !strcmp(choice->choice, "DeviceGray"))
|
|
||||||
+ keyword = "monochrome";
|
|
||||||
else
|
|
||||||
- keyword = "color";
|
|
||||||
+ keyword = "color";
|
|
||||||
}
|
|
||||||
+ else
|
|
||||||
+ /*
|
|
||||||
+ * print-color-mode is a default option since 2.4.1, use it as a fallback if there is no
|
|
||||||
+ * ColorModel in options or PPD...
|
|
||||||
+ */
|
|
||||||
+ keyword = cupsGetOption("print-color-mode", num_options, options);
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ /*
|
|
||||||
+ * ColorModel found in options...
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+ if (!strcmp(keyword, "Gray") || !strcmp(keyword, "FastGray") || !strcmp(keyword, "DeviceGray"))
|
|
||||||
+ keyword = "monochrome";
|
|
||||||
+ else
|
|
||||||
+ keyword = "color";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (keyword && !strcmp(keyword, "monochrome"))
|
|
||||||
diff --git a/scheduler/ipp.c b/scheduler/ipp.c
|
|
||||||
index 56bd8b304..3a849bdb5 100644
|
|
||||||
--- a/scheduler/ipp.c
|
|
||||||
+++ b/scheduler/ipp.c
|
|
||||||
@@ -2937,6 +2937,9 @@ apply_printer_defaults(
|
|
||||||
if (!strcmp(option->name, "print-quality") && ippFindAttribute(job->attrs, "cupsPrintQuality", IPP_TAG_NAME))
|
|
||||||
continue; /* Don't override cupsPrintQuality */
|
|
||||||
|
|
||||||
+ if (!strcmp(option->name, "print-color-mode") && ippFindAttribute(job->attrs, "ColorModel", IPP_TAG_NAME))
|
|
||||||
+ continue; /* Don't override ColorModel */
|
|
||||||
+
|
|
||||||
cupsdLogJob(job, CUPSD_LOG_DEBUG, "Adding default %s=%s", option->name, option->value);
|
|
||||||
|
|
||||||
num_options = cupsAddOption(option->name, option->value, num_options, &options);
|
|
||||||
--
|
|
||||||
2.39.2
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
|||||||
From 23be2dad137fb924f78eba6294eb5c8c208d5fa0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Zdenek Dohnal <zdohnal@redhat.com>
|
|
||||||
Date: Fri, 24 Mar 2023 09:37:25 +0100
|
|
||||||
Subject: [PATCH] configure: Raise FORTIFY_SOURCE level to 3
|
|
||||||
|
|
||||||
GCC supports level 3 for some time, try using it.
|
|
||||||
---
|
|
||||||
config-scripts/cups-compiler.m4 | 4 ++--
|
|
||||||
configure | 4 ++--
|
|
||||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/config-scripts/cups-compiler.m4 b/config-scripts/cups-compiler.m4
|
|
||||||
index 266d909ed..25e7f7aa5 100644
|
|
||||||
--- a/config-scripts/cups-compiler.m4
|
|
||||||
+++ b/config-scripts/cups-compiler.m4
|
|
||||||
@@ -108,8 +108,8 @@ AS_IF([test -n "$GCC"], [
|
|
||||||
], [
|
|
||||||
# Otherwise use the Fortify enhancements to catch any unbounded
|
|
||||||
# string operations...
|
|
||||||
- CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2"
|
|
||||||
- CXXFLAGS="$CXXFLAGS -D_FORTIFY_SOURCE=2"
|
|
||||||
+ CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=3"
|
|
||||||
+ CXXFLAGS="$CXXFLAGS -D_FORTIFY_SOURCE=3"
|
|
||||||
])
|
|
||||||
|
|
||||||
# Default optimization options...
|
|
||||||
diff --git a/configure b/configure
|
|
||||||
index 40d9e7a71..d50ee6a7d 100755
|
|
||||||
--- a/configure
|
|
||||||
+++ b/configure
|
|
||||||
@@ -8102,8 +8102,8 @@ else $as_nop
|
|
||||||
|
|
||||||
# Otherwise use the Fortify enhancements to catch any unbounded
|
|
||||||
# string operations...
|
|
||||||
- CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2"
|
|
||||||
- CXXFLAGS="$CXXFLAGS -D_FORTIFY_SOURCE=2"
|
|
||||||
+ CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=3"
|
|
||||||
+ CXXFLAGS="$CXXFLAGS -D_FORTIFY_SOURCE=3"
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
--
|
|
||||||
2.40.0
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
|||||||
From 020609ad9eb84ab5a4c602ff604b2f208a6cdb8d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Zdenek Dohnal <zdohnal@redhat.com>
|
|
||||||
Date: Wed, 22 Jun 2022 09:23:45 +0200
|
|
||||||
Subject: [PATCH] scheduler/ipp.c: Allocate device_uri via cupsdSetString()
|
|
||||||
|
|
||||||
If a driverless printer has .local in its URI, we resolve the
|
|
||||||
URI and save the resolved one as new device URI. The problem was that
|
|
||||||
a local pointer was assigned to the structure which is passed to the
|
|
||||||
function as parameter, so the pointer became invalid once the execution
|
|
||||||
left the create_local_bg_thread() function.
|
|
||||||
|
|
||||||
We need to allocate the device URI via cupsdSetString() - the string is
|
|
||||||
then freed when the printer is deleted or cupsd shuts down.
|
|
||||||
|
|
||||||
Fixes #419.
|
|
||||||
---
|
|
||||||
CHANGES.md | 1 +
|
|
||||||
scheduler/ipp.c | 2 +-
|
|
||||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/scheduler/ipp.c b/scheduler/ipp.c
|
|
||||||
index 3a849bdb5..b722712f6 100644
|
|
||||||
--- a/scheduler/ipp.c
|
|
||||||
+++ b/scheduler/ipp.c
|
|
||||||
@@ -5307,7 +5307,7 @@ create_local_bg_thread(
|
|
||||||
return (NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
- printer->device_uri = uri;
|
|
||||||
+ cupsdSetString(&printer->device_uri, uri);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (httpSeparateURI(HTTP_URI_CODING_ALL, printer->device_uri, scheme, sizeof(scheme), userpass, sizeof(userpass), host, sizeof(host), &port, resource, sizeof(resource)) < HTTP_URI_STATUS_OK)
|
|
||||||
--
|
|
||||||
2.37.1
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
|||||||
From c114e3c9827af77e4574ec92f46ed4688b0a3059 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Zdenek Dohnal <zdohnal@redhat.com>
|
|
||||||
Date: Tue, 2 Aug 2022 10:38:21 +0200
|
|
||||||
Subject: [PATCH] scheduler/ipp.c: Convert incoming ColorModel attribute
|
|
||||||
|
|
||||||
If a client uses PPD option ColorModel (which is converted into
|
|
||||||
attribute to be sent via IPP) for changing the default color option
|
|
||||||
(which happens via CUPS-Add-Modify-Printer operation), we have to
|
|
||||||
convert ColorModel into print-color-mode attribute, so the
|
|
||||||
print-color-mode-default attribute gets updated.
|
|
||||||
|
|
||||||
The change survives reboot because print-color-mode is saved as an
|
|
||||||
option in printer's entry in /etc/cups/printers.conf.
|
|
||||||
---
|
|
||||||
scheduler/ipp.c | 12 ++++++++++++
|
|
||||||
1 file changed, 12 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/scheduler/ipp.c b/scheduler/ipp.c
|
|
||||||
index b722712f6..fc575639b 100644
|
|
||||||
--- a/scheduler/ipp.c
|
|
||||||
+++ b/scheduler/ipp.c
|
|
||||||
@@ -2340,6 +2340,18 @@ add_printer(cupsd_client_t *con, /* I - Client connection */
|
|
||||||
|
|
||||||
set_device_uri = 0;
|
|
||||||
|
|
||||||
+ if ((attr = ippFindAttribute(con->request, "ColorModel", IPP_TAG_NAME)) != NULL)
|
|
||||||
+ {
|
|
||||||
+ const char * keyword = NULL;
|
|
||||||
+
|
|
||||||
+ if (!strcmp(attr->values[0].string.text, "FastGray") || !strcmp(attr->values[0].string.text, "Gray") || !strcmp(attr->values[0].string.text, "DeviceGray"))
|
|
||||||
+ keyword = "monochrome";
|
|
||||||
+ else
|
|
||||||
+ keyword = "color";
|
|
||||||
+
|
|
||||||
+ printer->num_options = cupsAddOption("print-color-mode", keyword, printer->num_options, &printer->options);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if ((attr = ippFindAttribute(con->request, "device-uri",
|
|
||||||
IPP_TAG_URI)) != NULL)
|
|
||||||
{
|
|
||||||
--
|
|
||||||
2.39.2
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
|||||||
From ca866d8a9de27e05f7fc04ad6a2a586089341c53 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Zdenek Dohnal <zdohnal@redhat.com>
|
|
||||||
Date: Tue, 18 Oct 2022 14:12:13 +0200
|
|
||||||
Subject: [PATCH] scheduler/printers.c: Check for CMYK as well (fixes #421)
|
|
||||||
|
|
||||||
In `load_ppd()` we would set the `print-color-mode` to `monochrome` only if
|
|
||||||
the device supported color printing and the default PPD choice for
|
|
||||||
ColorModel was RGB - this broke settings for color printing for models,
|
|
||||||
which use `CMYK` for ColorModel.
|
|
||||||
|
|
||||||
With this patch we check for CMYK as well.
|
|
||||||
|
|
||||||
CUPS 3.0-
|
|
||||||
---
|
|
||||||
scheduler/printers.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/scheduler/printers.c b/scheduler/printers.c
|
|
||||||
index 3ca91fd45..757f265ce 100644
|
|
||||||
--- a/scheduler/printers.c
|
|
||||||
+++ b/scheduler/printers.c
|
|
||||||
@@ -4547,7 +4547,7 @@ load_ppd(cupsd_printer_t *p) /* I - Printer */
|
|
||||||
ppd_option_t *color_model = ppdFindOption(ppd, "ColorModel");
|
|
||||||
// ColorModel PPD option
|
|
||||||
|
|
||||||
- if (color_model && strcmp(color_model->defchoice, "RGB"))
|
|
||||||
+ if (color_model && strcmp(color_model->defchoice, "RGB") && strcmp(color_model->defchoice, "CMYK"))
|
|
||||||
p->num_options = cupsAddOption("print-color-mode", "monochrome", p->num_options, &p->options);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.39.2
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
|||||||
diff --git a/tools/ippeveprinter.c b/tools/ippeveprinter.c
|
|
||||||
index d3daffafe..857ba7cf7 100644
|
|
||||||
--- a/tools/ippeveprinter.c
|
|
||||||
+++ b/tools/ippeveprinter.c
|
|
||||||
@@ -1634,9 +1634,9 @@ create_printer(
|
|
||||||
{
|
|
||||||
snprintf(path, sizeof(path), "%s/command/%s", cg->cups_serverbin, command);
|
|
||||||
|
|
||||||
- if (access(command, X_OK))
|
|
||||||
+ if (access(path, X_OK))
|
|
||||||
{
|
|
||||||
- _cupsLangPrintf(stderr, _("Unable to execute command \"%s\": %s"), command, strerror(errno));
|
|
||||||
+ _cupsLangPrintf(stderr, _("Unable to execute command \"%s\": %s"), path, strerror(errno));
|
|
||||||
return (NULL);
|
|
||||||
}
|
|
||||||
|
|
@ -1,97 +0,0 @@
|
|||||||
diff --git a/scheduler/ipp.c b/scheduler/ipp.c
|
|
||||||
index 9984b79..dd85173 100644
|
|
||||||
--- a/scheduler/ipp.c
|
|
||||||
+++ b/scheduler/ipp.c
|
|
||||||
@@ -5898,6 +5898,11 @@ create_local_printer(
|
|
||||||
*nameptr, /* Pointer into name */
|
|
||||||
uri[1024]; /* printer-uri-supported value */
|
|
||||||
const char *ptr; /* Pointer into attribute value */
|
|
||||||
+ char scheme[HTTP_MAX_URI], /* Scheme portion of URI */
|
|
||||||
+ userpass[HTTP_MAX_URI], /* Username portion of URI */
|
|
||||||
+ host[HTTP_MAX_URI], /* Host portion of URI */
|
|
||||||
+ resource[HTTP_MAX_URI]; /* Resource portion of URI */
|
|
||||||
+ int port; /* Port portion of URI */
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
@@ -5961,6 +5966,13 @@ create_local_printer(
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
+ ptr = ippGetString(device_uri, 0, NULL);
|
|
||||||
+ if (!ptr || !ptr[0])
|
|
||||||
+ {
|
|
||||||
+ send_ipp_status(con, IPP_STATUS_ERROR_BAD_REQUEST, _("Attribute \"%s\" has empty value."), "device-uri");
|
|
||||||
+
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
printer_geo_location = ippFindAttribute(con->request, "printer-geo-location", IPP_TAG_URI);
|
|
||||||
printer_info = ippFindAttribute(con->request, "printer-info", IPP_TAG_TEXT);
|
|
||||||
@@ -5989,7 +6001,65 @@ create_local_printer(
|
|
||||||
printer->shared = 0;
|
|
||||||
printer->temporary = 1;
|
|
||||||
|
|
||||||
- cupsdSetDeviceURI(printer, ippGetString(device_uri, 0, NULL));
|
|
||||||
+ /*
|
|
||||||
+ * Check device URI if it has the same hostname as we have, if so, replace
|
|
||||||
+ * the hostname by localhost. This way we assure that local-only services
|
|
||||||
+ * like ipp-usb or Printer Applications always work.
|
|
||||||
+ *
|
|
||||||
+ * When comparing our hostname with the one in the device URI,
|
|
||||||
+ * consider names with or without trailing dot ('.') the same. Also
|
|
||||||
+ * compare case-insensitively.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#ifdef HAVE_DNSSD
|
|
||||||
+ if (DNSSDHostName)
|
|
||||||
+ nameptr = DNSSDHostName;
|
|
||||||
+ else
|
|
||||||
+#endif
|
|
||||||
+ if (ServerName)
|
|
||||||
+ nameptr = ServerName;
|
|
||||||
+ else
|
|
||||||
+ nameptr = NULL;
|
|
||||||
+
|
|
||||||
+ if (nameptr)
|
|
||||||
+ {
|
|
||||||
+ int host_len,
|
|
||||||
+ server_name_len;
|
|
||||||
+
|
|
||||||
+ /* Get host name of device URI */
|
|
||||||
+ httpSeparateURI(HTTP_URI_CODING_ALL, ptr,
|
|
||||||
+ scheme, sizeof(scheme), userpass, sizeof(userpass), host,
|
|
||||||
+ sizeof(host), &port, resource, sizeof(resource));
|
|
||||||
+
|
|
||||||
+ /* Take trailing dot out of comparison */
|
|
||||||
+ host_len = strlen(host);
|
|
||||||
+ if (host_len > 1 && host[host_len - 1] == '.')
|
|
||||||
+ host_len --;
|
|
||||||
+
|
|
||||||
+ server_name_len = strlen(nameptr);
|
|
||||||
+ if (server_name_len > 1 && nameptr[server_name_len - 1] == '.')
|
|
||||||
+ server_name_len --;
|
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * If we have no DNSSDHostName but only a ServerName (if we are not
|
|
||||||
+ * sharing printers, Browsing = Off) the ServerName has no ".local"
|
|
||||||
+ * but the requested device URI has. Take this into account.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+ if (nameptr == ServerName && host_len >= 6 && (server_name_len < 6 || strcmp(nameptr + server_name_len - 6, ".local") != 0) && strcmp(host + host_len - 6, ".local") == 0)
|
|
||||||
+ host_len -= 6;
|
|
||||||
+
|
|
||||||
+ if (host_len == server_name_len && strncasecmp(host, nameptr, host_len) == 0)
|
|
||||||
+ ptr = "localhost";
|
|
||||||
+ else
|
|
||||||
+ ptr = host;
|
|
||||||
+
|
|
||||||
+ httpAssembleURI(HTTP_URI_CODING_ALL, uri, sizeof(uri), scheme, userpass,
|
|
||||||
+ ptr, port, resource);
|
|
||||||
+ cupsdSetDeviceURI(printer, uri);
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ cupsdSetDeviceURI(printer, ptr);
|
|
||||||
|
|
||||||
if (printer_geo_location)
|
|
||||||
cupsdSetString(&printer->geo_location, ippGetString(printer_geo_location, 0, NULL));
|
|
165
cups.spec
165
cups.spec
@ -14,8 +14,8 @@
|
|||||||
Summary: CUPS printing system
|
Summary: CUPS printing system
|
||||||
Name: cups
|
Name: cups
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 2.4.2
|
Version: 2.4.4
|
||||||
Release: 11%{?dist}
|
Release: 1%{?dist}
|
||||||
# the CUPS exception text is the same as LLVM exception, so using that name with
|
# the CUPS exception text is the same as LLVM exception, so using that name with
|
||||||
# agreement from legal team
|
# agreement from legal team
|
||||||
# https://lists.fedoraproject.org/archives/list/legal@lists.fedoraproject.org/message/A7GFSD6M3GYGSI32L2FC5KB22DUAEQI3/
|
# https://lists.fedoraproject.org/archives/list/legal@lists.fedoraproject.org/message/A7GFSD6M3GYGSI32L2FC5KB22DUAEQI3/
|
||||||
@ -70,13 +70,7 @@ Patch100: cups-lspp.patch
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
#### UPSTREAM PATCHES (starts with 1000) ####
|
#### UPSTREAM PATCHES (starts with 1000) ####
|
||||||
Patch1001: 0001-scheduler-ipp.c-Allocate-device_uri-via-cupsdSetStri.patch
|
|
||||||
Patch1002: cups-resolve-local.patch
|
|
||||||
Patch1003: cups-ippeveprinter-typo.patch
|
|
||||||
Patch1004: 0001-Don-t-override-color-settings-from-print-dialog.patch
|
|
||||||
Patch1005: 0001-scheduler-ipp.c-Convert-incoming-ColorModel-attribut.patch
|
|
||||||
Patch1006: 0001-scheduler-printers.c-Check-for-CMYK-as-well-fixes-42.patch
|
|
||||||
Patch1007: 0001-configure-Raise-FORTIFY_SOURCE-level-to-3.patch
|
|
||||||
|
|
||||||
##### Patches removed because IMHO they aren't no longer needed
|
##### Patches removed because IMHO they aren't no longer needed
|
||||||
##### but still I'll leave them in git in case their removal
|
##### but still I'll leave them in git in case their removal
|
||||||
@ -117,6 +111,9 @@ BuildRequires: audit-libs-devel
|
|||||||
# /etc/cups was moved from main package to filesystem package
|
# /etc/cups was moved from main package to filesystem package
|
||||||
# remove once CentOS Stream 10 is released
|
# remove once CentOS Stream 10 is released
|
||||||
Conflicts: %{name}-filesystem < 2.4.2-9
|
Conflicts: %{name}-filesystem < 2.4.2-9
|
||||||
|
# ippfind manpage was moved to cups-ipptool
|
||||||
|
# remove once C10S is released
|
||||||
|
Conflicts: %{name}-ipptool < 2.4.3-1
|
||||||
|
|
||||||
# getaddrinfo from glibc needs nss-mdns or systemd-resolved for resolving
|
# getaddrinfo from glibc needs nss-mdns or systemd-resolved for resolving
|
||||||
# mdns .local addresses. Don't require a specific package for now and let
|
# mdns .local addresses. Don't require a specific package for now and let
|
||||||
@ -189,6 +186,9 @@ Provides: lpd
|
|||||||
|
|
||||||
%package ipptool
|
%package ipptool
|
||||||
Summary: CUPS printing system - tool for performing IPP requests
|
Summary: CUPS printing system - tool for performing IPP requests
|
||||||
|
# ippfind manpage was moved to cups-ipptool
|
||||||
|
# remove once C10S is released
|
||||||
|
Conflicts: %{name} < 2.4.3-1
|
||||||
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
|
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
|
||||||
# ippfind needs avahi for printer discovery
|
# ippfind needs avahi for printer discovery
|
||||||
Requires: avahi
|
Requires: avahi
|
||||||
@ -289,18 +289,6 @@ to CUPS daemon. This solution will substitute printer drivers and raw queues in
|
|||||||
%patch 13 -p1 -b .dymo-deviceid
|
%patch 13 -p1 -b .dymo-deviceid
|
||||||
|
|
||||||
# UPSTREAM PATCHES
|
# UPSTREAM PATCHES
|
||||||
%patch 1001 -p1 -b .invalid-pointer-uri
|
|
||||||
%patch 1002 -p1 -b .localhost
|
|
||||||
# https://github.com/OpenPrinting/cups/pull/629
|
|
||||||
%patch 1003 -p1 -b .ippeveprinter-typo
|
|
||||||
# https://github.com/OpenPrinting/cups/pull/417
|
|
||||||
%patch 1004 -p1 -b .no_color_override
|
|
||||||
# https://github.com/OpenPrinting/cups/pull/451
|
|
||||||
%patch 1005 -p1 -b .save-color-settings
|
|
||||||
# https://github.com/OpenPrinting/cups/pull/500
|
|
||||||
%patch 1006 -p1 -b .check-for-cmyk
|
|
||||||
# https://github.com/OpenPrinting/cups/pull/642
|
|
||||||
%patch 1007 -p1 -b .raise-fortify
|
|
||||||
|
|
||||||
|
|
||||||
%if %{lspp}
|
%if %{lspp}
|
||||||
@ -465,15 +453,6 @@ s:.*\('%{_datadir}'/\)\([^/_]\+\)\(.*\.po$\):%lang(\2) \1\2\3:
|
|||||||
' > %{name}.lang
|
' > %{name}.lang
|
||||||
|
|
||||||
%post
|
%post
|
||||||
# remove this after F36 is EOL
|
|
||||||
# - previously the file was empty by default, so check whether the directive exists
|
|
||||||
# and if not, add the directive+value
|
|
||||||
# - we don't check for directive value in case some users already know they need MD5
|
|
||||||
# Digest authentication, so we won't break their setup with every update
|
|
||||||
# - ^\s* prevents matching comments and ignores whitespaces at the beginning
|
|
||||||
grep '^\s*DigestOptions' %{_sysconfdir}/cups/client.conf &> /dev/null || echo 'DigestOptions DenyMD5' \
|
|
||||||
>> %{_sysconfdir}/cups/client.conf
|
|
||||||
|
|
||||||
# remove after CentOS Stream 10 is released
|
# remove after CentOS Stream 10 is released
|
||||||
# Require authentication for accessing /admin location
|
# Require authentication for accessing /admin location
|
||||||
# - needed for finding printers via Find New Printers button in Web UI
|
# - needed for finding printers via Find New Printers button in Web UI
|
||||||
@ -542,21 +521,58 @@ rm -f %{cups_serverbin}/backend/smb
|
|||||||
%files -f %{name}.lang
|
%files -f %{name}.lang
|
||||||
%doc README.md CREDITS.md CHANGES.md
|
%doc README.md CREDITS.md CHANGES.md
|
||||||
%{_bindir}/cupstestppd
|
%{_bindir}/cupstestppd
|
||||||
%{_bindir}/ppd*
|
%{_bindir}/ppdc
|
||||||
%{_sbindir}/*
|
%{_bindir}/ppdhtml
|
||||||
# client subpackage
|
%{_bindir}/ppdi
|
||||||
%exclude %{_sbindir}/lpc.cups
|
%{_bindir}/ppdmerge
|
||||||
|
%{_bindir}/ppdpo
|
||||||
|
%{_sbindir}/cupsaccept
|
||||||
|
%{_sbindir}/cupsctl
|
||||||
|
%{_sbindir}/cupsd
|
||||||
|
%{_sbindir}/cupsdisable
|
||||||
|
%{_sbindir}/cupsenable
|
||||||
|
%{_sbindir}/cupsfilter
|
||||||
|
%{_sbindir}/cupsreject
|
||||||
|
%{_sbindir}/lpadmin
|
||||||
|
%{_sbindir}/lpinfo
|
||||||
|
%{_sbindir}/lpmove
|
||||||
%dir %{cups_serverbin}/daemon
|
%dir %{cups_serverbin}/daemon
|
||||||
%{cups_serverbin}/daemon/cups-deviced
|
%{cups_serverbin}/daemon/cups-deviced
|
||||||
%{cups_serverbin}/daemon/cups-driverd
|
%{cups_serverbin}/daemon/cups-driverd
|
||||||
%{cups_serverbin}/daemon/cups-exec
|
%{cups_serverbin}/daemon/cups-exec
|
||||||
%{cups_serverbin}/backend/*
|
%{cups_serverbin}/backend/dnssd
|
||||||
%{cups_serverbin}/cgi-bin
|
%{cups_serverbin}/backend/failover
|
||||||
%{cups_serverbin}/filter/*
|
%{cups_serverbin}/backend/http
|
||||||
%{cups_serverbin}/monitor
|
%{cups_serverbin}/backend/https
|
||||||
%{cups_serverbin}/notifier
|
%{cups_serverbin}/backend/ipp
|
||||||
|
%{cups_serverbin}/backend/ipps
|
||||||
|
%{cups_serverbin}/backend/lpd
|
||||||
|
%{cups_serverbin}/backend/snmp
|
||||||
|
%{cups_serverbin}/backend/socket
|
||||||
|
%{cups_serverbin}/backend/usb
|
||||||
|
%dir %{cups_serverbin}/cgi-bin
|
||||||
|
%{cups_serverbin}/cgi-bin/admin.cgi
|
||||||
|
%{cups_serverbin}/cgi-bin/classes.cgi
|
||||||
|
%{cups_serverbin}/cgi-bin/help.cgi
|
||||||
|
%{cups_serverbin}/cgi-bin/jobs.cgi
|
||||||
|
%{cups_serverbin}/cgi-bin/printers.cgi
|
||||||
|
%{cups_serverbin}/filter/commandtops
|
||||||
|
%{cups_serverbin}/filter/gziptoany
|
||||||
|
%{cups_serverbin}/filter/pstops
|
||||||
|
%{cups_serverbin}/filter/rastertoepson
|
||||||
|
%{cups_serverbin}/filter/rastertohp
|
||||||
|
%{cups_serverbin}/filter/rastertolabel
|
||||||
|
%{cups_serverbin}/filter/rastertopwg
|
||||||
|
%dir %{cups_serverbin}/monitor
|
||||||
|
%{cups_serverbin}/monitor/bcp
|
||||||
|
%{cups_serverbin}/monitor/tbcp
|
||||||
|
%dir %{cups_serverbin}/notifier
|
||||||
|
%{cups_serverbin}/notifier/dbus
|
||||||
|
%{cups_serverbin}/notifier/mailto
|
||||||
|
%{cups_serverbin}/notifier/rss
|
||||||
%{_datadir}/cups/drv/sample.drv
|
%{_datadir}/cups/drv/sample.drv
|
||||||
%{_datadir}/cups/examples
|
%dir %{_datadir}/cups/examples
|
||||||
|
%{_datadir}/cups/examples/*.drv
|
||||||
%{_datadir}/cups/mime/mime.types
|
%{_datadir}/cups/mime/mime.types
|
||||||
%{_datadir}/cups/mime/mime.convs
|
%{_datadir}/cups/mime/mime.convs
|
||||||
%{_datadir}/cups/ppdc/*.defs
|
%{_datadir}/cups/ppdc/*.defs
|
||||||
@ -607,22 +623,43 @@ rm -f %{cups_serverbin}/backend/smb
|
|||||||
%dir %attr(1770,root,lp) %{_localstatedir}/spool/cups/tmp
|
%dir %attr(1770,root,lp) %{_localstatedir}/spool/cups/tmp
|
||||||
%dir %attr(0710,root,lp) %{_localstatedir}/spool/cups
|
%dir %attr(0710,root,lp) %{_localstatedir}/spool/cups
|
||||||
%dir %attr(0755,root,lp) %{_localstatedir}/log/cups
|
%dir %attr(0755,root,lp) %{_localstatedir}/log/cups
|
||||||
%{_mandir}/man[1578]/*
|
%{_mandir}/man1/cups.1.gz
|
||||||
# client subpackage
|
%{_mandir}/man1/cupstestppd.1.gz
|
||||||
%exclude %{_mandir}/man1/lp*.1.gz
|
%{_mandir}/man1/ppdc.1.gz
|
||||||
%exclude %{_mandir}/man1/cancel-cups.1.gz
|
%{_mandir}/man1/ppdhtml.1.gz
|
||||||
%exclude %{_mandir}/man8/lpc-cups.8.gz
|
%{_mandir}/man1/ppdi.1.gz
|
||||||
# devel subpackage
|
%{_mandir}/man1/ppdmerge.1.gz
|
||||||
%exclude %{_mandir}/man1/cups-config.1.gz
|
%{_mandir}/man1/ppdpo.1.gz
|
||||||
# ipptool subpackage
|
%{_mandir}/man5/classes.conf.5.gz
|
||||||
%exclude %{_mandir}/man1/ipptool.1.gz
|
%{_mandir}/man5/client.conf.5.gz
|
||||||
%exclude %{_mandir}/man5/ipptoolfile.5.gz
|
%{_mandir}/man5/cups-files.conf.5.gz
|
||||||
# lpd subpackage
|
%{_mandir}/man5/cups-snmp.conf.5.gz
|
||||||
%exclude %{_mandir}/man8/cups-lpd.8.gz
|
%{_mandir}/man5/cupsd-logs.5.gz
|
||||||
# printerapp
|
%{_mandir}/man5/cupsd.conf.5.gz
|
||||||
%exclude %{_mandir}/man1/ippeveprinter.1.gz
|
%{_mandir}/man5/mailto.conf.5.gz
|
||||||
%exclude %{_mandir}/man7/ippevepcl.7.gz
|
%{_mandir}/man5/mime.convs.5.gz
|
||||||
%exclude %{_mandir}/man7/ippeveps.7.gz
|
%{_mandir}/man5/mime.types.5.gz
|
||||||
|
%{_mandir}/man5/ppdcfile.5.gz
|
||||||
|
%{_mandir}/man5/printers.conf.5.gz
|
||||||
|
%{_mandir}/man5/subscriptions.conf.5.gz
|
||||||
|
%{_mandir}/man7/backend.7.gz
|
||||||
|
%{_mandir}/man7/filter.7.gz
|
||||||
|
%{_mandir}/man7/notifier.7.gz
|
||||||
|
%{_mandir}/man8/cups-deviced.8.gz
|
||||||
|
%{_mandir}/man8/cups-driverd.8.gz
|
||||||
|
%{_mandir}/man8/cups-exec.8.gz
|
||||||
|
%{_mandir}/man8/cups-snmp.8.gz
|
||||||
|
%{_mandir}/man8/cupsaccept.8.gz
|
||||||
|
%{_mandir}/man8/cupsctl.8.gz
|
||||||
|
%{_mandir}/man8/cupsd-helper.8.gz
|
||||||
|
%{_mandir}/man8/cupsd.8.gz
|
||||||
|
%{_mandir}/man8/cupsdisable.8.gz
|
||||||
|
%{_mandir}/man8/cupsenable.8.gz
|
||||||
|
%{_mandir}/man8/cupsfilter.8.gz
|
||||||
|
%{_mandir}/man8/cupsreject.8.gz
|
||||||
|
%{_mandir}/man8/lpadmin.8.gz
|
||||||
|
%{_mandir}/man8/lpinfo.8.gz
|
||||||
|
%{_mandir}/man8/lpmove.8.gz
|
||||||
%dir %attr(0755,root,lp) %{_rundir}/cups
|
%dir %attr(0755,root,lp) %{_rundir}/cups
|
||||||
%dir %attr(0511,lp,sys) %{_rundir}/cups/certs
|
%dir %attr(0511,lp,sys) %{_rundir}/cups/certs
|
||||||
%attr(0640,root,lp) %{_sysconfdir}/cups/cupsd.conf.default
|
%attr(0640,root,lp) %{_sysconfdir}/cups/cupsd.conf.default
|
||||||
@ -647,8 +684,13 @@ rm -f %{cups_serverbin}/backend/smb
|
|||||||
%attr(0644, root, root)%{_unitdir}/%{name}.path
|
%attr(0644, root, root)%{_unitdir}/%{name}.path
|
||||||
|
|
||||||
%files client
|
%files client
|
||||||
%{_bindir}/cancel*
|
%{_bindir}/cancel.cups
|
||||||
%{_bindir}/lp*
|
%{_bindir}/lp.cups
|
||||||
|
%{_bindir}/lpoptions
|
||||||
|
%{_bindir}/lpq.cups
|
||||||
|
%{_bindir}/lpr.cups
|
||||||
|
%{_bindir}/lprm.cups
|
||||||
|
%{_bindir}/lpstat.cups
|
||||||
%{_sbindir}/lpc.cups
|
%{_sbindir}/lpc.cups
|
||||||
%{_mandir}/man1/cancel-cups.1.gz
|
%{_mandir}/man1/cancel-cups.1.gz
|
||||||
%{_mandir}/man1/lp*.1.gz
|
%{_mandir}/man1/lp*.1.gz
|
||||||
@ -693,6 +735,7 @@ rm -f %{cups_serverbin}/backend/smb
|
|||||||
%{_bindir}/ipptool
|
%{_bindir}/ipptool
|
||||||
%dir %{_datadir}/cups/ipptool
|
%dir %{_datadir}/cups/ipptool
|
||||||
%{_datadir}/cups/ipptool/*
|
%{_datadir}/cups/ipptool/*
|
||||||
|
%{_mandir}/man1/ippfind.1.gz
|
||||||
%{_mandir}/man1/ipptool.1.gz
|
%{_mandir}/man1/ipptool.1.gz
|
||||||
%{_mandir}/man5/ipptoolfile.5.gz
|
%{_mandir}/man5/ipptoolfile.5.gz
|
||||||
|
|
||||||
@ -706,6 +749,12 @@ rm -f %{cups_serverbin}/backend/smb
|
|||||||
%{_mandir}/man7/ippeveps.7.gz
|
%{_mandir}/man7/ippeveps.7.gz
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jun 07 2023 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.4.4-1
|
||||||
|
- fixes CVE-2023-32324
|
||||||
|
- 2211834 - cups-2.4.4 is available
|
||||||
|
- 1985917 - Cups ignores black and white setting
|
||||||
|
- 2094530 - After upgrade 35 to 36 process rastertokpsl (Kyocera cups-filter driver) segfaulted
|
||||||
|
|
||||||
* Thu Mar 23 2023 Siddhesh Poyarekar <siddhesh@redhat.com> - 1:2.4.2-11
|
* Thu Mar 23 2023 Siddhesh Poyarekar <siddhesh@redhat.com> - 1:2.4.2-11
|
||||||
- Drop unnecessary LDFLAGS addition.
|
- Drop unnecessary LDFLAGS addition.
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (cups-2.4.2-source.tar.gz) = 07474643bffe11c79b3226b70d28f1bb803dc19daa10711938cea303feacdcce3945ba8ff0334d94fdd5922ea7d6bf37a28c1ea62cce8ce946c2f90a0faf002f
|
SHA512 (cups-2.4.4-source.tar.gz) = 861b7d8e92b5ff2c2f693464f417ce1c22da74508acbfb2cb6a889154d4673f4b3f4dd87c53f8539a01b603d66546ebc6c121b88d483746e2f180d587ff3c675
|
||||||
|
Loading…
Reference in New Issue
Block a user