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 da utilizzare al posto dei tradizionali driver per stampanti. Il codice del framework è scritto in linguaggio C e distribuito con licenza Apache 2.0, con un'eccezione che consente il collegamento a codice sotto licenze GPLv2 e LGPLv2.
Il framework PAPPL è stato inizialmente 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 per la stampa su sistemi desktop, server ed embedded. Si prevede che PAPPL possa contribuire ad accelerare l'adozione della tecnologia IPP Everywhere al posto dei driver classici e semplificare il supporto per altre applicazioni basate su IPP, come AirPrint e Mopria.
PAPPL include un'implementazione incorporata del protocollo IPP Everywhere, che fornisce strumenti per accedere alle stampanti localmente o in rete e gestire 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 connessione locale alla stampante via USB, sia via 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 POSIX, inclusi Linux, macOS, QNX e VxWorks. Tra le dipendenze spiccano Avahi (per il supporto di mDNS/DNS-SD), CUPS, GNU TLS, JPEGLIB, LIBPNG, LIBPAM (per l'autenticazione) e ZLIB. Basato su PAPPL, il progetto OpenPrinting sta sviluppando un'applicazione universale chiamata PostScript Printer Application, capace di funzionare sia con stampanti moderne compatibili con IPP (che utilizza PAPPL) che con stampanti più vecchie per le quali sono disponibili driver PPD (utilizzando i filtri cups-filters e libppd).
Tra le novità nella nuova versione:
- È stata aggiunta la possibilità di sospendere e riprendere l'esecuzione dei lavori di stampa.
- È stata aggiunta la registrazione di un log di debug per le operazioni di gestione delle 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.
- Aggiunto API per gestire l'avvio delle attività programmate.
- Implementata la possibilità di configurare la rete tramite chiamate di callback.
- Aggiunto API per limitare la dimensione massima delle immagini JPEG e PNG.
- Aggiunta la supporto per la compilazione in Clang/GCC nella modalità ThreadSanitizer (-enable-tsanitizer).
- Nel campo di inserimento della password per il Wi-Fi è stato aggiunto un pulsante per visualizzare la password.
Fonte: opennet.ru
