Contributors, completed projects, and mentoring details for GSoC 2024.
Completed Work
Replaced QPDF with PDFio as the PDF manipulation library in libcupsfilters, porting all C++ files in cupsfilters/pdftopdf/*, pdf.cxx, and pclmtoraster.cxx to pure C with all tests passing.
Added CPDB support for the Mozilla Firefox/Thunderbird print dialog, implementing a CPDB backend that dynamically fetches printer properties. Code review pending upstream merge at Mozilla.
Updated system-config-printer for the New Architecture of printing, adding asynchronous IPP service discovery and working on the 'Add Printer' functionality for modern IPP printers.
Converted Braille embosser support into a PAPPL-based Printer Application, implementing MIME type detection with libmagic and supporting printing of TXT, PDF, HTML, and JPG files to Braille embossers.
Added CPDB support to the LibreOffice print dialog, connecting LibreOffice to the Common Print Dialog Backends system. All CPDB pull requests merged; LibreOffice upstream merge request pending.
Created a native Printer Application from Gutenprint, converting the Gutenprint driver into a PAPPL-based Printer Application without PPD file dependencies. Plans include adding option preset functionality.
Packaged CUPS and Printer Applications (PostScript, Ghostscript, HPLIP, Gutenprint) into OCI container images (Rocks), and built GitHub Actions for automated updates and versioning.
Finalized the new printing architecture for GNOME in the GNOME Control Center, adding support for driverless IPP printers and Printer Applications in the GUI. Code migration to GCC 47.3 and upstream merge request in progress.
Integrated C-based OpenPrinting projects into OSS-Fuzz testing, deploying active fuzzing on CUPS 2.x and libcups 3.x repositories. Discovered and fixed issues resulting in over 5,000 lines of code changes.
Bridged the PAPPL API for Scanner Applications, creating the Scan API in PAPPL and a retrofit interface for replacing SANE with a universal PAPPL interface for driverless scanner operation.