The Common UNIX Printing System (CUPS) is a cross-platform printing solution used on many different Linux distros. Its use is very widespread, as it has become the standard print manager on the majority of popular Linux distros.
CUPS acts as a print spooler, scheduler, print job manager, and can store information for numerous local or network printers. It is based on the Internet Printing Protocol and provides complete printing services to most PostScript and raster printers.
At the end of 2019, Michael Sweet, the lead developer of CUPS left Apple after he joined Apple and the company purchased the source code a decade prior for this long-standing open-source printing system. As a result, Apple’s public CUPS development effectively ended and Apple now is basically interested in just maintaining CUPS 2.3 and not really developing it further.
Therefore, OpenPrinting now controls the CUPS project moving forward with Michael Sweet being involved in the effort, and the results were not late.
Now CUPS 2.4.0 is finally here in its production-ready state, bringing numerous security and performance improvements to make the widely used printing system more reliable and stable than ever.
CUPS 2.4.0 What’s New
OpenPrinting CUPS 2.4.0 is the most current version of CUPS, a standards-based, open source printing system for Linux and other Unix-like operating systems.
The project code continues to be delivered under the Apache-2.0 license, but now it’s positioned on its own forked repository, but not Apple’s one.
The new version has not limited itself to newly added support for AirPrint and Mopria clients and support for running CUPS in a Snapcraft snap, on the contrary, a lot of new features has been added to this update.
CUPS 2.4.0 brings basic OAuth 2.0 client support. For these unaware, OAuth 2.0 is an authorization method used to provide to a third-party application a limited access to a protected resource over the HTTPS protocol. On top of that, the Kerberos authentication issue for the web interface has already been fixed in the latest version.
Among other things, the ipptool
command now correctly reports an error when a test file cannot be found.
Under the hood, the USB backend now runs as root and the scheduler now includes the [Job N]
prefix for job log messages, even when using syslog logging.
It’s important to note, that CUPS 2.4.0 removed support for the long deprecated and unused FontPath
, ListenBackLog
, LPDConfigFile
, KeepAliveTimeout
, RIPCache
, and SMBConfigFile
directives in cupsd.conf
and cups-files.conf
.
These are mostly the important changes coming with CUPS 2.4.0. Apart from that, a lot of bug fixes and translation updates are also notable in this release.
For more information about all changes in the new version, you can refer to the CUPS 2.4.0 official announcement or visit the project’s GitHub release page.
From the plans for the release of CUPS 3.0, it’s expected to re-architect the CUPS design. This means that CUPS 3.0 could split the project into separate library, command-line tools, local server, and sharing server sub-projects.
So, given that CUPS 3.0 is planned to be released in late 2023, we’ll wait and see.