{tools}[dummy/,dummy/dummy] git-annex v6.20170519, git v2.12.3, asciidoc v8.6.9, ...#4705
{tools}[dummy/,dummy/dummy] git-annex v6.20170519, git v2.12.3, asciidoc v8.6.9, ...#4705ddkinnamon wants to merge 1 commit intoeasybuilders:developfrom kinnamon-lab:20170611225056_new_pr_git-annex620170519
Conversation
…8.6.9.eb, Stack-1.4.0.eb
|
Test report by @boegel |
|
@ddkinnamon As shown in the submitted test report, the installation of Also, your easyconfigs specify quite a bit of OS dependencies, which is not how we usually handle dependencies in easyconfigs that are a part of the central repository, we try to resolve as much dependencies as possible through EasyBuild instead. |
|
@boegel: I'll look into the git-annex failure. As for the OS dependencies, I should probably explain my use case. My team manages a software stack for genomic analysis and software development on RHEL HPC systems where we cannot sudo root (i.e., no package manager access). The HPC staff cannot respond to all of our software installation requests as they serve users from across the entire state, so we need to manage our "local" stack in a separate filesystem ourselves. In this context, I would rather use OS-level compilers and libraries for tools like git and git-annex so that I can load and use them whether I am working with any one of multiple compiler toolchains. Also, the efficiency of configuring a build is vastly increased by using OS dependencies. For example, I tried building Stack on the GCC toolchain. As I got to retooling easyconfig #8 for a standard OS library included with RHEL 6 and 7, I thought that this process seemed incredibly inefficient, particularly given the fact that I would have to repeat it for every compiler toolchain that I use. Then I happened to be working on the cURL dependency and noticed the use of OS dependencies for OpenSSL (https://github.com/hpcugent/easybuild-easyconfigs/blob/master/easybuild/easyconfigs/c/cURL/cURL-7.49.1-foss-2016b.eb), which seemed to solve my problem. As an alternative, I suppose I could use dummy/dummy easyconfigs for dependencies like zlib in lieu of OS dependencies, but that does entail an increase in overhead, especially since I have to make new easyconfigs for dependencies like libgmp. Doing so seems like reinventing the wheel for something that is already there on many recent OSes, and it is also wasteful of space on our filesystem. Whether these easyconfigs should be in the central repo is up to you, but the use case I described is a common one in my world, so they will probably be of use to others. Having easyconfigs for this model might also facilitate adoption of EasyBuild as a stack manager by other groups like mine, and anyone who is missing a required OS dependency can always modify them fairly easily. As an example, I know that I would have to use an EasyBuild dependency for a newer version of zlib if I were building R with our RHEL 6 compilers and libraries (but not RHEL 7). All that being said, if you could give me more specifics on how you think I should split dependencies between the OS and EasyBuild, I'd be happy to consider making those changes. |
|
Test report by @ddkinnamon |
|
@boegel: I am unable to reproduce the git-annex build error that you saw on our RHEL 7 system (see my gist above). Based on your gist, perhaps there was some issue with the build path in /tmp getting cleaned prematurely? |
|
@ddkinnamon, this PR is being closed for the following reason(s): no activity for > 1 year. |
|
@ddkinnamon This PR was closed as a part of a cleanup operation, since we had too many open PRs piled up. I want to apologize for not following up on this, it got snowed under, most likely due to summer holidays approaching at the time. The approach you took here (heavily relying on OS dependencies) does not match the policy we've maintained for the vast majority of the easyconfig files we have in the central repository. OpenSSL is one exception there, we do rely on the OS package in that case because of the security aspect (and we're actually considering to revisit that policy, due to problems like #5614). Our main motivation for "taking control" of the software stack rather than relying on OS-provided packages is to try and ensure reproducibility of installations. We've learned the hard way that minor differences in software versions that are available can result in a breaking installation, so relying on OS packages doesn't work out in practice when sharing a large set of easyconfig files with a diverse community. That being said, you can of course maintain a set of those easyconfig files locally, and leverage them for your use case, as you explained extensively. |
(created using
eb --new-pr)Easyconfigs for git-annex and dependencies