Changes:
CHANGES IN V1.8.3 (2016-03-23):
- cups-browsed: When creating or modifying a local print queue
set the printer-is-shared bit to false in a separate IPP
request as this operation errors on queues directly pointing
to remote CUPS queues with the IPP backend. This way we can
ignore the error and assure that all other settings are
applied (Ubuntu bug #1560099).
- Fixed pkg-config support so that $PKG_CONFIG gets used and
cross compilation works (Bug #1347).
- gstoraster: Put conversion rules for this filter into a
separate file, so that they do not get installed when we
build without Ghostscript support (Bug #1346).
- Allow disabling dependencies on IJS (Bug #1345).
- pdftops: Switch to Poppler as PDF renderer also for the
Apple LaserWriter 12/640, to work around a bug in the
printer's PostScript interpreter (Bug #1344).
CHANGES IN V1.8.2
- Allow disabling dependencies on Ghostscript and Foomatic
(Bug #1342).
- cups-browsed: Optionally generate also local queues pointing
to remote raw queues. Usually only queues pointing to remote
queues with PPD/driver are created (Debian bug #814020,
Debian bug #756724).
CHANGES IN V1.8.1
- cups-browsed: Do not disable queues which still have jobs (and
therefore cannot be removed) when avahi-daemon goes away, the
print server is most probably still available and printing can
be continued. Especially important on mobile devices where
avahi-daemon is shut down when the print dialog is closed (and
the job(s) still printing).
CHANGES IN V1.8.0
- COPYING: Replaced the COPYING file by a file in Debian format,
derived from Debian's file but updated and corrected.
- braille: Added info about additional packages needed for Braille
printing to the README file.
- braille: Let the Braille filters use lou_translate of
liblouis if the more sophisticated file2brl of liblouisutdml
is not installed. This is decided on at run time, so later
installation of liblouisutdml will let the filters
automatically switch to file2brl.
- braille: Allow to build with Braille support also if
liblouis is not installed at build time.
- braille: Added checks for the presence of helper tools, to
get clear messages in the CUPS error_log if something is
missing.
- Fixed copyright headers of files inherited from CUPS or
derived from CUPS, pointing to COPYING as license info file,
removing Apple exceptions, removing hints that a missing
license info file can be found at www.cups.org, and removing
"$Id" SVN file ID placeholders.
- Updated COPYING file for missing implicitclass and beh
backends.
CHANGES IN V1.7.0
- cups-browsed: Added possibility to trigger the auto shutdown
by the queues of cups-browsed being without jobs. Before
auto shutdown was only possible when all queues have gone
away. This allows auto shutdown on mobile devices where
avahi-daemon is also used for other things than printing.
Changes:
CHANGES IN V1.6.0
- cups-browsed: Fixed use of CUPS domain socket, both
detection during build process and permission check at
runtime.
- foomatic-rip: Fixed buffer overflow when reading environment
variables CUPS_FONTPATH, CUPS_DATADIR, and GS_LIB (Bug
#1336).
- beh: Introduced beh, the Backend Error Handler, a wrapper
backend to make handling of backend errors more
configurable. This backend is a C re-write of the beh
backend written in Perl which was part of the former
foomatic-filters package. Several people asked for beh
getting moved to cups-filters.
- braille: Make image printing working also if ImageMagick
generates formatted images without header.
- braille: If the user does not select a Braille translation,
let the embosser do the translation.
- cups-browsed: Added version info to help screen and start-up
in debug mode, call help screen also via "--version" option.
- cups-browsed: Minor improvements in help screen and man
page.
CHANGES IN V1.5.0
- cups-browsed: Allow use of an alternative configuration file
via the "-c" command line option.
- cups-browsed: Allow supplying configuration settings via the
command line using the "-o" command line option.
- cups-browsed: Command line help via the "-h" or "--help"
command line option.
CHANGES IN V1.4.0
- foomatic-rip: SECURITY FIX: Also consider the semicolon
(';') as an illegal shell escape character. Thanks to Adam
Chester (adam dot chester at pentest dot co dot uk) for the
hint (CVE-2015-8560).
- brftoembosser, imagetobrf, imagetoubrl, imageubrltoindexv3,
imageubrltoindexv4, textbrftoindexv3, textbrftoindexv4,
texttobrf, braille.convs, braille.types, generic-brf.drv,
indexv3.drv, indexv4.drv: Added support for Braille
embossing via CUPS. Text and even images can now be sent to
a Braille embosser like to a printer. Thanks to Samuel
Thibault (samuel dot thibault at ens-lyon dot org) for this
contribution.
CHANGES IN V1.3.0
- cups-browsed: Added new BrowseFilter directive in
cups-browsed.conf. This directive allows filtering of the
remote printers to be accepted on most properties/metadata
supplied with the DNS-SD broadcasts. This allows, in
addition to BrowseAllow/BrowseDeny/BrowseOrder, to reduce
the amount of printers listed in print dialogs to a more
useful amount.
- cups-browsed: Added support for BrowseDeny and BrowseOrder
directives in cups-browsed.conf.
- cups-browsed: Let the BrowseAllow lines in cups-browsed.conf
also apply to remote printers discovered via DNS-SD.
- cups-browsed: Auto-create queues for PCL-5c/e printers but
not for HP inkjet printers (which also advertise themselves
as PCL printers).
- cups-browsed, sys5ippprinter: Recognize PCL-5c/e printers
not only by the application/vnd.hp-pcl MIME type but also by
application/pcl and application/x-pcl.
Changes:
CHANGES IN V1.2.0
- cups-browsed: When using IP-address-based device URIs via
the "IPBasedDeviceURIs" directive in cups-browsed.conf, add
two additional settings to restrict the used IP addresses to
either only IPv4 addresses or only IPv6 addresses.
- foomatic-rip: SECURITY FIX: Also consider the back tick
('`') as an illegal shell escape character. Thanks to Michal
Kowalczyk from the Google Security Team for the hint
(CVE-2015-8327).
Changes:
CHANGES IN V1.1.0
- Version numbering scheme changed: Releases with feature
addition/change have the minor number increased now, pure
bug fix releases get the revision number increased, to make
use of the minor number which stayed zero all the time.
- cups-browsed: Added "DefaultOptions" directive to
cups-browsed.conf to allow defining default option settings
for local queues to be generated for newly appearing remote
printers.
- cups-browsed: Removed assert() calls which remained from
copy and paste in the very beginning of the development of
cups-browsed. assert() is only for use during debugging and
should not be used in production code.
- cups-browsed: Let option settings of a generated print queue
be saved before taking the queue down so that when the remote
printer appears again all user changes get restored, making
user changes permanent on generated queues.
- foomatic-rip: Fixed string length for shell path constant, to
work also with systems having longer paths (Bug #1325)
- cups-browsed: Added a mode in which IP-based device URIs
for the generation of local print queues are used, for
cases with problems in local host name resolution.
- foomatic-rip: Use -dFirstPage=... and -dLastPage=... only
if really needed (Bug #1324).
- cups-browsed, implicitclass: Make the load-balancing
configurable so that one can select whether the jobs get
queued up locally like in a CUPS class or whether they get
immediately distributed to the remote servers letting them
queue up there.
Remove unnecessary autoconf dependency.
Bug report for building with BSD make was fixed, so remove patch.
CHANGES IN V1.0.76
- cups-browsed: Make build also working with BSD make (Bug
#1310).
- cups-browsed, implicitclass: Let the load-balancing queue up
the jobs in the local (generated) queue until a free (idle,
enabled, and accepting jobs) remote queue is found (check
every 5 sec if no free queue available). This gives a more
even distribution of the work amongst the servers and
protects against the case that a bunch of jobs gets
inaccessible or lost if one of the servers fails.
- cups-browsed: Let the load-balancing also check whether the
destination queue is actually accepting jobs.
- cups-browsed: If a generated queue is not removed on
shutdown of cups-browsed due to remaining jobs in it,
re-enable it in the next cups-browsed session even if it was
disabled by something other than cups-browsed.
- implicitclass: Clean up debug and error messages.
- implicitclass: Fix exit codes for immediate retry of jobs.
- cups-browsed: Make absence of CUPS notifications via D-Bus
non-fatal and fall back to the old behavior of cups-browsed
(fail-over instead of load balancing for equally-named
remote queues, do not remove generated queue if it is
default instead of default printer management). This solves
problems of CUPS and/or cups-browsed built without D-Bus
support or absence of D-Bus on the system (Bug #1316).
- cups-browsed: Do not use g_warning() function, sneaked in by
copy and paste of CUPS subscription functions.
CHANGES IN V1.0.75
- texttopdf: Really support BoldItalic (original texttops just maps
BoldItalic to Bold).
- texttopdf: Fixed segfault when outputting BoldItalic (Bug #1314).
CHANGES IN V1.0.74
- cups-browsed: Added NULL check when getting the notification of
a printer starting to process a job and checking whether this
printer is created by cups-browsed with the implicitclass:
backend (Ubuntu bug #1488524).
- backends: Include unistd.h and fcntl.h in backend-private.h for
all platforms, not only Linux, so that the backends build also
on non-Linux platforms (Bug #1308).
- cups-browsed: Do not schedule printers for update when they are
already marked as disappeared.
- cups-browsed: Added sanity checks when saving the default printer
selection in a file.
- cups-browsed, implicitclass: If remote queues disappear or
cups-browsed shuts down and a cups-browsed-generated queue still
has jobs and needs to be kept therefore, disable it and re-enable
it when cups-browsed starts again and/or the remote queue(s) re-
appear(s). This avoids repeated retries of the jobs while the
remote server is not available, causing unneeded system load and
battery consumption.
- cups-browsed: After polling info from remote CUPS servers to find
the best destination job, set the default CUPS server back to local.
CHANGES IN V1.0.73
- cups-browsed: Added missing
utils/org.cups.cupsd.Notifier.xml file.
CHANGES IN V1.0.72
- cups-browsed, implicitclass: Added load balancing
functionality. If there are several remote CUPS printers
with the same name, they for locally a cluster represented
by a print queue with this name. This printer prints through
a special backend (implicitclass) which makes cups-browsed
find the best destination remote queue (fewest jobs,
enabled) for this job.
- cups-browsed: Added protection against accidental deletion of
print queues generated by cups-browsed. These queues now get
automatically re-created.
- cups-browsed: Added LDAP support. Appropriately configured via
cups-browsed.conf remote printers made available via LDAP will be
looked up and local queues pointing to them created. Thanks to
Raphael Geissert (atomo64 at gmail dot com) for contributing this
patch (Debian bug #795185).
- cups-browsed: Introduced new handling for the default
printer using cache files. So we do not need to keep an auto-generated
queue because it is set as default printer. If the auto-generated
queue disappears, the old local printer is set as default again and
when it re-appears it returns to be the default printer.
- cups-browsed: Added infrastructure for subscribing to CUPS
notifications for things like improved default printer handling,
load balancing, ...
- foomatic-rip: Prevent crash when supplying "media" option with empty
value ("media=", Ubuntu bug #1479871).
- pdftoopvp: Adaptations to API changes on Poppler 0.34.0, note that
this patch disables color management in this filter. Thanks to
Vincent le Garrec and Andreas K. Huettel for the patch (Bug #1301,
Gentoo bug #554782).
- libcupsfilters, bannertopdf, foomatic-rip, gstoraster, pdftoijs,
sys5ippprinter, pdftoopvp, pdftops, pdftoraster, rastertoescpx,
urftopdf, texttopdf: Miscellaneous fixes for build compatibility with
different platforms, like config.h as very first include and so on.
Thanks to Richard Palo for the patch (Bug #1264).
- texttopdf: Request the generic 'monospace' font alias from fontconfig
instead of the hard-coded FreeMono. Thanks to Fabian Greffrath
(fabian at debian dot org) for the patch (Debian bug #788048).
CHANGES IN V1.0.71
- texttopdf: The Page allocation is moved into textcommon.c, where it
does all the necessary checking: lower-bounds for CVE-2015-3258 and
upper-bounds for CVE-2015-3259 due to integer overflows for the
calloc() call initialising Page[0] and the memset() call in
texttopdf.c's WritePage() function zeroing the entire array. Thanks
to Tim Waugh from Red Hat for the patch.
- texttopdf: Upper-bounds checking (CVE-2015-3259).
Changes:
- texttopdf: Fixed buffer overflow on size allocation of texttopdf
when working with extremely small line sizes, which causes the size
calculation to result in 0 (CVE-2015-3258, thanks to Stefan
Cornelius fro Red Hat for the patch).
- cups-browsed: leak fixes
- cups-browsed: Further BrowseAllow fixing
- cups-browsed: BrowsePoll is an array of pointers, not structures,
so allocate room for the pointers
- cups-browsed: Prevent NULL dereference when handling BrowseAllow
without value
- cups-browsed: Use memory deallocation function corresponding to
allocation function used
- cups-browsed: Fixes for glib source handling (Red Hat bug #1228555)
- foomatic-rip: Allow using another shell than /bin/bash using the
"--with-shell=..." option for "./configure". Thanks to Leonardo
Taccari for the patch (Bug #1288).
Changes:
- cups-browsed: When generating a PPD for an auto-discovered IPP
network printer, create a "ColorModel" option only if valid
choices are reported for it by the IPP printer.
- cups-browsed: Updated PPD file generator for auto-generated queues
for IPP network printers from the CUPS 2.1.x upstream code, so that
floating-point numbers are written in a locale-neutral way
(CUPS STR #4579).
- cups-browsed: When checking whether a queue name already exists
as a locally defined queue, do case-insensitive comparing as for
CUPS printer names are case-insensitive. This assures that
already existing queues do never get overwritten.
- cups-browsed: Added "IPPPrinterQueueType Auto/PPD/NoPPD" directive
to cups-browsed.conf to allow controlling how cups-browsed
creates queues fr native IPP network printers: with PPD, with
System V interface script, or selecting automatically.
- pdftopdf: Center Landscape-oriented jobs correctly on the page
if the "fitplot" or "number-up" options are used (Bug #1284).
- pstopdf: Removed "-dUseCIEColor" from the Ghostscript command line.
In modern Ghostscript versions (9.11 and newer) it is recommended to
not use it with the pdfwrite and ps2write output devices any more.
- imagetopdf: Corrections in PDF output: Let evince display the PDF
with the correct size including margins and let ghostscript not
complain about an invalid xref entry.
- cups-browsed: Do not add options to the System V interface script
which calls sys5ippprinter but set the options as defaults for the
CUPS queue in printers.conf.
- cups-browsed: When auto-generating a PPD-less print queue for an
IPP network printer, determine default page size, unprintable margins,
and color space from the printer via an IPP request.
- imagetopdf: Debug logging should be only controlled by the LogLevel
of CUPS, not by an awkward build time switch.
- cups-browsed: Determine from the TXT records of the Bonjour broadcast
of an IPP network printer whether it has color and duplex
capabilities and if yes, let auto-generated PPD-less print queues
use appropriate command line options to make use of these
capabilities.
- imagetopdf: Make this filter also work with auto-generated PPD-less
print queues for IPP network printers.
- sys5ippprinter: Renamed pdftoippprinter to reflect that it is
once a System 5 interface script and second does not accept only
PDF as input.
- pdftoippprinter: Support also PWG Raster and JPEG as input formats
so that an auto-generated, PPD-less queue for an IPP printer emulates
an IPP Everywhere printer.
CHANGES IN V1.0.68
- cups-browsed: Numeric IDs for GSources of the glib event
loop must be positive integers greater than zero according
to the documentation of the g_source_get_id() function.
Taken care of this at all places.
- cups-browsed: Added conditionals so that it also builds with
CUPS 1.5.x (but then withou support for automatically creating
queues for IPP network printers). Thanks to Johannes Meixner from
SUSE for the patch (Bug #1268).
- Ricoh-PDF_Printer-PDF.ppd: Added PPD file for Ricoh's PDF printers
(experimental). Thanks to Ulrich Wehner from Ricoh for the file.
CHANGES IN V1.0.66
- cups-browsed: SECURITY FIX: Fixed a bug in the remove_bad_chars()
failing to reliably filter out illegal characters if there are two
or more subsequent illegal characters, allowing execution of
arbitrary commands with the rights of the "lp" user, using forged
print service announcements on DNS-SD servers (Bug #1265).
- pdftoopvp: Added conditionals to also build with Poppler 0.31.0
and newer. Thanks to Armin K. (krejzi at email dot com) for the
patch (Bug #1254).
CHANGES IN V1.0.65
- cups-browsed: Listen for NetworkManager changes (Red Hat bug #975933).
- cups-browsed: Fix for memory leak introduced in BZR rev 7059.
- cups-browsed: Memory leak/uninit fixes.
- cups-browsed: Cache prepared browse data to send.
- cups-browsed: Only get local notifications once per BrowsePoll run.
- cups-browsed: Fix BrowsePoll now notifications work properly. Need
to maintain a list of printers to keep alive for the case of there
being no notifications of changes.
- cups-browsed: Use local browsepolling for getting initial printer
list.
- cups-browsed: Ignore browse packets for deleted printers.
- cups-browsed: Cache connection to local cupsd.
- cups-browsed: Use notifications to track local printers.
This avoids expensive calls to cupsGetDests().
- cups-browsed: Manage subscriptions for local browsepolling.
- cups-browsed: Track notify-sequence-number for notifications.
CHANGES IN V1.0.62
- cups-browsed: Allow underscore characters in print queue names.
Thanks to Tim Waugh from Red Hat for the bug report (Bug
#1241).
- pdftops: Apply workarounds for Kyocera also to Utax printers
as Utax uses hard- and software from Kyocera. Thanks to Edward
Huang from Kyocera.
- cups-browsed: Added support for "BrowseAllow All" in the
cups-browsed.conf file.
- cups-browsed: Reorder inclusion of headers for compatibility
with NetBSD (Bug #1235).
- imagetopdf, pdftopdf: Correct handling of hardware copies in
PJL/JCL and/or when the PPD file has a "Copies" option.
CHANGES IN V1.0.61
- cups-browsed: Fixed memory leak when a
cups-browsed-generated print queue is the default
printer. Thanks to Tim Waugh from Red Hat for the patch (Red
Hat bug: #1119290).
- cupsfilters.drv, *-PDF.ppd, textonly.ppd: Added
"*cupsFilter2: ..." lines to the PPD files to support
data-format-specific behavior of backends, especially of the
IPP backend.
CHANGES IN V1.0.60
- cups-browsed, pdftoippprinter: Do not confuse the PDL "PCLm"
with "PCL". The former is a proprietary, PDF-based raster
format and has nothing to do with PCL.
- cupsfilters.drv: Corrected the CMD: field of the device ID,
it must read "PWGRaster" there to conform to the PWG standard.
CHANGES IN V1.0.59
- cupsfilters.drv: Added PPD file for a Generic IPP Everywhere
Printer, generating PWG Raster output.
- gstoraster, pdftoraster, imagetoraster: Allow PWG Raster
output with print queues using a PPD file, using the new
"PWGRaster" PPD attribute.
- pdftoraster: Removed "cm_disabled" flag in selectConvFunc()
- libcupsfilters: Allowed color management to continue while
invalid input
- rastertopdf: Streamlined PDF conversion code
- rastertopdf: Invert all CUPS_CSPACE_K documents by default
- foomatic-rip: Clean trailing white space from PPD file lines to
avoid a segfault caused by it (Bug #1227).
CHANGES IN V1.0.58
- pdftoraster: Changed ICC profile get function to accept a
PPD fallback profile.
- pdftoraster: Fixed handling of cupsColorSpaces 18,19,20.
- rastertopdf: Added test feature to force color management if
"profile=" option is specified.
- rastertopdf: Grayscale color conversion now properly inverts
bits.
- rastertopdf: Code cleanup for prepare_pdf_page().
- rastertopdf: Implemented basic 8bit->8bit color space
conversions.
- rastertopdf: Added black point compensation.
- rastertopdf: Added handling of color rendering intent.
- gstoraster, imagetoraster, pdftoraster, rastertopclx,
rastertopdf, foomatic-rip: Use color management functions in
libcupsfilters.
- libcupsfilters: Modified code formatting and documentation in
the color management functions.
- libcupsfilters: Fixed string handling and added debug log
messages in the color management functions.
- libcupsfilters: Fixed Adobe RGB matrix for proper rendering
(transpose)
- libcupsfilters: Moved color management functions from the
individual filters to the libcupsfilters library.
CHANGES IN V1.0.57
- rastertopclx: Fixed implicit declaration of
colord_get_inhibit_for_device_id.
- Build system: Explicitly link to libm as -lm was dropped
from cups-config --libs.
- libcupsfilters, foomaticrip, gstoraster, imagetoraster,
pdftoraster, rastertopclx, rastertopdf: Handle absence of
colord or D-Bus gracefully (Ubuntu bug #1356405).
CHANGES IN V1.0.56
- rastertopdf: Some code polishing and removal of now unneeded
functions
- rastertopdf: Reduced color space handling to only
PWG-supported color spaces
- rastertopdf: Added colorspace calibration function; included
optional "/Alternate" PDF key for ICC profile embedding
- rastertopdf: Colorspace sRGB now embeds srgb icc profile;
implemented ICC Profile embedding (PDF 1.3 spec)
- rastertopdf: Added basic color calibration
- rastertopdf: Implemented ICC Profile creation code for IPP
Everywhere (from PWG raster)
- pdftoraster: Added colord handling of ICC profiles
- kmdevices.cpp/.h: Added interface for Kolor Manager
- cups-browsed: Do not consider a remote CUPS queue as raw if
the TXT record is NULL as for queues broadcasted by the
legacy CUPS method the TXT record does not exist. Now
consider a queue with NULL TXT record only as raw if the
domain entry is not empty (which tells that the queue is
Bonjour-broadcasted (Bug #1223).
- cups-browsed: Do also not mark a discovered printer as
already provided by another server when the other server's
queue has "unconfirmed" status. Mark the other queue with
"disappeared" or "unconfirmed" status as duplicate of the
discovered printer so that the new queue for the discovered
printer does not get removed when the entry for the other
queue times out.
CHANGES IN V1.0.55
- pdftopdf: Fixed manual duplex by adding a blank page to evn
pages if the total number of pages of the document is
odd. Otherwise the last page of the document would stay in
the input tray. This fixes also a side effect as the set of
even pages reducing to a zero page job if the job consists
of only one page, making Poppler's pdftops error out (Ubuntu
bug #1340435).
- cups-browsed: Do not mark a discovered printer as already
provided by another server when the other server's queue has
"disappeared" status. This queue can be from the same server
before it changed its name.
- cups-browsed: Do not create a local queue pointing to a
remote raw queue (Ubuntu bug #1335211).
- foomatic-rip, imagetoraster, pdftoraster, rastertopclx,
rastertopdf: Added colord "device_inhibit" support for
color-managed filters.
- foomatic-rip: Let it also build correctly on systems which
already provide the strlcat() and strlcpy() functions, like
Mac OS X. Thanks to Matt Broughton for reporting this
(bug #1215).
- bannertopdf: Added support for PPD-less printing, especially
one gets a useful test page with PPD-less queues now.
- bannertopdf: Fixed "Printer Location" and "Driver Version"
entries on the test page/the banners.
- bannertopdf: Added new PDF template files which contain the
text strings appropriate to the banners, before the banners
were all equal, without text. Thanks to Johannes Meixner
from SUSE/Novell for this fix (Bug #1209).
- bannertopdf: Fixed Makefile to mark it dependent on
libfontembed.la. Thanks to Tim Waugh from Red Hat for the
patch (Red Hat bug #1106101).
- pstopdf: Use "grep -E" instead of "grep -P" as the latter
generates executable code and executes it, requiring
"execmem" privileges which could be not available in some
security policies. Thanks to Tim Waugh from Red Hat for the
patch (Red Hat bug #1079534).
- foomatic-rip: NetBSD does not provide a mkstemps() function,
use appropriate workaround then (Bug #1211).
- cups-browsed: Reorder inclusion of headers for compatibility
with NetBSD (Bug #1212).
- pdftoraster: Fixed segfault caused by introduction of
"no-color-management" option (Bug #1214).
- libcupsfilters: Let cupsRasterParseIPPOptions() also accept
"pwg-raster-document-type" settings with hyphen between
color space name and color depth.