Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 5 commits into from
Sep 9, 2022

Conversation

boegel
Copy link
Member

@boegel boegel commented Aug 3, 2022

fixes #4047

@boegel boegel requested a review from Micket August 9, 2022 14:52
Copy link
Contributor

@Micket Micket left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@Micket
Copy link
Contributor

Micket commented Aug 9, 2022

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

@Micket
Copy link
Contributor

Micket commented Aug 9, 2022

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? :/

@boegel
Copy link
Member Author

boegel commented Aug 9, 2022

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/

@branfosj
Copy link
Member

branfosj commented Aug 9, 2022

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.

@boegel
Copy link
Member Author

boegel commented Aug 9, 2022

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
Copy link
Member Author

boegel commented Aug 12, 2022

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

@Micket Micket merged commit e6f80db into easybuilders:develop Sep 9, 2022
@boegel boegel deleted the get_linked_libs_raw branch September 9, 2022 09:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Handling of failing ldd also required in sanity_check_rpath
3 participants