[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Open-source library proxying to a closed-source library (ITP #679504)



Hi,

I am the author of an open-source library that proxy calls to a
closed-source library.

The library is meant to be used as a drop-in replacement, for
compiling, linking and runtime. The targeted closed-source library is
the one of a Linear Programming solver. The purpose is to provide
entry points for Osi [1], a library that lets you write solver
agnostic code. Osi links to my library, and at runtime, it takes care
of finding, dlopening and forwarding calls to the closed source
library. This way, you don't actually need the solver whenever you
compile Osi, and your build can use the targeted solver whenever it is
found on the system.

For now, what I do: I take the header of the closed-source library,
wipe out the comments and elaborated macros, and then implement all
the declared functions as proxy functions of the exposed API in a .c
file. As a consequence, there is very little actual difference between
my header and the one of the closed-source library.

I have asked about the potential copyright issues about this library
in various places (wine, fsf, debian-mentors). The average answers I
get are:
- "We are not lawyers, but it looks ok - see Oracle vs Google trials"
- "If you have the same header it's derived work, it's not ok".

I also had some clever suggestions, like rewriting the headers from
scratch, starting from the publicly available APIs. Even though I am
willing to do that if that solves copyright problems, I think there
still would be very little difference between my header and the one
from the closed-source library, so I want to be sure about this.

The question I have for you is very simple: What would it take for
debian to accept my package (if it can ever be distributed)?

PS: If you are interested, my project is hosted here [2].

Cheers,
Christophe-Marie

[1]: https://projects.coin-or.org/Osi
[2]: http://code.google.com/p/lazylpsolverlibs/


Reply to: