Skip to content

add custom easyblock for Term::ReadLine::Gnu Perl module #3712

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

Merged

Conversation

Flamefire
Copy link
Contributor

@Flamefire Flamefire commented May 7, 2025

(created using eb --new-pr)

Without any of --prefix --libdir --incdir the "configure" script might pick up a system libreadline which might then fail the test with

Cannot do `initialize' in Term::ReadLine::Gnu

Neither passing additional -L parameters via LDFLAGS nor the already set LIBRARY_PATH avoided that because there is a custom search procedure adding additional -L flags to e.g. /usr/lib64 since it searches libpth set by Perl itself (determined during the core Perl module configure), see perl -V

@Flamefire Flamefire changed the title new easyblock for termreadlinegnu new easyblock for Term::ReadLine::Gnu May 7, 2025
@Flamefire
Copy link
Contributor Author

Test report by @Flamefire

Overview of tested easyconfigs (in order)

  • SUCCESS Perl-bundle-CPAN-5.36.1-GCCcore-12.3.0.eb

Build succeeded for 1 out of 1 (1 easyconfigs in total)
c68 - Linux AlmaLinux 9.4, x86_64, AMD EPYC 9334 32-Core Processor (zen4), 4 x NVIDIA NVIDIA H100, 560.35.03, Python 3.9.18
See https://gist.github.com/Flamefire/515880b8adf06feeee1aa16df4c40912 for a full test report.

@Flamefire
Copy link
Contributor Author

Test report by @Flamefire

Overview of tested easyconfigs (in order)

  • SUCCESS Perl-bundle-CPAN-5.38.2-GCCcore-13.3.0.eb

Build succeeded for 1 out of 1 (1 easyconfigs in total)
c68 - Linux AlmaLinux 9.4, x86_64, AMD EPYC 9334 32-Core Processor (zen4), 4 x NVIDIA NVIDIA H100, 560.35.03, Python 3.9.18
See https://gist.github.com/Flamefire/272a422bf8fffbf88960278763bde7d5 for a full test report.

@boegel boegel added the new label May 7, 2025
@boegel boegel added this to the release after 5.0.1 milestone May 7, 2025
@boegel boegel changed the title new easyblock for Term::ReadLine::Gnu new easyblock for Term::ReadLine::Gnu Perl module May 20, 2025
@boegel boegel changed the title new easyblock for Term::ReadLine::Gnu Perl module add custom easyblock for Term::ReadLine::Gnu Perl module May 20, 2025
@boegel
Copy link
Member

boegel commented May 20, 2025

@boegelbot please test @ jsc-zen3
EB_ARGS="--installpath /tmp/$USER/pr3712 Perl-5.36.0-GCCcore-12.2.0.eb Perl-bundle-CPAN-5.38.0-GCCcore-13.2.0.eb Perl-bundle-CPAN-5.40.0-GCCcore-14.2.0.eb"

@boegelbot
Copy link

@boegel: 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=3712 EB_ARGS="--installpath /tmp/$USER/pr3712 Perl-5.36.0-GCCcore-12.2.0.eb Perl-bundle-CPAN-5.38.0-GCCcore-13.2.0.eb Perl-bundle-CPAN-5.40.0-GCCcore-14.2.0.eb" EB_REPO=easybuild-easyblocks EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_3712 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

- notification for comment with ID 2895491781 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
Copy link

Test report by @boegelbot

Overview of tested easyconfigs (in order)

Build succeeded for 2 out of 3 (3 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.5, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/18fdaaaf0e9dadb297de1f3ab8f772b0 for a full test report.

@boegel
Copy link
Member

boegel commented May 21, 2025

Hmm, test failure has nothing to do with this custom easyblock I think, I'll look into it...

== 2025-05-20 19:20:05,007 build_log.py:226 ERROR EasyBuild encountered an error (at easybuild/easybuild-framework/easybuild/base/exceptions.py:126 in __init__): ERROR: No default extension class set for Perl (at easybuild/easybuild-framework/easybuild/framework/easyblock.py:3181 in extensions_step)

@Flamefire
Copy link
Contributor Author

Hmm, test failure has nothing to do with this custom easyblock I think, I'll look into it...

Can we get a backtrace of that error? Because it should be set by:
https://github.com/easybuilders/easybuild-easyblocks/blob/develop/easybuild/easyblocks/p/perl.py#L145-L146

@boegel
Copy link
Member

boegel commented May 21, 2025

The problem is introduced with the changes in easybuilders/easybuild-framework#4868, where the check for exts_defaultclass was moved up a bit earlier, before the call to prepare_for_extensions.

The custom easyblock for Perl sets exts_defaultclass via prepare_for_extensions, so that change was incorrect.

I'll open a PR to fix that regression...

@Flamefire
Copy link
Contributor Author

Flamefire commented May 21, 2025

FWIW: Why do we do that check there anyway? Couldn't we just fail if and only if we required that?

Imagine a bundle of extensions each having a custom easyblock and/or explicit easyblock. Why require exts_defaultclass for that?

Just remembered I actually had a PR for that already: easybuilders/easybuild-framework#4800

@Flamefire Flamefire closed this May 21, 2025
@Flamefire Flamefire reopened this May 21, 2025
@boegel
Copy link
Member

boegel commented May 21, 2025

FWIW: Why do we do that check there anyway? Couldn't we just fail if and only if we required that?

Imagine a bundle of extensions each having a custom easyblock and/or explicit easyblock. Why require exts_defaultclass for that?

Just remembered I actually had a PR for that already: easybuilders/easybuild-framework#4800

I've opened easybuilders/easybuild-framework#4888 to fix the regression, since the changes in easybuilders/easybuild-framework#4800 are a lot more involved and are beyond what I still what to consider for including in the upcoming EasyBuild v5.1.0 release at this point...

@boegel
Copy link
Member

boegel commented May 21, 2025

@boegelbot please test @ jsc-zen3
EB_ARGS="--installpath /tmp/$USER/pr3712 Perl-5.36.0-GCCcore-12.2.0.eb"

@boegelbot
Copy link

@boegel: 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=3712 EB_ARGS="--installpath /tmp/$USER/pr3712 Perl-5.36.0-GCCcore-12.2.0.eb" EB_REPO=easybuild-easyblocks EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_3712 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

- notification for comment with ID 2897143045 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
Copy link

Test report by @boegelbot

Overview of tested easyconfigs (in order)

  • SUCCESS Perl-5.36.0-GCCcore-12.2.0.eb

Build succeeded for 1 out of 1 (1 easyconfigs in total)
jsczen3c2.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.5, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/95862638c7f9a32683585ad0db836f59 for a full test report.

Copy link
Member

@boegel boegel left a comment

Choose a reason for hiding this comment

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

lgtm

@boegel boegel merged commit 8fd04d6 into easybuilders:develop May 21, 2025
33 checks passed
@Flamefire Flamefire deleted the 20250507120156_new_pr_termreadlinegnu branch May 22, 2025 07:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants