Compare commits

..

3 Commits

Author SHA1 Message Date
Zdenek Dohnal 2529797c37 RHEL-16026 Cups Browsed does not correctly pull printer location and description information from print server 2023-12-21 01:28:39 +00:00
Zdenek Dohnal 8c7c8639fa RHEL-19201 redhat-lsb unnecessary pulls in cups and avahi dependencies
Resolves: RHEL-19201
2023-12-20 14:38:57 +01:00
Zdenek Dohnal aebae732ca 2229784 - Add textonly driver back, but as lftocrlf
Resolves: rhbz#2229784
2023-08-08 14:33:25 +02:00
2 changed files with 110 additions and 35 deletions

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: 13%{?dist}
Release: 14%{?dist}
# For a breakdown of the licensing, see COPYING file
# GPLv2: filters: commandto*, imagetoraster, pdftops, rasterto*,
@ -40,8 +40,16 @@ 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
@ -90,7 +98,6 @@ 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
@ -98,9 +105,6 @@ 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
@ -108,11 +112,6 @@ BuildRequires: systemd-rpm-macros
%if 0%{?fedora}
Recommends: nss-mdns
%endif
# Avahi is needed for device discovery for newer (2012+) devices and its sharing - make it recommended
Recommends: avahi
# 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
@ -132,14 +131,6 @@ 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: cups
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
%package libs
Summary: OpenPrinting CUPS filters and backends - cupsfilters and fontembed libraries
# LGPLv2: libcupsfilters
@ -151,6 +142,40 @@ 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
@ -180,6 +205,19 @@ 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.
@ -256,7 +294,7 @@ ln -sf %{_cups_serverbin}/filter/foomatic-rip %{buildroot}%{_bindir}/foomatic-ri
%check
make check
%post
%post -n cups-browsed
%systemd_post cups-browsed.service
# put UpdateCUPSQueuesMaxPerCall and PauseBetweenCUPSQueueUpdates into cups-browsed.conf
@ -276,10 +314,10 @@ do
fi
done
%preun
%preun -n cups-browsed
%systemd_preun cups-browsed.service
%postun
%postun -n cups-browsed
%systemd_postun_with_restart cups-browsed.service
%ldconfig_scriptlets libs
@ -291,18 +329,11 @@ 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
@ -327,8 +358,6 @@ 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/*
@ -341,11 +370,6 @@ 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}/
@ -364,6 +388,24 @@ 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
@ -408,6 +450,10 @@ done
%endif
%changelog
* 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