Closed ryanjoneil closed 5 years ago
I'm not sure what the best way to handle this will be, since SCIP has a strange licensing system. I'm not sure we can pull the code from offline and build it for them like we do for some of the solver packages (e.g. Cbc). Maybe we can ask the user to download the zipped source code, agree to their license, and point us to the zip file, and then we can unpack it, build it, and make sure the shared library is in the right place, all under the hood.
I think that sounds reasonable. @fserra, do you have any comments?
The SCIP folks provide pre-built libraries, so perhaps we could give the option of using that or building from source. I've been running against both Linux and Windows using these.
Hi
Yes, asking the user to download SCIP is a way to go. The other option is to ship the interface with SCIP, like the other interfaces. However to do this, you need to give some rights to ZIB. If you prefer the last option we can talk to the right ZIB people later.
On Wed, Aug 27, 2014 at 5:42 PM, ryanjoneil notifications@github.com wrote:
I think that sounds reasonable. @fserra https://github.com/fserra, do you have any comments?
The SCIP folks provide pre-built libraries, so perhaps we could give the option of using that or building from source. I've been running against both Linux and Windows using these.
— Reply to this email directly or view it on GitHub https://github.com/ryanjoneil/SCIP.jl/issues/9#issuecomment-53592321.
I think the latter is preferable in terms of gaining user adoption. I'm personally fine with giving some rights to ZIB, as SCIP.jl won't be particularly useful with SCIP. But I don't know if that is acceptable to the JuliaOpt group.
If they allow that sort thing, I vote for option 2.
It certainly would be more convenience to ship with SCIP. I'm not opposed to it, I'd say it just depends on what exactly is meant by "giving some rights to ZIB". If it's reasonable enough, that's probably the way to go.
@mlubin is our resident license guru/nag, he'll probably have more insightful things to say about this.
What does shipping with SCIP mean in terms of actually installing the package? So SCIP.jl won't be in METADATA?
.SCIP.jl should absolutely be in METADATA. I think what we're asking about is the acceptability of including libscipopt.so or .dll files in the SCIP.jl distribution.
I think @fserra was referring to distributing this interface in the SCIP tarball, not the other way around.
yep, but since it should be in METADATA then it should probably be the first option. It doesn't make sense if not
On Wed, Aug 27, 2014 at 6:16 PM, Miles Lubin notifications@github.com wrote:
I think @fserra https://github.com/fserra was referring to distributing this interface in the SCIP tarball, not the other way around.
— Reply to this email directly or view it on GitHub https://github.com/ryanjoneil/SCIP.jl/issues/9#issuecomment-53598878.
I think the most reasonable solution is to provide a build script and ask the user to provide the tarball. There's nothing else we can do unless ZIB gives us permission to distribute binaries.
OK, sounds good. We'll just try to make it as easy as possible. I don't want people to balk at the installation if we can avoid it.
Hopefully someday SCIP will be released under a real open source license.
We already have to do this for Gurobi and CPLEX (and Mosek? I can't recall)
So I asked around, and it might be possible to get permission from ZIB, but it seems that in that case users who download SCIP.jl or the code that distributes it should agree to the ZIB academic licence. Anyway they are going to double check this.
There is one example of a MATLAB toolbox that contains SCIP... so maybe.
I can let you know when I know more about this
On Wed, Aug 27, 2014 at 6:27 PM, ryanjoneil notifications@github.com wrote:
OK, sounds good. We'll just try to make it as easy as possible. I don't want people to balk at the installation if we can avoid it.
— Reply to this email directly or view it on GitHub https://github.com/ryanjoneil/SCIP.jl/issues/9#issuecomment-53600570.
@fserra, cool, thanks for looking into this.
Right now the code refers to "libscipopt" when it uses ccall. It assumes that the user will have a libscipopt.so or libscipopt.dll in the library path.