Compare commits

...

3 Commits

Author SHA1 Message Date
Zdenek Dohnal 086facf034 Fix bogus date 2024-02-27 01:26:04 +00:00
Zdenek Dohnal 2ee010e6a7 RHEL-19201 redhat-lsb unnecessary pulls in cups and avahi dependencies
Resolves: RHEL-19201
2024-02-26 14:51:14 +01:00
Zdenek Dohnal 640f1f684e RHEL-16026 Cups Browsed does not correctly pull printer location and description information from print server
Resolves: RHEL-16026
2023-12-20 15:22:00 +01:00
3 changed files with 68 additions and 75 deletions

1
.cups-filters.metadata Normal file
View File

@ -0,0 +1 @@
b4096e5aa17d8e398b5cc352490476175af508fd cups-filters-1.28.7.tar.xz

View File

@ -0,0 +1,29 @@
diff --git a/utils/cups-browsed.c b/utils/cups-browsed.c
index d4396d7..6dba2ed 100644
--- a/utils/cups-browsed.c
+++ b/utils/cups-browsed.c
@@ -8793,6 +8793,10 @@ gboolean update_cups_queues(gpointer unused) {
IPP_PRINTER_IDLE);
/* ... and accepting jobs */
ippAddBoolean(request, IPP_TAG_PRINTER, "printer-is-accepting-jobs", 1);
+ // Location (only if the remote server actually provides a location string)
+ if (p->location && p->location[0])
+ ippAddString(request, IPP_TAG_PRINTER, IPP_TAG_TEXT,
+ "printer-location", NULL, p->location);
num_options = 0;
options = NULL;
/* Device URI: ipp(s)://<remote host>:631/printers/<remote queue>
@@ -8808,6 +8812,13 @@ gboolean update_cups_queues(gpointer unused) {
num_options = cupsAddOption(p->options[i].name,
p->options[i].value,
num_options, &options);
+
+ // Description (only if the remote server actually provides a description
+ // string)
+ if (p->info && p->info[0])
+ num_options = cupsAddOption("printer-info", p->info,
+ num_options, &options);
+
/* Encode option list into IPP attributes */
cupsEncodeOptions2(request, num_options, options, IPP_TAG_OPERATION);
cupsEncodeOptions2(request, num_options, options, IPP_TAG_PRINTER);

View File

