Apple recently announced the launch of the new version of CUPS, the company is responsible for the free printing system, used in its system and in most Linux distributions.
CUPS 2.3 came with some news and changes, starting with its license. Previously using GPLv2 and LGPLv2, now passes to the Apache 2.0 license, which allows the use of CUPS code by other companies and products, without the concern of compatibility with GPLv2 and LGPv2. Thus, even other open source projects from Apple will be compatible with the new license adopted (for example, Swift, WebKit and mDNSResponder).
The issue of licenses is often confusing to understand, and it ends up limiting several projects because it is mandatory to maintain compatible licenses or prevent the use of proprietary code with free software.
The Apache 2.0 license is compatible with GPLv3, however, incompatible with GPLv2. To resolve this impasse, a special exception was added to the license agreement for code under the GPLv2 / LGPLv2 licenses.
What’s New in CUPS 2.3
CUPS was not limited to changing its license, on the contrary, new features were added, following the main features:
- Support for presets and the “finish” attribute, in the IPP Everywhere protocol (this allows tools to dynamically define a printer on the network, send requests, perform printing operations directly or through intermediaries);
- Implementation of the suspension status display of new print jobs in the “ipstart” command;
- New ippeveprinter utility, with the implementation of an IPP Everwhere server (allowing the execution of commands for each print job or client software);
- Support for HTTP Digest and SHA-256 authentication for libcups library;
- Rules that follow the specifications of printer models, such as: Lexmark E120n, Lexmark Optra E310, Zebra, DYMO 450 Turbo, Canon MP280, Xerox and HP LaserJet P1102;
- Correction of vulnerabilities that caused the buffer overflow designated for the processing of invalid data (CVE-2019-8696 and CVE-2019-8675);
- Implementation of the protocol for sharing access to Bonjour printers, providing DNS-SD names when registering printers on the network;
- Added support for writing ippserver attributes to files in the ipptool utility;
- Added support for MinTLS and MaxTLS options to SSLOptions, making it possible to choose which TLS to use;
- Added support for the UserAgentTokens directive to “client.conf”;
- Update of the Systemd service to run cupsd;
- Ipoptions can now work with IPP Everwhere printers that are not added to the print queue;
- Correctly added support for printing mode in front of the IPP Everwhere driver;
- Removing the cupsaddsmb and cupstestdsc utilities.
For more information visit the Apple Github repository, specifically CUPS, through this link.
How to install the new CUPS 2.3 on Ubuntu and derivatives
So far this new version is not available in the official Ubuntu repositories, usually this process takes a few days. I recommend you to be patient and wait for the update. However, if you are a “quickie”, you can compile directly from Github. But, only do this if you are fully aware of how to proceed. Below I will demonstrate the compilation of the CUPS 2.3 source code. Do it at your own risk.
Downloading the CUPS 2.3 source code:
Unpacking the package:
tar xzvf cups-2.3.0-source.tar.gz
Entering the created directory:
Anyway, getting your hands dirty and compiling (following the commands in order):
sudo make install
Finally, restart the service or the system for the new version to run.
I bet that many did not know that the “Apple owner” was responsible for the CUPS printing system (?️?️?️).
Be part of our Diolinux Plus forum, and stay on top of news.
Until the next post, I’ll wait for you here at blog Diolinux, SYSTEMATICALLY! ?
Source: Ubunlog, Apple.
Have you seen any errors or would you like to add any suggestions to this article? Collaborate, click here.