Sorry, the External link should be on opensolaris
http://www.opensolaris.org/os/community/arc/caselog/2008/389

--Irene
Irene Huang wrote:
> 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