Annotation of wikisrc/projects/project/lpr.mdwn, revision 1.5

1.1       jmmv        1: [[!template id=project
                      2: 
                      3: title="New LPR/LPD for NetBSD"
                      4: 
                      5: contact="""
                      6: [tech-userlevel](mailto:tech-userlevel@NetBSD.org)
                      7: """
                      8: 
                      9: mentors="""
                     10: [David A. Holland](mailto:dholland@NetBSD.org)
                     11: """
                     12: 
1.2       jmmv       13: category="userland"
                     14: difficulty="medium"
1.1       jmmv       15: duration="3 months"
                     16: 
                     17: description="""
                     18: The current lpr/lpd system in NetBSD is ancient, and doesn't support modern printer systems very well. Interested parties would do a from scratch rewrite of a new, modular lpr/lpd system that would support both the old lpd protocol and newer, more modern protocols like IPP, and would be able to handle modern printers easily.
                     19: 
                     20: This project is not intrinsically difficult, but will involve a rather large chunk of work to complete.
1.4       dholland   21: 
                     22: Note that the goal of this exercise is not to reimplement cups -- cups
                     23: already exists and one like it was enough.
                     24: 
1.5     ! dholland   25: Some notes:
        !            26: 
        !            27: It seems that a useful way to do this would be to divide the printing
        !            28: system in two: a client-side system, which is user-facing and allows
        !            29: submitting print jobs to arbitrary print servers, and a server-side
        !            30: system, which implements queues and knows how to talk to actual
        !            31: printer devices.
        !            32: In the common case where you don't have a local printer but use
        !            33: printers that are out on the network somewhere, the server-side system
        !            34: wouldn't be needed at all.
        !            35: When you do have a local printer, the client-side system would submit
        !            36: jobs to the local server-side system using the lpr protocol (or IPP or
        !            37: something else) over a local socket but otherwise treat it no
        !            38: differently from any other print server.
        !            39: 
        !            40: The other important thing moving forward: lpr needs to learn about
        !            41: MIME types and accept an argument to tell it the MIME types of its
        !            42: input files.
        !            43: The current family of legacy options lpr accepts for file types are so
        !            44: old as to be almost completely useless; meanwhile the standard scheme
        !            45: of guessing file types inside the print system is just a bad design
        !            46: overall.
        !            47: (MIME types aren't great but they're what we have.)
        !            48: 
        !            49: 
1.1       jmmv       50: """
                     51: ]]

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb