-
-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update package version to 3.14.17 and switch to upstream autools build system on Windows #125
Update package version to 3.14.17 and switch to upstream autools build system on Windows #125
Conversation
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
…2, conda-smithy 3.45.0, and conda-forge-pinning 2024.12.14.08.05.48
@conda-forge-admin please rerender |
@conda-forge/ipopt the PR is now ready for review, thanks! |
Hi! This is the friendly automated conda-forge-webservice. I tried to rerender for you, but it looks like there was nothing to do. This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/12331121351. Examine the logs at this URL for more detail. |
Actually not, now there is a Windows failure that was not there in #123, not sure if it is due to some change in ipopt :
|
Related issue: conda-forge/autotools_clang_conda-feedstock#15 and conda-forge/autotools_clang_conda-feedstock#16 (comment) . |
It seems that |
The step that fails is:
The similar portion with 3.14.16 that was working is:
So I guess the problem is coin-or/Ipopt@5bb5948 and coin-or/Ipopt@d63fe2c , that updated to a new autotools version (automake 1.7?) that probably added support for the new llvm flang, but it does not support the classic flang 5.0.0 old and patched version that we use in conda-forge, until the flang19 migration progress. As the previous ipopt build without fortran on Windows was passing fine and passing all the tests, I wonder if it just make sense to avoid installing a fortran compiler at all on Windows, at least for now. |
To be honest, I am not even sure if fortran is doing anything on linux as well, as the runtime is not linked:
|
Indeed, this seems the case according to ipopt docs (https://github.com/coin-or/Ipopt/blob/f7d4d416ae65b2a77cab2eb88ac2f45beb1df2f1/doc/main.dox#L200C1-L203C26):
Indeed, it seems that fortran is only used to compile a few examples: https://github.com/coin-or/Ipopt/blob/f7d4d416ae65b2a77cab2eb88ac2f45beb1df2f1/configure.ac#L644-L660 . |
@conda-forge-admin please rerender |
…onda-forge-pinning 2024.12.14.15.32.45
Problem solved, feedback on the PR is welcome! |
Is it possible to dual support the |
Good point! I guess it should work to copy the import lib and everything should work fine, but I need to double check. |
Ok, the modifications seems to work fine, the only doubt I have is that it seems that the import library for some reason is quite big (~1.6 MB):
I would not be a big fan of forever shipping a duplicate import library, perhaps we can ship it in this release and announce that we will remove it in 3.14.18 ? |
Thanks for doing that. Ideally a downstream user would get a warning if they tried linking against ipopt-3.lib and then we remove it in the next release. But if there is no way to warn a person like that (other than making an issue here for people to find when linking breaks), then I guess it is no different than removing ipop-3.lib now. With that thought, I'm fine either way. Sorry for the churn. |
Actually I think that it make sense that we give a bit more of preparation time for downstream users, so for example in mechmotum/cyipopt#281 you have some time to address the problem while users can continue to build |
I modified the warning message in this PR. I also provided a pinned issue that contains the same message to maximize its visibility. |
Done in #128 . I think it would be difficult to do more. |
Thank you. All good from me. |
Thanks @moorepants ! |
@traversaro comment:
This PR finally drops the vendored and custom mantained CMake build system used in this feedstock for Windows support, and switch to use the upstream build system. To avoid any possible ABI incompatibility, the change is done together with the bump to ipopt version 3.14.17.
As a byproduct, it is possible to know build the
ipopt
executable also on Windows, fixing #55 .Important
The vendored Windows cmake build system used to name the ipopt import library as
ipopt-3.lib
, while the upstream is naming itipopt.lib
. If you usepkg-config
to link toipopt
, you do not need to change anything, otherwise if you were hardcoding the name of theipopt-3.lib
import library, now you need to change it toipopt.lib
.To provide a temporary backward compatibility, for ipopt 3.14.17 we continue to ship both
ipopt.lib
andipopt-3.lib
, but theipopt-3.lib
is considered deprecated (even if we cannot mark it as such in any way). Theipopt-3.lib
installed import library will be removed in the next release of conda-forge package of ipopt, so please switch your downstream build scripts to either usepkg-config
(that would work without modifications for both ipopt <= 3.14.16 and ipopt >= 3.14.17) or directly linkipopt.lib
, thanks!Original bot message:
Hi! This is the friendly automated conda-forge-webservice.
I've started a version update as instructed in #124.
I'm currently searching for new versions and will update this PR shortly if I find one! Thank you for waiting!
Fixes #124