Hi,
I have released cups-filters 1.15.0 now, with the following changes:
- cups-browsed: Removed the function to compare printer entries
for sorting the printer entry list. This led to corruption
of the list and so to crashes.
- cups-browsed: Fixed crashes when many printers (especially
all printers of a load-balanced cluster) are removed at once.
- cups-browsed: Log the full list of handled remote printers
whenever one is added or removed.
- cups-browsed: Renamed the handle_cups_queues() function to
update_cups_queues() to better reflect what it is doing.
- cups-browsed: When clustering remote CUPS printers together
do not call them duplicates but slaves asigned to a master.
- cups-browsed: Log the error if the network interface name of
a DNS-SD event could not be determined.
- cups-browsed: Simplified printer entry removal procedure.
- cups-browsed: Log memeber printer list of a printer cluster
(implicit class) when a member printer is added or removed.
- cups-browsed: Removed superfluous (and not correctly
working) duplicate counter from the remote printer entry
data structure.
- cups-browsed: Add "AutoClustering" directive to
cups-browsed.conf to turn on and off automatically
clustering equally named local print queues which point to
remote CUPS printers. When automatic clustering is turned
off, queue name clashes are prevented by adding "@<server
name>" to local queue names based on the remote queue name
or on make and model.
- cups-browsed: Skip callback functions and the CUPS queue
creation/update/removal loop when cups-browsed is terminated
by a SIGTERM signal. This avoids hanging on shutdown. Thanks
to Edgar Fuss (ef at math dot uni-bonn dot de, Bug #1402).
- libcupsfilters: Added some fallbacks for incorrect
resolution IPP attributes on IPP network printers (Debian
bug #868360).
- pdftoopvp: Added missing "#include <math.h>" needed for
cross-compiling for arm-v7a-linux-gnueabi (Bug #1232).
- cups-browsed: Prevent the creation of two remote printer
entries for two IPP network printers or an IPP network
printer and a remote CUPS printer with the same local queue
name. This could easily happen with make/model-based naming.
- cups-browsed: Added the possibility to optionally not
create local queues for remote printers for which CUPS
(from 2.2.x on) auto-creates queues by itself (DNS-SD
advertised driverless printers).
- cups-browsed: Removed repeated code for clean-up when
generate_local_queue() function fails.
- cups-browsed: Take care of CUPS' temporary queues. Do not
consider them when checking whether a queue with the same
name as the one we are creating already exists and make
temporary queues permanent (or remove them) before
overwriting them with our local queue.
- cups-browsed: Make the naming scheme for locally created
print queue configurable, especially allow for naming based
on the DNS-SD service name (now default) as this is the same
scheme as CUPS uses for its temporary queues. This way we
prevent CUPS creating temporary queues when cups-browsed is
already creating a queue.
- cups-browsed: Do not add "APRemoteQueueID" keyword to the
local queue's PPD file if the queue is for an IPP network
printer.
- cups-browsed: Skip multiple browse entries for the same
printer with interface alias addresses. Thanks to Edgar
Fuss (ef at math dot uni-bonn dot de, Bug #1399).
- cups-browsed: Improved support for Description (Info) and
Location fields of remote CUPS queues. Thanks to Edgar Fuss
(ef at math dot uni-bonn dot de, Bug #1398).
- cups-browsed: Renamed variable names for better code
readability. Thanks to Edgar Fuss (ef at math dot uni-bonn
dot de, Bug #1398).
- cups-browsed: Additional NULL checks in the
create_local_queue() function. Thanks to Edgar Fuss (ef at
math dot uni-bonn dot de, Bug #1398).
This release is mainly for compatibility with CUPS' new feature of
automatically creating print queued on-demand for DNS-SD-discovered
driverless-capable network (and IPP-over-USB) printers. Default queue
naming is now based on DNS-SD service names as CUPS does, but
configurable for being based on remote queue names or make and model
(naming scemes needed for load-balanced clustering). One can also
configure now whether cups-browsed should create local queues for
printer where CUPS would auto-create a queue by itself or whether it
only should create queues which CUPS would not create. Also
load-balanced clustering can be turned off now.
In addition, there are tons of bug fixes, especially many crash fixes,
for example crashes caused when removing printer entries when a remote
server is shut down, delay on cups-browsed shutdown, marking IPP printer
queues as remote CUPS printers, ... cups-browsed should be much more
stable and reliable now.
Please release this on Debian so that I can sync it to Ubuntu and see
whether the crashes go away with it.
Thanks in advance.
Till