On Fri, Apr 20, 2001 at 07:05:44AM +0200, scc wrote:
> We put together a step by step guide for sane specifically for stuff like
> this at:
>
> www.arrakis.es/~fsanta/sane/howto.html
>
> it has been tested with Mandrake too and it works but it would mean you
> having to start over again with the installation.

You are asking for suggestions on your page so here they are: :-)

* Maybe add a paragraph about why going through all the hassle of
installing everything from source. Some distributions (e.g. SuSE
7.1) come with current packages of SANE so I would only recommend to
compile SANE if something doesn't work. Same goes for gtk and gimp,
I would only download and compile them if the installed binaries are
too old to compile xsane.
You write that glib and gtk that comes with the distribution
should be removed. This will cause trouble with programs that came
with the distribution and that are linked against gtk. I wouldn't
recommend to do it if you aren't really shure what you are doing.
In my experience the most problems of beginners when compiling
SANE and a frontend are: Headers of X, gtk, gimp not installed.
/usr/local/lib not in /etc/ld.so.conf. /usr/local/lib/sane in
/etc/ld.so.conf by mistake. /usr/local/bin not in $PATH.
Maybe I missed something but you don't mention the /etc/ld.so.conf
thing. However, I'm pretty sure that at least for Debian potato this
entry is absolutely necessary. Compiling xsane won't work without it.

* I would be very careful with copying kernel headers to glibc
directories. This may work for SANE but may break compilation of
other programs using SCSI. And you probably won't remember that you
changed /usr/include/scsi if these problems occur.
Because this is for beginners, I would add that you
need to have installed the kernel source or at least the kernel
headers.
What I did when having problems with different sg.h files in
/usr/include and /usr/src/linux was to just rename sg.h to something
else. Then the file in /usr/src/linux was used automatically.

* Better write down that the permissions of /dev/sg0 must be rw for
"other". At least I can't read the text in your file manager. If
more than one person uses the system, I wouldn't do that however.
Better set /dev/sg0 to rw for a group (e.g. "scanner") and add all
the users that are allowed to scan to that group.

* Why do you make the link to xsane (in the users ~/.gimp directory) as
root? And be sure to mention that gimp shouldn't be run as root.

* The "Special note: USB scanners" contains some unclear points and
some mistakes in my opinion: The second sentence says to include the
following line into modules.conf. The following line is "Model :
Vendor ID : Product ID" :-).
You are asking for vendor/product ids of other scanners. Maybe you
want to link to http://www.linux-usb.org, they have a list of such
ids.
You write that it's necessary to add "modprobe scanner vendor=<your
vendor ID> product=<your product ID>" to modules.conf. However,
modules.conf contains the options of the modules, not the modprobe
itsself. So something like "options scanner vendor=<your vendor ID>
product=<your product ID>" should work. By the way: In principle
scanners should work without manually adding the ids, if they don't
please send the necessary ids and the name of the scanner to the
author of the scanner module for inclusion.
Better add a warning that at least for Debian "modules.conf" shouldn't
be changed manually. As the comment in this file says:
# Please do not edit this file directly. If you want to change or add
# anything please take a look at the files in /etc/modutils and read
# the manpage for update-modules.
Concerning *.conf when you don't use the epson backend: I'm not sure
if every backend uses the "usb /dev/something" entry for *.conf. So
better point to the documentation.
After the paragraph about epson.conf you write "Mine looks like
this: modprobe scanner vendor=0x04b8 product=ox010c". This should be
moved to the paragraph about modules.conf (and exchange "modprobe" by
"options"). The hex codes must start with 0x not ox.
I would *not* add the link from /dev/usbscanner to /dev/scanner.
/dev/scanner is used by all the SCSI backends and looking at USB
device files as a SCSI generic file may cause havoc.

Generally: For all things you need to do as root I would recommend to
use something like 'su -c "make install"'. This way there is no risk to
forget to "exit" the su shell.