Integrate libsane and sane into Solaris [PSARC/2008/170 FastTrack timeout 03/11/2008]

Lei Chen Raymond.Chen at sun.com
Tue Mar 4 03:12:02 PST 2008


Darren Kenny wrote:
> Hi,
>
> Is there any chance that libsane could be elevated to the stability level of at
> least Uncommitted so that it would be usable by other projects?
>   
The stable SANE standard is at version 1.04 and it has been there for 
some time. But there's also a new SANE standard under development[1]. 
I'm not sure when the new version will be applied.
Per my understanding of interface stability level,  use of Uncommitted 
and Volatile interfaces has not much difference[2]. Do you have 
information about Volatile interface usage limitation?

Regards,
Lei Chen

[1] http://www.sane-project.org/docs.html
[2]http://opensolaris.org/os/community/arc/policies/interface-taxonomy/

> Specifically, I'm thinking of GNOME Scan or GIMP, but also possibly
> OpenOffice/StarOffice (but I'm not 100% sure here).
>
> Thanks,
>
> Darren.
>
> Tzongyu Paul Lee wrote:
>   
>> I am sponsoring this fast-track for Raymond Chen.
>> Requested release binding is minor, and the timer is set to
>> 03/11/2008.
>>
>> Regards,
>> T.Paul Lee
>>
>>
>> Template Version: @(#)sac_nextcase 1.64 07/13/07 SMI
>> This information is Copyright 2008 Sun Microsystems
>> 1. Introduction
>>     1.1. Project/Component Working Name:
>> 	 Integrate libsane and sane into Solaris
>>     1.2. Name of Document Author/Supplier:
>> 	 Author:  Raymond Chen
>>     1.3  Date of This Document:
>> 	04 March, 2008
>> 4. Technical Description
>> Summary
>> 	This project integrates libsane and sane into Solaris.
>> 	This project requests a minor binding.
>> 	
>> 4.1 Details
>> 	
>> 	SANE is an application programming interface (API) that provides
>> 	standardized access to any raster image scanner hardware. The
>> 	standardized interface  makes  it possible to write just one
>> 	driver for each scanner device instead of one driver for each
>> 	scanner and application.
>> 	
>> 	SANE is clearly separated into applications(frontends) and scanner
>> 	drivers(backends). A SANE backend provides an interface with the
>> 	hardware and describes a number of options which drive each scanner.
>> 	sane, in this proposal, refers to applications that
>> 	are delivered by SANE community, http://www.sane-project.org/.
>>
>> 	"sane-backends" package of FOSS project SANE contains backends,
>> 	documentation, networking support and the command line frontend
>> 	"scanimage".
>>
>> 	In this project, the following components will be ported and
>> 	integrated into Solaris:
>>
>> 	    1)sane-backends
>> 	    	sane-backends contain drivers for popular scanners on the
>> 		market. This project proposes to only support local USB
>> 		scanners.
>> 		As an effort to enrich desktop applications for Indiana,
>> 		SANE network feature is not considered essential and hence
>> 		out of scope for this project. A future case may support
>> 		this functionality.
>>
>> 	    2)libsane
>> 	    	Standard SANE APIs are provided by libsane. Different
>> 		frontends are developed on the base of such set of API.
>>
>> 	    3)sane documentation
>> 	    	User manuals.
>>
>> 	    4)scanimage
>> 	    	scanimage is a command-line interface to control image
>> 		acquisition devices. It is one of the SANE frontends.
>>
>> 	    5)xscanimage
>> 	    	xscanimage provides a graphical user interface to control
>> 		an image acquisition device such as scanner. It allows
>> 		previewing and scanning individual images.
>> 	
>> 	SANE depends on the scanner's device special file for access control.
>> 	For USB interface scanners, by default only users on console or
>> 	superuser have permission to access the devnode, which is controlled
>> 	by logindevperm(4). It is also possible to restrict access to a
>> 	scanner using Solaris device allocation subsystem. Sysadmin can enable
>> 	BSM and put scanner device special file (exported by ugen(7D)) in
>> 	device_map and device_allocate(4), so that the scanner is allocatable
>> 	and then can be used by only one qualified user at a time.
>>
>>  
>> 4.2 Interface description
>>
>>     All interfaces in sane.h and saneopts.h are exported as Volatile.
>>
>>     Exported interfaces
>>     -------------------
>>     SUNWsane			Uncommitted	SANE frontends
>>     SUNWsane-backends		Uncommitted	SANE backends --
>>     						library and drivers
>>     /usr/include/sane/sane.h	Volatile	SANE API header file
>>     /usr/include/sane/saneopts.h	Volatile SANE options header file
>>     /usr/lib/libsane.so.1.0.19	Volatile	SANE library
>>     /usr/lib/sane/*		Volatile	SANE backends
>>     /etc/sane.d/dll.conf	Volatile	Contain backend names
>>     /etc/sane.d/*.conf		Volatile	Each backend has a .conf
>>
>>     /usr/bin/scanimage		Volatile	SANE CLI frontend
>>     /usr/bin/xscanimage		Volatile	SANE GUI frontend
>>     /usr/bin/sane-config	Volatile	Utility to get information
>>     						about installed libsane
>>     /usr/bin/sane-find-scanner	Volatile	Utility to find scanners
>>
>>     /usr/share/man/man1/scanimage.1	Volatile	manual
>>     /usr/share/man/man1/xscanimage.1	Volatile	manual
>>     /usr/share/man/man1/sane-find-scanner.1	Volatile	manual
>>     /usr/share/man/man1/sane-config.1	Volatile	manual
>>     /usr/share/man/man7/sane.7	Volatile	manual
>>     /usr/share/man/man5/sane-*.5	Volatile	Sane backends manual
>>
>>     --------------- SANE C API ----------------------------------------
>>     sane_init		Volatile	Initialize the backend
>>     sane_exit		Volatile	Terminate use of a backend
>>     sane_get_devices	Volatile	Query the list of devices
>>     sane_open		Volatile	Establish association with a
>>     					particular device
>>     sane_close		Volatile	Terminates the above association 
>>     sane_get_option_descriptor	Volatile	Access option descriptors
>>     sane_control_option	Volatile	Set/query the current value of
>>     					option number 
>>     sane_get_parameters	Volatile	Obtain the current scan parameters
>>     sane_start		Volatile	Initiates acquisition of an image
>>     sane_read		Volatile	Read image data from the device
>>     sane_cancel		Volatile	Cancel the pending operation
>>     sane_set_io_mode	Volatile	Set the I/O mode
>>     sane_get_select_fd	Volatile	Obtain file-descriptor from handle
>>     sane_strstatus	Volatile	Translate SANE status code into
>>     					printable string 
>>
>>     Imported Interfaces
>>     --------------------
>>     libusb		Volatile	User-space USB device management
>>     					library
>>     libjpeg		Uncommitted	JPEG image compression and
>>     					decompression
>>     libtiff		Uncommitted     Reading and writing TIFF files
>>     GTK+		Volatile        GNOME Desktop Library  
>>     GDK			Volatile        GNOME Desktop Library
>>
>>
>> 5. References
>> 	[1] http://www.sane-project.org/
>> 	[2] LSARC/2006/734 GNOME 2.16
>> 	[3] LSARC 2003/085 libtiff, libjpeg and libpng.
>> 	[4] PSARC 2003/721 libusb: user level usb library
>> 	[5] LSARC 2007/018 Sane-backends and Xsane
>>
>> 6. Resources and Schedule
>>     6.4. Steering Committee requested information
>>    	6.4.1. Consolidation C-team Name:
>> 		sfw
>>     6.5. ARC review type: FastTrack
>>     6.6. ARC Exposure: open
>>
>>     




More information about the opensolaris-arc mailing list