Skip to content

Conversation

@Flamefire
Copy link
Contributor

When e.g. Tk is built on top of Tcl it will source this file and add include paths like -I$TCL_SRC_DIR/unix which (usually) don't exist anymore (removed after Tcl installation).
Hence those flags have no effect.

However if the path happens to be inaccessible (e.g. in another users $HOME) then the build fails with a permission issue.

Simply set this variable to the install dir which always exists.

When e.g. Tk is built on top of Tcl it will source this file and add
include paths like `-I$TCL_SRC_DIR/unix` which (usually) don't exist
anymore (removed after Tcl installation).
Hence those flags have no effect.

However if the path happens to be inaccessible (e.g. in another users
$HOME) then the build fails with a permission issue.

Simply set this variable to the install dir which always exists.
@Thyre Thyre added bug fix and removed change labels Oct 29, 2025
@Thyre
Copy link
Collaborator

Thyre commented Oct 29, 2025

@boegelbot please test @ jsc-zen3
EB_ARGS="--installpath /tmp/$USER/ecpr-24397"

@boegelbot
Copy link
Collaborator

@Thyre: 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=24397 EB_ARGS="--installpath /tmp/$USER/ecpr-24397" EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_24397 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

- notification for comment with ID 3461717794 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).

@Thyre
Copy link
Collaborator

Thyre commented Oct 29, 2025

Test report by @Thyre
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
ZAM054 - Linux Zorin OS 18, x86_64, 12th Gen Intel(R) Core(TM) i7-1260P (skylake), 1 x NVIDIA NVIDIA GeForce MX550, 580.95.05, Python 3.12.3
See https://gist.github.com/Thyre/4542487cff050e0ce8a62a2901ed208b for a full test report.

@Thyre
Copy link
Collaborator

Thyre commented Oct 29, 2025

We might need to "adapt" a few more paths, not sure if itcl and tdbc can cause similar issues:

jreuter@ZAM054 > /opt/EasyBuild/apps/software/Tcl/9.0.1-GCCcore-14.3.0 $ grep -rni "/opt/EasyBuild/apps/build/" include lib share bin
lib/tclConfig.sh:102:TCL_BUILD_LIB_SPEC='-L/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/unix -ltcl9.0'
lib/tclConfig.sh:137:TCL_SRC_DIR='/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1'
lib/tclConfig.sh:155:TCL_BUILD_STUB_LIB_SPEC='-L/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/unix -ltclstub'
lib/tclConfig.sh:162:TCL_BUILD_STUB_LIB_PATH='/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/unix/libtclstub.a'
lib/itcl4.3.2/itclConfig.sh:24:itcl_BUILD_LIB_SPEC='-L/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/unix/pkgs/itcl4.3.2 -litcl4.3.2'
lib/itcl4.3.2/itclConfig.sh:25:ITCL_BUILD_LIB_SPEC='-L/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/unix/pkgs/itcl4.3.2 -litcl4.3.2'
lib/itcl4.3.2/itclConfig.sh:38:itcl_BUILD_STUB_LIB_SPEC='-L/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/unix/pkgs/itcl4.3.2 -litclstub'
lib/itcl4.3.2/itclConfig.sh:39:ITCL_BUILD_STUB_LIB_SPEC='-L/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/unix/pkgs/itcl4.3.2 -litclstub'
lib/itcl4.3.2/itclConfig.sh:48:itcl_BUILD_STUB_LIB_PATH='/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/unix/pkgs/itcl4.3.2/libitclstub.a'
lib/itcl4.3.2/itclConfig.sh:49:ITCL_BUILD_STUB_LIB_PATH='/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/unix/pkgs/itcl4.3.2/libitclstub.a'
lib/itcl4.3.2/itclConfig.sh:61:itcl_SRC_DIR='/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/pkgs/itcl4.3.2'
lib/itcl4.3.2/itclConfig.sh:62:ITCL_SRC_DIR='/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/pkgs/itcl4.3.2'
grep: lib/libtcl9.0.so: binary file matches
lib/tdbc1.1.10/tdbcConfig.sh:22:tdbc_BUILD_LIB_SPEC="-L/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/unix/pkgs/tdbc1.1.10 -ltdbc1.1.10"
lib/tdbc1.1.10/tdbcConfig.sh:23:TDBC_BUILD_LIB_SPEC="-L/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/unix/pkgs/tdbc1.1.10 -ltdbc1.1.10"
lib/tdbc1.1.10/tdbcConfig.sh:36:tdbc_BUILD_STUB_LIB_SPEC="-L/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/unix/pkgs/tdbc1.1.10 -ltdbcstub"
lib/tdbc1.1.10/tdbcConfig.sh:37:TDBC_BUILD_STUB_LIB_SPEC="-L/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/unix/pkgs/tdbc1.1.10 -ltdbcstub"
lib/tdbc1.1.10/tdbcConfig.sh:45:tdbc_BUILD_STUB_LIB_PATH="/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/unix/pkgs/tdbc1.1.10/libtdbcstub.a"
lib/tdbc1.1.10/tdbcConfig.sh:46:TDBC_BUILD_STUB_LIB_PATH="/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/unix/pkgs/tdbc1.1.10/libtdbcstub.a"
lib/tdbc1.1.10/tdbcConfig.sh:57:tdbc_SRC_DIR="/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/pkgs/tdbc1.1.10"
lib/tdbc1.1.10/tdbcConfig.sh:58:TDBC_SRC_DIR="/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/pkgs/tdbc1.1.10"
lib/tdbc1.1.10/tdbcConfig.sh:67:tdbc_BUILD_INCLUDE_SPEC="-I/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/pkgs/tdbc1.1.10/generic"
lib/tdbc1.1.10/tdbcConfig.sh:68:TDBC_BUILD_INCLUDE_SPEC="-I/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/pkgs/tdbc1.1.10/generic"
lib/tdbc1.1.10/tdbcConfig.sh:75:tdbc_BUILD_LIBRARY_PATH="/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/pkgs/tdbc1.1.10/library"
lib/tdbc1.1.10/tdbcConfig.sh:76:TDBC_BUILD_LIBRARY_PATH="/opt/EasyBuild/apps/build/Tcl/9.0.1/GCCcore-14.3.0/tcl9.0.1/pkgs/tdbc1.1.10/library"

Could we do that via sed? We know both the build directory and install directory...

@Flamefire
Copy link
Contributor Author

Could we do that via sed? We know both the build directory and install directory...

Replacing paths with sed is always tricky. We don't know where the user installed the module and what chars could be in there...

I think we don't need to handle the *_BUILD_* variables as they are comments they they should not be used.
The other SRC_DIRs might be relevant.

@Flamefire
Copy link
Contributor Author

Test report by @Flamefire
SUCCESS
Build succeeded for 10 out of 10 (10 easyconfigs in total)
i7182 - Linux Rocky Linux 9.6, x86_64, AMD EPYC 7702 64-Core Processor (zen2), Python 3.9.21
See https://gist.github.com/Flamefire/deac869b76491cbb5d489bae3619aa08 for a full test report.

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 Nov 7, 2025

Test report by @Micket
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
vera-icelake-build - Linux Rocky Linux 9.6, x86_64, Intel(R) Xeon(R) Silver 4316 CPU @ 2.30GHz, Python 3.9.21
See https://gist.github.com/Micket/9c4ff3359764414bcfb025c581a90f18 for a full test report.

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.

4 participants