[sane-devel] API addition request

Johannes Meixner jsmeix at suse.de
Fri Aug 20 10:35:10 UTC 2010


On Aug 19 20:39 m. allan noah wrote (shortened):
> Extending the caps SHOULD work perfectly with any reasonable
> front-end. As long as the developer checks for each cap he cares
> about, adding a new cap is not a problem.
> However, it is technically possible that a stupid programmer could do
> something like an if() test, after masking off all the bits he does
> NOT care about, or doing a switch/case with all the possible
> combinations listed, instead of testing the bitmask.
> While I am of the opinion that he deserves to feel some pain for that
> kind of horrible code, the end user of his code does not deserve
> breakage.
> I really, really want to commit your patch (after changing to the US
> spelling :) but I cannot, as the possibility of breakage is enough.
> We need SANE2 so badly it hurts, but it seems we have less cycles than
> ever to do it...

As far as I noticed several such attemts in the past to move to SANE2
all those attemts get somehow stuck.

As far as I noticed, they got stuck because there is no smooth
little-step-by-little-step way to move from SANE1 to SANE2.

But for a one-big-step switch there is neither the manpower
nor the overall interest of all involved developers to
actually do such a switch.

Therefore from my point of view there will never ever be such a
one-big-step switch from SANE1 to SANE2 in the foreseeable future.

In my humble opinion the only way to move somehow forward is
to develop a little-step-by-little-step way to move forward.

Therefore I dare to suggest to branch the current sane-backends
into two branches:

A traditional SANE1 branch which is strictly compatible to SANE1

and a new

SANE branch which is only compatible to SANE1 "in a reasonable way"
which means that it "works perfectly with any reasonable front-end".

It should be specified what exactly it means to make a
front-end in compliance with the more open SANE branch
(e.g. the front-end must check for each cap it uses).

Development must be possible for both branches because
my base idea behind is to make it possible to find out
over some time which way to go.

I think it would be very much better when the SANE project
officially supports and provides such a more open SANE branch
than when particular developers may feel somehow rejected
because currently their development efforts must be rejected.
This does somehow force those developers to make their own
branches so that they can continue to do their development, like
which then starve because a single developer cannot do it all
so that in the end all their development gets lost.

After some time you would know if the traditional SANE1 branch
is the right way or if the more open SANE branch is the right way.
Finally after much more time one of both branches will fade away.

For example regarding Linux:

The Linux distributions can package both branches and let their
users decide over the time which branch they prefer more.

Unless there is feedback from many many users "out there",
one would never ever know to which actual extent extending the caps
would cause which exact trouble with which exact front-ends.

What do you think?

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