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:33]
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+
  
-=====Support ​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. ​  
 + 
 +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===== 
 +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. 
 + 
 +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.=====
  
 Most network printers have a web interface which allows to configure the printer from any computer in the network using a web browser. Advantage is that no printer-model-specific software needs to be installed on the computer in order to configure a printer, and one has no dependency on certain supported operating systems. One can even configure printers using a smartphone. Most network printers have a web interface which allows to configure the printer from any computer in the network using a web browser. Advantage is that no printer-model-specific software needs to be installed on the computer in order to configure a printer, and one has no dependency on certain supported operating systems. One can even configure printers using a smartphone.
Line 72: Line 118:
  
 Code License: GPL 2+ or LGPL 2+ Code License: GPL 2+ or LGPL 2+
- 
-=====Linux GUI application (can be part of GNOME printer tool) to admin MF devices using IPP System Service.===== 
  
 =====Improve the pdftoraster filter to not need copying Poppler source code or using unstable APIs===== =====Improve the pdftoraster filter to not need copying Poppler source code or using unstable APIs=====
Line 83: 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
Line 121: Line 165:
 Mentors: MuPDF developers TBD, Till Kamppeter, Project Leader OpenPrinting (till at linux dot com) Mentors: MuPDF developers TBD, Till Kamppeter, Project Leader OpenPrinting (till at linux dot com)
  
-Desired knowledge: C and/or C++ programming+Desired knowledge: C and/​or ​%%C++%% programming
  
 Code License: GPL Code License: GPL
Line 132: Line 176:
 Mentors: Dongxu Li (dongxuli2011 at gmail dot com), Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), TBD Mentors: Dongxu Li (dongxuli2011 at gmail dot com), Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), TBD
  
-Desired knowledge: C plus plus programming,​ Qt, CUPS+Desired knowledge: ​%%C++%% programming,​ Qt, CUPS
  
 Licenses: Qt Contribution Agreement Licenses: Qt Contribution Agreement
Line 148: Line 192:
 Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), system-config-printer upstream developers TBD Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), system-config-printer upstream developers TBD
  
-Desired knowledge: C/C++ programming,​ Python programming+Desired knowledge: C/%%C++%% programming,​ Python programming
  
 Code license: GPL 2+ or MIT Code license: GPL 2+ or MIT
Line 172: Line 216:
 Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), Ubuntu/​GNOME GUI developers TBD Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), Ubuntu/​GNOME GUI developers TBD
  
-Desired knowledge: C/C++ programming,​ GUI programming,​ GTK+Desired knowledge: C/%%C++%% programming,​ GUI programming,​ GTK
  
 =====Printing of files directly from the file manager===== =====Printing of files directly from the file manager=====
gsoc/google-summer-code-2019-openprinting-projects.1547573606.txt.gz · Last modified: 2019/01/15 17:33 by till