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 >> >> >
