summaryrefslogtreecommitdiff
path: root/doc/relnotes.html
blob: d1b206990111347753b45108f9eb94bf2803227b (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
---
title: Release Notes
layout: sub
---

<h1 class="title">Release Notes</h1>

<h2 class="title"><a name="0203b4">CUPS 2.3b4</a> <em>(March 27, 2018)</em></h2>

<ul>
	<li>NOTICE: Printer drivers are now deprecated (Issue #5270)</li>
	<li>Kerberized printing to another CUPS server did not work correctly (Issue #5233)</li>
	<li>Fixed printing to some IPP Everywhere printers (Issue #5238)</li>
	<li>Fixed installation of filters (Issue #5247)</li>
	<li>The scheduler now supports using temporary print queues for older IPP/1.1 print queues like those shared by CUPS 1.3 and earlier (Issue #5241)</li>
	<li>Star Micronics printers need the &quot;unidir&quot; USB quirk rule (Issue #5251)</li>
	<li>Documentation fixes (Issue #5252)</li>
	<li>Fixed a compile issue when PAM is not available (Issue #5253)</li>
	<li>Label printers supported by the rastertolabel driver don't support SNMP, so don't delay printing to test it (Issue #5256)</li>
	<li>The scheduler could crash while adding an IPP Everywhere printer (Issue #5258)</li>
	<li>The Lexmark Optra E310 printer needs the &quot;no-reattach&quot; USB quirk rule (Issue #5259)</li>
	<li>Systemd did not restart cupsd when configuration changes were made that required a restart (Issue #5263)</li>
	<li>The IPP Everywhere PPD generator did not include the `cupsJobPassword` keyword, when supported (Issue #5265)</li>
	<li>Fixed an Avahi crash bug in the scheduler (Issue #5268)</li>
	<li>Raw print queues are now deprecated (Issue #5269)</li>
	<li>Fixed an RPM packaging problem (Issue #5276)</li>
	<li>The IPP backend did not properly detect failed PDF prints (rdar://34055474)</li>
	<li>TLS connections now properly timeout (rdar://34938533)</li>
	<li>Temp files could not be created in some sandboxed applications (rdar://37789645)</li>
	<li>The ipptool `--ippserver` option did not encode out-of-band attributes correctly.</li>
	<li>Added public `cupsEncodeOption` API for encoding a single option as an IPP attribute.</li>
	<li>Removed support for the `-D_PPD_DEPRECATED=&quot;&quot;` developer cheat - the PPD API should no longer be used.</li>
	<li>Removed support for `-D_IPP_PRIVATE_STRUCTURES=1` developer cheat - the IPP accessor functions should be used instead.</li>
</ul>

<h2 class="title"><a name="020207">CUPS 2.2.7</a> <em>(March 27, 2018)</em></h2>

<ul>
	<li>NOTICE: Raw print queues are now deprecated (Issue #5269)</li>
	<li>Fixed an Avahi crash bug in the scheduler (Issue #5268)</li>
	<li>The IPP Everywhere PPD generator did not include the `cupsJobPassword` keyword, when supported (Issue #5265)</li>
	<li>Systemd did not restart cupsd when configuration changes were made that required a restart (Issue #5263)</li>
	<li>The Lexmark Optra E310 printer needs the &quot;no-reattach&quot; USB quirk rule (Issue #5259)</li>
	<li>The scheduler could crash while adding an IPP Everywhere printer (Issue #5258)</li>
	<li>Label printers supported by the rastertolabel driver don't support SNMP, so don't delay printing to test it (Issue #5256)</li>
	<li>Fixed a compile issue when PAM is not available (Issue #5253)</li>
	<li>Documentation fixes (Issue #5252)</li>
	<li>Star Micronics printers need the &quot;unidir&quot; USB quirk rule (Issue #5251)</li>
	<li>The scheduler now supports using temporary print queues for older IPP/1.1 print queues like those shared by CUPS 1.3 and earlier (Issue #5241)</li>
	<li>Fixed printing to some IPP Everywhere printers (Issue #5238)</li>
	<li>Kerberized printing to another CUPS server did not work correctly (Issue #5233)</li>
	<li>The `cupsRasterWritePixels` function did not correctly swap bytes for some formats (Issue #5225)</li>
	<li>Added a USB quirk rule for Canon MP280 series printers (Issue #5221)</li>
	<li>The `ppdInstallableConflict` tested too many constraints (Issue #5213)</li>
	<li>More fixes for printing to old CUPS servers (Issue #5211)</li>
	<li>The `cupsCopyDest` function now correctly copies the `is_default` value (Issue #5208)</li>
	<li>The scheduler did not work with older versions of uClibc (Issue #5188)</li>
	<li>The scheduler now substitutes default values for invalid job attributes when running in &quot;relaxed conformance&quot; mode (Issue #5186)</li>
	<li>Fixed PAM module detection and added support for the common PAM definitions (Issue #5185)</li>
	<li>Fixed a journald support bug in the scheduler (Issue #5181)</li>
	<li>The cups-driverd program incorrectly stopped scanning PPDs as soon as a loop was seen (Issue #5170)</li>
	<li>Fixed group validation on OpenBSD (Issue #5166)</li>
	<li>Fixed the `ippserver` sample code when threading is disabled or unavailable (Issue #5154)</li>
	<li>The `cupsEnumDests` function did not include options from the lpoptions files (Issue #5144)</li>
	<li>The `SSLOptions` directive now supports `MinTLS` and `MaxTLS` options to control the minimum and maximum TLS versions that will be allowed, respectively (Issue #5119)</li>
	<li>The scheduler did not write out dirty configuration and state files if there were open client connections (Issue #5118)</li>
	<li>The `lpadmin` command now provides a better error message when an unsupported System V interface script is used (Issue #5111)</li>
	<li>The `lp` and `lpr` commands now provide better error messages when the default printer cannot be found (Issue #5096)</li>
	<li>No longer support backslash, question mark, or quotes in printer names (Issue #4966)</li>
	<li>The CUPS library now supports the latest HTTP Digest authentication specification including support for SHA-256 (Issue #4862)</li>
	<li>The `lpstat` command now reports when new jobs are being held (Issue #4761)</li>
	<li>The `lpoptions` command incorrectly saved default options (Issue #4717)</li>
	<li>The `ppdLocalizeIPPReason` function incorrectly returned a localized version of &quot;none&quot; (rdar://36566269)</li>
	<li>TLS connections now properly timeout (rdar://34938533)</li>
	<li>The IPP backend did not properly detect failed PDF prints (rdar://34055474)</li>
	<li>Temporary files are now placed in the correct directory for sandboxed applications on macOS (rdar://problem/37789645)</li>
</ul>


<h2 class="title"><a name="0203b3">CUPS 2.3b3</a> <em>(February 1, 2018)</em></h2>

<ul>
	<li>More fixes for printing to old CUPS servers (Issue #5211)</li>
	<li>The IPP Everywhere PPD generator did not support deep grayscale or 8-bit per component AdobeRGB (Issue #5227)</li>
	<li>Additional changes for the scheduler to substitute default values for invalid job attributes when running in &quot;relaxed conformance&quot; mode (Issue #5229)</li>
	<li>Localization changes (Issue #5232, rdar://37068158)</li>
	<li>The `cupsCopyDestInfo` function did not work with all print queues (Issue #5235)</li>
</ul>


<h2 class="title"><a name="0203b2">CUPS 2.3b2</a> <em>(January 17, 2018)</em></h2>

<ul>
	<li>Localization changes (Issue #5210)</li>
	<li>Build fixes (Issue #5217)</li>
	<li>IPP Everywhere PPDs were not localized to English (Issue #5205)</li>
	<li>The `cupsGetDests` and `cupsEnumDests` functions no longer filter out local print services like IPP USB devices (Issue #5206)</li>
	<li>The `cupsCopyDest` function now correctly copies the `is_default` value (Issue #5208)</li>
	<li>Printing to old CUPS servers has been fixed (Issue #5211)</li>
	<li>The `ppdInstallableConflict` tested too many constraints (Issue #5213)</li>
	<li>All HTTP field values can now be longer than `HTTP_MAX_VALUE` bytes (Issue #5216)</li>
	<li>Added a USB quirk rule for Canon MP280 series printers (Issue #5221)</li>
	<li>The `cupsRasterWritePixels` function did not correctly swap bytes for some formats (Issue #5225)</li>
	<li>Fixed an issue with mapping finishing options (rdar://34250727)</li>
	<li>The `ppdLocalizeIPPReason` function incorrectly returned a localized version of "none" (rdar://36566269)</li>
	<li>The scheduler did not add ".local" to the default DNS-SD host name when needed.</li>
</ul>


<h2 class="title"><a name="0203b1">CUPS 2.3b1</a> <em>(December 19, 2017)</em></h2>

<ul>
	<li>CUPS is now provided under the Apache License, Version 2.0.</li>
	<li>Documentation updates (Issue #4580, Issue #5177, Issue #5192)</li>
	<li>The <code>cupsCopyDestConflicts</code> function now handles collection attribute ("media-col", "finishings-col", etc.) constraints (Issue #4096)</li>
	<li>The <code>lpoptions</code> command incorrectly saved default options (Issue #4717)</li>
	<li>The <code>lpstat</code> command now reports when new jobs are being held (Issue #4761)</li>
	<li>The <code>ippfind</code> command now supports finding printers whose name starts with an underscore (Issue #4833)</li>
	<li>The CUPS library now supports the latest HTTP Digest authentication specification including support for SHA-256 (Issue #4862)</li>
	<li>The scheduler now supports the "printer-id" attribute (Issue #4868)</li>
	<li>No longer support backslash, question mark, or quotes in printer names (Issue #4966)</li>
	<li>The scheduler no longer logs pages as they are printed, instead just logging a total of the pages printed at job completion (Issue #4991)</li>
	<li>Dropped RSS subscription management from the web interface (Issue #5012)</li>
	<li>Bonjour printer sharing now uses the DNS-SD hostname (or ServerName value if none is defined) when registering shared printers on the network (Issue #5071)</li>
	<li>The <code>ipptool</code> command now supports writing <code>ippserver</code> attributes files (Issue #5093)</li>
	<li>The <code>lp</code> and <code>lpr</code> commands now provide better error messages when the default printer cannot be found (Issue #5096)</li>
	<li>The <code>lpadmin</code> command now provides a better error message when an unsupported System V interface script is used (Issue #5111)</li>
	<li>The scheduler did not write out dirty configuration and state files if there were open client connections (Issue #5118)</li>
	<li>The <code>SSLOptions</code> directive now supports <code>MinTLS</code> and <code>MaxTLS</code> options to control the minimum and maximum TLS versions that will be allowed, respectively (Issue #5119)</li>
	<li>Dropped hard-coded CGI scripting language support (Issue #5124)</li>
	<li>The <code>cupsEnumDests</code> function did not include options from the lpoptions files (Issue #5144)</li>
	<li>Fixed the <code>ippserver</code> sample code when threading is disabled or unavailable (Issue #5154)</li>
	<li>Added label markup to checkbox and radio button controls in the web interface templates (Issue #5161)</li>
	<li>Fixed group validation on OpenBSD (Issue #5166)</li>
	<li>Improved IPP Everywhere media support, including a new <code>cupsAddDestMediaOptions</code> function (Issue #5167)</li>
	<li>IPP Everywhere PPDs now include localizations of printer-specific media types, when available (Issue #5168)</li>
	<li>The cups-driverd program incorrectly stopped scanning PPDs as soon as a loop was seen (Issue #5170)</li>
	<li>IPP Everywhere PPDs now support IPP job presets (Issue #5179)</li>
	<li>IPP Everywhere PPDs now support finishing templates (Issue #5180)</li>
	<li>Fixed a journald support bug in the scheduler (Issue #5181)</li>
	<li>Fixed PAM module detection and added support for the common PAM definitions (Issue #5185)</li>
	<li>The scheduler now substitutes default values for invalid job attributes when running in "relaxed conformance" mode (Issue #5186)</li>
	<li>The scheduler did not work with older versions of uClibc (Issue #5188)</li>
	<li>The scheduler now generates a strings file for localizing PPD options (Issue #5194)</li>
</ul>


<h2 class="title"><a name="020206">CUPS 2.2.6</a> <em>(November 1, 2017)</em></h2>

<ul>

	<li>DBUS notifications could crash the scheduler (Issue #5143)</li>
	<li>Added USB quirks rules for Canon MP540 and Samsung ML-2160 (Issue #5148)</li>
	<li>Fixed TLS cipher suite selection with GNU TLS (Issue #5145, Issue #5150)</li>
	<li>Localization updates (Issue #5152)</li>

</ul>


<h2 class="title"><a name="020205">CUPS 2.2.5</a> <em>(October 13, 2017)</em></h2>

<ul>

	<li>The scheduler's `-t` option did not force all errors to the standard error file, making debugging of configuration problems hard (Issue #5041)</li>
	<li>Fixed a typo in the CUPS Programming Manual (Issue #5042)</li>
	<li>Fixed RPM packaging issue (Issue #5043, Issue #5044)</li>
	<li>The `cupsGetDests` function incorrectly returned an empty list of printers if there was no default printer (Issue #5046)</li>
	<li>The `cupsGetDests` function waited too long for network printers (Issue #5049)</li>
	<li>Libtool support was completely broken with current libtool versions that use an incompatible command-line syntax (Issue #5050)</li>
	<li>Fixed a build issue with `--enable-mallinfo` (Issue #5051)</li>
	<li>The ippserver test program contained a deadlock issue (Issue #5054)</li>
	<li>The `cupsLocalizeDest*` functions did not provide base localizations for all registered IPP attributes and values (Issue #5056)</li>
	<li>The --enable-libtool configure option requires a path to the libtool program, but doesn't document or check for it (Issue #5062)</li>
	<li>Fixed the `SSLOptions DenyCBC` option when using GNU TLS (Issue #5065)</li>
	<li>Fixed the `ServerTokens None` option (Issue #5065)</li>
	<li>Fixed the default `ServerAlias` value from `ServerName` (Issue #5072)</li>
	<li>Fixed the adminurl field in the TXT record for fully-qualified `ServerName` values (Issue #5074)</li>
	<li>The scheduler now creates a PID file when not running on demand with a modern service launcher (Issue #5080)</li>
	<li>The web interface did not support newer language identifiers used by Microsoft web browsers (Issue #5803)</li>
	<li>Updated the cups-files.conf and cupsd.conf file documentation for missing directives (Issue #5084)</li>
	<li>Fixed an Avahi-related crash bug in the scheduler (Issue #5085, Issue #5086)</li>
	<li>Fixed the interactions between the "print-quality" and "cupsPrintQuality" options (Issue #5090)</li>
	<li>The IPP Everywhere PPD generator now sorts the supported resolutions before choosing them for draft, normal, and best quality modes (Issue #5091)</li>
	<li>Fixed the localization unit test on Linux (Issue #5097)</li>
	<li>The CUPS library did not reuse domain sockets (Issue #5098)</li>
	<li>Fixed the "make check" target for some environments (Issue #5099)</li>
	<li>The scheduler woke up once per second to remove old temporary queues (Issue #5100)</li>
	<li>Added USB quirk rule for Kyocera printer (Issue #5102, Issue #5103)</li>
	<li>Re-documented the limits of `file:///...` device URIs and moved the FileDevice directive in `cups-files.conf` to the list of deprecated configuration directives (Issue #5117)</li>
	<li>Added USB quirk rule for HP LaserJet 1160 printer (Issue #5121)</li>
	<li>Fixed the script interpreter detection in the configure script (Issue #5122)</li>
	<li>The network backends now retry on more error conditions (Issue #5123)</li>
	<li>Added a French translation of the web interface (Issue #5134)</li>
	<li>`cupsGetDests2` was not using the supplied HTTP connection (Issue #5135)</li>
	<li>`httpAddrConnect` leaked sockets in certain circumstances, causing some printers to hang (rdar://31965686)</li>
	<li>Fixed an issue with Chinese localizations on macOS (rdar://32419311)</li>
	<li>The IPP backend now always sends the "finishings" attribute for printers that support it because otherwise the client cannot override printer defaults (rdar://33169732)</li>
	<li>The `cupsGetNamedDest` function did not use the local default printer (rdar://33228500)</li>
	<li>The IPP backend incorrectly sent the "job-pages-per-set" attribute to PDF printers (rdar://33250434)</li>
	<li>Fixed the `cups.strings` file that is used on macOS (rdar://33287650)</li>
	<li>CUPS now sends the `Date` HTTP header in IPP requests (rdar://33302034)</li>
	<li>The `ippCopyAttribute` function did not copy out-of-band values correctly (rdar://33688003)</li>
	<li>Fixed the localization fallback code on macOS (rdar://33583699)</li>
	<li>The scheduler did not run with a high enough priority, causing problems on busy systems (rdar://33789342)</li>
	<li>Added support for Japanese Kaku 1 envelope size (rdar://34774110)</li>
	<li>The `ipptool` program's `-P` option did not work correctly.</li>
	<li>The `ipptool` program did not compare URI scheme or hostname components correctly for the WITH-ALL-HOSTNAMES, WITH-ALL-SCHEMES, WITH-HOSTNAME, or WITH-SCHEME predicates.</li>

</ul>


<h2 class="title"><a name="020204">CUPS 2.2.4</a> <em>(June 30, 2017)</em></h2>

<ul>

	<li>The scheduler did not remove old job files (Issue #4987)</li>
	<li>cupsEnumDests did not return early when all printers had been discovered (Issue #4989)</li>
	<li>The CUPS build system now supports cross-compilation (Issue #4897)</li>
	<li>Added a new CUPS Programming Manual to replace the aging API documentation.</li>
	<li>Added the `cupsAddIntegerOption` and `cupsGetIntegerOption` functions (Issue #4992)</li>
	<li>The `cupsGetDests` and `cupsCreateJob` functions now support Bonjour printers (Issue #4993)</li>
	<li>Added a USB quirk rule for Lexmark E260dn printers (Issue #4994)</li>
	<li>Fixed a potential buffer overflow in the `cupstestppd` utility (Issue #4996)</li>
	<li>IPP Everywhere improvements (Issue #4998)</li>
	<li>Fixed the "cancel all jobs" function in the web interface for several languages (Issue #4999)</li>
	<li>Fixed issues with local queues (Issue #5003, Issue #5008, Issue #5009)</li>
	<li>The `lpstat` command now supports a `-e` option to enumerate local printers (either previously added or on the network) that can be accessed (Issue #5005)</li>
	<li>The `lp` and `lpr` commands now support printing to network printers that haven't yet been added (Issue #5006)</li>
	<li>Fixed a typo in the mime.types file.</li>
	<li>Fixed a bug in the Spanish web interface template (Issue #5016)</li>
	<li>The `cupsEnumDests*` and `cupsGetDest*` functions now report the value of the "printer-is-temporary" Printer Status attribute (Issue #5028)</li>
	<li>Added Chinese localization (Issue #5029)</li>
	<li>The `cupsCheckDestSupported` function did not support `NULL` values (Issue #5031)</li>
	<li>Fixed some issues in the RPM spec file (Issue #5032)</li>
	<li>The `cupsConnectDest` function now supports the `CUPS_DEST_FLAGS_DEVICE` flag for explicitly connecting to the device (printer) associated with the destination.</li>
	<li>The `SSLOptions` directive in "client.conf" and "cupsd.conf" now supports `DenyCBC` and `DenyTLS1.0` options (Issue #5037)</li>

</ul>


<h2 class="title"><a name="020203">CUPS 2.2.3</a> <em>(March 28, 2017)</em></h2>

<ul>

	<li>The IPP backend could get into an infinite loop for certain errors, causing a hung queue (&lt;rdar://problem/28008717>)</li>
	<li>The scheduler could pause responding to client requests in order to save state changes to disk (&lt;rdar://problem/28690656>)</li>
	<li>Added support for PPD finishing keywords (Issue #4960, Issue #4961, Issue #4962)</li>
	<li>The IPP backend did not send a media-col attribute for just the source or type (Issue #4963)</li>
	<li>IPP Everywhere print queues did not always support all print qualities supported by the printer (Issue #4953)</li>
	<li>IPP Everywhere print queues did not always support all media types supported by the printer (Issue #4953)</li>
	<li>The IPP Everywhere PPD generator did not return useful error messages (Issue #4954)</li>
	<li>The IPP Everywhere finishings support did not work correctly with common UI or command-line options (Issue #4976)</li>
	<li>Fixed an error handling issue for the network backends (Issue #4979)</li>
	<li>The default cupsd.conf file did not work on systems compiled without Kerberos support (Issue #4947)</li>
	<li>The "reprint job" option was not available for some canceled jobs (Issue #4915)</li>
	<li>Updated the job listing in the web interface (Issue #4978)</li>
	<li>Fixed some localization issues on macOS (&lt;rdar://problem/27245567>)</li>

</ul>


<h2 class="title"><a name="020202">CUPS 2.2.2</a> <em>(January 17, 2017)</em></h2>

<ul>

	<li>Fixed some issues with the Zebra ZPL printer driver (Issue #4898)</li>
	<li>Fixed some issues with IPP Everywhere printer support (Issue #4893, Issue #4909, Issue #4916, Issue #4921, Issue #4923, Issue #4932, Issue #4933, Issue #4938)</li>
	<li>The rastertopwg filter could crash with certain input (Issue #4942)</li>
	<li>Optimized connection usage in the IPP backend (&lt;rdar://problem/29547323>)</li>
	<li>The scheduler did not detect when an encrypted connection was closed by the client on Linux (Issue #4901)</li>
	<li>The cups-lpd program did not catch all legacy usage of ISO-8859-1 (Issue #4899)</li>
	<li>Fixed builds on systems without a working poll() implementation (Issue #4905)</li>
	<li>Added a USB quirk rule for the Kyocera Ecosys P6026cdn (Issue #4900)</li>
	<li>The scheduler no longer creates log files on startup
  (&lt;rdar://problem/28332470>)</li>
	<li>The ippContainsString function now uses case-insensitive comparisons for mimeMediaType, name, and text values in conformance with RFC 2911.</li>
	<li>The network backends now log the addresses that were found for a printer (&lt;rdar://problem/29268474>)</li>
	<li>Let's Encrypt certificates did not work when the hostname contained uppercase letters (Issue #4919)</li>
	<li>Fixed reporting of printed pages in the web interface (Issue #4924)</li>
	<li>Updated systemd config files (Issue #4935)</li>
	<li>Updated documentation (PR #4896)</li>
	<li>Updated localizations (PR #4894, PR #4895, PR #4904, PR #4908, Issue #4946)</li>
	<li>Updated packaging files (Issue #4940)</li>

</ul>


<h2 class="title"><a name="020201">CUPS 2.2.1</a> <em>(October 3, 2016)</em></h2>

<ul>
	<li>Added &quot;CreateSelfSignedCerts&quot; directive for cups-files.conf to control whether the scheduler automatically creates its own self-signed X.509 certificates for TLS connections (Issue #4876)</li>
	<li>http*Connect did not handle partial failures (Issue #4870)</li>
	<li>Addressed some build warnings on Linux (Issue #4881)</li>
	<li>cupsHashData did not use the correct hashing algorithm (&lt;rdar://problem/28209220&gt;)</li>
	<li>Updated man pages (PR #4885)</li>
	<li>Updated localizations (PR #4877, PR #4886)</li>
</ul>


<h2 class="title"><a name="020200">CUPS 2.2.0</a> <em>(September 13, 2016)</em></h2>

<ul>
	<li>Normalized the TLS certificate validation code and added additional error messages to aid troubleshooting.</li>
	<li>http*Connect did not work on Linux when cupsd was not running (Issue #4870)</li>
	<li>The --no-remote-any option of cupsctl had no effect (Issue #4866)</li>
	<li>http*Connect did not return early when all addresses failed (Issue #4870)</li>
</ul>


<h2 class="title"><a name="0202rc1">CUPS 2.2rc1</a> <em>(August 8, 2016)</em></h2>

<ul>

	<li>Updated the list of supported IPP Everywhere media types.</li>
	<li>The IPP backend did not validate TLS credentials properly.</li>
	<li>The printer-state-message attribute was not cleared after a print job with no errors (Issue #4851)</li>
	<li>The CUPS-Add-Modify-Class and CUPS-Add-Modify-Printer operations did not always return an error for failed adds (Issue #4854)</li>
	<li>PPD files with names longer than 127 bytes did not work (Issue #4860)</li>
	<li>Updated localizations (Issue #4846, PR #4858)</li>

</ul>


<h2 class="title"><a name="0202b2">CUPS 2.2b2</a> <em>(June 24, 2016)</em></h2>

<ul>

	<li>Added Upstart support (PR #4825)</li>
	<li>CUPS now supports Let's Encrypt certificates on Linux.</li>

</ul>


<h2 class="title"><a name="0202b1">CUPS 2.2b1</a> <em>(June 14, 2016)</em></h2>

<ul>

	<li>All CUPS commands now support POSIX options (Issue #4813)</li>
	<li>The scheduler now restarts faster (Issue #4760)</li>
	<li>Improved performance of web interface with large numbers of jobs (Issue #3819)</li>
	<li>Encrypted printing can now be limited to only trusted printers and servers (&lt;rdar://problem/25711658&gt;)</li>
	<li>The scheduler now advertises PWG Raster attributes for IPP Everywhere clients (Issue #4428)</li>
	<li>The scheduler now logs informational messages for jobs at LogLevel "info" (Issue #4815)</li>
	<li>The scheduler now uses the getgrouplist function when available (Issue #4611)</li>
	<li>The IPP backend no longer enables compression by default except for certain raster formats that generally benefit from it (&lt;rdar://problem/25166952&gt;)</li>
	<li>The scheduler did not handle out-of-disk situations gracefully (Issue #4742)</li>
	<li>The LPD mini-daemon now detects invalid UTF-8 sequences in job, document, and user names (Issue #4748)</li>
	<li>The IPP backend now continues on to the next job when the remote server/printer puts the job on hold (&lt;rdar://problem/24858548&gt;)</li>
	<li>The scheduler did not cancel multi-document jobs immediately (&lt;rdar://problem/24854834&gt;)</li>
	<li>The scheduler did not return non-shared printers to local clients unless they connected to the domain socket</li> (&lt;rdar://problem/24566996&gt;)
	<li>The scheduler now reads the spool directory if one or more job cache entries point to deleted jobs (&lt;rdar://problem/24048846&gt;)</li>
	<li>Added support for disc media sizes (&lt;rdar://problem/20219536&gt;)</li>
	<li>The httpAddrConnect and httpConnect* APIs now try connecting to multiple addresses in parallel (&lt;rdar://problem/20643153&gt;)</li>
	<li>The cupsd domain socket is no longer world-accessible on macOS (&lt;rdar://problem/7542560&gt;)</li>
	<li>Interface scripts are no longer supported for security reasons (&lt;rdar://problem/23135640&gt;)</li>
	<li>Added a new cupsHashData API and support for hashed job passwords (&lt;rdar://problem/20221502&gt;)</li>
	<li>Localization fixes (&lt;rdar://problem/25292403>, &lt;rdar://problem/25461517>, Issue #4041, Issue #4796)</li>
	<li>Documentation changes (Issue #4624, Issue #4781)</li>
	<li>Packaging fixes (PR #4832)</li>

</ul>


<h2 class="title"><a name="020104">CUPS 2.1.4</a> <em>(June 14, 2016)</em></h2>

<ul>
	<li>Fixed reporting of 1284 Device IDs (Issue #3835, PR #3836)</li>
	<li>Fixed printing of multiple files to raw queues (Issue #4782)</li>
	<li>The scheduler did not implement the Hold-New-Jobs operation correctly (Issue #4767)</li>
	<li>The ipptool program truncated values at 8k (Issue #4786)</li>
	<li>The ipptool program did not correctly report uriScheme values in plist output (Issue #4785)</li>
	<li>The cups-lpd mini-daemon incorrectly included the document-name attribute when creating a job.  It should only be included when sending a job (Issue #4790)</li>
	<li>USB quirk updates (Issue #4778, Issue #4789)</li>
	<li>Documentation update (Issue #4772)</li>
</ul>


<h2 class="title"><a name="020103">CUPS 2.1.3</a> <em>(February 5, 2016)</em></h2>

<ul>
	<li>The default password function did not work on some platforms (<a href="https://github.com/apple/cups/issues/4750">Issue #4750</a>)</li>
	<li>The scheduler should not exit under memory pressure (&lt;rdar://problem/23255001&gt;)</li>
	<li>The EPL2 and ZPL sample drivers did not properly support the CutMedia option.</li>
	<li>Pending subscriptions would prevent the scheduler from idle exiting (<a href="https://github.com/apple/cups/issues/4754">Issue #4754</a>)</li>
	<li>Fixed some issues in ipptool for skipped tests (&lt;rdar://problem/24137160&gt;)</li>
	<li>The &quot;lp -H resume&quot; command did not reset the &quot;job-state-reasons&quot; attribute value (<a href="https://github.com/apple/cups/issues/4752">Issue #4752</a>)</li>
	<li>The scheduler did not allow access to resource files (icons, etc.) when the web interface was disabled (<a href="https://github.com/apple/cups/issues/4755">Issue #4755</a>)</li>
	<li>Localization fix (<a href="https://github.com/apple/cups/issues/4756">Issue #4756</a>)</li>
</ul>


<h2 class="title"><a name="020102">CUPS 2.1.2</a> <em>(December 2, 2015)</em></h2>

<ul>
	<li>Re-release of CUPS 2.1.1 as CUPS 2.1.2 due to error in tagging of the 2.1.1 release (pulled content from the 2.2.x tree instead)</li>
</ul>


<h2 class="title"><a name="020101">CUPS 2.1.1 WITHDRAWN</a> <em>(November 30, 2015)</em></h2>

<ul>
	<li>Security hardening fixes (&lt;rdar://problem/23131948&gt;, &lt;rdar://problem/23132108&gt;, &lt;rdar://problem/23132353&gt;, &lt;rdar://problem/23132803&gt;, &lt;rdar://problem/23133230&gt;, &lt;rdar://problem/23133393&gt;, &lt;rdar://problem/23133466&gt;, &lt;rdar://problem/23133833&gt;, &lt;rdar://problem/23133998&gt;, &lt;rdar://problem/23134228&gt;, &lt;rdar://problem/23134299&gt;, &lt;rdar://problem/23134356&gt;, &lt;rdar://problem/23134415&gt;, &lt;rdar://problem/23134506&gt;, &lt;rdar://problem/23135066&gt;, &lt;rdar://problem/23135122&gt;, &lt;rdar://problem/23135207&gt;, &lt;rdar://problem/23144290&gt;, &lt;rdar://problem/23144358&gt;, &lt;rdar://problem/23144461&gt;)</li>
	<li>The cupsGetPPD* functions did not work with IPP printers (<a href="https://github.com/apple/cups/issues/4725">Issue #4725</a>)</li>
	<li>Some older HP LaserJet printers need a delayed close when printing using the libusb-based USB backend (<a href="https://github.com/apple/cups/issues/4549">Issue #4549</a>)</li>
	<li>The libusb-based USB backend did not unload the kernel usblp module if it was preventing the backend from accessing the printer (<a href="https://github.com/apple/cups/issues/4707">Issue #4707</a>)</li>
	<li>Current Primera printers were incorrectly reported as Fargo printers (<a href="https://github.com/apple/cups/issues/4708">Issue #4708</a>)</li>
	<li>The IPP backend did not always handle jobs getting canceled at the printer (&lt;rdar://problem/22716820&gt;)</li>
	<li>Scheduler logging change (<a href="https://github.com/apple/cups/issues/4728">Issue #4728</a>)</li>
	<li>Added USB quirk for Canon MP530 (<a href="https://github.com/apple/cups/issues/4730">Issue #4730</a>)</li>
	<li>The scheduler did not deliver job notifications for jobs submitted to classes (<a href="https://github.com/apple/cups/issues/4733">Issue #4733</a>)</li>
	<li>Changing the printer-is-shared value for a remote queue did not produce an error (<a href="https://github.com/apple/cups/issues/4738">Issue #4738</a>)</li>
	<li>The IPP backend incorrectly included the job-password attribute in Validate-Job requests (&lt;rdar://problem/23531939&gt;)</li>
	<li>Updated localizations (<a href="https://github.com/apple/cups/issues/4709">Issue #4709</a>)</li>
</ul>


<h2 class="title"><a name="020100">CUPS 2.1.0</a> <em>(August 31, 2015)</em></h2>

<ul>
	<li>Fixed more scheduler crash bugs in the new logging code (<a href="https://github.com/apple/cups/issues/4687">Issue #4687</a>, <a href="https://github.com/apple/cups/issues/4690">Issue #4690</a>)</li>
	<li>The scheduler did not use the ConfigFilePerm setting when copying PPD files or interface scripts attached to a request (<a href="https://github.com/apple/cups/issues/4703">Issue #4703</a>)</li>
	<li>Now support new Chinese locale IDs and their correct fallback locales (&lt;rdar://problem/22086642&gt;, &lt;rdar://problem/22130168&gt;)</li>
	<li>&quot;make check&quot; incorrectly reported an expectation of 18 warning messages when 8 were expected (<a href="https://github.com/apple/cups/issues/4684">Issue #4684</a>)</li>
	<li>The new PDF file type rule did not work (<a href="https://github.com/apple/cups/issues/4692">Issue #4692</a>)</li>
	<li>The scheduler did not update the jobs.cache file when job files were expired (<a href="https://github.com/apple/cups/issues/4706">Issue #4706</a>)</li>
	<li>Fixed some configure script issues (<a href="https://github.com/apple/cups/issues/4694">Issue #4694</a>, <a href="https://github.com/apple/cups/issues/4695">Issue #4695</a>, <a href="https://github.com/apple/cups/issues/4698">Issue #4698</a>)</li>
	<li>Documentation updates (<a href="https://github.com/apple/cups/issues/4691">Issue #4691</a>, <a href="https://github.com/apple/cups/issues/4693">Issue #4693</a>)</li>
</ul>


<h2 class="title"><a name="0201rc1">CUPS 2.1rc1</a> <em>(July 31, 2015)</em></h2>

<ul>
	<li>Added support for 3D printers (basic types only, no built-in filters) based on PWG white paper.</li>
	<li>Fixed bugs in the new journald support (<a href="https://github.com/apple/cups/issues/4655">Issue #4655</a>, <a href="https://github.com/apple/cups/issues/4658">Issue #4658</a>, <a href="https://github.com/apple/cups/issues/4661">Issue #4661</a>)</li>
	<li>Fixed domain socket support on Linux (<a href="https://github.com/apple/cups/issues/4679">Issue #4679</a>)</li>
	<li>Fixed signal handlers in the dnssd and usb backends (<a href="https://github.com/apple/cups/issues/4671">Issue #4671</a>)</li>
	<li>&lt;Limit All&gt; in &lt;Policy&gt; sections now applies to all operations when used by itself (<a href="https://github.com/apple/cups/issues/4659">Issue #4659</a>)</li>
	<li>Configure script changes for systemd support (<a href="https://github.com/apple/cups/issues/4669">Issue #4669</a>)</li>
	<li>Updated autoconf sources to use newer form of AC_INIT (<a href="https://github.com/apple/cups/issues/4664">Issue #4664</a>)</li>
</ul>


<h2 class="title"><a name="0201b1">CUPS 2.1b1</a> <em>(June 8, 2015)</em></h2>

<ul>
	<li>Improved speed of ppdMarkDefaults for complex/large PPDs (&lt;rdar://problem/15146999&gt;)</li>
	<li>The IPP backend now stops sending print data if the printer indicates the job has been aborted or canceled (&lt;rdar://problem/17837631&gt;)</li>
	<li>The IPP backend now sends the job-pages-per-set attribute when printing multiple copy jobs with finishings (&lt;rdar://problem/16792757&gt;)</li>
	<li>The IPP backend now updates the cupsMandatory values when the printer configuration changes (&lt;rdar://problem/18126570&gt;)</li>
	<li>No longer install banner files since third-party banner filters now supply their own (<a href="https://github.com/apple/cups/issues/4518">Issue #4518</a>)</li>
	<li>Added support for EXPECT-ALL directive in ipptool test files (<a href="https://github.com/apple/cups/issues/4469">Issue #4469</a>)</li>
	<li>Added support for WITH-VALUE-FROM predicate in ipptool test files (<a href="https://github.com/apple/cups/issues/4470">Issue #4470</a>)</li>
	<li>The scheduler no longer listens on the loopback interface unless the web interface or printer sharing are enabled (&lt;rdar://problem/9136448&gt;)</li>
	<li>Added a PPD generator for IPP Everywhere printers (<a href="https://github.com/apple/cups/issues/4258">Issue #4258</a>)</li>
	<li>Now install &quot;default&quot; versions of more configuration files (&lt;rdar://problem/19024491&gt;)</li>
	<li>The cupstestppd program did not handle &quot;maxsize(nnn)&quot; entries in cupsFilter/cupsFilter2 values (&lt;rdar://problem/18974858&gt;)</li>
	<li>The scheduler now checks the return value of rename() calls (<a href="https://github.com/apple/cups/issues/4589">Issue #4589</a>)</li>
	<li>The scheduler now validates ErrorPolicy values in config files (<a href="https://github.com/apple/cups/issues/4591">Issue #4591</a>)</li>
	<li>Long cookies caused the web interface to stop working (<a href="https://github.com/apple/cups/issues/4619">Issue #4619</a>)</li>
	<li>Added SSLOptions values to allow Diffie-Hellman key exchange and disable TLS/1.0 support.</li>
	<li>Updated the scheduler to support more IPP Everywhere attributes (<a href="https://github.com/apple/cups/issues/4630">Issue #4630</a>)</li>
	<li>The scheduler now supports advanced ASL and journald logging when &quot;syslog&quot; output is configured (<a href="https://github.com/apple/cups/issues/4474">Issue #4474</a>)</li>
	<li>The scheduler now supports logging to stderr when running in the foreground (<a href="https://github.com/apple/cups/issues/4505">Issue #4505</a>)</li>
</ul>