forked from apple/cups
-
Notifications
You must be signed in to change notification settings - Fork 1
/
CHANGES-1.1.txt
3462 lines (3304 loc) · 147 KB
/
CHANGES-1.1.txt
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
CHANGES-1.1.txt
---------------
CHANGES IN CUPS V1.1.23
- Updated the Spanish man pages (STR #1041)
- The lpstat man page contained a typo (STR #1040)
- The scheduler's is_path_absolute() code could cause a
DoS (STR #1042)
- The scheduler's device loading code used the wrong
size limits for the make/model and info parameters
(STR #1035)
- The PNG loading code did not use a "long unsigned
integer" format specifier for the width and height
(STR #1032)
- The web interface only showed the first 4 or 8
characters of "{variable-name}" for undefined template
variables (STR #1031)
- The hpgltops filter did not handle a common PCL
command to enter HP-GL/2 mode (STR #1037)
CHANGES IN CUPS V1.1.23rc1
- The lpr man page did not document the "-U" option (STR
#998)
- The scheduler no longer sends the page-set option when
printing banner pages (STR #995)
- Fixed a debug message in the imagetops filter (STR
#1012)
- The lprm man page listed the "-" option in the wrong
order (STR #911)
- The hpgltops filter contained two buffer overflows
that could potentially allow remote access to the "lp"
account (STR #1024)
- The lppasswd command did not protect against file
descriptor or ulimit attacks (STR #1023)
- The "lpc status" command used the wrong resource path
when querying the list of printers and jobs, causing
unnecessary authentication requests (STR #1018)
- The httpWait() function did not handle signal
interruptions (STR #1020)
- The USB backend used the wrong size status variable
when checking the printer status (STR #1017)
- The scheduler did not delete classes from other
classes or implicit classes, which could cause a crash
(STR #1015)
- The IPP backend now logs the remote print job ID at
log level NOTICE instead of INFO (so it shows up in
the error_log file...)
CHANGES IN CUPS V1.1.22
- The lpstat man page incorrectly listed the "-s" option
as using the equivalent of the "-p" option to list the
printers; it uses the "-v" option to list the printers
(STR #986)
- Now allow 0-length reads in the CUPS file API (STR
#985)
- cupsDoFileRequest() now sets cupsLastError() to
IPP_ERROR on network errors (STR #953)
- The pdftops filter didn't scale small pages up to the
output page size when the fitplot option was used (STR
#984)
- Fixed the ipptest program usage message (STR #959)
- Added Spanish man pages (STR #963)
- Fixed the order of comparisons in the client.conf
reading code (STR #971)
- cupsLangGet() incorrectly set the current locale (STR
#970)
CHANGES IN CUPS V1.1.22rc2
- The pdftops filter didn't check the range of all
integer attributes (STR #972)
- Documentation corrections (STR #944, STR #946)
- Also sanitize device URI in argv[0] (STR #933)
- cupsRasterReadHeader() didn't swap bytes for the
numeric fields properly (STR #930)
CHANGES IN CUPS V1.1.22rc1
- Now sanitize the device URI that is reported in the
error_log file (STR #920)
- Fixed some memory and file descriptor leaks in the job
dispatch code (STR #921)
- Deleting a printer could cause a crash with browsing
enabled (STR #865, STR #881, STR #928)
- Browsing would turn off if the scheduler got an EAGAIN
error (STR #924)
- The mime.types file didn't recognize PostScript as a
PJL language name (STR #925)
CHANGES IN CUPS V1.1.21
- The scheduler did not separate Digest authentication
parameters with commas (STR #882)
- Fixed some problems with image printing to custom page
sizes (STR #891)
- Removed the remaining scheduler code that did not use
the "close-on-exec" file descriptor flag to speed up
program invocations (STR #890)
- The "lpr -r" command removed the print file even if it
was not printed. It now only removes the file if the
job is successfully created (STR #886)
- Revamped the custom page size orientation fix (STR
#127)
- The lp, lpq, lpr, and lpstat commands now report when
an environment variable is pointing to a non-existent
printer instead of just saying "no default
destination" (STR #879)
- Queue names with 2 periods (e.g. "printer..2") were
not supported (STR #866)
CHANGES IN CUPS V1.1.21rc2
- Fixed a denial-of-service bug in the CUPS browse
protocol support (STR #863)
- The scheduler used a select() timeout of INT_MAX
seconds when there was nothing to do, which doesn't
work on IRIX (STR #864)
- Updated the cupsaddsmb program to use the new Windows
2000 PostScript drivers instead of the Windows NT
printer drivers (STR #390)
- The gziptoany filter did not produce copies for raw
print jobs (STR #808)
- The cupsLangGet() function now uses nl_langinfo(),
when available, to get the current encoding (STR #856)
- Added a ReloadTimeout directive to control how long
the scheduler waits for jobs to complete before
restarting the scheduler (STR #861)
- Added a note to the default cupsd.conf file which
mentions that you must allow connections from
localhost for the command-line and web interfaces to
work (STR #850)
- The IPP backend incorrectly used the local port when
communicating with a remote server; this caused
problems with some custom configurations (STR #852)
- The cups-lpd mini-daemon wasn't using the right
default banner option (STR #851)
- Updated the new httpDecode64_2() and httpEncode64_2()
functions to handle arbitrary binary data, not just
text (STR #860)
- String options with quotes in their values were not
quoted properly by the scheduler (STR #839)
- Configure script changes for GNU/Hurd (STR #838)
- The lppasswd program was not installed properly by GNU
install when the installer was not root (STR #836)
- Updated the cups-lpd man page (STR #843)
- Fixed a typo in the cupsd man page (STR #833)
- The USB backend now defaults to using the newer
/dev/usb/lpN filenames; this helps on systems which
use the devfs filesystem type on Linux (STR #818)
- The config.h file did not define the HAVE_USERSEC_H
constant when the configure script detected the
usersec.h header file. This caused authentication
errors on AIX (STR #832)
- The lp and lpr commands now report the temporary
filename and error if they are unable to create a
temporary file (STR #812)
- Added ServerTokens directive to control the Server
header in HTTP responses (STR #792)
- Added new httpDecode64_2(), httpEncode64_2(), and
httpSeparate2() functions which offer buffer size
arguments (STR #797)
- The cupsGetFile() and cupsPutFile() code did not
support CDSA or GNUTLS (STR #794)
- The httpSeparate() function did not decode all
character escapes (STR #795)
- The cupstestppd program now checks for invalid Duplex
option choices and fails PPD files that use
non-standard values (STR #791)
- Updated the printer name error message to indicate
that spaces are not allowed (STR #675)
- The scheduler didn't handle HTTP GET form data
properly (STR #744)
- The pstops filter now makes sure that the prolog code
is sent before the setup code (STR #776)
- The pstops filter now handles print files that
incorrectly start @PJL commands without a language
escape (STR #734)
- Miscellaneous build fixes for NetBSD (STR #788)
- Added support for quoted system group names (STR #784)
- Added "version" option to IPP backend to workaround
serious bug in Linksys's IPP implementation (STR #767)
- Added Spanish translation of web interface (STR #772,
STR #802)
- The LPD backend now uses geteuid() instead of getuid()
when it is available (STR #752)
- The IPP backend did not report the printer state if
the wait option was set to "no" (STR #761)
- The printer state was not updated for "STATE: foo,bar"
messages (STR #745)
- Added new CUPS API convenience functions which accept
a HTTP connection to eliminate extra username/password
prompts. This resolves a previous authentication
caching issue (STR #729, STR #743)
- The scheduler did not correctly throttle the browse
broadcasts, resulting in missing printers on client
machines (STR #754)
- The scheduler did not pass the correct CUPS_ENCRYPTION
setting to CGI programs which caused problems on
systems which used non-standard encryption settings
(STR #773)
- The lpq command showed 11st, 12nd, and 13rd instead of
11th, 12th, and 13th for the rank (STR #769)
- "make install" didn't work on some platforms due to an
error in the man page makefiles (STR #775)
- Changed some calls to snprintf() in the scheduler to
SetStringf() (STR #740)
CHANGES IN CUPS V1.1.21rc1
- Fixed some "type-punned" warnings produced by GCC when
-fstrict-aliasing is specified (STR #679)
- The PDF filter incorrectly calculated the bounding box
of a page (STR #682)
- The IPP backend did not use SSL when printing over a
port other than 443 (STR #730)
- The scheduler could crash when processing a Limit or
LimitExcept directive (STR #728)
- The lpq, lpr, and lp commands did not differentiate
between the server being unresponsive and the lack of
a default printer (STR #728)
- The PAM checks in the configure script did not stop
after the first match (STR #728)
- The cups-config man page was incorrectly placed in
section 3 (STR #728)
- The cupstestppd utility did not show a warning message
when a PPD file indicated BCP protocol support with
PJL (STR #720)
- The scheduler did not return the correct exit code
when startup failed (STR #718)
- The cupsRasterReadPixels() function checked for
EAGAIN, which caused problems on FreeBSD (STR #723)
- The cupsGetDests() function did not use the current
encryption setting (STR #653)
- The scheduler did not properly parse name-based
BrowseRelay directives in the cupsd.conf file (STR
#711)
- The IPP backend now supports the following options in
the device URI: encryption, waitjob, and waitprinter
(STR #699)
- The parallel, serial, socket, and USB backends did not
return a non-zero exit status when a job failed to
print in the middle of sending it (STR #715)
- Location directives in the cupsd.conf file were
case-sensitive for printer and class names, so
queue-specific access control was not reliable (STR
#700)
- cupsDoFileRequest() did not handle HTTP continue
status messages in all cases, causing sporatic
problems with IPP printers from some vendors (STR
#716)
- The rastertodymo driver now supports the Zebra ZPL
language (STR #713)
- The test suite no longer generates a printcap file,
which caused problems when testing as the root user
(STR #693)
- The scheduler now updates the accepting state of an
implicit class based upon the accepting state of its
member printers (STR #697)
- The pstops filter didn't properly skip leading PJL
commands (STR #664)
- The reinterpret_cast keyword was not highlighted when
printing C/C++ source files in prettyprint mode (STR
#694)
- Fixed a segfault problem with some of the client
programs (STR #668)
- When using RunAsUser, the scheduler did not correctly
set the ownership of the log files, preventing log
file rotation (STR #686)
- The image filters did not correctly load 1-bit PNG
files (STR #687)
- The pdftops filter did not show all annotation objects
in a PDF file (STR #674)
- The pdftops filter did not print the contents of
textual form elements, making it impossible to print a
filled-in form (STR #663)
- Integrated the MacOS X/Darwin USB backend into the
CUPS baseline (STR #661)
- The USB backend incorrectly reported "media tray
empty" (STR #660)
- The scheduler did not use a case-insensitive
comparison when checking for group membership, which
caused problems with Win9x clients printing via SAMBA
(STR #647)
- The scheduler did not report the addresses associated
with certain network errors, making troubleshooting
difficult (STR #648, #649)
- The cupstestppd program did not allow a default choice
of "Unknown" as required by the PPD spec (STR #651)
- The select() buffers are now allocated to be at least
as large as sizeof(fd_set) (STR #639)
- The LPD backend now supports overriding the print job
username via the device URI (STR #631)
- The scheduler did not handle an unknown MIME type when
checking for a CGI script (STR #603)
- Added a timeout optimization to the scheduler's main
loop to allow CUPS to sleep more of the time (STR
#629)
- The USB backend now retries printing to devices of the
form "usb://make/model" if any USB port shows up as
"busy" (STR #617)
- The httpGetHostByName() function did not range check
IP address values (STR #608)
- The httpUpdate() function could return HTTP_ERROR
instead of the HTTP status if the server closed the
connection before the client received the whole
response (STR #611)
- The LPD mini-daemon did not allow the administrator to
force banner pages on (STR #605)
- Added PAM support for Darwin/MacOS X (STR #550)
- The web interface now provides a "Set As Default"
button to set the default printer or class on a server
(STR #577)
- The HTTP authentication cache was broken (STR #517)
- The cupstestppd utility now fails PPD files that have
a DefaultOption keyword for a non-existance option
name (STR #476)
- Optimized the scanning of new PPD files on scheduler
startup (STR #424)
- The EPM list file did not include the bin, lib, or
sbin directories (STR #598)
- The web interface did not redirect administration
tasks to the primary server for a class or printer
(STR #491, #652)
- The cups-lpd mini-daemon did not reject print jobs to
queues that were rejecting new print jobs (STR #515)
- Some calls to the ctype functions did not account for
platforms that use a signed char type by default (STR
#518)
- The scheduler could use excess amounts of CPU if a CGI
program was sending data faster than the client could
take it (STR #595)
- Updated the Ghostscript 8.x integration stuff (STR
#484)
- The lpd backend used a source port of 732 by default,
which is outside of the range defined by RFC 1179;
also added a new (default) "reserve=any" option for
any priviledged port from 1 to 1023 (STR #474)
- The scheduler did not check for a valid Listen/Port
configuration (STR #499)
- The cupsPrintFiles() function did not always set the
last IPP error message (STR #538)
- The pstops filter did not write the PostScript header
line if the file began with a PJL escape sequence (STR
#574)
- The printer-is-accepting-jobs status of remote
printers was not sent to clients via browsing or
polling (STR #571)
- Browse packets did not indicate whether a printer
was accepting or rejecting jobs.
- The web interface did not show the printer state
history information (STR #592)
- The rastertoepson filter would crash under certain
cirsumstances (STR #583)
- The USB backend did not handle serial numbers using
the (incorrect) SN keyword and did not terminate the
make and model name strings properly (STR #471, STR
#588)
- The USB backend did not build on Solaris x86 (STR
#585)
- The cupsDoAuthentication() function did not use the
method name for Digest authentication (STR #584)
- The scheduler could crash if a print job could not be
printed and the PreserveJobHistory option was turned
off (STR #535)
- cups-lpd now logs the temporary filenames that could
not be opened in order to make troubleshooting easier
(STR #565)
- cupsGetJobs() now returns -1 on error (STR #569)
- Added localization for Belarusian (STR #575)
- The LPD backend used the full length of the hostname
when creating the data and control filenames, which
causes problems with older systems that can't handle
long filenames (STR #560)
- The scheduler did not refresh the common printer data
after a fast reload; this prevented banner and other
information from being updated (STR #562)
- The scheduler did not send common or history data to
the client when processing a CUPS-Get-Default request
(STR #559)
- The httpFlush() function did not always flush the
remaining response data in requests (STR #558)
- The scheduler could complete a job before it collected
the exit status from all filters and the backend (STR
#448)
- The PPD conformance tests did not catch group
translation strings that exceeded the maximum allowed
size (STR #454)
- Updated the client code in the scheduler to close the
client connection on errors rather than shutting down
the receive end of the socket; this caused resource
problems on some systems (STR #434)
- cups-polld didn't compile on Tru64 5.1B (STR #436)
- "lpc stat" crashed if the device URI was empty (STR
#548)
- The scheduler did not compile without zlib (STR #433)
- std:floor() cast needed on IRIX 6.5 with SGI C++
compiler (STR #497)
- cupsRasterReadPixels() and cupsRasterWritePixels() did
not handle EAGAIN and EINTR properly (STR #473)
- RequiresPageRegion should not be consulted for Manual
Feed (STR #514)
- International characters were not substituted in
banner files properly (STR #468)
- Updated pdftops to Xpdf 2.03 code to fix printing bugs
(STR #470)
- The Digest authentication code did not include the
(required) "uri" attribute in the Authorization
response, preventing interoperation with Apache
(STR #408)
- The web interface could lockup when displaying certain
URLs (STR #459)
- The PostScript filters now convert underscores ("_")
to spaces for custom classification names (STR #555)
CHANGES IN CUPS V1.1.20
- The pstops filter didn't properly handle collated,
duplexed copies of documents with an odd number of
pages on printers that did not do their own collated
copies (STR #389)
- Tru64 doesn't define a prototype for hstrerror() (STR
#430)
- Updated the pdftops filter to use the annotation flags
instead of the subtype to determine whether to print
an annotation (STR #425)
- The French web interface localization did not use
absolute paths for the navigation bar (STR #428)
- The CUPS test suite did not undefine the PRINTER and
LPDEST environment variables. This could lead to bogus
test results (STR #380)
- The cupsLangDefault() function now works if you don't
have the base OS localization installed (STR #418)
- The pdftops filter no longer needs to create temporary
files with tmpnam (STR #406)
- The HTTP code did not use a case-insensitive
comparison when checking for the Basic authentication
method (STR #407)
- The httpEncode() function always added a trailing "="
character, which is not required by the Base64
encoding specification (STR #407)
- The signal handlers did not need to call sigset();
this caused a recursion problem on some versions of
IRIX (STR #422)
- Moved the scheduler termination code into the mainline
to be consistent with the way other signals are
handled (STR #423)
- The cupsaddsmb program didn't export the new CUPS
driver for Windows properly (STR #390)
- The ppdOpen() functions did not issue an error when a
translation string exceeded the maximum allowed by the
Adobe PPD specification (STR #399)
- The default landscape orientation was not the same as
that defined in the PPD file (STR #397)
- Updated the pstoraster patch files and CUPS driver to
work with Ghostscript 8 (STR #402)
- The hpgltops filter did not skip PJL commands (STR
#379)
CHANGES IN CUPS V1.1.20rc6
- "lp -i jobid -H restart" would often return an error
even though the job restarted successfully (STR #362)
- The scheduler did not check for invalid allow/deny
addresses such as "11.22.33.44/24". It now masks off
the extra address bits and logs a warning message in
the error_log file (STR #337)
- The cupstestppd utility now checks for missing
ImageableArea and PaperDimension attributes for each
defined PageSize (STR #365)
- The IPP code did not wait for a reply indefinitely on
HTTP connections in "blocking" mode (STR #377)
- The web interfaces did not rewrite the default printer
URI properly (STR #299 and #369)
- The LPD backend passed the C and L commands in the
wrong order (STR #378)
- The Dymo label printer driver did not set the label
length properly (STR #373)
- The scheduler did not support job IDs higher than
99999 (STR #371)
- The Visual C++ project files did not work (STR #366)
- The scheduler's cupsLangSeek() function did not reset
the "EOF" flag, preventing compressed files from being
typed properly in some cases (STR #368)
- The cupsLangGet() cache was only used if the locale
name provided an explicit character set name (STR
#354)
- The CUPS API convenience functions did not call
cupsLangFree() when they were done with the
localization data (STR #354)
- The scheduler did not return the
job-hold-until-supported or job-hold-until-default
attributes (STR #356)
- The cupsaddsmb program did not support the new CUPS
driver for Windows (STR #357)
CHANGES IN CUPS V1.1.20rc5
- The scheduler did not initialize the browse socket
file descriptor properly when only SLP browsing was
enabled (STR #259)
- The scheduler accessed the job attributes before they
were set (STR #347, fix to STR #335)
- The cupsCancelJob() function did not return 0 when the
job could not be canceled (STR #340)
CHANGES IN CUPS V1.1.20rc4
- The scheduler did not move the incoming job attributes
in the operation group to the job group (STR #335)
- The cupsDoFileRequest() function did not check for an
early HTTP response while sending the file (STR #314)
- The web interfaces did not quote #, ?, or . in printer
names, which caused some problems with the generated
URLs (STR #320)
- CUPS couldn't be completely compiled with the -dDEBUG
option (STR #331)
CHANGES IN CUPS V1.1.20rc3
- More SLP changes (STR #259)
- Revamped the child signal handling code to completely
avoid deadlock issues on Solaris (STR #325)
- The lpadmin command displayed an incorrect error
message when the "-u" option was provided with no
arguments (STR #313)
- The web admin interface did not display an error
message if the PPD file could not be loaded (STR #308)
- The ppdEmit() functions did not use the correct
orientation value position for custom page sizes (STR
#292)
CHANGES IN CUPS V1.1.20rc2
- The serial backend set the IXANY option on the port
for XON/XOFF flow control; this caused problems with
printers that returned status info but were not ready
for more print data (STR #287)
- The scheduler didn't support scripted index files
(index.php, index.pl, etc. - STR #290)
- The scheduler did not correctly localize script files
with "GET" variables (STR #268)
- Changes in job classification are now logged (STR
#289)
- Fixed a few more SLP-related bugs (STR #259)
- Updated the user/group configure checks for MacOS X
10.3 (STR #270)
- Fixed an offset bug in the PDF filter (STR #284)
- The cupsDoRequest() and cupsDoFileRequest() functions
did not map several HTTP status codes to their IPP
counterparts. This made detecting certain conditions
very difficult (STR #277)
- Config, spool, and status files are now owned by the
scheduler user (usually root) with read permission for
the filter group (STR #283)
- The HP-GL/2 filter did not support the SI command,
some values for the AD and SD commands, and did not
rotate labels properly via the DI command (STR #282)
- The fax support did not update/set the job-hold-until
attribute when a fax job fails (STR #269)
- The cupsLangGet() function didn't support locales of
the form "ll.charset" (STR #271)
- The scheduler did not use the charset when getting the
language localization for a request; this caused extra
disk IO for every request (STR #271)
- The scheduler did not support requests with more than
one language specified (STR #267)
CHANGES IN CUPS V1.1.20rc1
- The scheduler now waits up to 60 seconds before
restarting to allow active jobs to complete printing
and pending requests to be processed (STR #226)
- The web interface did not work on systems where time_t
is 64 bits (STR #262)
- Added backend tweeks and content-length check from Red
Hat (STR #253)
- The USB backend now uses the 8255 constants instead of
the standard constants when reporting printer status
bits on Linux (STR #254)
- Added new cupsDoAuthentication(), cupsGetFd(),
cupsGetFile(), cupsPutFd(), and cupsPutFile() functions
to the CUPS API (STR #112)
- The PDF filter always scaled and offset pages; this
caused problems under MacOS X, so now the "fitplot"
option controls whether PDF files are scaled to fit
within the printable area of the page (STR #250)
- The LPD backend did not support the port number in a
URI (STR #247)
- Some filters didn't properly support boolean options
(STR #249)
- Landscape PDF files were not always offset by the
correct amount when rotating (STR #243)
- The scheduler could hang in a call to localtime() when
logging messages from the signal handler (STR #242)
- The PDF filter no longer prints form widgets; this
duplicates the behavior of Acrobat Reader (STR #241)
- cupsGetPPD() didn't handle a late termination of a
HTTP connection with the server (STR #220)
- ppdOpen() did not correctly check for "*PPD-Adobe-4."
on the first line of a PPD file. This caused incorrect
PASS results for some PPD files (STR #233)
- cupsEncodeOptions() did not allow boolean options to
use "yes" and "on" for true values (STR #227)
- The pstops filter only sent the TBCP exit sequence if
it was defined in the JCLEnd attribute in the PPD file
(STR #224)
- Support for more than 1024 files was broken on Solaris
9 (STR #217)
- The setgroups() calls now pass in 1 group (the
configured group) instead of 0 for compatibility with
BSD and Darwin (STR #213)
- The scheduler's built-in broadcast throttling was
ineffective since incoming packets would cause the
next group of outgoing packets to be sent immediately
rather than waiting for the next time slot (STR #211)
- Added a new ppdSetConformance() function to set the
conformance requirements for PPD files. Currently only
two levels are defined, PPD_CONFORM_RELAXED and
PPD_CONFORM_STRICT, and the default is the relaxed
level (STR #212)
- The IPP backend did not correctly execute the
pictwpstops filter on OSX (STR #210)
- The LPD backend did not set the banner class when the
"banner=yes" option was specified in the device URI
(STR #209)
- The imagetoraster filter did not support all of the
page device attributes (STR #208)
- The pdftops filter incorrectly auto-rotated pages when
the user already had specified the proper orientation
(STR #207)
- Fixed AIX shared library support (STR #201)
- Added support for live testing with Valgrind (STR
#193)
- The CGI programs now collect the list of needed
attributes for the class, job, and printer template
files (STR #192)
- The scheduler now passes the first port that is bound
to the local loopback or "any" addresses to the CGI
programs rather than the port that the browser
connected to (STR #103)
- The cupstestppd program now checks for bad
JobPatchFile attributes and incorrect versions of the
Manufacturer attribute for HP printers (STR #155)
- The filter makefile incorrectly installed
libcupsimage.a in the filter directory (STR #180)
- The scheduler did not verify that the job history
files define the job-priority and
job-originating-user-name attributes (STR #178)
- The pstops filter didn't handle poorly-formed binary
PostScript files that had CTRL-D's in them (STR #156)
- The ppdOpen*() and cupsLangGet() functions did not
make a copy of the old locale strings when using the
POSIX locale when reading files, which apparently
caused problems with some implementations of the
standard C library. (STR #159)
- The pdftops filter did not work properly with some
embedded Type1C fonts (STR #177)
- Updated the pdftops filter to be based upon Xpdf
2.02pl1 (STR #191)
- The scheduler did not reset the group list when
running CGI and filter processes (STR #185)
- The scheduler no longer calls malloc and free from the
signal handlers (STR #190)
- The USB backend now uses the manufacturer and model
strings if the description string is not available
(STR #174)
- The ppdOpen functions still supported the
VariablePaperSize attribute, which was removed in v4.0
of the PPD spec. This caused problems with PPD files
that relocated the PageSize option to a non-standard
group (STR #158)
- The cups.list file referenced MAN1EXT, MAN3EXT, and
MAN5EXT, but none of those were actually defined (STR
#147)
- Chunked requests could cause a Denial of Service if
the connection is terminated before the first byte of
chunk data is sent/received (STR #143)
- Printers with special characters in their names were
not accessible from the web interface (STR #120)
- The lpstat command now shows the correct interface
script or PPD file, if any, for a print queue (STR #89)
- The lpstat command now shows the printer-state-message
and printer-state-reasons attributes whenever they are
not blank (STR #152)
- The French and German option-conflict.tmpl template
files did not get installed (STR #148)
- The cups.list.in file did not work when compiling
without shared libraries (STR #149)
- The DSOFLAGS included the LDFLAGS, which causes
problems on at least HP-UX (STR #150)
- The fax printer support did not keep track of the fax
capability bit (STR #144)
- The appleLangDefault() function could leak a small
amount of memory (STR #145)
- The ppdOpen() functions now mirror all normal
attributes to the attribute list; previously only
certain unassigned attributes would be added (STR
#139)
- The ppdEmitJCL() function wrote JCL commands to stdout
instead of the passed file pointer (STR #142)
- The httpGets() function could, in certain states,
block waiting for data (STR #132)
- The cupsEmitJCL() function not outputs an empty @PJL
command after the PJL language escape to work around
bugs in certain PJL implementations (STR #131)
- The cupsEmit*() functions didn't set the orientation
value properly (STR #127)
- The cups.spec file didn't list the rc2.d init
directory or the cupstestppd file (STR #134)
CHANGES IN CUPS V1.1.19
- The GNU TLS code incorrectly used
gnutls_check_pending() instead of
gnutls_record_check_pending() (STR #128)
- The ppdEmit() functions output "PageSize Custom"
instead of "CustomPageSize True" in the DSC comments.
Also, the custom page size code did not use the
ParamCustomPageSize attributes (STR #127)
- The cupstestppd command did not list the conflicting
options (STR #123)
- The lpq command did not ensure that there was
whitespace between the fields in the job listing (STR
#117)
- The German web templates had errors (STR #119)
- The configure script didn't specify the static
libraries properly when configuring with the
--disable-shared option (STR #104)
- The cups.list file used file dependencies for package
formats other than portable, RPM, and Debian (STR #98)
- cupsLangGet() didn't use its language cache (STR #97)
- "lpq -P" would segfault instead of showing a usage
message (STR #94)
- Fixed compiler warnings in pdftops filter (STR #96)
CHANGES IN CUPS V1.1.19rc5
- Jobs with banner pages that were printed to implicit
classes would get double banner pages for each
file/banner in the job (STR #68)
- The mime.convs file was missing the filter definition
for Windows BMP (image/x-bitmap) files (STR #85)
- The scheduler allowed some READ-ONLY job attributes to
be set, which could cause the scheduler to fail on the
next restart (STR #82)
- The lp and lpr commands did not report when the
scheduler was not responding; instead, the user would
incorrectly see a "no default destination" error (STR
#70)
- cupsLangGet() could fail on OSX due to a corrupt
language preference (STR #78)
- Added more checks for HTTP request timeouts.
- The scheduler dropped the first non-alpha character
after an open brace when doing attribute substitutions
in banner pages (STR #77)
- The scheduler child might send SIGUSR1 to the parent
before the signal handler was installed; this didn't
prevent the scheduler from starting but produced an
annoying error message (STR #45)
CHANGES IN CUPS V1.1.19rc4
- The lp command did not accept "-" for printing from
the standard input as required by POSIX 1003.1 (STR
#59)
- Added the job-originating-host-name information for
the page_log file documentation in the SAM (STR #31)
- The German web interface templates did not use the
right paths for job operations (STR #54)
- The scheduler would consume all available CPU if
started with a pending job in the queue (STR #35)
- The polling daemon allocated an extra localization
buffer but did not free it, causing cups-polld to
eventually use all available memory (STR #40)
CHANGES IN CUPS V1.1.19rc3
- The scheduler could get in an infinite loop cancelling
jobs using "cancel -u user dest" (STR #48)
- The "cancel -u user" command did nothing (it should
cancel all jobs on all printers owned by the named
user - STR #48)
- The scheduler would write 0-length job control files
(STR #46)
- Updated the French man pages (translation provided by
Gilles QUERRET)
- The scheduler would delete all printers from
printers.conf if a job was active when a HUP signal
was handled (STR #47)
- The cups-polld program would leak memory if it was
unable to send browse packets to the loopback
interface (STR #40)
- The scheduler did not put the
job-originating-host-name attribute in the job
attributes group.
- The text filter did not default to wrapping text as
defined by the IPP implementation document.
- Scan backends first, PPDs second (STR #37)
- Updated the Netatalk documentation in the SAM (STR #38
and #39)
- The test suite sent text files to a non-PS print queue,
which requires ESP Ghostscript (provided separately).
Now send the JPEG test file (STR #33)
- The test suite did not show the estimated disk space
requirements (STR #33)
- The test suite did not set the MaxLogSize directive to
0 to prevent log file rotation (STR #33)
- The test suite still setup the old CUPS Ghostscript
symlinks (STR #33)
- The pstops filter did not report the correct number of
copies for the page_log file when printing collated
copies to a printer that doesn't support them in
hardware (STR #32)
- cupsLangGet() needs to set the CTYPE locale to "C"
(POSIX) to avoid erroneous tolower/toupper values (fix
suggested by Bjoern Jacke)
- Fixed a typo in the cups.list.in file.
- Updated all of the Western European locales to default
to ISO-8859-15 (for Euro support, suggested by Bjoern
Jacke)
- Updated the German message catalog (update provided by
Bjoern Jacke)
CHANGES IN CUPS V1.1.19rc2
- cupsLangGet() now sets the encoding field based on the
trailing charset in the locale name, and doesn't look
for a message catalog in a specific locale.charset
directory. This fixes STR #26 and is more in line
with the CUPS 1.2 implementation.
- The configure script now aborts if the "ar" command or
compilers cannot be found.
- The static cupsimage library was not built by default.
- The path for the "ln" command was hardcoded in
Makedefs.in instead of being checked at configure time
(STR #28).
- Banner pages containing unescaped { characters would
not work.
- The printer-state-time collection attribute was
encoded as an enumeration instead of an integer.
- The printer-is-accepting-jobs collection attribute was
was not added to the collection value.
- The printer-state-sequence-number collection attribute
was not added to the collection value.
- Fixed typo and const mismatch in IPP backend.
- Updated the man pages for the new configuration
directives.
- Updated the SAM for MacOS 10.2, the CUPS drivers for
windows, the available LPD backend options, and the
new configuration directives.
- The imagetops filter didn't position images properly
on the page (STR #18)
- The configure script didn't add CPPFLAGS to the
compiler options or LDFLAGS to the DSO options (STR
#13)
- The scheduler would try to write a debug log message
when starting a job that contained a NULL string.
Since not all versions of snprintf() support NULL
string pointers this caused some problems (STR #20)
- The testipp program now supports reading of IPP
message files such as those used for the job history
in /var/spool/cups.
CHANGES IN CUPS V1.1.19rc1
- Added CUPS support files for Java, Perl, and PHP
(located in the "scripting" subdirectory...)
- The scheduler now supports fast-reloads of the
cupsd.conf file when it is updated via HTTP.
- The scheduler always changed the ownership of log
files; it now only does so if they are not in the /dev
directory (i.e. don't want to change the ownership and
permissions of /dev/null...)
- Added libpaper support (patch from Jeff Licquia)
- Added a new istring() rule for MIME types files that
does a case-insensitive comparison of strings.
- The cups-lpd mini-daemon now sends jobs to the default
queue when an empty queue name (or "lp" and there is
no "lp" queue) is sent.
- The scheduler now supports fax queues identified by a
"*cupsFax: True" attribute in the PPD file. When a job
can't be sent, it is held for 5 minutes by default
while other jobs are attempted. The FaxRetryLimit and
FaxRetryInterval directives control the number of
retries and the time between retries.
- The scheduler now preserves the default options of PPD
files when modifying/upgrading an existing PPD file.
When installing a new printer, the scheduler sets the
default media size to Letter or A4 as appropriate for
your locale.
- The scheduler no longer limits the number of
BrowseAddress, BrowsePoll, BrowseRelay, Listen, Port,
SSLListen, and SSLPort directives to 10.
- The scheduler now supports print files that have been
compressed using gzip.
- The scheduler used the stdio functions to read any job
ticket information in a PostScript print job. Since
some platforms limit the number of stdio files to 256,
job ticket information was ignored when the server had
a large number of clients connected to the system.
- Filters and backends may now report the total number
of pages ("PAGE: total NNN") to the scheduler.
- The LPD backend now supports timeout and
sanitize_title options (default to 300 and yes,
respectively) and has some additional changes to
reduce the chances of multiple copies being printed
when only one copy was requested.
- Fixed a polygon drawing bug in the HP-GL/2 filter.
- Added a robots.txt file to the standard install to
prevent search engines from indexing the CUPS server.
- Added support for STATE: messages
(printer-state-reasons), printer-state-history, and
printer-state-time to the scheduler.
- When using RunAsUser, the scheduler would initially
start any previously queued (pending) jobs with
RunAsUser disabled - all backends would be running as
root.
- If a backend failed for a printer, CUPS would
incorrectly requeue the job for printing again.
- Added support for IPP collections and files.
- Added experimental support for generic CGI scripts and
programs, Java, Perl, PHP, and Python to the
scheduler. See the file "CGI.txt" for more
information.
- The CUPS API now supports HTTP cookies and the Expect:
field.
- The cancel command now correctly supports the "-u
user" option to cancel all jobs for the named user.
- The Purge-Jobs operation now supports the my-jobs
boolean attribute and a new purge-jobs boolean
attribute to control whether job history data is
purged from the scheduler; the default is false for
my-jobs and true for purge-jobs to match the original
implementation.
- The scheduler would not timeout printers when only
using SLP browsing.
- If the scheduler was unable to execute a filter, it
would try to restart the job indefinitely until the
filter could be executed.
- When writing BSD printcap files, the scheduler now
includes the rm and rp attributes, allowing the file
to be exported to LPD clients. [Patch from Dominic
Kubla]
- The scheduler optimization to reference IPP attribute
data instead of performing a full copy caused problems
when the referenced data was deleted before it was
sent. It now only references attributes that change
only when the scheduler is restarted. The change also
reduced the memory footprint of a printer object to
2k.
- The scheduler now holds signals while logging messages
to avoid potential deadlock issues when handling
signals on Solaris 8.
- The lpadmin command now allows printer access control
by group name as well as user name.
- "lpoptions -l" got in an infinite loop if no default
printer was available.
- The scheduler now logs the job-originating-host-name
attribute in the page_log file, and uses "-" for any
empty fields (patch from Dominik Kubla).
- The pdftops filter now scales PDF pages within the
printable area of the page.
- The pstops filter didn't include the page-label and
classification boxes when printing EPS or non-
conformant PS files.
- The imagetops filter didn't always correctly position
the image on the page when printing in landscape
orientation.
- The ppdEmit() functions now support the
RequiresPageRegion attribute when sending InputSlot
and ManualFeed commands.
- The PPD loading code now supports standard options
outside of OpenUI/CloseUI as required by the PPD spec.
- The cupstestppd program has been upgraded to provide a
concise PASS/FAIL report, additional detailed
conformance testing, and support for gzip'd PPD files.
- The PPD loading code is now much more strict when