User Tools

Site Tools


gsoc:google-summer-code-2019-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-2019-openprinting-projects [2019/01/15 17:55]
till
gsoc:google-summer-code-2019-openprinting-projects [2019/01/24 22:30] (current)
till
Line 19: Line 19:
  
 ======Project Ideas====== ======Project Ideas======
 +
 =====Generic Framework to turn legacy drivers consisting of CUPS filters and PPDs into Printer Applications===== =====Generic Framework to turn legacy drivers consisting of CUPS filters and PPDs into Printer Applications=====
  
-=====Creating ​a Printer ​Application out of Foomatic=====+Classic printer drivers for CUPS-based printing environment consist of print filters which convert ​known page data format (like CUPS/PWG Raster, PostScript, PDF, ...) into the printer'​s native data format and PPD (PostScript ​Printer ​Description) files which describe the printer'​s capabilities,​ user-settable options, and the way how the print filters are used. 
 + 
 +The PPD files and print filters have to be put into standardized directories ​of the installed CUPS system so that CUPS finds them and allows the selection of this printer driver when setting up a printer (or selects the driver automatically when identifying a printer as supported). 
 + 
 +This method works well in standard desktop and server systems using RPM or Debian packages and when the source code of the driver'​s filters is available or the driver is packaged for the operating system distribution in use. If the CUPS environment is provided in a sandboxed package [[https://​github.com/​OpenPrinting/​printing-stack-snap|like this Snap]] adding files to the CUPS installation is not possible, and in addition, one wants to provide the drivers in distribution-independent binary packages, as for example Snaps. Also the CUPS project is deprecating the use of PPD files. 
 + 
 +The solution, suggested by Michael Sweet, the author of CUPS, are Printer Applications. Printer Applications are simple daemons which emulate a driverless IPP network printer on localhost, do the conversion of the print jobs into the printer'​s format, and send the job off to the printer. And as a physical driverless IPP printer they advertise themselves via DNS-SD and provide there capability information on (IPP) request from the client. 
 + 
 +The IP connection between CUPS and the Printer Application allows both being in different sandboxes (for example being installed from different Snap packages) and the printer setup is completely automatic. When the Printer Application'​s daemon is running and the printer is connected and turned on, the daemon discovers the printer and automatically advertises it on the local machine via DNS-SD. Then CUPS discovers the printer and automatically sets up a print queue with an auto-generated PPD file. 
 + 
 +The student'​s tasks here are 
 + 
 +  * Create a universal printer application framework which can be packaged with print filters and PPDs to make up a Printer Application 
 +  * Use this framework to create Printer Applications for drivers like HPLIP, foo2zjs, Gutenprint, SpliX, ... 
 +  * Use this framework to make a Printer Application for Foomatic 
 +  * Making Snaps of Printer Applications. 
 + 
 +Existing free software which could be used to accomplish this task are [[http://​www.cups.org/​|CUPS/​libcups]],​ [[https://​github.com/​istopwg/​ippsample|PWG'​s ippsample]],​ [[https://​github.com/​OpenPrinting/​cups-filters|cups-filters]],​ [[http://​www.ghostscript.com/​|Ghostscript]],​ [[https://​mupdf.com/​|MuPDF]],​ ... 
 + 
 +The tasks can be distributed to more than one student if needed. 
 + 
 +Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), TBD 
 + 
 +Desired knowledge: C programming,​ DNS-SD, IPP
  
-=====Creating Printer Applications from HPLIPfoo2zjs, Gutenprint, ...=====+Code License: Apache 2.0MIT
  
 =====IPP scan (or virtual MF device) server (Scanner Application)===== =====IPP scan (or virtual MF device) server (Scanner Application)=====
Line 57: Line 81:
 Code license: GPL 2+ Code license: GPL 2+
  
-=====IPP: ipptool test suite for IPP System Service.=====+=====IPP: ipptool test suite for IPP System Service=====
 ipptool is a command line tool for issuing IPP requests and receiving printer'​s/​server'​s responses. ​ ipptool is maintained as free software in the ippsample collection from the IEEE-ISTO Printer Working Group (PWG). ipptool is used for development and debugging of IPP-related software and for PWG self-certification for IPP Everywhere printers for driverless printing.  ​ ipptool is a command line tool for issuing IPP requests and receiving printer'​s/​server'​s responses. ​ ipptool is maintained as free software in the ippsample collection from the IEEE-ISTO Printer Working Group (PWG). ipptool is used for development and debugging of IPP-related software and for PWG self-certification for IPP Everywhere printers for driverless printing.  ​
-Develop ​additional ipptool test scripts for all new operations, objects, attributes defined in IPP System Service v1.0 (e.g., Create-Printer).+ 
 +The student'​s task is to develop ​additional ipptool test scripts for all new operations, objects, attributes defined in IPP System Service v1.0 (e.g., Create-Printer). 
 + 
 +Mentors: Ira McDonald (blueroofmusic at gmail dot com), Printing Working Group, Smith Kennedy (smith dot kennedy at hp dot com), HP, TBD 
 + 
 +Desired knowledge: C programming,​ IPP 
 + 
 +Code License: Apache 2.0
  
 =====IPP: ipptool test suite updates for IPP errata updates===== =====IPP: ipptool test suite updates for IPP errata updates=====
 ipptool is a command line tool for issuing IPP requests and receiving printer'​s/​server'​s responses. ​ ipptool is maintained as free software in the ippsample collection from the IEEE-ISTO Printer Working Group (PWG). ipptool is used for development and debugging of IPP-related software and for PWG self-certification for IPP Everywhere printers for driverless printing. ipptool is a command line tool for issuing IPP requests and receiving printer'​s/​server'​s responses. ​ ipptool is maintained as free software in the ippsample collection from the IEEE-ISTO Printer Working Group (PWG). ipptool is used for development and debugging of IPP-related software and for PWG self-certification for IPP Everywhere printers for driverless printing.
-Develop ​additional ipptool test scripts for IPP errata including IPP Document Object v1.1, + 
-IPP Job Extensions v1.1, and IPP 3D Printing Extensions v1.1.+The student'​s task is to develop ​additional ipptool test scripts for IPP errata including IPP Document Object v1.1, IPP Job Extensions v1.1, and IPP 3D Printing Extensions v1.1. 
 + 
 +Mentors: Ira McDonald (blueroofmusic at gmail dot com), Printing Working Group, Smith Kennedy (smith dot kennedy at hp dot com), HP, TBD 
 + 
 +Desired knowledge: C programming,​ IPP 
 + 
 +Code License: Apache 2.0
  
 =====Linux GUI application (can be part of GNOME printer tool) to admin MF devices using IPP System Service.===== =====Linux GUI application (can be part of GNOME printer tool) to admin MF devices using IPP System Service.=====
Line 90: Line 127:
 The task for the student is here to improve pdftoraster'​s interface with Poppler, for example using Poppler'​s PPM (generic raster) output and converting it into CUPS/PWG Raster. Discussion about possible approaches you can find [[https://​github.com/​OpenPrinting/​cups-filters/​issues/​9|on the cups-filters GitHub]]. The task for the student is here to improve pdftoraster'​s interface with Poppler, for example using Poppler'​s PPM (generic raster) output and converting it into CUPS/PWG Raster. Discussion about possible approaches you can find [[https://​github.com/​OpenPrinting/​cups-filters/​issues/​9|on the cups-filters GitHub]].
  
-Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), Tobias Hoffmann, cups-filters developer (smilingthax at googlemail dot com).+Mentors: ​Sahil Arora (sahilarora dot 535 at gmail dot com), Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), Tobias Hoffmann, cups-filters developer (smilingthax at googlemail dot com).
  
 Desired knowledge: C and/or %%C++%% programming Desired knowledge: C and/or %%C++%% programming
gsoc/google-summer-code-2019-openprinting-projects.1547574915.txt.gz · Last modified: 2019/01/15 17:55 by till