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