[sane-devel] problems with genesys and MD6228

2008-06-06 Thread stef
Le Friday 06 June 2008 20:15:36 Werner Holtfreter, vous avez ?crit?:
> Am Mittwoch, 4. Juni 2008 21:09:56 schrieb stef:
> > you can compile and test CVS without installing it system-wide.
> > In a command shell, create a directory then 'cd' to it.
> > First you have to get the sources with (see
> > http://www.sane-project.org/cvs.html):
> >
> > cvs -d:pserver:anonymous at cvs.alioth.debian.org:/cvsroot/sane
> > login cvs -z3
> > -d:pserver:anonymous at cvs.alioth.debian.org:/cvsroot/sane co
> > sane-backends
> >
> > Once you have the sources, 'cd' to sane-backends, then configure
> > the build with:
> > ./configure --prefix=/usr --sysconfdir=/etc
> >
> > then compile with:
> > make
> >
> > Then you can use the attached 'genesys' script (which must be
> > copied in the sane-backends/backend directory) and run it to test
> > your scanner with the new backend without installing it. It runs
> > with full debug. You can edit it to change resolution, width,
> > height and coordinates. The scanned picture will be in
> > 'scan.pnm'.
>
> Hallo Stef,
>
> thank you for the helpfully instruction!
>
> > In case you run any problem, let us know.
>
> The scanner didn't do anything.
>
> When compiling (or configure) I read a warning "without usb"...
>
> The scan.log:
>
> [sanei_debug] Setting debug level of genesys to 511.
> [genesys] SANE Genesys backend version 1.1 build 9 from sane-backends
> 1.1.0-cvs [genesys] sane_init: authorize != null
> [genesys] sane_init: little endian machine
> [genesys] sane_init: reading config file `genesys.conf'
> [genesys] sane_init: config file line 1: ignoring comment line
> [genesys] sane_init: config file line 2: ignoring empty line
> [genesys] sane_init: config file line 3: ignoring comment line
> [genesys] sane_init: config file line 4: ignoring comment line
> [genesys] sane_init: config file line 5: ignoring comment line
> [genesys] sane_init: config file line 6: ignoring comment line
> [genesys] sane_init: config file line 7: ignoring empty line
> [genesys] sane_init: config file line 8: ignoring comment line
> [genesys] sane_init: config file line 9: ignoring comment line
> [genesys] sane_init: config file line 10: ignoring empty line
> [genesys] sane_init: config file line 11: ignoring comment line
> [genesys] sane_init: config file line 12: ignoring comment line
> [genesys] sane_init: config file line 13: ignoring empty line
> [genesys] sane_init: config file line 14: ignoring comment line
> [genesys] sane_init: config file line 15: ignoring comment line
> [genesys] sane_init: config file line 16: ignoring empty line
> [genesys] sane_init: config file line 17: ignoring comment line
> [genesys] sane_init: config file line 18: ignoring comment line
> [genesys] sane_init: config file line 19: ignoring empty line
> [genesys] sane_init: config file line 20: ignoring empty line
> [genesys] sane_init: config file line 21: ignoring comment line
> [genesys] sane_init: config file line 22: ignoring comment line
> [genesys] sane_init: config file line 23: ignoring comment line
> [genesys] sane_init: config file line 24: ignoring empty line
> [genesys] sane_init: config file line 25: ignoring comment line
> [genesys] sane_init: config file line 26: trying to attach `usb 0x0461
> 0x0377' [genesys] sane_init: config file line 27: ignoring empty line
> [genesys] sane_init: config file line 28: ignoring comment line
> [genesys] sane_init: config file line 29: trying to attach `usb 0x03f0
> 0x0901' [genesys] sane_init: config file line 30: ignoring empty line
> [genesys] sane_init: config file line 31: ignoring comment line
> [genesys] sane_init: config file line 32: trying to attach `usb 0x04a9
> 0x2213' [genesys] sane_init: config file line 33: ignoring empty line
> [genesys] sane_init: config file line 34: ignoring comment line
> [genesys] sane_init: config file line 35: trying to attach `usb 0x04a9
> 0x221c' [genesys] sane_init: exit
> [genesys] sane_open: start (devicename = `genesys')
> lt-scanimage: open of device genesys failed: Invalid argument
> [genesys] sane_exit: start
> [genesys] sane_exit: exit
> --
> Viele Gr??e
> Werner Holtfreter

Hello,

this strange. This could be related to the possible lack of libusb you 
mention. On distributions, libraries are often split in two packages, one for 
runtime and another for development. You may have to check you have 
the 'devel' libusb package installed (there should be an /usr/include/usb.h 
file and a /usr/lib/libusb.a or libusb.so on your system).
Also, when running configure, you may add the '--enable-libusb' switch 
to be 
sure libusb support is compiled in. To be sure run the following commands:
make distclean
./configure --prefix=/usr --sysconfdir=/etc --enable-libsub

Regards,
Stef





[sane-devel] problems with genesys and MD6228

2008-06-06 Thread Werner Holtfreter
Am Mittwoch, 4. Juni 2008 21:09:56 schrieb stef:

>   you can compile and test CVS without installing it system-wide.
> In a command shell, create a directory then 'cd' to it.
>   First you have to get the sources with (see
> http://www.sane-project.org/cvs.html):
>
> cvs -d:pserver:anonymous at cvs.alioth.debian.org:/cvsroot/sane
> login cvs -z3
> -d:pserver:anonymous at cvs.alioth.debian.org:/cvsroot/sane co
> sane-backends
>
>   Once you have the sources, 'cd' to sane-backends, then configure
> the build with:
>   ./configure --prefix=/usr --sysconfdir=/etc
>
> then compile with:
>   make
>
>   Then you can use the attached 'genesys' script (which must be
> copied in the sane-backends/backend directory) and run it to test
> your scanner with the new backend without installing it. It runs
> with full debug. You can edit it to change resolution, width,
> height and coordinates. The scanned picture will be in
> 'scan.pnm'.

Hallo Stef,

thank you for the helpfully instruction!

>   In case you run any problem, let us know.

The scanner didn't do anything.

When compiling (or configure) I read a warning "without usb"...

The scan.log:

[sanei_debug] Setting debug level of genesys to 511.
[genesys] SANE Genesys backend version 1.1 build 9 from sane-backends 1.1.0-cvs
[genesys] sane_init: authorize != null
[genesys] sane_init: little endian machine
[genesys] sane_init: reading config file `genesys.conf'
[genesys] sane_init: config file line 1: ignoring comment line
[genesys] sane_init: config file line 2: ignoring empty line
[genesys] sane_init: config file line 3: ignoring comment line
[genesys] sane_init: config file line 4: ignoring comment line
[genesys] sane_init: config file line 5: ignoring comment line
[genesys] sane_init: config file line 6: ignoring comment line
[genesys] sane_init: config file line 7: ignoring empty line
[genesys] sane_init: config file line 8: ignoring comment line
[genesys] sane_init: config file line 9: ignoring comment line
[genesys] sane_init: config file line 10: ignoring empty line
[genesys] sane_init: config file line 11: ignoring comment line
[genesys] sane_init: config file line 12: ignoring comment line
[genesys] sane_init: config file line 13: ignoring empty line
[genesys] sane_init: config file line 14: ignoring comment line
[genesys] sane_init: config file line 15: ignoring comment line
[genesys] sane_init: config file line 16: ignoring empty line
[genesys] sane_init: config file line 17: ignoring comment line
[genesys] sane_init: config file line 18: ignoring comment line
[genesys] sane_init: config file line 19: ignoring empty line
[genesys] sane_init: config file line 20: ignoring empty line
[genesys] sane_init: config file line 21: ignoring comment line
[genesys] sane_init: config file line 22: ignoring comment line
[genesys] sane_init: config file line 23: ignoring comment line
[genesys] sane_init: config file line 24: ignoring empty line
[genesys] sane_init: config file line 25: ignoring comment line
[genesys] sane_init: config file line 26: trying to attach `usb 0x0461 0x0377'
[genesys] sane_init: config file line 27: ignoring empty line
[genesys] sane_init: config file line 28: ignoring comment line
[genesys] sane_init: config file line 29: trying to attach `usb 0x03f0 0x0901'
[genesys] sane_init: config file line 30: ignoring empty line
[genesys] sane_init: config file line 31: ignoring comment line
[genesys] sane_init: config file line 32: trying to attach `usb 0x04a9 0x2213'
[genesys] sane_init: config file line 33: ignoring empty line
[genesys] sane_init: config file line 34: ignoring comment line
[genesys] sane_init: config file line 35: trying to attach `usb 0x04a9 0x221c'
[genesys] sane_init: exit
[genesys] sane_open: start (devicename = `genesys')
lt-scanimage: open of device genesys failed: Invalid argument
[genesys] sane_exit: start
[genesys] sane_exit: exit
-- 
Viele Gr??e
Werner Holtfreter



[sane-devel] Please give me some help to solve the license issues in using sane

2008-06-06 Thread Daniel Glöckner
On Fri, Jun 06, 2008 at 11:10:52AM -0400, m. allan noah wrote:
> 3. you can write a partly free backend, that dynamically links to the
> closed parts, provided that you place a license exception in the free
> part allowing said linking. you cannot use any code from SANE, other
> than sane.h and the sane specification, in either part.
> 
> 4. you can write an entirely closed backend. you cannot use any code
> from SANE, other than sane.h and the sane specification.

All GPL frontends using these backends would need a license exception
as well.

  Daniel



[sane-devel] Please give me some help to solve the license issues in using sane

2008-06-06 Thread Alessandro Zummo
On Fri, 6 Jun 2008 11:10:52 -0400
"m. allan noah"  wrote:

> yes- this seems reasonable, however, this 'program' cannot be derived
> from existing GPL'd software that does not already have this added
> permission, because that would change the original program's license
> without permission of the authors.

 correct.
 
> so, is our answer to Mengqiang that there are only four choices?
> 
> 1. you can write an entirely free backend, and use code from SANE.

 yay! :)


> 2. you can write a partly free backend, that runs the closed parts as
> a separate process, and use code from SANE in the free part, provided
> that the interface to the closed parts is simple and well documented.

 this is the hp way if i've got it corretly. I find it a bit ugly.
 

> 3. you can write a partly free backend, that dynamically links to the
> closed parts, provided that you place a license exception in the free
> part allowing said linking. you cannot use any code from SANE, other
> than sane.h and the sane specification, in either part.

 this means that the sane I/O facilities cannot be used. however
 it may be the cleanest thing.

 that's similar to the epkowa way, which uses sane io facilities
 iirc?
 


-- 

 Best regards,

 Alessandro Zummo,
  Tower Technologies - Torino, Italy

  http://www.towertech.it




[sane-devel] Please give me some help to solve the license issues in using sane

2008-06-06 Thread Wang Mengqiang
Theodore Kilgore,

Thank you for your ardent reply. 

 I feel your earnest expectation to improve the communication with hardware 
manufacture. But, very sorry, I am afraid I have no ability to take this 
responsibility.

Thank you sharing the possible reasons on the block of  communication. 
Whatever, please don't consume too much time to annoy yourself. The 
communication and cooperation must base on the common interest ,or benefit 
especially for commerce. So, I think, the major factor is whether the hardware 
manufacturer's has the relative strategy and whether manufaturer will obtain, 
but not lost  the benefit. You know, company has to keep careful to business 
secret against competitor, and risk of patent or license. IMHO, a developer can 
be proud that he is able to learn more knowledge by interrup, inverse 
programming,  but  as a company it has to consider whether it is proper or 
legal.  

In fact, I understand and respect the spirit of open and free in open source 
world. I feel it will be very important and meaningful if open source and 
commerce(non open source) software can benefit each other in the cooperation. 
Maybe, it need understanding and some concede from both sides. it is necessary 
to avoid either absolute commerce or absolute free. That will benefit the end 
user finally.  

your politeness and enthusiasm impressed me deeply.  very glad to exchange 
personal opinion. 
Wang mengqiang
 

>;-Original Message-
>;From: kilgota at banach.math.auburn.edu 
>;[mailto:kilgota at banach.math.auburn.edu] 
>;Sent: Friday, June 06, 2008 9:00 AM
>;To: Alessandro Zummo
>;Cc: Wang Mengqiang; SPD-GW; sane-devel at lists.alioth.debian.org
>;Subject: Re: [sane-devel] Please give me some help to solve 
>;the license issues in using sane
>;
>;
>;Wang Mengqiang,
>;
>;I am not one of the regular SANE developers, but I am quite 
>;active in another, similar project, Gphoto, which supports 
>;digital still cameras. I find this thread interesting because 
>;it raises issues which affect us all. 
>;I hope very much that the SANE developers will not mind if I 
>;join this discussion.
>;
>;Wang (or should I address you by Mengqiang; please excuse my 
>;ignorance of your national customs), thank you very much for 
>;bringing these questions to us.
>;
>;Why do I say this in spite of the fact that some of the 
>;answers you got seem to be somewhat negative? The reason I 
>;say this is that any kind of communication at all with 
>;hardware manufacturers is practically impossible for us to 
>;carry out. It seems that there is an extreme cultural divide 
>;and lack of understanding. Far more typical it is that we, 
>;free software developers, send letters or e-mails and we get 
>;totally ignored. Just as a recent example, three days ago, I 
>;sent to a company in Taiwan a very polite request for 
>;information about a certain camera chip. It was not the first 
>;time that I tried to write to them. This request, just like 
>;all previous ones, has obviously been simply ignored. I know 
>;for a fact, too, that the SANE project has similar 
>;difficulties of communication as we do. 
>;I would like to take this seeming opportunity to ask you why 
>;such communication problems exist. Why is the most usual 
>;response to any such request from any of us simply to ignore 
>;the request and not even to acknowledge that the request has 
>;been received?
>;
>;I can imagine several reasons behind this lack of two-way 
>;communication. I do not know which, if any, of the following 
>;apply, or whether the problem is something else. Please help 
>;me understand:
>;
>;1. Somehow we do not know how to address our letters 
>;properly, or how to ask in a manner which is perceived as 
>;polite. Some of us may be guilty of that. In my case, at 
>;least, and in the case of most individuals who have some 
>;cross-cultural knowledge, we do not knowingly do that.
>;
>;2. Somehow it is perceived that we are in competition with 
>;the company. If this is the situation, then I do not 
>;understand. We are not in the business of making hardware, 
>;whether processor chips, scanners, or cameras. We do not 
>;intend to enter such business and thereby to rob the sons and 
>;daughters of other countries of the ability to earn a decent 
>;living. We are interested in making the hardware work, 
>;possibly to work better, and to write good support software 
>;for it. We would be even happier to do this in active 
>;cooperation with hardware manufacturers, believe me, and it 
>;also appears to me that they would thereby sell more hardware.
>;
>;3. Perhaps the manufacturer perceives that cooperation with 
>;us would impair the relationships with the other companies 
>;which write the software drivers for the hardware. If so, I 
>;do not completely understand this, either. Our software is 
>;not intended to run on Microsoft Windows, the dominant 
>;operating system. Rather, it is intended to work on operating 
>;systems for which the hardware ma

[sane-devel] Please give me some help to solve the license issues in using sane

2008-06-06 Thread Alessandro Zummo
On Fri, 6 Jun 2008 16:36:39 +0200
Alessandro Zummo  wrote:

> On Fri, 6 Jun 2008 10:26:04 -0400
> "m. allan noah"  wrote:
> 
> > 
> > no, the GPL is all about derivative works and combining code, it makes
> > no difference the direction:
> 
>  You are probably right, the closest entry in the faq that describes this 
> situation
>  seems to be http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins


 but also relevant are:

 http://www.gnu.org/licenses/gpl-faq.html#FSWithNFLibs
 http://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs

 so if I am the author of the GPLed software it seems that I'm able
 to give an exception and link against a non GPL lib.


If you want your program to link against a library not covered by the system
library exception, you need to provide permission to do that. 
 

-- 

 Best regards,

 Alessandro Zummo,
  Tower Technologies - Torino, Italy

  http://www.towertech.it




[sane-devel] Please give me some help to solve the license issues in using sane

2008-06-06 Thread Alessandro Zummo
On Fri, 6 Jun 2008 10:26:04 -0400
"m. allan noah"  wrote:

> 
> no, the GPL is all about derivative works and combining code, it makes
> no difference the direction:

 You are probably right, the closest entry in the faq that describes this 
situation
 seems to be http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins


It depends on how the program invokes its plug-ins. If the program uses 
fork and exec to invoke plug-ins, then the plug-ins are separate programs, so 
the license for the main program makes no requirements for them.

If the program dynamically links plug-ins, and they make function calls to 
each other and share data structures, we believe they form a single program, 
which must be treated as an extension of both the main program and the 
plug-ins. This means the plug-ins must be released under the GPL or a 
GPL-compatible free software license, and that the terms of the GPL must be 
followed when those plug-ins are distributed.

If the program dynamically links plug-ins, but the communication between 
them is limited to invoking the `main' function of the plug-in with some 
options and waiting for it to return, that is a borderline case. 


 So, for example, if a GPL backend uses a closed source "plugin"
 to decode the received data, that would be a borderline case.

-- 

 Best regards,

 Alessandro Zummo,
  Tower Technologies - Torino, Italy

  http://www.towertech.it




[sane-devel] Please give me some help to solve the license issues in using sane

2008-06-06 Thread Alessandro Zummo
On Fri, 6 Jun 2008 09:54:13 -0400
"m. allan noah"  
> gpl faq is pretty clear on this one:
> 
> If the modules are included in the same executable file, they are
> definitely combined in one program. If modules are designed to run
> linked together in a shared address space, that almost surely means
> combining them into one program.

 Ok, but where it is saying that a GPL app cannot use a non GPL
 library?

 I think the faq has been written from the point of view
 of someone who tries to use a GPL library in a closed
 source program.

 Here we have a GPL app that may be using a closed source
 library. Unless the license of the library forbids that,
 it should be fine, right?


-- 

 Best regards,

 Alessandro Zummo,
  Tower Technologies - Torino, Italy

  http://www.towertech.it




[sane-devel] Please give me some help to solve the license issues in using sane

2008-06-06 Thread Alessandro Zummo
On Fri, 06 Jun 2008 09:24:25 +0900
Olaf Meeuwissen  wrote:
> 
> If GPL'd code uses a non-compatible library via dlopen that's just as
> much a violation as linking to it directly.  The code runs in the same
> process space.  That makes the combined work a derivative, so, all the
> terms of the GPL need to be met.

 I'm not a lawyer, but I'm not sure of this. I always thought
 that using dynamic linking would allow for a proper separation
 of GPL/non-GPL code.

 That means that a GPL caller and a non-GPL library should be
 ok, while the inverse it's not.


 right?

-- 

 Best regards,

 Alessandro Zummo,
  Tower Technologies - Torino, Italy

  http://www.towertech.it




[sane-devel] Please give me some help to solve the license issues in using sane

2008-06-06 Thread Johannes Meixner

Hello,

On 5 Jun Wang Mengqiang wrote (shortened):
> we plan to use several special modules  which do not contain
> any open source code from sane or other party, because they
> contain some tecnology that we do not want to open.
> So, that is, our backend is composed of two parts,
> one part is open source code which we refer to the source
> code from sane, and another part is one that should not be open.
> Of course, the first part(open source part) will call the
> functions in the second part(closed source part).
> After compiling and linking them together, we get the backend.

On Jun 5 Daniel Gl?ckner wrote (shortened):
> ... usually a scanner driver just needs to write some
> registers and accept the incoming image data.
...
> If you want to implement image processing algorithms
> (dust removal, ICC profiles, descreening), don't.
> This should be done in frontends.

On Jun 5 Theodore Kilgore wrote (shortened):
> ... the only things we would be interested in are the basics
> of the interaction with the hardware, any data compression
> algorithms used for imaging data

On Jun 5 Allan Noah wrote (shortened):
> SANE is GPL, with an added exception to allow proprietary
> front-end programs to link against it.
...
> Sane is not here to provide sanei for proprietary
> backends to steal.

On Jun 6 Olaf Meeuwissen wrote (shortened):
> If GPL'd code uses a non-compatible library via dlopen that's just as
> much a violation as linking to it directly.  The code runs in the same
> process space.  That makes the combined work a derivative, so, all the
> terms of the GPL need to be met.
...
> A good rule of thumb is to look at what happens at run-time.  If GPL
> incompatible binary stuff and binary bits built from GPL'd source code
> are used by a _single_ process (as jugded by PID), then that's a big
> fat violation.  However, if both parts run as separate processes (so
> they have different PIDs) and communicate via a socket or some other
> IPC mechanism, using a trivial or open, well-documented protocol, then
> that is not a violation.


Unfortunately Wang Mengqiang didn't tell what kind of
functionality it is which they do not want to open.
Is it basic scanner I/O functionality, or is it data
compression algorithms, or image processing algorithms?

Nevertheless I like to try a proposal how it might be done.

When the backend uses SANE I/O functionality (sanei),
it must be under GPL.

Because the license issue is at least not very clear,
the backend cannot link with proprietary stuff.

But the backend could fork a separated process which runs
whatever proprietary executable and communicate with it
via whatever IPC mechanism e.g. a socket or even via
traditional pipes, see for example the IJS interface
http://hplip.sourceforge.net/tech_docs/hpijs.html

Therefore only the part which does the basic I/O must be
under GPL but e.g. data compression algorithms could run
as proprietary executable in a separated process.

A different case are image processing algorithms which
should run in the frontend. Because of the exception in SANE
this can be done in a proprietary frontend executable.


Therefore it might be done as follows:

When a free frontend is used:
--
/usr/bin/scanimage (SANE frontend): GPL
   |
   | link via dlopen
   |
/usr/lib/libsane.so (SANE dll meta-backend): GPL
   |
   | link via dlopen
   |
/usr/lib/sane/libsane-backend.so (basic I/O backend): GPL
   |
   | whatever IPC mechanism
   |
/usr/bin/canoncompress (data compression): proprietary executable
--

When a proprietary frontend is used:
--
/usr/bin/canonscan (frontend with image processing): proprietary
   |
   | link via dlopen
   |
/usr/lib/libsane.so (SANE dll meta-backend): GPL
   |
   | link via dlopen
   |
/usr/lib/sane/libsane-backend.so (basic I/O backend): GPL
   |
   | whatever IPC mechanism
   |
/usr/bin/canoncompress (data compression): proprietary executable
--

I would appreciate your comments.


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


[sane-devel] Please give me some help to solve the license issues in using sane

2008-06-06 Thread m. allan noah
On 6/6/08, Alessandro Zummo  wrote:
> On Fri, 6 Jun 2008 11:10:52 -0400
>
> "m. allan noah"  wrote:
>
>
> > yes- this seems reasonable, however, this 'program' cannot be derived
>  > from existing GPL'd software that does not already have this added
>  > permission, because that would change the original program's license
>  > without permission of the authors.
>
>
>  correct.
>
>
>  > so, is our answer to Mengqiang that there are only four choices?
>  >
>  > 1. you can write an entirely free backend, and use code from SANE.
>
>
>  yay! :)
>
>
>
>  > 2. you can write a partly free backend, that runs the closed parts as
>  > a separate process, and use code from SANE in the free part, provided
>  > that the interface to the closed parts is simple and well documented.
>
>
>  this is the hp way if i've got it corretly. I find it a bit ugly.
>
>
>
>  > 3. you can write a partly free backend, that dynamically links to the
>  > closed parts, provided that you place a license exception in the free
>  > part allowing said linking. you cannot use any code from SANE, other
>  > than sane.h and the sane specification, in either part.
>
>
>  this means that the sane I/O facilities cannot be used. however
>   it may be the cleanest thing.
>
>   that's similar to the epkowa way, which uses sane io facilities
>   iirc?

well, if epkowa dynamically links and uses sanei, then it is not using
#3- it might be violating the license? Olaf- can you describe the
mechanism?

allan
-- 
"The truth is an offense, but not a sin"



[sane-devel] Please give me some help to solve the license issues in using sane

2008-06-06 Thread m. allan noah
On 6/6/08, Alessandro Zummo  wrote:
> On Fri, 6 Jun 2008 16:36:39 +0200
>
> Alessandro Zummo  wrote:
>
>
> > On Fri, 6 Jun 2008 10:26:04 -0400
>  > "m. allan noah"  wrote:
>  >
>  > >
>  > > no, the GPL is all about derivative works and combining code, it makes
>  > > no difference the direction:
>  >
>  >  You are probably right, the closest entry in the faq that describes this 
> situation
>  >  seems to be http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins
>
>
>
>  but also relevant are:
>
>   http://www.gnu.org/licenses/gpl-faq.html#FSWithNFLibs
>   http://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs
>
>   so if I am the author of the GPLed software it seems that I'm able
>   to give an exception and link against a non GPL lib.
>
>  
>  If you want your program to link against a library not covered by the system
>  library exception, you need to provide permission to do that.
>  
>

yes- this seems reasonable, however, this 'program' cannot be derived
from existing GPL'd software that does not already have this added
permission, because that would change the original program's license
without permission of the authors.

so, is our answer to Mengqiang that there are only four choices?

1. you can write an entirely free backend, and use code from SANE.

2. you can write a partly free backend, that runs the closed parts as
a separate process, and use code from SANE in the free part, provided
that the interface to the closed parts is simple and well documented.

3. you can write a partly free backend, that dynamically links to the
closed parts, provided that you place a license exception in the free
part allowing said linking. you cannot use any code from SANE, other
than sane.h and the sane specification, in either part.

4. you can write an entirely closed backend. you cannot use any code
from SANE, other than sane.h and the sane specification.

Note that Mengqiang's original suggestion of having a combined library
(or even collection of libs) that has some SANE code in it is
specifically not allowed?

allan
-- 
"The truth is an offense, but not a sin"



[sane-devel] Please give me some help to solve the license issues in using sane

2008-06-06 Thread Johannes Meixner

Hello,

On Jun 5 11:30 m. allan noah wrote (shortened):
> Sane is not here to provide sanei for proprietary backends to steal.

Many thanks!
Now it is clear for me!

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



[sane-devel] Please give me some help to solve the license issues in using sane

2008-06-06 Thread m. allan noah
On 6/6/08, Alessandro Zummo  wrote:
> On Fri, 6 Jun 2008 09:54:13 -0400
>  "m. allan noah" 
> >
>  > gpl faq is pretty clear on this one:
>  >
>  > If the modules are included in the same executable file, they are
>  > definitely combined in one program. If modules are designed to run
>  > linked together in a shared address space, that almost surely means
>  > combining them into one program.
>
>
>  Ok, but where it is saying that a GPL app cannot use a non GPL
>   library?
>
>   I think the faq has been written from the point of view
>   of someone who tries to use a GPL library in a closed
>   source program.
>
>
>   Here we have a GPL app that may be using a closed source
>   library. Unless the license of the library forbids that,
>   it should be fine, right?

no, the GPL is all about derivative works and combining code, it makes
no difference the direction:

However, in many cases you can distribute the GPL-covered software
alongside your proprietary system. To do this validly, you must make
sure that the free and non-free programs communicate at arms length,
that they are not combined in a way that would make them effectively a
single program.

The difference between this and "incorporating" the GPL-covered
software is partly a matter of substance and partly form. The
substantive part is this: if the two programs are combined so that
they become effectively two parts of one program, then you can't treat
them as two separate programs. So the GPL has to cover the whole
thing.

source:

http://www.gnu.org/licenses/gpl-faq.html#GPLInProprietarySystem

also:



No. The X11 license is compatible with the GPL, so you can add a
module to the GPL-covered program and put it under the X11 license.
But if you were to incorporate them both in a larger program, that
whole would include the GPL-covered part, so it would have to be
licensed as a whole under the GNU GPL.

The fact that proprietary module A communicates with GPL-covered
module C only through X11-licensed module B is legally irrelevant;
what matters is the fact that module C is included in the whole.

source:

http://www.gnu.org/licenses/gpl-faq.html#GPLWrapper

You'll notice that both of these quotes hinge on the definition of
'incorporation', which the GPL seems to define primarily as running
under the same PID, with no matter which part (the program or the
library) is the GPL part.

allan
-- 
"The truth is an offense, but not a sin"



[sane-devel] Please give me some help to solve the license issues in using sane

2008-06-06 Thread m. allan noah
On 6/6/08, Alessandro Zummo  wrote:
> On Fri, 06 Jun 2008 09:24:25 +0900
>
> Olaf Meeuwissen  wrote:
>  >
>
> > If GPL'd code uses a non-compatible library via dlopen that's just as
>  > much a violation as linking to it directly.  The code runs in the same
>  > process space.  That makes the combined work a derivative, so, all the
>  > terms of the GPL need to be met.
>
>
>  I'm not a lawyer, but I'm not sure of this. I always thought
>   that using dynamic linking would allow for a proper separation
>   of GPL/non-GPL code.
>
>   That means that a GPL caller and a non-GPL library should be
>   ok, while the inverse it's not.

gpl faq is pretty clear on this one:

If the modules are included in the same executable file, they are
definitely combined in one program. If modules are designed to run
linked together in a shared address space, that almost surely means
combining them into one program.

By contrast, pipes, sockets and command-line arguments are
communication mechanisms normally used between two separate programs.
So when they are used for communication, the modules normally are
separate programs. But if the semantics of the communication are
intimate enough, exchanging complex internal data structures, that too
could be a basis to consider the two parts as combined into a larger
program.

source: http://www.gnu.org/licenses/gpl-faq.html#MereAggregation

allan
-- 
"The truth is an offense, but not a sin"



[sane-devel] Please give me some help to solve the license issues in using sane

2008-06-06 Thread kilg...@banach.math.auburn.edu


On Fri, 6 Jun 2008, Wang Mengqiang wrote:

> Theodore Kilgore,
>
> Thank you for your ardent reply.
>
> I feel your earnest expectation to improve the communication with hardware 
> manufacture. But, very sorry, I am afraid I have no ability to take this 
> responsibility.
>
> Thank you sharing the possible reasons on the block of  communication. 
> Whatever, please don't consume too much time to annoy yourself. The 
> communication and cooperation must base on the common interest ,or benefit 
> especially for commerce. So, I think, the major factor is whether the 
> hardware manufacturer's has the relative strategy and whether manufaturer 
> will obtain, but not lost  the benefit. You know, company has to keep careful 
> to business secret against competitor, and risk of patent or license. IMHO, a 
> developer can be proud that he is able to learn more knowledge by interrup, 
> inverse programming,  but  as a company it has to consider whether it is 
> proper or legal.
>
> In fact, I understand and respect the spirit of open and free in open source 
> world. I feel it will be very important and meaningful if open source and 
> commerce(non open source) software can benefit each other in the cooperation. 
> Maybe, it need understanding and some concede from both sides. it is 
> necessary to avoid either absolute commerce or absolute free. That will 
> benefit the end user finally.
>
> your politeness and enthusiasm impressed me deeply.  very glad to exchange 
> personal opinion.
> Wang mengqiang


Thank you very much for the reply. I am aware that there are issues and 
problems, and I totally agree that there needs to be dialog. The 
difficulty is, as I see it, there has been no dialog. Communication needs 
to take place in both directions and it does not. These are the facts as I 
have experienced them. I mean, if a company would at least reply and say 
that "We cannot release any information about X, because of the following 
issues" then that would be a reply, would it not? And then perhaps there 
would be something to talk about. But in my experience there is not even a 
reply. We all have our sensitivities. I mentioned politeness. If one sends 
to someone a request for information, which seems not unreasonable to the 
sender, and the request is not even dignified with a response, then that 
does not seem very polite, either. I mention this while we are on the 
topic of possible cultural differences and sources of misunderstanding.

Now, as to the topic at hand, between your company and the SANE project, I 
am something of a bystander. I subscribe to this list because of general 
interest and because, years ago, I was given for Christmas a Canon N640U 
scanner which needed to be supported and Canon was either unwilling or 
unable to provide that support. However, as something of a bystander, I 
will make two observations:

1. I notice that several responses to you are asking that, just what part 
of the scanner's functioning is supposed to be a proprietary module and 
what part is intended to be supported code coming from SANE. That seems to 
me a reasonable request, and probably without an answer it is not possible 
to proceed.

2. Not all projects have precisely the same license. For example, some 
other large projects use the LGPL license, which can more easily permit 
linking of a proprietary executable program than the GPL can do. Thus, 
depending on the questions you ask and depending on what the answer to a 
question analogous to item 1 is, you might get a different response to a 
similar question from some other project using LGPL. I do not want you or 
anyone else who reads this to assume that I am recommending one of these 
licenses over the other in the context of this discussion, or for that 
matter outside of it. I merely mention that the terms and conditions of 
the two licenses are not identical.

Permit me to make a comparison in order to illustrate what you are dealing 
with, here. I do not know how it fits the history of some societies of 
eastern Asia, but in Europe and the Middle East there is a long history of 
craft guilds. You are not negotiating with individuals. You are 
negotiating with the guild. The guild has its collective interests. That 
is why it exists and continues to exist. The guild has its own property. 
That property is in the open, but it is licenced in such a way that it 
cannot easily be misappropriated. The guild will guard its property with 
at least equal zealousness to the companies which will not answer letters 
from the guild members. This is an apparently new phenomenon in the 
computer and software industry. Most of the big companies did not expect 
it. But it is here.

Theodore Kilgore



[sane-devel] Please give me some help to solve the license issues in using sane

2008-06-06 Thread Olaf Meeuwissen
"m. allan noah"  writes:

> On Thu, Jun 5, 2008 at 3:49 AM, Johannes Meixner  wrote:
>>
>> Hello,
>>
>> On Jun 4 21:02 m. allan noah wrote (shortened):
>>>
>>> SANE is GPL, with an added exception to allow proprietary front-end
>>> programs to link against it. What you are suggesting is the opposite-
>>> you wish to have a free 'middleware' layer, which loads closed
>>> backends to do that actual work? I think this is in violation of the
>>> spirit of the license exception, though perhaps not the letter. Please
>>> read the file LICENSE in the sane-backends source, it attempts to
>>> clarify the situation, by specifically referring to the 'licensing
>>> status of the _program_ that uses the libraries', not the status of a
>>> library.
>>
>> The issue was also mentioned in the "SANE2, what do we want ?"
>> mail thread, see for example
>> http://lists.alioth.debian.org/pipermail/sane-devel/2008-April/021642.html
>>
>> Could you explain what the reason behind is that proprietary
>> frontends are allowed but no proprietary plugins/modules
>> for free backends?
>>
>
> Please note that I was not around when the SANE license exception was
> added, but i have tried to research the spirit of the decision. I
> think the idea was that proprietary frontends were considered a
> value-add by some (and a necessary evil by others), but proprietary
> backends specifically remove the freedom of the user. It is
> unfortunate that the wording of the exception does not make this more
> clear.

Actually, the same value-add logic applies to backends and the same
removal of freedom argument holds for the frontends.  However, in the
case of frontends, we already have unencumbered alternatives.  With
backends this is (somewhat?) less likely to be the case.  Maybe that
explains the attempt at exerting more pressure on backend writers?

>> I have another question:
>>
>> Assume because of whatever reason a scanner manufacturer
>> cannot make a free backend (e.g. because of third-party
>> license stuff, or just because the upper management at the
>> manufacturer is full of fear that another manufacturer might
>> "steal" their one-and-only-best-way-to-drive-a-scanner)
>> but nevertheless wants to provide a SANE compatible driver.
>>
>> How could he do it?
>
> Simple- he must recreate any parts of sane that are not in the public
> domain, which he wishes to use in his backend. Sane is not here to
> provide sanei for proprietary backends to steal.
>
>> Would it be in compliance with the SANE license to do it
>> like HP does it for their proprietary ZJStream printers
>> (because of a third-party JBIG license issue):
>
> Not in my opinion, since this requires more than an installer, there
> must be some free code somewhere that does a dlopen on some
> proprietary code, which could be interpreted to violate the GPL.

If GPL'd code uses a non-compatible library via dlopen that's just as
much a violation as linking to it directly.  The code runs in the same
process space.  That makes the combined work a derivative, so, all the
terms of the GPL need to be met.

# If the GPL'd code is really GPL with an exception that allows this
# particular scenario, then that is not a violation.

> 
>
>>
>> As far as I know the GPL does not forbid that an end-user
>> installs and runs whatever proprietary stuff on his machine.
>
> no, but it seems to forbid that _code_ under the GPL load proprietary
> code in order to function.

The GPL does not explicitly forbid this.  It merely requires that any
such proprietary code meets the conditions spelt out in the GPL ;-)
-- 
Olaf Meeuwissen   FLOSS Engineer -- AVASYS Corporation
FSF Associate Member #1962   sign up at http://member.fsf.org/



[sane-devel] Please give me some help to solve the license issues in using sane

2008-06-06 Thread Olaf Meeuwissen
Johannes Meixner  writes:

> I have another question:
>
> Assume because of whatever reason a scanner manufacturer
> cannot make a free backend (e.g. because of third-party
> license stuff, or just because the upper management at the
> manufacturer is full of fear that another manufacturer might
> "steal" their one-and-only-best-way-to-drive-a-scanner)
> but nevertheless wants to provide a SANE compatible driver.
>
> How could he do it?

The hard way: reinvent the wheel for everything that is only available
under licensing conditions that are not compatible with the ones that
manufacturer wants to use.

Same manufacturer should get legal council, read and understand the
GPL and become intimitaly familiar with the GPL FAQ[1], especially all
the information in the section "Combining work with code released
under the GNU licenses", if it wants to re-use any GPL'd source code
(with or without exceptions) either directly or via linking or
dynamically loading libraries.

[1] http://www.gnu.org/licenses/gpl-faq.html

> [snip HP example case]
>
> In case of HPLIP any proprietary stuff happens only between
> the end-user and HP.

That is not the issue.  GPL related issues are typically tied to
programs, not to the steps used to find and install the various
pieces needed to use them.

> Therefore - at least from my point of view - the proprietary
> stuff form HP is ideal because there is nothing a distributor
> or re-distributor has to care about.

Convenient in case there are redistribution restrictions on the HP
stuff, but it still doesn't absolve HP from taking care of any GPL
related runtime issues.

> As far as I know the GPL does not forbid that an end-user
> installs and runs whatever proprietary stuff on his machine.

True if and only if the proprietary stuff does not re-use GPL'd bits.

> Therefore I think that it is in compliance with the GPL
> to have a GPL installation tool which installs proprietary
> stuff.

True if and only if the proprietary stuff does not re-use GPL'd bits.

> As far as I know the GPL cares only about the licensing
> of source code and therefore it is very important to
> be aware of the strict distinction between source code
> and whatever binary stuff.

Licenses are attached to the source code.  However, licensing terms
can have a lot to say about how you are allowed to use that source
code .  That includes privileges and restrictions about how you may
use and may not use the resulting binary stuff.

> For example - as far as I know - it is a GPL license violation
> to have whatever binary stuff in a GPL source code package.

Not true.  First of all, it utterly depends on the licensing condition
of the binary stuff.  Even if these are not compatible with the GPL,
it is still no problem to combine GPL'd source code and incompatibly
licensed binary stuff in a single package or distribution unit.

The picture changes a bit when we start looking at the results of the
build process.  If the program resulting from GPL'd code uses or is
used by the incompatibly licensed binary stuff, then that is _almost_
always a problem.

A good rule of thumb is to look at what happens at run-time.  If GPL
incompatible binary stuff and binary bits built from GPL'd source code
are used by a _single_ process (as jugded by PID), then that's a big
fat violation.  However, if both parts run as separate processes (so
they have different PIDs) and communicate via a socket or some other
IPC mechanism, using a trivial or open, well-documented protocol, then
that is not a violation.

> As far as I know any tiny bit of whatever proprietary stuff
> (regardless if it is binary stuff or proprietary source code)
> in a source code package makes the whole source code package
> a proprietary package.

As explained above, that's not true.  Of course, packaging your stuff
that way is probably not a great idea.  It makes it cumbersome for
redistributors to figure out whether or not your packages, be they
source or otherwise, are legally distributable.  If anything, packages
benefit from sticking to a single, well-known license.  Unfortunately,
it is almost never possible to do so and the result may be a license
violation, GPL or otherwise, if the _combined_ licensing terms are in
one way or another incompatible.

# It's really just an exercise in establishing the simultaneous
# satisfiability of the total set of licensing terms but the way them
# lawyer folks write down those terms makes it far from a trivial
# exercise.

> But I am neither a lawyer nor a GPL expert!

Same story here, but hands-on experience with a GPL violation has
taught me a thing or two (and made me sign up as an FSF Associate
Member ;-).

> You may like to have a look e.g. at
> http://lists.alioth.debian.org/pipermail/sane-devel/2008-April/021822.html
> and
> http://lists.alioth.debian.org/pipermail/sane-devel/2008-April/021911.html

Hope this helps,
-- 
Olaf Meeuwissen   FLOSS Engineer -- AVASYS Corporation
FSF Associate Member #1962 

[sane-devel] Branch for sane-frontends

2008-06-06 Thread stef
Le Thursday 05 June 2008 14:00:22 m. allan noah, vous avez ?crit?:
> On 6/4/08, stef  wrote:
> > Hello,
> >
> > to maintain the curent 1.0.x version of sane-backends I propose
> > to tag current sources with:
> >  DEVEL_1_0_TRUNK
>
> i just made this tag.
>
> > Then make a branch:
> >  DEVEL_1_0_BRANCH
>
> i did not make the branch, we can make it later from the tag if we
> want to do another 1.0 release.
>
> allan
> --
> "The truth is an offense, but not a sin"

Thanks allan.

I have committed the changes for sane-frontends to work with SANE 1.1. 
However the newer image formats are not yet handled since I have no real 
hardware or virtual device to test them with.

Regards,
Stef