-
-
Notifications
You must be signed in to change notification settings - Fork 21
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
libpng breaks compatibility in mac each time with a patch version #10
Comments
Also discussed here: conda-forge/matplotlib-feedstock#41 |
Is this just a bug in the libpng build scripts for Mac? If I understand this table correctly, there should be no need to change the Here's a link to Apple's documentation for setting the |
No library guarantees that it will work with an older version if you compile with a newer version. There is no such thing. The only thing they guarantee is that if you build it with an old version, it will work with newer versions too. Hence the pinnings should be like this: requirements:
build:
- libpng 1.6.23
run:
- libpng >=1.6.23,<1.7 Conda build 3 makes implementing this very easy using the variants: https://conda.io/docs/building/variants.html requirements:
build:
- libpng {{ libpng }}
run:
- {{ pin_compatible('libpng', max_pin='x.x') }} There are different and better ways too. read here: https://conda.io/docs/building/variants.html |
Thanks for the pinning syntax; that's useful.
IIUC, some libraries can, at least within certain constraints. Right? All that matters is the ABI compatibility, which is determined by whether or not they added any new symbols between releases. For example, you can build a python extension module against Libpng doesn't use semantic versioning per se, but it turns out that most libpng patch updates are nonetheless ABI-compatible with previous versions, at least according to the ABI Laboratory. Unless I'm missing something (which could be the case), there is no need for the libpng's |
Those few are going to break people's installations.
Maybe not with every patch release but for some yes (when they add symbols). But anyway, the pinning syntax that I gave you works, right? I have been doing this in our Bob channel for a long time now: https://gitlab.idiap.ch/bob/bob.conda/blob/2011b52a9cb197f1ee02d4b57e94cca77eb717d9/recipes/bob.io.image/meta.yaml#L28 The thing is that you do not know what libpng developers are going to do in future so you better pin packages properly instead of having to pull them later. You can also read on this pull request here: conda-forge/conda-forge.github.io#245 and conda-forge/conda-forge.github.io#170 |
Closing this as stale. We are moving to conda-build 3 which will improve this situation. |
This is happening again: https://travis-ci.org/conda-forge/bob.ip.facedetect-feedstock/jobs/163096192
Matplotlib is compiled against
libpng 1.6.24
but does not work withlibpng 1.6.23
as seen in the log above.@ocefpaf we have discussed this before but again you advised against pinning it on a patch version. If it doesn't work what's the point of having more flexible pinnings?
Same thing last time: #3
The text was updated successfully, but these errors were encountered: