summaryrefslogtreecommitdiff
path: root/CHANGES-1.2.txt
blob: 7b0b1f2de1584fc66f76193797e5d36a0d3c4e35 (plain)
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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
CHANGES-1.2.txt
---------------

CHANGES IN CUPS V1.2.12

	- The PHP cups_print_file() function crashed if the options
	  array contained non-string option values (STR #2430)
	- The image/tiff file matching rule incorrectly identified
	  some text files as TIFF files (STR #2431)
	- The filter(7) man page incorrectly documented the
	  "PAGE: total #-pages" message (STR #2427)
	- PCL text files were mis-identified as HP-GL/2 and
	  caused the HP-GL/2 filter to hang (STR #2423)
	- When printing to a queue with user ACLs, the scheduler
	  incorrectly returned a quota error instead of a "not
	  allowed to print" error (STR #2409)
	- cupsaddsmb could get in a loop if no printer drivers
	  were installed (STR #2407)
	- cupsRasterReadHeader() did not byte-swap the header
	  properly when compiled with certain versions of GCC.
	- The IPP backend did not send the document-format
	  attribute for filtered jobs (STR #2411)
	- Some PPD files could cause a crash in ppdOpen2 (STR
	  #2408)
	- The web admin interface incorrectly handled the "share
	  printers" and "show remote printers" settings (STR
	  #2393)
	- The scheduler's log messages about AuthClass and
	  AuthGroupName advised using a replacement directive but
	  had the wrong syntax (STR #2400)
	- Updated the PostScript/PJL and HP-GL/2 MIME rules to
	  look in the first 4k of the file, not just the first 1k
	  (STR #2386)
	- Updated the Italian localization (STR #2382)


CHANGES IN CUPS V1.2.11

	- Fixed the "relaying from" log message (STR #2376)
	- Updated the launchd support on Mac OS X to better
	  support reconfiguration.
	- "make distclean" didn't remove all generated files
	  (STR #2366)
	- Fixed a bug in the advertisement of classes (STR
	  #2373)
	- The IPP backend now stays running until the job is
	  actually printed by the remote server; previously
	  it would stop monitoring the job if it was held or
	  temporarily stopped (STR #2352)
        - PDF files were not always printed using the correct
          orientation (STR #2348)
        - The scheduler could crash if you specified a bad file:
          URI for a printer (STR #2351)
        - The Renew-Subscription operation now returns the
          notify-lease-duration value that was used (STR #2346)
        - The IPP backend sent job options to IPP printers,
          however some printers tried to override the options
          embedded in the PS/PCL stream with those job options
          (STR #2349)
	- ppdLocalize() now also tries a country-specific
	  localization for when localizing to a generic locale
	  name.
	- The cupstestppd program now allows for partial
	  localizations to reduce the size of universal PPD
	  files.
	- Chinese PPD files were incorrectly tagged with the
	  "cn" locale (should have been "zh")
	- The backends now manage the printer-state-reasons
	  attribute more accurately (STR #2345)
	- Java, PHP, Perl, and Python scripts did not work
	  properly (STR #2342)
	- The scheduler would take forever to start if the
	  maximum number of file descriptors was set to
	  "unlimited" (STR #2329)
	- The page-ranges option was incorrectly applied to the
	  banner pages (STR #2336)
	- Fixed some GCC compile warnings (STR #2340)
	- The DBUS notification code was broken for older
	  versions of DBUS (STR #2327)
	- The IPv6 code did not compile on HP-UX 11.23 (STR
	  #2331)
	- PPD constraints did not work properly with custom
	  options.
	- Regular PPD options with the name "CustomFoo" did
	  not work.
	- The USB backend did not work on NetBSD (STR #2324)
	- The printer-state-reasons attribute was incorrectly
	  cleared after a job completed (STR #2323)
	- The scheduler did not set the printer operation policy
	  on startup, only on soft reload (STR #2319)
	- The AP_FIRSTPAGE_InputSlot option did not clear any
	  ManualFeed setting that was made, which caused problems
	  with some PPD files (STR #2318)
	- cupsDoFileRequest() and cupsDoRequest() did not abort
	  when getting an error in the response (STR #2315)
	- The scheduler did not schedule jobs properly to remote
	  or nested classes (STR #2317)
	- Updated the mime.types and mime.convs headers to warn
	  that the files are overwritten when CUPS is installed.
	  Local changes should go in local.types or local.convs,
	  respectively (STR #2310)
	- The scheduler could get in an infinite loop if a
	  printer in an implicit class disappeared (STR #2311)
	- The pstops filter did not handle %%EndFeature comments
	  properly (STR #2306)
	- Fixed a problem with the Polish web page printer icons
	  (STR #2305)
	- ppdLocalize() now also localizes the cupsICCProfile
	  attributes.
	- The scheduler still had a reference to the incorrect
	  "notify-recipient" attribute (STR #2307)
	- The "make check" and "make test" subscription tests did
	  not set the locale (STR #2307)
	- The "make check" and "make test" subscription tests
	  incorrectly used the notify-recipient attribute instead
	  of notify-recipient-uri (STR #2307)
	- cupsRasterInterpretPPD() incorrectly limited the
	  cupsBorderlessScalingFactor when specified in the
	  job options.


CHANGES IN CUPS V1.2.10

	- ppdLocalize() now supports localizing for Japanese
	  using the "jp" locale name used by the ppdmerge
	  program from the CUPS DDK 1.1.0 (STR #2301)
	- _cupsAdminSetServerSettings() did not support changing
	  of top-level directives as designed.
	- The init script path check was broken.
	- CUPS incorrectly used the attribute "notify-recipient"
	  instead of "notify-recicpient-uri" in several places
	  (STR #2297)
	- Fixed a configure script bug on MirBSD (STR #2294)
	- The pdftops filter did not limit the amount of recursion
	  of page sets (STR #2293)
	- Custom page sizes with fractional point sizes did not
	  work (STR #2296)
	- The lpoptions command would crash when adding or removing
	  options on a system with no printers (STR #2295)


CHANGES IN CUPS V1.2.9

	- The scheduler did not use the default job-sheets
	  (banners) for implicit classes (STR #2284)
	- The scheduler could crash when listing complete jobs
	  that had been unloaded from memory (STR #2288)
	- The French localization was doubled up (STR #2287)
	- Build system fixes for several platforms (STR #2260,
	  STR #2275)
	- The scheduler's openssl certificate generation code was
	  broken on some platforms (STR #2282)
	- The scheduler's log rotation check for devices was
	  broken (STR #2278)
	- The LPD mini-daemon did not handle the document-format
	  option correctly (STR #2266)
	- The pdftops filter ignored the "match" size option in the
	  pdftops.conf file (STR #2285)
	- cupstestppd now validates UTF-8 text strings in
	  globalized PPD files (STR #2283)
	- The outputorder=reverse option did not work with all
	  printers (STR #2279)
	- Classes containing other classes did not always work
	  (STR #2255)
	- Printer location and description information was lost
	  if the corresponding string contained the "#" character
	  (STR #2254)
	- cupsRemoveOption() did not work properly (STR #2264)
	- The USB backend did not work with some USB to parallel
	  cables on Mac OS X.
	- The test page did not print the rulers properly on
	  large media sizes (STR #2252)
	- The text filter could crash when pretty printing certain
	  types of files (STR #2158)


CHANGES IN CUPS V1.2.8

	- Documentation fixes (STR #2141, STR #2157)
	- The HTTP upgrade redirection used by the scheduler did
	  not work with Internet Explorer (STR #2235)
	- Members of a class with Unicode names did not appear
	  correctly in the web interface (STR #2154)
	- Changing the "Save debugging information" setting in
	  the web interface no longer affects the other server
	  settings (STR #1993)
	- The scheduler did not choose SSL certificates correctly
	  on Mac OS X (STR #2225)
	- The scheduler could get in an infinite loop when
	  printing to a remote class (STR #2228)
	- The jobs web page did not have separating space after
	  the number of pages column (STR #2230)
	- Added French localization (STR #2221)
	- Updated Spanish localization (STR #2223)
	- Updated Japanese localization (STR #2216)
	- cupsBorderlessScalingFacter was limited to a range of
	  0.9 to 1.1, but some printers need larger values (STR
	  #2222)
	- Landscape printing of PDF files did not always work
	  (STR #2149)
	- Fixed slow USB printing on Minolta printers (STR #2104,
	  STR #2219)
	- The ZPL label printer driver could produce stretched
	  output (PR #6448)
	- The IPP backend now clears the printer-state-message
	  when there are no outstanding errors or warnings (STR
	  #2126)
	- The CUPS Java scripting support did not work with
	  recent versions of Java due to the use of Sun's private
	  Base64 class (STR #2152)
	- The scheduler did not pass HTTP GET form variables to
	  custom CGI programs (STR #2173)
	- The lpoptions command now displays the reason why a PPD
	  file cannot be found (STR #2184)
	- The scheduler did not accept "none" as a browse
	  protocol name (STR #2200)
	- The scheduler still loaded the remote printer cache,
	  even when browsing was disabled (STR #2198)
	- The SNMP backend now shows OfficeJet printers with the
	  "HP" manufacturer prefix (STR #2151)
	- Web interface HTML cleanup (STR #2153)
	- The parallel backend consumed 100% CPU on FreeBSD due
	  to an apparently common parallel port driver bug (STR
	  #2161)
	- ippReadIO() incorrectly returned IPP_IDLE when the
	  initial IPP message header could not be read (STR
	  #2179)
	- cupsRasterInterpretPPD() did not support custom options
	  (STR #1960)
	- Collated output produced by the PostScript filter could
	  lose some options (STR #2137)
	- job-hold-until with time values for the next day would
	  be held for 60 days (STR #2144)
	- Some types of Sun raster files did not print correctly
	  (STR #2107)
	- Raw PBM files did not print correctly (STR #2106)
	- The SNMP backend no longer uses IPP with HP printers,
	  as some recent firmware versions appear to not work
	  (STR #2055)
	- cupsMarkOptions() did not handle the
	  multiple-document-handling option (STR #2135)
	- lpstat did not show the local job ID of active printers
	  (STR #2125)
	- The backends incorrectly used STATUS:
	  media-tray-empty-error messages for out-of-paper
	  conditions (STR #2123, STR #2124)
	- cupsGetPPD2() returned the wrong error when the PPD
	  file did not exist (STR #2122)
	- cupsDoAuthentication() did not translate the password
	  prompt (STR #2121)
	- httpGetLength2() did not handle error messages without
	  content correctly (STR #2133)
	- Added support for 32/64-bit libraries on HP-UX Itanium
	  systems (STR #2115)
	- Fixed a configure script problem with the 32/64-bit
	  library support (STR #2114)
	- The PostScript filter did not properly output document
	  setup commands for reversed output (STR #2111)
	- The scheduler did not parse IPv6 netmasks properly (STR
	  #2117)


CHANGES IN CUPS V1.2.7

	- Documentation updates (STR #2089)
	- Added an Italian translation (STR #2105)
	- The PostScript filter now rotates the bounding box
	  values as needed (STR #2079)
	- The scheduler no longer loads the remote printer cache
	  when browsing is disabled (STR #2084)
	- The scheduler no longer writes a new launchd
	  configuration file if it doesn't have to (STR #2083)
	- Updated the USB and PAP backends for Mac OS X (STR
	  #2086)
	- The scheduler now picks up on changes to IPv6 and DNS
	  configuration on Mac OS X (STR #2085)
	- The lpstat program could still hang (STR #2098)
	- Fixed an inefficiency in the SNMP IPP detection code
	  (STR #2100)
	- The SSL negotiation code did not implement short
	  timeouts (STR #2091)


CHANGES IN CUPS V1.2.6

	- The web interface was not localized on Mac OS X (STR
	  #2075)
	- "lpc status" did not show the number of queued jobs for
	  disabled queues (STR #2069)
	- The lpstat program could hang (STR #2073)
	- The serial backend did not support the new USB serial
	  filenames on Linux (STR #2061)
	- The parallel backend did not support bidirectional I/O
	  properly (STR #2056)
	- The network backends now log the numeric address that
	  is being used (STR #2046)
	- Fixed a compile error when using libpaper.
	- Fixed a compile error when compiling on Solaris with
	  threading enabled (STR #2049, STR #2050)
	- Missing printer-state-changed event for
	  printer-state-message updates (STR #2047)


CHANGES IN CUPS V1.2.5

	- Documentation updates (STR #2038)
	- The SNMP backend no longer uses IPP for Epson printers
	  (STR #2028)
	- Updated the configure script for Tru64 UNIX 5.1 (STR
	  #2033)
	- Tru64 5.1B's getaddrinfo() and getnameinfo() functions
	  leak file descriptors (STR #2034)
	- cupsAddDest() didn't add the parent destination's
	  options and attributes.
	- ppdConflicts() did not handle custom option
	  constraints.
	- Raw printing of gzip'd files did not work (STR #2009)
	- The scheduler no longer preserves default option
	  choices when the new PPD no longer provides the old
	  default choice (STR #1929)
	- The Linux SCSI backend is now only built if the SCSI
	  development headers are installed.
	- USB printing to Minolta printers did not work (STR
	  #2019)
	- Windows clients could not monitor the queue status (STR
	  #2006)
	- The scheduler didn't log the operation name in the
	  access_log file for Create-Job and Print-Job requests.
	- The PostScript filter now separates collated copies
	  with any required JCL commands so that JCL-based
	  finishing options act on the individual copies and not
	  all of the copies as a single document.
	- The PostScript filter now disables duplex printing when
	  printing a 1-page document.
	- cups-lpd didn't pass the correct
	  job-originating-host-name value (STR #2023)
	- Fixed some speling errors in the German message catalog
	  (STR #2012)
	- cupstestppd did not catch PPD files with bad
	  UIConstraints values (STR #2016)
	- The USB backend did not work with the current udev-
	  created printers if the first printer was disconnected
	  (STR #2017)
	- Mirrored and rotated printing did not work with some
	  documents (STR #2004)
	- 2-sided printing with banners did not work properly on
	  some printers (STR #2018)
	- Updated the raw type rule to handle PJL within the
	  first 4k of a print job (STR #1969)
	- Added an Estonian translation (STR #1957)
	- Clarified the documentation for the cupsd.conf @LOCAL
	  and @IF(name) allow/deny functionality (STR #1992)
	- The PostScript filters did not escape the Title and For
	  comments in the print job header (STR #1988)
	- The scheduler would use 100% CPU if browsing was
	  disabled and the cupsd.conf file contained BrowsePoll
	  lines (STR #1994)
	- The cupsDirRead() function did not work properly on
	  non-POSIX-compliant systems (STR #2001)
	- The cupsFile functions didn't handle read/write errors
	  properly (STR #1996)
	- The DBUS support now works with older versions of the
	  DBUS library.


CHANGES IN CUPS V1.2.4

	- The --with-printcap configure option did not work (STR
	  #1984)
	- The character set reported by cupsLangGet() did not
	  always reflect the default character set of a given
	  locale (STR #1983)
	- Older Lexmark and Tektronix printers did not work with
	  IPP (STR #1980)
	- Failsafe printing did not work (PR #6328)
	- Some web interface redirects did not work (STR #1978)
	- The web interface change settings button could
	  introduce a "Port 0" line in cupsd.conf if there was no
	  loopback connection available (STR #1979)
	- The web interface change settings and edit
	  configuration file buttons would truncate the
	  cupsd.conf file (STR #1976)
	- The German web interface used the wrong printer icon
	  images (STR #1973)
	- The "All Documents" link in the on-line help was
	  missing a trailing slash (STR #1971)
	- The Polish web interface translation used the wrong
	  URLs for the job history (STR #1963)
	- The "reprint job" button did not work (STR #1956)
	- The scheduler did not always report printer or job
	  events properly (STR #1955)
	- The scheduler always stopped the queue on error,
	  regardless of the exit code, if the error policy was
	  set to "stop-printer" (STR #1959)
	- ppdEmitJCL() included UTF-8 characters in the JCL job
	  name, which caused problems on some printers (STR
	  #1959)
	- Fixed a buffering problem that cause high CPU usage
	  (STR #1968)
	- The command-line applications did not convert
	  command-line strings to UTF-8 as needed (STR #1958)
	- cupsDirRead() incorrectly aborted when reading a
	  symbolic link that pointed to a file/directory that did
	  not exist (STR #1953)
	- The cupsInterpretRasterPPD() function did not handle
	  custom page sizes properly.


CHANGES IN CUPS V1.2.3

	- The scheduler did not send job-state or
	  job-config-changed events when a job was held,
	  released, or changed (STR #1947)
	- The scheduler now aborts if the configuration file and
	  directory checks fail (STR #1941)
	- Fixed a problem with ippPort() not using the port
	  number that was set via the client.conf file or
	  CUPS_SERVER environment variable (STR #1945)
	- HTTP headers were not buffered (STR #1899)
	- Some IPP printers (HP) did not like UTF-8 job names
	  (STR #1837)
	- The CUPS desktop icon is now localized for Polish (STR
	  #1920)
	- Printer options were not always honored when printing
	  from Windows clients (STR #1839)
	- The openssl command would lock up the scheduler when
	  generating an encryption certificate on some platforms
	  due to a lack of entropy for the random number
	  generator (STR #1876)
	- The web admin page did not recognize that "Listen 631"
	  enabled remote access (STR #1908)
	- The web admin page did not check whether changes were
	  made to the Basic Server Settings check boxes (STR
	  #1908)
	- The IPP backend could generate N*N copies in certain
	  edge cases.
	- The scheduler did not restore remote printers properly
	  when BrowseShortNames was enabled (STR #1893)
	- Polling did not handle changes to the network
	  environment on Mac OS X (STR #1896)
	- The "make test" subscription tests used invalid
	  notify-recipient-uri values (STR #1910)
	- Printers could be left in an undefined state on system
	  sleep (STR #1905)
	- The Berkeley and System V commands did not always use
	  the expected character set (STR #1915)
	- Remote printing fixes (STR #1881)
	- The cupstestppd utility did not validate translation
	  strings for custom options properly.
	- Multi-language PPD files were not properly localized in
	  the web interface (STR #1913)
	- The admin page's simple settings options did not check
	  for local domain socket or IPv6 addresses and did not
	  use "localhost" as the listen address.
	- An empty BrowseProtocols, BrowseLocalProtocols, or
	  BrowseRemoteProtocols line would crash the scheduler
	  instead of disabling the corresponding browsing options.
	- The scheduler now logs IPP operation status as debug
	  messages instead of info or error.
	- cupsFileRewind() didn't clear the end-of-file state.
	- cupstestppd didn't report the actual misspelling of the
	  1284DeviceID attribute (STR #1849) 
	- BrowseRelay didn't work on Debian (STR #1887)
	- configure --without-languages didn't work (STR #1879)
	- Manually added remote printers did not work (STR #1881)
	- The <cups/backend.h> header was not installed.
	- Updated the build files for Autoconf 2.60 (STR #1853)
	- The scheduler incorrectly terminated the polling
	  processes after receiving a partial log line.
	- The cups-lpd mini-daemon reported "No printer-state
	  attribute found" errors when reporting the queue status
	  (PR #6250, STR #1821)
	- SNMP backend improvements (STR #1737, STR #1742, STR
	  #1790, STR #1835, STR #1880)
	- The scheduler erroneously reported an error with the
	  CGI pipe (STR #1860)
	- Fixed HP-UX compile problems (STR #1858, STR #1859)
	- cupstestppd crashed with some PPD files (STR #1864)
	- The <cups/dir.h> and <cups/file.h> header files did not
	  work with C++.


CHANGES IN CUPS V1.2.2

	- Documentation updates (STR #1765, STR #1780)
	- CUPS didn't know about alternate character set names
	  for Asian text (STR #1819)
	- The lpoptions -o and -r options did not work unless you
	  specified a printer.
	- The lpoptions command incorrectly allowed users to set
	  printer attributes like printer-type (STR #1791)
	- httpWait() did not flush the write buffer, causing "bad
	  request" errors when communicating with CUPS 1.1.x
	  servers (STR #1717)
	- Polling did not sanitize the printer description,
	  location, or make and model strings like broadcasts
	  did.
	- Polled printers did not show the server's default
	  job-sheets option value.
	- The Samba password prompt was not properly localized
	  (STR #1814)
	- Added a German translation (STR #1842)
	- The scheduler now creates self-signed SSL certficates
	  automatically when using OpenSSL and CDSA for
	  encryption, just as for GNU TLS.
	- The SNMP backend sporatically reported some printers as
	  "unknown" (STR #1774)
	- The scheduler now forces BrowseTimeout to be at least
	  twice the BrowseInterval value and non-zero to avoid
	  common configuration errors.
	- The scheduler incorrectly returned printer URIs of the
	  form "ipp://server/printers/classname" for classes (STR
	  #1813)
	- Updated Japanese localization (STR #1805)
	- The scheduler's SSL certificate/key directory was not
	  created on installation (STR #1788)
	- Added a mailto.conf man page and help page (STR #1754)
	- The parallel and USB backends no longer wait for the
	  printer to go on-line - this caused problems with
	  certain printers that don't follow with the IEEE-1284
	  standard (STR #1738)
	- The scheduler could crash on a reload when implicit
	  classes were present (STR #1828)
	- The IPP backend incorrectly used the CUPS_ENCRYPTION
	  environment variable to determine the default
	  encryption mode when printing (STR #1820)
	- USB printing did not work on Solaris (STR #1756)
	- The scheduler sorted job priorities in the wrong order
	  (STR #1811)
	- The scheduler did not automatically restart notifiers
	  that exited or crashed (STR #1793)
	- IPv6 support did not work on NetBSD (STR #1834)
	- The EPM packaging file did not work (STR #1804)
	- The scheduler used up the CPU if BrowseRemoteProtocols
	  was empty (STR #1792)
	- Custom page sizes did not work (STR #1787)
	- The SNMP backend could crash on some systems when SNMP
	  logging was enabled (STR #1789)
	- Browsing could produce some funny printer names when
	  ServerName was set to an IP address (STR #1799)
	- Fixed the log message for BrowseRelay (STR #1798)
	- Fixes to allow CUPS to compile on MirBSD (STR #1796)
	- The scheduler incorrectly set the FINAL_CONTENT_TYPE
	  environment variable (STR #1795)
	- The pdftops filter incorrectly embedded a "produced by"
	  comment, causing PDF printing not to work on some
	  operating systems (STR #1801)
	- Sending raw jobs from a client system could cause the
	  client's scheduler to eventually crash (STR #1786)
	- The scheduler now checks that the notifier exists prior
	  to accepting a new subscription request.
	- The scheduler now reports the supported
	  notify-recipient schemes based on the contents of the
	  ServerBin/notifier directory.
	- Event notifications did not include the
	  notify-sequence-number or other required attributes
	  (STR #1747)
	- Allow/Deny addresses of the form "11.22.33.*" did not
	  work on Linux (STR #1769)
	- cupsGetPPD() did not work if the scheduler was only
	  listening on a domain socket (STR #1766)
	- The scheduler could crash advertising a class (STR
	  #1768)
	- The scheduler could crash if the default printer was
	  deleted (STR #1776)
	- Added a new default CUPS raster format (v3) which does
	  not compress the raster stream in order to provide the
	  same cupsRasterReadPixels() and cupsRasterWritePixels()
	  performance as CUPS 1.1.x.
	- The cupsaddsmb man page listed the wrong files for the
	  CUPS driver.
	- Some configure --with options did not work (STR #1746)
	- "Allow @IF(name)" didn't work if "name" wasn't the
	  first network interface (STR #1758)
	- The lpstat command did not use the correct character
	  set when reporting the date and time (STR #1751)
	- The cupsaddsmb command and web interface did not update
	  the Windows PPD files properly, resulting in corrupt
	  PPD files for the Windows client to use (STR #1750)
	- The cupsd.conf man page didn't describe the Listen
	  domain socket syntax (STR #1753)
	- The scheduler no longer tries to support more than
	  FD_SETSIZE file descriptors.
	- CDSA (encryption) support fixes for MacOS X.
	- The lppasswd program needs to be setuid to root to
	  create and update the /etc/cups/passwd.md5 file (STR
	  #1735)
	- 32/64-bit library installation was broken (STR #1741)
	- The USB backend now reports a "no such device" error
	  when using the old filename-based USB URIs instead of
	  the "success" error.
	- Increased the HTTP and IPP read timeouts to 10 seconds,
	  as 1 second was too short on congested networks (STR
	  #1719)
	- The SNMP backend now uses the device description over
	  the printer-make-and-model attribute when the attribute
	  contains a generic name (STR #1728)
	- Fixed another file descriptor leak when printing raw
	  files (STR #1736)
	- Raw queues were not shared via LDAP (STR #1739)
	- The pstops filter didn't always embed PageSetup
	  commands from the PPD file (STR #1740)
	- "make install" didn't work if you disabled all of the
	  localizations.
	- The scheduler didn't always choose the least costly
	  filter.
	- Fixed parsing of IPv6 addresses in Allow, Deny,
	  BrowseAllow, BrowseDeny, and BrowseRelay directives
	  (STR #1713)
	- Printers that were shared via LDAP did not get added to
	  the LDAP server properly (STR #1733)
	- LDAP browsing would crash the scheduler if a required
	  value was missing (STR #1731)
	- Special cases for the "localhost" hostname did not
	  work, causing printing to not work when the /etc/hosts
	  file did not contain a localhost entry (STR #1723)
	- Updated the Spanish translation (STR #1720, STR #1770)
	- Reverse-order page output was broken when N-up or
	  landscape orientations were used (STR #1725)
	- The parallel, serial, socket, and USB backends needed
	  print data before they would report back-channel data,
	  causing problems with several new drivers (STR #1724)


CHANGES IN CUPS V1.2.1

	- "lprm -h hostname" did not work (STR #1800)
	- The web interface did not handle reloads properly for
	  MSIE (STR #1716)
	- The configure script no longer adds linker rpath
	  options when they are unnecessary.
	- The scheduler could crash printing a debug message on
	  Solaris (STR #1714)
	- The --enable-32bit and --enable-64bit configure options
	  did not always work.
	- The password prompt showed the domain socket address
	  instead of "localhost" for local authentication (STR
	  #1706)
	- The web interface filtered the list of printers even if
	  the user wasn't logged in (STR #1700)
	- The IPP backend did not work reliably with some Xerox
	  printers (STR #1704)
	- Trailing banners were not added when printing a single
	  file (STR #1698)
	- The web interface support programs crashed on Solaris
	  (STR #1699)
	- cupstestppd incorrectly reported problems with
	  *1284DeviceID attributes (STR #1710)
	- Browsing could get disabled after a restart (STR #1670)
	- Custom page sizes were not parsed properly (STR #1709)
	- The -U option wasn't supported by lpadmin (STR #1702)
	- The -u option didn't work with lpadmin (STR #1703)
	- The scheduler did not create non-blocking back-channel
	  pipes, which caused problems when the printer driver
	  did not read the back-channel data (STR #1705)
	- The scheduler no longer uses chunking in responses to
	  clients - this caused problems with older versions of
	  CUPS like 1.1.17 (PR #6143)
	- Automatic raw printing was broken (STR #1667)
	- 6-up printing was broken (STR #1697)
	- The pstops filter did not disable CTRL-D processing on
	  the printer/RIP.
	- ppdOpen*() did not load custom options properly (STR
	  #1680)
	- "Set Printer Options" in the web interface did not
	  update the DefaultImageableArea or
	  DefaultPaperDimension attributes in the PPD file (STR
	  #1689)
	- Fixed compile errors (STR #1682, STR #1684, STR #1685,
	  STR #1690)
	- The lpstat command displayed the wrong error message
	  for a missing destination (STR #1683)
	- Revised and completed the Polish translation (STR
	  #1669)
	- Stopped jobs did not show up in the list of active jobs
	  (STR #1676)
	- The configure script did not use the GNU TLS
	  "libgnutls-config" script to find the proper compiler
	  and linker options.
	- The imagetoraster filter did not correctly generate
	  several 1, 2, and 4-bit color modes.
	- cupsRasterWritePixels() could lose track of the current
	  output row.
	- cupsRasterReadPixels() did not automatically swap
	  12/16-bit chunked pixel data.
	- Moved the private _cups_raster_s structure out of the
	  public header.
	- Updated the CUPS raster format specification to include
	  encoding rules and colorspace definitions.
	- The Zebra PPD files had the wrong PostScript code for
	  the "default" option choices.
	- The imagetoraster filter did not generate correct CIE
	  XYZ or Lab color data.
	- The cups-config script did not work when invoked from a
	  source directory (STR #1673)
	- The SNMP backend did not compile on systems that used
	  the getifaddrs emulation functions (STR #1668)


CHANGES IN CUPS V1.2.0

	- Documentation updates (STR #1618, STR #1620, STR #1622,
	  STR #1637)
	- Static file copy buffers reduced from 64k to 32k to
	  work around bogus MallocDebug library assumptions (STR
	  #1660)
	- The scheduler did not decode the backend exit code
	  properly (STR #1648)
	- The MacOS X USB backend did not report the 1284 device ID,
	  nor did it fix device IDs returned by HP printers.
	- The scheduler started more slowly than 1.1.x with large
	  numbers of printers (STR #1653)
	- cupsRasterInterpretPPD() didn't support the
	  cupsPreferredBitsPerColor attribute, and imagetoraster
	  didn't use the new API.
	- The "make test" script did not create all of the necessary
	  subdirectories for testing (STR #1638)
	- The scheduler did not prevent rotation of logs
	  redirected to /dev/null (STR #1651)
	- "make test" did not include the SNMP backend in the
	  test environment (STR #1625)
	- The EPM packaging files did not work (STR #1621)
	- "Use Default Configuration" inserted a broken
	  configuration file (STR #1624)
	- Redirects in the web interface did not always preserve
	  the encrypted status of a connection (STR #1603)
	- Added the Apple "pap" backend.
	- Added CUPS library to CUPS Image shared library
	  linkage to support Linux --as-needed linker option
	  (STR #1606)
	- Fixed support for --enable-pie (STR #1609)
	- The pdftops filter did not validate the length of the
	  encryption key (STR #1608)
	- Updated the Polish localization.
	- "Encryption Required" in the cupsd.conf file now only
	  requires encryption when the connection is not over the
	  loopback interface or domain socket.
	- Printer names containing "+" were not quoted properly in
	  the web interface (STR #1600)
	- The SNMP backend now reports the make and model in the
	  information string so that the auto-generated printer
	  name is more useful than just an IP address.


CHANGES IN CUPS V1.2rc3

	- The cups-lpd program always did reverse lookups on the
	  client address, which could be a performance problem.
	  Added a "-n" option to disable lookups.
	- When configured with SSL support, require encryption by
	  default when displaying the /admin location (STR #1592)
	- The next job ID was not computed correctly if the job
	  cache file got out of sync with the spool directory
	  (STR #1582)
	- The PNG image handling code used deprecated functions
	  from libpng (STR #1587)
	- Added a Polish translation (STR #1584, STR #1586)
	- More changes to the scheduler to improve battery life
	  on portable devices (STR #1583)
	- Changed the default log level for status messages back
	  to "DEBUG" to be consistent with CUPS 1.1.x (STR #1579)
	- The error string was not set properly when
	  cupsDoFileRequest() was given the name of a directory
	  (STR #1578)
	- Fixed handling of job-hold-until (STR #1581)
	- Added explicit notes to the cupsaddsmb man page
	  explaining that the driver filenames are case-sensitive
	  under UNIX and that they must be all lowercase (Windows
	  2000) or all UPPERCASE (Windows 95/98/Me) to work (STR
	  #1568)
	- The USB backend incorrectly split the manufacturer name
	  if it contained spaces (STR #1566)
	- The scheduler would hang when listing PPD files for a
	  manufacturer whose name contained spaces (STR #1567)
	- Added the SNMP backend for network printer discovery
	  (STR #1555)
	- cupstestppd now fails PPD files with 1284DeviceId
	  instead of 1284DeviceID, and cups-driverd uses a
	  case-insensitive comparison when looking for it (STR
	  #1573)
	- cupsDoFileRequest() and cupsDoRequest() now work
	  properly with non-blocking HTTP connections.
	- Added Swedish translation (STR #1569)
	- "make install" now installs the MIME files with world
	  read permissions (STR #1565)
	- More CDSA encryption support fixes (STR #1563)
	- Updated the default mime.types file to support printing
	  of files that do not have a locally-recognized MIME
	  media type to raw or System V queues.
	- Updated the serial port detection code on Linux (STR
	  #1562)
	- Added some more error checking to httpGetHostname()
	  (STR #1561)
	- The title of some administration pages was not
	  localized (STR #1548)
	- The edit-config.tmpl file was not generated or
	  installed for the Spanish or Japanese localizations
	  (STR #1547)
	- The mimeDelete() function freed the types before the
	  filters, but the filters needed the type data (STR #1558)
	- The scheduler didn't keep track of the status pipes
	  properly, leading to a bad select() for multi-file jobs
	  (STR #1559)
	- The cupstestdsc program didn't validate the ordinal
	  page number value for %%Page: comments.


CHANGES IN CUPS V1.2rc2

	- The scheduler was not always using the string pool,
	  causing random crashes.
	- The lpmove and the web interface's Move Job button did
	  not work with stopped jobs (STR #1534)
	- The PostScript filter did not handle the page-set
	  option properly with number-up printing (STR #1543)
	- The scheduler now only warns about unsupported ACLs
	  once (STR #1532)
	- The "fitplot" option did not work with output from
	  Mozilla (STR #1542)
	- The imagetops filter did not work with Level 2 or 3
	  printers (STR #1533)
	- The scheduler now recognizes PostScript files with PJL
	  commands that do not include an ENTER LANGUAGE command.
	- Added --with-printcap configure option.
	- 64-bit SSL fixes for MacOS X.
	- The scheduler didn't send some printer state change
	  events.
	- The scheduler didn't send jobs to busy remote printers.
	- Fixed some problems with the launchd support.
	- Added new USB printer backend for MacOS X.
	- The PostScript filter now handles files that start with
	  an incomplete PJL header (PR #6076)
	- The web interface language selection code did not try
	  the generic language localization (STR #1531)
	- The language cache, string pool, and transcoding caches
	  are now process global instead of per-thread to avoid
	  problems with GNOME and to allow for data sharing
	  between threads (STR #1530)
	- Fixed a CUPS 1.1.x compatibility bug (STR #1528)
	- The web interface redirection after certain printer
	  administration tasks was broken (STR #1516)
	- Web interface authorization could get stuck (STR #1512)
	- Localization updates (STR #1513, STR #1518, STR #1520)
	- The pstops filter didn't work with some files (STR
	  #1523)
	- "./configure --enable-static" didn't work (STR #1522)
	- The scheduler was not using the configured default
	  Group (STR #1521)
	- The web interface still did not show the localized time
	  and date for some locales and systems (STR #1509)
	- httpAddrGetList() would crash on systems without
	  getaddrinfo().
	- Socket URIs without a trailing slash would cause the
	  port number to not be accepted (STR #1519)
	- Local raw and System V printers were not advertised as
	  such for printer browsing (STR #1502)
	- The RPM spec file incorrectly put duplicate copies of
	  the Japanese and Spanish web interface templates in the
	  main cups package (STR #1517)
	- cupsSetDests() did not explicitly set the permissions
	  of the /etc/cups/lpoptions file (STR #1508)
	- The lpq command crashed with the -h option (STR #1515)


CHANGES IN CUPS V1.2rc1

	- Documentation updates (STR #1497, STR #1498)
	- The scheduler now redirects browsers to https: URLs
	  when encryption is required.
	- The scheduler would crash when printing with a banner
	  (STR #1500)
	- cups-driverd did not use the LanguageEncoding attribute
	  in PPD files to convert the NickName to UTF-8 (STR
	  #1503)
	- The lpadmin command could not set the
	  printer-error-policy attribute (STR #1504)
	- The web interface did not show the time and date in the
	  correct format for the locale (STR #1505)
	- CUPS no longer accepts print jobs if a printer does not
	  support the file format (STR #1501)
	- Cleaned up the PostScript filter (pstops) so that it
	  properly supports %%IncludeFeature and page scaling
	  (STR #1453)
	- Fixed the cupsFileRewind() and cupsFileSeek() functions
	  to work properly with uncompressed files.
	- Added cupsFileGetLine(), cupsFileStderr(),
	  cupsFileStdin(), and cupsFileStdout() functions to the
	  CUPS library.
	- Added a new cupstestdsc program to test the DSC
	  conformance of PostScript files.
	- Added KDE/GNOME icons and a Manage Printers menu item.
	- Added --enable-image and --enable-pdftops configure
	  options to control whether the image and PDF filters
	  are built and installed (default = yes for all
	  platforms but MacOS X)
	- Fixed a minor memory leak in the PPD API.
	- Fixed transcoding issues (STR #1493)
	- The scheduler now enforces a minimum job cost of 100
	  when doing FilterLimit checks.
	- The scheduler would leak file descriptors when printing
	  to raw queues (STR #1491)
	- The IPv6 support did not compile on Tru64 UNIX (STR
	  #1488)
	- ppdOpen2() now converts the NickName and all UI text to
	  UTF-8 (STR #1475)
	- The Set Allowed Users web page did not work (STR #1486)
	- When the default policy was not set or set to a non-
	  existing policy, the scheduler did not set the default
	  policy name to "default" (STR #1484)
	- The Zebra CPCL driver did not use the correct righthand
	  margin for the 4" wide label sizes.
	- Fixed a problem with the parsing of fractional real
	  numbers in PPD files.
	- Added Spanish localization files (STR #1480)
	- Fixed localization of a few scheduler messages (STR
	  #1478)
	- Fixed support for HEAD requests in the scheduler (STR
	  #1481)


CHANGES IN CUPS V1.2b2

	- Updated the CUPS design description.
	- Added --enable-32bit and --enable-64bit configure
	  options to allow building of separate 32/64-bit
	  libraries on systems that support both environments
	  (STR #1472)
	- Various compiler warning fixes.
	- Fixes for Solaris 10 builds against old GNU TLS and
	  LDAP libraries.
	- Added a cupsArrayUserData() function to retrieve the
	  user data pointer for an array (useful for typing
	  arrays)
	- The ppdEmitString() function did not compute the
	  required buffer size properly, leading to dropped
	  characters on the end of the printer commands in pstops
	  and imagetops (STR #1470)


CHANGES IN CUPS V1.2b1

	- The serial backend now supports Equinox 8-port serial
	  hubs (STR #526)
	- The IPP backend now supports a compression option to
	  compress print files as they are sent to the remote
	  server (STR #956)
	- The CUPS browse protocol now supports passing of
	  default options and browse timeout values from the
	  server to the clients (STR #800)
	- Implicit classes that timed out could cause the
	  scheduler to crash (STR #1439)
	- Added DragonFly support in local device backends (STR
	  #1362)
	- Added LDAP printer browsing support (STR #338)
	- Added official support for printer maintenance commands
	  via the CUPS Command file format and hooks in the
	  printer-type and web interfaces (STR #932)
	- The HP-GL/2 filter could get in an infinite loop trying
	  to convert HP-PCL files (STR #1415)
	- CUPS now implements the HTTP/1.1 Expect header (STR
	  #1407)
	- Options in PPD files are no longer automatically put in
	  an "Extra" group; rather, all options that are not
	  inside an Open/CloseGroup will be placed in the
	  "General" group (STR #1385)
	- The scheduler now creates a job-uuid attribute that
	  uniquely identifies a job on a network (STR #1410)
	- The init script now unsets the TMPDIR environment
	  variable to prevent user temporary directories from
	  being used by cupsd accidentally (STR #1424)
	- Added support for launchd on MacOS X.
	- Added support for notify_post on MacOS X.
	- Added support for DBUS on Linux.
	- All of the Berkeley (except for lpc) and System V
	  commands now support specification of user, host, and
	  port (STR #1028, STR #1029, STR #1087)
	- The lpmove command now allows you to move all jobs for
	  a given queue (STR #56)
	- The web interface now supports moving of a job or jobs
	  to another queue (STR #56)
	- The web interface now provides searching, paging, and
	  changing of the sort/display order of classes, jobs,
	  and printers.
	- cupsaddsmb now accepts a password on the command-line
	  and supports passwords with special characters (STR
	  #822, STR #1236)
	- ppdLoad*() no longer tries to "fix" bad characters in
	  UI text (STR #1101)
	- Printer names can now (reliably) contain Unicode
	  characters (STR #896)
	- The lpstat command now shows the time and date of the
	  last printer state change instead of the hardcoded "Jan
	  01 00:00" (STR #659)
	- The scheduler now adds a job-actual-printer-uri
	  attribute to job objects when printing to a class (STR
	  #116)
	- The scheduler now logs log file open errors to the
	  system log (STR #1289)
	- The scheduler now sets the job-originating-user-name to
	  the authenticated username, if available (STR #1318)
	- The scheduler now only updates the permissions of SSL
	  keys and certificates when they are under the
	  ServerRoot directory (STR #1324)
	- The rastertodymo driver has been renamed to
	  rastertolabel (a symlink is installed so that existing
	  queues continue to work) and now also supports Zebra's
	  CPCL language.
	- The lpstat command could show the wrong active job for
	  a printer (STR #1301)
	- Fixed a potential crash problem in the scheduler when
	  aborting a CGI program (STR #1290)
	- Added a "cancel all jobs" button to the class and
	  printer web interfaces (STR #1140)
	- The add-printer web page now shows the
	  set-printer-options page after the printer has been
	  added (STR #690)
	- The classes web page now provides links to each of the
	  member printers (STR #307)
	- CUPS now handles HTTP request/response lines up to 32k
	  in length; this is mainly for better cookie support
	  (STR #1274)
	- Added support for the Apache PassEnv and SetEnv
	  directives to cupsd.conf (STR #853)
	- Added large file (64-bit) support (STR #541)
	- Fixed a performance issue with the ippReadIO()
	  implementation (STR #1284)
	- Fixed a performance issue with the scheduler's implicit
	  class implementation (STR #1283)
	- The pdftops filter now adds the Title and Creator
	  fields from the PDF file to the PostScript document
	  comments section (STR #539, STR #830)
	- Added a new cups_array_t and cupsArray*() functions to
	  the CUPS API to support sorted lists of data.
	- Made the CUPS API library thread-safe (STR #1276)
	- Added "media" option support for EFI EFMediaType option
	  (STR #902)
	- Added write buffering to the HTTP code to improve
	  performance (STR #547)
	- The scheduler now uses the attributes-natural-language
	  attribute to localize banner pages (STR #386)
	- The scheduler now returns the address that was used to
	  connect to it (STR #1076)
	- Fixed a problem with N-up printing and OpenOffice (STR
	  #576)
	- Added support for the GCC position independent
	  executable options (STR #1209)
	- Added new BrowseLocalProtocols and
	  BrowseRemoteProtocols directives to cupsd.conf,
	  allowing for different browse protocols for local and
	  remote printers (STR #877)
	- PPD files can now contain strings up to 256k in length
	  (STR #1215)
	- The pstops filter now supports the IncludeFeature DSC
	  comment (STR #1212)
	- The pstops filter now disables the setpagedevice
	  procedure when doing N-up printing (STR #1161)
	- The serial backend now supports "stop=1", "stop=2",
	  "parity=space", and "parity=mark" options (STR #1155)
	- "make install" no longer overwrites an existing PAM
	  configuration file (STR #1064)
	- The scheduler now closes all files on startup when run
	  in daemon mode (STR #1009)
	- Added a new RGBW colorspace to the CUPS raster format
	  (STR #1071)
	- The pdftops filter now sets the page size based on the
	  media box when not scaling the output (STR #912)
	- The pdftops filter now supports masked images (STR
	  #281)
	- The pdftops filter produced large output when rendering
	  PDF files containing lot of repeated images (STR #327)
	- The pdftops filter now minimizes print processing of
	  PDF files when using the page-ranges option (STR #273)
	- Updated pdftops filter to Xpdf 3.01.
	- Added new cupsBackchannelRead() and
	  cupsBackchannelWrite() functions, as well as
	  backchannel support to the parallel, serial, socket,
	  and USB backends (STR #1252)
	- The parallel and USB backends now treat a "no space
	  available" error as an out-of-paper condition (STR
	  #1225)
	- The "lpc" command now supports the "status all" command
	  (STR #1004)
	- ippReadIO() did not read collections properly (STR
	  #1249)
	- The "make test" script now creates the test files in
	  "/tmp/cups-$USER" instead of "/tmp/$USER" (STR #981)
	- All backends now abort on error when printing a job to
	  a class - this allows the next printer in the class to
	  print the job (STR #1084)
	- The scheduler now verifies that a printer supports
	  Letter or A4 media sizes before setting them as the
	  initial default (STR #1250)
	- The cupstestppd program now flags bad Resolution
	  options (STR #1269)
	- The USB backend now retries printing when the printer
	  is disconnected or turned off (STR #1267)
	- Added new httpGetHostname() function to CUPS API, and
	  use it instead of gethostname() so that the web
	  interface will work correctly on systems whose hostname
	  is not the FQDN (STR #1266)
	- The scheduler now stops printers if the backend for the
	  queue is missing on startup (STR #1265)
	- The configure script now supports "--disable-library"
	  to disable particular image file format support
	  libraries, even if they are available on the build
	  system (STR #1248)
	- The IPP backend did not always report on the total
	  number of pages that were printed (STR #1251)
	- The lpstat program could display garbage date and time
	  values for locales whose date format exceeded 31
	  characters (STR #1263)
	- The cupstestppd program would segfault when testing
	  certain broken PPD files (STR #1268)
	- Dramatically reduced the overhead of implicit classes.
	- Added new cupsDir*() functions to CUPS API.
	- Printers can now be published individually for sharing.
	- Fixed a bug in the scheduler's startup signalling code
	  which caused cupsd to send the SIGUSR1 signal to the
	  init process instead of the original parent process
	  (STR #1258)
	- Added new on-line help CGI to web interface to provide
	  searchable help.
	- Devices are now tracked dynamically, with each query
	  doing a new device scan.  This eliminates a previous
	  startup delay caused by slow backends and allows new
	  printers to be seen without restarting the server,
	  however it limits the amount of device URI checking
	  that can be done (basically now the scheduler only
	  requires a URI with a method that is a listed backend)
	- Added new printer auto-detection, server configuration,
	  and log file viewing to the administration web page.
	- Added new "set allowed users" web interface to set the
	  list of allowed users for a printer or class.
	- The scheduler, command-line, and web interfaces now
	  limit the list of printers and classes to those
	  accessible by a user.
	- cupsMarkOptions() now handles more non-standard
	  duplexing options and choices (STR #915)
	- cups-lpd now honors remote banner requests with the
	  "standard" banner whenever a printer does not have one
	  defined (STR #1220)
	- The scheduler's denial-of-service checks did not work
	  properly with IPv6 addresses (STR #1134)
	- The lp and lpr commands did not error out properly when
	  they were unable to write to a temporary file (STR
	  #1129)
	- The pstops filter did not handle Adobe-specific
	  comments in Windows NT driver output (STR #1085)
	- "lpstat -l -p" incorrectly reported the printer
	  interface (STR #936)
	- The web interface now operates exclusively with the
	  UTF-8 encoding, and sends the appropriate character set
	  and header information to the web browser (STR #919,
	  STR #1007)
	- Added a "set allowed users" interface to the web
	  interface so that you can set the list of allowed or
	  denied users/groups for a printer or class.
	- Disallow the "#" character in printer names, since it
	  has special meaning in the shell, config files, and in
	  URIs (STR #917, STR #1202)
	- Added a new application/x-csource MIME type, and
	  support for it to the texttops filter so that you can
	  pretty print plain text files without the C/C++
	  keywords being highlighted.
	- The pdftops filter did not compile with GCC 4.0 (STR
	  #1226)
	- The texttops filter did not highlight preprocessor
	  directives followed by a tab properly.
	- HP PJL output now uses both JOB DISPLAY and RDYMSG
	  commands to show the current job on the printer's
	  display (STR #1218)
	- Local authentication certificates are now stored in
	  /var/run/cups/certs by default instead of
	  /etc/cups/certs (STR #1211)
	- Backends now use "&" to separate options in device
	  URIs; "+" is still recognized but is deprecated (STR
	  #842)
	- The USB backend no longer supports the usb:/dev/foo
	  format on systems that support device ID queries.
	- Forced classification markings did not work when the
	  job-sheets parameters were "none,none".
	- "lpstat -l -p" incorrectly showed all users as allowed,
	  even if the queue was restricted to certain users (STR
	  #801)
	- The scheduler now automatically detects SSL/TLS clients
	  without using the SSLPort/SSLListen directives.
	- The CUPS API and scheduler no longer support SSLv2-
	  encrypted connections.
	- Updated the cupsaddsmb utility to correctly export the
	  CUPS driver for Windows.
	- Fixed a signal-handling bug in httpRead() which
	  ultimately caused the server to print multiple copies
	  when it was busy (STR #1184)
	- The cupsFile API now uses the O_APPEND option when
	  opening files in append mode (STR #990)
	- The md5.h header and md5_* functions are now officially
	  private and have been renamed to avoid conflicts with
	  other implementations with the same name.
	- The pdftops filter incorrectly embedded some Type1
	  fonts (STR #1093)
	- The scheduler didn't detect a closed connection in the
	  middle of an IPP request (STR #1153)
	- The scheduler could block trying to read the job status
	  if there was input pending and the job was cancelled in
	  the same input cycle (STR #1157)
	- The scheduler could crash when deleting a class due to
	  infinite recursion.
	- Updated the Zebra ZPL label printer driver to use the
	  run-length encoding and support more options.
	- Updated serial backend to scan for /dev/ttyC* as well
	  as /dev/ttyc* for Cyclades serial ports (STR #1049)
	- The scheduler could hang reading the job status under
	  certain circumstances (STR #1068)
	- The USB backend termination signal code was inverted
	  (STR #1046)
	- Moved enable and disable commands to sbindir to be
	  consistent.
	- Added new cupsRasterInterpretPPD() function for RIP
	  filters to setup the raster page header from
	  PostScript commands in a PPD file.
	- The CUPS browsing protocol now offers a "delete" bit
	  to remove printers as soon as they are deleted on the
	  server or as soon as the server shuts down gracefully
	  (STR #793)
	- The CUPS_SERVER and ServerName directives (client.conf
	  and ~/.cupsrc) may now contain names of the form
	  "server:port" and "/path/to/domain/socket".
	- The "cancel -u user" command now works for ordinary
	  users (STR #751)
	- Added test run support to "make test" target (STR #64)
	- Added domain socket support (STR #656)
	- Added BrowseLocalOptions directive to allow the
	  administrator to add printer URI options to the browse
	  URI, e.g. "encryption=required" (STR #732)
	- Added BrowseRemoteOptions directive to allow the
	  administrator to add standard URI options to the
	  remote printer URI, e.g. "encryption=required" (STR
	  #732)
	- Now put "-I.." compiler option in front of all others
	  to ensure that local CUPS headers are used before
	  installed headers (STR #437)
	- New cupsLangPrintf() and cupsLangPuts() for localized
	  interfaces.
	- Now support custom attributes and extended options in
	  PPD files.
	- Now provide functions to save PPD files.
	- New policy mechanism allows per-operation and
	  per-printer control over what users and groups are
	  allowed to do various IPP operations.
	- New error policy mechanism to control how aborted
	  backend errors are handled by the scheduler
	  (abort-job, retry-job, requeue-job, stop-printer)
	- Updated the printer test page with a better color
	  wheel and a separate grayscale ramp.
	- A single backend process is now run to send all print
	  data for a job.
	- Backends and filters can now send and receive
	  backchannel data over file descriptor 3.
	- Updated the raster stream format to support more
	  user-defined attributes and to do compression of the
	  page data.