USE IMPROVE EVANGELIZE
Presto - OpenSolaris
Printing Make Easy
Ghee Teo
[email protected]
Presenting:
Michal Pryc ([email protected])
USE IMPROVE EVANGELIZE
Agenda
● Why presto?
● Printer Management tools on Unix
● Presto
– Architecture
– Print Manager – basic requirements
– Supported print systems
– Programming language
– How many threads
– Group manager
– Desktop integration
– Road map
2
USE IMPROVE EVANGELIZE
Presto – Printing Made Easy
● Why presto?
3
USE IMPROVE EVANGELIZE
Presto – Printing Made Easy
● Why presto?
Why not?
4
USE IMPROVE EVANGELIZE
Presto – Printing Made Easy
jurvetson
5
USE IMPROVE EVANGELIZE
Presto – Printing Made Easy
● Why presto?
– OpenSolaris Printer set up gap
(Hardest task to complete in on survey)
– Improve user's experinece
• auto-detection
• auto-discovery vs manual specification
– Use SMF for managing network queue
discovery/advertising services
– Tighter desktop integration
6
USE IMPROVE EVANGELIZE
Printer Management tools on Unix
Tomcio77 Olivier Lejade
Tools wrapped around Tools based on printing
command line's output libraries
7
USE IMPROVE EVANGELIZE
Printer Management tools on Unix
/usr/dt/bin/dtprintinfo
/usr/bin/gnome-printinfo
/usr/sbin/printmgr
Tomcio77
8
USE IMPROVE EVANGELIZE
Printer Management tools on Unix
GNOME CUPS Manager
PrinterDrake
System-config-printer
PRESTO
Olivier Lejade
9
USE IMPROVE EVANGELIZE
GNOME CUPS Manager
● Dave Camp 2003
– Gnome-cups-manager
– Gnome-cups-add
● GNOME, GTK+, libcups
● Integrated with desktop (notification area)
● User still needs to fill text entries
10
USE IMPROVE EVANGELIZE
GNOME CUPS Manager
● Eric Redmond - “Cups horror” [0]
[0] http://catb.org/~esr/writings/cups-horror.html
11
USE IMPROVE EVANGELIZE
PrinterDrake
● Plug and Print
(Parallel/USB)
● Network printer discovery
using SNMP
● Fuzzy matching of
Manufacturer and model
name
● configuration of sharing of
CUPS printers
● automatic download of
certain firmware if needed
12
USE IMPROVE EVANGELIZE
System-config-printer
13
USE IMPROVE EVANGELIZE
Architecture of Presto
Kernel Network Printer Network Printer
Discovery (snmp) Discovery (mDNS)
Device HotPlug
(sysevent)
devfsadmd
EC_add/EC_remove
ESC_printer (sysevent)
Solaris LP
HAL Dev Print System
hald Tree
Device Added/Removed
(DBUS signal)
libpapi
lpadmin
PrinterAdded
ospm-applet (DBUS signal) ospm-pm
Desktop
Add Queue
Notification
Dialog
Bubble
14
USE IMPROVE EVANGELIZE
Local printer discovery
Kernel
Device HotPlug
(sysevent)
devfsadmd
EC_add/EC_remove
ESC_printer (sysevent)
Solaris LP
HAL Dev Print System
hald Tree
Device Added/Removed
(DBUS signal)
libpapi
lpadmin
PrinterAdded
ospm-applet (DBUS signal) ospm-pm
Desktop
Add Queue
Notification
Dialog
Bubble
15
USE IMPROVE EVANGELIZE
Network printer discovery
Network Printer Network Printer
Discovery (snmp) Discovery (mDNS)
Solaris LP
HAL Dev Print System
hald Tree
Device Added/Removed
(DBUS signal)
libpapi
lpadmin
PrinterAdded
ospm-applet (DBUS signal) ospm-pm
Desktop
Notification
Bubble
16
USE IMPROVE EVANGELIZE
Print manager – basic requirements
● the tool must get away from parsing command line
program's output
● the tool must be able to handle large number of queues
reasonably as some environment contains.
● the tool must provide functionalities adequately to replace
some existing tools such as gnome-printinfo and Solaris
printmgr on the desktop.
● seamless integration into the desktop
17
USE IMPROVE EVANGELIZE
Print system supported
● Solaris LP
● CUPS is not supported at the moment
(has been integrated into Solaris Nevada build 87)
18
USE IMPROVE EVANGELIZE
Programming language
C as a natural choice
– Solaris Implementation of PAPI is written in C
– GTK+ toolkit is written in C and well suited to
implement Desktop GUI
19
USE IMPROVE EVANGELIZE
Threads – How many?
● GUI
● Queue states
● Job States
Paul Wicks
20
USE IMPROVE EVANGELIZE
Why Printer Group Manager
21
USE IMPROVE EVANGELIZE
Group types
● Special
– All Printers (System)
– Favorites (User)
● Static
– list of named print queues
● Dynamic
– list of queues derived from
specification of printer's
attributes
22
USE IMPROVE EVANGELIZE
How groups are used?
● Through extension to GTK+ Print Dialog for
all arbitrary group (Not implemented yet)
● Utilizing favorites ($HOME/.printers) on
OpenSolaris LP print system
23
USE IMPROVE EVANGELIZE
Integration of Groups to GTK+ Print Dialog
24
USE IMPROVE EVANGELIZE
Road map
● Local USB auto-detection and creation of queue – Nevada 69
● SNMP network device printer discovery – Nevada 77
● OpenSolaris Print Manger – Nevada 96/97, OpenSolaris
2008.11
● More Network printer discovery modules – MDNS, Samba ?
● CUPS support in OpenSolaris Print Manager?
● GTK+ Print Dialog for Groups
25
USE IMPROVE EVANGELIZE
Thanks
Ghee Teo
[email protected]
Presenting:
Michal Pryc ([email protected])