easybuild-framework icon indicating copy to clipboard operation
easybuild-framework copied to clipboard

add get_linked_libs_raw function, and use it from both check_linked_shared_libs and sanity_check_rpath

Open boegel opened this issue 3 years ago • 6 comments

fixes #4047

boegel avatar Aug 03 '22 13:08 boegel

has this this been tested with nodejs on a RPATH environment?

Micket avatar Aug 09 '22 15:08 Micket

failing CI

ERROR: Could not find a version that satisfies the requirement pycodestyle>=2.9.1 (from autopep8->-r requirements.txt (line 11)) (from versions: 1.8.0.dev0, 2.0.0a1, 2.0.0, 2.1.0, 2.2.0, 2.3.0, 2.3.1, 2.4.0, 2.5.0, 2.6.0a1, 2.6.0, 2.7.0, 2.8.0)

did something just change? :/

Micket avatar Aug 09 '22 15:08 Micket

failing CI

ERROR: Could not find a version that satisfies the requirement pycodestyle>=2.9.1 (from autopep8->-r requirements.txt (line 11)) (from versions: 1.8.0.dev0, 2.0.0a1, 2.0.0, 2.1.0, 2.2.0, 2.3.0, 2.3.1, 2.4.0, 2.5.0, 2.6.0a1, 2.6.0, 2.7.0, 2.8.0)

did something just change? :/

Probably related to autopep8 release which happened ~2h ago, see https://pypi.org/project/autopep8/1.7.0/

boegel avatar Aug 09 '22 15:08 boegel

failing CI

ERROR: Could not find a version that satisfies the requirement pycodestyle>=2.9.1 (from autopep8->-r requirements.txt (line 11)) (from versions: 1.8.0.dev0, 2.0.0a1, 2.0.0, 2.1.0, 2.2.0, 2.3.0, 2.3.1, 2.4.0, 2.5.0, 2.6.0a1, 2.6.0, 2.7.0, 2.8.0)

did something just change? :/

A recent previous test had autopep8 1.6.0. The failing tests here has 1.7.0. These are all for Python 2.7, so I expect we need to fix autopep8 to an earlier version on Python 2.7.

branfosj avatar Aug 09 '22 15:08 branfosj

failing CI

ERROR: Could not find a version that satisfies the requirement pycodestyle>=2.9.1 (from autopep8->-r requirements.txt (line 11)) (from versions: 1.8.0.dev0, 2.0.0a1, 2.0.0, 2.1.0, 2.2.0, 2.3.0, 2.3.1, 2.4.0, 2.5.0, 2.6.0a1, 2.6.0, 2.7.0, 2.8.0)

did something just change? :/

A recent previous test had autopep8 1.6.0. The failing tests here has 1.7.0. These are all for Python 2.7, so I expect we need to fix autopep8 to an earlier version on Python 2.7.

Done in #4055

boegel avatar Aug 09 '22 15:08 boegel

has this this been tested with nodejs on a RPATH environment?

@Micket I tested eb nodejs-16.15.1-GCCcore-11.3.0.eb --rpath --force on top of this, no problems found, and:

== 2022-08-12 15:47:33,987 easyblock.py:2993 DEBUG Sanity checking RPATH for files in /tmp/software/nodejs/16.15.1-GCCcore-11.3.0/bin
== 2022-08-12 15:47:33,987 easyblock.py:2996 DEBUG Sanity checking RPATH for /tmp/software/nodejs/16.15.1-GCCcore-11.3.0/bin/corepack
== 2022-08-12 15:47:33,988 run.py:214 DEBUG run_cmd: running cmd file /tmp/software/nodejs/16.15.1-GCCcore-11.3.0/bin/corepack (in /tmp/software/nodejs/16.15.1-GCCcore-11.3.0)
== 2022-08-12 15:47:33,988 run.py:233 INFO running cmd: file /tmp/software/nodejs/16.15.1-GCCcore-11.3.0/bin/corepack
== 2022-08-12 15:47:33,992 run.py:625 DEBUG cmd "file /tmp/software/nodejs/16.15.1-GCCcore-11.3.0/bin/corepack" exited with exit code 0 and output:
/tmp/software/nodejs/16.15.1-GCCcore-11.3.0/bin/corepack: symbolic link to ../lib/node_modules/corepack/dist/corepack.js

