[lsb-discuss] Scanning interfaces and LSB 4.0

Olaf Meeuwissen olaf.meeuwissen at avasys.jp
Mon Jul 21 19:46:44 PDT 2008


Theodore Tso <tytso at mit.edu> writes:

> [snip, worries about LSB induced bloat]
>
> I've been assured that in the case of SANE, it is possible to split
> the package so that library components that provide the interfaces is
> very small, and the backend drivers could be kept in a separate
> package that would only be loaded if there were scanners directly
> hooked up to the system.

This is correct.  As a matter of fact, the SANE API was designed to
cater to a number of different linking scenarios, one of which was
applications linking directly to a specific SANE backend.  That is,
you could link a SANE frontend directly to, say, the mustek backend
without needing any of the other stuff.

> For LSB 4.0 this doesn't help us much, though, since it is designed to
> be targetted at currently shipping enterprise distributions and as far
> as I know most distributions do *not* split up SANE in this way when
> they packaged it.  And even for the next version of the LSB, which
> will target the next generation of enterprise distro's, the time
> window when we can influence how SANE will be packaged is closing
> fast.
>
> So it may be that given this concern, even if we do get SANE fully
> documented, that we may end up deciding that we need to ship it as a
> trial use module for LSB 4.0.  And regardless, we should definitely
> try hard to influence distributions to break up their SANE packaging
> so that the library and the backend drivers are separated, so that
> this doesn't become a problem for the next generation of
> distributions.

So we go from 2 or 3 libsane packages to, what?, about 80 of them?  I
don't really care much about the number but we definitely need to make
clear what distributions and third parties will need to provide and
how they need to handle dependencies correctly.

We now have something like:

  libsane1
  libsane-dev
  libsane-dbg

for the sane-backends package.  Some distributions use slightly
different package names but that's not the point.

For the backend drivers (== library!), you'd get something like:

  libsane1-abaton
  libsane1-agfafocus
  libsane1-apple
  [and so on]

Please note that every single "backend driver" provides libsane1.

For "enterprise" and "desktop" distributions alike, you'd want the
libsane-dll backend to act as libsane.  This "meta"backend can then
provide access to any of the other backends.

Hope this helps,
-- 
Olaf Meeuwissen                   FLOSS Engineer -- AVASYS Corporation
FSF Associate Member #1962           sign up at http://member.fsf.org/



More information about the lsb-discuss mailing list