[sane-devel] SANE2 standard revisited

Henning Meier-Geinitz henning@meier-geinitz.de
Thu, 5 Dec 2002 22:34:09 +0100


On Thu, Dec 05, 2002 at 06:09:57PM +0100, Henning Meier-Geinitz wrote:
> http://www.meier-geinitz.de/sane/sane2/

Now versioning and naming. Not all of this is strictly SANE standard
stuff, but let's start with it:

| Chapter 4: The SANE Application Programmer Interface (API)

| This Section defines version 2 of the SANE application programmer
| interface (API). Any SANE frontend must depend on the interface
| defined in this section only. Converseley, any SANE backend must
| implement its functionality in accordance with this specification. The
| interface as documented here is declared as a C callable interface in
| a file called sane/sane-2.h. This file should normally be included via
| a C pre-processor directive of the form:
|  #include <sane/sane-2.h>
Ok, so we keep sane.h and the new one in one directory. But should we
really call it sane-2.h and not sane2.h? I mean for consistancy with
library names?

Ok speaking of libraries: The names will be libsane2.so,
libsane2-dll.so, libsane2-mustek.so and so on, I guess? We should keep
in mind that we don't misuse libool's version info again.

The libraries go to .../lib/sane/ again (as with sane/sane2.h)?

What about the config files: /etc/sane2.d/dll.conf or,

Now versions:
| 4.1 Version Control

| SANE version control also includes a minor version number and a build
| revision. While control of these numbers remains with the implementor
| of a backend, the recommended use is as follows. The minor version is
| incremented with each official release of a backend. The build
| revision is increased with each build of a backend. 

Currently we have lot's of different version numbers. SANE standard,
sane-distribution, and backends. I hope we can merge the last two.

So why don't we use only two numbers for SANE releases like 2.0, 2.1,
2.23? We haven't needed the second number until now and I see no
reason for it. So the distribution would use e.g. 2.4 and a backend
that is included would use 2.4.something with something is the backend
build or version number. So you immediately know which SANE version
was used.

No need to change the standard. because it fits nicely if "official
release of a backend" is defined as "sane-backends release". External
backends could just use 2.0.something.