== 2022-08-12 15:47:33,992 run.py:659 DEBUG Using default regular expression: (?<![(,-]|\w)(?:error|segmentation fault|failed)(?![(,-]|\.?\w)
== 2022-08-12 15:47:33,992 easyblock.py:3003 DEBUG Failed to determine dynamically linked libraries for /tmp/software/nodejs/16.15.1-GCCcore-11.3.0/bin/corepack, so skipping it in RPATH sanity check

== 2022-08-12 15:47:33,993 easyblock.py:2996 DEBUG Sanity checking RPATH for /tmp/software/nodejs/16.15.1-GCCcore-11.3.0/bin/node
== 2022-08-12 15:47:33,993 run.py:214 DEBUG run_cmd: running cmd file /tmp/software/nodejs/16.15.1-GCCcore-11.3.0/bin/node (in /tmp/software/nodejs/16.15.1-GCCcore-11.3.0)
== 2022-08-12 15:47:33,993 run.py:233 INFO running cmd: file /tmp/software/nodejs/16.15.1-GCCcore-11.3.0/bin/node
== 2022-08-12 15:47:33,999 run.py:625 DEBUG cmd "file /tmp/software/nodejs/16.15.1-GCCcore-11.3.0/bin/node" exited with exit code 0 and output:
/tmp/software/nodejs/16.15.1-GCCcore-11.3.0/bin/node: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, with debug_info, not stripped, too many notes (256)

== 2022-08-12 15:47:33,999 run.py:659 DEBUG Using default regular expression: (?<![(,-]|\w)(?:error|segmentation fault|failed)(?![(,-]|\.?\w)
== 2022-08-12 15:47:33,999 run.py:214 DEBUG run_cmd: running cmd ldd /tmp/software/nodejs/16.15.1-GCCcore-11.3.0/bin/node (in /tmp/software/nodejs/16.15.1-GCCcore-11.3.0)
== 2022-08-12 15:47:33,999 run.py:233 INFO running cmd: ldd /tmp/software/nodejs/16.15.1-GCCcore-11.3.0/bin/node
== 2022-08-12 15:47:34,018 run.py:625 DEBUG cmd "ldd /tmp/software/nodejs/16.15.1-GCCcore-11.3.0/bin/node" exited with exit code 0 and output:
...
== 2022-08-12 15:47:34,018 easyblock.py:3011 DEBUG Output of 'ldd /tmp/software/nodejs/16.15.1-GCCcore-11.3.0/bin/node' checked, looks OK
== 2022-08-12 15:47:34,018 run.py:214 DEBUG run_cmd: running cmd readelf -d /tmp/software/nodejs/16.15.1-GCCcore-11.3.0/bin/node (in /tmp/software/nodejs/16.15.1-GCCcore-11.3.0)
== 2022-08-12 15:47:34,018 run.py:233 INFO running cmd: readelf -d /tmp/software/nodejs/16.15.1-GCCcore-11.3.0/bin/node
== 2022-08-12 15:47:34,039 run.py:625 DEBUG cmd "readelf -d /tmp/software/nodejs/16.15.1-GCCcore-11.3.0/bin/node" exited with exit code 0 and output:

Dynamic section at offset 0x2109ac0 contains 34 entries:
  Tag        Type                         Name/Value
...
 0x0000000000000001 (NEEDED)             Shared library: [libdl.so.2]
 0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libpthread.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [ld-linux-x86-64.so.2]
...
 0x000000000000000f (RPATH)              Library rpath: [/tmp/software/nodejs/16.15.1-GCCcore-11.3.0/lib:/tmp/software/nodejs/16.15.1-GCCcore-11.3.0/lib64:$ORIGIN:$ORIGIN/../lib:$ORIGIN/../lib64:...]
....

== 2022-08-12 15:47:34,039 run.py:659 DEBUG Using default regular expression: (?<![(,-]|\w)(?:error|segmentation fault|failed)(?![(,-]|\.?\w)
== 2022-08-12 15:47:34,040 easyblock.py:3024 DEBUG Output of 'readelf -d /tmp/software/nodejs/16.15.1-GCCcore-11.3.0/bin/node' checked, looks OK

boegel avatar Aug 12 '22 14:08 boegel