-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
2188 lines (1958 loc) · 101 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
NEWS - OpenPrinting CUPS Filters v1.17.1 - 2017-08-25
-----------------------------------------------------
CHANGES IN V1.17.1
- libcupsfilters: Added direct PNG printing to the PPD
generator, the one of CUPS has it, too.
- libcupsfilters: In the PPD file generator renamed the option
"cupsPrintQuality" into the IPP name "print-quality" as CUPS
does not update the "print-quality=4" entry in the filter
command line based on the setting of "cupsPrintQuality"
(CUPS issue #5090).
- libcupsfilters: Completely redone the way how to determine
the resolutions to use for the default resolution and print
quality option in the PPDs generated for IPP
printers. Resolution lists from IPP attributes are now read
into sorted, duplicate-free lists with wrong resolutions
removed or fixed. Resolutions actually used are the common
ones between the supported PDLs, PDls with inferior maximum
resolution or with broken resolution list are skipped
(Debian bug #868360, Ubuntu bug #1712019, CUPS issue #5088,
CUPS issue #5091).
- rastertopdf: Prefer RLE compression instead of Flate as
there are HP printers where Flate is buggy.
- Build system: Fixed help mesage for "--enable-driverless"
configure option (Bug #1405).
CHANGES IN V1.17.0
- rastertopdf, rastertopclm, driverless, cups-browsed,
libcupsfilters: Added support for the PCLm output format for
driverless printing on Mopria and Wi-Fi Direct
printers. This is the Google Summer of Code 2017 project of
Sahil Arora (sahilarora dot 535 at gmail dot com). Thank you
very much for your great work! The PCLm support requires
QPDF 7.0.0 or later.
CHANGES IN V1.16.4
- Build system: Switched over to C11 standard with GNU
extensions (-std=gnu11).
- Build system: Removed -pedantic flag as it is only needed
for compatibility with commercial compilers like the ones of
Windows (and we use GNU extensions anyway).
- libfontembed, texttopdf: reverted removal of anonymous
union.
CHANGES IN V1.16.3
- libfontembed: Reverted unneeded soname change.
CHANGES IN V1.16.2
- README: Minimum CUPS requirement of cups-filters is CUPS
1.4.x. It does not build with earlier CUPS versions (Bug
#993).
- driverless, foomatic-rip: Create relative symbolic links.
- All C/C++ files: Silenced all compiler warnings, at least
the ones appearing when building on Ubuntu Linux 17.10 with
GCC 7.1.0.
- README: Updated the introduction section to reflect the
current functionality of cups-filters, and the build
requirements for the Poppler-based filters (C++11: Bug
#1404, Build configuration of Poppler: Bug #1257). Thanks to
Roland Hieber (r dot hieber at pengutronix dot de) to find
out about this.
- pdftoopvp, bannertopdf, pdftoraster: Build with C++11
standard as some features of this standard are needed by
these filters (or by Poppler). Thanks to Roland Hieber (r
dot hieber at pengutronix dot de) for the patch (Bug #1404).
CHANGES IN V1.16.1
- cups-browsed: Make timeouts for HTTP access to the local
CUPS daemon and remote IPP printers configurable. Thanks to
Cedric Dufour (cedric dot dufour at idiap dot ch) for the
patch (Bug #1387, Debian bug #852436).
- texttopdf: Allow bold and underline formatting to be used
together when using "prettyprint". Thanks to Michael Moran
(vampm at comcast dot net) for the patch.
- texttopdf: Allow to alter margins, and chars/lines per Inch
when using "prettyprint". Thanks to Michael Moran (vampm at
comcast dot net) for the patch.
- texttopdf: When "prettyprint" is used, do not drop out of
C/shell comment mode too early. Thanks to Michael Moran
(vampm at comcast dot net) for the patch.
- cups-browsed: Additional NULL checks for description and
location.
- cups-browsed: Fixed crash which happens when using
BrowsePoll (Debian bug #723835).
CHANGES IN V1.16.0
- cups-browsed: Let elements in arrays get stacked up in the
order they are added, before, they were in the order how
they are positioned in memory. This especially led to a
random order of printer cluster definitions and of
command-line-supplied configuration options.
- cups-browsed: On shutdown not all locally created queues got
deleted.
- cups-browsed: Added support for manual definition of
load-balancing printer clusters via the "Cluster" directive
in cups-browsed.conf.
CHANGES IN V1.15.0
- cups-browsed: Removed the function to compare printer entries
for sorting the printer entry list. This led to corruption
of the list and so to crashes.
- cups-browsed: Fixed crashes when many printers (especially
all printers of a load-balanced cluster) are removed at once.
- cups-browsed: Log the full list of handled remote printers
whenever one is added or removed.
- cups-browsed: Renamed the handle_cups_queues() function to
update_cups_queues() to better reflect what it is doing.
- cups-browsed: When clustering remote CUPS printers together
do not call them duplicates but slaves asigned to a master.
- cups-browsed: Log the error if the network interface name of
a DNS-SD event could not be determined.
- cups-browsed: Simplified printer entry removal procedure.
- cups-browsed: Log memeber printer list of a printer cluster
(implicit class) when a member printer is added or removed.
- cups-browsed: Removed superfluous (and not correctly
working) duplicate counter from the remote printer entry
data structure.
- cups-browsed: Add "AutoClustering" directive to
cups-browsed.conf to turn on and off automatically
clustering equally named local print queues which point to
remote CUPS printers. When automatic clustering is turned
off, queue name clashes are prevented by adding "@<server
name>" to local queue names based on the remote queue name
or on make and model.
- cups-browsed: Skip callback functions and the CUPS queue
creation/update/removal loop when cups-browsed is terminated
by a SIGTERM signal. This avoids hanging on shutdown. Thanks
to Edgar Fuss (ef at math dot uni-bonn dot de, Bug #1402).
- libcupsfilters: Added some fallbacks for incorrect
resolution IPP attributes on IPP network printers (Debian
bug #868360).
- pdftoopvp: Added missing "#include <math.h>" needed for
cross-compiling for arm-v7a-linux-gnueabi (Bug #1232).
- cups-browsed: Prevent the creation of two remote printer
entries for two IPP network printers or an IPP network
printer and a remote CUPS printer with the same local queue
name. This could easily happen with make/model-based naming.
- cups-browsed: Added the possibility to optionally not
create local queues for remote printers for which CUPS
(from 2.2.x on) auto-creates queues by itself (DNS-SD
advertised driverless printers).
- cups-browsed: Removed repeated code for clean-up when
generate_local_queue() function fails.
- cups-browsed: Take care of CUPS' temporary queues. Do not
consider them when checking whether a queue with the same
name as the one we are creating already exists and make
temporary queues permanent (or remove them) before
overwriting them with our local queue.
- cups-browsed: Make the naming scheme for locally created
print queue configurable, especially allow for naming based
on the DNS-SD service name (now default) as this is the same
scheme as CUPS uses for its temporary queues. This way we
prevent CUPS creating temporary queues when cups-browsed is
already creating a queue.
- cups-browsed: Do not add "APRemoteQueueID" keyword to the
local queue's PPD file if the queue is for an IPP network
printer.
- cups-browsed: Skip multiple browse entries for the same
printer with interface alias addresses. Thanks to Edgar
Fuss (ef at math dot uni-bonn dot de, Bug #1399).
- cups-browsed: Improved support for Description (Info) and
Location fields of remote CUPS queues. Thanks to Edgar Fuss
(ef at math dot uni-bonn dot de, Bug #1398).
- cups-browsed: Renamed variable names for better code
readability. Thanks to Edgar Fuss (ef at math dot uni-bonn
dot de, Bug #1398).
- cups-browsed: Additional NULL checks in the
create_local_queue() function. Thanks to Edgar Fuss (ef at
math dot uni-bonn dot de, Bug #1398).
CHANGES IN V1.14.1
- cups-browsed: Do correct removal of printer entry handling
duplicates correctly also when a legacy CUPS-broadcasted
printer disappears or a printer remaining from the last
session does not appear again.
- cups-browsed: Use getline() instead of fgets() to read saved
option settings. This is less crash-prone (Ubuntu bug
#1658833).
- cups-browsed: Improved error logging when saving option
settings.
- cups-browsed: Added NULL checks for generate_local_queue()
and create_local_queue() functions.
- cups-browsed: When accessing local CUPS queues use always
the correct port of the CUPS daemon we are attached to.
- cups-browsed: Check whether a connection to the local CUPS
daemon actually happened before using it (Ubuntu bug
#1644049).
- cups-browsed: Set unused fields of printer record to NULL
when tranfering data from the record of a duplicate printer
to the record of a disappeared one.
- cups-browsed: Simplify removal of all queues on shutdown or
stop of Avahi.
- cups-browsed: When creating a record for a discovered
printer set it all zero before filling it in, to assure
that no field is in an undefined state.
- cups-browsed: All functions which are called via Glib
functions or otherwise event-triggered log now in which
thread they are running. This way one can see whether
problems can be caused by concurrent access to global
resources.
- cups-browsed: Do not check whether the DNS-SD event is from
the local machine in the browse_callback() function. We
cannot check the port here.
- cups-browsed: Added more NULL checks to Avahi callback
functions.
- cups-browsed: Added NULL check to avoid crashes in the Avahi
resolver callback (Ubuntu bug #1696967).
- libcupsfilters: Let PPD generator do case-insensitive
comparisons for PWG Raster color spaces, as some printers
(Epson) do not use the standard-conforming all-lowercase
form for them (CUPS Issue #4998).
CHANGES IN V1.14.0
- cups-browsed: When a printer is discovered via DNS-SD on the
"lo" (loopback) interface the printer is not reliably
accessible through the reported host name (which is the
network host name of the local machine). Until this problem
is fixed in Avahi, we create queues for such printers with a
URI based on the IP address. This is a workaround until
Avahi fully supports the "lo" interface.
- cups-browsed: Added new setting "LocalOnly" for the
CreateIPPPrinterQueues in cups-browsed.conf. With this new
setting (which is the default from now on) only for local
printers made available as IPP printers (like IPP-over-USB
printers with ippusbxd) queues are auto-created. With this
we can follow the common standard of distributions where USB
printers are automatically set up and network printers not.
- cups-browsed: Fixes and improvements in comments and debug
messages: 1. Bonjour -> DNS-SD; 2. When a remote CUPS class
is discovered, tell that it is a class; 3. Show network
interface and IPv4/IPv6 when a DNS-Sd service appears or
disappears.
- cups-browsed: Added ./configure script option
"--enable-auto-setup-driverless" to let cups-browsed
automatically set up IPP network printers by default.
CHANGES IN V1.13.5
- foomatic-rip: When called via the utility cupsfilter from
CUPS, foomatic-rip was not able to read the PPD file with
the file name supplied as environment variable PPD (Bug
#1388).
- driverless: Improved error message output.
- libcupsfilters: Fixed error handling of the PPD file
generator for driverless printing, so that callers get
decent error messages.
- libcupsfilters: Do not generate a PPD file where the only
output data format is JPEG, as JPEG does not support
multi-page documents.
- libcupsfilters: Let PPD generator skip broken page size
records and add warnings for debugging to the PPD.
- libcupsfilters: Updated PPD generator to match with the
current GIT state of the one of CUPS.
- braille: Automatically select a table according to the
current locale.
- braille: Update for liblouis table list.
- braille: Added support for text margins.
- cups-browsed: When creating a local queue for a remote CUPS
printer, add the line '*APRemoteQueueID: ""' to the PPD file
so that CUPS sets the CUPS_PRINTER_REMOTE bit for the
printer type of the local queue (Bug #1386).
CHANGES IN V1.13.4
- libcupsfilters: Let PPD generator for driverless printing
not error out when there is no urf-supported or
pwg-raster-document-resolution-supported IPP attribute,
simply accept the default resolution also from the
printer-resolution-default attribute or set a default value
of 300 dpi to get a working PPD file.
- cups-browsed: Do not use deprecated names for IPP status
constants
- cups-browsed: Corrected determination whether an IPP status
is an error, to avoid "Unable to create/modify CUPS queue
(Success)" and infinite repetition of a succeeded operation
(Debian bug #852436).
CHANGES IN V1.13.3
- libcupsfilters: When auto-generating PPD files added support
for passing through JPEG input to printers which understand
JPEG. This is also done in CUPS-generated PPDs (Debian bug
#851499).
- libcupsfilters: Added the "output-bin" option support from
CUPS' PPD generator to our PPD generator (CUPS Issue #4938).
- cups-browsed: Make support for printers with IPv6 IP address
work. Both link-local and regular addresses work.
CHANGES IN V1.13.2
- cupsfilters.drv: Corrected cupsFilter entry for the "Generic
IPP Everywhere Printer".
- driverless: Fixes on the man page (Debian bug #849075).
- driverless: Do not error-exit (non-zero status) when run by
CUPS as backend or PPD generator when no driverless printer
is found or Avahi not running. When run from thr command
line, exit status is the same as of ippfind.
- imagetoraster: Removed (incomplete) PWG Raster support. For
PWG Raster output we let the rastertopwg filter from CUPS do
the finalization (mainly adding white pixels at the borders
to get a full-page bitmap).
- imagetoraster: Fixed several bugs in the calculation of the
page geometry (Debian bug #849380).
- libcupsfilters: If the IPP-polled printer has the
"sides-supported" attribute, determine the need of a
"Duplex" option solely whether the attribute has a
"two-sided-long-edge" choice and ignore the "duplex"
parameter of the ppdCreateFromIPP() function call. This lets
the more precise information coming from the IPP query
always be preferred against information from the Bonjour
record.
- driverless: When listing printers let the device ID contain
"AppleRaster" (for Apple Raster printers) and "PWGRaster"
(for IPP Everywhere printers) in the "CMD" field.
- driverless: Added "-T 3" to the ippfind command line. This
makes ippfind search the Bonjour broadcasts for up to 3
seconds when searching for IPP printers, raising the
reliability in finding all of them (Debian bug #848712).
CHANGES IN V1.13.1
- cups-browsed: Avoid erroring out when restarting after a
crash (with generated queues not deleted due to the crash)
and the configuration option
CreateRemoteCUPSPrinterQueues=No being set.
- cups-browsed: If CUPS is stopped while cups-browsed is
running and there are queue for IPP network printers (not
remote CUPS queues) on restart of CUPS the still existing
local CUPS queue is not correctly re-connected with
cups-browsed and therefore gets removed after a
timeout. This should be fixed after a clean-up of
re-connecting with remaining queues from a previous session
(Debian bug #848223).
- cups-browsed: Generated queues did not get removed on
shutdown (Debian bug #848167).
- libcupsfilters: Let PPD generator for driverless printing
suppress page sizes which the printer reports more than
once (CUPS Issue #4933).
- driverless, libcupsfilters: Make "driverless list" output
and output of driverless as CUPS backend in discovery mode
add the word "driverless" to its output, to make it easier
to set up driverless printers with printer setup tools.
Made the NickName of the generated PPDs also match with the
"driverless list" output.
CHANGES IN V1.13.0
- cups-browsed: Use the httpGetAddr() only with CUPS 2.0.x or
newer, as older CUPS versions do not provide it (Bug #1381).
- cups-browsed: Minor corrections in the handling of the data
records of the discovered printers.
- rastertopdf, urftopdf: As with libcupsimage from CUPS 2.2.2
on rastertopdf also understands Apple Raster and much better
than urftopdf does, use rastertopdf for Apple Raster
(image/urf) input files then. Also allow for manually
choosing by the ./configure command line.
- driverless: Added a CUPS backend mode to the driverless
utility. Running as a CUPS backend in discovery mode it
lists the IPP URIs of the suitable printers in printer setup
tools and in "lpinfo -v", as conneting via IPP is required
for driverless printing.
CHANGES IN V1.12.0
- cups-browsed: Added new "CreateRemoteCUPSPrinterQueues"
directive to cups-browsed.conf, which allows to decide
whether to auto-create local print queues for shared CUPS
queues on remote machines. This way one can also set up
servers which only create queues for IPP network printers.
- driverless: Added new /usr/lib/cups/driver/driverless
utility to make CUPS auto-generate PPD files for printers
designed for driverless use (IPP Everywhere, Apple Raster)
when they are set up with a printer setup tool. This gives
transparency to set up these printers with legacy printer
setup tools. This utility is also linked to /ustr/bin to
manually generate PPDs via command line.
- libcupsfilters, cups-browsed: Moved the PPD generator for
IPP network printers from cups-browsed to libcupsfilters, so
that it can also be used by other utilities.
- cups-browsed: When auto-generating a PPD set the cost values
in the filter lines to give the highest priority to PDF,
then PWG Raster, Apple Raster, PCL-XL, PostScript, PCL 5c/e.
- cups-browsed: Synced the PPD generator with the one of CUPS,
giving the best possible support for IPP Everywhere and
AirPrint printers. Especially support for more media types
and for finishing units got added. Also support for more
different ways to represent the printer capabilities via
IPP attributes got added.
- cups-browsed: Added support for auto setup of IPP printers
understanding the Apple Raster input data format (.urf, on
AirPrint printers), only if CUPS 2.2.2 is used, which can
generate this format via its rastertopwg filter.
- cups-browsed: Added new "NewIPPPrinterQueuesShared"
directive to cups-browsed.conf, which allows to decide
whether the auto-created local print queue for a newly
discovered IPP network printer will be shared or not. For
printers discovered earlier, cups-browsed remembers the
previous setting.
- cups-browsed: If a user changes the printer-is-shared bit of
an auto-created print queue for an IPP network printer (not
for a remote CUPS queue), record this fact and recover the
change when creating this queue in the next session.
- cups-browsed: For automatic creation of print queues for IPP
network printers also allow only creating queues for IPP
Everywhere printers, only for Apple Raster printers, or for
both printer types designed for driverless printing and not
only for all suitable printers, configurable via the
CreateIPPPrinterQueues directive in cups-browsed.conf.
CHANGES IN V1.11.6
- pdftops: Do not default to simply "pdftops" when calling the
Poppler pdftops utility, as the $PATH of CUPS when running
filters/backends starts with /usr/lib/cups/filter/ and then
pdftops would call itself (Bug #1380).
CHANGES IN V1.11.5
- cups-browsed: Fixed several typos in the documentation (Bug
#1378).
- gstoraster, mupdftoraster, pdftops, sys5ippprinter: Use
execvp() and execvpe() to call programs so that the $PATH
environment variable gets used to find the programs (Bug
#1378).
- build system: Several fixes, especially to make it work when
cross-compiling or using a build server (Bug #1378).
- cups-browsed: Silenced a warning.
- cups-browsed: For remote CUPS queues with a dot in their
name no local queue got created (Bug #1379).
- pdftopdf: Do the page logging also for IPP Everywhere
printers which use the PWG Raster data format as the
...toraster filters being the last filter then do not log.
- gstoraster, pdftoraster: Let filters generate PWG Raster if
the environment variable FINAL_CONTENT_TYPE is set to
image/pwg-raster, make sure full-page bitmaps are generated
in PWG_raster mode, and added mime conversion rules for
direct PWG Raster output.
- cups-browsed: Corrected checking of the PDLs of an IPP network
printer. Now PCL 5c/e printers (not HP inkjets) should get
recognized correctly.
- texttopdf: Added missing NULL check to avoid a segfault when
texttopdf does not find a suitable (monospace TTF) font.
- foomatic-rip: Replace old manpage macro calls from
foomatic-filters 3.0.2-20050114.
- cups-browsed: Allow changing BrowseInterval and
BrowseTimeout via cups-browsed.conf, as it was formerly with
CUPS (Debian bug #794655).
- pdftopdf: Count the actual output pages also if the
number-up option is not used, to correctly find out whether
we have an even or odd number of pages, even if the
page-ranges option is used. This is needed to correctly
decide whether for duplex printing a blank page has to be
added (Bug #1377).
CHANGES IN V1.11.4
- gstoraster: Allow Ghostscript to use the center-of-pixel
method instead of the PostScript-standard any-part-of-pixel
method when rendering filled paths. This improves the
graphics output quality of low-resolution printers like
label printers, for example to assure readability of bar
codes (Bug #1373).
- cups-browsed: Fixes to avoid unneeded calls of
handle_cups_queues() and even infinite loops (Possible fix
for bug #1376). Also make sure that queues left over from
the previous cups-browsed session are integrated correctly.
CHANGES IN V1.11.3
- cups-browsed: If a queue is not only discovered via Bonjour
but also via legacy CUPS or LDAP, prefer the Bonjour record
as it provides more information and there is also a defined
cancellation broadcast.
- cups-browsed: Let PPD options saved in the last session also
get applied to generated PPDs for IPP network printers.
- cups-browsed: Make sure that saved PPD options do not get
lost if for some reason the PPD file cannot be loaded in a
new cups-browsed session (or the loaded PPD file is
different). This is done by holding a copy of the settings
in the remote printer data structure.
- cups-browsed: When saving option settings, remove
backslashes added when the settings are read out via IPP
request. Otherwise the backslashes would double with each
session of cups-browsed.
- implicitclass: Do not let the job get immediately retried on
failure to send it out to the remote CUPS printer. By
repeating to send the job to an unavailable server so
quickly, cups-browsed gets bombed with requests and hangs on
shutdown.
- cups-browsed: Shortened timeouts of HTTP connections and IPP
requests to 3 seconds amd of IPP requests to remote CUPS
servers to 2 seconds. For local IPP requests always use the
connection once created via http_connect_local(). Also call
g_main_context_wakeup(NULL) after each
g_main_loop_quit(gmainloop) call. These measures should
reduce long hangs of cups-browsed on shutdown when a CUPS
server got unavailable.
- cups-browsed: Do not mark remote printers discovered via
legacy CUPS broadcasts as disappeared right from the
beginning to implement the browse timeout. Instead manage
their expiring by introducing a flag which marks them as
CUPS legacy printers. Printers with disappeared status are
considered invalid in some situations, especially when
clusterin equally-named remote printers (Bug #1374).
- cups-browsed: When we have remote CUPS printers, we use the
implicitclass backend and a local copy of the remote PPD
file already if we have only a single remote printer with
this queue name. This simplifies the management of remote
CUPS printers and also we do not hassle with using a remote
PPD file. Now one can change PPD option defaults with
printer setup tools or the lpadmin command and they get
preserved in the next cups-browsed sessions.
- if we are using the implicitclass backend CUPS does not make
the server's PPD file available on the client any more. To
fix this, we download the PPD file when creating an
implictclass:... queue and apply it to the queue. This way
the options of the printer(s) are always available for
enumeration, especially in print dialogs (Bug #1372). We
modify the local copy setting any options saved from the
previous session and inhibiting local execution of filters
(as the driver for the remote printer is not necessarily
available locally).
- cups-browsed: Added flag to inhibit auto-backup of option
settings by the on_printer_modified() notification handler
during print queue setup and removal.
- cups-browsed: Let the printer_record() function always
return the master record for the printer name and not an
arbitrary duplicate.
- cups-browsed: Fixes in the functionality for saving option
settings: Make sure to not save the same option twice with
different values, do not save the "printer-is-shared" option
(errors out when re-applying option in the next session).
- cups-browsed: Treat discovered printers correctly also if
they use a non-standard port, even if several CUPS daemons
are running on the same server but on different ports. This
also improves the support of a sandboxed printing stack.
- cups-browsed: Close http connections opened for polling
properties of IPP network printers, to fix a possible memory
leak.
- cups-browsed: Cleaned up HTTP access to local and remote
CUPS servers and IPP printers, to assure that the local CUPS
daemon is always accessed the same (user-defined) way
(domain socket/localhost:port). This especially prevents
cups-browwsed hanging on shutdown (Debian bug #832637).
- cups-browsed: Fixed clustering equally-named queues of
different remote servers, to assure to have one master
referencing to all duplicates and not a daisy chain of
duplicate references.
CHANGES IN V1.11.2
- cups-browsed: Allow turning off the use of CUPS' domain
socket via cups-browsed.conf.
- foomatic-rip: When run as regular CUPS filter use preferably
/etc/cups/foomatic-rip.conf (or whereever the CUPS
configuration files reside, according to the CUPS_SERVERROOT
environment variable) as configuration file. This way we can
more easily run the printing stack in a sandbox.
- foomatic-rip: When run as regular CUPS filter, read the PPD
through CUPS and get the print queue name by environment
variable.
- bannertopdf, foomatic-rip, gstoraster, mupdftoraster,
pdftoopvp, pdftoraster: Do not use build-time hard-coded
paths, but always the paths from the environment variables
which CUPS sets when calling its filters. This is needed to
run the printing stack in a sandbox.
CHANGES IN V1.11.1
- mupdftoraster: Lowered the priority (raised the cost value)
in the cupsfilters-mupdf.convs file so that in a full
cups-filters installation MuPDF is not prioritized.
CHANGES IN V1.11.0
- pdftops: Added support for MuPDF as PDF renderer. MuPDF can
be selected by the "pdftops-renderer=mupdf" option.
- rastertops: Removed unneeded page logging.
- rastertops: Fixed DSC comments, some were only preceded by
a single '%' instead of a double "%%".
- gstoraster, pdftops, foomatic-rip: Use -dNOMEDIAATTRS when
calling Ghostscript. This way Ghostscript does not try to
match media sizes with internal lists.
- Build system: Allow building cups-filters without Poppler
(--disable-poppler in ./configure command line) This skips
the build of pdftoraster, bannertopdf, pdftoijs, and
pdftoopvp and the installation of these filters and their
auxiliary files. With this cups-filters can be easily
installed on mobile/appliance systems with MuPDF as the only
PDF interpreter.
- mupdftoraster: Added filter to support MuPDF as PDF
interpreter. MuPDF is a lightweight PDF interpreter
especially interesting for mobile systems and
appliances. Thanks to Pranjal Bhor for contributing this as
part of his Google Summer of Code project.
- gstoraster: Fix setting of width and height of the page in
pixels when there is no Resolution option in the PPD.
- cups-browsed, implicitclass: Avoid the use of files for the
communication between cups-browsed and the load-balancing
backend implicitclass. Instead of in a file, cups-brwsed
stores the destination server name in an option (which CUPS
saves in printers.conf) which the implicitclass backend
reads via IPP. This not only makes it easier to run
cups-filters in a sandbox, but it is also better in terms of
system security.
- cups-browsed: Allow configuring where the files produced by
cups-browsed will get stored. This makes it easier to run
cups-filters in a sandbox.
- beh: Fixed printing multiple copies with beh (Ubuntu bug
#1605514).
- cups-browsed: Fixed several memory leaks, especially when
using IPP requests and DNS-SD TXT record look-ups. Thanks to
Ivo Straka for finding them with Valgrind and supplying
patches to fix them (Bug #1365, Bug #1368, Ubuntu bug
#1203276).
- libcupsfilters: Added missing "#include <cups/ppd.h>" to
make sure that the package builds on all systems (Bug
#1366).
CHANGES IN V1.10.0
- texttotext: Added new filter for text-only printers written
in C, to use the CUPS library to access the print queue's
PPD file, with a lot of options to fit practically all
printer models amd paper sizes, support for CUPS' page
management options, and support for configuring the print
queue and controlling the options by the PPD file. The PPD
is now generated on-the-fly by cupsfilters.drv.
- textonly: Removed the old script-based filter and its PPD
for text-only printers.
- rastertops: Added new filter to turn PWG Raster into
PostScript, in preparation for MuPDF support. Thanks to
Pranjal Bhor for contributing this as part of his Google
Summer of Code project.
- gstoraster, gstopxl, gstopdf, pstopdf: Integrated
functionality of script-based filters pstopdf and gstopxl
into gstoraster filter as script-based filters cannot access
the print queue's PPD file with current CUPS due to change
of PPD file permissions. To make gstoraster always produce
the correct output format (CUPS/PWG Raster, PDF, PCL-XL) it
is called via new wrapper scripts (gstopdf, gstopxl) which
set an environment variable telling the format. The old
filter scripts got removed.
- imagetops, texttops: Do not use $0 in the wrapper scripts,
when CUPS calls filters, it passes the queue name as $0, not
path and name of the called filter.
- cups-browsed: When creating local queues for discovered IPP
network printers always create PPD files and if the
information supplied by the printer via IPP is insufficient
use information from the DNS-SD entry or default values
suitable for most printers. Use System V interface scripts
only on explicit request in cups-browsed.conf. This change
is to address the fact that System V interface script
support is removed from CUPS 2.2.x and later for security
reasons.
- pstopdf: Make the filter only get installed if Ghostscript is
present and also moved its conversion rules into the
cupsfilters-ghostscript.convs file.
- cups-browsed: Fixed crash when trying to get debugg logging
both to the terminal and into a file.
- libcupsfilters: Fixed crash of pdftoraster when the color
space is an RGB space (3 colors) with 1 bit color
depth. Here we need to add one bit to the pixels (to get 4
bits per pixel) to align the pixels with the bytes.
- cups-browsed: From cups-browsed.service removed the unneeded
"Wants=cups.service" as we have "Requires=cups.service"
(Debian bug #827455, #827457).
- foomatic-rip: Updated man page for removed page logging
facility.
- pdftops: Also added Dell to the list of manufacturers whose
printers need Poppler's PostScript to work around their
PostScript interpreter bugs (Debian bug #827040).
CHANGES IN V1.9.0
- foomatic-rip: Removed page logging via insertion of PostScript code.
This works only with Ghostscript and PostScript input and even
then it can break things or simply not work. We do the page logging
for foomatic-rip in pdftopdf now, which is more universal and more
reliable.
- sys5ippprinter: Added page logging (to /var/log/cups/page_log)
functionality.
- pdftopdf: Added functionality for logging pages in the
/var/log/cups/page_log file. Logging can also be forced or
surpressed via command line (page-logging=on/off/auto) and
page logging is also done for filters which should do but
actually do not do: foomatic-rip, gstopxl, hpps (CUPS issue #4798,
Ubuntu bug #1585380).
- pdftopdf: Whitespace and indentation clean-up.
- README: Removed the documentation of the old Poppler-based pdftopdf
filter which is not included any more.
- cups-browsed: Do not schedule failed operations for later repetition
during shutdown.
- cups-browsed: Added support for debug logging into a file (usually
/var/log/cups/cups-browsed_log, to be activated via "-l" or
"--logfile" option or via "DebugLogging file" option in
cups-browsed.conf.
- cups-browesd: Consistent use of debug_printf() in the LDAP support.
- cups-browsed: Added "Requires=cups-service" to the
cups-browsed.service file, so that systemd keeps CUPS running while
shutting down cups-browsed on system shutdown (Ubuntu bug #1579905).
- README: Extended pdftopdf's documentation.
- README: Added documentation for the pdfAutorotate option in
pdftopdf.
- gstoraster: Treat status output of the waitpid() function properly,
to avoid gstoraster exiting with zero status when Ghostscript
exited with non-zero status or got terminated by a signal
(Bug #1354).
- README: Fixed typos. Thanks to Pranjal Bhor (bhor dot pranjal at
gmail dot com) for the patch.
- braille: Recognize application/vnd.cups-pdf-banner MIME type and
read standard input directly instead of using /dev/stdin.
- braille: Drop output of the "type" command when checking the
presence of helper utilities.
- braille: Do not send EOF twice to the braille embosser.
- cups-browsed/sys5ippprinter: Fixed documentation about the allowed
input formats for auto-created network printer queues using
sys5ippprinter, also improved NEWS entry about renaming of
sys5ippprinter (Debian bug #819665).
CHANGES IN V1.8.3
- cups-browsed: When creating or modifying a local print queue
set the printer-is-shared bit to false in a separate IPP
request as this operation errors on queues directly pointing
to remote CUPS queues with the IPP backend. This way we can
ignore the error and assure that all other settings are
applied (Ubuntu bug #1560099).
- Fixed pkg-config support so that $PKG_CONFIG gets used and
cross compilation works (Bug #1347).
- gstoraster: Put conversion rules for this filter into a
separate file, so that they do not get installed when we
build without Ghostscript support (Bug #1346).
- Allow disabling dependencies on IJS (Bug #1345).
- pdftops: Switch to Poppler as PDF renderer also for the
Apple LaserWriter 12/640, to work around a bug in the
printer's PostScript interpreter (Bug #1344).
CHANGES IN V1.8.2
- Allow disabling dependencies on Ghostscript and Foomatic
(Bug #1342).
- cups-browsed: Optionally generate also local queues pointing
to remote raw queues. Usually only queues pointing to remote
queues with PPD/driver are created (Debian bug #814020,
Debian bug #756724).
CHANGES IN V1.8.1
- cups-browsed: Do not disable queues which still have jobs (and
therefore cannot be removed) when avahi-daemon goes away, the
print server is most probably still available and printing can
be continued. Especially important on mobile devices where
avahi-daemon is shut down when the print dialog is closed (and
the job(s) still printing).
CHANGES IN V1.8.0
- COPYING: Replaced the COPYING file by a file in Debian format,
derived from Debian's file but updated and corrected.
- braille: Added info about additional packages needed for Braille
printing to the README file.
- braille: Let the Braille filters use lou_translate of
liblouis if the more sophisticated file2brl of liblouisutdml
is not installed. This is decided on at run time, so later
installation of liblouisutdml will let the filters
automatically switch to file2brl.
- braille: Allow to build with Braille support also if
liblouis is not installed at build time.
- braille: Added checks for the presence of helper tools, to
get clear messages in the CUPS error_log if something is
missing.
- Fixed copyright headers of files inherited from CUPS or
derived from CUPS, pointing to COPYING as license info file,
removing Apple exceptions, removing hints that a missing
license info file can be found at www.cups.org, and removing
"$Id" SVN file ID placeholders.
- Updated COPYING file for missing implicitclass and beh
backends.
CHANGES IN V1.7.0
- cups-browsed: Added possibility to trigger the auto shutdown
by the queues of cups-browsed being without jobs. Before
auto shutdown was only possible when all queues have gone
away. This allows auto shutdown on mobile devices where
avahi-daemon is also used for other things than printing.
CHANGES IN V1.6.0
- cups-browsed: Fixed use of CUPS domain socket, both
detection during build process and permission check at
runtime.
- foomatic-rip: Fixed buffer overflow when reading environment
variables CUPS_FONTPATH, CUPS_DATADIR, and GS_LIB (Bug
#1336).
- beh: Introduced beh, the Backend Error Handler, a wrapper
backend to make handling of backend errors more
configurable. This backend is a C re-write of the beh
backend written in Perl which was part of the former
foomatic-filters package. Several people asked for beh
getting moved to cups-filters.
- braille: Make image printing working also if ImageMagick
generates formatted images without header.
- braille: If the user does not select a Braille translation,
let the embosser do the translation.
- cups-browsed: Added version info to help screen and start-up
in debug mode, call help screen also via "--version" option.
- cups-browsed: Minor improvements in help screen and man
page.
CHANGES IN V1.5.0
- cups-browsed: Allow use of an alternative configuration file
via the "-c" command line option.
- cups-browsed: Allow supplying configuration settings via the
command line using the "-o" command line option.
- cups-browsed: Command line help via the "-h" or "--help"
command line option.
CHANGES IN V1.4.0
- foomatic-rip: SECURITY FIX: Also consider the semicolon
(';') as an illegal shell escape character. Thanks to Adam
Chester (adam dot chester at pentest dot co dot uk) for the
hint (CVE-2015-8560).
- brftoembosser, imagetobrf, imagetoubrl, imageubrltoindexv3,
imageubrltoindexv4, textbrftoindexv3, textbrftoindexv4,
texttobrf, braille.convs, braille.types, generic-brf.drv,
indexv3.drv, indexv4.drv: Added support for Braille
embossing via CUPS. Text and even images can now be sent to
a Braille embosser like to a printer. Thanks to Samuel
Thibault (samuel dot thibault at ens-lyon dot org) for this
contribution.
CHANGES IN V1.3.0
- cups-browsed: Added new BrowseFilter directive in
cups-browsed.conf. This directive allows filtering of the
remote printers to be accepted on most properties/metadata
supplied with the DNS-SD broadcasts. This allows, in
addition to BrowseAllow/BrowseDeny/BrowseOrder, to reduce
the amount of printers listed in print dialogs to a more
useful amount.
- cups-browsed: Added support for BrowseDeny and BrowseOrder
directives in cups-browsed.conf.
- cups-browsed: Let the BrowseAllow lines in cups-browsed.conf
also apply to remote printers discovered via DNS-SD.
- cups-browsed: Auto-create queues for PCL-5c/e printers but
not for HP inkjet printers (which also advertise themselves
as PCL printers).
- cups-browsed, sys5ippprinter: Recognize PCL-5c/e printers
not only by the application/vnd.hp-pcl MIME type but also by
application/pcl and application/x-pcl.
CHANGES IN V1.2.0
- cups-browsed: When using IP-address-based device URIs via
the "IPBasedDeviceURIs" directive in cups-browsed.conf, add
two additional settings to restrict the used IP addresses to
either only IPv4 addresses or only IPv6 addresses.
- foomatic-rip: SECURITY FIX: Also consider the back tick
('`') as an illegal shell escape character. Thanks to Michal
Kowalczyk from the Google Security Team for the hint
(CVE-2015-8327).
CHANGES IN V1.1.0
- Version numbering scheme changed: Releases with feature
addition/change have the minor number increased now, pure
bug fix releases get the revision number increased, to make
use of the minor number which stayed zero all the time.
- cups-browsed: Added "DefaultOptions" directive to
cups-browsed.conf to allow defining default option settings
for local queues to be generated for newly appearing remote
printers.
- cups-browsed: Removed assert() calls which remained from
copy and paste in the very beginning of the development of
cups-browsed. assert() is only for use during debugging and
should not be used in production code.
- cups-browsed: Let option settings of a generated print queue
be saved before taking the queue down so that when the remote
printer appears again all user changes get restored, making
user changes permanent on generated queues.
- foomatic-rip: Fixed string length for shell path constant, to
work also with systems having longer paths (Bug #1325)
- cups-browsed: Added a mode in which IP-based device URIs
for the generation of local print queues are used, for
cases with problems in local host name resolution.
- foomatic-rip: Use -dFirstPage=... and -dLastPage=... only
if really needed (Bug #1324).
- cups-browsed, implicitclass: Make the load-balancing
configurable so that one can select whether the jobs get
queued up locally like in a CUPS class or whether they get
immediately distributed to the remote servers letting them
queue up there.
CHANGES IN V1.0.76
- cups-browsed: Make build also working with BSD make (Bug
#1310).
- cups-browsed, implicitclass: Let the load-balancing queue up
the jobs in the local (generated) queue until a free (idle,
enabled, and accepting jobs) remote queue is found (check
every 5 sec if no free queue available). This gives a more
even distribution of the work amongst the servers and
protects against the case that a bunch of jobs gets
inaccessible or lost if one of the servers fails.
- cups-browsed: Let the load-balancing also check whether the
destination queue is actually accepting jobs.
- cups-browsed: If a generated queue is not removed on
shutdown of cups-browsed due to remaining jobs in it,
re-enable it in the next cups-browsed session even if it was
disabled by something other than cups-browsed.
- implicitclass: Clean up debug and error messages.
- implicitclass: Fix exit codes for immediate retry of jobs.
- cups-browsed: Make absence of CUPS notifications via D-Bus
non-fatal and fall back to the old behavior of cups-browsed
(fail-over instead of load balancing for equally-named
remote queues, do not remove generated queue if it is
default instead of default printer management). This solves
problems of CUPS and/or cups-browsed built without D-Bus
support or absence of D-Bus on the system (Bug #1316).
- cups-browsed: Do not use g_warning() function, sneaked in by
copy and paste of CUPS subscription functions.
CHANGES IN V1.0.75
- texttopdf: Really support BoldItalic (original texttops just maps
BoldItalic to Bold).
- texttopdf: Fixed segfault when outputting BoldItalic (Bug #1314).
CHANGES IN V1.0.74
- cups-browsed: Added NULL check when getting the notification of
a printer starting to process a job and checking whether this
printer is created by cups-browsed with the implicitclass:
backend (Ubuntu bug #1488524).
- backends: Include unistd.h and fcntl.h in backend-private.h for
all platforms, not only Linux, so that the backends build also
on non-Linux platforms (Bug #1308).
- cups-browsed: Do not schedule printers for update when they are
already marked as disappeared.
- cups-browsed: Added sanity checks when saving the default printer
selection in a file.
- cups-browsed, implicitclass: If remote queues disappear or
cups-browsed shuts down and a cups-browsed-generated queue still
has jobs and needs to be kept therefore, disable it and re-enable
it when cups-browsed starts again and/or the remote queue(s) re-
appear(s). This avoids repeated retries of the jobs while the
remote server is not available, causing unneeded system load and
battery consumption.
- cups-browsed: After polling info from remote CUPS servers to find
the best destination job, set the default CUPS server back to local.
CHANGES IN V1.0.73
- cups-browsed: Added missing
utils/org.cups.cupsd.Notifier.xml file.
CHANGES IN V1.0.72
- cups-browsed, implicitclass: Added load balancing
functionality. If there are several remote CUPS printers
with the same name, they for locally a cluster represented
by a print queue with this name. This printer prints through
a special backend (implicitclass) which makes cups-browsed
find the best destination remote queue (fewest jobs,
enabled) for this job.
- cups-browsed: Added protection against accidental deletion of
print queues generated by cups-browsed. These queues now get
automatically re-created.
- cups-browsed: Added LDAP support. Appropriately configured via
cups-browsed.conf remote printers made available via LDAP will be
looked up and local queues pointing to them created. Thanks to
Raphael Geissert (atomo64 at gmail dot com) for contributing this
patch (Debian bug #795185).
- cups-browsed: Introduced new handling for the default
printer using cache files. So we do not need to keep an auto-generated
queue because it is set as default printer. If the auto-generated
queue disappears, the old local printer is set as default again and
when it re-appears it returns to be the default printer.
- cups-browsed: Added infrastructure for subscribing to CUPS
notifications for things like improved default printer handling,
load balancing, ...
- foomatic-rip: Prevent crash when supplying "media" option with empty
value ("media=", Ubuntu bug #1479871).
- pdftoopvp: Adaptations to API changes on Poppler 0.34.0, note that
this patch disables color management in this filter. Thanks to
Vincent le Garrec and Andreas K. Huettel for the patch (Bug #1301,