• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1NEWS - OpenPrinting CUPS Filters v1.28.17 - 2023-01-24
2------------------------------------------------------
3
4CHANGES IN V1.28.17
5
6	- libcupsfilters: In PPD generator create only one *cupsFilter2:
7	  line for raster. Only use the most desirable/reliable format,
8	  usually Apple Raster.
9	- libcupsfilters: In get_printer_attributes() poll
10	  "media-col-database" separately if needed. On some printers
11	  one gets "media-col-database" only this way. Ofte reveals
12	  important functionality, like for example borderless
13	  printing.
14	- libcupsfilters: Let PPD generator also parse
15	  "media-col-ready" IPP attribute. "media-col-ready" lists the
16	  loaded media, in contrary to "media-ready" as list of
17	  complete descriptions of the media ("media-col" data
18	  structure).  This often lists also variants like borderless
19	  (it is the same physical paper). Especially usefull when
20	  "media-col-database" is not available.
21	- libcupsfilters: In generate_sizes() consider all margin
22	  alternatives. When generating the PPD file for a driverless
23	  printer, and in the media-{left,right,top,bottom}-margin-supported
24	  printer IPP attributes there was more than 1 vale, the first
25	  value (which often was the 0 for borderless printing was not
26	  considered, leaving the borderless functionality of many
27	  printers undiscovered (Issues #492).
28
29CHANGES IN V1.28.16
30
31	- imagetoraster, imagetopdf, libcupsfilters: Added support for
32	  reading the resolution of an image from its EXIF data when
33	  loading it. This way we get the image reproduced in its
34	  original size with "print-scaling=none" (Issue #362).
35	- libcupsfilters: Replaced deprecated data types uint16 and
36	  uint32. The function to read TIFF image files via libtiff in
37	  cupsfilters/image-tiff.c uses the deprecated types uint16
38	  and uint32. The replacements for these types are uint16_t
39	  and uint32_t.
40
41CHANGES IN V1.28.15
42
43	- pdftops: In pdftops identify old LaserJets more precisely
44	  for working around PostScript interpreter bugs, older
45	  printers need Poppler, newer models need Ghostscript
46	  (Ubuntu bug #1967816).
47
48CHANGES IN V1.28.14
49
50	- pdftopdf: Correct the output when suppressing auto-rotation
51	  (option "nopdfAutoRotate"). Depending on the situation pages
52	  got cropped in the wrong orientation or de-centered.
53	- pdftopdf: Correct the output when the
54	  "orientation-requested" or the "landscape" option is
55	  supplied. Output could be de-centered (Issue #456),
56	  portrait-oriented pages be wrongly cropped and division of
57	  the output page into cells for N-up done in the wrong
58	  orientation.
59	- rastertopdf: In PCLm output mode the filter failed to
60	  generate PCLm if the printer has no
61	  "pclm-source-resolution-default" IPP attribute.
62
63CHANGES IN V1.28.13
64
65	- pdftopdf: Fix N-up printing when paper is taken
66	  long-edge-first by the printer.
67	- pdftopdf: Fix cropping ("print-scaling=none" and
68	  "print-scaling=fill") when paper is taken long-edge-first by
69	  the printer (Issue #454).
70	- pdftops: Use Poppler for all Apple LaserWriter models (Issue
71	  #452).
72
73CHANGES IN V1.28.12
74
75	- imagetoraster, imagetopdf: Fixed comparison of the image
76	  size with the page size for print-scaling=auto. The image
77	  size in pixels was compared with the page size in PostScript
78	  points (1/72 inch).
79	- imagetoraster, imagetopdf: Fixed the "print-scaling=none"
80  	  (crop-to-fit) mode, also use crop-to-fit always when
81  	  requested, do not fall back to fit-to-page when the image
82  	  size differs significantly from the page size (Issue #362).
83	- libcupsfilters: Changed the default PPI resolution for
84	  images as input files from 128 to 200 (Pull request #446).
85	- implicitclass: Do not check availability of "gs" and
86	  "pdftops" executables, instead, check by the presence of
87	  "gstoraster" and "pdftoraster" filters whether we have
88	  configured cups-filters for Ghostscript and/or Poppler use.
89	- libcupsfilters: In the PPD generator for the driverless
90	  utility and cups-browsed add "*cupsFilter2: ..." lines for
91	  all supported driverless data formats (PDF, Apple/PWG
92	  Raster, PCLm), and add lines for legacy data formats (PCL,
93	  PostScript) only if no driverless formats available.
94	- libcupsfilters: Always use encryption for ipps. RFC7472
95	  requires that 'ipps' must be used over HTTPS, but the
96	  driverless utility does not enforce encryption (Pull request
97	  #433).
98	- serial: Add a 10-msec sleep and at the end add a tcdrain().
99	  For some unknown reason, every printing file need sleep a
100	  little time to make sure the serial printer receive data is
101	  right (Pull request #431).
102	- libcupsfilters: Fix resolver functions for DNS-SD-based
103	  URIs, to make resolve_uri() also work when DEVICE_URI env
104	  variable is set and to make ippfind_based_uri_converter()
105	  not re-direct stdin.
106	- pdftopdf: Set default for print-scaling to avoid "should
107	  never happem" log messages and undefined behavior.
108	- pdftopdf: Fix orientation-requested = 0. Consider
109	  this as "automatic selection and not as error.
110	- pdftopdf: Fixed all combinations of print-scaling and
111	  number-up for printers with asymmetric margins (top !=
112	  bottom or left != right) and for input files containing
113	  pages with different sizes and/or orientations. Fixes
114	  backported from 2.x branch.
115	- pdftopdf: Add 2% tolerance for input size larger than output
116	  page when "print-scaling=auto" or "print-scaling=auto-fit"
117	  is used and too large input pages should be scaled, fitting
118	  documents not. This prevents a random-looking behavior if
119	  input and output page size seem to be equal, but in reality
120	  there are slight differences between size dimensions.
121
122CHANGES IN V1.28.11
123
124	- libcupsfilters: Let PPD generator take default ColorModel
125	  from printer (CUPS issue #277).
126	- Braille: In vectortopdf check inkscape version to call
127	  inkscape with the correct command line (Issue #315, Pull
128	  request #443).
129	- Build system: Make missing DejaVuSans.ttf non-fatal in
130	  ./configure as the font is only needed for test programs,
131	  not for actual use of cups-filters (Issue #411).
132	- libcupsfilters: In imagetoraster() fixed crash with SGray
133          (Issue #435).
134	- cups-browsed: Naming of local queues is matched to CUPS'
135	  current naming of temporary queues (no leading or trailing
136	  underscores), to avoid duplicates in print dialogs which
137	  support CUPS' temporary queues.
138	- libcupsfilters: Make cupsRasterParseIPPOptions() work correctly
139	  with PPDs (Issue #436).
140	- libcupsfilters: Let colord_get_profile_for_device_id() not
141	  return empty file name, to avoid error messages in CUPS
142	  error_log.
143	- foomatic-rip: Debug message was wrongly sent to stdout and
144	  not to log (Issue #422).
145
146CHANGES IN V1.28.10
147
148	- Sample PPDs: Add borderless page size definitions to Generic
149	  PDF Printer, HP Color LaserJet CM3530 MFP PDF, and Ricoh PDF
150	  Printer PPD files.
151	- Sample PPDs: From the PDF PPD files removed the unneeded
152	  "*cupsFilters2: ..." line. For CUPS it does not make any
153	  difference.
154	- libcupsfilters: Fixed pdftopdf filter to correctly support
155	  page ranges without upper limit, like "10-" (Pull request
156	  #399).
157	- libcupsfilters: Use wildcard tag (IPP_TAG_ZERO) search for
158	  "media-type" and "media-type-supported" in the PPD
159	  generator (Pull request #398).
160	- implicitclass, parallel: Added missing newlines at error
161	  messages.
162	- libfontembed: Removed unneeded fontembed/main.c and ttfread
163	  executable. Eliminates the dependency on DejaVuSans.ttf
164	  (Issue #386).
165	- gstoraster: Refactor the filter a little to clarify handling
166	  of page counts and set job-impressions for TotalPageCount in
167	  PWG-Raster header (Pull request #394).
168	- cups-browsed: Make NotifLeaseDuration configurable and renew
169	  after half the lease duration not 60 sec before end. The
170	  early renewal improves reliability on busy systems a
171	  lot. For easier development and debugging short durations
172	  from 300 sec on can get selected (Pull request #378).
173
174CHANGES IN V1.28.9
175
176	- libcupsfilters: Silenced compiler warnings
177	- libcupsfilters: Removed duplicate code in the
178	  apply_filters() function.
179	- driverless: If there are no driverless IPP printers
180	  available let "driverless" terminate with exit code 0 and
181	  not 1, to follow CUPS' standard of backends in discovery
182	  mode terminating with 0 if there are no appropriate printers
183	  found (Issue #375).
184	- gstoraster, foomatic-rip: Fixed Ghostscript command line for
185	  counting pages as it took too long on PDFs from evince when
186	  printing DjVu files (Issue #354, Pull request #371, Ubuntu
187	  bug #1920730).
188	- cups-browsed: Renamed ldap_connect() due to conflict in
189	  new openldap (Issue #367, Pull request #370).
190	- pdftoraster: Free color data after processing of each page
191	  (Pull request #363).
192	- cups-browsed: Always save "...-default" option entries
193	  from printers.conf, regardless of presence or absense
194	  of PPD file (Pull request #359).
195	- cups-browsed: Start after network-online.target (Pull
196	  request #360).
197	- texttopdf: Set default margins when no PPD file is used
198	  (Pull request #356).
199
200CHANGES IN V1.28.8
201
202	- libcupsfilters: Made check whether the driverless PPD to
203	  generate should be a fax out PPD more reliable (Issue #343).
204	- foomatic-rip: Options in the 5th command line argument of
205	  the CUPS filter command line are separated only by white
206	  space and not by comma, also make sure that an option "none"
207	  is not considered a custom page size (Issue #348).
208	- implicitclass: Raise timeout for cups-browsed's answer from
209	  20s to 60s (Pull request #346).
210	- libcupsfilters: In the PPD generator really give priority to
211	  Apple Raster against PDF (Issue #331).
212
213CHANGES IN V1.28.7
214
215	- driverless: Removed the support quality check from Pull
216	  request #235 as it takes significant time for each printer
217	  being listed, making cups-driverd (`lpinfo -m`) timing out
218	  when there are many printers (OpenPrinting CUPS issue #65).
219	- libcupsfilters: In the PPD generator give priority to Apple
220	  Raster against PDF (Issue #331).
221	- libcupsfilters: Added NULL check when removing ".Borderless"
222	  suffixes from page size names (Issue #314, Pull request
223	  #328).
224	- libcupsfilters: In the cupsRasterParseIPPOptions() map the
225	  color spaces the same way as in the PPD generator (Issue
226	  #326, Pull request #327).
227	- libcupsfilters: Fixed addition of grayscale mode in
228	  generated PPD files, to avoid duplicate entries
229	  (OpenPrinting CUPS issue #59).
230
231CHANGES IN V1.28.6
232
233	- libcupsfilters: In generated PPDs add a grayscale mode if
234	  there are only color printing modes (from OpenPrinting
235	  CUPS).
236	- libcupsfilters: In generated PPDs add an "OutputBin" option
237	  also if it has only one choice (OpenPrinting CUPS pull
238	  request #18).
239	- libcupsfilters: Generated PPDs could have an "Unknown"
240	  default InputSlot (OpenPrinting CUPS issue #44).
241	- cups-browsed: Removed unneeded IPP attribute additions
242	  preventing the created local queues from preserving a
243	  location or description the user assigns to them (Issue
244	  #323).
245	- cups-browsed: Removed all calls of the resolve_uri() function
246	  of libcupsfilters, as these are not actually needed and in case
247	  the supplied DNS-SD-based URI is not resolvable, the function
248	  gets stuck for ~5 seconds.
249	- cups-browsed: Fixed several memory leaks, mainly from the
250	  code to merge printer IPP attributes for clusters (Pull
251	  request #322).
252	- cups-browsed: Silenced compiler warning.
253	- foomatic-rip: Fix infinite loop and input from file on raw
254	  printing (Pull request #318).
255	- foomatic-rip: Remove temporary file created during pdf-to-ps
256	  conversion (Pull request #313).
257
258CHANGES IN V1.28.5
259
260	- cups-browsed: UUID from IPP response was used after its
261	  pointer was freed by ippDelete() (Pull request #311).
262
263CHANGES IN V1.28.4
264
265	- driverless: Avoid duplicate PPD list entries from the same
266          device via UUID
267	- driverless: Reduce ippfind calls by "driverless" and
268	  "driverless-fax"called by CUPS. Let "driverless list" list
269	  both print and fax PPDs and "driverless-fax list" do
270	  nothing.
271	- driverless: Avoid duplicate listings in printer discovery,
272	  by "driverless-fax" not listing any URI as "driverless"
273	  lists them all already.
274	- driverless: Vastly improve performance by doing only one
275	  ippfind call instead of two (IPP, IPPS) as ippfind accepts
276	  more than one reg type on the command line.
277	- Sample PPDs: Corrected manufacturer name in
278	  Fuji_Xerox-DocuPrint_CM305_df-PDF.ppd.
279
280CHANGES IN V1.28.3
281
282	- libcupsfilters, cups-browsed: Fixed inconsistency between
283	  resolvers for DNS-SD-based URIs, resolve_uri() and
284	  ippfind_based_uri_converter(). Now both return a freeable
285	  string.
286	- libcupsfilters: Fix uninitialized buffer and parsing ippfind
287	  output in ippfind_based_uri_converter() function (Issue
288	  #308, Pull request #309).
289
290CHANGES IN V1.28.2
291
292	- driverless: Free allocated memory, use MAX_OUTPUT_LEN (Pull
293	  request #304).
294	- driverless: Make the two ippfind tasks(for IPP
295	  and IPPS) run in parallel (Pull request #302, #305, #306).
296	- braille: Support new liblouis tables not containing a
297	  display name (Pull request #303)
298	- Build system: Let ./configure not error out when there is
299	  more than one DejaVuSans.ttf test font candidate (Issue
300	  #300).
301	- cups-browsed: Crash when a remote printer set as default
302	  gets removed, due to missing variable in printf() call
303	  (Issue #299).
304	- libcupsfilters: Removed all signal handling and global
305	  variables from get_printer_attributes() and
306	  ippfind_based_uri_converter().  This is overkill for these
307	  quick operations and causes problems when shutting down
308	  cups-browsed (Issue #298).
309
310CHANGES IN V1.28.1
311
312	- COPYING: Fixed several typos
313	- libcupsfilters: Fixed typo in log message of
314	  get_printer_attributes functions.
315	- cups-browsed: Fixed typos in configuration file and man page
316	- libcupsfilters: Let the PPD generator not suffix page size
317	  names with ".Borderless" if all page sizes would get this
318	  suffix, for example for printers which generally print
319	  borderless.
320	- libcupsfilters: Added "faxPrefix" option for generated IPP
321	  Fax Out PPDs, so that this option also appears in print
322	  dialogs.
323	- driverless: List addresses for local services correctly when
324	  using "--std-ipp-uris" (with "localhost" hostname).
325	- driverless: Make calls of the ippfind utility somewhat faster,
326	  setting the timeout of ippfind to automatic.
327	- libcupsfilters: Resolve DNS-SD-based URIs for local services
328	  correctly (using hostname "localhost").
329	- libcupsfilters: In get_printer_attributes() functions do not
330	  try to convert URIs which are not DNS-SD-based (Issue #294).
331	- libcupsfilters: In get_printer_attributes() functions also
332	  support URIs with "dnssd://..." scheme.
333	- libcupsfilters: Moved signal handling back into main
334	  function of the get_printer_attributes() variants, it got
335	  moved out accidentally.
336	- driverless: For generating a PPD, independent whether via
337	  "driverless URI" or "driverless cat URI", always allow CUPS
338	  driver URIs (prefixed with "driverless: " or
339	  "driverless-fax:") and pure IPP URIs.
340	- driverless: Accept clean IPP URIs also for 'driverless cat
341	  ...' (Issue #295, Pull request #296).
342	- driverless-fax: Do not use fixed path for call of driverless
343	  itself (Pull request #293).
344
345CHANGES IN V1.28.0
346
347	- driverless, driverless-fax, libcupsfilters: Added IPP Fax
348	  Out support. Now printer setup tools list an additional fax
349	  "driver".  A fax queue is created by selecting this
350	  driver. Jobs have to be sent with "-o phone=12345" to supply
351	  the destination phone number (Pull request #280).
352	- libfontembed: Silenced warning with gcc 10.x (Pull request
353	  #287).
354	- cups-browsed: Added ./configure options
355	  --enable-saving-created-queues and
356	  --with-remote-cups-local-queue-naming (Pull request: #253,
357	  #285).
358	- cups-browsed: Fixed several memory leaks, mainly from the
359	  code to merge printer IPP attributes for clusters (Pull
360	  request #281, #283).
361	- driverless: Added "--std-ipp-uris" command line option to
362	  show listed URIs in standard hostname-based form (not the
363	  CUPS DNS-SD-service-name-based form. Only for manual call of
364	  the utility, for debugging purposes (Pull request #277).
365	- libfontembed: Removed assert() calls which cause crashes
366	  when unsupported emoji fonts are installed (Issue #254, Pull
367	  request #276).
368	- driverless: Added support for IPPS (use "ipps://..." URIs if
369	  possible, Issue #251, Pull request #270, #273).
370	- gstoraster, gstopdf: When converting PostScript to PDF use
371	  the "pdfwrite" output device with "-dPDFSETTINGS=/default"
372	  instead of with "-dPDFSETTINGS=/printer". This reproduces
373	  bitmaps in the PostScript file with their original image
374	  quality (Issue #272).
375	- cups-browsed: Limit log file size and add backup file for
376	  previous log entries. Introduced the configuration option
377	  DebugLogFileSize in cups-browsed.conf to set the actual
378	  limit in kilobytes or 0 to get the old behavior of an
379	  unlimited size for the log file (Issue #260, Pull request
380	  #267).
381	- gstoraster, gstopdf: Do not apply margins when output format
382	  is PDF, as then we convert an incoming PostScript file to
383	  PDF (pre-pdftopdf) and do not prepare the pages for the
384	  printer (post-pdftopdf, Issue #250).
385	- cups-browsed: Do not write any log messages directly to
386	  stderr, there were some concerning timeouts on queue
387	  creation (Issue #260).
388	- Build system: Fix cross-compilation without DejaVu test font
389	  in configure.ac (Issue #262, Pull request #263).
390	- libcupsfilters: Respect the fact that PPD keywords
391	  are case-sensitive when adding "*cupsManualCopies: True" in
392	  PPD file (Issue #242).
393	- libcupsfilters: Older versions of libcups (< 2.3.1)
394	  had the enum name for fold-accordion finishings mistyped.
395	  Added a workaround.
396	- cups-browsed: Remove left-over local queues from the
397	  previous session more quickly when CUPS legacy browsing is
398	  turned on.
399	- cups-browsed: Left-over local queues from the previous
400	  session for which the corresponding remote printer did not
401	  appear again did not get removed as they were considered
402	  externally overwritten.
403	- gstoraster, gstopdf: Add option "-dDoNumCopies" to
404	  Ghostscript command line if we are outputting PDF (called
405	  via gstopdf wrapper) and the number of copies supplied to
406	  CUPS is 1 (4th command line argument). In this case we
407	  convert incoming PostScript to PDF and need to respect
408	  embedded PostScript commands to implement the number of
409	  copies (Issue #255, CUPS Issue #5796, OpenSUSE bug
410	  #1173345).
411	- imagetoraster: Potential null dereference fix (when no valid
412	  PPD is supplied, Pull request #256).
413	- cups-browsed: Call cupsGetNamedDest() only if
414	  "OnlyUnsupportedByCUPS No"
415	- Sample PPDs: Corrected ColorModel default for Generic PWG
416	  Raster PPD to Color (Pull request #247).
417	- cups-browsed: Mark the temp queue as cups-browsed-generated
418          during setting printer-is-shared (Pull request #246).
419	- cups-browsed: Remove mentions of README and AUTHORS files in
420          the man page (Pull request #244).
421	- pclmtoraster: Added new filter to extract Raster data from
422	  raster-only PDF files, here for the special case of PCLm
423	  files (Pull request #243, #257).
424	- Sample PPDs: In Generic-PDF_Printer-PDF.ppd add option to
425	  switch between color and grayscale printing (Pull request
426	  #237).
427
428CHANGES IN V1.27.5
429
430	- cups-browsed: Do not remove the created local queues on
431	  shutdown, to avoid their re-creation on restart, so that
432	  desktops get no cluttered with notifications of new queues
433	  being created. One can return to the old behavior via
434	  "KeepGeneratedQueuesOnShutdown No" in cups-browsed.conf
435	  (Ubuntu bug #1869981, #1878241).
436	- cups-browsed: Do not accept DNS-SD broadcasts of IPPS type
437	  of "remote" CUPS queues of another CUPS instance on the
438	  local machine. This way we get a local queue pointing to
439	  such a printer only in unencrypted version (IPP). For some
440	  reason printing from one CUPS server to another on the same
441	  machine works only unencrypted.
442	- foomatic-rip: Map two-sided-short-edge to DuplexTumble (Pull
443          request #236)
444	- Build system: In configure.ac use AS_IF instead of
445          AC_CHECK_FILE for font check (Issue #239, Pull request #240)
446	- cups-browsed: Cleaned up code for determining to which CUPS
447	  server (host/port/domain socket) to connect, so that
448	  connection via DomainSocket cups-browsed.conf directive,
449	  CUPS_SERVER and IPP_PORT environment variables and all
450	  defaults and methods of libcups, including CUPS' client.conf
451	  work.
452	- gstoraster, rastertopdf: Do not pass NULL to fprintf() (Pull
453          request #230).
454	- libcupsfilters: Silence compiler warning (Pull request #229).
455
456CHANGES IN V1.27.4
457
458	- libcupsfilters, cups-browsed: Fix memory issues in
459          ppdgenerator and cups-browsed (Pull request #226).
460	- pdftops: Mention cups-filters README, CUPS README in debug
461          log (Pull request #225).
462	- pdftopdf, gstoraster, foomatic-rip: Use "-dSAFER"
463          Ghostscript option, instead of the deprecated
464          "-dPARANOIDSAFER" (Pull request #224).
465	- Build System: Replace '==' in configure.ac test with '=', as
466	  the former is a bashism (Pull request #222).
467
468CHANGES IN V1.27.3
469
470	- cups-browsed: Allow sharing local queues pointing to remote
471	  CUPS queues and re-sharing printers discovered via
472	  BrowsePoll by default, using
473	  AllowResharingRemoteCUPSPrinters and
474	  NewBrowsePollQueuesShared directives in cups-browsed.conf
475	  (Issue #101, Pull request #218).
476	- driverless: Correctly unlink temporary file when generating
477	  PPD file (Pull request #220).
478	- cups-browsed: Fixed memory leaks (Pull request #219).
479	- foomatic-rip: PDF page count side-loads the PDF file to
480	  count the pages in, so it cannot be run in -dSAFER mode. Run
481	  even in -dNOSAFER mode to override the -dSAFER default of
482	  newer Ghostscript versions. This should not cause a security
483	  problem as we do not take an input file which could do
484	  arbitrary side-loads but we run hard-coded PostScript
485	  commands instead (Issue #216).
486	- libfontembed: Add checks to the test programs to not
487	  segfault if the test font file is not found (Pull request
488	  #214).
489	- Build System: Let ./configure fail if the supplied test font
490	  file path (or the default) does not exist (Pull request
491	  #214), also use the "find" command to find the test font
492	  file DejaVuSans.ttf under /usr/share/fonts, as every
493	  distribution has it somewhere else.
494
495CHANGES IN V1.27.2
496
497	- foomatic-rip: In some PostScript input files it was possible
498	  that option settings did not get inserted or lines inserted
499	  on the wron place (Issue #208, Pull request #210).
500	- foomatic-rip: For the PDF page count call Ghostscript in
501	  sandbox mode and fix pointer arithmetics (Pull request
502	  #212).
503	- foomatic-rip: Zero-page-job handling changes made the last
504	  page of PostScript files not printed, also turning one-page
505	  jobs into zero-page jobs (Issue #200, Issue #206, Issue
506	  #208, Pull request #209, Pull request #210, Pull request
507	  #211).
508	- cups-browsed: check_printer_with_option() function:
509	  Initialize the value, add further checks, freeing memory and
510	  stop allocating magic numbers (Pull request #204).
511	- cups-browsed: Additional checks against crashes in the
512	  is_local_hostname() function (Ubuntu bug #1863716)
513
514CHANGES IN V1.27.1
515
516	- libcupsfilters: Let the PPD generator not put any dashes
517	  into the PPD option and choice names when translating them
518	  from IPP attribute names, to avoid that on the
519	  back-translation by CUPS no double-dashes are
520	  generated. This broke paper tray selections with tray names
521	  like "tray-1", "tray-2", ... (Issue #192, Issue #201, Debian
522	  bug #949315).
523	- foomatic-rip: Fixed segfault when PRINTER environment
524	  variable is not supplied.
525	- pdftopdf, pdftops, gstoraster, gstopdf, gstopxl,
526	  rastertoescpx, rastertopclx, foomatic-rip: Handle zero-page
527	  jobs (Issue #117, Pull request #196, Pull request #197, Pull
528	  request #198, Pull request #200).
529	- texttopdf: Added support for CJK (double-width) fonts (Issue
530	  #135, Pull request #199).
531	- cups-browsed: Switched default for "CreateIPPPrinterQueues"
532	  from "local-only" to "All". The configure script options
533	  "--enable-auto-setup-local-only" and
534	  "--enable-auto-setup-driverless-only" can be used to change
535	  this default (Debian bug #921252).
536	- rastertoescpx: Fixed wrong freeing of a buffer.
537	- pdftops: Added options "crop-to-fit" and "fill" to the
538	  pdftopdf options which the pstops called by pdftops should
539	  not apply a second time.
540	- pdftops: Added missing "-sstdout=%stderr" to Ghostscript
541	  command line, to assure that all messages are redirected to
542	  stderr and do not mix up with the output data.
543
544CHANGES IN V1.27.0
545
546	- cups-browsed: Eliminate the use of the local CUPS daemon's
547	  (the CUPS we are attached to) port number completely, so
548	  that for attaching to an arbitrary local CUPS daemon
549	  listening on an arbitrary port (or even not listening on
550	  localhost at all) it is enough to tell cups-browsed the
551	  domain socket the CUPS daemon is listening on.
552	- cups-browsed, libcupsfilters: Identify DNS-SD-reported
553	  printers as of the local CUPS daemon via UUID and not via
554	  the port on which the local CUPS is listening, as we do not
555	  always have this port available.
556	- cups-browsed: Leave the port for legacy CUPS browsing and
557	  broadcasting on 631, do not use a possible alternative port
558	  of the CUPS we are attached to. The legacy CUPS servers we
559	  communicate with are always remote ones.
560	- libcupsfilters: in the PPD generator prioritize
561	  print-color-mode-supported against
562	  pwg-raster-document-type-supported (Issue #186, Pull request
563	  #188)
564	- rastertopdf, rastertops, texttopdf, pdftoraster,
565	  mupdftoraster: Handle zero-page jobs, corrections on
566	  zero-page job handling (Issue #117)
567	- cups-browsed: When restarting after a crash make sure that
568	  local queue names have same upper/lower case as before.
569	- cups-browsed: Small code improvements to reduce crash
570	  probability.
571
572CHANGES IN V1.26.2
573
574	- cups-browsed: Added crash guards to avoid crashes in case
575	  the dummy printer entry for a deleted master entry is used.
576	- cups-browsed: Set the port of the local CUPS daemon to be
577	  used according to the IPP_PORT environment variable.
578	- cups-browsed: Eliminated the use of the cupsGetPPD2()
579	  function of libcups completely, also the remaining calls
580	  in the record_printer_options() and update_cups_queues()
581	  functions, the former causing incomplete recording of
582	  option settings and the latter use of CUPS-generated
583	  PPDs not working when CUPS is running on a non-standard
584	  port.
585	- cups-browsed: Eliminated the use of the cupsGetPPD2()
586	  function of libcups in queue_overwritten(). The function
587	  actually loads the queue's PPD file if the queue is on a
588	  local CUPS on port 631. Due to a bug the function fails if
589	  an alternative port is used. This lets queue_overwritten()
590	  always assume that the PPD got removed and therefore the
591	  queue got overwritten. So queues got released from
592	  cups-browsed if it was printed on them or if they were
593	  supposed to be removed on shutdown.
594	- foomatic-rip: Fixed compilation with -fno-common. Starting
595	  from the upcoming GCC 10, the default of the -fcommon option
596	  will change to -fno-common. This causes compilation errors
597	  in foomatic-rip due to missing "external" declarations.
598	  (Pull request #184).
599
600CHANGES IN V1.26.1
601
602	- build system: Install the "implicitclass" backend with
603	  "-rwx------" permissions, so that CUPS executes it as root,
604	  as the "ipp" CUPS backend also has to be executed as root
605	  (Issue #183).
606	- build system: Fixed setting permissions when installing the
607	  "cups-brf" backend.
608	- libcupsfilters: When using the
609          "media-{bottom,left,right,top}-margin-supported" IPP
610          attributes (needed if we have no "media-col-database"), use
611          the minimum and not the maximum margins, this allows
612          accessing more of the printer's capabilities, especially for
613          legacy printers which do not provide sufficient information
614          (Issue #22).
615
616CHANGES IN V1.26.0
617
618	- cups-browsed: When generating local queues for printers for
619	  which the local CUPS daemon would provide temporary queues
620	  use the PPDs generated by libcupsfilters and not the ones
621	  generated by CUPS. The PPD generation of libcupsfilters also
622	  works with IPP-1.x-only printers, printers which do not
623	  support to query "media-col-database" and printers which
624	  support driverless printing only via PCLm. This can be
625	  changed via the "UseCUPSGeneratedPPDs" directive in
626	  cups-browsed.conf (Issue #22).
627	- libcupsfilters: Re-structured the get_printer_attributes()
628	  function to remove the recursive calls for the fallbacks, to
629	  check required attributes in the response only if requested,
630	  and to fully integrate the method of getting a suitable
631	  response for a full printer capability list also if the
632	  printer is only IPP 1.1 or does not support the
633	  "media-col-database" attribute (Issue #22, Issue #163).
634	- libcupsfilters, cups-browsed, driverless: Moved the funtions
635	  get_printer_attributes() and resolve_uri() from cups-browsed
636	  into libcupsfilters, to share them with the driverless
637	  utility (Issue #22).
638	- implicitclass: Fixed wrong stdout redirection from the
639	  filters to the IPP backend and hard-coded path for "ipp"
640	  backend call (Possible fix for Issue #163, Issue #181).
641	- cups-browsed, driverless: Use DNS-SD-service-name-based URIs
642	  instead of host-name-based ones, as CUPS also does. In
643	  cups-browsed one can switch back to the conventional
644	  host-name-based URIs via the new "DNSSDBasedDeviceURIs"
645	  configuration option.  Note that cups-browsed always uses
646	  conventional URIs for printers discovered via legacy CUPS
647	  browsing or LDAP.
648	- cups-browsed: When removing a CUPS queue, do not consider an
649	  error (and retry) if the queue does not actually exist. Also
650	  ignore errors when checking whether there are still
651	  jobs. This way when a new queue gets created and the
652	  generation of the PPD file fails the attempt to remove this
653	  non-existing queueu when removing the printer entry does not
654	  cause any problem.
655	- cups-browsed: Improved the fallback mechanism of the
656	  get_printer_attributes() function. Instead of considering
657	  the request failed by the content of the response only when
658	  not more than the two language atrributes come out, we check
659	  through a list of required attributes whether they are all
660	  there.  In addition, we actually fail when all callbacks
661	  have failed (Issue #22).
662	- cups-browsed: Introduced new configuration options
663	  "UpdateCUPSQueuesMaxPerCall" and
664	  "PauseBetweenCUPSQueueUpdates" to limit the amount of local
665	  CUPS queues created, modified, or removed in a single event
666	  callback. Before, when there were thousands of printers in
667	  the network, cups-browsed got blocked for other tasks, like
668	  assigning a destination printer for a cluster print job
669	  (Issue #163).
670
671CHANGES IN V1.25.13
672
673	- implicitclass: When passing on the job via the "ipp" CUPS
674	  backend, set argv[0] to the destination printer URI (Pull
675	  request #173).
676	- cups-browsed: Added another fallback to the
677	  get-printer-attributes IPP request: Now after failing the
678	  standard request ("all", "media-col-database") with both IPP
679	  2.0 and IPP 1.1, try simply "all", without
680	  "media-col-database" (Pull request #173).
681	- cups-browsed: Do not set printer-is-shared for remote CUPS
682	  queue when making a temporary queue permanent (Pull request
683	  #180).
684	- cups-browsed: Fix leaks of ipp_t struct and load balancing
685	  on the servers (Pull request #179).
686	- cups-browsed, implicitclass: Prioritize Apple Raster against
687	  PWG Raster when selecting the PDL for the destination
688	  printer for a job sent to a cluster, also cleaned up the PDL
689	  selector code and added PostScript support.
690	- libcupsfilters: Updated the PPD generator adding all changes
691	  of the PPD generator of CUPS: Support for "job-account-id",
692	  "job-accounting-user-id", "job-password", finishing options
693	  "trim-..." added, finishing options and
694	  "finishing-col-database" support synced with CUPS.
695	- libcupsfilters: In the PPD generator get the mode for
696	  handling the back sides of the sheets when printing duplex
697	  preferrably from the "urf-supported" attribute.
698	- libcupsfilters: Fixed bug that the PPD generator did not
699	  output the "*CloseUI: *ColorModel" line when it did not
700	  determine a default setting for "ColorModel".
701	- cups-browsed: Added some missing memory allocations leading
702	  to a segfault (Issue #175).
703
704CHANGES IN V1.25.12
705
706	- libcupsfilters: Use the text names "Draft", "Normal", and
707	  "High" instead of 3, 4, and 5 as choice names for the
708	  "cupsPrintQuality" option as CUPS does (Issue #171).
709	- libcupsfilters: If a printer supports both Apple Raster and
710	  PWG Raster let the generated PPD use Apple Raster as there
711	  are several printers which report PWG Raster support but do
712	  not actually print PWG Raster (Pull reguest #168, Issue
713	  #171, CUPS issue #5238).
714	- cups-browsed: Fix unset location check to use DNS-SD field
715	  (Pull request #172).
716	- libcupsfilters, beh, implicitclass, foomatic-rip,
717	  imagetopdf, mupdftoraster, pdftops, sys5ippprinter,
718	  cups-browsed, driverless: Silenced all compiler warnings to
719	  make the build process of cups-filters completely free of
720	  warnings.
721	- pdftops: Fixed crash when using filter without PPD file.
722	- pdftops: If printing grayscale jobs with Ghostscript as PDF
723	  renderer, add "-sProcessColorModel=DeviceGray" to
724	  Ghostscript command line.
725	- pdftops: Do not use the ugly "pdftops -level1 ..."
726	  workaround to get grayscale PostScript output from
727	  Poppler. It leads to huge output files with Poppler's
728	  "pdftops" utility and does not work at all with
729	  "pdftocairo".  Poppler itself does not support PostScript
730	  output converted to grayscale. Issue a warning with the hint
731	  to use Ghostscript or MuPDF as PDF renderer (Issue #169).
732	- libcupsfilters: In the cupsRasterParseIPPOptions()
733	  accept also "Mono", "Monochrome", and "Gray" as color
734	  space names.
735
736CHANGES IN V1.25.11
737
738	- cups-browsed: Really accept entries without printer name
739	  reported on a job status request (Issue #163).
740	- cups-browsed: Strip IPP attribute values reported by the
741	  printer on a get-printer-attributes request from white
742	  space (Pull request #166).
743
744CHANGES IN V1.25.10
745
746	- libcupsfilters: Added NULL checks when handling page size
747	  names as some of the page sizes in CUPS' PWG media list have
748	  a NULL PPD name (Ubuntu bug #1847488).
749
750CHANGES IN V1.25.9
751
752	- cups-browsed: Fix leaks in get_printer_attributes() function.
753	- cups-browsed: Avoid infinite recursion on IPP 1.1 fallback.
754
755CHANGES IN V1.25.8
756
757	- cups-browsed: On a job status request accept also entries
758	  without the printer name being reported (Issue #163).
759	- cups-browsed: Fall back to IPP 1.1 if a
760	  get-printer-attributes IPP request with IPP 2.x fails (Issue
761	  #124, Issue #163).
762	- gstoraster: Use ".setfilladjust2" instead of the
763	  undocumented ".setfilladjust" PostScript command for
764	  Center-of-Pixel method to fill paths (Issue #164).
765
766CHANGES IN V1.25.7
767
768	- implicitclass, libcupsfilters: Fixes to solve an assertion
769	  error and printing to an Apple Raster printer (Issue #162,
770	  Ubuntu bug #1845286, Ubuntu bug #1845548).
771	- cups-browsed: Do not try to resolve the network interface
772	  name on Avahi messages which are not interface-related (like
773	  "All for now"or "Cache exhausted", Issue #163).
774	- Build system: The helper script ln-srf to build on systems
775	  with old ln was not included in the release tarballs (Issue
776	  #161).
777	- pdftoraster: Fixed some bugs in output bitmap generation (
778	  writePageImage() function): Segfault on output of
779	  up-side-down pages (back side when printing duplex on some
780	  printers), margin offsets not taken into account on
781	  monochrome jobs, CUPS_CSPACE_W color space not recognized as
782	  monochrome (Ubuntu bug #1845286).
783
784CHANGES IN V1.25.6
785
786	- implicitclass: Make sure the destination printer gets always
787	  set and do not pass on the cups-browsed-dest-printer when
788	  sending the job to the final destination (Issue #152, Pull
789	  request #159).
790	- Build system: Support old ln versions without the -r option
791	  (Pull request #154, #157).
792	- texttotext: Link with libiconv if needed (Pull request
793	  #155, #158).
794	- foomatic-rip: Fix argument representation for raw queue
795	  debug mesaage (Pull request #153).
796
797CHANGES IN V1.25.5
798
799	- bannertopdf: Added missing "#include <cstring>" to pdf.cxx
800	  so that bannertopdf correctly builds with QPDF 9.0.0 (Issue
801	  #134, Issue #151, Gentoo bug #693498).
802	- rastertopdf: Let the getIPPColorProfileName() function not
803	  return a pointer to a local variable (clang warning, Issue
804	  #150).
805	- cups-browsed: If a locally generated queue (usually with
806          "implicitclass://..." URI) left over from a previous
807          (crashed) session is picked up on startup, do not set the
808          URI as the remote printer's URI and do not cause a fatal
809          error on a failed get-printer-attributes IPP request (Issue
810          #148, Debian bug #939316).
811	- pdftopdf: Do not preserve encryption, since the output
812          already goes into the printer (Issue #146, Pull request
813          #147).
814
815CHANGES IN V1.25.4
816
817	- imagetoraster: Do not call imagetops and pstoraster for
818	  classifications and page labels as these filters are not
819	  included any more with cups-filters.  Classifications and
820	  page labels are currently not supported for direct image
821	  printing, only for PDF or PostScript input (which goes
822	  through pdftopdf).
823	- imagetoraster, imagetopdf: Fixed auto-rotation of images to
824	  fit output page best (Issue #145).
825	- pdftoraster: If the PPD contains several equally-sized page
826	  size entries which match the size of the input page and one
827	  is the size selected by the user via the "PageSize" or
828	  "media" option (or the default selection in the PPD) then
829	  prefer this one instead of simply the first matching one.
830	- pdftoraster: If the input page size cannot be matched with
831	  one of the PPD's page sizes it is considered a custom size,
832	  fill the page size name field of the CUPS Raster header with
833	  "Custom.XXXxYYY" then.
834	- pdftoraster: Match the input page size with a page size in
835	  the PPD only if the differences of the dimensions are less
836	  than 1%, also match the input page size against the
837	  imageable area of the PPD's page sizes if no match with the
838	  full page size is found (Issue #138).
839
840CHANGES IN V1.25.3
841
842	- Sample PPDs: In HP-Color_LaserJet_CM3530_MFP-PDF.ppd renamed
843	  "custom" choice of the option "stapleoption" to "customsize"
844	  as from CUPS 2.2.12 on "custom" is not accepted any more as a
845	  choice name in a PPD file.
846	- cups-browsed: Fixed check whether the remote printer understands
847	  PWG Raster (Issue #141).
848
849CHANGES IN V1.25.2
850
851	- foomatic-rip: Fixed segmentation fault when running
852	  foomatic-rip by hand and the PRINTER environment variable is
853	  not set (Pull request #139).
854	- cups-browsed: Added note to cups-browsed.conf and man page
855	  about IP-based URIs depending on the network interface used.
856	- cups-browsed: For each DNS-SD-discovered printer register
857	  each DNS-SD discovery instance with network interface,
858	  family, and IPP type. When DNS-SD messages of instances
859	  disappearing show up, only unregister this instance and
860	  remove the printer only if no instance is left. This
861	  prevents a local queue of a still available printer being
862	  removed when Wi-Fi (= one interface) is turned off (Issue
863	  #136).
864	- cups-browsed: If a remote printer is served from the local
865	  machine, prefer the "localhost"/loopback interface URI.
866	- cups-browsed: If a remote printer is discovered more than
867	  once, use the new instance only if it has no downgrades and
868	  at least one upgrade compared to the old one. Features
869	  currently compared are IPP/IPPS, loopback interface or not,
870	  and discovery via CUPS legacy/LDAP/DNS-SD.
871	- cups-browsed: If an Avahi-discovered entry comes through the
872	  "lo" interface, always use the host name "localhost". Use
873	  IP addresses instead of host names only if explicitly
874	  requested.
875	- cups-browsed: Consider remote printer entries also as from
876	  the same printer if one has the local machine's network name
877	  and the other "localhost" as host name (Issue #136).
878
879CHANGES IN V1.25.1
880
881	- imagetopdf: Fixed crash when no PPD file was supplied (Pull
882	  request #133).
883	- pdftoraster: Fixed offset issues leading to segmentation
884	  faults (Issue #131, Pull request #132).
885	- pdftoraster: Added anti-aliasing for better raster image
886	  quality (Pull request #129).
887	- pdftoraster: Added graceful handling of zero-page input
888	  (Issue #117, Pull request #127).
889
890CHANGES IN V1.25.0
891
892	- pdftoijs, pdftoopvp: Removed these deprecated filters
893	  completely as there is no demand for them any more. They
894	  also used unstable, undocumented APIs of Poppler.
895	- pdftoraster: Changed from using unstable, undocumented APIs
896	  of Poppler to stable, documented ones, to improve
897	  maintainability of this filter, and with it of the
898	  cups-filters package. Thanks to Tanmay Anand for
899	  contributing this as his Google Summer of Code 2019 project.
900	- libcupsfilters: Added support for color spaces CMY and RGBW
901	  when using filters without PPD file (mainly for development
902	  and debugging, option "print-color-mode" with values
903	  "cmy-XX" and "rgbw-XX" with XX being the number of bits per
904	  color).
905
906CHANGES IN V1.24.0
907
908	- cups-browsed: Integration of Deepak Patankar's Google Summer
909	  of Code 2018 project with the main goal of clustering
910	  different printers and automatically selecting the
911	  destination printers by job content and option/attribute
912	  settings. All changes of this release are done by Deepak as
913	  parts of his project.
914	- cups-browsed, implicitclass: Support for mixed clusters of
915	  remote CUPS queues and IPP network printers. For this PPD
916	  files of remote CUPS queues are generated by cups-browsed
917	  based on IPP queries, as for native IPP printers, the number
918	  of jobs for load balancing is polled in a way that it works
919	  also with native IPP printers, the implicitclass backend
920	  sends jobs directky to the printer instead of re-queueing
921	  them via CUPS.
922	- cups-browsed: Merge IPP attributes of several printers to
923	  combined attributes for the cluster to generate the
924	  cluster's PPD file, including PPD constraints for option
925	  combinations not fulfillable by any of the member printers,
926	  and finding reasonable, non-conflicting default settings,
927	- cups-browsed: Selection algorithm for the destination
928	  printer for a job sent to the cluster. Based on the job
929	  settings requested such as page size, media type, print
930	  quality, ... the best most suitable printer in the cluster
931	  for the job will be selected.
932	- cups-browsed, implicitclass: Filter jobs to clusters already
933	  locally. Due to the fact that a cluster's member printers
934	  are not exclusively non-raw CUPS queues with the complete
935	  filtering framework on the remote server, but also native
936	  IPP printers, we need to support generic driverless printers
937	  as destination. So we cannot pass on the input data
938	  unfiltered but need to filter locally. We let the cluster's
939	  PPD file emulate a PDF printer, letting the local CUPS queue
940	  of the cluster run pdftopdf and any pre-filters to turn the
941	  input into PDF and we let the implicitclass backend turn PDF
942	  into a format understood by the destination printer,
943	  supporting the 4 formats of driverless IPP printing: PDF,
944	  PWG Raster, Apple Raster, PCLm.
945
946CHANGES IN V1.23.0
947
948	- pdftops, mupdftoraster: Let pdftops call mutool directly and
949	  so that it directly outputs PostScript, eliminating the need
950	  to call the mupdftoraster and rastertops filters.
951	- mupdftoraster: Reduced the use of temporary files from 3 to
952	  just one.
953	- imagetopdf, imagetoraster, pdftopdf: Add support for
954	  print-scaling option (Issue #108, Pull request #118).
955
956CHANGES IN V1.22.6
957
958	- rastertops: Fixed PageSize settings in the PostScript output
959	  (Must be in points not in pixels).
960	- pdftops, mupdftoraster: Produce actual grayscale/monochrome
961	  PostScript (and not only instructions to print grayscale/
962	  monochrome) for jobs to be printed in grayscale/monochrome
963	  (Issue #96, Pull request #115).
964	- mupdftoraster: Fixed filter not producing output at all.
965	- Build system: ENABLE_DRIVERLESS got only defined with CUPS
966	  1.6 and newer, not with older CUPS versions (Issue #111).
967	- pdftopdf, imagetopdf, imagetoraster: Silenced compiler
968          warnings.
969	- cups-browsed, driverless: Replaced httpConnect() calls by
970	  httpConnect2() calls as the former CUPS library function is
971	  deprecated.
972	- Build system: Compile everything using the CUPS libraries
973	  with '-D_PPD_DEPRECATED=""' for the time being until the
974	  deprecated PPD API calls get replaced, to stop the flooding
975	  with PPD API deprecation warnings making more important
976	  warnings being overlooked.
977	- cups-browsed: When removing a local queue on shutdown or
978	  when DNS-SD reports the printer as disappeared check whether
979	  the local queue got overwritten by an external process as
980	  sometimes the shutdown or disappearing event comes too close
981	  for cups-browsed receiving a printer-modified notification
982	  from CUPS before (Ubuntu bug #1731417).
983
984CHANGES IN V1.22.5
985
986	- foomatic-rip: Changed Ghostscript call to count pages in a
987	  PDF file to use "runpdfbegin" and not the undocumented
988	  Ghostscript internal "pdfdict", so that it works with
989	  Ghostscript 9.27 and later (Debian bug #926576, Arch Linux
990	  bug #62251).
991
992CHANGES IN V1.22.4
993
994	- cups-browsed: Fix broken trailing space removal on
995	  "NickName" (Pull request #103).
996	- pdftops: Emit PostScript Level 2 instead of Level 3 for
997	  Brother PostScript printers as at least some of them
998	  report to support level 3 but ontly work with Level 2
999	  (Ubuntu bug #1306849, comment #42).
1000	- bannertopdf: When multiplying the page for N-up or Duplex
1001	  printing one page too much was generated (Issue #102).
1002
1003CHANGES IN V1.22.3
1004
1005	- libcupsfilters: Added error checks for processing GIF, to
1006	  avoid crashes or hangs on broken GIF files (Issues #81, #82,
1007	  Pull request #100).
1008	- cups-browsed: Added hint to the man page and configuration
1009	  file that with "DebugLogging stderr" the logging output goes
1010	  to journal or syslog if cups-browsed is running as system
1011	  service (Issue #28).
1012
1013CHANGES IN V1.22.2
1014
1015	- cups-browsed: Let distribution of jobs sent to queues with
1016	  "implicitclass" backend (usually clusters) be done by a
1017	  "job-state" CUPS notification and not by
1018	  "printer-state-changed" any more. The "job-state"
1019	  notification already contains the job ID. Before we had to
1020	  poll the job ID from CUPS via IPP which was sometimes
1021	  unreliable (Issue #97).
1022	- imagetopdf, imagetoraster, pdftopdf, libcupsfilters: Added
1023	  new page scaling options: "fill" scales the input page
1024	  (typically a photo) so that the output page (typically with
1025	  different aspect ratio) gets completely filled, aloowing for
1026	  some content of the input page getting lost. "crop-to-fit"
1027	  allows for easy printing of documents on slightly different
1028	  output page sizes (A4 <-> Letter) maintaining the size and
1029	  centering and cropping into the destination page. Thanks to
1030	  Dheeraj Yadav (dhirajyadav135 at gmail dot com) for the
1031	  patch (Pull request #92).
1032	- cups-browsed: Do not do IPP request for printer-is-shared
1033          option for remote cups queues with CUPS 2.2.x and newer
1034          (Pull request #91).
1035	- cups-browsed: Fix crash bug when reading "Cluster"
1036	  directive from configuration file (Issue #94).
1037	- driverless: Updated man page as now also Mopria and
1038	  Wi-Fi Direct printers are supported. Mentioned also
1039	  ippusbxd.
1040
1041CHANGES IN V1.22.1
1042
1043	- braille: Use sort command with LC_ALL=C for reproducibility
1044	  of the genrated files, needed for distribution packaging.
1045	- cups-browsed, driverless: When polling the printer's
1046          capabilities via get-printer-attributes IPP request for
1047          driverless printing, use the attributes "all" and
1048          "media-col-database". Without "all" some printers do not
1049          report "urf-supported" and without "media-col-database" not
1050          all paper size and marging info gets reported (Issue #22,
1051          Pull request #86, CUPS issue #5484).
1052	- braille: Document how to rework output before
1053	  embossing. Thanks to Samuel Thibault for this patch (Pull
1054	  request #90).
1055
1056CHANGES IN V1.22.0
1057
1058	- pdftopdf: Use QPDF for flattening interactive PDF forms
1059	  (Issues #2, #23, #36, Pull request #88).
1060	- pdftopdf: Fixed bug of closing temporary file prematurely
1061	  when external PDF form flattening utilities fail (Thanks to
1062	  Tobias Hoffmann for finding this, see pull request #88).
1063	- pdftoopvp: More fixes for building with Poppler 0.72
1064	  (Pull request #83, Issue #75).
1065	- pdftoraster, pdftoijs, pdftoopvp: Removed support for
1066	  Poppler 0.18 (Pull request #83).
1067	- cups-browsed: Fixed crash in applying the BrowseFilter
1068	  cups-browsed.conf directives (Debian bug #916765).
1069
1070CHANGES IN V1.21.6
1071
1072	- cups-browsed: To find out whether a DNS-SD-discovered
1073	  printer is from the local machine, use not only the flags in
1074	  the Avahi lookup result but also check the host name.
1075	- cups-browsed: When a local CUPS queue pointing to a remote
1076	  CUPS printer was removed and re-created to make it a
1077	  permanent queue, on_printer_deleted() was triggered by
1078	  cupsd's notification to re-create a lost queue. Now
1079	  on_printer_deleted() checks whether the queue is really gone
1080	  and only re-creates then (Issue #80).
1081	- cups-browsed: When updating the CUPS queues, also removed
1082	  and unregistered queues and not only created queues got
1083	  checked for HTTP timeouts, which caused crashes on shutdown
1084	  (Issue #79, Debian bug #916149).
1085	- pdftops: Use the PS interpreter of Poppler for all Apple
1086	  LaserWriter 16/600, 4/600, 12/640, 12/600, 12/660 as they
1087	  all seem to not work with Ghostscript's PS output (Issue
1088	  #76).
1089	- cups-browsed: On shutdown queues got removed even if they
1090	  still had jobs (Debian bug #908147).
1091
1092CHANGES IN V1.21.5
1093
1094	- cups-browsed: We cannot reliably determine whether a CUPS
1095	  queue is temporary, so we apply the procedure to make a
1096	  temporary queue permanent to any unshared queue (Debian bugs
1097	  #910882, #905850, #908604).
1098	- pdftoraster, pdftopdf, pdftoijs, pdftoopvp: Do not use the
1099	  Poppler-specific "GBool", "gFalse", "gTrue" any more, as
1100	  Poppler has switched to standard "bool", "false", "true" in
1101	  version 0.71.0 (Issue #69).
1102
1103CHANGES IN V1.21.4
1104
1105	- cups-browsed: Limit the number of retries for
1106	  creating a print queue when it comes to HTTP
1107	  timeouts. Number of retries given by HttpMaxRetries
1108	  directive in cups-browsed.conf. Thanks to Zdenek Dohnal for
1109	  the patch (Pull request #73, Red Hat bug #1648697).
1110	- cups-browsed: Read out current time right before setting the
1111	  timeouts. Thanks to Zdenek Dohnal for the patch (Pull
1112	  request #71, Red Hat bug #1648697).
1113	- libcupsfilters: In the PPD generator for driverless IPP
1114	  printing let "*cupsManualCopies: true" lines get added to
1115	  the PPD if printing is done in a raster format as then
1116	  pdftopdf needs to generate the copies.
1117	- pdftoraster, pdftoopvp, pdftoijs: Fix build with Poppler >=
1118	  0.70 (Issue #69, Pull request #70).
1119	- pdftopdf: Fixed printing multiple copies on driverless IPP
1120	  printers. When printing collated copies the multiple copies
1121	  got applied twice, resulting in n*n instead of n copies
1122	  (CUPS issue #5433).
1123	- pdftoraster, pdftoopvp, pdftoijs: Poppler removed memCheck
1124	  and gMemReport functions, remove appropriate calls (Issue
1125	  #62, Pull request #66).
1126
1127CHANGES IN V1.21.3
1128
1129	- foomatic-rip: Reset stdin after replacing the underlying file
1130          descriptor (Issue #58).
1131
1132CHANGES IN V1.21.2
1133
1134	- cups-browsed: Fixed freeing of literal string caused by
1135	  Coverity Scan issue fix (Debian bug #907399).
1136
1137CHANGES IN V1.21.1
1138
1139	- foomatic-rip: Fixed segmentation fault caused by wrong
1140          Coverity Scan issue fix (Issue #57, Debian bug #907026).
1141	- Build system: Require QPDF 8.1.0 or later as it is needed by
1142          bannertopdf (Issue #56).
1143
1144CHANGES IN V1.21.0
1145
1146	- libcupsfilters, cups-browsed, driverless, foomatic-rip,
1147	  parallel: Silenced warnings from newest gcc.
1148	- libcupsfilters: When generating a PPD for driverless
1149	  printing on a remote IPP printer, make pdftopdf not being
1150	  run by the local queue if the remote queue is a CUPS queue
1151	  to avoid running pdftopdf twice (CUPS Issue #5361).
1152	- libcupsfilters, cups-browsed, driverless, bannertopdf,
1153          foomatic-rip, pdftops, pdftoraster, rastertops,
1154          rastertoescpx, sys5ippprinter, beh: Fixed Coverity Scan
1155          issues. Thanks to Zdenek Dohnal (zdohnal at redhat dot com)
1156          for the tests and the patches.
1157	- bannertopdf: Switched over from using Poppler to using QPDF
1158	  for generating the PDF pages. With Poppler unstable APIs
1159	  were used which were subject to change. Thanks to Sahil
1160	  Arora for this project in the Google Summer of Code 2018
1161	  (Pull request #25).
1162	- cups-browsed: Manually defined clusters ("Cluster" directive
1163	  in cups-browsed.conf) caused cups-browsed to crash.
1164
1165CHANGES IN V1.20.4
1166
1167	- README: Added link to Issue Tracker on GitHub.
1168	- gstoraster: Removed unneeded "if"s. Thanks to Laurent
1169	  Martelli (martellilaurent at gmail dot com) for the patch
1170	  (Ghostscript bug #692705).
1171	- cups-browsed: When checking whether there is already a local
1172	  print queue with the same URI as the one of the discovered
1173	  printer, consider also as equal URI if the URIs only differ
1174	  by use of IPP or IPPS and/or use of HTTPS port 443 instead
1175	  of IPP port 631.
1176	- cups-browsed: Also upgrade from ipp: to ipps: when the ipps:
1177	  URI is on HTTPS port 443 instead of IPP port 631. This is
1178	  common on IPP network printers.
1179	- pdftopdf: Removed support for hardware-implemented reversing
1180	  of page order in PostScript printers. It was once not
1181	  correctly implemented in cups-filters and second, such
1182	  printers are extremely rare, and on Gutenprint PPDs with
1183	  pseudo OutputOrder option hardware reversing was even
1184	  wrongly assumed (Issue #47).
1185	- pdftopdf: Accept option "output-order=normal/reverse" for
1186	  reversing page order (Issue #47) and also "page-delivery=
1187	  same-order/reverse-order" (CUPS Issue #5340).
1188	- libcupsfilters: Let the PPD generator add "*PageStackOrder
1189	  ..."  lines to the choices of the "OutputBin" option, to
1190	  mark which output bins need the pages printed in reverse
1191	  order (Issue #47).
1192	- libcupsfilters: Let the PPD generator correctly create a
1193	  "*DefaultOutputOrder: ..."  entry, depending on whether the
1194	  paper is put out face-up or face-down in the default output
1195	  bin (Issue #47).
1196	- libcupsfilters: Fixed human-readable name of the OutputBin
1197	  option in the PPD generator.
1198	- pdftoopvp: Silence compiler warning (Issue #42).
1199	- cups-browsed: If the user modifies/overwrites a print queue
1200	  created by cups-browsed, it will now not only be
1201	  automatically released from the control of cups-browsed, but
1202	  we also create a replacement for our generated local queue
1203	  under a new name.
1204	- cups-browsed: Make URIS for using the implicitclass backend
1205	  correctly working also with queue names containing an '@'
1206	  character.
1207	- braille: Strengthen error checking (Pull request #41).
1208	- braille: Index: Replace bogus characters with space (Pull
1209          request #41).
1210	- braille: Add print and braille page number options (Pull
1211          request #41).
1212	- braille: Index: Use standard duplex cups option (Pull
1213          request #41).
1214	- cups-browsed: Moved auto-generation of PPD file for IPP
1215	  network printers from create_remote_printer_entry()
1216	  function to update_cups_queues(). This allows re-creating
1217	  accidentally removed or overwritten local queues without
1218	  losing the PPD file.
1219	- braille: Add option to pick hyphenation rule according to
1220	  current locale and make it the default for second
1221	  translation table. Thanks to Samuel Thibault for this patch
1222	  (Pull request #38 and #39).
1223	- braille: Remove generated defs on "make clean". Thanks to
1224	  Samuel Thibault for this patch (Pull request #38).
1225	- braille: Turn non-breakable spaces to spaces. Thanks to
1226	  Samuel Thibault for this patch (Pull request #38 and #39).
1227	- braille: Fix character encoding when extracting text. When
1228	  extracing text from a zip file or a pdf, the resulting text
1229	  is always utf-8 independently of the original locale, so we
1230	  need to force that. Thanks to Samuel Thibault for this patch
1231	  (Pull request #38).
1232	- braille: Warn when no text translation was selected in case
1233	  the user didn't notice. Thanks to Samuel Thibault for this
1234	  patch (Pull request #37).
1235	- braille: Fix spurious spacing after last Form-Feed (Pull
1236	  request #45).
1237
1238CHANGES IN V1.20.3
1239
1240	- braille: Do not remove read permission on cups-brf. Thanks
1241	  to Samuel Thibault for this patch (Pull request #32).
1242	- braille: Get braille table descriptions from liblouis
1243	  metadata. Thanks to Samuel Thibault for this patch (Pull
1244	  request #31).
1245	- braille: Select liblouis tables based on metadata before
1246	  using file names. Thanks to Samuel Thibault for this patch
1247	  (Pull request #30).
1248	- cups-browsed: The new method of identifying remote CUPS
1249	  queues via the "printer-type" TXT record field does not work
1250	  for printers discovered by legacy CUPS broadcast (CUPS 1.5.x
1251	  or older). Now consider also printers without TXT record
1252	  (not discovered via DNS-SD) as remote CUPS queues (Issue
1253	  #34).
1254	- gstoraster: Improved detection whether input is PostScript
1255	  or PDF by skipping over possible headers. Thanks to Rod
1256	  Schmidt (schmidtrod at q dot com) for the patch.
1257
1258CHANGES IN V1.20.2
1259
1260	- cups-browsed: If the user modifies/overwrites a print queue
1261	  created by cups-browsed, it will now automatically released
1262	  from the control of cups-browsed, so the modified queue does
1263	  not get removed by cups-browsed on shutdown.  (Ubuntu bug
1264	  #1731417).
1265	- cups-browsed: The configuration setting
1266	  "CreateIPPPrinterQueues LocalOnly" suppressed also the
1267	  automatic generation of local queues for remote CUPS
1268	  printers whereas this option is only intended for physical
1269	  IPP printers.
1270	- cups-browsed: Identify remote CUPS queues by the
1271	  "printer-type" TXT record entry and not by the
1272	  "ipp(s)://<host>/printers/<name>" URIs, there are also IPP
1273	  network printers with such URIs (HP LaserJet Professional
1274	  M1212nf MFP in Ubuntu bug #1731417).
1275	- .gitignore: Added filter/braille/filters/brftopagedbrf
1276	- cups-browsed, foomatic-rip: Fixed several typos. Thanks to
1277	  Didier Raboud for the patches.
1278
1279CHANGES IN V1.20.1
1280
1281	- libcupsfilters: Silenced warning when using CUPS < 2.x by
1282	  eliminating the use of a recently introduced CUPS library
1283	  function (Bugzilla bug #1421).
1284	- braille: Fix some missing options on indexv4. Thanks to
1285	  Samuel Thibault for this patch (Pull request #21).
1286	- braille: Fix disabling margins on indexv4 in graphic
1287          mode. Thanks to Samuel Thibault for this patch (Pull request
1288          #20).
1289	- braille: Fix installation of brftopagedbrf. Thanks to Samuel
1290          Thibault for this patch (Pull request #18, Issue #17).
1291	- cups-browsed: Fixed crash when CUPS reports a print queue
1292          without "device-uri" attribute when cups-browsed polls a
1293          list of local CUPS queues (Issue #16).
1294
1295CHANGES IN V1.20.0
1296
1297	- libcupsfilters: Let the PPD generator prefer the English
1298	  translation file from CUPS for the human-readable strings in
1299	  the PPD files.
1300	- libcupsfilters: The PPD generator lists all page sizes with
1301	  human-readable names now, including proprietary names of the
1302	  printer.
1303	- cups-browsed, driverless: Fixed get-printer-attributes call
1304	  on driverless printers for generating the PPD, explicitly
1305	  requesting the media-col-database attribute as otherwise
1306	  borderless page sizes do not appear.
1307	- libcupsfilters: Fixed loading option/choice strings lists
1308	  from driverless printers for PPD file generation. Especially
1309	  proprietary media types appear correctly now.
1310	- libcupsfilters: Completed color space support in the PPD
1311	  generator: Added DeviceGray/RGB/CMYK, default to 8 bit for
1312	  SRGB and to 16 bit for AdobeRGB, avoid duplicate listings of
1313	  the same color space.
1314
1315CHANGES IN V1.19.0
1316
1317	- libcupsfilters: Let the PPD generator add the options "Print
1318	  Optimization", "Print Rendering Intent" and "Print Scaling"
1319	  if appropriate IPP attributes are found.
1320	- libcupsfilters: Let the PPD generator read out the maximum
1321	  of info about color spaces and this way not only reliably
1322	  the correct choices are added to the ColorModel option but
1323	  also the maximum supported bit depth (8 or 16 bit) is used.
1324	- libcupsfilters: Overtaken new features from CUPS' PPD
1325	  generator: Presets, Finishing Templates, and extraction of
1326	  media sizes from "media-col-database"
1327	- libcupsfilters: Improvements on header of generated PPDs:
1328	  use cups-filters version number, "drvless.ppd" PCFileName,
1329	  APSupplies and cupsChargeInfoURI from CUPS.
1330	- libcupsfilters: Let the PPD generator use the IPP string
1331	  tables in the translation files of CUPS 2.3.x or newer
1332	  (English strings only). Let all options in the PPD have
1333	  human-readable option and choice names. In case of CUPS
1334	  2.2.x or older (or if the CUPS translation are missing) we
1335	  fall back to internal tables.
1336	- cups-browsed: Improved debug output when checking IPP
1337	  attributes of IPP printers.
1338	- .gitignore: Ignore also core files.
1339	- cups-browsed: Support use of PPD files generated by CUPS for
1340	  IPP Printers. Works only if the the local queue created by
1341	  cups-browsed replaces a temporary queue from CUPS.
1342	  Configurable via "UseCUPSGeneratedPPDs" directive in
1343	  cups-browsed.conf.
1344
1345CHANGES IN V1.18.0
1346
1347	- braille: Add support for page-ranges option. Thanks to
1348          Samuel Thibault for this patch (Pull request #12).
1349	- braille: Fix supporting docx and LO file names with
1350          spaces. Thanks to Samuel Thibault for this patch (Pull
1351          request #11).
1352	- .gitignore: Updated and cleaned up.
1353	- Build system: Make sure that "make dist" always includes all
1354	  files of the repository, plus the files generated by
1355	  ./autogen.sh, independent of the system configuration and
1356	  the used ./configure options.
1357	- pdftoijs, pdftoopvp: Build pdftoijs and pdftoopvp only on
1358	  demand (via "--enable-ijs" and "--enable-opvp" on the
1359	  ./configure command line). There are actually no known
1360	  printer drivers using these filters. If no one complains
1361	  about the missing filters they will get completely removed.
1362	- Build system: Set default path for pdftops to
1363	  /usr/bin/pdftops also for cross-compiling (Bug #1417).
1364	- cups-browsed: Set "printer-location" as an attribute and not
1365	  as an option when creating/updating a CUPS queue (Bug
1366	  #1413).
1367	- braille: Fix handling non-printable characters in BRF
1368	  files. Thanks to Samuel Thibault for this patch.
1369	- braille: Fix printing backslashes in BRF files. Thanks to
1370          Samuel Thibault for this patch.
1371	- braille: use application/vnd.cups-brf instead of
1372	  text/vnd.cups-brf. Thanks to Samuel Thibault for this patch.
1373	- braille: Make sure liblouis emits pure BRF output. Thanks to
1374	  Samuel Thibault for this patch.
1375	- braille: Spaces at the head of lines were not getting
1376	  embossed, because bash would eat them in the read
1377	  command. IFS allows to avoid the issue. Thanks to Samuel
1378	  Thibault for this patch.
1379	- gstoraster: Emit proper error message if Ghostscript is
1380	  missing.  Thanks to Peter De Wachter (pdewacht at gmail dot
1381	  com) for the patch (Bug #1415).
1382	- braille: Old bash does not like quotes, like in '$(("123" +
1383	  0))'. Removed unneeded quotes. Thanks to Samuel Thibault for
1384	  this patch.
1385	- braille: Index V5 embossers are compatible with the V4
1386	  protocol so we do not need driver changes, we just need to
1387	  advertise the support. Thanks to Samuel Thibault for this
1388	  patch.
1389
1390CHANGES IN V1.17.9
1391
1392	- cups-browsed: Applying option defaults from the
1393	  DefaultOptions directive in cups-browsed.conf got
1394	  lost. Re-introduced it (Bug #1414).
1395	- cups-browsed: Get printer-location field from remote
1396	  printers.  Thanks to Marek Kasik for the patch (Bug #1413).
1397
1398CHANGES IN V1.17.8
1399
1400	- foomatic-rip: Change execution of renderer thread to fail
1401	  whenever any of its individual sub-comands fails. Thanks to
1402	  LUUM (luum at chromium dot org) for the patch (Bug #1412).
1403	- foomatic-rip: Parent process now ignores SIGPIPE calls from
1404	  upstream/downstream CUPS filters, per
1405	  https://www.cups.org/doc/api-filter.html, while correctly
1406	  noting child process failures and exiting
1407	  accordingly. Thanks to LUUM (luum at chromium dot org) for
1408	  the patch (Bug #1412).
1409	- Build system: Fixed typo which broke the
1410	  "--enable-gs-ps2write" ./configure command line option (Bug
1411	  #1410).
1412
1413CHANGES IN V1.17.7
1414
1415	- braille: Add a mirror option for graphical output. Thanks to
1416          Samuel Thibault for this patch.
1417	- braille: Rename the internal cups name of the Resize option
1418	  to the standard well-known and well-documented fitplot
1419	  option. Thanks to Samuel Thibault for this patch.
1420	- braille: Add support for margins in graphical mode,
1421	  defaulting them to 15 points (a bit more than 5mm). Thanks
1422	  to Samuel Thibault for this patch.
1423	- braille: Updated French translation. Thanks to Samuel
1424	  Thibault for this patch.
1425	- braille: Add a PPD which generates UBRL output, i.e. Braille
1426	  expressed in Unicode. This is not useful for actual
1427	  embossers, but very convenient to check output to be
1428	  embossed without wasting paper. Thanks to Samuel Thibault
1429	  for this patch.
1430	- braille: Add virtual BRF backend for generating
1431	  ready-to-emboss BRF files with CUPS, similarly to the
1432	  cups-pdf backend. Thanks to Samuel Thibault for this patch.
1433	- braille: Some tools seem to emit true/false instead of
1434	  True/False, so let us cope with it. Thanks to Samuel
1435	  Thibault for this patch.
1436	- braille: "make uninstall" did not remove all the
1437	  links. Thanks to Samuel Thibault for this patch.
1438	- braille: Add support for embossing MusicXML files, through
1439	  the FreeDots transcriptor. Thanks to Samuel Thibault for
1440	  this patch.
1441	- braille: Add proper support for hardware margins on braille
1442	  embossers. Thanks to Samuel Thibault for this patch.
1443	- braille: Fix the disabling of the text margins in Index
1444	  graphics mode. Thanks to Samuel Thibault for this patch.
1445	- braille: Support for direct, structured embossing of XML and
1446	  XML-based file formats (like odt, docx, ...). Thanks to
1447	  Samuel Thibault for this patch.
1448
1449CHANGES IN V1.17.6
1450
1451	- braille: Embossers can only emboss integer numbers of 2x4
1452          cells. Thanks to Samuel Thibault for this patch.
1453	- braille: In Index graphical mode we need to disable the text
1454	  margins, since they come in earlier on the way to
1455	  there. Thanks to Samuel Thibault for this patch.
1456	- braille: Also, we should always add a 1.6mm margin for
1457	  taking into account the width of dots. Thanks to Samuel
1458	  Thibault for this patch.
1459
1460CHANGES IN V1.17.5
1461
1462	- libcupsfilters: In the PPD generator for driverless printing
1463	  renamed the "print-quality" option back to
1464	  "cupsPrintQuality" as the support for this option got fixed
1465	  in CUPS (CUPS issue #5090).
1466	- braille: Improvements on the braille support for bitmap
1467          images: Moves the graphical dot distance option to the image
1468          conversion group, add an option to avoid image resize, and
1469          make the rotation option easier by proposing to just fit
1470          paper instead of fitting portrait or landscape. Thanks to
1471          Samuel Thibault for this patch.
1472	- braille: Support for embossing vector images as braille.
1473	  Thanks to Samuel Thibault for this patch.
1474	- braille: Fix liblouis1.defs installation. Thanks to Samuel
1475	  Thibault for this fix.
1476
1477CHANGES IN V1.17.4
1478
1479	- pdftopdf: If the input PDF file contains an interactive
1480	  form, flatten it to static PDF so that further manipulation,
1481	  like scaling, number-up, ... do not let the filled for
1482	  content getting lost. This is implemented by using the
1483	  pdftocairo utility of Poppler and if this fails Ghostscript
1484	  (9.22 or later recommended). This will probably replaced by
1485	  a QPDF-based solution later. Thanks to Tobias Hoffmann for
1486	  the QPDF-based detection of PDF forms (Bug #1315, Ubuntu bug
1487	  #1564249).
1488
1489CHANGES IN V1.17.3
1490
1491	- bannertopdf: Make it working also with Poppler 0.58.0 and
1492	  newer (Bug #1408).
1493	- gstoraster, pdftops, foomatic-rip: Added "-dShowAcroForm" to
1494	  all Ghostscript command lines where the input data format
1495	  can be PDF.  With this and the fix of Ghostscript bug
1496	  #698461 most filled PDF forms should be rendered correctly
1497	  by Ghostscript now.
1498	- libcupsfilters: Do not check maximum resolutions of
1499	  raster-based PDLs, as implementation was incorrect and
1500	  reliability of PDLs is more important than maximum
1501	  resolution.
1502
1503CHANGES IN V1.17.2
1504
1505	- rastertopdf: Fixed outstanding bug in PCLm with JPEG (DCT)
1506	  compression. Now PCLm support is completely working.
1507
1508CHANGES IN V1.17.1
1509
1510	- libcupsfilters: Added direct PNG printing to the PPD
1511	  generator, the one of CUPS has it, too.
1512	- libcupsfilters: In the PPD file generator renamed the option
1513	  "cupsPrintQuality" into the IPP name "print-quality" as CUPS
1514	  does not update the "print-quality=4" entry in the filter
1515	  command line based on the setting of "cupsPrintQuality"
1516	  (CUPS issue #5090).
1517	- libcupsfilters: Completely redone the way how to determine
1518	  the resolutions to use for the default resolution and print
1519	  quality option in the PPDs generated for IPP
1520	  printers. Resolution lists from IPP attributes are now read
1521	  into sorted, duplicate-free lists with wrong resolutions
1522	  removed or fixed. Resolutions actually used are the common
1523	  ones between the supported PDLs, PDls with inferior maximum
1524	  resolution or with broken resolution list are skipped
1525	  (Debian bug #868360, Ubuntu bug #1712019, CUPS issue #5088,
1526	  CUPS issue #5091).
1527	- rastertopdf: Prefer RLE compression instead of Flate as
1528	  there are HP printers where Flate is buggy.
1529	- Build system: Fixed help mesage for "--enable-driverless"
1530	  configure option (Bug #1405).
1531
1532CHANGES IN V1.17.0
1533
1534	- rastertopdf, rastertopclm, driverless, cups-browsed,
1535	  libcupsfilters: Added support for the PCLm output format for
1536	  driverless printing on printers using Wi-Fi Direct and other
1537	  driverless printing standards.
1538	  printers. This is the Google Summer of Code 2017 project of
1539	  Sahil Arora (sahilarora dot 535 at gmail dot com). Thank you
1540	  very much for your great work!  The PCLm support requires
1541	  QPDF 7.0.0 or later.
1542
1543CHANGES IN V1.16.4
1544
1545	- Build system: Switched over to C11 standard with GNU
1546          extensions (-std=gnu11).
1547	- Build system: Removed -pedantic flag as it is only needed
1548          for compatibility with commercial compilers like the ones of
1549          Windows (and we use GNU extensions anyway).
1550	- libfontembed, texttopdf: reverted removal of anonymous
1551          union.
1552
1553CHANGES IN V1.16.3
1554
1555	- libfontembed: Reverted unneeded soname change.
1556
1557CHANGES IN V1.16.2
1558
1559	- README: Minimum CUPS requirement of cups-filters is CUPS
1560	  1.4.x.  It does not build with earlier CUPS versions (Bug
1561	  #993).
1562	- driverless, foomatic-rip: Create relative symbolic links.
1563	- All C/C++ files: Silenced all compiler warnings, at least
1564	  the ones appearing when building on Ubuntu Linux 17.10 with
1565	  GCC 7.1.0.
1566	- README: Updated the introduction section to reflect the
1567	  current functionality of cups-filters, and the build
1568	  requirements for the Poppler-based filters (C++11: Bug
1569	  #1404, Build configuration of Poppler: Bug #1257). Thanks to
1570	  Roland Hieber (r dot hieber at pengutronix dot de) to find
1571	  out about this.
1572	- pdftoopvp, bannertopdf, pdftoraster: Build with C++11
1573	  standard as some features of this standard are needed by
1574	  these filters (or by Poppler). Thanks to Roland Hieber (r
1575	  dot hieber at pengutronix dot de) for the patch (Bug #1404).
1576
1577CHANGES IN V1.16.1
1578
1579	- cups-browsed: Make timeouts for HTTP access to the local
1580	  CUPS daemon and remote IPP printers configurable. Thanks to
1581	  Cedric Dufour (cedric dot dufour at idiap dot ch) for the
1582	  patch (Bug #1387, Debian bug #852436).
1583	- texttopdf: Allow bold and underline formatting to be used
1584	  together when using "prettyprint". Thanks to Michael Moran
1585	  (vampm at comcast dot net) for the patch.
1586	- texttopdf: Allow to alter margins, and chars/lines per Inch
1587	  when using "prettyprint". Thanks to Michael Moran (vampm at
1588	  comcast dot net) for the patch.
1589	- texttopdf: When "prettyprint" is used, do not drop out of
1590	  C/shell comment mode too early. Thanks to Michael Moran
1591	  (vampm at comcast dot net) for the patch.
1592	- cups-browsed: Additional NULL checks for description and
1593          location.
1594	- cups-browsed: Fixed crash which happens when using
1595	  BrowsePoll (Debian bug #723835).
1596
1597CHANGES IN V1.16.0
1598
1599	- cups-browsed: Let elements in arrays get stacked up in the
1600	  order they are added, before, they were in the order how
1601	  they are positioned in memory. This especially led to a
1602	  random order of printer cluster definitions and of
1603	  command-line-supplied configuration options.
1604	- cups-browsed: On shutdown not all locally created queues got
1605          deleted.
1606	- cups-browsed: Added support for manual definition of
1607	  load-balancing printer clusters via the "Cluster" directive
1608	  in cups-browsed.conf.
1609
1610CHANGES IN V1.15.0
1611
1612	- cups-browsed: Removed the function to compare printer entries
1613	  for sorting the printer entry list. This led to corruption
1614	  of the list and so to crashes.
1615	- cups-browsed: Fixed crashes when many printers (especially
1616	  all printers of a load-balanced cluster) are removed at once.
1617	- cups-browsed: Log the full list of handled remote printers
1618	  whenever one is added or removed.
1619	- cups-browsed: Renamed the handle_cups_queues() function to
1620	  update_cups_queues() to better reflect what it is doing.
1621	- cups-browsed: When clustering remote CUPS printers together
1622	  do not call them duplicates but slaves asigned to a master.
1623	- cups-browsed: Log the error if the network interface name of
1624	  a DNS-SD event could not be determined.
1625	- cups-browsed: Simplified printer entry removal procedure.
1626	- cups-browsed: Log memeber printer list of a printer cluster
1627	  (implicit class) when a member printer is added or removed.
1628	- cups-browsed: Removed superfluous (and not correctly
1629          working) duplicate counter from the remote printer entry
1630          data structure.
1631	- cups-browsed: Add "AutoClustering" directive to
1632	  cups-browsed.conf to turn on and off automatically
1633	  clustering equally named local print queues which point to
1634	  remote CUPS printers. When automatic clustering is turned
1635	  off, queue name clashes are prevented by adding "@<server
1636	  name>" to local queue names based on the remote queue name
1637	  or on make and model.
1638	- cups-browsed: Skip callback functions and the CUPS queue
1639	  creation/update/removal loop when cups-browsed is terminated
1640	  by a SIGTERM signal. This avoids hanging on shutdown. Thanks
1641	  to Edgar Fuss (ef at math dot uni-bonn dot de, Bug #1402).
1642	- libcupsfilters: Added some fallbacks for incorrect
1643	  resolution IPP attributes on IPP network printers (Debian
1644	  bug #868360).
1645	- pdftoopvp: Added missing "#include <math.h>" needed for
1646	  cross-compiling for arm-v7a-linux-gnueabi (Bug #1232).
1647	- cups-browsed: Prevent the creation of two remote printer
1648	  entries for two IPP network printers or an IPP network
1649	  printer and a remote CUPS printer with the same local queue
1650	  name. This could easily happen with make/model-based naming.
1651	- cups-browsed: Added the possibility to optionally not
1652	  create local queues for remote printers for which CUPS
1653	  (from 2.2.x on) auto-creates queues by itself (DNS-SD
1654	  advertised driverless printers).
1655	- cups-browsed: Removed repeated code for clean-up when
1656	  generate_local_queue() function fails.
1657	- cups-browsed: Take care of CUPS' temporary queues. Do not
1658	  consider them when checking whether a queue with the same
1659	  name as the one we are creating already exists and make
1660	  temporary queues permanent (or remove them) before
1661	  overwriting them with our local queue.
1662	- cups-browsed: Make the naming scheme for locally created
1663	  print queue configurable, especially allow for naming based
1664	  on the DNS-SD service name (now default) as this is the same
1665	  scheme as CUPS uses for its temporary queues. This way we
1666	  prevent CUPS creating temporary queues when cups-browsed is
1667	  already creating a queue.
1668	- cups-browsed: Do not add "APRemoteQueueID" keyword to the
1669	  local queue's PPD file if the queue is for an IPP network
1670	  printer.
1671	- cups-browsed: Skip multiple browse entries for the same
1672	  printer with interface alias addresses.  Thanks to Edgar
1673	  Fuss (ef at math dot uni-bonn dot de, Bug #1399).
1674	- cups-browsed: Improved support for Description (Info) and
1675	  Location fields of remote CUPS queues. Thanks to Edgar Fuss
1676	  (ef at math dot uni-bonn dot de, Bug #1398).
1677	- cups-browsed: Renamed variable names for better code
1678	  readability.  Thanks to Edgar Fuss (ef at math dot uni-bonn
1679	  dot de, Bug #1398).
1680	- cups-browsed: Additional NULL checks in the
1681	  create_local_queue() function. Thanks to Edgar Fuss (ef at
1682	  math dot uni-bonn dot de, Bug #1398).
1683
1684CHANGES IN V1.14.1
1685
1686	- cups-browsed: Do correct removal of printer entry handling
1687	  duplicates correctly also when a legacy CUPS-broadcasted
1688	  printer disappears or a printer remaining from the last
1689	  session does not appear again.
1690	- cups-browsed: Use getline() instead of fgets() to read saved
1691	  option settings. This is less crash-prone (Ubuntu bug
1692	  #1658833).
1693	- cups-browsed: Improved error logging when saving option
1694          settings.
1695	- cups-browsed: Added NULL checks for generate_local_queue()
1696	  and create_local_queue() functions.
1697	- cups-browsed: When accessing local CUPS queues use always
1698	  the correct port of the CUPS daemon we are attached to.
1699	- cups-browsed: Check whether a connection to the local CUPS
1700	  daemon actually happened before using it (Ubuntu bug
1701	  #1644049).
1702	- cups-browsed: Set unused fields of printer record to NULL
1703	  when tranfering data from the record of a duplicate printer
1704	  to the record of a disappeared one.
1705	- cups-browsed: Simplify removal of all queues on shutdown or
1706	  stop of Avahi.
1707	- cups-browsed: When creating a record for a discovered
1708	  printer set it all zero before filling it in, to assure
1709	  that no field is in an undefined state.
1710	- cups-browsed: All functions which are called via Glib
1711	  functions or otherwise event-triggered log now in which
1712	  thread they are running. This way one can see whether
1713	  problems can be caused by concurrent access to global
1714	  resources.
1715	- cups-browsed: Do not check whether the DNS-SD event is from
1716	  the local machine in the browse_callback() function. We
1717	  cannot check the port here.
1718	- cups-browsed: Added more NULL checks to Avahi callback
1719          functions.
1720	- cups-browsed: Added NULL check to avoid crashes in the Avahi
1721	  resolver callback (Ubuntu bug #1696967).
1722	- libcupsfilters: Let PPD generator do case-insensitive
1723	  comparisons for PWG Raster color spaces, as some printers
1724	  (Epson) do not use the standard-conforming all-lowercase
1725	  form for them (CUPS Issue #4998).
1726
1727CHANGES IN V1.14.0
1728
1729	- cups-browsed: When a printer is discovered via DNS-SD on the
1730	  "lo" (loopback) interface the printer is not reliably
1731	  accessible through the reported host name (which is the
1732	  network host name of the local machine). Until this problem
1733	  is fixed in Avahi, we create queues for such printers with a
1734	  URI based on the IP address. This is a workaround until
1735	  Avahi fully supports the "lo" interface.
1736	- cups-browsed: Added new setting "LocalOnly" for the
1737          CreateIPPPrinterQueues in cups-browsed.conf. With this new
1738          setting (which is the default from now on) only for local
1739          printers made available as IPP printers (like IPP-over-USB
1740          printers with ippusbxd) queues are auto-created. With this
1741          we can follow the common standard of distributions where USB
1742          printers are automatically set up and network printers not.
1743	- cups-browsed: Fixes and improvements in comments and debug
1744	  messages: 1. Bonjour -> DNS-SD; 2. When a remote CUPS class
1745	  is discovered, tell that it is a class; 3. Show network
1746	  interface and IPv4/IPv6 when a DNS-Sd service appears or
1747	  disappears.
1748	- cups-browsed: Added ./configure script option
1749	  "--enable-auto-setup-driverless" to let cups-browsed
1750	  automatically set up IPP network printers by default.
1751
1752CHANGES IN V1.13.5
1753
1754	- foomatic-rip: When called via the utility cupsfilter from
1755          CUPS, foomatic-rip was not able to read the PPD file with
1756          the file name supplied as environment variable PPD (Bug
1757          #1388).
1758	- driverless: Improved error message output.
1759	- libcupsfilters: Fixed error handling of the PPD file
1760	  generator for driverless printing, so that callers get
1761	  decent error messages.
1762	- libcupsfilters: Do not generate a PPD file where the only
1763	  output data format is JPEG, as JPEG does not support
1764	  multi-page documents.
1765	- libcupsfilters: Let PPD generator skip broken page size
1766	  records and add warnings for debugging to the PPD.
1767	- libcupsfilters: Updated PPD generator to match with the
1768	  current GIT state of the one of CUPS.
1769	- braille: Automatically select a table according to the
1770	  current locale.
1771	- braille: Update for liblouis table list.
1772	- braille: Added support for text margins.
1773	- cups-browsed: When creating a local queue for a remote CUPS
1774	  printer, add the line '*APRemoteQueueID: ""' to the PPD file
1775	  so that CUPS sets the CUPS_PRINTER_REMOTE bit for the
1776	  printer type of the local queue (Bug #1386).
1777
1778CHANGES IN V1.13.4
1779
1780	- libcupsfilters: Let PPD generator for driverless printing
1781	  not error out when there is no urf-supported or
1782	  pwg-raster-document-resolution-supported IPP attribute,
1783	  simply accept the default resolution also from the
1784	  printer-resolution-default attribute or set a default value
1785	  of 300 dpi to get a working PPD file.
1786	- cups-browsed: Do not use deprecated names for IPP status
1787	  constants
1788	- cups-browsed: Corrected determination whether an IPP status
1789	  is an error, to avoid "Unable to create/modify CUPS queue
1790	  (Success)" and infinite repetition of a succeeded operation
1791	  (Debian bug #852436).
1792
1793CHANGES IN V1.13.3
1794
1795	- libcupsfilters: When auto-generating PPD files added support
1796	  for passing through JPEG input to printers which understand
1797	  JPEG. This is also done in CUPS-generated PPDs (Debian bug
1798	  #851499).
1799	- libcupsfilters: Added the "output-bin" option support from
1800	  CUPS' PPD generator to our PPD generator (CUPS Issue #4938).
1801	- cups-browsed: Make support for printers with IPv6 IP address
1802	  work. Both link-local and regular addresses work.
1803
1804CHANGES IN V1.13.2
1805
1806	- cupsfilters.drv: Corrected cupsFilter entry for the "Generic
1807	  IPP Everywhere Printer".
1808	- driverless: Fixes on the man page (Debian bug #849075).
1809	- driverless: Do not error-exit (non-zero status) when run by
1810	  CUPS as backend or PPD generator when no driverless printer
1811	  is found or Avahi not running. When run from thr command
1812	  line, exit status is the same as of ippfind.
1813	- imagetoraster: Removed (incomplete) PWG Raster support. For
1814	  PWG Raster output we let the rastertopwg filter from CUPS do
1815	  the finalization (mainly adding white pixels at the borders
1816	  to get a full-page bitmap).
1817	- imagetoraster: Fixed several bugs in the calculation of the
1818          page geometry (Debian bug #849380).
1819	- libcupsfilters: If the IPP-polled printer has the
1820	  "sides-supported" attribute, determine the need of a
1821	  "Duplex" option solely whether the attribute has a
1822	  "two-sided-long-edge" choice and ignore the "duplex"
1823	  parameter of the ppdCreateFromIPP() function call. This lets
1824	  the more precise information coming from the IPP query
1825	  always be preferred against information from the Bonjour
1826	  record.
1827	- driverless: When listing printers let the device ID contain
1828	  "AppleRaster" (for Apple Raster printers) and "PWGRaster"
1829	  (for IPP Everywhere printers) in the "CMD" field.
1830	- driverless: Added "-T 3" to the ippfind command line. This
1831	  makes ippfind search the Bonjour broadcasts for up to 3
1832	  seconds when searching for IPP printers, raising the
1833	  reliability in finding all of them (Debian bug #848712).
1834
1835CHANGES IN V1.13.1
1836
1837	- cups-browsed: Avoid erroring out when restarting after a
1838	  crash (with generated queues not deleted due to the crash)
1839	  and the configuration option
1840	  CreateRemoteCUPSPrinterQueues=No being set.
1841	- cups-browsed: If CUPS is stopped while cups-browsed is
1842          running and there are queue for IPP network printers (not
1843          remote CUPS queues) on restart of CUPS the still existing
1844          local CUPS queue is not correctly re-connected with
1845          cups-browsed and therefore gets removed after a
1846          timeout. This should be fixed after a clean-up of
1847          re-connecting with remaining queues from a previous session
1848          (Debian bug #848223).
1849	- cups-browsed: Generated queues did not get removed on
1850          shutdown (Debian bug #848167).
1851	- libcupsfilters: Let PPD generator for driverless printing
1852	  suppress page sizes which the printer reports more than
1853	  once (CUPS Issue #4933).
1854	- driverless, libcupsfilters: Make "driverless list" output
1855	  and output of driverless as CUPS backend in discovery mode
1856	  add the word "driverless" to its output, to make it easier
1857	  to set up driverless printers with printer setup tools.
1858	  Made the NickName of the generated PPDs also match with the
1859	  "driverless list" output.
1860
1861CHANGES IN V1.13.0
1862
1863	- cups-browsed: Use the httpGetAddr() only with CUPS 2.0.x or
1864	  newer, as older CUPS versions do not provide it (Bug #1381).
1865	- cups-browsed: Minor corrections in the handling of the data
1866	  records of the discovered printers.
1867	- rastertopdf, urftopdf: As with libcupsimage from CUPS 2.2.2
1868	  on rastertopdf also understands Apple Raster and much better
1869	  than urftopdf does, use rastertopdf for Apple Raster
1870	  (image/urf) input files then. Also allow for manually
1871	  choosing by the ./configure command line.
1872	- driverless: Added a CUPS backend mode to the driverless
1873	  utility. Running as a CUPS backend in discovery mode it
1874	  lists the IPP URIs of the suitable printers in printer setup
1875	  tools and in "lpinfo -v", as conneting via IPP is required
1876	  for driverless printing.
1877
1878CHANGES IN V1.12.0
1879
1880	- cups-browsed: Added new "CreateRemoteCUPSPrinterQueues"
1881	  directive to cups-browsed.conf, which allows to decide
1882	  whether to auto-create local print queues for shared CUPS
1883	  queues on remote machines. This way one can also set up
1884	  servers which only create queues for IPP network printers.
1885	- driverless: Added new /usr/lib/cups/driver/driverless
1886	  utility to make CUPS auto-generate PPD files for printers
1887	  designed for driverless use (IPP Everywhere, Apple Raster)
1888	  when they are set up with a printer setup tool. This gives
1889	  transparency to set up these printers with legacy printer
1890	  setup tools. This utility is also linked to /ustr/bin to
1891	  manually generate PPDs via command line.
1892	- libcupsfilters, cups-browsed: Moved the PPD generator for
1893	  IPP network printers from cups-browsed to libcupsfilters, so
1894	  that it can also be used by other utilities.
1895	- cups-browsed: When auto-generating a PPD set the cost values
1896	  in the filter lines to give the highest priority to PDF,
1897	  then PWG Raster, Apple Raster, PCL-XL, PostScript, PCL 5c/e.
1898	- cups-browsed: Synced the PPD generator with the one of CUPS,
1899	  giving the best possible support for IPP Everywhere and
1900	  AirPrint printers. Especially support for more media types
1901	  and for finishing units got added. Also support for more
1902	  different ways to represent the printer capabilities via
1903	  IPP attributes got added.
1904	- cups-browsed: Added support for auto setup of IPP printers
1905	  understanding the Apple Raster input data format (.urf, on
1906	  AirPrint printers), only if CUPS 2.2.2 is used, which can
1907	  generate this format via its rastertopwg filter.
1908	- cups-browsed: Added new "NewIPPPrinterQueuesShared"
1909	  directive to cups-browsed.conf, which allows to decide
1910	  whether the auto-created local print queue for a newly
1911	  discovered IPP network printer will be shared or not. For
1912	  printers discovered earlier, cups-browsed remembers the
1913	  previous setting.
1914	- cups-browsed: If a user changes the printer-is-shared bit of
1915	  an auto-created print queue for an IPP network printer (not
1916	  for a remote CUPS queue), record this fact and recover the
1917	  change when creating this queue in the next session.
1918	- cups-browsed: For automatic creation of print queues for IPP
1919	  network printers also allow only creating queues for IPP
1920	  Everywhere printers, only for Apple Raster printers, or for
1921	  both printer types designed for driverless printing and not
1922	  only for all suitable printers, configurable via the
1923	  CreateIPPPrinterQueues directive in cups-browsed.conf.
1924
1925CHANGES IN V1.11.6
1926
1927	- pdftops: Do not default to simply "pdftops" when calling the
1928	  Poppler pdftops utility, as the $PATH of CUPS when running
1929	  filters/backends starts with /usr/lib/cups/filter/ and then
1930	  pdftops would call itself (Bug #1380).
1931
1932CHANGES IN V1.11.5
1933
1934	- cups-browsed: Fixed several typos in the documentation (Bug
1935	  #1378).
1936	- gstoraster, mupdftoraster, pdftops, sys5ippprinter: Use
1937	  execvp() and execvpe() to call programs so that the $PATH
1938	  environment variable gets used to find the programs (Bug
1939	  #1378).
1940	- build system: Several fixes, especially to make it work when
1941	  cross-compiling or using a build server (Bug #1378).
1942	- cups-browsed: Silenced a warning.
1943	- cups-browsed: For remote CUPS queues with a dot in their
1944	  name no local queue got created (Bug #1379).
1945	- pdftopdf: Do the page logging also for IPP Everywhere
1946	  printers which use the PWG Raster data format as the
1947	  ...toraster filters being the last filter then do not log.
1948	- gstoraster, pdftoraster: Let filters generate PWG Raster if
1949          the environment variable FINAL_CONTENT_TYPE is set to
1950          image/pwg-raster, make sure full-page bitmaps are generated
1951          in PWG_raster mode, and added mime conversion rules for
1952          direct PWG Raster output.
1953	- cups-browsed: Corrected checking of the PDLs of an IPP network
1954	  printer. Now PCL 5c/e printers (not HP inkjets) should get
1955	  recognized correctly.
1956	- texttopdf: Added missing NULL check to avoid a segfault when
1957	  texttopdf does not find a suitable (monospace TTF) font.
1958	- foomatic-rip: Replace old manpage macro calls from
1959	  foomatic-filters 3.0.2-20050114.
1960	- cups-browsed: Allow changing BrowseInterval and
1961	  BrowseTimeout via cups-browsed.conf, as it was formerly with
1962	  CUPS (Debian bug #794655).
1963	- pdftopdf: Count the actual output pages also if the
1964	  number-up option is not used, to correctly find out whether
1965	  we have an even or odd number of pages, even if the
1966	  page-ranges option is used. This is needed to correctly
1967	  decide whether for duplex printing a blank page has to be
1968	  added (Bug #1377).
1969
1970CHANGES IN V1.11.4
1971
1972	- gstoraster: Allow Ghostscript to use the center-of-pixel
1973	  method instead of the PostScript-standard any-part-of-pixel
1974	  method when rendering filled paths. This improves the
1975	  graphics output quality of low-resolution printers like
1976	  label printers, for example to assure readability of bar
1977	  codes (Bug #1373).
1978	- cups-browsed: Fixes to avoid unneeded calls of
1979	  handle_cups_queues() and even infinite loops (Possible fix
1980	  for bug #1376). Also make sure that queues left over from
1981	  the previous cups-browsed session are integrated correctly.
1982
1983CHANGES IN V1.11.3
1984
1985	- cups-browsed: If a queue is not only discovered via Bonjour
1986	  but also via legacy CUPS or LDAP, prefer the Bonjour record
1987	  as it provides more information and there is also a defined
1988	  cancellation broadcast.
1989	- cups-browsed: Let PPD options saved in the last session also
1990	  get applied to generated PPDs for IPP network printers.
1991	- cups-browsed: Make sure that saved PPD options do not get
1992	  lost if for some reason the PPD file cannot be loaded in a
1993	  new cups-browsed session (or the loaded PPD file is
1994	  different).  This is done by holding a copy of the settings
1995	  in the remote printer data structure.
1996	- cups-browsed: When saving option settings, remove
1997	  backslashes added when the settings are read out via IPP
1998	  request. Otherwise the backslashes would double with each
1999	  session of cups-browsed.
2000	- implicitclass: Do not let the job get immediately retried on
2001	  failure to send it out to the remote CUPS printer. By
2002	  repeating to send the job to an unavailable server so
2003	  quickly, cups-browsed gets bombed with requests and hangs on
2004	  shutdown.
2005	- cups-browsed: Shortened timeouts of HTTP connections and IPP
2006	  requests to 3 seconds amd of IPP requests to remote CUPS
2007	  servers to 2 seconds. For local IPP requests always use the
2008	  connection once created via http_connect_local(). Also call
2009	  g_main_context_wakeup(NULL) after each
2010	  g_main_loop_quit(gmainloop) call. These measures should
2011	  reduce long hangs of cups-browsed on shutdown when a CUPS
2012	  server got unavailable.
2013	- cups-browsed: Do not mark remote printers discovered via
2014	  legacy CUPS broadcasts as disappeared right from the
2015	  beginning to implement the browse timeout. Instead manage
2016	  their expiring by introducing a flag which marks them as
2017	  CUPS legacy printers. Printers with disappeared status are
2018	  considered invalid in some situations, especially when
2019	  clusterin equally-named remote printers (Bug #1374).
2020	- cups-browsed: When we have remote CUPS printers, we use the
2021	  implicitclass backend and a local copy of the remote PPD
2022	  file already if we have only a single remote printer with
2023	  this queue name. This simplifies the management of remote
2024	  CUPS printers and also we do not hassle with using a remote
2025	  PPD file. Now one can change PPD option defaults with
2026	  printer setup tools or the lpadmin command and they get
2027	  preserved in the next cups-browsed sessions.
2028	- if we are using the implicitclass backend CUPS does not make
2029	  the server's PPD file available on the client any more. To
2030	  fix this, we download the PPD file when creating an
2031	  implictclass:... queue and apply it to the queue. This way
2032	  the options of the printer(s) are always available for
2033	  enumeration, especially in print dialogs (Bug #1372). We
2034	  modify the local copy setting any options saved from the
2035	  previous session and inhibiting local execution of filters
2036	  (as the driver for the remote printer is not necessarily
2037	  available locally).
2038	- cups-browsed: Added flag to inhibit auto-backup of option
2039	  settings by the on_printer_modified() notification handler
2040	  during print queue setup and removal.
2041	- cups-browsed: Let the printer_record() function always
2042	  return the master record for the printer name and not an
2043	  arbitrary duplicate.
2044	- cups-browsed: Fixes in the functionality for saving option
2045	  settings: Make sure to not save the same option twice with
2046	  different values, do not save the "printer-is-shared" option
2047	  (errors out when re-applying option in the next session).
2048	- cups-browsed: Treat discovered printers correctly also if
2049	  they use a non-standard port, even if several CUPS daemons
2050	  are running on the same server but on different ports. This
2051	  also improves the support of a sandboxed printing stack.
2052	- cups-browsed: Close http connections opened for polling
2053	  properties of IPP network printers, to fix a possible memory
2054	  leak.
2055	- cups-browsed: Cleaned up HTTP access to local and remote
2056	  CUPS servers and IPP printers, to assure that the local CUPS
2057	  daemon is always accessed the same (user-defined) way
2058	  (domain socket/localhost:port). This especially prevents
2059	  cups-browwsed hanging on shutdown (Debian bug #832637).
2060	- cups-browsed: Fixed clustering equally-named queues of
2061	  different remote servers, to assure to have one master
2062	  referencing to all duplicates and not a daisy chain of
2063	  duplicate references.
2064
2065CHANGES IN V1.11.2
2066
2067	- cups-browsed: Allow turning off the use of CUPS' domain
2068	  socket via cups-browsed.conf.
2069	- foomatic-rip: When run as regular CUPS filter use preferably
2070	  /etc/cups/foomatic-rip.conf (or whereever the CUPS
2071	  configuration files reside, according to the CUPS_SERVERROOT
2072	  environment variable) as configuration file. This way we can
2073	  more easily run the printing stack in a sandbox.
2074	- foomatic-rip: When run as regular CUPS filter, read the PPD
2075	  through CUPS and get the print queue name by environment
2076	  variable.
2077	- bannertopdf, foomatic-rip, gstoraster, mupdftoraster,
2078	  pdftoopvp, pdftoraster: Do not use build-time hard-coded
2079	  paths, but always the paths from the environment variables
2080	  which CUPS sets when calling its filters. This is needed to
2081	  run the printing stack in a sandbox.
2082
2083CHANGES IN V1.11.1
2084
2085	- mupdftoraster: Lowered the priority (raised the cost value)
2086	  in the cupsfilters-mupdf.convs file so that in a full
2087	  cups-filters installation MuPDF is not prioritized.
2088
2089CHANGES IN V1.11.0
2090
2091	- pdftops: Added support for MuPDF as PDF renderer. MuPDF can
2092	  be selected by the "pdftops-renderer=mupdf" option.
2093	- rastertops: Removed unneeded page logging.
2094	- rastertops: Fixed DSC comments, some were only preceded by
2095	  a single '%' instead of a double "%%".
2096	- gstoraster, pdftops, foomatic-rip: Use -dNOMEDIAATTRS when
2097	  calling Ghostscript. This way Ghostscript does not try to
2098	  match media sizes with internal lists.
2099	- Build system: Allow building cups-filters without Poppler
2100	  (--disable-poppler in ./configure command line) This skips
2101	  the build of pdftoraster, bannertopdf, pdftoijs, and
2102	  pdftoopvp and the installation of these filters and their
2103	  auxiliary files. With this cups-filters can be easily
2104	  installed on mobile/appliance systems with MuPDF as the only
2105	  PDF interpreter.
2106	- mupdftoraster: Added filter to support MuPDF as PDF
2107	  interpreter. MuPDF is a lightweight PDF interpreter
2108	  especially interesting for mobile systems and
2109	  appliances. Thanks to Pranjal Bhor for contributing this as
2110	  part of his Google Summer of Code project.
2111	- gstoraster: Fix setting of width and height of the page in
2112	  pixels when there is no Resolution option in the PPD.
2113	- cups-browsed, implicitclass: Avoid the use of files for the
2114	  communication between cups-browsed and the load-balancing
2115	  backend implicitclass. Instead of in a file, cups-brwsed
2116	  stores the destination server name in an option (which CUPS
2117	  saves in printers.conf) which the implicitclass backend
2118	  reads via IPP. This not only makes it easier to run
2119	  cups-filters in a sandbox, but it is also better in terms of
2120	  system security.
2121	- cups-browsed: Allow configuring where the files produced by
2122	  cups-browsed will get stored. This makes it easier to run
2123	  cups-filters in a sandbox.
2124        - beh: Fixed printing multiple copies with beh (Ubuntu bug
2125          #1605514).
2126	- cups-browsed: Fixed several memory leaks, especially when
2127	  using IPP requests and DNS-SD TXT record look-ups. Thanks to
2128	  Ivo Straka for finding them with Valgrind and supplying
2129	  patches to fix them (Bug #1365, Bug #1368, Ubuntu bug
2130	  #1203276).
2131	- libcupsfilters: Added missing "#include <cups/ppd.h>" to
2132	  make sure that the package builds on all systems (Bug
2133	  #1366).
2134
2135CHANGES IN V1.10.0
2136
2137	- texttotext: Added new filter for text-only printers written
2138	  in C, to use the CUPS library to access the print queue's
2139	  PPD file, with a lot of options to fit practically all
2140	  printer models amd paper sizes, support for CUPS' page
2141	  management options, and support for configuring the print
2142	  queue and controlling the options by the PPD file. The PPD
2143	  is now generated on-the-fly by cupsfilters.drv.
2144	- textonly: Removed the old script-based filter and its PPD
2145	  for text-only printers.
2146	- rastertops: Added new filter to turn PWG Raster into
2147	  PostScript, in preparation for MuPDF support. Thanks to
2148	  Pranjal Bhor for contributing this as part of his Google
2149	  Summer of Code project.
2150	- gstoraster, gstopxl, gstopdf, pstopdf: Integrated
2151	  functionality of script-based filters pstopdf and gstopxl
2152	  into gstoraster filter as script-based filters cannot access
2153	  the print queue's PPD file with current CUPS due to change
2154	  of PPD file permissions.  To make gstoraster always produce
2155	  the correct output format (CUPS/PWG Raster, PDF, PCL-XL) it
2156	  is called via new wrapper scripts (gstopdf, gstopxl) which
2157	  set an environment variable telling the format. The old
2158	  filter scripts got removed.
2159	- imagetops, texttops: Do not use $0 in the wrapper scripts,
2160	  when CUPS calls filters, it passes the queue name as $0, not
2161	  path and name of the called filter.
2162	- cups-browsed: When creating local queues for discovered IPP
2163	  network printers always create PPD files and if the
2164	  information supplied by the printer via IPP is insufficient
2165	  use information from the DNS-SD entry or default values
2166	  suitable for most printers. Use System V interface scripts
2167	  only on explicit request in cups-browsed.conf. This change
2168	  is to address the fact that System V interface script
2169	  support is removed from CUPS 2.2.x and later for security
2170	  reasons.
2171	- pstopdf: Make the filter only get installed if Ghostscript is
2172	  present and also moved its conversion rules into the
2173	  cupsfilters-ghostscript.convs file.
2174	- cups-browsed: Fixed crash when trying to get debugg logging
2175	  both to the terminal and into a file.
2176	- libcupsfilters: Fixed crash of pdftoraster when the color
2177	  space is an RGB space (3 colors) with 1 bit color
2178	  depth. Here we need to add one bit to the pixels (to get 4
2179	  bits per pixel) to align the pixels with the bytes.
2180	- cups-browsed: From cups-browsed.service removed the unneeded
2181	  "Wants=cups.service" as we have "Requires=cups.service"
2182	  (Debian bug #827455, #827457).
2183	- foomatic-rip: Updated man page for removed page logging
2184	  facility.
2185	- pdftops: Also added Dell to the list of manufacturers whose
2186	  printers need Poppler's PostScript to work around their
2187	  PostScript interpreter bugs (Debian bug #827040).
2188
2189CHANGES IN V1.9.0
2190
2191	- foomatic-rip: Removed page logging via insertion of PostScript code.
2192	  This works only with Ghostscript and PostScript input and even
2193	  then it can break things or simply not work. We do the page logging
2194	  for foomatic-rip in pdftopdf now, which is more universal and more
2195	  reliable.
2196	- sys5ippprinter: Added page logging (to /var/log/cups/page_log)
2197	  functionality.
2198	- pdftopdf: Added functionality for logging pages in the
2199	  /var/log/cups/page_log file. Logging can also be forced or
2200	  surpressed via command line (page-logging=on/off/auto) and
2201	  page logging is also done for filters which should do but
2202	  actually do not do: foomatic-rip, gstopxl, hpps (CUPS issue #4798,
2203	  Ubuntu bug #1585380).
2204	- pdftopdf: Whitespace and indentation clean-up.
2205	- README: Removed the documentation of the old Poppler-based pdftopdf
2206	  filter which is not included any more.
2207	- cups-browsed: Do not schedule failed operations for later repetition
2208	  during shutdown.
2209	- cups-browsed: Added support for debug logging into a file (usually
2210	  /var/log/cups/cups-browsed_log, to be activated via "-l" or
2211	  "--logfile" option or via "DebugLogging file" option in
2212	  cups-browsed.conf.
2213	- cups-browesd: Consistent use of debug_printf() in the LDAP support.
2214	- cups-browsed: Added "Requires=cups-service" to the
2215	  cups-browsed.service file, so that systemd keeps CUPS running while
2216	  shutting down cups-browsed on system shutdown (Ubuntu bug #1579905).
2217	- README: Extended pdftopdf's documentation.
2218	- README: Added documentation for the pdfAutorotate option in
2219	  pdftopdf.
2220	- gstoraster: Treat status output of the waitpid() function properly,
2221	  to avoid gstoraster exiting with zero status when Ghostscript
2222	  exited with non-zero status or got terminated by a signal
2223	  (Bug #1354).
2224	- README: Fixed typos. Thanks to Pranjal Bhor (bhor dot pranjal at
2225	  gmail dot com) for the patch.
2226	- braille: Recognize application/vnd.cups-pdf-banner MIME type and
2227	  read standard input directly instead of using /dev/stdin.
2228	- braille: Drop output of the "type" command when checking the
2229	  presence of helper utilities.
2230	- braille: Do not send EOF twice to the braille embosser.
2231	- cups-browsed/sys5ippprinter: Fixed documentation about the allowed
2232	  input formats for auto-created network printer queues using
2233	  sys5ippprinter, also improved NEWS entry about renaming of
2234	  sys5ippprinter (Debian bug #819665).
2235
2236CHANGES IN V1.8.3
2237
2238	- cups-browsed: When creating or modifying a local print queue
2239	  set the printer-is-shared bit to false in a separate IPP
2240	  request as this operation errors on queues directly pointing
2241	  to remote CUPS queues with the IPP backend. This way we can
2242	  ignore the error and assure that all other settings are
2243	  applied (Ubuntu bug #1560099).
2244	- Fixed pkg-config support so that $PKG_CONFIG gets used and
2245	  cross compilation works (Bug #1347).
2246	- gstoraster: Put conversion rules for this filter into a
2247	  separate file, so that they do not get installed when we
2248	  build without Ghostscript support (Bug #1346).
2249	- Allow disabling dependencies on IJS (Bug #1345).
2250	- pdftops: Switch to Poppler as PDF renderer also for the
2251	  Apple LaserWriter 12/640, to work around a bug in the
2252	  printer's PostScript interpreter (Bug #1344).
2253
2254CHANGES IN V1.8.2
2255
2256	- Allow disabling dependencies on Ghostscript and Foomatic
2257	  (Bug #1342).
2258	- cups-browsed: Optionally generate also local queues pointing
2259	  to remote raw queues. Usually only queues pointing to remote
2260	  queues with PPD/driver are created (Debian bug #814020,
2261	  Debian bug #756724).
2262
2263CHANGES IN V1.8.1
2264
2265	- cups-browsed: Do not disable queues which still have jobs (and
2266	  therefore cannot be removed) when avahi-daemon goes away, the
2267	  print server is most probably still available and printing can
2268	  be continued. Especially important on mobile devices where
2269	  avahi-daemon is shut down when the print dialog is closed (and
2270	  the job(s) still printing).
2271
2272CHANGES IN V1.8.0
2273
2274	- COPYING: Replaced the COPYING file by a file in Debian format,
2275	  derived from Debian's file but updated and corrected.
2276	- braille: Added info about additional packages needed for Braille
2277	  printing to the README file.
2278	- braille: Let the Braille filters use lou_translate of
2279	  liblouis if the more sophisticated file2brl of liblouisutdml
2280	  is not installed. This is decided on at run time, so later
2281	  installation of liblouisutdml will let the filters
2282	  automatically switch to file2brl.
2283	- braille: Allow to build with Braille support also if
2284	  liblouis is not installed at build time.
2285	- braille: Added checks for the presence of helper tools, to
2286	  get clear messages in the CUPS error_log if something is
2287	  missing.
2288	- Fixed copyright headers of files inherited from CUPS or
2289          derived from CUPS, pointing to COPYING as license info file,
2290          removing Apple exceptions, removing hints that a missing
2291          license info file can be found at www.cups.org, and removing
2292          "$Id" SVN file ID placeholders.
2293	- Updated COPYING file for missing implicitclass and beh
2294          backends.
2295
2296CHANGES IN V1.7.0
2297
2298	- cups-browsed: Added possibility to trigger the auto shutdown
2299	  by the queues of cups-browsed being without jobs. Before
2300	  auto shutdown was only possible when all queues have gone
2301	  away. This allows auto shutdown on mobile devices where
2302	  avahi-daemon is also used for other things than printing.
2303
2304CHANGES IN V1.6.0
2305
2306	- cups-browsed: Fixed use of CUPS domain socket, both
2307	  detection during build process and permission check at
2308	  runtime.
2309	- foomatic-rip: Fixed buffer overflow when reading environment
2310	  variables CUPS_FONTPATH, CUPS_DATADIR, and GS_LIB (Bug
2311	  #1336).
2312	- beh: Introduced beh, the Backend Error Handler, a wrapper
2313	  backend to make handling of backend errors more
2314	  configurable. This backend is a C re-write of the beh
2315	  backend written in Perl which was part of the former
2316	  foomatic-filters package. Several people asked for beh
2317	  getting moved to cups-filters.
2318	- braille: Make image printing working also if ImageMagick
2319	  generates formatted images without header.
2320	- braille: If the user does not select a Braille translation,
2321	  let the embosser do the translation.
2322	- cups-browsed: Added version info to help screen and start-up
2323	  in debug mode, call help screen also via "--version" option.
2324	- cups-browsed: Minor improvements in help screen and man
2325          page.
2326
2327CHANGES IN V1.5.0
2328
2329	- cups-browsed: Allow use of an alternative configuration file
2330	  via the "-c" command line option.
2331	- cups-browsed: Allow supplying configuration settings via the
2332          command line using the "-o" command line option.
2333	- cups-browsed: Command line help via the "-h" or "--help"
2334          command line option.
2335
2336CHANGES IN V1.4.0
2337
2338	- foomatic-rip: SECURITY FIX: Also consider the semicolon
2339	  (';') as an illegal shell escape character. Thanks to Adam
2340	  Chester (adam dot chester at pentest dot co dot uk) for the
2341	  hint (CVE-2015-8560).
2342	- brftoembosser, imagetobrf, imagetoubrl, imageubrltoindexv3,
2343	  imageubrltoindexv4, textbrftoindexv3, textbrftoindexv4,
2344	  texttobrf, braille.convs, braille.types, generic-brf.drv,
2345	  indexv3.drv, indexv4.drv: Added support for Braille
2346	  embossing via CUPS. Text and even images can now be sent to
2347	  a Braille embosser like to a printer. Thanks to Samuel
2348	  Thibault (samuel dot thibault at ens-lyon dot org) for this
2349	  contribution.
2350
2351CHANGES IN V1.3.0
2352
2353	- cups-browsed: Added new BrowseFilter directive in
2354	  cups-browsed.conf.  This directive allows filtering of the
2355	  remote printers to be accepted on most properties/metadata
2356	  supplied with the DNS-SD broadcasts. This allows, in
2357	  addition to BrowseAllow/BrowseDeny/BrowseOrder, to reduce
2358	  the amount of printers listed in print dialogs to a more
2359	  useful amount.
2360	- cups-browsed: Added support for BrowseDeny and BrowseOrder
2361	  directives in cups-browsed.conf.
2362	- cups-browsed: Let the BrowseAllow lines in cups-browsed.conf
2363	  also apply to remote printers discovered via DNS-SD.
2364	- cups-browsed: Auto-create queues for PCL-5c/e printers but
2365	  not for HP inkjet printers (which also advertise themselves
2366	  as PCL printers).
2367	- cups-browsed, sys5ippprinter: Recognize PCL-5c/e printers
2368	  not only by the application/vnd.hp-pcl MIME type but also by
2369	  application/pcl and application/x-pcl.
2370
2371CHANGES IN V1.2.0
2372
2373	- cups-browsed: When using IP-address-based device URIs via
2374	  the "IPBasedDeviceURIs" directive in cups-browsed.conf, add
2375	  two additional settings to restrict the used IP addresses to
2376	  either only IPv4 addresses or only IPv6 addresses.
2377	- foomatic-rip: SECURITY FIX: Also consider the back tick
2378	  ('`') as an illegal shell escape character. Thanks to Michal
2379	  Kowalczyk from the Google Security Team for the hint
2380	  (CVE-2015-8327).
2381
2382CHANGES IN V1.1.0
2383
2384	- Version numbering scheme changed: Releases with feature
2385	  addition/change have the minor number increased now, pure
2386	  bug fix releases get the revision number increased, to make
2387	  use of the minor number which stayed zero all the time.
2388	- cups-browsed: Added "DefaultOptions" directive to
2389	  cups-browsed.conf to allow defining default option settings
2390	  for local queues to be generated for newly appearing remote
2391	  printers.
2392	- cups-browsed: Removed assert() calls which remained from
2393	  copy and paste in the very beginning of the development of
2394	  cups-browsed.  assert() is only for use during debugging and
2395	  should not be used in production code.
2396	- cups-browsed: Let option settings of a generated print queue
2397	  be saved before taking the queue down so that when the remote
2398	  printer appears again all user changes get restored, making
2399	  user changes permanent on generated queues.
2400	- foomatic-rip: Fixed string length for shell path constant, to
2401	  work also with systems having longer paths (Bug #1325)
2402	- cups-browsed: Added a mode in which IP-based device URIs
2403	  for the generation of local print queues are used, for
2404	  cases with problems in local host name resolution.
2405	- foomatic-rip: Use -dFirstPage=... and -dLastPage=... only
2406	  if really needed (Bug #1324).
2407	- cups-browsed, implicitclass: Make the load-balancing
2408	  configurable so that one can select whether the jobs get
2409	  queued up locally like in a CUPS class or whether they get
2410	  immediately distributed to the remote servers letting them
2411	  queue up there.
2412
2413CHANGES IN V1.0.76
2414
2415	- cups-browsed: Make build also working with BSD make (Bug
2416          #1310).
2417	- cups-browsed, implicitclass: Let the load-balancing queue up
2418	  the jobs in the local (generated) queue until a free (idle,
2419	  enabled, and accepting jobs) remote queue is found (check
2420	  every 5 sec if no free queue available). This gives a more
2421	  even distribution of the work amongst the servers and
2422	  protects against the case that a bunch of jobs gets
2423	  inaccessible or lost if one of the servers fails.
2424	- cups-browsed: Let the load-balancing also check whether the
2425	  destination queue is actually accepting jobs.
2426	- cups-browsed: If a generated queue is not removed on
2427	  shutdown of cups-browsed due to remaining jobs in it,
2428	  re-enable it in the next cups-browsed session even if it was
2429	  disabled by something other than cups-browsed.
2430	- implicitclass: Clean up debug and error messages.
2431	- implicitclass: Fix exit codes for immediate retry of jobs.
2432	- cups-browsed: Make absence of CUPS notifications via D-Bus
2433	  non-fatal and fall back to the old behavior of cups-browsed
2434	  (fail-over instead of load balancing for equally-named
2435	  remote queues, do not remove generated queue if it is
2436	  default instead of default printer management). This solves
2437	  problems of CUPS and/or cups-browsed built without D-Bus
2438	  support or absence of D-Bus on the system (Bug #1316).
2439	- cups-browsed: Do not use g_warning() function, sneaked in by
2440	  copy and paste of CUPS subscription functions.
2441
2442CHANGES IN V1.0.75
2443
2444	- texttopdf: Really support BoldItalic (original texttops just maps
2445	  BoldItalic to Bold).
2446	- texttopdf: Fixed segfault when outputting BoldItalic (Bug #1314).
2447
2448CHANGES IN V1.0.74
2449
2450	- cups-browsed: Added NULL check when getting the notification of
2451	  a printer starting to process a job and checking whether this
2452	  printer is created by cups-browsed with the implicitclass:
2453	  backend (Ubuntu bug #1488524).
2454	- backends: Include unistd.h and fcntl.h in backend-private.h for
2455	  all platforms, not only Linux, so that the backends build also
2456	  on non-Linux platforms (Bug #1308).
2457	- cups-browsed: Do not schedule printers for update when they are
2458	  already marked as disappeared.
2459	- cups-browsed: Added sanity checks when saving the default printer
2460	  selection in a file.
2461	- cups-browsed, implicitclass: If remote queues disappear or
2462	  cups-browsed shuts down and a cups-browsed-generated queue still
2463	  has jobs and needs to be kept therefore, disable it and re-enable
2464	  it when cups-browsed starts again and/or the remote queue(s) re-
2465	  appear(s). This avoids repeated retries of the jobs while the
2466	  remote server is not available, causing unneeded system load and
2467	  battery consumption.
2468	- cups-browsed: After polling info from remote CUPS servers to find
2469	  the best destination job, set the default CUPS server back to local.
2470
2471CHANGES IN V1.0.73
2472
2473	- cups-browsed: Added missing
2474          utils/org.cups.cupsd.Notifier.xml file.
2475
2476CHANGES IN V1.0.72
2477
2478	- cups-browsed, implicitclass: Added load balancing
2479          functionality. If there are several remote CUPS printers
2480          with the same name, they for locally a cluster represented
2481          by a print queue with this name. This printer prints through
2482          a special backend (implicitclass) which makes cups-browsed
2483          find the best destination remote queue (fewest jobs,
2484          enabled) for this job.
2485	- cups-browsed: Added protection against accidental deletion of
2486	  print queues generated by cups-browsed. These queues now get
2487	  automatically re-created.
2488	- cups-browsed: Added LDAP support. Appropriately configured via
2489	  cups-browsed.conf remote printers made available via LDAP will be
2490	  looked up and local queues pointing to them created. Thanks to
2491	  Raphael Geissert (atomo64 at gmail dot com) for contributing this
2492	  patch (Debian bug #795185).
2493	- cups-browsed: Introduced new handling for the default
2494	  printer using cache files. So we do not need to keep an auto-generated
2495	  queue because it is set as default printer. If the auto-generated
2496	  queue disappears, the old local printer is set as default again and
2497	  when it re-appears it returns to be the default printer.
2498	- cups-browsed: Added infrastructure for subscribing to CUPS
2499	  notifications for things like improved default printer handling,
2500	  load balancing, ...
2501	- foomatic-rip: Prevent crash when supplying "media" option with empty
2502	  value ("media=", Ubuntu bug #1479871).
2503	- pdftoopvp: Adaptations to API changes on Poppler 0.34.0, note that
2504	  this patch disables color management in this filter. Thanks to
2505	  Vincent le Garrec and Andreas K. Huettel for the patch (Bug #1301,
2506	  Gentoo bug #554782).
2507	- libcupsfilters, bannertopdf, foomatic-rip, gstoraster, pdftoijs,
2508	  sys5ippprinter, pdftoopvp, pdftops, pdftoraster, rastertoescpx,
2509	  urftopdf, texttopdf: Miscellaneous fixes for build compatibility with
2510	  different platforms, like config.h as very first include and so on.
2511	  Thanks to Richard Palo for the patch (Bug #1264).
2512	- texttopdf: Request the generic 'monospace' font alias from fontconfig
2513	  instead of the hard-coded FreeMono. Thanks to Fabian Greffrath
2514	  (fabian at debian dot org) for the patch (Debian bug #788048).
2515
2516CHANGES IN V1.0.71
2517
2518  	- texttopdf: The Page allocation is moved into textcommon.c, where it
2519	  does all the necessary checking: lower-bounds for CVE-2015-3258 and
2520	  upper-bounds for CVE-2015-3279 due to integer overflows for the
2521	  calloc() call initialising Page[0] and the memset() call in
2522	  texttopdf.c's WritePage() function zeroing the entire array. Thanks
2523	  to Tim Waugh from Red Hat for the patch.
2524	- texttopdf: Upper-bounds checking (CVE-2015-3279).
2525
2526CHANGES IN V1.0.70
2527
2528	- texttopdf: Fixed buffer overflow on size allocation of texttopdf
2529	  when working with extremely small line sizes, which causes the size
2530	  calculation to result in 0 (CVE-2015-3258, thanks to Stefan
2531	  Cornelius fro Red Hat for the patch).
2532	- cups-browsed: leak fixes
2533	- cups-browsed: Further BrowseAllow fixing
2534	- cups-browsed: BrowsePoll is an array of pointers, not structures,
2535	  so allocate room for the pointers
2536  	- cups-browsed: Prevent NULL dereference when handling BrowseAllow
2537	  without value
2538  	- cups-browsed: Use memory deallocation function corresponding to
2539	  allocation function used
2540	- cups-browsed: Fixes for glib source handling (Red Hat bug #1228555)
2541	- foomatic-rip: Allow using another shell than /bin/bash using the
2542	  "--with-shell=..." option for "./configure". Thanks to Leonardo
2543	  Taccari for the patch (Bug #1288).
2544
2545CHANGES IN V1.0.69
2546
2547	- cups-browsed: When generating a PPD for an auto-discovered IPP
2548	  network printer, create a "ColorModel" option only if valid
2549	  choices are reported for it by the IPP printer.
2550	- cups-browsed: Updated PPD file generator for auto-generated queues
2551	  for IPP network printers from the CUPS 2.1.x upstream code, so that
2552	  floating-point numbers are written in a locale-neutral way
2553	  (CUPS STR #4579).
2554	- cups-browsed: When checking whether a queue name already exists
2555	  as a locally defined queue, do case-insensitive comparing as for
2556	  CUPS printer names are case-insensitive. This assures that
2557	  already existing queues do never get overwritten.
2558	- cups-browsed: Added "IPPPrinterQueueType Auto/PPD/NoPPD" directive
2559	  to cups-browsed.conf to allow controlling how cups-browsed
2560	  creates queues fr native IPP network printers: with PPD, with
2561	  System V interface script, or selecting automatically.
2562	- pdftopdf: Center Landscape-oriented jobs correctly on the page
2563	  if the "fitplot" or "number-up" options are used (Bug #1284).
2564	- pstopdf: Removed "-dUseCIEColor" from the Ghostscript command line.
2565	  In modern Ghostscript versions (9.11 and newer) it is recommended to
2566	  not use it with the pdfwrite and ps2write output devices any more.
2567	- imagetopdf: Corrections in PDF output: Let evince display the PDF
2568	  with the correct size including margins and let ghostscript not
2569	  complain about an invalid xref entry.
2570	- cups-browsed: Do not add options to the System V interface script
2571	  which calls sys5ippprinter but set the options as defaults for the
2572	  CUPS queue in printers.conf.
2573	- cups-browsed: When auto-generating a PPD-less print queue for an
2574	  IPP network printer, determine default page size, unprintable margins,
2575	  and color space from the printer via an IPP request.
2576	- imagetopdf: Debug logging should be only controlled by the LogLevel
2577	  of CUPS, not by an awkward build time switch.
2578	- cups-browsed: Determine from the TXT records of the Bonjour broadcast
2579	  of an IPP network printer whether it has color and duplex
2580	  capabilities and if yes, let auto-generated PPD-less print queues
2581	  use appropriate command line options to make use of these
2582	  capabilities.
2583	- imagetopdf: Make this filter also work with auto-generated PPD-less
2584	  print queues for IPP network printers.
2585	- sys5ippprinter: Renamed from pdftoippprinter to reflect that
2586	  it is a System 5 interface script and does not accept only
2587	  PDF as input.
2588	- pdftoippprinter: Support also PWG Raster and JPEG as input formats
2589	  so that an auto-generated, PPD-less queue for an IPP printer emulates
2590	  an IPP Everywhere printer.
2591
2592CHANGES IN V1.0.68
2593
2594	- cups-browsed: Numeric IDs for GSources of the glib event
2595	  loop must be positive integers greater than zero according
2596	  to the documentation of the g_source_get_id() function.
2597	  Taken care of this at all places.
2598	- cups-browsed: Added conditionals so that it also builds with
2599	  CUPS 1.5.x (but then withou support for automatically creating
2600	  queues for IPP network printers). Thanks to Johannes Meixner from
2601	  SUSE for the patch (Bug #1268).
2602	- Ricoh-PDF_Printer-PDF.ppd: Added PPD file for Ricoh's PDF printers
2603	  (experimental). Thanks to Ulrich Wehner from Ricoh for the file.
2604
2605CHANGES IN V1.0.67
2606
2607	- cups-browsed: Use g_source_remove() instead of g_source_destroy()
2608	  for killing auto shutdown timers (Ubuntu bug #1427344).
2609
2610CHANGES IN V1.0.66
2611
2612	- cups-browsed: SECURITY FIX: Fixed a bug in the remove_bad_chars()
2613	  failing to reliably filter out illegal characters if there are two
2614	  or more subsequent illegal characters, allowing execution of
2615	  arbitrary commands with the rights of the "lp" user, using forged
2616	  print service announcements on DNS-SD servers (Bug #1265).
2617	- pdftoopvp: Added conditionals to also build with Poppler 0.31.0
2618	  and newer. Thanks to Armin K. (krejzi at email dot com) for the
2619	  patch (Bug #1254).
2620
2621CHANGES IN V1.0.65
2622
2623	- cups-browsed: Listen for NetworkManager changes (Red Hat bug #975933).
2624	- cups-browsed: Fix for memory leak introduced in BZR rev 7059.
2625	- cups-browsed: Memory leak/uninit fixes.
2626	- cups-browsed: Cache prepared browse data to send.
2627	- cups-browsed: Only get local notifications once per BrowsePoll run.
2628	- cups-browsed: Fix BrowsePoll now notifications work properly. Need
2629	  to maintain a list of printers to keep alive for the case of there
2630	  being no notifications of changes.
2631	- cups-browsed: Use local browsepolling for getting initial printer
2632	  list.
2633	- cups-browsed: Ignore browse packets for deleted printers.
2634	- cups-browsed: Cache connection to local cupsd.
2635	- cups-browsed: Use notifications to track local printers.
2636  	  This avoids expensive calls to cupsGetDests().
2637	- cups-browsed: Manage subscriptions for local browsepolling.
2638	- cups-browsed: Track notify-sequence-number for notifications.
2639
2640CHANGES IN V1.0.64
2641
2642	- cups-browsed: Added PPD file generator for IPP Everywhere
2643	  printers.  If auto-setup of discovered IPP printers is
2644	  activated ("CreateIPPPrinterQueues Yes" in
2645	  cups-browsed.conf), the printer provides suitable capability
2646	  information via a Get-Printer-Attributes IPP call, and
2647	  prints PWG or PostScript input, a PPD is auto-generated
2648	  based on the Get-Printer-Attributes IPP response. Otherwise
2649	  a System-V interface script is used as befreo. Advantage of
2650	  the PPD file is that current print dialogs aloow access to
2651	  the options, no IPP request done by the dialog is
2652	  required. The PPD generator code is borrowed from the CUPS
2653	  2.1.x development code repository. It will perhaps be
2654	  removed in the future when CUPS provides proper API function
2655	  for its PPD generator.
2656
2657CHANGES IN V1.0.63
2658
2659	- foomatic-rip: Added hint to man page that direct, spooler-less mode
2660	  is mainly for testing and debugging (Bug #1253).
2661	- foomatic-rip: Added a symlink of the filter to the binary executable
2662	  directory (usually /usr/bin), so that LSB compliance test scripts
2663	  work (Bug #1255).
2664	- cups-browsed: Fixed CUPS Browsing timeouts. Thanks to Tim
2665          Waugh from Red Hat for the patch (Bug #1252, Red Hat bug
2666          #1189254).
2667
2668CHANGES IN V1.0.62
2669
2670	- cups-browsed: Allow underscore characters in print queue names.
2671	  Thanks to Tim Waugh from Red Hat for the bug report (Bug
2672	  #1241).
2673	- pdftops: Apply workarounds for Kyocera also to Utax printers
2674	  as Utax uses hard- and software from Kyocera. Thanks to Edward
2675	  Huang from Kyocera.
2676	- cups-browsed: Added support for "BrowseAllow All" in the
2677	  cups-browsed.conf file.
2678	- cups-browsed: Reorder inclusion of headers for compatibility
2679	  with NetBSD (Bug #1235).
2680	- imagetopdf, pdftopdf: Correct handling of hardware copies in
2681	  PJL/JCL and/or when the PPD file has a "Copies" option.
2682
2683CHANGES IN V1.0.61
2684
2685	- cups-browsed: Fixed memory leak when a
2686	  cups-browsed-generated print queue is the default
2687	  printer. Thanks to Tim Waugh from Red Hat for the patch (Red
2688	  Hat bug: #1119290).
2689	- cupsfilters.drv, *-PDF.ppd, textonly.ppd: Added
2690	  "*cupsFilter2: ..."  lines to the PPD files to support
2691	  data-format-specific behavior of backends, especially of the
2692	  IPP backend.
2693
2694CHANGES IN V1.0.60
2695
2696	- cups-browsed, pdftoippprinter: Do not confuse the PDL "PCLm"
2697	  with "PCL". The former is a proprietary, PDF-based raster
2698	  format and has nothing to do with PCL.
2699	- cupsfilters.drv: Corrected the CMD: field of the device ID,
2700	  it must read "PWGRaster" there to conform to the PWG standard.
2701
2702CHANGES IN V1.0.59
2703
2704	- cupsfilters.drv: Added PPD file for a Generic IPP Everywhere
2705	  Printer, generating PWG Raster output.
2706	- gstoraster, pdftoraster, imagetoraster: Allow PWG Raster
2707	  output with print queues using a PPD file, using the new
2708	  "PWGRaster" PPD attribute.
2709	- pdftoraster: Removed "cm_disabled" flag in selectConvFunc()
2710	- libcupsfilters: Allowed color management to continue while
2711	  invalid input
2712	- rastertopdf: Streamlined PDF conversion code
2713	- rastertopdf: Invert all CUPS_CSPACE_K documents by default
2714	- foomatic-rip: Clean trailing white space from PPD file lines to
2715	  avoid a segfault caused by it (Bug #1227).
2716
2717CHANGES IN V1.0.58
2718
2719	- pdftoraster: Changed ICC profile get function to accept a
2720	  PPD fallback profile.
2721	- pdftoraster: Fixed handling of cupsColorSpaces 18,19,20.
2722	- rastertopdf: Added test feature to force color management if
2723	  "profile=" option is specified.
2724	- rastertopdf: Grayscale color conversion now properly inverts
2725          bits.
2726	- rastertopdf: Code cleanup for prepare_pdf_page().
2727	- rastertopdf: Implemented basic 8bit->8bit color space
2728	  conversions.
2729	- rastertopdf: Added black point compensation.
2730	- rastertopdf: Added handling of color rendering intent.
2731	- gstoraster, imagetoraster, pdftoraster, rastertopclx,
2732	  rastertopdf, foomatic-rip: Use color management functions in
2733	  libcupsfilters.
2734	- libcupsfilters: Modified code formatting and documentation in
2735	  the color management functions.
2736	- libcupsfilters: Fixed string handling and added debug log
2737          messages in the color management functions.
2738	- libcupsfilters: Fixed Adobe RGB matrix for proper rendering
2739          (transpose)
2740	- libcupsfilters: Moved color management functions from the
2741	  individual filters to the libcupsfilters library.
2742
2743CHANGES IN V1.0.57
2744
2745	- rastertopclx: Fixed implicit declaration of
2746          colord_get_inhibit_for_device_id.
2747	- Build system: Explicitly link to libm as -lm was dropped
2748          from cups-config --libs.
2749	- libcupsfilters, foomaticrip, gstoraster, imagetoraster,
2750          pdftoraster, rastertopclx, rastertopdf: Handle absence of
2751          colord or D-Bus gracefully (Ubuntu bug #1356405).
2752
2753CHANGES IN V1.0.56
2754
2755	- rastertopdf: Some code polishing and removal of now unneeded
2756	  functions
2757	- rastertopdf: Reduced color space handling to only
2758	  PWG-supported color spaces
2759	- rastertopdf: Added colorspace calibration function; included
2760	  optional "/Alternate" PDF key for ICC profile embedding
2761	- rastertopdf: Colorspace sRGB now embeds srgb icc profile;
2762	  implemented ICC Profile embedding (PDF 1.3 spec)
2763	- rastertopdf: Added basic color calibration
2764	- rastertopdf: Implemented ICC Profile creation code for IPP
2765	  Everywhere (from PWG raster)
2766	- pdftoraster: Added colord handling of ICC profiles
2767	- kmdevices.cpp/.h: Added interface for Kolor Manager
2768	- cups-browsed: Do not consider a remote CUPS queue as raw if
2769	  the TXT record is NULL as for queues broadcasted by the
2770	  legacy CUPS method the TXT record does not exist. Now
2771	  consider a queue with NULL TXT record only as raw if the
2772	  domain entry is not empty (which tells that the queue is
2773	  Bonjour-broadcasted (Bug #1223).
2774	- cups-browsed: Do also not mark a discovered printer as
2775	  already provided by another server when the other server's
2776	  queue has "unconfirmed" status. Mark the other queue with
2777	  "disappeared" or "unconfirmed" status as duplicate of the
2778	  discovered printer so that the new queue for the discovered
2779	  printer does not get removed when the entry for the other
2780	  queue times out.
2781
2782CHANGES IN V1.0.55
2783
2784	- pdftopdf: Fixed manual duplex by adding a blank page to evn
2785          pages if the total number of pages of the document is
2786          odd. Otherwise the last page of the document would stay in
2787          the input tray. This fixes also a side effect as the set of
2788          even pages reducing to a zero page job if the job consists
2789          of only one page, making Poppler's pdftops error out (Ubuntu
2790          bug #1340435).
2791	- cups-browsed: Do not mark a discovered printer as already
2792          provided by another server when the other server's queue has
2793          "disappeared" status. This queue can be from the same server
2794          before it changed its name.
2795	- cups-browsed: Do not create a local queue pointing to a
2796	  remote raw queue (Ubuntu bug #1335211).
2797	- foomatic-rip, imagetoraster, pdftoraster, rastertopclx,
2798	  rastertopdf: Added colord "device_inhibit" support for
2799	  color-managed filters.
2800	- foomatic-rip: Let it also build correctly on systems which
2801	  already provide the strlcat() and strlcpy() functions, like
2802	  Mac OS X. Thanks to Matt Broughton for reporting this
2803	  (bug #1215).
2804	- bannertopdf: Added support for PPD-less printing, especially
2805	  one gets a useful test page with PPD-less queues now.
2806	- bannertopdf: Fixed "Printer Location" and "Driver Version"
2807	  entries on the test page/the banners.
2808	- bannertopdf: Added new PDF template files which contain the
2809	  text strings appropriate to the banners, before the banners
2810	  were all equal, without text. Thanks to Johannes Meixner
2811	  from SUSE/Novell for this fix (Bug #1209).
2812	- bannertopdf: Fixed Makefile to mark it dependent on
2813	  libfontembed.la. Thanks to Tim Waugh from Red Hat for the
2814	  patch (Red Hat bug #1106101).
2815	- pstopdf: Use "grep -E" instead of "grep -P" as the latter
2816	  generates executable code and executes it, requiring
2817	  "execmem" privileges which could be not available in some
2818	  security policies. Thanks to Tim Waugh from Red Hat for the
2819	  patch (Red Hat bug #1079534).
2820	- foomatic-rip: NetBSD does not provide a mkstemps() function,
2821	  use appropriate workaround then (Bug #1211).
2822	- cups-browsed: Reorder inclusion of headers for compatibility
2823	  with NetBSD (Bug #1212).
2824	- pdftoraster: Fixed segfault caused by introduction of
2825	  "no-color-management" option (Bug #1214).
2826	- libcupsfilters: Let cupsRasterParseIPPOptions() also accept
2827	  "pwg-raster-document-type" settings with hyphen between
2828	  color space name and color depth.
2829
2830CHANGES IN V1.0.54
2831
2832	- pdftoraster: Support for output in the color spaces 18
2833	  (CUPS_CSPACE_SW, sGray), 19 (CUPS_CSPACE_SRGB, sRGB), and 20
2834	  (CUPS_CSPACE_ADOBERGB, Adobe RGB). No color management
2835	  appropriate to these color spaces is added yet.
2836	- foomatic-rip, gstoraster, imagetoraster, pdftoraster,
2837	  rastertopclx: added boolean option "no-color-management" to
2838	  suppress all forms of color correction when
2839	  color-calibrating the printer.
2840	- pdftops: Default to "hybrid" setting for the PDF->PostScript
2841	  renderer.
2842	- pdftoraster: Produce correct (compressed) PWG Raster output
2843	  when requested by using the correct mode in
2844	  cupsRasterOpen().
2845	- rastertopdf: Added new filter to convert PWG Raster input
2846	  into a PDF file (using QPDF). This filter makes CUPS
2847	  supporting the PWG Raster input format which is required to
2848	  be supported by IPP Everywhere printers, making a shared
2849	  CUPS queue emulating an IPP Everywhere printer. This is a
2850	  first implementation which supports the black, RGB, CMYK,
2851	  sGray, sRGB, and Adobe RGB color spaces (all mapped to
2852	  DeviceGray, DeviceRGB, and DeviceCMYK resp. in the PDF
2853	  output) with 1, 8, and 16 bits per component color
2854	  depth. sGray, sRGB, and Adobe RGB are currently also mapped
2855	  to DeviceGray and DeviceRGB and do not have the correct
2856	  color management yet, so color output is not absolutely
2857	  correct. Note that mime.types of CUPS up to 1.7.2 has a bug
2858	  which prevents PWG Raster to be recognized, the
2859	  "priority(100)" of the rule needs to be changed to
2860	  "priority(150)".
2861	- foomatic-rip: Corrected declaration of print_pdf() function in
2862	  pdf.h file (Debian bug #748028).
2863	- foomatic-rip: Let it also build with uclibc which does not
2864	  provide the mkstemps() function. Thanks to Andreas K.
2865	  Huettel for the patch (Gentoo bug #509884).
2866	- cups-browsed: Create local queues also to access classes on
2867	  remote CUPS servers (Ubuntu bug #1313741).
2868	- cups-browsed: Let a newly discovered printer not only
2869	  overtaking an existing printer entry if it is from the same
2870	  host (usually IPP -> IPPS) or without host entry
2871	  (unconfirmed local queue from previous cups-browsed session)
2872	  but also if it is marked disappeared. So printer entries get
2873	  correctly migrated when things like a host name change of
2874	  the remote server happen.
2875	- cups-browsed: Always do case-insensitive comparing of
2876	  strings, as CUPS queue names and URIs are case-insensitive
2877	  (CUPS STR #4411).
2878
2879CHANGES IN V1.0.53
2880
2881	- foomatic-rip: Fixed segfault when creating log file (Bug
2882          #1206).
2883	- cups-browsed: SECURITY FIX: Fix on usage of the
2884	  "BrowseAllow" directive in cups-browsed.conf. Before, if the
2885	  argument of a "BrowseAllow" directive is not understood it
2886	  is treated as the directive not having been there, allowing
2887	  any host if this was the only "BrowseAllow" directive. Now
2888	  we treat this as a directive which no host can fulfill, not
2889	  allowing any host if it was the only one. No "BrowseAllow"
2890	  directive means access for all, as before (Bug #1204).
2891	- cups-browsed: SECURITY FIX: Further improvement on the fix
2892	  in 1.0.51 as it was insufficient. In addition, some fixes
2893	  against OOB access are done. Thanks to Sebastian Krahmer for
2894	  the patch (SUSE/Novell bug #871327).
2895
2896CHANGES IN V1.0.52
2897
2898	- texttopdf: Make sure that margin changes for prettyprint
2899	  get applied.
2900	- texttopdf, imagetopdf, imagetoraster: Range-check paper
2901	  dimensions and margins taken from the PPD file and correct
2902	  them if needed (Bug #1195).
2903
2904CHANGES IN V1.0.51
2905
2906	- cups-browsed: SECURITY FIX to prevent arbitrary code
2907	  injection into the System V interface scripts generated for
2908	  queues for discovered native IPP printers by a malicious IPP
2909	  print service with forged make/model and/or PDL string.
2910
2911CHANGES IN V1.0.50
2912
2913	- pdftops: Let old HP LaserJet printers (model number without
2914	  letter, like "LaserJet 3" or "LaserJet 4000") use Poppler
2915	  instead of Ghostscript (Debian bug #742765).
2916	- pdftops: Improved workaround for Toshiba printers. Instead
2917	  of using Poppler do not emit TrueType fonts with Ghostscript
2918	  (Ubuntu bug #998087).
2919	- cups-browsed: Build the device URIs for all local queues we create
2920	  with the CUPS library function httpAssembleURIf() for proper
2921	  percent escaping of characters which are not allowed in URIs
2922	  (Bug #1187).
2923
2924CHANGES IN V1.0.49
2925
2926	- pdftops: Use Poppler also for Toshiba printers (Ubuntu bug
2927	  #998087).
2928	- pdftops: Fixed typo which always made PostScript level 2 being
2929	  generated when using Poppler's pdftops (Ubuntu bug #1294370).
2930
2931CHANGES IN V1.0.48
2932
2933	- cups-browsed: Fix for a crash which happens on Bonjour reports of
2934	  printers without "product", "usb_MDL", and "ty" fields in the
2935	  text record (Ubuntu bug #1284834).
2936	- cups-browsed: In README and in the sample startup scripts/configs
2937	  for System V Init and Upstart taken into account the fact that it
2938	  is not required any more to start avahi-daemon before starting
2939	  cups-browsed.
2940
2941CHANGES IN V1.0.47
2942
2943	- pdftoopvp: SECURITY FIX for CVE-2013-6474, CVE-2013-6475,
2944	  and CVE-2013-6476: Introductionof gmallocn and gmallocn3
2945	  to protect against arbitrary code execution with the
2946	  privileges of the "lp" user via malicious PDF files. Also
2947	  restrict the directory from where OPVP drivers can get
2948	  loaded.
2949	- urftopdf: SECURITY FIX for CVE-2013-6473: Two heap-based
2950	  buffer overflow flaws in urftopdf. If a malicious URF file
2951	  were processed it could lead to arbitrary code execution
2952	  with the privileges of the "lp" user.
2953	- pdftopdf: Fixed typo in initialization which sets the default
2954	  value page border to an undefined value. Thanks to Helge
2955	  Blischke for the patch.
2956	- cups-browsed: Check for changes of the URI of a queue which
2957	  we have created and correct the URI if needed, especially if
2958	  a queue was not removed on shutdown of cups-browsed (default
2959	  printer or still having jobs) and before restart of
2960	  cups-browsed the server's DNS-SD-provided has changed.
2961	- bannertopdf: Support PDF forms as banner template. This allows
2962	  especially internationalized banner pages. Forms can contain
2963	  fields for any CUPS/IPP value and get automatically filled
2964	  Thanks to Andrew V. Stepanov from ALT Linux (Bug #1170,
2965	  also first step to fix Ubuntu bug #1196986).
2966
2967CHANGES IN V1.0.46
2968
2969	- gstoraster: Ignore SIGCHLD, rely on waitpid instead. Thanks
2970	  to Lauri Tirkkonen (Bug #1184).
2971	- gstoraster: Fix two instances of insufficient EINTR handling.
2972	  Thanks to Lauri Tirkkonen (Bug #1184).
2973
2974CHANGES IN V1.0.45
2975
2976	- cups-browsed: Under Upstart load the AppArmor profile
2977	  (Ubuntu bug #1276630).
2978	- cups-browsed: Added auto-shutdown feature for on-demand use
2979	  of cups-browsed (for example on mobile devices). With auto
2980	  shutdown active, cups-browsed terminates after a certain
2981	  time interval (30 sec by default) without having any remote
2982	  printer to make available locally. The mode can be turned
2983	  on, turned off (default) or set to automatically be off
2984	  while avahi-daemon is running an on otherwise (controlled by
2985	  avahi-daemon running on-demand). The mode and the timeout
2986	  interval can be selected by command line options, the
2987	  configuration file, and sending signals to cups-browsed
2988	  (on/off only).
2989	- cups-browsed: To make Bonjour-discovered printers locally
2990	  available avahi-daemon does not need to be started before
2991	  cups-browsed and does not need to stay continuously running
2992	  while cups-browsed is running. Bonjour-discovered printers
2993	  are now added whenever avahi-daemon starts and removed
2994	  whenever avahi-daemon stops and cups-browsed keeps
2995	  running. This makes it easier to use cups-browsed in
2996	  different system-configurations and also on systems with
2997	  daemons running on-demand (like mobile systems).
2998	- foomatic-rip: Fixed pid_t/int function prototype mismatch
2999	  (Bug #1182).
3000	- Fixed --with-pdftops-path and --with-pdftocairo-path options
3001	  in ./configure (Bug #1181).
3002	- foomatic-rip: Do not use PATH_MAX for the length of static
3003	  strings which are supposed to hold a command line. Use our
3004	  own CMDLINE_MAX constant to set them to a length of 65535
3005	  bytes (Ubuntu bug #1019662, Debian bug #738440).
3006	- pdftops: Log command lines of renderer (Ghostscript, pdftops,
3007	  pdftocairo, acroread) and of pstops in CUPS' error_log (in
3008	  debug mode).
3009
3010CHANGES IN V1.0.44
3011
3012	- README: Documented the "hybrid" choice for the PDF renderer
3013	  in the pdftops filter.
3014	- pdftoippprinter: Handle missing Ghostscript/Poppler for all
3015	  output formats.
3016	- cups-browsed: Minor corrections in the error messages.
3017	- gstopxl: Support for PPD-less printing. Resolution,
3018	  InputSlot, Duplex, and ColorModel are set also without PPD
3019	  file now.
3020	- Added another sample PPD file for a native PDF printer,
3021	  Fuji_Xerox-DocuPrint_CM305_df-PDF.ppd. Thanks to Adrian
3022	  Johnson for contributing this PPD file.
3023
3024CHANGES IN V1.0.43
3025
3026	- cups-browsed: When automatically setting up a PPD-less print
3027	  queue for an IPP network printer add make/model info as an
3028	  additional "make-and-model" command line option to the call
3029	  of the pdftoippprinter filter, this way filters can do
3030	  make/model-specific exceptions (quirk rules).
3031	- pdftopdf: Take page size from the command line if not
3032	  already given by the PPD file, this way
3033	  "fitplot"/"fit-to-page" also works with PPD-less printing.
3034	- libcupsfilters: cupsRasterParseIPPOptions() did not set
3035	  sRGB color space.
3036	- libcupsfilters: cupsRasterParseIPPOptions() did not set
3037	  Tumble with "Duplex=DuplexTumble".
3038	- pdftopdf: Fixed software copy generation logic for printers
3039	  with hardware copy generation, but without collate support
3040	  (Ubuntu bug #1259240).
3041	- pdftops: Let Ghostscript output PostScript level 3 also for
3042	  PPD-less printing, but not for HP lasers or when make/model
3043	  info is not supplied.
3044	- cups-browsed: removed duplicate definition of ippSetVersion.
3045	- foomatic-rip: Take PATH_MAX constant from limits.h if
3046	  available instead defining it's own version conflicting with
3047	  kfreebsd. Thanks to Peter Green for the patch (Debian bug
3048	  #731658).
3049	- pdftops: Ignore "landscape", "orientation-requested",
3050	  "fit-to-page", and any page geometry options. The first two
3051	  do not make sense on PDF input and therefore should only be
3052	  used in ...topdf filters used before pdftopdf, the others
3053	  are already taken care of by pdftopdf so that pdftops gets
3054	  pages with print-ready page geometry.
3055	- pdftops: Added "-nocenter" to the call of "pdftops
3056	  -origpagesizes" (Poppler/freedesktop.org bug #72312,
3057	  comments #6 and #7).
3058	- pdftopdf: If there is no PPD file or no
3059	  "*LandscapeOrientation:" keyword in the PPD file, rotate
3060	  counterclockwise, not clockwise to fit a landscape-oriented
3061	  page on a portrait-oriented sheet (See
3062	  Poppler/freedesktop.org bug #72312, comment #6).
3063	- pstopdf: Support for the "landscape" and
3064	  "orientation-requested" options (Ubuntu bug #1243484).
3065	- pdftops: Support for PPD-less printing on PostScript
3066	  printers: duplex, resolution, input tray, color mode, and
3067	  make/model (for quirk rules) can now be supplied by the
3068	  command line, pdftopdf takes care of the page geometry.
3069	- libcupsfilters: cupsRasterParseIPPOptions() allows
3070	  specifying resolutions without unit now, assuming dpi then
3071	  (example: "600x600").
3072	- Fixed "--with-cups-rundir" and "--with-cups-domainsocket"
3073	  options in configure (Bug #1174).
3074	- pdftops: After fixing the output of rotated PDF pages
3075	  (usually landscape-oriented pages rotated by pdftopdf) in
3076	  Poppler (Poppler/freedesktop.org bug #72312) corrected the
3077	  use of "pdftops -origpagesizes" in pdftops appropriately
3078	  (Red Hat bug #768811).
3079
3080CHANGES IN V1.0.42
3081
3082	- pdftoippprinter: Check also the presence of Ghostscript and
3083	  use pdftoraster if Ghostscript is missing.
3084	- gstoraster: At build time use the path for Ghostscript which
3085	  our build system already finds for pdftops.
3086	- pdftoraster: Take into account rotate field in PDF header,
3087	  when pdftopdf rotates a page to fit the paper it sets the
3088	  rotate field and does not swap the width and height entries.
3089	- pdftoippprinter: Made PCL 5c/e printing working correctly,
3090	  by first adding support for unprintable margins and
3091	  defaulting to 12pt margins if no margin info is supplied,
3092	  and second, by doing color printing always in RGB color
3093	  space.
3094	- rastertopclx: Improved support for PPD-less printing,
3095	  allowing color printing with (s)RGB color space. Output is
3096	  in sRGB then.
3097	- rastertopclx: Determine page size and select correct PCL
3098	  command for the page size more reliably, especially for
3099	  landscape-oriented pages.
3100	- gstoraster, pdftoraster: Do correct PWG Raster output, allow
3101	  switching to PWG Raster via "media-class=PwgRaster" option
3102	  and CUPS Raster via "media-class=". Default for PPD-less
3103	  printing is PWG Raster.
3104	- gstoraster, pdftoraster: Support applying unprintable
3105	  margins for PPD-less mode with CUPS Raster output.
3106	- libcupsfilters: Added support for "media-left-margin",
3107	  "media-right-margin", "media-bottom-margin", and
3108	  "media-top-margin" IPP options to specify unprintable
3109	  margins in 1/100th of a mm, to allow PPD-less printing with
3110	  unprintable margins (esp. PCL 5c/e with rastertopclx).
3111	- libcupsfilters: Do not set "MediaClass" to "PwgRaster" when
3112	  we request a CUPS Raster header and not a PWG Raster header.
3113	- libcupsfilters: Fixed typo in a debug message in the colord
3114          support part.
3115	- cupsfilters.convs: Corrected cost factor of
3116	  vnd.cups-postscript -> vnd.cups-raster conversion with
3117	  gstoraster, so that input data of the type
3118	  application/vnd.adobe-reader-postscript is converted
3119	  correctly (not via pstotiff). Thanks to Tim Waugh from Red
3120	  Hat for this patch
3121	- cups-browsed: Fixed several memory leaks by adding missing
3122	  free() calls and removing an unneeded strdup(). Thanks to
3123	  Jaromir Koncicky from Red Hat for the patch (Red Hat bug
3124	  #1027317).
3125	- Backends parallel and serial: Fixed logical expressions for
3126	  error handling (Bug #1172).
3127	- libcupsfilters: Moved filter/colord.[ch] into the library as
3128	  this code is now used by both gstoraster and foomatic-rip.
3129	- libcupsfilters: Made the names of the flags to tell that the
3130	  header is already included unique in all API header files.
3131	- foomatic-rip: Moved foomatic-rip's upstream home from the
3132	  foomatic-filters package to cups-filters, to make it easier
3133	  for distributions to ship and maintain a complete printing
3134	  stack and also to make upstream maintenance and development
3135	  easier.
3136	- foomatic-rip: Removed support for all the non-CUPS printing
3137	  environments as they are discontinued upstream. Now
3138	  foomatic-rip only works as a CUPS filter and in a spooler-less
3139	  direct mode, where the latter is mainly for testing and
3140	  debugging. Thanks to Anshul Kushwaha (anshulkushwaha1 at gmail
3141	  dot com) for doing this as a Google Summer of Code 2013 project.
3142	- foomatic-rip: Eliminated compiler warnings.
3143	- foomatic-rip: fixed "endswith()" string utility function.
3144	- foomatic-rip: Removed unneeded HAVE_DBUS conditionals.
3145	- gstoraster: Fixed build system for gstoraster use D-Bus for
3146	  colord support.
3147	- libcupsfilters: Recognize more Adobe-generated CMYK JPEGs to
3148	  take into account their inverted colors (Bug #1169).
3149	- pdftopdf: When checking whether double-sided printing is
3150	  chosen, do not only check for the choice names "DuplexNoTumble"
3151	  and "DuplexTumble" but also for "LongEdge", "ShortEdge",
3152	  "Top", and "Bottom", as CUPS does (Bug #1167).
3153
3154CHANGES IN V1.0.41
3155
3156	- cups-browsed: Added support for automatic PPD-less setup of
3157	  print queues for IPP printers discovered on the network via
3158	  Bonjour. Supported are printers with known languages (PWG
3159	  Raster, PDF, PostScript, PCL XL, PCL 5c/e), especially also
3160	  IPP Everywhere printers. This functionality is especially
3161	  ment for mobile devices to be able to print without printer
3162	  setup tool and without printer driver/PPD collection.
3163	- cups-browsed: Fixed a Valgrind-reported issue.
3164	- pdftoippprinter: New filter for PPD-less printing. The filter
3165	  will be configured as System-V interface script for a print
3166	  queue for a discovered IPP network printer generated by
3167	  cups-browsed.
3168	- rastertopclx: Added support for PPD-less printing. Without
3169	  PPD the filter generates PCL 5e.
3170	- cups-browsed: Fixed socket leaks in recent IPP subscriptions
3171	  changes. Thanks to Tim Waugh from Red Hat for the patch (Red
3172	  Hat bug #1021512).
3173
3174CHANGES IN V1.0.40
3175
3176	- pdftops: Introduced new "hybrid" renderer: Here usually
3177	  Ghostscript is used, but if the printer is a Brother,
3178	  Minolta, or Konica Minolta Poppler's pdftops gets used. This
3179	  is a quirk rule to work around bugs in the PS interpreters
3180	  of the printers.
3181	- Fixed format string issues and added __attribute__ wording
3182	  to printf-like functions to catch any regressions. Thanks to
3183	  Tim Waugh from Red Hat for the patch.
3184
3185CHANGES IN V1.0.39
3186
3187	- pdftops: Fix for landscape PDF handling. Do not use the
3188	  command line options "-origpagesizes" and
3189	  "-choosePaperByPDFPageSize" of Poppler's pdftops utility on
3190	  already processed PDF data. Thanks to Tim Waugh from Red Hat
3191	  for the patch.
3192	- cups-browsed: Improve the efficiency of BrowsePoll by using
3193          IPP notifications when possible. It falls back to the
3194          previous behaviour if it is not possible to use this
3195          optimization. Thanks to Tim Waugh from Red Hat for the patch.
3196
3197CHANGES IN V1.0.38
3198
3199	- pdftops: Added "-dNOINTERPOLATE" to the Ghostscript command line
3200	  for quicker processing of embedded bitmaps.
3201	- pstopdf: Added "-dUseCIEColor" to the Ghostscript command line
3202	  to assure compatibility with newer Ghostscript versions (9.08
3203	  and newer).
3204
3205CHANGES IN V1.0.37
3206
3207	- Added example configuration files for systemd and Upstart. Thanks
3208	  to Tomáš Chvátal for the systemd file.
3209	- Build system: Make sure that gstoraster gets linked against the
3210	  libcupsfilters of the currently built package and not of the
3211	  system. Thanks to Tomáš Chvátal.
3212	- cupsfilters.convs: Reworked the cost factors of the filters to
3213	  avoid bogus filter chains like pstotiff|imagetopdf instead of
3214	  pstopdf|pdftopdf for PostScript->PDF. Thanks to Tim Waugh from
3215	  Red Hat for the report.
3216	- pdftopdf: Accept additional command line options for PPD-less
3217	  printing.
3218	- cups-browsed: Fixed building with CUPS 1.5.x and older,
3219	  ippSetVersion() was missing under the accessor function definitions
3220	  for backward compatibility.
3221
3222CHANGES IN V1.0.36
3223
3224	- Fixed libdl detection in configure. Thanks to Andreas Huettel and
3225	  Yuta Satoh (Gentoo bug #478642).
3226	- cups-browsed: Allow BrowsePoll operation also access print queues
3227	  on older CUPS servers. Thanks to David Mohr for the patch.
3228	- cups-browsed: Assure that it always applies to the local CUPS
3229	  daemon and never to a remote one specified via client.conf
3230	  (Ubuntu bug #1207203).
3231	- pdftoopvp, pdftoijs, pdftoraster, bannertopdf: Made code working
3232	  with Poppler 0.24.x (Bug #1144).
3233	- gstoraster: Silenced compiler warnings.
3234	- gstoraster, pdftoraster: Added support for PPD-less printing
3235	  controlled by IPP attributes (CUPS 1.7.x+ only).
3236	- gstoraster, gstopxl: Moved these filters from Ghostscript to
3237	  cups-filters as upstream home.
3238	- libcupsfilters: Added new cupsRasterParseIPPOptions() API
3239	  function for PPD-less printing controlled by IPP attributes
3240	  (raster.h, CUPS 1.7.x+ only).
3241	- pdftopdf: Added support for page labels. "page-label" option and
3242	  "CLASSIFICATION" environment variable. Thanks to Tim Waugh from
3243	  Red Hat for the patch.
3244	- pdftops: If one or more of the PDF-to-PS renderers (Ghostscript,
3245	  Poppler pdftops, Poppler pdftocairo, acroread) is not installed
3246	  at build time, pre-fill the appropriate executable's path with the
3247	  executable name to allow the use of this renderer when it gets
3248	  installed later (Debian bug #716842).
3249	- cups-browsed: Do not resolve host names of remote printers discovered
3250	  via CUPS broadcasts (Bug #1141).
3251	- Added man pages for cups-browsed and cups-browsed.conf. Thanks to
3252	  Brian Potkin for the contribution (Debian bug #714460).
3253	- Install also escp.h, it is useful for .drv files.
3254
3255CHANGES IN V1.0.35
3256
3257	- pdftoraster: Silenced compiler warning (Bug #1092).
3258	- bannertopdf: Fixed typo which prevented the host name to be shown
3259	  (Bug #1115).
3260	- README: Fixed info about the PPD keyword cupsManualCopies (Bug
3261	  #1086).
3262	- Modified the cost factors of the filters to avoid unneeded PDF
3263	  conversion detours when the input data is PostScript. Instead of
3264	  pstopdf->pdftopdf->pdftops and pstopdf->pdftopdf->gstoraster we
3265	  get pstops and pstops->gstoraster now (Bug #1138).
3266	- pdftops: Added experimental support for pdftocairo as PDF renderer.
3267	  Note that PostScript level 1 output and PDF input with color
3268	  spaces other than DeviceRGB, DeviceGray, sRGB or sGray is not
3269	  supported. PDFs generated by Cairo (for example when printing from
3270	  evince) uses only supported color spaces. Thanks to James Cloos
3271	  for the patch (Bug #1139).
3272	- cups-browsed: Changed default of browsing protocols fron none to
3273	  both DNS-SD and CUPS.
3274	- pdftops: Let Poppler generally generate PostScript level 3 if the
3275	  PPD identifies the printer as PS3 printer, make an exception of
3276	  sending PostScript Level 2 only for HP's laser printers, to not
3277	  compromise print quality and performance on all PS3 printers only
3278	  due to some buggy HP models (Debian bug #712949, see also Ubuntu bug
3279	  #277404).
3280	- Install pcl.h, it is needed by cupsfilters.drv. Thanks to Jiri
3281	  Popelka from Red Hat for the patch (Bug #1133).
3282	- Make cups-filters building with automake 1.13. Thanks to Andreas K.
3283	  Huettel (dilfridge) on IRC.
3284	- libcupsfilters, libfontembed, pdftopdf, texttopdf, cups-browsed:
3285	  Fixed several resource leaks and other problems. Thanks to Jiri
3286	  Popelka from Red Hat for the patches (Bug #1116).
3287
3288CHANGES IN V1.0.34
3289
3290	- cups-browsed: Fixed build with OpenBSD (Bug #1103).
3291	- pdftopdf: Enabled hardware copy generation, if available.
3292	- pdftopdf: Fixed evenDuplex logic.
3293	- cups-browsed: If a queue left over from the last session
3294	  gets confirmed, fill in the data structure with the Bonjour
3295	  parameters, also update the Bonjour parameters if a local
3296	  queue is upgraded from IPP to IPPS.
3297
3298CHANGES IN V1.0.33
3299
3300	- cups-browsed: Added NULL check (Bug #1106).
3301
3302CHANGES IN V1.0.32
3303
3304	- cups-browsed: Shared algorithm to generate local queues based on
3305	  browsed remote queue data between Bonjour and CUPS browsing, as the
3306	  simpler method used for CUPS browsing could overwrite local print
3307	  queues and had de-duplication problems, for example if the server
3308	  appears on two IPs in the network (connected by both ethernet and
3309	  WLAN).
3310	- cups-browsed: CUPS broadcasting also broadcasted non-shared,
3311	  especially cups-browsed-generated printers. Switched to detection
3312	  of non-shared printers by the appropriate bit in the printer-type
3313	  bit field IPP attribute.
3314	- cups-browsed: Made CUPS broadcasting work also without BrowseAllow
3315	  lines in cups-browsed.conf. In this case we accept all remote
3316	  printers (Ubuntu bug #1163764).
3317	- README: Updated documentation for cups-browsed.
3318	- Added more comments and examples to /etc/cups/cups-browsed.conf.
3319	- cups-browsed: Added support for "...:<port>" extensions of
3320	  BrowsePoll addresses. Thanks to Tim Waugh from Red Hat (Ubuntu
3321	  bug 1159213).
3322
3323CHANGES IN V1.0.31
3324
3325	- cups-browsed: cups-browsed removed valid local queues pointing to
3326	  remote queues when cups-browsed did not shut down cleanly after
3327	  the previous session, leaving the user with missing local accessor
3328	  queues for some of the remote CUPS queues (Ubuntu bug #1131149).
3329	- Fixed build system to allow parallel or multilib builds. Thanks to
3330	  Timo Gurr for the patch (Bug #1104).
3331	- pdftopdf: Improved error output.
3332	- pdftopdf: getRotation now handles unusual cases more graceful
3333	  (probably fixes Ubuntu Bug #1154318).
3334	- Fixed build system to allow building without Avahi. In this case
3335	  a cups-browsed with only CUPS broadcasting/browsing will get
3336	  built. Thanks to Tim Waugh from Red Hat (Bug #1101, Bug #1102).
3337
3338CHANGES IN V1.0.30
3339
3340	- cups-browsed: Do not remove a generated local print queue when
3341	  it was made the system default printer (Ubuntu bug #1146407).
3342	- texttopdf: Fixed corrupted pdf when a utf-8 title is given and
3343	  corresponding crash with 'prettyprint' (Ubuntu Bug #1137438).
3344	- cups-browsed: Added CUPS Broadcasting for sharing local printers
3345	  to remote CUPS clients with CUPS 1.5.x and older. Thanks to Tim
3346	  Waugh from Red Hat.
3347	- cups-browsed: Added sample config-file and build-time default
3348	  setting options. Thanks to Tim Waugh from Red Hat.
3349	- cups-browsed: Added CUPS browsing and BrowsePoll functionality, to
3350	  be backwards compatible to CUPS 1.5.x and older servers. Thanks
3351	  to Tim Waugh from Red Hat.
3352	- pdftopdf: Fixed incorrect evenDuplex page insertion (Bug #1088).
3353	- pdftoopvp: Let it build with Poppler 0.22.x. Thanks to Koji Otani
3354	  from BBR Inc. (Bug #1089).
3355
3356CHANGES IN V1.0.29
3357
3358	- Fixed ./configure option "--with-rcdir=no". Thanks to Jiri
3359	  Popelka from Red Hat (Bug #1091).
3360
3361CHANGES IN V1.0.28
3362
3363	- cups-browsed: Do not create CUPS queues for shared local CUPS
3364	  printers.
3365
3366CHANGES IN V1.0.27
3367
3368	- cups-browsed: The daemon crashed if there is no local CUPS queue
3369	  at all. Fixed.
3370
3371CHANGES IN V1.0.26
3372
3373	- Some fixes in README and INSTALL.
3374	- cups-browsed: Added daemon to browse the Bonjour broadcasts of
3375	  shared remote CUPS printers and automatically add local raw queues
3376	  pointing to them, to resemble the behavior of the former CUPS
3377	  broadcasting/browsing which was dropped in CUPS 1.6. Now remote
3378	  printers appear as local print queues as before, but with the
3379	  standardized Bonjour broadcasting.
3380	- "make dist" got broken in 1.0.25. Fixed.
3381
3382CHANGES IN V1.0.25
3383
3384	- urftopdf: Newly added filter to convert the URF format which (at
3385	  least some) iOS apps send when printing via AirPrint (Bug #1076).
3386	- pdftopdf: pdfautorotate functionality has been patched directly
3387	  into pdftopdf (Bug #1080).
3388	- pdftopdf: "mirror" produced only empty pages (XObjects not there).
3389	- pdftopdf: Fixed segfault on "page-ranges=1-2147483647" (from cups).
3390	- pdftopdf: Fixed collate filler insertion.
3391	- texttopdf: Fixed deficient string escaping (Bug #1071).
3392	- pdftoopvp: Get correct byte order definition when building under
3393	  OpenBSD (Bug #1070).
3394	- serial backend: Added check for sys/ioctl.h to configure.ac (Bug
3395	  #1069).
3396	- pdftopdf: Made code building under OpenBSD (Bug #1068).
3397	- pdftopdf: Don't expect too much C++11 support for now (Bug #1067).
3398
3399CHANGES IN V1.0.24
3400
3401        - pdftopdf now generates the necessary pdf comments to disable
3402          duplicate number-up when pdftops is also applied (Bug #1063).
3403	- pdftops: Added support for using Adobe Reader (acroread) in command
3404	  line mode for turning PDF to PostScript (Bug #1065).
3405	- pdftopdf: Fix build on OpenBSD (Bug #1062).
3406	- pdftops: Fix stripping of page management options from the pstops
3407	  command line which got already applied by pdftopdf. If the name
3408	  of the option to be removed is contained in the name of a option
3409	  in the command line (like "number-up" in "number-up-layout" or
3410	  "scaling" in "Natural-scaling"), this option gets stripped instead
3411	  of the correct option (Bug #1064).
3412
3413CHANGES IN V1.0.23
3414
3415	- Removed filter/pdftopdf.old
3416	- Fixed the requires.private for cupsfilters lib
3417
3418CHANGES IN V1.0.22
3419
3420	- Added missing *.h files of filter/pdftopdf/ to source file list so
3421	  that "make dist" builds correct upstream tarballs.
3422
3423CHANGES IN V1.0.21
3424
3425	- bannertopdf: Page duplication routine fixed.
3426	- bannertopdf: Fixed invalid output of a direct stream object.
3427	- pdftopdf filter replaced by new QPDF-based filter from Tobias
3428	  Hoffmann's Google Summer of Code project. The former Poppler-based
3429	  pdftopdf duplicated a lot of Poppler's code. The old filter is
3430	  still in the package as pdftopdf.old with source code in
3431	  filter/pdftopdf.old. It will be removed in a later release.
3432	- Added most recent contributors to AUTHORS and COPYING files.
3433
3434CHANGES IN V1.0.20
3435
3436	- pdftops: Added another workaround for Kyocera printers: Some
3437	  models get very slow on images which request interpolation,
3438	  so now we remove the image interpolation requests by additional
3439	  PostScript code only inserted for Kyocera printers (Ubuntu bug
3440	  #1026974).
3441	- pdftops: The build system only configured the default renderer
3442	  (Ghostscript OR Poppler), not the other renderer, but as we support
3443	  switching on runtime both need to get configured.
3444	- Improved portability of the package to non-Linux systems (Bug #1056).
3445	- Made the Poppler-based filters pdftopdf and pdftoopvp build with
3446	  both Poppler 0.18.x and 0.20.x (Bug #1055).
3447	- Let build system check for dlopen.
3448
3449CHANGES IN V1.0.19
3450
3451	- Fixes according to Coverity scan results (Bug #1054).
3452	- Added distribution packaging instructions to INSTALL.
3453	- Switched build system to autotools. This especially fixes several
3454	  build problems in Gentoo. Also build-tested with CUPS 1.6.0b1.
3455	- Fixes for compatibility with clang/gcc-4.7.
3456	- textonly: Filter did not work as a pipe with copies=1 (Bug #1032).
3457	- texttopdf: Avoid trimming the results of FcFontSort(), as this may
3458	  miss some reasonable candidates under certain circumstances. BTW,
3459	  fix passing a non-pointer as a pointer to "result" (Debian bug
3460	  #670055),
3461	- Corrected documentation. The option for the maximum image rendering
3462	  resolution in pdftops is "pdftops-max-image-resolution", not
3463	  "pdftops-max-image-resolution-default".
3464
3465CHANGES IN V1.0.18
3466
3467	- Modified "./configure" options related to the pdftops filter to
3468	  allow changing the defaults for the renderer being used by default
3469	  (Ghostscript or Poppler) and the maximum image rendering resolution
3470	  and to supply paths for both Ghostscript's gs and Poppler's pdftops.
3471	- pdftops: Allow selection whether Ghostscript or Poppler is used
3472	  at runtime, setting the "pdftops-renderer" option to "gs" or
3473	  "pdftops".
3474	- pdftops: Allow setting an upper limit for the image rendering
3475	  resolution, also at runtime, setting the option
3476	  "pdftops-max-image-resolution" to the desired limit in dpi.
3477	  "0" means no limit.
3478	- pdftops: Fixed crash by wrong usage of sizeof() function when adding
3479	  "Collate" to the fifth command line argument for the "pstops" CUPS
3480	  filter call (Ubuntu bug #982675).
3481	- pdftops: Removed newline from copies value when reading it from
3482	  the "%%PDFTOPDFNumCopies" entry of the incoming PDF file.
3483	- pdftops: Silenced compiler warning about ignoring the return
3484	  value of the write() function.
3485	- pdftops: Added a crash guard.
3486	- pdftops: Start determining the printing resolution with
3487	  cupsRasterInterpretPPD(), this is the most reliable as often
3488	  the choice names of the "Resolution" option are marketing names
3489	  with higher numerical values than the actual resolution. Also
3490	  ignore error exit values of cupsRasterInterpretPPD() as the
3491	  function can error out after having found the resolution.
3492	- pdftops: If printing resolution is determined by
3493          cupsRasterInterpretPPD() do not stick on 100 dpi if the
3494	  resolution cannot be determined (Ubuntu bug #984082).
3495
3496CHANGES IN V1.0.17
3497
3498	- pdftopdf: Fixed segmentation fault when printing selected pages
3499	  ("page-ranges" option, Ubuntu bug #980673).
3500
3501CHANGES IN V1.0.16
3502
3503	- pdftopdf: Fixed segmentation faults when using N-up with certain PDF
3504	  files (Ubuntu bug #980673) and when calling pdftopdf manually without
3505          specifyting a PPD file.
3506
3507CHANGES IN V1.0.15
3508
3509	- pdftops: Suppress image compression only for Brother printers as they
3510	  really need this measure to print at all. This accelerates printer-
3511	  internal job processing on most other printers (tested on HP and
3512	  Kyocera). Also suppress page compression on Kyocera printers, this
3513	  works around a bug in Kyocera's PostScript interpreters which makes
3514	  printing pages with images very slow (Ubuntu bug #977912).
3515
3516CHANGES IN V1.0.14
3517
3518	- pdftops: Determine printing resolution from the PPD file and supply
3519	  it on the Ghostscript or pdftops (Poppler) command line, so that
3520	  the renderer does the image rendering with a resolution matching the
3521	  printer's resolution. This avoids too slow processing of the jobs
3522	  by the printer's built-in PostScript interpreter. In addition
3523	  a default resolution of 300 dpi is used for PPDs without any hint
3524	  of the printer's resolution, as most PostScript lasers use multiples
3525	  of 300 dpi as resolution (Ubuntu bug #977912).
3526
3527CHANGES IN V1.0.13
3528
3529	- bannertopdf: Fix display of the job dates on the test page and on
3530	  banner pages (Ubuntu bug #975064).
3531
3532CHANGES IN V1.0.12
3533
3534	- Fixed crash of imagetopdf filter when it is called manually
3535	  without supplying a valid PPD file (Ubuntu bug #973564).
3536
3537CHANGES IN V1.0.11
3538
3539	- Actually install the Generic PDF printer PPD file.
3540	- Really introduce a Generic PDF printer PPD file.
3541
3542CHANGES IN V1.0.10
3543
3544	- Added Generic PPD file for native PDF printers.
3545	- Updated all code copied from Poppler to the current state of Poppler.
3546	- Made Poppler-based PDF filters building with various versions of
3547	  Poppler.
3548
3549CHANGES IN V1.0.9
3550
3551	- Deactivated NIME conversion rules which are not used by the PDF-
3552	  based printing workflow.
3553	- Cleaned up sample PPD file HP-Color_LaserJet_CM3530_MFP-PDF.ppd.
3554	- imagetopdf: Added support for native PDF printers.
3555	- imagetopdf, imagetoraster: Let image input "scale to fit"
3556	  by default. This makes photo printing via AirPrint work,
3557	  as the iOS devices send JPEG but do not allow setting options.
3558
3559CHANGES IN V1.0.8
3560
3561	- pdftops: Generally do not compress fonts and images, and
3562	  also do not do CCITT compression for bitmap glyphs to make
3563	  the PostScript output more compatible with buggy PostScript
3564	  interpreters. The output gets 30-50% longer but will work on
3565	  many more different printer models. Problems were also
3566	  discovered on HP and not only on Brother (Ubuntu bug
3567	  #960666).
3568
3569CHANGES IN V1.0.7
3570
3571	- pdftops: Added PostScript debug mode. For jobs sent with "-o psdebug"
3572	  the PostScript output by Ghostscript does not have compression of
3573	  pages and fonts, so that one can analyse the PostScript code,
3574	  especially in cases of incompatibilities and bugs of the built-in
3575	  PostScript interpreters of printers. Thanks to the Ghostscript
3576	  upstream developers for this hint.
3577
3578CHANGES IN V1.0.6
3579
3580	- texttopdf: Fixed minor miscalculation of /AvgWidth.
3581	- texttopdf: Added support for direct file references in pdf.utf-8.
3582	- pdftops: Added another workaround for a bug in Brother's PostScript
3583	  interpreter: Suppress CCITT compression for bitmap glyphs and
3584	  images on Brother printers (Ubuntu bug #955553).
3585	- texttopdf: Fixed typo in pdf font descriptor dictionary keys.
3586	- Fixed ColorDevice definition in cupsfilters.drv for HP DesignJet
3587	  printers.
3588	- Put ModelNumber entries in cupsfilters.drv at the right place to
3589	  get correct "*cupsModelNumber:" entries in the PPDs for the HP
3590	  DesignJet printers.
3591	- rastertopclx: Code of JCL options did not get inserted into the JCL
3592	  header.
3593	- parallel backend: Use the same way as CUPS does to prevent an
3594	  infinite loop on side channel errors (CUPS STR #4044).
3595	- pdftopdf: Added support for native PDF printers, add JCL (PJL)
3596	  options and send page_log entries only if the PDF has the
3597	  "*JCLToPDFInterpreter:" keyword.
3598	- Updated README.txt for the new native PDF printer support.
3599	- Added a sample PPD file for a native PDF printer,
3600	  HP-Color_LaserJet_CM3530_MFP-PDF.ppd.
3601	- texttopdf: A lot of internal rework; also split up into more files
3602	- texttopdf: Fixed many bugs on the way
3603	- texttopdf: Added support for CFF-flavoured OTFs; for these
3604          subsetting is not yet implemented, full embedding is done instead
3605	- texttopdf: Adapted and improved fontconfig font selection
3606	- Make sure that "make clean" and "make distclean" also work if
3607	  Makedefs does not exist (Debian bug #663564).
3608
3609CHANGES IN V1.0.5
3610
3611	- pdftops: Added insertion of workaround PostScript code for printers
3612	  with bugs in their PS interpreters (Ubuntu bugs #950713, #951627).
3613	- parallel backend: Break infinite loop (Ubuntu bug #936647).
3614	- texttopdf: Complete the implementation of fontconfig-based font
3615	  selection (Debian bug #663070).
3616
3617CHANGES IN V1.0.4
3618
3619	- texttopdf: Fall back to altermative fonts via fontconfig if the
3620	  FreeMono TrueType fonts are not installed (Debian bugs #495598
3621	  and #662660).
3622	- bannertopdf: Fix off-by-one error in page duplication
3623	- bannertopdf: Put indirect references to streams into the page's
3624	  contents
3625	- bannertopdf: Let byte offsets for the Xref table of the PDF output
3626	  being determined correctly also when the output goes to stdout
3627	  (Ubuntu bug #939735).
3628	- bannertopdf: Output multiple copies of the test page if duplex
3629	  and/or N-up is chosen, to let the test page appear on all possible
3630	  positions of the sheet (Ubuntu bug #939530).
3631
3632CHANGES IN V1.0.3
3633
3634	- bannertopdf: Draw the frame to mark the non-printable borders 1pt
3635	  smaller all around to assure that it is always visible, like it was
3636	  done in bannertops.
3637	- bannertopdf: Scale the page to fit onto the desired output page.
3638	- bannertopdf: Get and output the correct media limits.
3639
3640CHANGES IN V1.0.2
3641
3642	- bannertopdf: Fixed crash caused by wrong Poppler API use.
3643	- bannertopdf: Info text on test page came out in gray and not in
3644	  black.
3645
3646CHANGES IN V1.0.1
3647
3648	- Added the textonly filter and its PPD file, a driver for text-only
3649	  printers.
3650	- Install the pdftoijs sample PPD file
3651	  HP-PhotoSmart_Pro_B8300-hpijs-pdftoijs.ppd
3652	- Added cupsfilters.drv, centralized ppdc-based PPD generator for the
3653	  printer driver filters in this package. Current printers supported
3654	  are several HP DesignJet large format inkjet printers.
3655	- Fixed "make uninstall". Now everything of this package gets removed.
3656	- Added wrapper scripts texttops and imagetops for backward
3657	  compatibility to third-party PPD files or custom configurations
3658	  which refer to these filters explicitly (Debian bug #658258).
3659
3660CHANGES IN V1.0
3661
3662	- Built the pdftops filter based on Ghostscript by default, as
3663	  Ghostscript is better optimized for print output (Ubuntu bug
3664	  #926068).
3665	- If the pdftops filter is built for using Poppler, let Poppler not
3666	  emit PostScript level 3, as this causes problems with some HP
3667	  printers (Ubuntu bug #277404, Freedesktop (Poppler) bug #19640).
3668	- bannertopdf needs to be linked with C++ (bug #995)
3669	- Added test.sh script for testing texttopdf
3670	- Added original documentation of the PDF filters to README.txt
3671	- Install C header files and the static library
3672	- General clean-up of "make install" targets in Makefiles
3673	- Raised MIME conversion cost factor of pdftoraster from 66 to 100 to
3674	  give priority to the gstoraster filter from Ghostscript, as this
3675	  filter supports ICC-profile-based color management.
3676	- Documentation updated because libijs, liblcms, freetype, and
3677          fontconfig are needed to build this package
3678
3679CHANGES IN V1.0b1
3680
3681	- Removed the bannertops, imagetops, and texttops filters, they are
3682	  not needed any more in the PDF-based printing workflow
3683	- Added support for liblcms2
3684	- Named the package "OpenPrinting CUPS Filters"
3685	- Renamed libcupslegacy to libcupsfilters
3686	- Joined pdftops and cpdftocps filters into one C program
3687	- Added new bannertopdf filter from Lars Karlitski (formerly
3688	  Uebernickel): https://launchpad.net/bannertopdf
3689	- Added the filters for the PDF-based printing workflow, from
3690	  OpenPrinting: http://sourceforge.jp/projects/opfc/ and
3691	  http://www.openprinting.org/download/printing/pdf-printing/
3692	- Initial packaging of files that are no longer included in CUPS 1.6
3693	  from CUPS upstream (http://www.cups.org/)
3694