Hi, all

I am sponsoring this case, setting the timeout to be 06/25/2008

Manpages for the binaries are available at
Internally
http://sac.eng/Archives/CaseLog/arc/LSARC/2008/389/manpages/

Externally
http://sac.eng/Archives/CaseLog/arc/LSARC/2008/389

--Irene
Shi-Ying Irene Huang wrote:
> Template Version: @(#)sac_nextcase 1.66 04/17/08 SMI
> This information is Copyright 2008 Sun Microsystems
> 1. Introduction
>     1.1. Project/Component Working Name:
>        presto phase II
>     1.2. Name of Document Author/Supplier:
>        Author:  Halton Huo
>     1.3  Date of This Document:
>       18 June, 2008
> 4. Technical Description
> 1. Introduction
>    1.1. Project/Component Working Name: 
>       
>       Presto Phase II: OpenSolaris Print Manager
>
>    1.2. Name of Document Author/Supplier:
>               
>       Ghee Teo        <ghee.teo at sun.com>
>       Halton Huo      <halton.huo at sun.com>
>       Evan Yan        <evan.yan at sun.com>
>       Norm Jacobs     <norm.jacobs at sun.com>
>
>    1.3. Date of This Document:
>
>       06/12/08
>       
>       1.3.1. Date this project was conceived:
>
>               Phase 1 of this project (LSARC/2007/287) was integrated into 
>               Nevada build 69 in June 2007. Phase 2 started then in July 2007.
>               
>
>    1.4. Name of Major Document Customer(s)/Consumer(s):
>       1.4.1. The PAC or CPT you expect to review your project:
>
>               Solaris PAC
>               
>       1.4.2. The ARC(s) you expect to review your project:
>               
>               LSARC
>
>       1.4.3. The Director/VP who is "Sponsoring" this project:
>
>               Robert.Odea at Sun.Com
>
>       1.4.4. The name of your business unit:
>
>               Software - New Solaris - Open Source
>
>    1.5. Email Aliases:
>       1.5.1. Responsible Manager:     leo.binchy at sun.com
>       1.5.2. Responsible Engineer:    ghee.teo at sun.com
>       1.5.3. Marketing Manager:       Jeff.McMeekin at sun.com
>       1.5.4. Interest List:           presto-discuss at opensolaris.org
>                                       printing-discuss at opensolaris,org
>
> 2. Project Summary
>    2.1. Project Description:
>
>       This project is the desktop side of phase 2 of the OpenSolaris Project, 
>       Presto: Automatic Printing Configuration. The overall goal of Presto is 
>       to automatically discover and configure access to directly attached, 
>       network attached, and remotely served printers [2]. Phase 1 of
>       desktop side of Presto (LSARC/2007/287) covered the the work required to
>       automatically detect and configure access for locally attached USB 
>       printers. Print queues are be detected or created by user when plugged 
>       in. A notification dialog is popped up when a printer is unplugged or 
>       when error is encountered.
>
>       This project  is to support the auto-discovery of network attached 
>       printers from the desktop end. The OS level to auto-discover network 
>       printers was implemented by PSARC/2007/499 which has been integrated 
>       into Nevada build 77. The interface between the discovery services, be 
>       it for USB or network device through SNMP, remains the same. Hence the 
>       same desktop daemon, ospm-applet, can be notified of printer events be 
>       it from USB port or on the network.
>
>       Once a network printer is discovered, the ospm-applet noted that and
>       proceeds to create the print queue automatically. The print queue 
>       created can then be modified using the OpenSolaris Print Manager. This 
>       is necessary as the automated fuzzy lookup of the printer driver's name
>       is not always accurate.
>
>       The Print Manager not only allows the user to modify the print queue's
>       settings, it also allow the user to manage his print queues, jobs and 
>       organizing print queues into logical groups.
>
>       The reasons for such an elaboration of functionalities is to allow us 
>       to partially or completely replace a couple of printing tools which are
>       currently made available on the JDS Desktop menu. The two tools are:
>       (1) gnome-printinfo(1), a queue and job monitoring tool which wrapped
>           around lpstat(1). Highly inefficient and unmaintained.
>       (2) printmgr(1M), a JAVA based GUI for creating print queues. The 
>           recommended tool to create print queues for network printer, 
>           attached printer and also creating access to remote print server.
>           It even supports NIS/LDAP database of printer setup.
>
>       The Print Manager provides a complete replacement for
>       gnome-printinfo(1) and supports only file level printer database, 
>       printers.conf(4). Hence, it only provides partial functionalities of 
>       printmgr(1M). The primary lack in support in between that of
>       printmgr(1M) and OpenSolaris Print Manager is that the former does not
>       support printer management under NIS/LDAP. However, the project team
>       perceive that printers.conf(4) level of support is sufficient in an 
>       unmanaged network environment. So the plan of record is to remove the
>       above two tools from the desktop menu and replace them with the
>       OpenSolaris Print Manager. 
>       
>       printmgr(1M) will continue to be available through command line. 
>       gnome-printinfo(1) will be obsoleted and removed in a future ARC case.
>           
>
>    2.2. Risks and Assumptions:
>
>       No risk is perceived.   
>
>
> 4. Technical Description:
>     4.1. Details:
>
>       The work done in this project can be divided into:
>       - Extending the ospm-applet from phase 1 to handle network printers
>       - Extending the ospm-preferences to allow new preferences introduced
>         in phase 2 to be configured, notably that for network printers.
>       - Print Manager which is integrated with the auto-detected and auto-
>         discovered printers.
>
>       Extensions to ospm-applet
>       Ospm-applet is the daemon that is launched when user logs into the GNOME
>       desktop. It sits and waits for HAL printer events. It responds
>       accordingly when either a local USB or network printer is added or 
>       removed through the DBUS message sent from hald.
>
>       hald is the privileged process that handles detection/discovery of 
>       printers, it stores the printer's data in the HAL device tree from 
>       which ospm-applet read from regardless of local USB and network printer.
>       However, ospm-applet does handle creation of local printer and network
>       printer queues slightly differently. For network printer, queues will be
>       added automatically. Whereas for local printer, the user can configure
>       whether to be prompted or not. In both cases, ospm-applet will send a 
>       DBUS message when a printer is added, "PrinterAdded", this is handled 
>       by the Print Manager. 
>
>       Extensions to ospm-preferences
>       The capplet or preferences dialog is now extended into 3 tabs.
>       Tab 1: Print Manager
>       It allows the configuration of 3 things.
>
>       Notification: It handles how the printer icon is managed in the 
>       notification area.
>
>       Unavailable Printers: how the print manager should depict off line 
>       printers.
>
>       Refresh rate for Queue View and Job View: it allows users to specify 
>       how frequently the queue view and job view are to be refreshed.
>
>       Tab 2: Local Printers
>       contains the options which were in Phase 1.
>       
>       Tab 3: Network Printers
>       It allows configuration of how network printers be being handled in the
>       print manager.
>
>       Print Manager
>       The Print Manager integrates with the rest of Presto and its role
>       within the Presto Architecture can be seen in section 3 of [1].
>       The relationship of the Print Manager and the user Add Queue daemon
>       (ospm-applet) can be described as such:
>
>       Local USB Printer:
>       - the OpenSolaris kernel notices the Device HotPlug event
>       - the kernel sends out a sysevent that devfsadmd(1M) is listening for
>       - devfsadmd(1M) notices the Printer Add or Remove sysevent, it notifies
>         hald (HAL daemon) 
>       - hald uses an external probe program to interrogate the printer and 
>         populate the HAL device tree with all the relevant data it can get
>         hald sends out a Device Added or Removed DBUS signal 
>       - ospm-applet, which is a user's session daemon, is waiting and 
>         responding to these signals. Based on the unique udi (Unique Device 
>         Identifier) it received from hald, it looks up the rest of the data 
>         from the Hal device tree.
>       - Ospm-applet then displays fully populated Add Queue Dialog for the 
>         user to add the queue, the displaying of this dialog is configurable.
>         If it is turned off, the queue will be automatically added.
>       - Once the queue is added, a notification bubble is shown on the 
>         notification area of the panel
>       Once the above steps are completed, the printer is ready to be used.
>
>       Network Printer (via SNMP):
>       - Enable network printer discovery service, 
>         svc:/network/device-discovery/printers:snmp
>       - The hald network printer add-on broadcast a SNMP GET
>       - Network printer which is SNMP capable would then respond to it
>       - The SNMP agent then populates the HAL Device Tree with the network 
>         printer data.
>       - hald detected changes in the HAL device tree and deduces that these 
>         are printers, it sends out the "printerAdded" DBUS signal to 
>         ospm-applet.
>       - ospm-applet adds print queues for these printers in the background 
>         until these are all done.
>       - ospm-applet pop-ups a generic message as a notification bubble 
>         notifying the user that network print queues have been added. 
>       - ospm-applet also sends out a DBUS message, "printerAdded" to the 
>         print manager, ospm-pm.
>       - If the Print Manager is running at the time, it will refresh its view
>         immediately and hence shows the newly added queues. Otherwise, these
>         messages are ignored.
>
>
>     
>     4.4. Out of Scope:
>     
>       Obsoletion and removal of gnome-printinfo(1) which should be handled
>       by a separate ARC case.
>
>       While phase 2 of the project has pretty much implemented the key
>       elements of Presto for both local and network printers and integrated
>       with the OpenSolaris Print Manager. The limitation is that this only
>       for OpenSolairs LP Print System, it doesn't handle CUPS. Since CUPS
>       queues and LP queues are not compatible to be used by the Print Manager.
>       There is no sharing of these queues data. While it is quite feasible to
>       create a CUPS implementation of for the Print Manager, this may not be
>       the route that the project team sees the road map.There are much work
>       and momentum on CUPS in the Open Source communities, it would be more
>       effective if we can make use and contribute to that for OpenSolairs CUPS
>       print system.
>
>       Other important aspect such as handling of Windows printers, integration
>       of printer groups into the GTK+ print dialog are all feasible and 
>       important to improve the user's experience on OpenSolaris.
>       
>
>     4.5. Interfaces:
>
>       Interfaces inherited from phase 1 of the project (LSARC/2007/287)
>
>     
> ___________________________________________________________________________
>     |                           Interfaces Exported                           
> |
>     
> ___________________________________________________________________________
>     | Interface Name        | Classification  | Comment                       
> |
>     
> ___________________________________________________________________________
>     | /usr/lib/ospm         | Project Private | Project private directory     
> |
>     
> ---------------------------------------------------------------------------
>     | /usr/lib/ospm\        | Volatile        | applet handling HAL events    
> |
>     |         /ospm-applet  |                 | through DBUS                  
> |
>     
> ---------------------------------------------------------------------------
>     | /usr/lib/ospm\        | Project Private | RBAC program to create,       
> |
>     |      /lp-queue-helper |                 | enable, disable print queue.  
> |
>     |                       |                 | Invokes a subset of lpadmin   
> |
>     
> ---------------------------------------------------------------------------
>     | /usr/lib/ospm\        | Project Private | script to extract serial      
> |
>     |    lp-queue-exists-by-serial.sh         | number associated with the    
> |
>     |                       |                 | plugged in printer.           
> |
>     
> ---------------------------------------------------------------------------
>     | /usr/bin\             | Volatile        | GUI dialog to change          
> |
>     |    /ospm-preferences  |                 | preferences, internally       
> |
>     |                       |                 | represented by a number of    
> |
>     |                       |                 | gconf keys.                   
> |
>     
> ---------------------------------------------------------------------------
>     | /usr/lib/ospm\        | Project Private | Shared library used by applet 
> |
>     |   /libospm-prefs.so.0.0.0               | and capplet                   
> |
>     
> ---------------------------------------------------------------------------
>     | /usr/lib/ospm\        | Project Private | Shared library used by applet 
> |
>     |   /libospm-utils.so.0.0.0               | and capplet                   
> |
>     
> ---------------------------------------------------------------------------
>     | SUNWprint-monitor     | Uncommitted     | Package name containing the   
> |
>     |                       |                 | project binaries.             
> |
>     
> ---------------------------------------------------------------------------
>     | SUNWprint-monitor-root| Uncommitted     | Package that contains project 
> |
>     |                       |                 | configuration data.           
> |
>     
> ---------------------------------------------------------------------------
>
>     This project (Phase 2) exports the following new interfaces:
>     
> ___________________________________________________________________________
>     |                           Interfaces Exported                           
> |
>     
> |-------------------------------------------------------------------------|
>     | Interface Name        | Classification  | Comment                       
> |
>     
> |-----------------------|-----------------|-------------------------------|
>     | /usr/lib/ospm-pm    |   Volatile      | Print Manager GUI             |
>     
> |-----------------------|-----------------|-------------------------------|
>     |org.opensolaris.ospm.\ |                 |                               
> |
>     |       applet        |                 |                               | 
>     |   Printeradded      | Project Private | DBUS signal between           | 
>     |                       |                   | ospm-applet and ospm-p      
> |
>     
> |-----------------------|-----------------|-------------------------------|
>     | /etc/gconf/schemas/   | Volatile        |       GCONF keys schemas that 
> define|
>     | ospm.schema           |                 | the preferences for the tools 
> |
>     
> |-----------------------|-----------------|-------------------------------|
>     | $HOME/              |                 | XML file that stores the data |
>     |.ospm-printer-groups.xml | Volatile      |       for printer groups. 
> Stability |
>     |                       |                 | is Volatile as the the format 
> |
>     |                       |                 | may change in future          
> |
>     |                       |                 | development.                  
> | 
>     
> |-----------------------|-----------------|-------------------------------|
>
>
>
>     Interfaces imported (inherited) from phase 1 of the project 
> (LSARC/2007/287)
>     
> ___________________________________________________________________________
>     |                           Interfaces Imported                           
> |
>     
> ___________________________________________________________________________
>     | Interface Name        | Classification  | Comment                       
> |
>     
> ___________________________________________________________________________
>     | lpadmin(1M)           | Obsolete        | Obsoleted by PSARC/1993/348,  
> |
>     |                       |                 | lpadmin(1M) was changed to    
> |
>     |                       |                 | obsolete because it was       
> |
>     |                       |                 | planned to be replaced.       
> |
>     |                       |                 | However, thing has changed    
> |
>     |                       |                 | since, it remains the single  
> |
>     |                       |                 | command to create print 
> queues|
>     |                       |                 | on Solaris. It is likely to   
> |
>     |                       |                 | stay around for a long time 
> to|
>     |                       |                 | come.                         
> |
>     
> ---------------------------------------------------------------------------
>     | Printers(4)           | Committed       | PSARC/1994/162, This file     
> |
>     |                       |                 | needs to be updated for the   
> |
>     |                       |                 | user to reflect default       
> |
>     |                       |                 | printer and printers of       
> |
>     |                       |                 | interest.                     
> |
>     
> ---------------------------------------------------------------------------
>     | pfexec(1)             | Committed       | PSARC/2002/188, used to 
> invoke|
>     |                       |                 | lp-queue-helper with RBAC.    
> |
>     
> ---------------------------------------------------------------------------
>     | libpapi               | Contracted      | LSARC/2001/259, Already has a 
> |
>     |                       | Project Private | contract with Printing group  
> |
>     |                       |                 | as part of LSARC/2006/462 [2] 
> |
>     
> ---------------------------------------------------------------------------
>     | /usr/lib/libdbus-1.so | Volatile        | LSARC 2006/368                
> |
>     
> ---------------------------------------------------------------------------
>     | /usr/lib\             | Volatile        | LSARC/2006/368                
> |
>     |   /libdbus-glib-1.so  |                 |                               
> |
>     
> ---------------------------------------------------------------------------
>     | libnotify.so          | Volatile        | LSARC 2007/137                
> |
>     
> ___________________________________________________________________________
>
>
>     New interfaces imported in this project.
>
>     
> ___________________________________________________________________________
>     |                           Interfaces Imported                           
> |
>     
> ___________________________________________________________________________
>     | Interface Name        | Classification  | Comment                       
> |
>     
> ___________________________________________________________________________
>     | libxml.so             | Standard        | PSARC 2008/032                
> |
>     
> ___________________________________________________________________________
>     
>     4.6. Doc Impact:
>       
>       One new man page ospm-pm(1) will be provided for this project.
>       ospm-preferences(1) will be updated to reflect the updated features.
>
>     
>     4.7. Admin/Config Impact:
>
>       None.
>     
>     4.8. HA Impact:
>
>       N/A
>     
>     4.9. I18N/L10N Impact:
>
>       Yes. G11N has been contacted for evaluation for this project.
>       Most of the L10N from phase 1 of this project can be re-used, though
>       there are new G10N and L10N required for ospm-preferences(1) and
>       ospm-pm(1). 
>     
>     4.10. Packaging & Delivery:
>
>       No new package is delivered. The two existing packages:
>       - SUNWprint-monitor
>       - SUNWprint-monitor-root
>       will be used to package the new feature.
>
>     
>     4.11. Security Impact:
>
>       No new security related issue is raised in this phase.
>       All security related issues were discussed and included in phase 1
>       of the project as in LSARC/2007/287.
>
>     
>     4.12. Dependencies:
>
>       No known pending dependency.
>
>
> 5. Reference Documents:
>
>       
>       [1] "Presto - Printing Made easy", Ghee Teo, OpenSolaris Developer
>           Conference, Prague, June 24-27, 2008.
>           http://www.opensolaris.org/os/project/presto/Documents/osdevpaper
>       [2] Presto OpenSolaris poject,  
>           http://www.opensolaris.org/os/project/presto/
>
> 6. Resources and Schedule:
>    6.1. Projected Availability:
>       
>       Planned integration data: August 2008, Nevada build 97,
>
>    6.5. ARC review type:
>               
>       FastTrack
>               
>    6.6. ARC Exposure:
>
>       Open.
>
>       This project is one of the OpenSolaris project, Presto [2].
>
>
> 6. Resources and Schedule
>     6.4. Steering Committee requested information
>       6.4.1. Consolidation C-team Name:
>               Desktop
>     6.5. ARC review type: FastTrack
>     6.6. ARC Exposure: open
>
>   


Reply via email to