1CHANGES - OpenPrinting CUPS 2=========================== 3 4 5Changes in CUPS v2.4.12 (2025-04-08) 6------------------------------------ 7 8- GnuTLS follows system crypto policies now (Issue #1105) 9- Added `NoSystem` SSLOptions value (Issue #1130) 10- Now we raise alert for certificate issues (Issue #1194) 11- Added Kyocera USB quirk (Issue #1198) 12- The scheduler now logs a job's debugging history if the backend fails 13 (Issue #1205) 14- Fixed a potential timing issue with `cupsEnumDests` (Issue #1084) 15- Fixed a potential "lost PPD" condition in the scheduler (Issue #1109) 16- Fixed a compressed file error handling bug (Issue #1070) 17- Fixed a bug in the make-and-model whitespace trimming code (Issue #1096) 18- Fixed a removal of IPP Everywhere permanent queue if installation failed (Issue #1102) 19- Fixed `ServerToken None` in scheduler (Issue #1111) 20- Fixed invalid IPP keyword values created from PPD option names (Issue #1118) 21- Fixed handling of "media" and "PageSize" in the same print request 22 (Issue #1125) 23- Fixed client raster printing from macOS (Issue #1143) 24- Fixed the default User-Agent string. 25- Fixed a recursion issue in `ippReadIO`. 26- Fixed handling incorrect radix in `scan_ps()` (Issue #1188) 27- Fixed validation of dateTime values with time zones more than UTC+11 28 (Issue #1201) 29- Fixed attributes returned by the Create-Xxx-Subscriptions requests 30 (Issue #1204) 31- Fixed `ippDateToTime` when using a non GMT/UTC timezone (Issue #1208) 32- Fixed `job-completed` event notifications for jobs that are cancelled before 33 started (Issue #1209) 34- Fixed DNS-SD discovery with `ippfind` (Issue #1211) 35 36 37Changes in CUPS v2.4.11 (2024-09-30) 38------------------------------------ 39 40- Updated the maximum file descriptor limit for `cupsd` to 64k-1 (Issue #989) 41- Fixed `lpoptions -d` with a discovered but not added printer (Issue #833) 42- Fixed incorrect error message for HTTP/IPP errors (Issue #893) 43- Fixed JobPrivateAccess and SubscriptionPrivateAccess support for "all" 44 (Issue #990) 45- Fixed issues with cupsGetDestMediaByXxx (Issue #993) 46- Fixed adding and modifying of printers via the web interface (Issue #998) 47- Fixed HTTP PeerCred authentication for domain users (Issue #1001) 48- Fixed checkbox support (Issue #1008) 49- Fixed printer state notifications (Issue #1013) 50- Fixed IPP Everywhere printer setup (Issue #1033) 51 52 53Changes in CUPS v2.4.10 (2024-06-18) 54------------------------------------ 55 56- Fixed error handling when reading a mixed `1setOf` attribute. 57- Fixed scheduler start if there is only domain socket to listen on (Issue #985) 58 59 60Changes in CUPS v2.4.9 (2024-06-11) 61----------------------------------- 62 63- Fixed domain socket handling (CVE-2024-35235) 64- Fixed creating of `cupsUrfSupported` PPD keyword (Issue #952) 65- Fixed searching for destinations in web ui (Issue #954) 66- Fixed TLS negotiation using OpenSSL with servers that require the TLS SNI 67 extension. 68- Really raised `cups_enum_dests()` timeout for listing available IPP printers 69 (Issue #751)... 70- Fixed `Host` header regression (Issue #967) 71- Fixed DNS-SD lookups of local services with Avahi (Issue #970) 72- Fixed listing jobs in destinations in web ui. (Apple issue #6204) 73- Fixed showing search query in web ui help page. (Issue #977) 74 75 76Changes in CUPS v2.4.8 (2024-04-26) 77----------------------------------- 78 79- Added warning if the device has to be asked for 'all,media-col-database' 80 separately (Issue #829) 81- Added new value for 'lpstat' option '-W' - successfull - for getting 82 successfully printed jobs (Issue #830) 83- Added support for PAM modules password-auth and system-auth (Issue #892) 84- Updated IPP Everywhere printer creation error reporting (Issue #347) 85- Updated and documented the MIME typing buffering limit (Issue #925) 86- Now report an error for temporary printer defaults with lpadmin (Issue #237) 87- Fixed mapping of PPD InputSlot, MediaType, and OutputBin values (Issue #238) 88- Fixed "document-unprintable-error" handling (Issue #391) 89- Fixed the web interface not showing an error for a non-existent printer 90 (Issue #423) 91- Fixed printing of jobs with job name longer than 255 chars on older printers 92 (Issue #644) 93- Really backported fix for Issue #742 94- Fixed `cupsCopyDestInfo` device connection detection (Issue #586) 95- Fixed "Upgrade" header handling when there is no TLS support (Issue #775) 96- Fixed memory leak when unloading a job (Issue #813) 97- Fixed memory leak when creating color profiles (Issue #815) 98- Fixed a punch finishing bug in the IPP Everywhere support (Issue #821) 99- Fixed crash in `scan_ps()` if incoming argument is NULL (Issue #831) 100- Fixed setting job state reasons for successful jobs (Issue #832) 101- Fixed infinite loop in IPP backend if hostname is IP address with Kerberos 102 (Issue #838) 103- Added additional check on socket if `revents` from `poll()` returns POLLHUP 104 together with POLLIN or POLLOUT in `httpAddrConnect2()` (Issue #839) 105- Fixed crash in `ppdEmitString()` if `size` is NULL (Issue #850) 106- Fixed reporting `media-source-supported` when sharing printer which has 107 numbers as strings instead of keywords as `InputSlot` values (Issue #859) 108- Fixed IPP backend to support the "print-scaling" option with IPP printers 109 (Issue #862) 110- Fixed potential race condition for the creation of temporary queues 111 (Issue #871) 112- Fixed `httpGets` timeout handling (Issue #879) 113- Fixed checking for required attributes during PPD generation (Issue #890) 114- Fixed encoding of IPv6 addresses in HTTP requests (Issue #903) 115- Fixed sending response headers to client (Issue #927) 116- Fixed CGI program initialization and validation of form checkbox and text 117 fields. 118 119 120Changes in CUPS v2.4.7 (2023-09-20) 121----------------------------------- 122 123- CVE-2023-4504 - Fixed Heap-based buffer overflow when reading Postscript 124 in PPD files 125- Added OpenSSL support for cupsHashData (Issue #762) 126- Fixed delays in lpd backend (Issue #741) 127- Fixed extensive logging in scheduler (Issue #604) 128- Fixed hanging of `lpstat` on IBM AIX (Issue #773) 129- Fixed hanging of `lpstat` on Solaris (Issue #156) 130- Fixed printing to stderr if we can't open cups-files.conf (Issue #777) 131- Fixed purging job files via `cancel -x` (Issue #742) 132- Fixed RFC 1179 port reserving behavior in LPD backend (Issue #743) 133- Fixed a bug in the PPD command interpretation code (Issue #768) 134- Fixed Oki 407 freeze when printing larger jobs (Issue #877) 135 136 137Changes in CUPS v2.4.6 (2023-06-22) 138----------------------------------- 139 140- CVE-2023-34241: Fixed use-after-free when logging warnings in case of failures 141 in `cupsdAcceptClient()`. 142- Fixed linking error on old MacOS (Issue #715) 143- Fixed printing multiple files on specific printers (Issue #643) 144 145 146Changes in CUPS v2.4.5 (2023-06-13) 147----------------------------------- 148 149- Fixed corruption of locally saved certificates (Issue #724) 150 151 152Changes in CUPS v2.4.4 (2023-06-06) 153----------------------------------- 154 155- Fixed segfault in `cupsGetNamedDest()` when trying to get default printer, but 156 the default printer is not set (Issue #719) 157 158 159Changes in CUPS v2.4.3 (2023-06-01) 160----------------------------------- 161 162- CVE-2023-32360: Fixed default policy for CUPS-Get-Document operation 163- CVE-2023-32324: Fixed possible heap buffer overflow in `_cups_strlcpy()`. 164- Added a title with device uri for found network printers (Issues #402, #393) 165- Added new media sizes defined by IANA (Issues #501) 166- Added quirk for GoDEX label printers (Issue #440) 167- Fixed `--enable-libtool-unsupported` (Issue #394) 168- Fixed configuration on RISC-V machines (Issue #404) 169- Fixed the `device_uri` invalid pointer for driverless printers with `.local` 170 hostname (Issue #419) 171- Fixed an OpenSSL crash bug (Issue #409) 172- Fixed a potential SNMP OID value overflow issue (Issue #431) 173- Fixed an OpenSSL certificate loading issue (Issue #465) 174- Fixed Brazilian Portuguese translations (Issue #288) 175- Fixed `cupsd` default keychain location when building with OpenSSL 176 (Issue #529) 177- Fixed default color settings for CMYK printers as well (Issue #500) 178- Fixed duplicate PPD2IPP media-type names (Issue #688) 179- Fixed InputSlot heuristic for photo sizes smaller than 5x7" if there is no 180 media-source in the request (Issue #569) 181- Fixed invalid memory access during generating IPP Everywhere queue 182 (Issue #466) 183- Fixed lprm if no destination is provided (Issue #457) 184- Fixed memory leaks in `create_local_bg_thread()` (Issue #466) 185- Fixed media size tolerance in `ippeveprinter` (Issue #487) 186- Fixed passing command name without path into `ippeveprinter` (Issue #629) 187- Fixed saving strings file path in `printers.conf` (Issue #710) 188- Fixed TLS certificate generation bugs (Issue #652) 189- `ippDeleteValues` would not delete the last value (Issue #556) 190- Ignore some of IPP defaults if the application sends its PPD alternative 191 (Issue #484) 192- Make `Letter` the default size in `ippevepcl` (Issue #543) 193- Now accessing Admin page in Web UI requires authentication (Issue #518) 194- Now look for default printer on network if needed (Issue #452) 195- Now we poll `media-col-database` separately if we fail at first (Issue #599) 196- Now report fax attributes and values as needed (Issue #459) 197- Now localize HTTP responses using the Content-Language value (Issue #426) 198- Raised file size limit for importing PPD via Web UI (Issue #433) 199- Raised maximum listen backlog size to INT MAX (Issue #626) 200- Update print-color-mode if the printer is modified via ColorModel PPD option 201 (Issue #451) 202- Use localhost when printing via printer application (Issue #353) 203- Write defaults into /etc/cups/lpoptions if we're root (Issue #456) 204 205 206Changes in CUPS v2.4.2 (2022-05-26) 207----------------------------------- 208 209- Fixed certificate strings comparison for Local authorization (CVE-2022-26691) 210- The `cupsFileOpen` function no longer opens files for append in read-write 211 mode (Issue #291) 212- The cupsd daemon removed processing temporary queue (Issue #364) 213- Fixed delay in IPP backend if GNUTLS is used and endpoint doesn't confirm 214 closing the connection (Issue #365) 215- Fixed conditional jump based on uninitialized value in cups/ppd.c (Issue #329) 216- Fixed CSS related issues in CUPS Web UI (Issue #344) 217- Fixed copyright in CUPS Web UI trailer template (Issue #346) 218- mDNS hostname in device uri is not resolved when installing a permanent 219 IPP Everywhere queue (Issues #340, #343) 220- The `lpstat` command now reports when the scheduler is not running 221 (Issue #352) 222- Updated the man pages concerning the `-h` option (Issue #357) 223- Re-added LibreSSL/OpenSSL support (Issue #362) 224- Updated the Solaris smf service file (Issue #368) 225- Fixed a regression in lpoptions option support (Issue #370) 226- The scheduler now regenerates the PPD cache information after changing the 227 "cupsd.conf" file (Issue #371) 228- Updated the scheduler to set "auth-info-required" to "username,password" if a 229 backend reports it needs authentication info but doesn't set a method for 230 authentication (Issue #373) 231- Updated the configure script to look for the OpenSSL library the old way if 232 pkg-config is not available (Issue #375) 233- Fixed the prototype for the `httpWriteResponse` function (Issue #380) 234- Brought back minimal AIX support (Issue #389) 235- `cupsGetResponse` did not always set the last error. 236- Fixed a number of old references to the Apple CUPS web page. 237- Restored the default/generic printer icon file for the web interface. 238- Removed old stylesheet classes that are no longer used by the web 239 interface. 240 241 242Changes in CUPS v2.4.1 (2022-01-27) 243----------------------------------- 244 245- The default color mode now is now configurable and defaults to the printer's 246 reported default mode (Issue #277) 247- Configuration script now checks linking for -Wl,-pie flags (Issue #303) 248- Fixed memory leaks - in testi18n (Issue #313), in `cups_enum_dests()` 249 (Issue #317), in `_cupsEncodeOption()` and `http_tls_upgrade()` (Issue #322) 250- Fixed missing bracket in de/index.html (Issue #299) 251- Fixed typos in configuration scripts (Issues #304, #316) 252- Removed remaining legacy code for `RIP_MAX_CACHE` environment variable 253 (Issue #323) 254- Removed deprecated directives from cupsctl and cups-files.conf (Issue #300) 255- Removed `purge-jobs` legacy code from CGI scripts and templates (Issue #325) 256 257 258Changes in CUPS v2.4.0 (2021-11-29) 259----------------------------------- 260 261- Added configure option --with-idle-exit-timeout (Issue #294) 262- Added --with-systemd-timeoutstartsec configure option (Issue #298) 263- DigestOptions now are applied for MD5 Digest authentication defined 264 by RFC 2069 as well (Issue #287) 265- Fixed compilation on Solaris (Issue #293) 266- Fixed and improved German translations (Issue #296, Issue #297) 267 268 269Changes in CUPS v2.4rc1 (2021-11-12) 270------------------------------------ 271 272- Added warning and debug messages when loading printers 273 if the queue is raw or with driver (Issue #286) 274- Compilation now uses -fstack-protector-strong if available (Issue #285) 275 276 277Changes in CUPS v2.4b1 (2021-10-27) 278----------------------------------- 279 280- Added support for CUPS running in a Snapcraft snap. 281- Added basic OAuth 2.0 client support (Issue #100) 282- Added support for AirPrint and Mopria clients (Issue #105) 283- Added configure support for specifying systemd dependencies in the CUPS 284 service file (Issue #144) 285- Added several features and improvements to `ipptool` (Issue #153) 286- Added a JSON output mode for `ipptool`. 287- The `ipptool` command now correctly reports an error when a test file cannot 288 be found. 289- CUPS library now uses thread safe `getpwnam_r` and `getpwuid_r` functions 290 (Issue #274) 291- Fixed Kerberos authentication for the web interface (Issue #19) 292- The ZPL sample driver now supports more "standard" label sizes (Issue #70) 293- Fixed reporting of printer instances when enumerating and when no options are 294 set for the main instance (Issue #71) 295- Reverted USB read limit enforcement change from CUPS 2.2.12 (Issue #72) 296- The IPP backend did not return the correct status code when a job was canceled 297 at the printer/server (Issue #74) 298- The `testlang` unit test program now loops over all of the available locales 299 by default (Issue #85) 300- The `cupsfilter` command now shows error messages when options are used 301 incorrectly (Issue #88) 302- The PPD functions now treat boolean values as case-insensitive (Issue #106) 303- Temporary queue names no longer end with an underscore (Issue #110) 304- The USB backend now runs as root (Issue #121) 305- Added pkg-config file for libcups (Issue #122) 306- Fixed a PPD memory leak caused by emulator definitions (Issue #124) 307- Fixed a `DISPLAY` bug in `ipptool` (Issue #139) 308- The scheduler now includes the `[Job N]` prefix for job log messages, even 309 when using syslog logging (Issue #154) 310- Added support for locales using the GB18030 character set (Issue #159) 311- `httpReconnect2` did not reset the socket file descriptor when the TLS 312 negotiation failed (Apple #5907) 313- `httpUpdate` did not reset the socket file descriptor when the TLS 314 negotiation failed (Apple #5915) 315- The IPP backend now retries Validate-Job requests (Issue #132) 316- Now show better error messages when a driver interface program fails to 317 provide a PPD file (Issue #148) 318- Added dark mode support to the CUPS web interface (Issue #152) 319- Added a workaround for Solaris in `httpAddrConnect2` (Issue #156) 320- Fixed an interaction between `--remote-admin` and `--remote-any` for the 321 `cupsctl` command (Issue #158) 322- Now use a 60 second timeout for reading USB backchannel data (Issue #160) 323- The USB backend now tries harder to find a serial number (Issue #170) 324- Fixed `@IF(name)` handling in `cupsd.conf` (Apple #5918) 325- Fixed documentation and added examples for CUPS' limited CGI support 326 (Apple #5940) 327- Fixed the `lpc` command prompt (Apple #5946) 328- Now always pass "localhost" in the `Host:` header when talking over a domain 329 socket or the loopback interface (Issue #185) 330- Fixed a job history update issue in the scheduler (Issue #187) 331- Fixed `job-pages-per-set` value for duplex print jobs. 332- Fixed an edge case in `ippReadIO` to make sure that only complete attributes 333 and values are retained on an error (Issue #195) 334- Hardened `ippReadIO` to prevent invalid IPP messages from being propagated 335 (Issue #195, Issue #196) 336- The scheduler now supports the "everywhere" model directly (Issue #201) 337- Fixed some IPP Everywhere option mapping problems (Issue #238) 338- Fixed support for "job-hold-until" with the Restart-Job operation (Issue #250) 339- Fixed the default color/grayscale presets for IPP Everywhere PPDs (Issue #262) 340- Fixed support for the 'offline-report' state for all USB backends (Issue #264) 341- Fixed an integer overflow in the PWG media size name formatting code 342 (Issue #668) 343- Documentation fixes (Issue #92, Issue #163, Issue #177, Issue #184) 344- Localization updates (Issue #123, Issue #129, Issue #134, Issue #146, 345 Issue #164) 346- USB quirk updates (Issue #192, Issue #270, Apple #5766, Apple #5838, 347 Apple #5843, Apple #5867) 348- Web interface updates (Issue #142, Issue #218) 349- The `ippeveprinter` tool now automatically uses an available port. 350- Fixed several Windows TLS and hashing issues. 351- Deprecated cups-config (Issue #97) 352- Deprecated Kerberos (`AuthType Negotiate`) authentication (Issue #98) 353- Removed support for the (long deprecated and unused) `FontPath`, 354 `ListenBackLog`, `LPDConfigFile`, `KeepAliveTimeout`, `RIPCache`, and 355 `SMBConfigFile` directives in `cupsd.conf` and `cups-files.conf`. 356- Stubbed out deprecated `httpMD5` functions. 357- Add test for undefined page ranges during printing. 358