Skip to content

fix(MakeMaker): stage EXE_FILES into blib/script/ for make test#537

Merged
fglock merged 2 commits intomasterfrom
fix/makemaker-blib-script
Apr 22, 2026
Merged

fix(MakeMaker): stage EXE_FILES into blib/script/ for make test#537
fglock merged 2 commits intomasterfrom
fix/makemaker-blib-script

Conversation

@fglock
Copy link
Copy Markdown
Owner

@fglock fglock commented Apr 22, 2026

Summary

Fixes test failures in jcpan -t Pod::Markdown where 6 tests in t/pod2markdown.t failed with:

Error: Unable to read file blib/script/pod2markdown

Root cause

Standard ExtUtils::MakeMaker stages executable scripts listed in EXE_FILES into blib/script/ during make, the same way .pm files are staged into blib/lib/. Test suites rely on this layout — Pod::Markdown's t/pod2markdown.t invokes blib/script/pod2markdown directly via $^X.

PerlOnJava's MakeMaker shim only copied EXE_FILES to the final install bin directory during make install, so blib/script/ was never populated and script-based tests failed.

Fix

Add a blib_scripts target (invoked from all::) that copies each EXE_FILES entry to blib/script/<basename>, mirroring the existing pure_all logic for modules.

Test plan

  • jcpan -t Pod::Markdown — all 18 test files / 356 tests pass (previously 6 failures)
  • make — all PerlOnJava unit tests pass, no regressions
  • Verified blib/script/pod2markdown is created after make in the module build dir

Generated with Devin

fglock and others added 2 commits April 22, 2026 12:03
Standard ExtUtils::MakeMaker stages executable scripts listed in
EXE_FILES into blib/script/ during `make`, mirroring how .pm files
are staged into blib/lib/. Test suites rely on this: for example,
Pod::Markdown's t/pod2markdown.t invokes blib/script/pod2markdown
directly.

PerlOnJava's MakeMaker shim only copied EXE_FILES to the final
install bin directory during `make install`, leaving blib/script/
empty and causing 6 test failures in `jcpan -t Pod::Markdown`:

    Error: Unable to read file blib/script/pod2markdown

Add a blib_scripts target (invoked from all::) that copies each
EXE_FILES entry to blib/script/<basename>. After the fix, Pod::Markdown
passes all 18 test files / 356 tests via `jcpan -t`.

Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@fglock fglock merged commit f1abab7 into master Apr 22, 2026
2 checks passed
@fglock fglock deleted the fix/makemaker-blib-script branch April 22, 2026 10:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant