Dopo quasi tre anni dalla creazione del precedente ramo significativo, la Apple ha rilasciato un sistema di stampa libero (Common Unix Printing System), utilizzato in macOS e nella maggior parte delle distribuzioni Linux. Lo sviluppo di CUPS è completamente controllato dalla Apple, che nel 2007 la società Easy Software Products, che ha creato CUPS.
A partire da questa versione, la licenza del codice è stata modificata da GPLv2 e LGPLv2 a Apache 2.0, consentendo alle aziende esterne di utilizzare il codice di CUPS nei propri prodotti, senza la necessità di rivelare le modifiche apportate, oltre a garantire la compatibilità delle licenze con altri progetti open source di Apple, come Swift, WebKit e mDNSResponder. La licenza Apache 2.0 definisce anche esplicitamente il trasferimento dei diritti su tecnologie brevettate insieme al codice. Una conseguenza negativa del cambio di licenza da GPL a Apache è la perdita della compatibilità delle licenze con progetti rilasciati esclusivamente sotto la licenza GPLv2 (la licenza Apache 2.0 è compatibile con GPLv3, ma non lo è con GPLv2). Per risolvere questo problema, è stata aggiunta una clausola speciale all'accordo di licenza per il codice sotto le licenze GPLv2/LGPLv2.
Principali in CUPS 2.3:
- È stata aggiunta la supporto per le preimpostazioni e l'attributo "" nei modelli di lavoro di stampa per il protocollo , che fornisce strumenti per la selezione dinamica della stampante disponibile in rete, permette di rilevare la presenza di stampanti, inviare richieste e svolgere operazioni di stampa, sia direttamente che tramite host intermedi;
- È stata inclusa una nuova utility con realizzazione di un semplice server IPP Everywhere, che può essere utilizzato per testare il software client o per eseguire comandi per ciascun lavoro di stampa;
- Nel comando lpstat è stata implementata la visualizzazione dello stato di sospensione dei nuovi lavori di stampa;
- Nella libreria libcups è stato aggiunto il supporto per l'autenticazione HTTP Digest e SHA-256;
- Nell'implementazione del protocollo di condivisione delle stampanti è stato garantito l'uso dei nomi DNS-SD durante la registrazione della stampante in rete;
- Nell'utility ipptool è stata aggiunta la possibilità di registrare file di attributi ippserver;
- Nella direttiva SSLOptions è stato aggiunto il supporto per le opzioni MinTLS e MaxTLS per la selezione delle versioni TLS da utilizzare;
- Nel "client.conf" è stata aggiunta la supporto per la direttiva UserAgentTokens;
- Servizio systemd aggiornato per avviare cupsd;
- Nel comando lpoptions è stata aggiunta la possibilità di lavorare con stampanti IPP Everywhere, non aggiunte alle code di stampa locali;
- Nel driver IPP Everywhere è stato aggiunto il supporto corretto per le stampanti con modalità di stampa fronte e retro;
- Aggiunte regole per tener conto delle specificità delle stampanti USB Lexmark E120n, Lexmark Optra E310, Zebra, DYMO 450 Turbo, Canon MP280, Xerox e HP LaserJet P1102;
- Risolte vulnerabilità e , che portano a un overflow del buffer destinato allo stack durante l'elaborazione di dati non corretti nelle funzioni asn1_get_packed e asn1_get_type, utilizzate nell'elaborazione delle richieste SNMP;
- Rimosse le utility cupsaddsmb e cupstestdsc.
Fonte: opennet.ru
