[sane-devel] permission request

Johannes Meixner jsmeix at suse.de
Wed Jan 9 09:03:06 UTC 2008


On Dec 19 11:52 m. allan noah wrote (shortened):
> On Dec 19, 2007 9:41 AM, Colin Hogben <sane at pythontech.co.uk> wrote:
> ...
> > Another important point to allow smooth migration: we must not change
> > existing interfaces (i.e. ABI) but we may augment them.  E.g. do not
> > change the definition of SANE_Device (and therefore sane_get_devices()).
> > instead, define SANE_Device2 structure with the new fields, and a new
> > method sane_get_devices2() which returns them.
> i think the idea is nice in principal, though the specifics of using
> the obfuscated version number are not that pleasant.

Only for your information:

A successful example where they did it this way is CUPS,
see their API documentation e.g. at

When possible only the newest function (e.g. cupsGetPPD2)
is really implemented and the old one (e.g. cupsGetPPD)
has become only a wrapper for the new one.

Personally I like function names with version numbers.
I don't think they are "obfuscated".
In contrast I think they make the issue clear.

Note that the LSB people think about to establish SANE1
as LSB conformant scanner interface (e.g. for LSB 3.2)
so that any new API/ABI which is not backward compatible
will not be LSB conformant.
Remember the mail thread with subject
"LSB DDK: Support for scanner drivers/SANE into LSB 3.2?"

If SANE1 became a LSB standard and if there was an incompatible
new API/ABI, at least we (i.e. Novell/Suse) would have the problem
that on the one hand our distribution must be LSB conformant
(which means we must provide SANE1 for a longer time)
but on the other hand we like to provide up-to-date packages.
Of course we could simply provide two packages "sane-backends"
and "sane2-backends" but then there might be confusion when
some users run a LSB conformant system while others run an
up-to-date system.

By the way:
Physicists still inversigate what the "big bang" really was
so that it is questionable how to do another "big bang" ;-)

Kind Regards
Johannes Meixner
SUSE LINUX Products GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany
AG Nuernberg, HRB 16746, GF: Markus Rex

More information about the sane-devel mailing list