@ -11,7 +11,7 @@
Summary: OpenPrinting CUPS filters and backends
Name: cups-filters
Version: 1.28.7
Release: 14%{?dist}
Release: 15%{?dist}
# For a breakdown of the licensing, see COPYING file
# GPLv2: filters: commandto*, imagetoraster, pdftops, rasterto*,
@ -40,14 +40,10 @@ Patch02: 0001-cups-browsed.c-Make-NotifLeaseDuration-configurable-.patch
Patch03: 0001-libcupsfilters-Fix-page-range-like-10-in-pdftopdf-fi.patch
# CVE-2023-24805 cups-filters: remote code execution in cups-filters, beh CUPS backend
Patch04: beh-cve2023.patch
# RHEL-16026 Cups Browsed does not correctly pull printer location and description information from print server
Patch05: 0001-Use-description-location-from-server-if-available-ot.patch
# split cups-browsed and cups-filters-driverless from main package
# for LSB to have smaller set of brought dependencies
# RHEL-13211
Conflicts: cups-browsed < 1.28.7-14
Conflicts: cups-filters-driverless < 1.28.7-14
# autogen.sh
BuildRequires: autoconf
BuildRequires: automake
@ -96,6 +92,7 @@ BuildRequires: poppler-cpp-devel
BuildRequires: avahi-devel
BuildRequires: pkgconfig(avahi-glib)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: systemd
# Make sure we get postscriptdriver tags.
BuildRequires: python3-cups
@ -103,6 +100,9 @@ BuildRequires: python3-cups
# Testing font for test scripts.
BuildRequires: dejavu-sans-fonts
# needed for systemd rpm macros in scriptlets
BuildRequires: systemd-rpm-macros
# cups-browsed needs systemd-resolved or nss-mdns for resolving .local addresses of remote print queues
# let's not require a specific package and let the user decide what he wants to use.
# just recommend nss-mdns for Fedora for now to have working default, but
@ -110,6 +110,9 @@ BuildRequires: dejavu-sans-fonts
%if 0%{?fedora}
Recommends: nss-mdns
%endif
# ippfind is used in driverless backend, not needed classic PPD based print queue
Recommends: cups-ipptool
%if %{with braille}
Recommends: %{name}-braille%{?_isa} = %{version}-%{release}
%endif
@ -129,6 +132,13 @@ Requires: liberation-mono-fonts
# and for printing banners, for other printers we need gs - ghostscript
Requires: poppler-utils
# cups-browsed
# cups-browsed needs to have cups.service to run
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
%package libs
Summary: OpenPrinting CUPS filters and backends - cupsfilters and fontembed libraries
# LGPLv2: libcupsfilters
@ -140,40 +150,6 @@ Summary: OpenPrinting CUPS filters and backends - development environment
License: LGPLv2 and MIT
Requires: cups-filters-libs%{?_isa} = %{version}-%{release}
%package -n cups-browsed
Summary: Daemon for local auto-installation of remote printers
License: LGPLv2+
Conflicts: cups-filters < 1.28.7-14
# needed for systemd rpm macros in scriptlets
BuildRequires: systemd-rpm-macros
# needed if mDNS browsing and sharing is required
Recommends: avahi
# it needs cups.service for running
Requires: cups
# puts files into its dirs
Requires: cups-filesystem
# uses functions from libcupsfilters
Requires: cups-filters-libs%{?_isa} = %{version}-%{release}
# rpm scriptlets for the service file
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
%package driverless
Summary: OpenPrinting driverless backends and drivers for CUPS 2.X
License: LGPLv2+
Conflicts: cups-filters < 1.28.7-14
# requires avahi and cups-ipptool - it is needed for driverless support,
# but it is useless for older devices and cups servers
Requires: avahi
# puts files into its dirs
Requires: cups-filesystem
# uses ippfind
Requires: cups-ipptool
# uses functions from libcupsfilters
Requires: cups-filters-libs%{?_isa} = %{version}-%{release}
%if %{with braille}
%package braille
Summary: OpenPrinting CUPS filters and backends - braille filters and backend
@ -203,19 +179,6 @@ This package provides cupsfilters and fontembed libraries.
%description devel
This is the development package for OpenPrinting CUPS filters and backends.
%description -n cups-browsed
cups-browsed is a helper daemon, which automatically installs printers
locally, provides load balancing and clustering of print queues.
The daemon installs the printers based on found mDNS records and CUPS
broadcast, or by polling a remote print server.
%description driverless
Contains backends and drivers for driverless implementation for cups-filters,
which makes driverless printers to be seen when listing printers nearby and gives
a specific generated driver for driverless printer in the local network. They are
tools for backward compatibility with applications which don't handle CUPS temporary
queues.
%if %{with braille}
%description braille
The package provides filters and cups-brf backend needed for braille printing.
@ -292,7 +255,7 @@ ln -sf %{_cups_serverbin}/filter/foomatic-rip %{buildroot}%{_bindir}/foomatic-ri
%check
make check
%post -n cups-browsed
%post
%systemd_post cups-browsed.service
# put UpdateCUPSQueuesMaxPerCall and PauseBetweenCUPSQueueUpdates into cups-browsed.conf
@ -312,10 +275,10 @@ do
fi
done
%preun -n cups-browsed
%preun
%systemd_preun cups-browsed.service
%postun -n cups-browsed
%postun
%systemd_postun_with_restart cups-browsed.service
%ldconfig_scriptlets libs
@ -327,11 +290,18 @@ done
%{_pkgdocdir}/AUTHORS
%{_pkgdocdir}/NEWS
%{_bindir}/foomatic-rip
%{_bindir}/driverless
%{_bindir}/driverless-fax
%{_sbindir}/cups-browsed
%attr(0700,root,root) %{_cups_serverbin}/backend/beh
# implicitclass backend must be run as root
%attr(0700,root,root) %{_cups_serverbin}/backend/implicitclass
# all backends needs to be run only as root because of kerberos
%attr(0700,root,root) %{_cups_serverbin}/backend/parallel
# Serial backend needs to run as root (bug #212577#c4).
%attr(0700,root,root) %{_cups_serverbin}/backend/serial
%{_cups_serverbin}/backend/driverless
%{_cups_serverbin}/backend/driverless-fax
%attr(0755,root,root) %{_cups_serverbin}/filter/bannertopdf
%attr(0755,root,root) %{_cups_serverbin}/filter/commandtoescpx
%attr(0755,root,root) %{_cups_serverbin}/filter/commandtopclx
@ -356,6 +326,8 @@ done
%attr(0755,root,root) %{_cups_serverbin}/filter/texttopdf
%attr(0755,root,root) %{_cups_serverbin}/filter/texttops
%attr(0755,root,root) %{_cups_serverbin}/filter/texttotext
%{_cups_serverbin}/driver/driverless
%{_cups_serverbin}/driver/driverless-fax
%{_datadir}/cups/banners
%{_datadir}/cups/charsets
%{_datadir}/cups/data/*
@ -368,6 +340,11 @@ done
# this needs to be in the main package because of cupsfilters.drv
%{_datadir}/cups/ppdc/pcl.h
%{_mandir}/man1/foomatic-rip.1.gz
%{_mandir}/man1/driverless.1.gz
%{_mandir}/man5/cups-browsed.conf.5.gz
%{_mandir}/man8/cups-browsed.8.gz
%config(noreplace) %{_sysconfdir}/cups/cups-browsed.conf
%{_unitdir}/cups-browsed.service
%files libs
%dir %{_pkgdocdir}/
@ -386,24 +363,6 @@ done
%{_libdir}/pkgconfig/libcupsfilters.pc
%{_libdir}/pkgconfig/libfontembed.pc
%files -n cups-browsed
%config(noreplace) %{_sysconfdir}/cups/cups-browsed.conf
# implicitclass backend must be run as root
%attr(0700,root,root) %{_cups_serverbin}/backend/implicitclass
%{_sbindir}/cups-browsed
%{_unitdir}/cups-browsed.service
%{_mandir}/man8/cups-browsed.8.gz
%{_mandir}/man5/cups-browsed.conf.5.gz
%files driverless
%{_bindir}/driverless
%{_bindir}/driverless-fax
%{_cups_serverbin}/backend/driverless
%{_cups_serverbin}/backend/driverless-fax
%{_cups_serverbin}/driver/driverless
%{_cups_serverbin}/driver/driverless-fax
%{_mandir}/man1/driverless.1.gz
%if %{with braille}
%files braille
# cups-brf needs to be run as root, otherwise it leaves error messages
@ -448,8 +407,12 @@ done
%endif
%changelog
* Mon Feb 26 2024 Zdenek Dohnal <zdohnal@redhat.com> - 1.28.7-15
- RHEL-19201 redhat-lsb unnecessary pulls in cups and avahi dependencies
* Wed Dec 20 2023 Zdenek Dohnal <zdohnal@redhat.com> - 1.28.7-14
- RHEL-19201 redhat-lsb unnecessary pulls in cups and avahi dependencies
- RHEL-16026 Cups Browsed does not correctly pull printer location and description information from print server
* Tue Aug 08 2023 Zdenek Dohnal <zdohnal@redhat.com> - 1.28.7-13
- 2229784 - Add textonly driver back, but as lftocrlf