Add Norm in cc list in case he could answer some questions. -Halton.
On Thu, 2008-06-19 at 13:26 +0800, Irene Huang wrote: > 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 > >> > >> > > >
