Michael Sweet, der Entwickler des CUPS-Drucksystems, hat die Veröffentlichung von PAPPL 1.3 angekündigt, einem Framework zur Entwicklung von Druckanwendungen auf Basis des IPP Everywhere-Protokolls, das als Ersatz für herkömmliche Druckertreiber empfohlen wird. Der Code des Frameworks ist in C verfasst und wird unter der Apache 2.0-Lizenz mit einer Ausnahme veröffentlicht, die die Verknüpfung mit Code unter den Lizenzen GPLv2 und LGPLv2 erlaubt.
Das PAPPL-Framework wurde ursprünglich zur Unterstützung des LPrint-Drucksystems und der Gutenprint-Treiber entwickelt, kann jedoch zur Implementierung der Unterstützung für alle Drucker und Treiber in Desktop-, Server- und Embedded-Systemen verwendet werden. PAPPL soll dazu beitragen, die Verbreitung der IPP Everywhere-Technologie im Vergleich zu herkömmlichen Treibern zu fördern und die Unterstützung anderer IPP-basierter Anwendungen wie AirPrint und Mopria zu vereinfachen.
PAPPL enthält eine integrierte Implementierung des Protokolls IPP Everywhere, das die Möglichkeit bietet, lokal oder über Netzwerke auf Drucker zuzugreifen und Druckaufträge zu verarbeiten. IPP Everywhere funktioniert im driverlosen Modus und erfordert im Gegensatz zu PPD-Treibern keine Erstellung statischer Konfigurationsdateien. Die Interaktion mit Druckern erfolgt sowohl direkt über eine lokale USB-Verbindung als auch über das Netzwerk mithilfe der Protokolle AppSocket und JetDirect. Daten können im JPEG-, PNG-, PWG Raster-, Apple Raster- und „raw“-Format an den Drucker gesendet werden.
PAPPL kann für POSIX-kompatible Betriebssysteme, einschließlich Linux, macOS, QNX und VxWorks, kompiliert werden. Zu den Abhängigkeiten gehören Avahi (für die Unterstützung von mDNS/DNS-SD), CUPS, GNU TLS, JPEGLIB, LIBPNG, LIBPAM (für Authentifizierung) und ZLIB. Basierend auf PAPPL entwickelt das OpenPrinting-Projekt eine universelle Anwendung für PostScript-Drucker, die sowohl mit modernen IPP-kompatiblen Druckern (nutzt PAPPL), die PostScript und Ghostscript unterstützen, als auch mit älteren Druckern, für die PPD-Treiber vorhanden sind (nutzt cups-filters und libppd), arbeiten kann.
Zu den Änderungen in der neuen Version gehören:
- Die Möglichkeit, Druckaufträge zu halten und fortzusetzen, wurde hinzugefügt.
- Das Protokollieren von Debug-Logs für Geräteverwaltungsoperationen wurde hinzugefügt.
- Unterstützung für das Skalieren von PNG-Bildern unter Verwendung der eingebetteten Auflösungsinformationen wurde hinzugefügt.
- Die Möglichkeit zur Ausgabe eines lokalisierten Banners oben auf Webseiten mit Informationen zum Drucker und System wurde bereitgestellt.
- Eine API zur Verwaltung des Starts von geplanten Aufgaben wurde hinzugefügt.
- Die Möglichkeit zur Netzwerk-Konfiguration über Callback-Aufrufe wurde implementiert.
- Eine API zur Begrenzung der maximalen Größe von JPEG- und PNG-Bildern wurde hinzugefügt.
- Unterstützung für den Build mit Clang/GCC im ThreadSanitizer-Modus (-enable-tsanitizer) wurde hinzugefügt.
- Im Passwortfeld für Wi-Fi wurde eine Schaltfläche zum Anzeigen des Passworts hinzugefügt.
Quelle: opennet.ru
