User Tools

Site Tools


gsoc:google-summer-code-2025-openprinting-projects

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
gsoc:google-summer-code-2025-openprinting-projects [2025/01/26 16:59]
till
gsoc:google-summer-code-2025-openprinting-projects [2025/03/10 11:52] (current)
till [Port CUPS and Printer Applications to Zephyr]
Line 142: Line 142:
  
 ======Project Ideas====== ======Project Ideas======
 +
 +NOTE: Further project ideas can get added at any time before the contributor application deadline. The already listed project ideas can get updated, like correcting mistakes and completing information,​ like the mentor lists.
 +
 +So please have a look here from time to time ...
  
 =====Qt Print Dialog: Modernize the user interface===== =====Qt Print Dialog: Modernize the user interface=====
Line 213: Line 217:
 system-config-printer was already updated for CUPS 3.x in [[https://​github.com/​TheJayas/​GSoC-2024-Final-Report|last year's GSoC]]. Here we want system-config-printer use the new pyCUPS now, for optimization and minimization of code duplication. system-config-printer was already updated for CUPS 3.x in [[https://​github.com/​TheJayas/​GSoC-2024-Final-Report|last year's GSoC]]. Here we want system-config-printer use the new pyCUPS now, for optimization and minimization of code duplication.
  
-Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), TBD+Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), Zdenek Dohnal, Printing Maintainer at Red Hat (zdohnal at redhat ​dot com), TBD
  
 Desired knowledge: Python, C, CUPS Desired knowledge: Python, C, CUPS
Line 245: Line 249:
 1 contributor full-size (350 hours), Level of difficulty: Hard 1 contributor full-size (350 hours), Level of difficulty: Hard
  
