Skip to content

Commit 27dd317

Browse files
committed
Merge branch '5.0.x' into search_path_lib
2 parents c4a66b6 + 09609b7 commit 27dd317

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+1950
-933
lines changed

.github/workflows/eb_command.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
runs-on: ubuntu-20.04
1515
strategy:
1616
matrix:
17-
python: [3.6, 3.7, 3.8, 3.9, '3.10', '3.11', '3.12']
17+
python: [3.6, 3.7, 3.8, 3.9, '3.10', '3.11', '3.12', '3.13']
1818
fail-fast: false
1919
steps:
2020
- uses: actions/checkout@v3

.github/workflows/linting.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
runs-on: ubuntu-20.04
1414
strategy:
1515
matrix:
16-
python-version: [3.6, 3.7, 3.8, 3.9, '3.10', '3.11', '3.12']
16+
python-version: [3.6, 3.7, 3.8, 3.9, '3.10', '3.11', '3.12', '3.13']
1717
steps:
1818
- uses: actions/checkout@v3
1919

.github/workflows/unit_tests.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ jobs:
4545
modules_tool: ${{needs.setup.outputs.lmod8}}
4646
- python: '3.12'
4747
modules_tool: ${{needs.setup.outputs.lmod8}}
48+
- python: '3.13'
49+
modules_tool: ${{needs.setup.outputs.lmod8}}
4850
# There may be encoding errors in Python 3 which are hidden when an UTF-8 encoding is set
4951
# Hence run the tests (again) with LC_ALL=C and Python 3.6 (or any < 3.7)
5052
- python: 3.6
@@ -131,7 +133,7 @@ jobs:
131133
run: |
132134
# make sure there are no (top-level) "import setuptools" or "import pkg_resources" statements,
133135
# since EasyBuild should not have a runtime requirement on setuptools
134-
SETUPTOOLS_IMPORTS=$(egrep -RI '^(from|import)[ ]*pkg_resources|^(from|import)[ ]*setuptools' * || true)
136+
SETUPTOOLS_IMPORTS=$(egrep --exclude setup.py -RI '^(from|import)[ ]*pkg_resources|^(from|import)[ ]*setuptools' * || true)
135137
test "x$SETUPTOOLS_IMPORTS" = "x" || (echo "Found setuptools and/or pkg_resources imports in easybuild/:\n${SETUPTOOLS_IMPORTS}" && exit 1)
136138
137139
- name: install sources
@@ -152,7 +154,9 @@ jobs:
152154
cd $HOME
153155
# initialize environment for modules tool
154156
if [ -f $HOME/moduleshome ]; then export MODULESHOME=$(cat $HOME/moduleshome); fi
155-
source $(cat $HOME/mod_init); type module
157+
source $(cat $HOME/mod_init)
158+
type module
159+
module --version
156160
# make sure 'eb' is available via $PATH, and that $PYTHONPATH is set (some tests expect that);
157161
# also pick up changes to $PATH set by sourcing $MOD_INIT
158162
export PREFIX=/tmp/$USER/$GITHUB_SHA

RELEASE_NOTES

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,18 @@ For more detailed information, please see the git log.
44
These release notes can also be consulted at https://easybuild.readthedocs.io/en/latest/Release_notes.html.
55

66

7+
v4.9.4 (22 September 2024)
8+
--------------------------
9+
10+
update/bugfix release
11+
12+
- various enhancements, including:
13+
- set $LMOD_TERSE_DECORATIONS to 'no' to avoid additional info in output produced by 'ml --terse avail' (#4648)
14+
- various bug fixes, including:
15+
- implement workaround for permission error when copying read-only files that have extended attributes set and using Python 3.6 (#4642)
16+
- take into account alternate sysroot for /bin/bash used by run_cmd (#4646)
17+
18+
719
v4.9.3 (14 September 2024)
820
--------------------------
921

easybuild/_deprecated.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ def get_output_from_process(proc, read_size=None, asynchronous=False, print_depr
131131
@run_cmd_cache
132132
def run_cmd(cmd, log_ok=True, log_all=False, simple=False, inp=None, regexp=True, log_output=False, path=None,
133133
force_in_dry_run=False, verbose=True, shell=None, trace=True, stream_output=None, asynchronous=False,
134-
with_hooks=True):
134+
with_hooks=True, with_sysroot=True):
135135
"""
136136
Run specified command (in a subshell)
137137
:param cmd: command to run
@@ -149,6 +149,7 @@ def run_cmd(cmd, log_ok=True, log_all=False, simple=False, inp=None, regexp=True
149149
:param stream_output: enable streaming command output to stdout
150150
:param asynchronous: run command asynchronously (returns subprocess.Popen instance if set to True)
151151
:param with_hooks: trigger pre/post run_shell_cmd hooks (if defined)
152+
:param with_sysroot: prepend sysroot to exec_cmd (if defined)
152153
"""
153154

154155
_log.deprecated("run_cmd is deprecated, use run_shell_cmd from easybuild.tools.run instead", '6.0')
@@ -228,6 +229,16 @@ def run_cmd(cmd, log_ok=True, log_all=False, simple=False, inp=None, regexp=True
228229

229230
exec_cmd = "/bin/bash"
230231

232+
# if EasyBuild is configured to use an alternate sysroot,
233+
# we should also run shell commands using the bash shell provided in there,
234+
# since /bin/bash may not be compatible with the alternate sysroot
235+
if with_sysroot:
236+
sysroot = build_option('sysroot')
237+
if sysroot:
238+
sysroot_bin_bash = os.path.join(sysroot, 'bin', 'bash')
239+
if os.path.exists(sysroot_bin_bash):
240+
exec_cmd = sysroot_bin_bash
241+
231242
if not shell:
232243
if isinstance(cmd, list):
233244
exec_cmd = None
@@ -237,6 +248,8 @@ def run_cmd(cmd, log_ok=True, log_all=False, simple=False, inp=None, regexp=True
237248
else:
238249
raise EasyBuildError("Don't know how to prefix with /usr/bin/env for commands of type %s", type(cmd))
239250

251+
_log.info("Using %s as shell for running cmd: %s", exec_cmd, cmd)
252+
240253
if with_hooks:
241254
hooks = load_hooks(build_option('hooks'))
242255
hook_res = run_hook(RUN_SHELL_CMD, hooks, pre_step_hook=True, args=[cmd], kwargs={'work_dir': os.getcwd()})

0 commit comments

Comments
 (0)