<div dir="ltr"><div>I'm not actually sure of the best approach here, but the discussion will likely mirror those that have already taken place vis a vis packing for various Linux distros, Homebrew packages for OS X, etc. In most cases, it seems that the best approach for packing the optimization suite overall has been to package each project separately and put in dependencies using the appropriate dependency mechanism. I'm just getting up to speed on conda, but I would assume that there is a mechanism for specifying dependencies. </div><div><br></div><div>With respect to dependencies, Ipopt itself is an easy case, sine it has no COIN dependencies. Nevertheless, it would be great if we could have conda recipes for all COIN projects developed in a common way. They all use the same build system so building up a set of recipes together would make more sense than building individual recipes in a vacuum. I mentioned Homebrew recipes and this is perhaps a good example to go on. There, we are similarly building up a set of recipes for all COIN projects using a common approach. I assume that we could leverage the Homebrew recipes to make similar conda recipes. Note that there is already one COIN project with a conda recipe (Cbc) here:</div><div><br></div><a href="https://github.com/conda-forge/coincbc-feedstock/tree/ea3c6ec2f9bdd69018b608e298bbc046d50271ac" target="_blank">https://github.com/conda-<wbr>forge/coincbc-feedstock/tree/<wbr>ea3c6ec2f9bdd69018b608e298bbc0<wbr>46d50271ac</a><br><div><br></div><div>I have already been discussing with Bill Hart (cc'd) about adding others. I'd be happy to include you as much or as little as you want in the larger discussion. If you only care about Ipopt, then we can probably work on that together as a first step for me to learn the ropes, sine Ipopt is a natural starting point. </div><div><br></div><div>In any case, I do have experience building Ipopt on many platforms, although I am mostly building redistributable binaries using only open source components. Let's take this conda discussion off-line and see where we go. I'll keep the thread moving with respect to your questions about the OSX build, though. I can probably help there.</div><div><br></div><div>Cheers,</div><div><br></div><div>Ted </div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 19, 2016 at 4:06 PM, St. John, Peter <span dir="ltr"><<a href="mailto:Peter.STJohn@nrel.gov" target="_blank">Peter.STJohn@nrel.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Ted,<br>
<br>
I’m more than happy to collaborate! Thanks for the offer to help. Conda’s build system is a bit particular, but I’m sure between the two of us we could figure it out. I’ve got the linux build/test running, mac builds correctly but fails on the test script (error below). Haven’t started windows, since I’m not very familiar with writing the .bat files conda wants.<br>
<br>
What do you think the best way to join forces would be? It looks like you’re trying to get binaries built for the entire coin-or optimization suite; I’m happy to abandon this PR if you think it would be better if there was a single conda recipe for everything.<br>
<br>
Here’s the error I’m getting for mac. This is separate from ‘make test’, which tests if the build completed successfully. Here’re we’re testing if you can link against the installed conda package. The ipopt binary works, but compiling the simple Cpp example seems to fail on execution:<br>
<br>
g++ -I/Users/travis/miniconda/envs<wbr>/_test/include/coin  -c -o cpp_example.o cpp_example.cpp<br>
<br>
g++ -I/Users/travis/miniconda/envs<wbr>/_test/include/coin  -c -o MyNLP.o MyNLP.cpp<br>
<br>
g++ -L/Users/travis/miniconda/envs<wbr>/_test/lib -lipopt -I/Users/travis/miniconda/envs<wbr>/_test/include/coin -o cpp_example cpp_example.o MyNLP.o<br>
<br>
+./cpp_example<br>
<br>
+grep -q 'Optimal Solution'<br>
<br>
dyld: Library not loaded: @rpath/libipopt.1.dylib<br>
<br>
  Referenced from: /Users/travis/miniconda/conda-<wbr>bld/test-tmp_dir/Cpp_example/.<wbr>/cpp_example<br>
<br>
  Reason: image not found<br>