-Recent vulnerabilities (including [[https://​openprinting.github.io/​OpenPrinting-News-Flash-cups-browsed-Remote-Code-Execution-vulnerability/​|Recent vulnerabilities ​CVE-2024-47175,​ CVE-2024-47176,​ CVE-2024-47177]]) reported in OpenPrinting projects have underscored the critical need for robust security measures. Given that most of the projects of OpenPrinting are developed in %%C/C++%%, which are prone to memory violation bugs. To address these challenges, OpenPrinting has engaged with Google'​s OSS-Fuzz, a service designed to support open-source communities by providing large-scale fuzz testing and bug reporting, and maintains the fuzz harnesses in the separate ​"[[https://​github.com/​OpenPrinting/​fuzzing|fuzzing]]" ​repository.+Recent vulnerabilities (including [[https://​openprinting.github.io/​OpenPrinting-News-Flash-cups-browsed-Remote-Code-Execution-vulnerability/​|CVE-2024-47175,​ CVE-2024-47176,​ CVE-2024-47177]]) reported in OpenPrinting projects have underscored the critical need for robust security measures. Given that most of the projects of OpenPrinting are developed in %%C/C++%%, which are prone to memory violation bugs. To address these challenges, OpenPrinting has engaged with Google'​s ​[[https://​github.com/​google/​oss-fuzz/​|OSS-Fuzz]], a service designed to support open-source communities by providing large-scale fuzz testing and bug reporting, and maintains the fuzz harnesses in the separate [[https://​github.com/​OpenPrinting/​fuzzing|OpenPrinting ​fuzzing]] repository.
  
-**Current Integration with OSS-Fuzz:** OpenPrinting has successfully integrated three key projects into the OSS-Fuzz workflow, with two additional projects currently in progress. Although the integration has already yielded significant results, which have reported 21 critical fixed bugs leading to more than 5,000 lines of code fixes, it remains insufficient. The coverage for critical components is still lacking, and the severity of potential issues within OpenPrinting projects demands further action.+**Current Integration with OSS-Fuzz:** OpenPrinting has successfully integrated ​**three** key projects into the OSS-Fuzz workflow, with **two** additional projects currently in progress. Although the integration has already yielded significant results, which have reported ​**21** critical fixed bugs leading to more than **5,000** lines of code fixes, it remains insufficient. The [[https://​introspector.oss-fuzz.com/​project-profile?​project=cups|testing ​coverage]] for critical components is still lacking, and the severity of potential issues within OpenPrinting projects demands further action.
  
 For now, OpenPrinting has integrated projects into the OSS-Fuzz workflow: For now, OpenPrinting has integrated projects into the OSS-Fuzz workflow:
Line 258: Line 262:
   * [[https://​github.com/​OpenPrinting/​cups-browsed|cups-browsed]]   * [[https://​github.com/​OpenPrinting/​cups-browsed|cups-browsed]]
  
-With Google'​s introduction of OSS-Fuzz-Gen,​ which leverages Large Language Models to enhance fuzz testing for open-source software, it has demonstrated exceptional potential in facilitating the integration of high-quality fuzz testing ([[https://​testing.googleblog.com/​2016/​12/​announcing-oss-fuzz-continuous-fuzzing.html|Google Blog]]). Therefore, we aim to utilize the OSS-Fuzz-Gen framework to further improve the existing quality of OSS-Fuzz harnesses+With Google'​s introduction of [[https://​github.com/​google/​oss-fuzz-gen|OSS-Fuzz-Gen]], which leverages Large Language Models ​(LLMs) ​to enhance fuzz testing for open-source software, it has demonstrated exceptional potential in facilitating the integration of high-quality fuzz testing ([[https://​testing.googleblog.com/​2016/​12/​announcing-oss-fuzz-continuous-fuzzing.html|Google Blog]]). Therefore, we aim to utilize the OSS-Fuzz-Gen framework to further improve the existing quality of OSS-Fuzz harnesses
  
 **Project Goals for GSoC 2025:** The primary objective for this Google Summer of Code project is to refine and expand our existing fuzz testing harnesses. Specifically:​ **Project Goals for GSoC 2025:** The primary objective for this Google Summer of Code project is to refine and expand our existing fuzz testing harnesses. Specifically:​
Line 265: Line 269:
  
 **Contributor Responsibilities:​** **Contributor Responsibilities:​**
-  * Master OSS-Fuzz best practices to provide high-quality seeds and corpus for existing integrations. +  * Master OSS-Fuzz best practices to provide high-quality seeds and corpus for existing integrations. Employ OSS-Fuzz-Gen to create and integrate new harnesses, adopting diverse strategies to enhance code coverage.
-Employ OSS-Fuzz-Gen to create and integrate new harnesses, adopting diverse strategies to enhance code coverage.+
   * Collaborate with OpenPrinting developers to identify and patch vulnerabilities uncovered through fuzz testing.   * Collaborate with OpenPrinting developers to identify and patch vulnerabilities uncovered through fuzz testing.
  
Line 275: Line 278:
 Code License: Apache 2.0, MIT (licenses of the OpenPrinting projects) Code License: Apache 2.0, MIT (licenses of the OpenPrinting projects)
  
-=====Integrating OSS-Fuzz for Multi-Lingual ​OpenPrinting Projects=====+=====Integrating OSS-Fuzz for Go-Based and Python-Based ​OpenPrinting Projects=====
  
 **Security-related project** **Security-related project**
Line 281: Line 284:
 1 contributor medium-size (175 hours), Level of difficulty: Intermediate 1 contributor medium-size (175 hours), Level of difficulty: Intermediate
  
-OpenPrinting hosts many polyglot projects, which are developed not limited to %%C/C++%%. We also host software written in languages like Python and Golang, which function as crucial printing APIs and often interface with %%C/C++%% libraries to deliver comprehensive printing services. The integration of multiple programming languages into our ecosystem underscores the necessity for a broad and inclusive testing approach. Given the diversity of development environments,​ it is crucial to extend the testing for these projects, specifically for integration of OSS-Fuzz.+OpenPrinting hosts many polyglot projects, which are developed not limited to languages of %%C/C++%%. We also host software written in languages like Python and Golang, which function as crucial printing APIs and often interface with %%C/C++%% libraries to deliver comprehensive printing services. The integration of multiple programming languages into our ecosystem underscores the necessity for a broad and inclusive testing approach. Given the diversity of development environments,​ it is crucial to extend the testing for these projects, specifically for integration of [[https://​github.com/​google/​oss-fuzz|OSS-Fuzz]].
  
 To this end, we plan to extend the capabilities of the existing OSS-Fuzz frameworks to include projects developed in languages other than %%C/C++%%. This initiative will target Python and Golang projects, ensuring that our fuzz testing encompasses the full spectrum of development environments within OpenPrinting. To this end, we plan to extend the capabilities of the existing OSS-Fuzz frameworks to include projects developed in languages other than %%C/C++%%. This initiative will target Python and Golang projects, ensuring that our fuzz testing encompasses the full spectrum of development environments within OpenPrinting.
  
 **Project Goals for GSoC 2025:** The primary objective for this Google Summer of Code project is to integrate the polyglot projects in OpenPrinting into OSS-Fuzz framework and refine existing unit tests for these projects. The targeting projects include: **Project Goals for GSoC 2025:** The primary objective for this Google Summer of Code project is to integrate the polyglot projects in OpenPrinting into OSS-Fuzz framework and refine existing unit tests for these projects. The targeting projects include:
-  * Golang+  ​* **Golang**
     * [[https://​github.com/​OpenPrinting/​ipp-usb|ipp-usb]]     * [[https://​github.com/​OpenPrinting/​ipp-usb|ipp-usb]]
     * [[https://​github.com/​OpenPrinting/​goipp|goipp]]     * [[https://​github.com/​OpenPrinting/​goipp|goipp]]
-  * Python+  ​* **Python**
     * [[https://​github.com/​OpenPrinting/​pycups|pycups]]     * [[https://​github.com/​OpenPrinting/​pycups|pycups]]
     * [[https://​github.com/​OpenPrinting/​pyppd|pyppd]]     * [[https://​github.com/​OpenPrinting/​pyppd|pyppd]]
    
 **Contributor Responsibilities:​** **Contributor Responsibilities:​**
-  * Evaluate and Improve Testing Approaches: The contributor needs to understand existing testing strategies within the project and evaluate their effectiveness. Where there are gaps, particularly in areas that are under-tested,​ the contributor should develop and improve tests to cover these functionalities. +  ​* **Evaluate and Improve Testing Approaches:** The contributor needs to understand existing testing strategies within the project and evaluate their effectiveness. Where there are gaps, particularly in areas that are under-tested,​ the contributor should develop and improve tests to cover these functionalities. 
-  * Integrate Projects into OSS-Fuzz Workflow: The contributor should also integrate these projects into OSS-Fuzz framework, following previous integrations for %%C/C++%% projects in our "[[https://​github.com/​OpenPrinting/​fuzzing|fuzzing]]" ​repository with appropriate fuzzing corpus. +  ​* **Integrate Projects into OSS-Fuzz Workflow:** The contributor should also integrate these projects into OSS-Fuzz framework, following previous integrations for %%C/C++%% projects in OpenPrinting ​[[https://​github.com/​OpenPrinting/​fuzzing|fuzzing]] repository with appropriate fuzzing corpus. 
-  * Triage and Report Vulnerabilities:​ The contributor should work closely with developers from OpenPrinting to identify and report any vulnerabilities that are discovered through the testing process. ​+  ​* **Triage and Report Vulnerabilities:​** The contributor should work closely with developers from OpenPrinting to identify and report any vulnerabilities that are discovered through the testing process. ​
  
 Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), Jiongchi Yu, PhD Candidate at Singapore Management University (jiongchiyu at gmail dot com), George-Andrei Iosif, Security Engineer at Snap Inc. (hi at iosifache dot me). Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), Jiongchi Yu, PhD Candidate at Singapore Management University (jiongchiyu at gmail dot com), George-Andrei Iosif, Security Engineer at Snap Inc. (hi at iosifache dot me).
Line 304: Line 307:
 Code License: Apache 2.0, MIT (licenses of the OpenPrinting projects) Code License: Apache 2.0, MIT (licenses of the OpenPrinting projects)
  
-=====Fuzz-based testing ​of printing protocols=====+=====System/Fuzz Testing ​of Printing Protocols=====
  
 **Security-related project** **Security-related project**
Line 314: Line 317:
 Effective testing of printing protocols and Domain-specific languages (DSL) like IPP and PostScript demands precise input pairs and well-regulated testing environments/​contexts. Given the complexity and technical specifications of these protocols, creating universal testing suites that can be applied across various platforms and languages is essential. Such suites will support the consistent functionality and specification adherence necessary for secure and efficient printing operations. Effective testing of printing protocols and Domain-specific languages (DSL) like IPP and PostScript demands precise input pairs and well-regulated testing environments/​contexts. Given the complexity and technical specifications of these protocols, creating universal testing suites that can be applied across various platforms and languages is essential. Such suites will support the consistent functionality and specification adherence necessary for secure and efficient printing operations.
  
-**Project Goals for GSoC 2025:** The primary objective for this Google Summer of Code project is to develop comprehensive testing suites ​specifically ​designed for the printing protocols used in OpenPrinting projects (e.g., IPP). These suites will include ​unified testing drivers and oracles (verified ​test input and output ​pair) to ensure accurate and reliable results.+**Project Goals for GSoC 2025:** The primary objective for this Google Summer of Code project is to develop comprehensive testing suites designed for the printing protocols used in OpenPrinting projects (e.g., IPP). Specifically,​ the suites encompass: (1) unit tests and differential tests for IPP, detailing test inputs and expected outputs within the appropriate printing contexts, and (2) fuzzing enhanced by a custom validator to verify the correctness of outputs against the specifications. These suites will incorporate ​unified testing drivers and oracles (validated ​test input and output ​pairs) to ensure accurate and reliable results.
  
 **Contributors are expected to achieve:** **Contributors are expected to achieve:**
   * Thoroughly understand and summarize the key aspects of printing protocols used in OpenPrinting,​ such as IPP and PostScript.   * Thoroughly understand and summarize the key aspects of printing protocols used in OpenPrinting,​ such as IPP and PostScript.
   * Develop tailored testing strategies for these protocols, referencing standards such as [[https://​datatracker.ietf.org/​doc/​html/​rfc8011|RFC 8011]], and [[https://​openprinting.github.io/​cups/​doc/​spec-ipp.html|OpenPrinting'​s 17 IPP specifications]]   * Develop tailored testing strategies for these protocols, referencing standards such as [[https://​datatracker.ietf.org/​doc/​html/​rfc8011|RFC 8011]], and [[https://​openprinting.github.io/​cups/​doc/​spec-ipp.html|OpenPrinting'​s 17 IPP specifications]]
-  * Implement high-quality unit tests and fuzz testing oracles within OpenPrinting projects. Contributors will also be responsible for identifying any discrepancies or bugs, reporting them, and coordinating with developers to facilitate necessary fixes.+  * Implement high-quality unit tests, differential tests, ​and fuzzing drivers along with protocol-tailed ​testing oracles within OpenPrinting projects. Contributors will also be responsible for identifying any discrepancies or bugs, reporting them, and coordinating with developers to facilitate necessary fixes. 
 + 
 +//The outputs of this project will not only serve as a valuable reference for generalizing testing across all OpenPrinting projects but also the documented progress can also lead to potential academic contributions,​ such as technical reports or research papers.//
  
 Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), Jiongchi Yu, PhD Candidate at Singapore Management University (jiongchiyu at gmail dot com), George-Andrei Iosif, Security Engineer at Snap Inc. (hi at iosifache dot me). Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), Jiongchi Yu, PhD Candidate at Singapore Management University (jiongchiyu at gmail dot com), George-Andrei Iosif, Security Engineer at Snap Inc. (hi at iosifache dot me).
Line 333: Line 338:
 1 contributor full-size (350 hours), Level of difficulty: Intermediate 1 contributor full-size (350 hours), Level of difficulty: Intermediate
  
-OpenPrinting projects play a critical role in the printing infrastructure of countless systems, making their security paramount. Inspired by security auditing reports from other open source communities (CNCF: [[https://​www.cncf.io/​blog/​2025/​01/​16/​announcing-the-results-of-the-karmada-security-audit/​|Announcing the results of the Karmada ​security audit]], [[https://​www.cncf.io/​blog/​2023/​04/​19/​new-kubernetes-security-audit-complete-and-open-sourced/​|New Kubernetes ​security audit complete and open sourced]] and [[https://​openssf.org/​blog/​2023/​02/​01/​independent-security-audit-impact-report/​|OpenSSF]]),​ we believe a comprehensive security auditing report could significantly enhance the robustness and reliability of these projects. This initiative will leverage advanced software analysis methods to conduct thorough security audits.+OpenPrinting projects play a critical role in the printing infrastructure of countless systems, making their security paramount. Inspired by security auditing reports from other open source communities (CNCF: [[https://​www.cncf.io/​blog/​2025/​01/​16/​announcing-the-results-of-the-karmada-security-audit/​|Security Audit for Karmada]], [[https://​www.cncf.io/​blog/​2023/​04/​19/​new-kubernetes-security-audit-complete-and-open-sourced/​|Security Audit for Kubernetes]] and [[https://​openssf.org/​blog/​2023/​02/​01/​independent-security-audit-impact-report/​|Security Audit for OpenSSF]]), we believe a comprehensive security auditing report could significantly enhance the robustness and reliability of these projects. This initiative will leverage advanced software analysis methods to conduct thorough security audits.
  
-The auditing can include ​end-to-end fuzzing techniques such as [[https://​github.com/​AFLplusplus/​AFLplusplus|AFL]], which assists in the successful detection of [[https://​www.cve.org/​CVERecord?​id=CVE-2024-47076|CVE-2024-47076]]. Static analysis tools including [[https://​github.com/​danmar/​cppcheck|cppcheck]] and Flawfinder, Valgrind can be employed for checking the implementation flaws. The overall security audit should include dynamic software analysis methodologies to cover more extensive aspects of OpenPrinting projects.+The audit process includes scoring OpenPrinting projects using OpenSSF’s Security Scorecard and examining the projects and their dependencies with respect to testing status, which encompasses adherence to continuous integration (CI) test best practices and test coverage assessments. Furthermore,​ dynamic testing should also be considered, for example, ​end-to-end fuzzing techniques such as [[https://​github.com/​AFLplusplus/​AFLplusplus|AFLplusplus]], which assists in the successful detection of [[https://​www.cve.org/​CVERecord?​id=CVE-2024-47076|CVE-2024-47076]]. Static analysis tools including [[https://​github.com/​danmar/​cppcheck|cppcheck]] and [[https://​github.com/​david-a-wheeler/​flawfinder|flawfinder]][[https://​valgrind.org/​|Valgrind]] can be employed for checking the implementation flaws. The overall security audit should include dynamic software analysis methodologies to cover more extensive aspects of OpenPrinting projects.
  
-**Project Goals for GSoC 2025:** The primary objective ​for this Google Summer of Code project is to complete a systematic security audit report for OpenPrinting. This comprehensive process ​will incorporate both dynamic ​and static testing methodologies ​to provide an exhaustive overview of security across the entire network of projects. ​By integrating these diverse testing approaches, the project aims to identify and mitigate potential vulnerabilities effectively,​ ensuring a robust defense mechanism is in place to protect the integrity of the OpenPrinting infrastructure.+**Project Goals for GSoC 2025:** The primary objective ​of this Google Summer of Code project is to complete a systematic security audit report for OpenPrinting. This comprehensive process ​includes maximizing the scores provided by the [[https://​scorecard.dev|OpenSSF Security Scorecard]] ​and scanning dependencies using existing SADT tools. In addition to static ​analysis, incorporating dynamic ​testing methodologies ​will provide an exhaustive overview of security across the entire network of projects. ​The project aims to identify and mitigate potential vulnerabilities effectively,​ ensuring ​that a robust defense mechanism is in place to protect the integrity of the OpenPrinting infrastructure.
  
-**Contributors are expected to:** Use or implement dynamic testing/​auditing tools for analyzing OpenPrinting projects. Prepare ​detailed security auditing reports outlining discovered vulnerabilities, and coordinate with security experts to address these issues effectively.+**Contributors are expected to:** Use or implement dynamic testing/​auditing tools for analyzing OpenPrinting projects, which includes examining OpenSSF Scorecard of OpenPrinting projects and preparing ​detailed security auditing reports outlining discovered vulnerabilities. The contributor should also coordinate with security experts to address these issues effectively.
  
 Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), Jiongchi Yu, PhD Candidate at Singapore Management University (jiongchiyu at gmail dot com), George-Andrei Iosif, Security Engineer at Snap Inc. (hi at iosifache dot me). Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), Jiongchi Yu, PhD Candidate at Singapore Management University (jiongchiyu at gmail dot com), George-Andrei Iosif, Security Engineer at Snap Inc. (hi at iosifache dot me).
Line 399: Line 404:
  
 Desired knowledge: C, Go, image processing and evaluation, computer vision, OCR Desired knowledge: C, Go, image processing and evaluation, computer vision, OCR
 +
 +Code License: Apache 2.0, MIT (licenses of the OpenPrinting projects)
 +
 +=====Port CUPS and Printer Applications to Zephyr=====
 +
 +Probably many of you have already thought about that one can take an SBC, install Linux and [[https://​openprinting.github.io/​cups|CUPS]] or a Printer Application on it, and connect this to an old printer which is still mechanically perfect but needs a driver which is not available any more for some operating systems. Suddenly the printer turns into a modern, driverless IPP printer which can be used with any operating system.
 +
 +But it is a little awkward having a little box dangling behind the printer which also occupies a power outlet. Also one can perhaps also make use of much cheaper SBC.
 +
 +Imagine you could buy a tiny board for a few dollars and put it somewhere inside the printer and grab its power from the printer'​s power supply.
 +
 +Such tiny boards are often not powerful enough to run Linux, but there is also the much more lightweight [[https://​www.zephyrproject.org/​|Zephyr]] operating system. This is a system for IoT applications on low-footprint hardware.
 +
 +And this scenario does not only serve for cheap DIY solutions to save old printers, it also can be a base for cost-effective printer firmware development.
 +
 +This project is about investigating whether one could run the components of the free software printing stack, as [[https://​openprinting.github.io/​cups|CUPS]],​ [[https://​github.com/​michaelrsweet/​pappl/​|PAPPL]],​ [[https://​github.com/​OpenPrinting/​libcupsfilters|libcupsfilters]],​ ... under the Zephyr operating system, and actually let this tiny print server execute printer drivers and print on legacy printers. Also the handling of print data and the need of resources here needs to be investigated. Can we hold several pages? Can we use [[https://​ghostscript.com/​|Ghostscript]]?​ Or do we have to stream raster print data from the client to the printer?
 +
 +Most desirable is to do this with PAPPL (Printer APPlication Library), as it is designed to emulate a driverless IPP printer in software, including the so-called "​Gadget"​ mode to appear as an IPP-over-USB device when connecting the power supply USB port of the SBC with the client computer'​s USB.
 +
 +Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), Iuliana Prodan (iuliana dot prodan at nxp dot com), Zephyr developers TBD
 +
 +Desired knowledge: C, Zephyr, USB, network
  
 Code License: Apache 2.0, MIT (licenses of the OpenPrinting projects) Code License: Apache 2.0, MIT (licenses of the OpenPrinting projects)
Line 424: Line 451:
 To prevent man-in-the-middle attacks between a client and a network IPP printer with encrypted connection, the first time when a new network printer is accessed, the printer'​s certificate is loaded from the printer and saved locally. On subsequent accesses the printer'​s certificate is compared to the locally saved one and on mismatch the error is logged and the printing does not happen. To prevent man-in-the-middle attacks between a client and a network IPP printer with encrypted connection, the first time when a new network printer is accessed, the printer'​s certificate is loaded from the printer and saved locally. On subsequent accesses the printer'​s certificate is compared to the locally saved one and on mismatch the error is logged and the printing does not happen.
  
-often this happens without ​ant attck, just on a change of the printer configuration or a printer firmware update. Then theuser ​screams on internet platforms, ​ehen they are lucky finds information about this problem and how to remove the old certificate to make the CUPS replace it by the current one and the printer print again.+often this happens without ​an attack, just on a change of the printer configuration or a printer firmware update. Then the user screams on internet platforms, ​when they are lucky finds information about this problem and how to remove the old certificate to make the CUPS replace it by the current one and the printer print again.
  
 To solve this nasty problem, we came to the conclusion to [[https://​github.com/​OpenPrinting/​cups/​issues/​1072#​issuecomment-2537216779|pop up a dialog which allows to remove the certificate file ("​Reset certificte"​) by clicking a button.]]. To solve this nasty problem, we came to the conclusion to [[https://​github.com/​OpenPrinting/​cups/​issues/​1072#​issuecomment-2537216779|pop up a dialog which allows to remove the certificate file ("​Reset certificte"​) by clicking a button.]].
Line 466: Line 493:
 =====cups-filters:​ Create OCR filter to deliver scans as searchable PDFs===== =====cups-filters:​ Create OCR filter to deliver scans as searchable PDFs=====
  
-1 contributor ​half-size (175 hrs), Level of difficulty: Intermediate+1 contributor ​medium-size (175 hrs), Level of difficulty: Intermediate
  
 Scanning with IPP Scan gives the user the possibility to request the scanned image in PDF format. If the IPP Scan server is a Scanner Application,​ a filter function from cups-filters would convert the the raster image coming from the scanner into PDF. Scanning with IPP Scan gives the user the possibility to request the scanned image in PDF format. If the IPP Scan server is a Scanner Application,​ a filter function from cups-filters would convert the the raster image coming from the scanner into PDF.
gsoc/google-summer-code-2025-openprinting-projects.1737910794.txt.gz · Last modified: 2025/01/26 16:59 by till