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

Add TCLLIBPATH to Tk

Open Micket opened this issue 1 year ago • 13 comments

(created using eb --new-pr)

Fixes #849

Only requires --moduleonly rebuilds.

Micket avatar Mar 23 '24 01:03 Micket

@boegelbot please test @ generoso EB_ARGS="--module-only"

Micket avatar Mar 23 '24 01:03 Micket

@Micket: Request for testing this PR well received on login1

PR test command 'EB_PR=20197 EB_ARGS="--module-only" EB_CONTAINER= EB_REPO=easybuild-easyconfigs /opt/software/slurm/bin/sbatch --job-name test_PR_20197 --ntasks=4 ~/boegelbot/eb_from_pr_upload_generoso.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 13191

Test results coming soon (I hope)...

- notification for comment with ID 2016250205 processed

Message to humans: this is just bookkeeping information for me, it is of no use to you (unless you think I have a bug, which I don't).

boegelbot avatar Mar 23 '24 01:03 boegelbot

Test report by @boegelbot SUCCESS Build succeeded for 7 out of 7 (7 easyconfigs in total) cns1 - Linux Rocky Linux 8.9, x86_64, Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz (haswell), Python 3.6.8 See https://gist.github.com/boegelbot/38b13c6f7c082c5d715f3afaeb51ea91 for a full test report.

boegelbot avatar Mar 23 '24 01:03 boegelbot

@boegelbot please test @ jsc-zen3 EB_ARGS="--module-only"

Micket avatar Mar 23 '24 14:03 Micket

@Micket: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=20197 EB_ARGS="--module-only" EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_20197 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 3851

Test results coming soon (I hope)...

- notification for comment with ID 2016511776 processed

Message to humans: this is just bookkeeping information for me, it is of no use to you (unless you think I have a bug, which I don't).

boegelbot avatar Mar 23 '24 14:03 boegelbot

Test report by @boegelbot FAILED Build succeeded for 6 out of 11 (7 easyconfigs in total) jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.3, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.18 See https://gist.github.com/boegelbot/82abce824f0d944732fe46e9b925f93a for a full test report.

boegelbot avatar Mar 23 '24 14:03 boegelbot

@boegelbot please test @ jsc-zen3

Micket avatar Mar 23 '24 15:03 Micket

@Micket: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=20197 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_20197 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 3852

Test results coming soon (I hope)...

- notification for comment with ID 2016525153 processed

Message to humans: this is just bookkeeping information for me, it is of no use to you (unless you think I have a bug, which I don't).

boegelbot avatar Mar 23 '24 15:03 boegelbot

Test report by @boegelbot FAILED Build succeeded for 6 out of 11 (7 easyconfigs in total) jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.3, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.18 See https://gist.github.com/boegelbot/857e9b39d70517a611287f017531d881 for a full test report.

boegelbot avatar Mar 23 '24 15:03 boegelbot

Alright GCCcore-10.2.0 was to old for jsc-zen3, can ignore those failures as they are not related to this fix.

Micket avatar Mar 23 '24 15:03 Micket

I do not think that modextrapaths is right for this.

$env(TCLLIBPATH) is a Tcl list, not some platform-specific colon-separated or semi-colon separated format, of paths to prepend to $auto_path.

$ echo "puts $::auto_path" | tclsh
/usr/share/tcltk/tcl8.6 /usr/share/tcltk /usr/lib /usr/local/lib/tcltk /usr/local/share/tcltk /usr/lib/tcltk/x86_64-linux-gnu /usr/lib/tcltk /usr/lib/tcltk/tcl8.6

$ echo "puts $::auto_path" | TCLLIBPATH="/tmp/foo" tclsh
/tmp/foo /usr/share/tcltk/tcl8.6 /usr/share/tcltk /usr/lib /usr/local/lib/tcltk /usr/local/share/tcltk /usr/lib/tcltk/x86_64-linux-gnu /usr/lib/tcltk /usr/lib/tcltk/tcl8.6

$ echo "puts $::auto_path" | TCLLIBPATH="/tmp/foo:/tmp/bar" tclsh
/tmp/foo:/tmp/bar /usr/share/tcltk/tcl8.6 /usr/share/tcltk /usr/lib /usr/local/lib/tcltk /usr/local/share/tcltk /usr/lib/tcltk/x86_64-linux-gnu /usr/lib/tcltk /usr/lib/tcltk/tcl8.6

$ echo "puts $::auto_path" | TCLLIBPATH="/tmp/foo /tmp/bar" tclsh
/tmp/foo /tmp/bar /usr/share/tcltk/tcl8.6 /usr/share/tcltk /usr/lib /usr/local/lib/tcltk /usr/local/share/tcltk /usr/lib/tcltk/x86_64-linux-gnu /usr/lib/tcltk /usr/lib/tcltk/tcl8.6

Though we are using this in other places: https://github.com/search?q=repo%3Aeasybuilders%2Feasybuild-easyconfigs%20TCLLIBPATH&type=code

Further testing:

$ mkdir foo
$ echo "package provide mylib [lindex {Revision: 1.0 } 1]" > foo/pkgIndex.tcl

$ echo "package require mylib" | tclsh
can't find package mylib

$ echo "package require mylib" | TCLLIBPATH="foo" tclsh

$ echo "package require mylib" | TCLLIBPATH="foo:bar" tclsh
can't find package mylib

$ echo "package require mylib" | TCLLIBPATH="foo bar" tclsh

branfosj avatar Mar 24 '24 09:03 branfosj

Crap. Its not like we have any good options here either, since it relies on lmods prepend_path...

Micket avatar Mar 24 '24 16:03 Micket

Ok i guess a framework or easybuild fix that uses the delim parameter for prepend_path?

Micket avatar Mar 24 '24 16:03 Micket

No longer relevant

Micket avatar Nov 13 '24 09:11 Micket