Skip to content

pappl-retrofit 1.0b3

Latest

Choose a tag to compare

@tillkamppeter tillkamppeter released this 11 Nov 15:11
· 3 commits to master since this release

This is the third beta release of the upcoming pappl-retrofit 1.0.0. It adds support for use in CUPS 3.x environments (libcups3, PAPPL 2.x), Gets a full CI testing suite with static analysis and build/unit testing on 4 architectures with CUPS 2.x, 2.5.x, and 3.x, and PAPPL 1.4.x and 2.x, conformance testing of uploaded PPDs, raw printing, and more. Also there are many bug fixes, especially for the security vulnerability CVE-2026-123747, which allowed overwriting and removing files in the whole file system.

  • Support for building with libcups3 and PAPPL 2.x
    • Printer Applications are principally for CUPS 3.x environments. So we make sure we can build there without needing any parts of CUPS 2.x (to support PPD files we had created libppd earlier)
    • Code is now done based on libcups3 and PAPPL 2.x APIs and for libcups2/PAPPL 1.4.x builds conversions are defined in libcups2-private.h and pappl1-private.h
    • Thanks to Biswadeep Purkayastha for adding libcups3 support initially and to Rohit Kumar for updating it and adding support for PAPPL 2.x
    • Pull requests #15, #50
  • Run uploaded PPD files through tests
    • When uploading a PPD file, it gets tested for conformity with the PPD specifications by the ppdTest() function of libppd, which is derived from the cupstestppd utility of CUPS 2.x.
    • Pull request #9
  • Use PAPPL configuration options from file
    • Let legacy-printer-app use PAPPL configuration options via file or command line, so that legacy-printer-app and LPrint can use the same way of configuration
    • Pull request #27
  • Raw printing support
    • Implemented prPrintFile() for raw printing
    • Pull request #58
  • CI testing workflow for different architectures and CUPS versions
    • Static analysis with cppcheck and CodeQL
    • Build tests and unit tests on 4 architectures (x86 64-bit, ARM 32/64-bit, RISC-V 64-bit) and on CUPS 2.x/2.5.x with PAPPL 1.4.x and CUPS 3.x with PAPPL 2.x (12 combinations)
    • Use emulations for ARM 32-bit and RISC-V
    • C unit testing suite
    • Pull requests #43, #44, #45, #47, #48, #49, #50, #54, #55, #56
  • Man page for the Legacy Printer Application (legacy-printer-app)
    • As the Legacy Printer Application is a useful utility for end users, allowing them to continue using proprietary CUPS drivers for their legacy printers after updating to CUPS 3.x or to the CUPS Snap, we add a man page for it now, as we have already man pages for the other Printer Applications: PostScript, Ghostscript, HPLIP, and Gutenprint Printer Application.
    • When we install legacy-printer-app as a daemon, the man page will get installed in section 8.
  • Fixed bugs found in security audit by 7ASecurity
    • SECURITY: Reject PPD names that leave the upload directory, for both add and delete operations
      (CVE-2026-123747, GHSA-wxj6-x3wg-4vmc, OCU-01-020, pull request #66)
    • Don't crash on a check box form field with no choice
      (OCU-01-022, pull request #70)
    • Thanks to Dhirender Choudhary for posting the pull requests and implementing the fixes
  • Don't pin whitespace collapsing in the device compare test
    (Pull request #68)
  • Fix crash on error when uploading a PPD file
    (Pull request #60)
  • Give the sidechannel and the backchannel its own file descriptor
    (Issue #32, pull request #51)
  • Fix pthread rwlock deadlock in _prStatus callback
    (Pull request #52)
  • Fix crash when filter chain is NULL
    (Issue #30, pull request #42)
  • Fix bug where O_NONBLOCK flag is set with the wrong fcntl
    (Pull request #39)
  • Fix memory leaks from compiled_re_list
    (Pull request #31)
  • Fix issues reported by OpenScanHub
    • Fix potential memory leaks
    • Protect _prASCII() from negative lengths
    • cups-backends.c: Ensure read string is NULL-terminated
    • Fix possible unterminated string
    • Pull request #28
  • Modify path of legacy printer app in Makefile.am
    (Pull request #13)
  • Changed new files for back and side channel to // comment format
  • Spell checked comments, log output, and README.md with CSpell
    (Pull request #12)
  • Typo in URL in README.md
    (Pull request #33)
  • Introduced CHANGES.md file