JuliaOpt / CoinOptServices.jl

Julia interface to COIN-OR Optimization Services https://projects.coin-or.org/OS
Other
16 stars 4 forks source link

Figure out the right way to package CppAD on opensuse build service #3

Open tkelman opened 9 years ago

tkelman commented 9 years ago

Remembered why I haven't submitted the rest of the WinRPM packages to the official repo yet. I can probably do Bonmin and Couenne as they are right now, but CppAD still needs some packaging work so OS will also have to wait on that.

Current spec files are at https://build.opensuse.org/package/show/home:kelman:mingw-coinor/mingw64-cppad and https://build.opensuse.org/package/show/home:kelman:mingw-coinor/mingw32-cppad and I'm still not happy with them. CppAD allows using either configure or cmake, but the developer of CppAD would prefer to only support cmake going forward. OS looks at pkg-config to find and set include paths for CppAD, but the pkg-config template files are difficult to patch in a way that works for both cmake and configure at the same time.

There are also two sets (actually 4 since it's dual-licensed EPL or GPL) of source downloads available for CppAD at http://www.coin-or.org/download/source/CppAD/?C=M;O=D - I believe the ones named like cppad-20150516.epl.tgz are periodically generated from master on github, whereas the ones named like cppad-20150000.9.epl.tgz are generated from the COIN-OR svn infrastructure whenever a release of OS gets created. Last I checked, I think the two different source downloads differ in terms of the pkg-config-related patches they need to work here.

The irony of this is that CppAD is header-only. If there were an existing Linux CppAD package in mainline openSUSE, I probably could just use it. There isn't though, and I'm not willing to maintain that just yet since the packaging requirements are stricter for true Linux packages than for the cross-compiled MinGW-w64 libraries.