Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
conda: update linux environments
- Add gtk2 for more consistent behavior across linux distributions - Update openssl to 1.0.2q
- Loading branch information
Showing
2 changed files
with
58 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
6a8503a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Am I right in thinking a bunch of this is X-window libraries? This not a bit out of scope for installing crystallographic tools (i.e. the OS should be responsible for something)
6a8503a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not too far out of scope since we are already compiling libXrender in the "base" directory. The issue that prompted this is that the version of gtk2 specific to Ubuntu 16.04 broke some widgets in wxPython. So even though I originally wanted to move some dependencies to the system when building these environments, gtk2 had to be added back, which pulls in the X11 libraries. The reasoning is explained here, http://conda-forge.org/docs/recipe.html#avoid-dependencies-outside-of-conda-forge, but basically, by providing the full stack of dependencies, we're less likely to encounter ABI incompatibilities across different linux distributions. The minimum requirement for conda on linux is glibc 2.7.
6a8503a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ABI glibc compatibilities is mainly a theoretical problem, yes? I seem to remember the main problems with glibc before were that the dependencies were too old to be compatible with newer versions e.g. #85, but that caused problems because any new combination of packages needed to be exhaustively tested.
How big is the distribution going to be now?
6a8503a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, I wouldn't say glibc compatibility issues are theoretical. You're work on #85 shows that they are not. If you're asking if an end-user will experience an issue, the answer depends on what the user is doing. For Phenix, some users will build and link external packages to our binary distributions, so ABI compatibility is an issue.
As for size, the
conda_base
directory in a recent nightly build is about 800 MB and from the lastbase
directory from a nightly build is about 840 MB on linux, so they are about the same. Theconda_base
directories for macOS and Windows will be bigger by a few hundred megabytes because of more standard dependencies (e.g. openblas, clang libraries on macOS, MKL on Windows, and a bunch of commonconda
Python dependencies, likerequests
). For Phenix installers, the dependencies are still less than 20% of the total size of the installation.The nice thing about
conda
is that you can manually tweak the DIALS environment to remove anything you do not want, but you just have to make sure that everything still works. Or you can fork the package recipe and make the changes there. You can have a DIALS channel with those packages andconda
can use them.6a8503a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#85 was less an ABI compatibility problem and more just using very old software with very new versions of the source. Luckily whatever was preventing update seems to have been resolved given how often these dependency lists are updated. (Resolved for the future, because IIRC the current recommended way still doesn't work)
Just seeing these lists get longer and longer made me concerned about distribution size. It's grown a couple of hundred mb on mac, but I can't check linux currently because when I tried the conda bootstrap failed with a traceback.
6a8503a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you provide the traceback? And what linux distribution and version are you using?
Also, if you have conda installed, can you provide,
conda info
~/.conda/environments.txt
file, if available6a8503a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Posted into an issue #298