Hi sane-devel, I'm sure most of you are developers, not lawyers but I'm hoping someone can point me in the right direction. I'm trying to figure out the best way to release a SANE backend that complies with the GPL while protecting the proprietary code it relies on.
My company currently offers a Linux driver library for our scanners. It's released as a binary SO because it contains the fore mentioned proprietary code. It consists of 100% user-land code sitting on top of libusb. This works great for developers who are willing to write an application which calls our API but we are often requested to provide a backend that can be used with existing SANE programs. You may think "Why not just update an existing open source backend to work with your hardware and leave the sources open?" That would avoid the license issue but it's not an option since the required changes would reveal proprietary information about our hardware design. Instead, I have proposed we develop a SANE backend that uses our driver library to control the scanner. It would not contain any proprietary code so we could release the backend portion as source code. Reliance on binary code excludes it from the SANE distribution but that's not a problem. The main issue is the software license. I have read the license, copyright notice and Information for Manufacturers page but our situation is still unclear. Here's the big question: If we release our backend as source, does that expose our driver library to the GPL so its sources would also have to be released? In case it matters, the proposed backend would use runtime dynamic linking for the library. Are we better protected by releasing a closed source backend? From what I've read, we would have to avoid using any SANE code (e.g. sanei_ functions, etc). Is that correct? This backend would not be based on any other backend per se since our library does the real work. That should mean it would not be considered a "derived work". Correct? I looked for existing external backends with binary code to see how other companies handled the licensing issue. The links I checked on the External Backends list were broken or outdated. Can you refer me to an existing backend similar to what I've proposed? Thanks for your help.