<br>
<br>
TESTS FAILED: ipopt-3.12.5-0<br>
<span><br>
--<br>
Peter St. John<br>
Postdoctoral Researcher | Biosciences Center<br>
<br>
National Renewable Energy Laboratory (NREL)<br>
15013 Denver West Parkway | Golden, CO 80401<br>
<a href="tel:303-384-7969" value="+13033847969" target="_blank">303-384-7969</a><br>
<a href="mailto:peter.stjohn@nrel.gov" target="_blank">peter.stjohn@nrel.gov</a> | <a href="http://www.nrel.gov" rel="noreferrer" target="_blank">www.nrel.gov</a><br>
<br>
</span>From: Ted Ralphs <<a href="mailto:ted@lehigh.edu" target="_blank">ted@lehigh.edu</a><mailto:<a href="mailto:ted@lehigh.edu" target="_blank">ted@leh<wbr>igh.edu</a>>><br>
Date: Monday, September 19, 2016 at 6:57 AM<br>
<span>To: "Peter St. John" <<a href="mailto:peter.stjohn@nrel.gov" target="_blank">peter.stjohn@nrel.gov</a><mailto:<a href="mailto:peter.stjohn@nrel.gov" target="_blank"><wbr>peter.stjohn@nrel.gov</a>>><br>
</span>Cc: "Anthony D. Kelman" <<a href="mailto:kelman@berkeley.edu" target="_blank">kelman@berkeley.edu</a><mailto:<a href="mailto:kelman@berkeley.edu" target="_blank">ke<wbr>lman@berkeley.edu</a>>>, ipopt <<a href="mailto:ipopt@list.coin-or.org" target="_blank">ipopt@list.coin-or.org</a><mailto<wbr>:<a href="mailto:ipopt@list.coin-or.org" target="_blank">ipopt@list.coin-or.org</a>>><br>
<span>Subject: Re: [Ipopt] conda-forge recipe<br>
<br>
</span><span>Hi Peter,<br>
<br>
I build Ipopt on all three OS's regularly and maintain the .travis.yml and appveyor.yml files that you'll see in the repo. These power the automated build and test that I'm doing. I have automated deployment of binaries working for some other projects and have been thinking about deploying this for Ipopt. Seems we have similar goals so it might make sense to collaborate. If nothing else, I'm happy to share lessons learned in getting this set up.<br>
<br>
Cheers,<br>
<br>
Ted<br>
<br>
</span><span>On Sun, Sep 18, 2016 at 3:42 PM, St. John, Peter <<a href="mailto:Peter.STJohn@nrel.gov" target="_blank">Peter.STJohn@nrel.gov</a><mailto:<a href="mailto:Peter.STJohn@nrel.gov" target="_blank"><wbr>Peter.STJohn@nrel.gov</a>>> wrote:<br>
Awesome thanks for the help!, it looked like the problem was in passing the environment variables, and ld complained about `-no-as-needed`. I pushed some changes that seem to work when I build it locally, we'll see how we do on the CI.<br>
<br>
--<br>
Peter St. John<br>
Postdoctoral Researcher | Biosciences Center<br>
<br>
National Renewable Energy Laboratory (NREL)<br>
15013 Denver West Parkway | Golden, CO 80401<br>
</span><a href="tel:303-384-7969" value="+13033847969" target="_blank">303-384-7969</a><tel:<a href="tel:303-384-7969" value="+13033847969" target="_blank">303-384-7969</a>><br>
<a href="mailto:peter.stjohn@nrel.gov" target="_blank">peter.stjohn@nrel.gov</a><mailto:<a href="mailto:peter.stjohn@nrel.gov" target="_blank">p<wbr>eter.stjohn@nrel.gov</a>> | <a href="http://www.nrel.gov" rel="noreferrer" target="_blank">www.nrel.gov</a><<a href="http://www.nrel.gov" rel="noreferrer" target="_blank">http://www.nrel.g<wbr>ov</a>><br>
<br>
From: "Anthony D. Kelman" <<a href="mailto:kelman@berkeley.edu" target="_blank">kelman@berkeley.edu</a><mailto:<a href="mailto:kelman@berkeley.edu" target="_blank">ke<wbr>lman@berkeley.edu</a>><mailto:<a href="mailto:kelman@berkeley.edu" target="_blank">kelm<wbr>an@berkeley.edu</a><mailto:<a href="mailto:kelman@berkeley.edu" target="_blank">kelman@<wbr>berkeley.edu</a>>>><br>
<span>Date: Sunday, September 18, 2016 at 7:18 AM<br>
</span>To: "Peter St. John" <<a href="mailto:peter.stjohn@nrel.gov" target="_blank">peter.stjohn@nrel.gov</a><mailto:<a href="mailto:peter.stjohn@nrel.gov" target="_blank"><wbr>peter.stjohn@nrel.gov</a>><mailto:<a href="mailto:peter.stjohn@nrel.gov" target="_blank"><wbr>peter.stjohn@nrel.gov</a><mailto:<a href="mailto:peter.stjohn@nrel.gov" target="_blank">p<wbr>eter.stjohn@nrel.gov</a>>>><br>
Cc: ipopt <<a href="mailto:ipopt@list.coin-or.org" target="_blank">ipopt@list.coin-or.org</a><mailto<wbr>:<a href="mailto:ipopt@list.coin-or.org" target="_blank">ipopt@list.coin-or.org</a>><<wbr>mailto:<a href="mailto:ipopt@list.coin-or.org" target="_blank">ipopt@list.coin-or.org</a><<wbr>mailto:<a href="mailto:ipopt@list.coin-or.org" target="_blank">ipopt@list.coin-or.org</a>><wbr>>><br>
<span>Subject: Re: [Ipopt] conda-forge recipe<br>
<br>
<br>
You're going to need to look at the config.log to find the full error.<br>
<br>
</span><span>On Sep 18, 2016 6:11 AM, "St. John, Peter" <<a href="mailto:Peter.STJohn@nrel.gov" target="_blank">Peter.STJohn@nrel.gov</a><mailto:<a href="mailto:Peter.STJohn@nrel.gov" target="_blank"><wbr>Peter.STJohn@nrel.gov</a>><mailto:<a href="mailto:Peter.STJohn@nrel.gov" target="_blank"><wbr>Peter.STJohn@nrel.gov</a><mailto:<a href="mailto:Peter.STJohn@nrel.gov" target="_blank">P<wbr>eter.STJohn@nrel.gov</a>>>> wrote:<br>
I'm trying to get a conda recipe working for IPOPT; for those who aren't familiar, conda is a fairly generic package management system that compiles from source using continuous integration services, and then ships binaries when a user `conda install`'s something. In particular, its really nice for creating isolated environments (similar to python's virtual environments) using an environment.yml file, where you're able to simply list the libraries (and versions) of your dependencies. That way when sharing code with others or setting up on a new computer, you don't have to manually track down binary files or rebuild from source for each library your using.<br>
<br>
I've currently got it compiling against intel's MKL libraries on linux, but its not working on mac or windows. For Mac, I'm seemingly unable to get past the<br>
<br>
checking whether user supplied BLASLIB="-Wl,--no-as-needed -L$PREFIX/lib -Wl,-rpath,$PREFIX/lib -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -liomp5 -lpthread -lm -ldl" works... no<br>
<br>
error during ./configure. (I was able to get it to take an openblas library, but it failed later during the build stage). I've got very little knowledge on building IPOPT on windows, so I'm currently just skipping that.<br>
<br>
<br>
I figured I'd reach out in case anyone might have more experience building IPOPT on various architectures and might be willing to lend advice as to why the builds might be failing. You can see the current recipe here: <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_conda-2Dforge_staged-2Drecipes_pull_1607&d=CwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=en0_ydai4UPM8nLin0WTg5UWlOXuXT_rDA2W227v-no&m=af5bLJkK8YiI_83AdQeZRFDeRN3NWAruVbJCjwRQ5S0&s=GmCTSHKGoAtptWbVsQo5TtWauFhAD-kWTI4B2Y2SmGU&e=" rel="noreferrer" target="_blank">https://urldefense.proofpoint.<wbr>com/v2/url?u=https-3A__github.<wbr>com_conda-2Dforge_staged-2Drec<wbr>ipes_pull_1607&d=CwICAg&c=Ngd-<wbr>ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLx<wbr>WPA_2Wlc4&r=en0_ydai4UPM8nLin0<wbr>WTg5UWlOXuXT_rDA2W227v-no&m=<wbr>af5bLJkK8YiI_83AdQeZRFDeRN3NWA<wbr>ruVbJCjwRQ5S0&s=GmCTSHKGoAtptW<wbr>bVsQo5TtWauFhAD-kWTI4B2Y2SmGU&<wbr>e=</a><br>
<br>
Thanks!<br>
-Peter<br>
<br>
<br>
<br>
--<br>
Peter St. John<br>
Postdoctoral Researcher | Biosciences Center<br>
<br>
National Renewable Energy Laboratory (NREL)<br>
15013 Denver West Parkway | Golden, CO 80401<br>
</span><a href="tel:303-384-7969" value="+13033847969" target="_blank">303-384-7969</a><tel:<a href="tel:303-384-7969" value="+13033847969" target="_blank">303-384-7969</a>><wbr><tel:<a href="tel:303-384-7969" value="+13033847969" target="_blank">303-384-7969</a><tel:<a href="tel:303-384-7969" value="+13033847969" target="_blank">303-384-<wbr>7969</a>>><br>
<a href="mailto:peter.stjohn@nrel.gov" target="_blank">peter.stjohn@nrel.gov</a><mailto:<a href="mailto:peter.stjohn@nrel.gov" target="_blank">p<wbr>eter.stjohn@nrel.gov</a>><mailto:<a href="mailto:peter.stjohn@nrel.gov" target="_blank">p<wbr>eter.stjohn@nrel.gov</a><mailto:<a href="mailto:peter.stjohn@nrel.gov" target="_blank">pe<wbr>ter.stjohn@nrel.gov</a>>> | <a href="http://www.nrel.gov" rel="noreferrer" target="_blank">www.nrel.gov</a><<a href="http://www.nrel.gov" rel="noreferrer" target="_blank">http://www.nrel.g<wbr>ov</a>><<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__www.nrel.gov&d=CwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=rnUB298ByR5BGgo6vv2b6g&m=F-mPbo_HW3CCtNq0GCZFXs1IV-tSfMtzzsmDNYBfhoI&s=bzaBz3XxnUf4nv_Y2hfLlD04X-MwjLrvP5ffQw2XMUw&e=" rel="noreferrer" target="_blank">https://urldefense.proofpo<wbr>int.com/v2/url?u=http-3A__www.<wbr>nrel.gov&d=CwICAg&c=Ngd-ta5yRY<wbr>sqeUsEDgxhcqsYYY1Xs5ogLxWPA_<wbr>2Wlc4&r=rnUB298ByR5BGgo6vv2b6g<wbr>&m=F-mPbo_HW3CCtNq0GCZFXs1IV-t<wbr>SfMtzzsmDNYBfhoI&s=bzaBz3XxnUf<wbr>4nv_Y2hfLlD04X-MwjLrvP5ffQw2XM<wbr>Uw&e=</a> ><br>
<br>
______________________________<wbr>_________________<br>
Ipopt mailing list<br>
<a href="mailto:Ipopt@list.coin-or.org" target="_blank">Ipopt@list.coin-or.org</a><mailto:<a href="mailto:Ipopt@list.coin-or.org" target="_blank"><wbr>Ipopt@list.coin-or.org</a>><mailto<wbr>:<a href="mailto:Ipopt@list.coin-or.org" target="_blank">Ipopt@list.coin-or.org</a><mailto<wbr>:<a href="mailto:Ipopt@list.coin-or.org" target="_blank">Ipopt@list.coin-or.org</a>>><br>
<span><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__list.coin-2Dor.org_mailman_listinfo_ipopt&d=CwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=en0_ydai4UPM8nLin0WTg5UWlOXuXT_rDA2W227v-no&m=af5bLJkK8YiI_83AdQeZRFDeRN3NWAruVbJCjwRQ5S0&s=o4AdF032QO5UCLYUWhL-3hPwqX70eJQpf7G23r-YexA&e=" rel="noreferrer" target="_blank">https://urldefense.proofpoint.<wbr>com/v2/url?u=http-3A__list.coi<wbr>n-2Dor.org_mailman_listinfo_<wbr>ipopt&d=CwICAg&c=Ngd-ta5yRYsqe<wbr>UsEDgxhcqsYYY1Xs5ogLxWPA_<wbr>2Wlc4&r=en0_ydai4UPM8nLin0WTg5<wbr>UWlOXuXT_rDA2W227v-no&m=<wbr>af5bLJkK8YiI_83AdQeZRFDeRN3NWA<wbr>ruVbJCjwRQ5S0&s=<wbr>o4AdF032QO5UCLYUWhL-3hPwqX70eJ<wbr>Qpf7G23r-YexA&e=</a><br>
<br>
______________________________<wbr>_________________<br>
Ipopt mailing list<br>
</span><a href="mailto:Ipopt@list.coin-or.org" target="_blank">Ipopt@list.coin-or.org</a><mailto:<a href="mailto:Ipopt@list.coin-or.org" target="_blank"><wbr>Ipopt@list.coin-or.org</a>><br>
<span><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__list.coin-2Dor.org_mailman_listinfo_ipopt&d=CwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=rnUB298ByR5BGgo6vv2b6g&m=F-mPbo_HW3CCtNq0GCZFXs1IV-tSfMtzzsmDNYBfhoI&s=DcgN0FzLA73z9qxD2pxp-bxj2abjDrKxqewcAo4fU_E&e=" rel="noreferrer" target="_blank">https://urldefense.proofpoint.<wbr>com/v2/url?u=http-3A__list.coi<wbr>n-2Dor.org_mailman_listinfo_<wbr>ipopt&d=CwICAg&c=Ngd-ta5yRYsqe<wbr>UsEDgxhcqsYYY1Xs5ogLxWPA_<wbr>2Wlc4&r=rnUB298ByR5BGgo6vv2b6g<wbr>&m=F-mPbo_HW3CCtNq0GCZFXs1IV-t<wbr>SfMtzzsmDNYBfhoI&s=DcgN0FzLA73<wbr>z9qxD2pxp-bxj2abjDrKxqewcAo4fU<wbr>_E&e=</a><br>
<br>
<br>
<br>
--<br>
Dr. Ted Ralphs<br>
Professor, Lehigh University<br>
<a href="tel:%28610%29%20628-1280" value="+16106281280" target="_blank">(610) 628-1280</a><br>
ted 'at' lehigh 'dot' edu<br>
</span><a href="http://coral.ie.lehigh.edu/~ted" rel="noreferrer" target="_blank">coral.ie.lehigh.edu/~ted</a><<a href="http://coral.ie.lehigh.edu/~ted" rel="noreferrer" target="_blank">http:<wbr>//coral.ie.lehigh.edu/~ted</a>><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div data-smartmail="gmail_signature"><div dir="ltr">Dr. Ted Ralphs<br>Professor, Lehigh University<br><a href="tel:%28610%29%20628-1280" value="+16106281280" target="_blank">(610) 628-1280</a><br>ted 'at' lehigh 'dot' edu<br><a href="http://coral.ie.lehigh.edu/~ted" target="_blank">coral.ie.lehigh.edu/~ted</a><br></div></div>
</div></div>