User Tools

Site Tools


gsoc:google-summer-code-2023-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-2023-openprinting-projects [2023/01/19 13:22]
till [CI Testing programs for libcupsfilters, libpappl-retrofit, libppd, CPDB, ...]
gsoc:google-summer-code-2023-openprinting-projects [2023/01/19 14:44] (current)
till [Scanning support in PAPPL]
Line 25: Line 25:
  
 ====Printer Drivers get Printer Applications==== ====Printer Drivers get Printer Applications====
 +
 +**OR%% ​ %%The New Architecture** ([[https://​openprinting.github.io/​current/#​the-new-architecture-for-printing-and-scanning|What it is]], [[https://​www.youtube.com/​watch?​v=P22DOu_ahBo|Video]])
  
 [[https://​github.com/​OpenPrinting/​cups/​|CUPS]],​ printing environment used by Linux and most other non-Windows operating systems, supports the different printer models with the help of printer drivers, consisting of PPD (PostScript Printer Description) files to describe the printer'​s capabilities,​ filters to convert the incoming print jobs into the printer'​s native language, and sometimes also backends, to support non-standard communication protocols between the computer and the printer hardware. [[https://​github.com/​OpenPrinting/​cups/​|CUPS]],​ printing environment used by Linux and most other non-Windows operating systems, supports the different printer models with the help of printer drivers, consisting of PPD (PostScript Printer Description) files to describe the printer'​s capabilities,​ filters to convert the incoming print jobs into the printer'​s native language, and sometimes also backends, to support non-standard communication protocols between the computer and the printer hardware.
Line 65: Line 67:
 So we are going to replace SANE in the role of an interface between scanning user applications and scanner drivers by the sandboxing-ready eSCL. SANE will continue to exist, but to provide the legacy scanner drivers enclosed in a Scanner Application. So we are going to replace SANE in the role of an interface between scanning user applications and scanner drivers by the sandboxing-ready eSCL. SANE will continue to exist, but to provide the legacy scanner drivers enclosed in a Scanner Application.
  
-Work on extending the Printer Application framework [[https://​github.com/​michaelrsweet/​pappl/​|PAPPL]] has already been [[https://​github.com/​Bhavna2020/​GSoC-2021|started in GSoC 2021]] and [[https://​gist.github.com/​Rishabh-792/​b1a2960b7e0e3d2bd3a5f4db3d260fc0|continued in GSoC2022]].+Work on extending the Printer Application framework [[https://​github.com/​michaelrsweet/​pappl/​|PAPPL]] has already been [[https://​github.com/​Bhavna2020/​GSoC-2021|started in GSoC 2021]] and [[https://​gist.github.com/​Rishabh-792/​b1a2960b7e0e3d2bd3a5f4db3d260fc0|continued in GSoC 2022]].
  
 ====What we are currently doing at OpenPrinting==== ====What we are currently doing at OpenPrinting====
Line 152: Line 154:
 1 contributor full-size (350 hours). 1 contributor full-size (350 hours).
  
-In the Google Summer of Code 2021, Bhavna Kosta has started the work on [[https://​github.com/​Bhavna2020/​GSoC-2021|Scanning support in PAPPL]] so that [[https://​github.com/​michaelrsweet/​pappl/​|PAPPL]] not only can be used for creating Printer Applications (emulation of a driverless IPP printer) but also for creating Scanner Applications (emulation of a driverless ​IPP/eSCL scanner), or even an emulation of a driverless IPP multi-function device.+In the Google Summer of Code 2021, Bhavna Kosta has started the work on [[https://​github.com/​Bhavna2020/​GSoC-2021|Scanning support in PAPPL]] ​(Talk on OpenPrinting micro-conference 2021: [[https://​linuxplumbersconf.org/​event/​11/​contributions/​1029/​attachments/​785/​1474/​Scanning%20in%20PAPPL.pdf|Slides]],​ [[https://​youtu.be/​5KogjLb1Hb4?​t=15600|Video]]) ​so that [[https://​github.com/​michaelrsweet/​pappl/​|PAPPL]] not only can be used for creating Printer Applications (emulation of a driverless IPP printer) but also for creating Scanner Applications (emulation of a driverless eSCL scanner), or even an emulation of a driverless IPP multi-function device.
  
 She has created the [[https://​github.com/​michaelrsweet/​pappl/​tree/​scanning|needed data structures and API functions]] needed to extend PAPPL for supporting scanners. She has created the [[https://​github.com/​michaelrsweet/​pappl/​tree/​scanning|needed data structures and API functions]] needed to extend PAPPL for supporting scanners.
Line 271: Line 273:
 1 contributor full-size (350 hours). 1 contributor full-size (350 hours).
  
-([[https://​lpc.events/​event/​16/​contributions/​1161/​attachments/​942/​1851/​lpc-printing-ci-2022.pdf|Slides]])+To protect a free software project worked on by several contributors against regressions caused by a committed change, one needs frequent, automated testing of the code, base, ideally triggered by every commit into the repositoryThis is called Continuous Integration (CI).
  
-Mentors: Till KamppeterProject Leader OpenPrinting (till at linux dot com), Michael Sweet, author of CUPS and PAPPL (msweet at msweet dot org)TBD+What is triggered on each commit is usually some static analysis of the code using commonspecialized tools and also build and execution testsusually doing `./​configure;​ make; make test` on different system platforms.
  
-Desired knowledge: CPAPPLCUPS+This naturally requires test scripts/​programs which are compiled and run by the `make test` step. For CUPS for example the daemon is started (on an unprivileged port so that it does not need root)queues created and listedjobs sent, the logs checked whether everything went OK, ... For Ghostscript a large collection of input files (gathered from bug reports) is processed and converted into raster formats.
  
-Code LicenseApache 2.0+The contributor'​s task here is to write test programs for the different OpenPrinting projects so that `make test` does something useful, being efficient to catch regressions. They should exercise important functionality of the software with different parameters and analyse logs and output files to check whether the program did the expected work. 
 + 
 +Test programs are also needed for the so-called '​autopkgtest'​ tests which are added to Debian packages and executed whenever the package is uploaded to Debian or Ubuntu. 
 + 
 +In addition, instruction files and shell scripts are needed to build the software on different platforms/​environments,​ run tests, create GitHub Actions (for the automatic triggering on each commit ...). 
 + 
 +This subject got discussed on the OpenPrinting micro-conference on Linux Plumbers 2022([[https://​openprinting.github.io/​OpenPrinting-News-September-2022/#​openprinting-micro-conference-on-the-linux-plumbers-2022|Summary]],​ [[https://​lpc.events/​event/​16/​contributions/​1161/​attachments/​942/​1851/​lpc-printing-ci-2022.pdf|Slides]],​ [[https://​www.youtube.com/​watch?​v=c--Uki7cvGE|Video]]) 
 + 
 +Here you can see what we already have in terms of CI, and what is missing ... 
 + 
 +Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), Michael Sweet, author of CUPS and PAPPL (msweet at msweet dot org), TBD
  
 +Desired knowledge: C, Shell, PAPPL, CUPS, CI
  
 +Code License: Apache 2.0, MIT
  
 =====GNOME Control Center: List and handle IPP print services for the New Architecture===== =====GNOME Control Center: List and handle IPP print services for the New Architecture=====
gsoc/google-summer-code-2023-openprinting-projects.1674134543.txt.gz · Last modified: 2023/01/19 13:22 by till