Hi Loris,
In easyconfigs, “osdependencies” is used to designate dependencies that the OS
has to provide. This is typically seen used something like this:
# OpenSSL is required
osdependencies = ['openssl', ('openssl-devel', 'libssl-dev',
'libopenssl-devel’)]
These are package names that need to be installed on the system, openssl and
one of the devel packages listed — as their name varies depending on the
flavour of your linux. This can be overridden with the command line parameter
--ignore-osdeps.
I am not aware of a way to specify a required binary though, but specifying a
package providing “zip” would probably be a good idea.
> On 26 Feb 2020, at 09:14, Loris Bennett <[email protected]> wrote:
>
> Hi,
>
> So the admin node on which I normally build software does have 'zip',
> but as I was building TensorFlow with GPU support, I was doing this on a
> GPU node, which didn't have 'zip' installed :-/
>
> I had a vague idea that external dependencies could be specified in an
> easyconfig, but I could only find some thing on external modules. Maybe
> I was thinking of '--filter-deps', but that's sort of the opposite of
> what one would need.
>
> Thanks for the pointer,
>
> Cheers,
>
> Loris
>
> Lars Viklund <[email protected]> writes:
>
>> For reference, EB documents the shell tools (including `unzip`) that may be
>> occasionally needed by easyconfigs:
>>
>> https://easybuild.readthedocs.io/en/latest/Installation.html#required-shell-tools
>>
>> Sounds like Bazel goes a bit beyond this and also assumes that the
>> environment
>> has the ability to zip things. Lovely :D
>>
>> // Lars
>>
>> On 2/25/20 5:06 PM, Terje Kvernes wrote:
>>> Hi Loris,
>>>
>>> From the output it would seem that zip is an implied system dependency in
>>> Bazel. Depending on the underlying distribution, the easiest solution is
>>> probably to install zip as a system package via yum/dnf/apt-get/etc.
>>>
>>> I took a quick look at the easyconfig tree and didn’t find a suitable zip to
>>> add as a dependency, so I’m guessing this has gone under the radar as
>>> “everyone” already had zip installed.
>>>
>>> I’m not sure what the long-term solution is here, as I’m not sure one wants
>>> to
>>> move zip from a system dependency to a toolchain one, but opening an issue
>>> on
>>> https://github.com/easybuilders/easybuild-easyconfigs/issues is probably a
>>> good idea. :-)
>>>
>>>> On 25 Feb 2020, at 16:53, Loris Bennett <[email protected]> wrote:
>>>>
>>>> Hi,
>>>>
>>>> Bazel-0.26.1-GCCcore-8.3.0.eb is failing with the following error:
>>>>
>>>> ^MESC[1AESC[KESC[31mESC[1mERROR:
>>>> ESC[0m/trinity/shared/easybuild/build/Bazel/0.26.1/GCCcore-8.3.0/src/BUILD:339:2:
>>>> Executing genrule //src:package-zip_nojdk failed (Exit 127): bash failed:
>>>> error executing command
>>>> (cd /tmp/eb-0CJXT7/bazel_M82PHrmR/out/execroot/io_bazel && \
>>>> exec env - \
>>>>
>>>> LD_LIBRARY_PATH=/trinity/shared/easybuild/software/Java/1.8.0_192/lib:/trinity/shared/easybuild/software/Python/3.7.4-GCCcore-8.3.0/lib:/trinity/shared/easybuild/software/libffi/3.2.1-GCCcore-8.3.0/lib64:/trinity/shared/easybuild/software/libffi/3.2.1-GCCcore-8.3.0/lib:/trinity/shared/easybuild/software/GMP/6.1.2-GCCcore-8.3.0/lib:/trinity/shared/easybuild/software/XZ/5.2.4-GCCcore-8.3.0/lib:/trinity/shared/easybuild/software/SQLite/3.29.0-GCCcore-8.3.0/lib:/trinity/shared/easybuild/software/Tcl/8.6.9-GCCcore-8.3.0/lib:/trinity/shared/easybuild/software/libreadline/8.0-GCCcore-8.3.0/lib:/trinity/shared/easybuild/software/ncurses/6.1-GCCcore-8.3.0/lib:/trinity/shared/easybuild/software/bzip2/1.0.8-GCCcore-8.3.0/lib:/trinity/shared/easybuild/software/binutils/2.32-GCCcore-8.3.0/lib:/trinity/shared/easybuild/software/zlib/1.2.11-GCCcore-8.3.0/lib:/trinity/shared/easybuild/software/GCCcore/8.3.0/lib/gcc/x86_64-pc-linux-gnu/8.3.0:/trinity/shared/easybuild/software/GCCcore/8.3.0/lib64:/trinity/shared/easybuild/software/GCCcore/8.3.0/lib
>>>> \
>>>>
>>>> PATH=/trinity/shared/easybuild/software/Java/1.8.0_192:/trinity/shared/easybuild/software/Java/1.8.0_192/bin:/trinity/shared/easybuild/software/Python/3.7.4-GCCcore-8.3.0/bin:/trinity/shared/easybuild/software/XZ/5.2.4-GCCcore-8.3.0/bin:/trinity/shared/easybuild/software/SQLite/3.29.0-GCCcore-8.3.0/bin:/trinity/shared/easybuild/software/Tcl/8.6.9-GCCcore-8.3.0/bin:/trinity/shared/easybuild/software/ncurses/6.1-GCCcore-8.3.0/bin:/trinity/shared/easybuild/software/bzip2/1.0.8-GCCcore-8.3.0/bin:/trinity/shared/easybuild/software/binutils/2.32-GCCcore-8.3.0/bin:/trinity/shared/easybuild/software/GCCcore/8.3.0/bin:/trinity/shared/easybuild/software/EasyBuild/4.1.1/bin:/trinity/shared/zedat/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/bin/syscfg:/trinity/home/build/.local/bin:/trinity/home/build/bin
>>>> \
>>>> /bin/bash -c 'source
>>>> external/bazel_tools/tools/genrule/genrule-setup.sh; src/package-bazel.sh
>>>> bazel-out/k8-opt/bin/src/package_nojdk.zip
>>>> bazel-out/k8-opt/bin/src/embedded_tools_nojdk.zip
>>>> bazel-out/k8-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
>>>> bazel-out/k8-opt/bin/src/install_base_key_nojdk
>>>> bazel-out/k8-opt/bin/src/main/native/libunix.so
>>>> bazel-out/k8-opt/bin/src/main/tools/build-runfiles
>>>> bazel-out/k8-opt/bin/src/main/tools/process-wrapper
>>>> src/main/tools/jdk.BUILD bazel-out/k8-opt/bin/src/main/tools/linux-sandbox
>>>> bazel-out/k8-opt/bin/tools/osx/xcode-locator
>>>> bazel-out/k8-opt/bin/src/main/tools/daemonize')
>>>> Execution platform: @bazel_tools//platforms:host_platform
>>>> ESC[32m[1,793 / 1,794]ESC[0m checking cached actions
>>>> ^MESC[1AESC[Ksrc/package-bazel.sh: line 42: zip: command not found
>>>>
>>>> Anyone know what sort of zip package is missing here?
>>>>
>>>> Cheers,
>>>>
>>>> Loris
>>>>
>>>> --
>>>> Dr. Loris Bennett (Mr.)
>>>> ZEDAT, Freie Universität Berlin Email [email protected]
>>>
>>
> --
> Dr. Loris Bennett (Mr.)
> ZEDAT, Freie Universität Berlin Email [email protected]
--
Terje Kvernes
Head sysadmin
Department of Mathematics
University of Oslo