Michael R Sweet, autore del sistema di stampa CUPS, ha presentato il rilascio di PAPPL 1.3, un framework per lo sviluppo di applicazioni di stampa basate sul protocollo IPP Everywhere, raccomandato per l'uso al posto dei tradizionali driver per stampanti. Il codice del framework è scritto in C e distribuito sotto licenza Apache 2.0 con un'eccezione che consente il collegamento con codice sotto licenze GPLv2 e LGPLv2.
Il framework PAPPL è stato originariamente sviluppato per supportare il sistema di stampa LPrint e i driver Gutenprint, ma può essere utilizzato per implementare il supporto per qualsiasi stampante e driver nella stampa su sistemi desktop, server e integrati. Si prevede che PAPPL possa contribuire ad accelerare la diffusione della tecnologia IPP Everywhere, sostituendo i classici driver e semplificando il supporto per altri software basati su IPP, come AirPrint e Mopria.
PAPPL include un'implementazione integrata del protocollo IPP Everywhere, che fornisce strumenti per accedere alle stampanti localmente o in rete e per elaborare le richieste di stampa. IPP Everywhere funziona in modalità senza driver ("driverless") e, a differenza dei driver PPD, non richiede la creazione di file di configurazione statici. È supportata l'interazione con le stampanti sia direttamente tramite una connessione locale alla stampante via USB, sia attraverso la rete utilizzando i protocolli AppSocket e JetDirect. I dati possono essere inviati alla stampante in formati JPEG, PNG, PWG Raster, Apple Raster e "raw".
PAPPL può essere compilato per sistemi operativi compatibili con POSIX, tra cui Linux, macOS, QNX e VxWorks. Tra le dipendenze si segnalano Avahi (per il supporto di mDNS/DNS-SD), CUPS, GNU TLS, JPEGLIB, LIBPNG, LIBPAM (per l'autenticazione) e ZLIB. Sulla base di PAPPL, il progetto OpenPrinting sviluppa un'applicazione universale PostScript Printer Application, in grado di funzionare sia con le moderne stampanti compatibili con IPP (utilizzando PAPPL), che supportano PostScript e Ghostscript, sia con le stampanti più vecchie per le quali esistono driver PPD (applicando i filtri cups-filters e libppd).
Tra le modifiche nella nuova versione:
- È stata aggiunta la possibilità di mantenere e riprendere le operazioni di stampa.
- È stata aggiunta la registrazione di un log di debug per le operazioni di gestione dei dispositivi.
- È stata aggiunta la supporto per il ridimensionamento delle immagini PNG, utilizzando le informazioni sulla risoluzione incorporate.
- È stata fornita la possibilità di visualizzare un banner localizzato nella parte superiore delle pagine web con informazioni sulla stampante e sul sistema.
- È stato aggiunto un API per la gestione dell'avvio delle attività pianificate.
- È stata implementata la possibilità di configurare la rete tramite callback.
- È stato aggiunto un API per limitare la dimensione massima delle immagini JPEG e PNG.
- È stata aggiunta la supporto per la compilazione in Clang/GCC in modalità ThreadSanitizer (-enable-tsanitizer).
- Nel campo di inserimento della password per il Wi-Fi è stata aggiunta un pulsante per visualizzare la password.
Fonte: opennet.ru
