From Fedora Project Wiki
Line 64: Line 64:


* [https://github.com/OpenPrinting/libcupsfilters libcupsfilters]- shared library, which now implements filter functions for filtering,
* [https://github.com/OpenPrinting/libcupsfilters libcupsfilters]- shared library, which now implements filter functions for filtering,
* [https://github.com/OpenPrinting/libppd libppd] - shared library copied from CUPS 2.x for retrospective PPD driver support in printer applications - do not use it for new projects,
* [https://github.com/OpenPrinting/libppd libppd] - shared library copied from CUPS 2.x for retrospective PPD driver support in printer applications - !do not use it for new projects!,
* [https://github.com/OpenPrinting/cups-browsed cups-browsed] - cups-browsed daemon,
* [https://github.com/OpenPrinting/cups-browsed cups-browsed] - cups-browsed daemon,
* [https://github.com/OpenPrinting/cups-filters cups-filters] - filter and backend binaries useful for CUPS 2.x,
* [https://github.com/OpenPrinting/cups-filters cups-filters] - filter and backend binaries useful for CUPS 2.x,
* [https://github.com/OpenPrinting/braille-printer-app braille-printer-app] - printer driver for Braille embosser.
* [https://github.com/OpenPrinting/braille-printer-app braille-printer-app] - printer driver for Braille embosser.


All of them has to be packaged to have the same set of functionality as in the past. The `libcupsfilters 2.x` library is required for all retro-fitting printer applications which are currently implemented in OpenPrinting community, so its packaging will enable packaging those printer applications for Fedora. Printer application is a software which will substitute classic printer driver in cases where driverless protocols can't be applied (older devices which are not capable of using driverless protocols) or where driverless protocols and their options don't suffice (devices with specific printing options).
All of them have to be packaged to ensure the same set of functionality as in the past. The `libcupsfilters 2.x` library implements functions required for retro-fitting printer applications, which are projects substituting classic printer driver in cases where driverless protocols can't be applied (older devices which are not capable of using driverless protocols) or where driverless protocols and their options don't suffice (devices with specific printing options). The printer applications are currently available only as Snaps. Once `libcupsfilters` and `libppd` are shipped in Fedora, printer applications developed by OpenPrinting can be packaged into Fedora as RPMs.  


`libcupsfilters` requires `ghostscript` 10.00.0, which currently is not shipped in Fedora, so a prerequisite for new `cups-filters` is rebase of `ghostscript`.
`libcupsfilters` requires `ghostscript` 10.00.0, which currently is not shipped in Fedora, so a prerequisite for new `cups-filters` is rebase of `ghostscript`.

Revision as of 12:21, 16 January 2023

Important.png
Comments and Explanations
The page source contains comments providing guidance to fill out each section. They are invisible when viewing this page. To read it, choose the "view source" link.
Copy the source to a new page before making changes! DO NOT EDIT THIS TEMPLATE FOR YOUR CHANGE PROPOSAL.
Idea.png
Guidance
For details on how to fill out this form, see the documentation.
Idea.png
Report issues
To report an issue with this template, file an issue in the pgm_docs repo.


cups-filters 2.0b

Important.png
This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee.

Summary

The cups-filters project has been split into five projects in the new major version 2.0b - cups-filters, libcupsfilters, libppd, braille-printer-app and cups-browsed - the new projects will be packaged and cups-filters package will be rebased to version 2.0b once the other projects are available in rawhide. All projects are now united on Apache Software License 2.0.

Owner

Current status

  • Targeted release: Fedora Linux 38
  • Last updated: 2023-01-16
  • FESCo issue: <will be assigned by the Wrangler>
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

cups-filters 1.x series contain several different sets of binaries:

  • filters, which are used during printing, such as pdftopdf, imagetopdf, bannertopdf,
  • cups-browsed daemon, which automatically installs remote printers (remote print queues shared by mDNS or by CUPS broadcast, remote print queue from print server outside of local network via BrowsePoll or local devices) locally and provides clusters for load balancing functionality,
  • driverless and driverless-fax utilities, which generate a PPD file based on IPP response from the device,
  • printing backends as beh and implicitclass,
  • printer drivers such as generic PDF driver or virual braille driver,
  • shared library libcupsfilters defining functions used by cups-filters tools.

Major version 2.0 follows CUPS 3.0's example - the project is divided into several modules based on its functionality. The new projects are:

  • libcupsfilters- shared library, which now implements filter functions for filtering,
  • libppd - shared library copied from CUPS 2.x for retrospective PPD driver support in printer applications - !do not use it for new projects!,
  • cups-browsed - cups-browsed daemon,
  • cups-filters - filter and backend binaries useful for CUPS 2.x,
  • braille-printer-app - printer driver for Braille embosser.

All of them have to be packaged to ensure the same set of functionality as in the past. The libcupsfilters 2.x library implements functions required for retro-fitting printer applications, which are projects substituting classic printer driver in cases where driverless protocols can't be applied (older devices which are not capable of using driverless protocols) or where driverless protocols and their options don't suffice (devices with specific printing options). The printer applications are currently available only as Snaps. Once libcupsfilters and libppd are shipped in Fedora, printer applications developed by OpenPrinting can be packaged into Fedora as RPMs.

libcupsfilters requires ghostscript 10.00.0, which currently is not shipped in Fedora, so a prerequisite for new cups-filters is rebase of ghostscript.

The project's split has an additional side effect - cups-browsed won't be brought together with cups by default. I propose to add it into printing group in comps to make sure the package is installed in specific environments, but doesn't depend on cups.

Feedback

Benefit to Fedora

The newest cups-filters version will be shipped in Fedora, providing shared library needed by printer applications. Printer applications are required for supporting older or specific devices, which can't use drivereless standards, in a system where CUPS does not support classic printer drivers (planned for CUPS 3.x).

Scope

  • Proposal owners:

The owner will package the new projects, rebase the current cups-filters package and create a pull request for adding cups-browsed into printing comps group. He will add the proper Conflicts:, Requires: and Obsoletes: tags to ensure a clean upgrade path.

  • Other developers:
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with Objectives:

Upgrade/compatibility impact

RPM tags will be used in .SPEC file to ensure the clean upgrade path.

How To Test

Once all projects are packaged and waiting on review, there will be available in the COPR repo.

User Experience

cups-browsed won't be installed together with cups-filters as it is now, because it will be an independent package to cups-filters.

Dependencies

The new cups-filters packages depends on ghostscript 10.0.0, which is not in Fedora yet. The ticket is here.

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), Yes/No


Documentation

OpenPrinting News article


Release Notes