Topic
2 replies Latest Post - ‏2012-11-26T08:39:27Z by SystemAdmin
SystemAdmin
SystemAdmin
7944 Posts
ACCEPTED ANSWER

Pinned topic I want to contribute a library that defines cplex symbols. How to proceed?

‏2012-11-20T12:20:57Z |
Greetings.

I use cplex with Osi, an opensource Linear Programming layer that is interfacing with various solvers. Osi is packaged on various linux distributions, and I recently volunteered to maintain the debian package. The problem with this package is that it does not support cplex: in order to compile Osi with cplex support, one needs ilocplex/cplex.h and libcplexXXX.so, the cplex header and the library to link to. These files are obviously not available on a default debian distribution.

To solve this problem and package Osi with cplex support, I wrote lazylpsolverlibs. This project contains a "proxy" library that defines the same symbols as the cplex library. Function calls are forwarded to the real cplex library. With this library, I can provide a compiled version of Osi that finds the cplex library at runtime (and does not require it at compile time), making the whole package suitable for being distributed in Debian.

The problem is now in lazylpsolverlibs. To write such a library, I need to define exactly the functions as in ilocplex/cplex.h, which is a copyrighted header from IBM. I cannot use it without IBM's explicit consent. I was suggested to write a script that filters the cplex header, removes comments and only keeps the necessary parts. However, I would feel more comfortable if I explicitly had the authorization to do so.

I want to solve this copyright problem. I believe a simple solution could be for IBM to relicense ilocplex/cplex.h to allow reuse in free software. Another possibility could also be to let me use publicly available documentation to reverse engineer this header by myself. Unfortunately, the terms of use on IBM's website do not let me do that either. Should these terms of use be modified to allow a reuse of the documentation, I believe I would legally be able to rewrite a cplex header from specification.

I really hope you can help me to solve this copyright problem. My intention is to make it easier to use cplex through Osi, which, I believe, would benefit both IBM and Osi.

Cheers,
Christophe-Marie Duquesne
Updated on 2012-11-26T08:39:27Z at 2012-11-26T08:39:27Z by SystemAdmin
  • SystemAdmin
    SystemAdmin
    7944 Posts
    ACCEPTED ANSWER

    Re: I want to contribute a library that defines cplex symbols. How to proceed?

    ‏2012-11-22T16:31:00Z  in response to SystemAdmin
    Hi again,

    Given the absence of answer, I assume that I am not asking this question in the right place. Could you indicate me who I should contact in order to make things right? Something that is not /dev/null@ibm.com?

    Best regards,
    Christophe-Marie
    • SystemAdmin
      SystemAdmin
      7944 Posts
      ACCEPTED ANSWER

      Re: I want to contribute a library that defines cplex symbols. How to proceed?

      ‏2012-11-26T08:39:27Z  in response to SystemAdmin
      Hi Christophe-Marie,

      sorry for the silence. The reason for not answering is not that we do not care, but that we are actively discussing this within the CPLEX group and did not yet come to a conclusion. The issue is that all this legal stuff is outside of the expertise of our technical group and we need to involve different people in the discussion, which makes the whole process more complicated.

      The plan is to contact you privately when we figured out what we can and want to do about the cplex.h licensing and then check with you if this would be enough for your purposes.

      Please send me a quick email to achterberg at de dot ibm dot com, so that I know your email address...
      Thanks,

      Tobias