Sounds like a very cool project and way overdue. I wouuld love to be able to follow this project
Mark On Tue, Mar 12, 2019 at 10:03 AM Till Kamppeter <[email protected]> wrote: > Hi, > > I posted this already last year (see my mail from then below) but there > we finally decided to give preference to other student projects. > > It is about driverless scanning using the IPP (Internet Printing Protocol). > > "Driverless" means that on the client side no software specific to the > scanner model in use is required. The client can ask the scanner for all > its capabilities and use standard commands to do the scanning work. > > For printing this is already standard for several years, originally > developed to allow printing from smartphones. We have support for this > already completely implemented in Linux, so every printer on which you > can print with you phone should also print jobs from Linux clients. > > Now we want to implement this also for scanning, with the help of the > Google Summer of Code. > > We did not do it last year as there was no manufacturer yet who had > adopted driverless IPP scanning. This year we also do not have any > further notice from hardware manufacturers, but we have a new idea of > nmaking use of driverless IPP scanning. > > In SANE scanner drivers are libraries which need to be present in a > given directory of the system so that applications find them and so the > applications can scan on all scanners which are supported by the > available SANE backend libraries. > > This works well on systems with standard Debian or RPM packaging but not > on systems with sandboxed packaging, like Snap for example. Here one > cannot simply let one package (the scanner driver) drop a library in a > directory where other packages (applications) search for it. For printer > drivers we introduce the so-called Printer Applications, a simple > daemon, emulating a driverless IPP printer on localhost and passing jobs > on to the physical printer (which can be on USB or on the network and > Printer Application converts incoming PDF to the printer's native > language). The network-style communication on localhost is no problem > for communication between two sandboxed applications. > > For scanners we want to do the same. We put a collection of SANE > backends with SANE frontend library into a so-called Scanner Application > and let it emulate a driverless IPP scanner on localhost. Such a Scanner > Application can contain the standard SANE modules or it can be a Scanner > Application provided by a scanner manufacturer to hold their > (proprietary) driver. Applications scan then via IPP and for legacy > applications which use SANE we need an IPP backend for SANE. > > This makes up two GSoC projects, one to write the Scanner Application > framework for a sandboxed SANE driver collection and a second for a SANE > backend for IPP driverless scanning. > > The project ideas are in our project idea list: > > Scanner Application framework: > > https://wiki.linuxfoundation.org/gsoc/google-summer-code-2019-openprinting-projects#ipp_scan_or_virtual_mf_device_server_scanner_application > > IPP scanning SANE backend: > > https://wiki.linuxfoundation.org/gsoc/google-summer-code-2019-openprinting-projects#sane_module_for_ipp_driverless_scanning > > Now I want to ask all of you whether you would like to help us by > mentoring the students who will take these projects. > > Note the following about mentorship: > > 1. Google only permits a student [project when it has a dedicated > mentor. One cannot even tell them that one mentor will mentor two > students. But what we can do if mentoring a student alone is too much > for you, is that you are listed as an official mentor and in reality you > do only a part of the actual mentoring and one of us the rest. > > 2. Google tells that for mentoring you will need around5 hours/week if > you do the mentoring of one student alone at least. > > 3. We pre-select our students with several assignments, so you will > usually get a good student. > > I am very grateful if someone could step up. > > Till > > > ---------- > > Hi, > > the Printing Working Group (http://www.pwg.org/) has developed several > standards for printers and multi-function devices (print, scan, copy, > fax) to allow its use without hardware-model-specific software or data > (aka driver). > > There are already all standards needed for driverless printing and they > are actually implemented in printers on the market. The PWG's own > driverless printing standard is IPP Everywhere, but AirPrint, Wi-Fi > Direct, and Mopria us also a lot of the PWG's standards. All of these > standards use the PWG's Internet Printing Protocol (IPP) and DNS-SD but > different standardized formats for the print jobs. Wi-Fi Direct adds a > printer-internal Wi-Fi server for wireless printing without Wi-Fi > router. Via IPP-over-USB also devices connected to USB are supported > (Linux support via ippusbxd, https://github.com/OpenPrinting/ippusbxd). > > These driverless printing standards are fully supported in Linux, from > Ubuntu 17.10 on and continuously improved. > > The PWG has recently also developed an IPP scanning standard, which > provides a standard protocol for communicating with scanners in IPP > multi-function devices (via network or IPP-over-USB): > > http://ftp.pwg.org/pub/pwg/candidates/cs-ippscan10-20140918-5100.17.pdf > > The best way to access this class of scanners from Linux would be to > create a SANE backend for IPP Scan. > > Therefore I have opened a project for the Google Summer of Code 2018: > > > https://wiki.linuxfoundation.org/gsoc/google-summer-code-2018-openprinting-projects#sane-module-for-ipp-driverless-scanning > > ---------- > > SANE module for IPP driverless scanning > --------------------------------------- > > Version 2.0 and newer of the Internet Printing Protocol (IPP) support > polling the full set of capabilities of a printer and if the printer > supports a known Page Description Language (PDL), like PWG Raster, Apple > Raster, PCLm, or PDF, it is possible to print without > printer-model-specific software (driver) or data (PPD file), so-called > “driverless” printing. This concept was introduced for printing from > smartphones and IoT devices which do not hold a large collection of > printer drivers. Driverless printing is already fully supported under > Linux. Standards following this scheme are IPP Everwhere, Apple > AirPrint, Mopria, and Wi-Fi Direct Print. > > As there are many multi-function devices (printer/scanner/copier > all-in-one) which use the IPP, the Printing Working Group (PWG) has also > worked out a standard for IPP-based scanning, “driverless” scanning, to > also allow scanning from a wide range of client devices, independent of > which operating systems they are running. > > Conventional scanners are supported under Linux via the SANE (Scanner > Access Now Easy) system and require drivers specific to the different > scanner models. Most of them are written based on reverse-engineering > due to lack of support by the scanner manufacturers. To get driverless > scanning working with the software the users are used to the best > solution is to write a SANE module for driverless IPP scanning. This > module will then automatically support all IPP scanners, thousands of > scanners where many of them do not yet exist. > > The student's task is to write this SANE module for IPP driverless > scanning and so make Linux ready for the future of driverless devices. > > Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot > com), SANE upstream developers TBD > > Desired knowledge: C programming, DNS-SD, IPP > > Code license: GPL 2+ > > ---------- > > I want to ask whether someone of you would (together with me) mentor a > student to do this project. > > The SANE project does not need to be mentoring organization at the GSoC > for that. Mentoring organization will be the Linux Foundation. > > Thank you very much in advance > > Till > > > -- > sane-devel mailing list: [email protected] > https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/sane-devel > Unsubscribe: Send mail with subject "unsubscribe your_password" > to [email protected]
-- sane-devel mailing list: [email protected] https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/sane-devel Unsubscribe: Send mail with subject "unsubscribe your_password" to [email protected]
