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

Tzongyu Paul Lee tl41329 at sac.sfbay.sun.com
Tue Mar 4 00:57:18 PST 2008


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