Required system libraries for packages #676
Comments
That is a good question! We need to make that clearer somehow... Right now there is no clear way to declare them for all CIs. We add them separately in the |
I see! It would be nice to have platform pages where recommended packages could be listed for |
It is indeed but necessary for build reproducibility.
We can certainly improve the docs, but ideally no system library is needed to use the packages (only to build them). I am trying to eliminate that problem when it crops up. (See #667 for example.) |
Ahhh, okay. Thanks for the clarification. So for
This will pass because we are installing
From what you said, we would want to solve this upstream in the recipe - trying to build with conda's |
Yes, if possible, if is does not work...
.. we will go with what you know to work 😉 The goal is to use as much as we can from the default channel. That way we avoid putting an extra burden on the channel maintainer. Ideally, if we need something that is"broken" in the default channel we should push a fix to the default channel rather than maintaining our own build. There is a significant increase in channels out there, providing different recipes for the same package. I think that this is harmful to the scientific community and we should strive to avoid that kind of "recipe forking" as much as we can by pushing changes to community channels and/or the default channel. |
@bekozi can you test if installing |
Installing |
😞
Finger crossed! |
I've done some experimenting with Linux build set-ups. OSX and Windows may have their own set of challenges.
The draft changes/additions to build recipes can be viewed here: master...NESII:esmf-libgfortran. There are two paths to addressing this issue from these tests. To be clear, the issue is users must have
Option 1 is definitely easier but not as inclusive. Option 2 seems more durable in the long-run. It may be painful to implement. There may be cascading issues in other packages by introducing What do you think? |
Great work @bekozi! It is sad that the default channel "build tools" are not ideal yet. I am 👍 for option (1) |
Me too! I'd recommend text for Linux like below. I'd send a PR, but I don't think that's possible for wikis... Happy Holidays, BTW! 🎄 Prerequisite System LibrariesMost IOOS conda packages have no prerequisite system libraries. Exceptions are listed in the table below.
Install GFortranLinuxGFortran may be installed using your default Linux distribution's package manager:
MacOSXLorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus ac erat sem. Integer volutpat nibh ipsum. Nam posuere tempor sem eu venenatis. Aenean vitae semper odio, id posuere diam. Quisque in nunc interdum turpis accumsan pellentesque. Nullam ac diam nec nulla vulputate semper. WindowsLorem ipsum dolor sit amet, consectetur adipiscing elit. Sed consectetur elit tellus, sed laoreet justo vulputate rhoncus. Fusce laoreet non massa at aliquet. Curabitur efficitur lacus vitae ex iaculis, nec luctus eros lobortis. Fusce bibendum lorem orci, vitae rutrum leo commodo consectetur. |
Sounds great! Thanks Ben. I will leave that to our wiki master @rsignell-usgs 😜 Happy Holidays! |
@rsignell-usgs: Have you had a chance to look over these suggested wiki additions? #676 (comment) Thanks! |
@bekozi I added a few extra dependencies to the new packages on conda-forge and this problem should be fixed. If not let's open a new issue there. |
What is the best practice for indicating required system libraries for a conda package?
For instance, when installing
ESMF
on Ubuntu,build-essential
andgfortran
are required (i.e.apt-get install build-essential gfortran
). Also,libexpat1
is required forudunits2
. I am thinkingexpat
should maybe be a requirement forudunits2
?Thanks!
The text was updated successfully, but these errors were encountered: