This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
gsoc:google-summer-code-2021-openprinting-projects [2021/02/10 09:01] ZdenekDohnal Copy scp-dbus-service idea to GSOC 2021 |
gsoc:google-summer-code-2021-openprinting-projects [2021/04/19 09:08] (current) till [GUI for listing and managing available IPP Print/Scan services (or DNS-SD-advertised network services in general)] |
||
---|---|---|---|
Line 63: | Line 63: | ||
This principally happens in the following projects: | This principally happens in the following projects: | ||
- | * [[https://github.com/michaelrsweet/pappl/|PAPPL]] - Printer Application Framework - library for Printer/Scanner Applications | + | * [[https://openprinting.github.io/cups/|CUPS]] - The standard printing environment for Linux and other POSIX-style operating systems |
* [[https://github.com/OpenPrinting/cups-filters/|cups-filters]] - filters, backends, cups-browsed, ... - Everything which CUPS needs to be used on non-Mac systems | * [[https://github.com/OpenPrinting/cups-filters/|cups-filters]] - filters, backends, cups-browsed, ... - Everything which CUPS needs to be used on non-Mac systems | ||
- | * [[https://github.com/OpenPrinting/ps-printer-app/|PostScript Printer Application]] - Printer Application for PostScript Printers | + | * [[https://github.com/OpenPrinting/cups-snap/|CUPS Snap]] - Snap package of CUPS, for printing in all-Snap OS distributions ([[https://snapcraft.io/cups|in the Snap Store]]) |
+ | * [[https://github.com/michaelrsweet/pappl/|PAPPL]] - Printer Application Framework - library for Printer/Scanner Applications | ||
+ | * [[https://github.com/OpenPrinting/ps-printer-app/|PostScript Printer Application]] - Printer Application for PostScript Printers ([[https://snapcraft.io/ps-printer-app|in the Snap Store]]) | ||
* [[https://github.com/michaelrsweet/hp-printer-app/|HP Printer Application]] - Printer Application for HP PCL printers | * [[https://github.com/michaelrsweet/hp-printer-app/|HP Printer Application]] - Printer Application for HP PCL printers | ||
- | * [[https://github.com/OpenPrinting/cups-snap/|CUPS Snap]] - Snap package of CUPS, for printing in all-Snap OS distributions | ||
* [[https://github.com/alexpevzner/sane-airscan/|sane-airscan]] - The "airscan" SANE backend, supports driverless eSCL and WSD scanning, IPP Scan support is planned | * [[https://github.com/alexpevzner/sane-airscan/|sane-airscan]] - The "airscan" SANE backend, supports driverless eSCL and WSD scanning, IPP Scan support is planned | ||
+ | |||
+ | See also | ||
+ | |||
+ | * [[https://openprinting.github.io/news/|OpenPrinting News and Events]] - Monthly news post, software releases, ... | ||
+ | * [[https://lists.linuxfoundation.org/pipermail/printing-architecture/2021/thread.html|OpenPrinting mailing list archive]] - Our recent discussions about the development of the printing architecture | ||
======Project Ideas====== | ======Project Ideas====== | ||
+ | |||
+ | =====GUI for listing and managing available IPP Print/Scan services (or DNS-SD-advertised network services in general)===== | ||
+ | |||
+ | As described above, all available printers and scanners will simply be IPP services (physical network printers or Printer Applications) and drivers will be Printer Applications. They are managed by their web administration interfaces and/or IPP System Service. Local CUPS queues are simply automatically popping up for each IPP print service available. | ||
+ | |||
+ | Due to this we do not need any more the classic printer management tools where the local CUPS queues are listed and you modify their properties. Instead, your printer/scanner management tool should list all IPP services, native hardware devices, Printer Applications, shared CUPS queues on remote servers. For each service (1 service = 1 host:port) a main entry with sub-entries for each printer, scanner, or fax out facility. These entries should have action buttons, for main entries to open the web interface in a browser, pop up an IPP System Service status/control window, ... and for sub-entries buttons to go to the web interface page of this printer, pause/resume/set-as-default quick-access buttons, ... | ||
+ | |||
+ | This way the user knows which IPP services are available and can easily click to their management interfaces (many users do not know about web interfaces for network services or how to find them). Especially if he installs a Printer Application from the Snap Store he needs to know how to set up his printer with it. | ||
+ | |||
+ | All the information needed to create the list is provided by DNS-SD (Avahi). DNS-SD advertises all printers, scanners, web interfaces, IPP System Service interfaces, ... see the output of "avahi-discover" and "avahi-browse". | ||
+ | |||
+ | And with this one is already close to having a general network service management tool, also listing the DNS-SD services which are not related to printing with buttons to their web interfaces (imagine the user can open the web interface of his router with a simple mouse click). This would be the "user-friendly" avahi-discover then, showing the services in a user-friendly order an presentation. | ||
+ | |||
+ | The student's task is to implement such a tool in GTK, ideally as a module for the GNOME Control Center. | ||
+ | |||
+ | Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), GNOME/GTK developers, TBD | ||
+ | |||
+ | Desired knowledge: %%C/C++%%, GTK, DNS-SD/Avahi, CUPS/IPP | ||
+ | |||
+ | Code License: GPL-2+ and LGPL-2+ | ||
+ | |||
+ | |||
+ | =====GUI to guide the user to the correct Printer Application===== | ||
+ | |||
+ | Modern printers usually are driverless IPP printers, and those get discovered and set up fully automatically with CUPS, no Printer Application is required for them, so it is easy for users to get up and running with them. | ||
+ | |||
+ | Printers which do not do driverless IPP are either legacy printers, themany older printers which got developed before driverless IPP printing existed, and specialty printers. These need Printer Applications. As there will be several different Printer Applications and each one supporting another set of printers it is not trivial for the user to discover available non-IPP-driverless printers and find out which is the Printer Application to use and whether it is already installed. | ||
+ | |||
+ | So we need some guide for the user. The idea is a GUI tool which lists available, non-IPP-driverless printers, local (USB) and network devices. If the user selects one of them, all installed Printer Applications which support this printer are shown, and for each a button to open the Printer Application's web interface and also a quick auto-add-this-printer button. In addition to the list of suitable Printer Applications there should also be a button which does a fuzzy search for the printer make and model on the Snap Store to find Printer Applications which are not installed on the local system. | ||
+ | |||
+ | The student's task is to implement such a tool in GTK, ideally as a module for the GNOME Control Center. | ||
+ | |||
+ | Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), GNOME/GTK developers, TBD | ||
+ | |||
+ | Desired knowledge: %%C/C++%%, GTK, DNS-SD/Avahi, CUPS/IPP | ||
+ | |||
+ | Code License: GPL-2+ and LGPL-2+ | ||
Line 123: | Line 166: | ||
=====Firmware and other file handling in PAPPL===== | =====Firmware and other file handling in PAPPL===== | ||
- | For some printers there are firmware files, either as an upgrade or if the printer is a cheaper model which does not have non-volatile memory to hold the printer's firmware, requiring the firmware be loaded from the computer each time the oprinter is turned on. Other printers could be enhanced with fonts or custom color profiles. | + | For some printers there are firmware files, either as an upgrade or if the printer is a cheaper model which does not have non-volatile memory to hold the printer's firmware, requiring the firmware be loaded from the computer each time the printer is turned on. Other printers could be enhanced with fonts or custom color profiles. |
This can easily be handled by the Printer Application, offering an appropriate page in its administration web interface where the user can upload files into Printer Application's file space and the Printer Application would apply them somehow, as loading them into the printer as update or enhancement, loading them into the printer everytime when the printer is turned on, use them in the job filtering process, ... | This can easily be handled by the Printer Application, offering an appropriate page in its administration web interface where the user can upload files into Printer Application's file space and the Printer Application would apply them somehow, as loading them into the printer as update or enhancement, loading them into the printer everytime when the printer is turned on, use them in the job filtering process, ... |