Skip to content
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

"Missing perl5.34" errors in test suite in 8.4.0 on macOS 12 #245

Open
apjanke opened this issue Jan 14, 2024 · 3 comments
Open

"Missing perl5.34" errors in test suite in 8.4.0 on macOS 12 #245

apjanke opened this issue Jan 14, 2024 · 3 comments

Comments

@apjanke
Copy link
Contributor

apjanke commented Jan 14, 2024

In the 8.4.0_alpha1 prerelease build, which I built on macOS 14, when running this on my "montague" fresh macOS 12 Intel testbed VM, when running __run_test_suite__, I get a bunch of complaints about a missing /usr/bin/perl5.34:

sh: /Applications/Octave-8.4.0.app/Contents/Resources/usr/opt/texinfo/bin/makeinfo: /usr/bin/perl5.34: bad interpreter: No such file or directory
sh: /Applications/Octave-8.4.0.app/Contents/Resources/usr/opt/texinfo/bin/makeinfo: /usr/bin/perl5.34: bad interpreter: No such file or directory
sh: /Applications/Octave-8.4.0.app/Contents/Resources/usr/opt/texinfo/bin/makeinfo: /usr/bin/perl5.34: bad interpreter: No such file or directory
 pass  134/134
  libinterp/corefcn/chol.cc-tst ..................................sh: /Applications/Octave-8.4.0.app/Contents/Resources/usr/opt/texinfo/bin/makeinfo: /usr/bin/perl5.34: bad interpreter: No such file or directory
sh: /Applications/Octave-8.4.0.app/Contents/Resources/usr/opt/texinfo/bin/makeinfo: /usr/bin/perl5.34: bad interpreter: No such file or directory
 pass   42/42
  libinterp/corefcn/colamd.cc-tst ................................sh: /Applications/Octave-8.4.0.app/Contents/Resources/usr/opt/texinfo/bin/makeinfo: /usr/bin/perl5.34: bad interpreter: No such file or directory
sh: /Applications/Octave-8.4.0.app/Contents/Resources/usr/opt/texinfo/bin/makeinfo: /usr/bin/perl5.34: bad interpreter: No such file or directory
sh: /Applications/Octave-8.4.0.app/Contents/Resources/usr/opt/texinfo/bin/makeinfo: /usr/bin/perl5.34: bad interpreter: No such file or directory
sh: /Applications/Octave-8.4.0.app/Contents/Resources/usr/opt/texinfo/bin/makeinfo: /usr/bin/perl5.34: bad interpreter: No such file or directory
 pass    8/8
  libinterp/corefcn/colloc.cc-tst ................................sh: /Applications/Octa

Progress

As of 2024-04-04, I think it's that the brewed texinfo depends on the macos perl, and perl is provided by Xcode CLT, so yeah, you have to install the CLT here. Might be able to get around that by making a customized texinfo that requires Xcode CLT. See comments.

@apjanke
Copy link
Contributor Author

apjanke commented Jan 17, 2024

Yeah, lotta these:

image image

@apjanke
Copy link
Contributor Author

apjanke commented Jan 19, 2024

The errors are no longer there when I test 8.4.0_alpha3 on montague. And that perl is there now.

janke@sonny ~ % grep "bad interpreter" fntests.log
janke@sonny ~ % ls -l /usr/bin/perl5.34
-rwxr-xr-x  1 root  wheel  134608 Dec 15 09:43 /usr/bin/perl5.34
janke@sonny ~ %

Maybe that perl5.34 is supplied by Xcode and its CLT. I installed those recently so I could do the build on montague, too. Could test this by switching back to a snapshot from before the Xcode installation. ...except I'm running montague on a trial version of Parallels which doesn't support snapshots.

@apjanke apjanke changed the title Missing perl5.34 errors in test suite in 8.4.0 on macOS 12 "Missing perl5.34" errors in test suite in 8.4.0 on macOS 12 Jan 23, 2024
@apjanke
Copy link
Contributor Author

apjanke commented Apr 7, 2024

As of 2024-04-04, I'm thinking the problem is something like: on the octapp build box, /usr/bin/perl5.34 exists, and it is detected and built against by the texinfo tools like makeinfo at texinfo package installation time. In the texinfo brew formula (do brew edit texinfo), it says:

  uses_from_macos "ncurses"
  uses_from_macos "perl"

So the fix here might be "tell users to install Xcode CLT if they want to run the Octave test suite", which might be legit because it might need Xcode/CLT to test building of oct and mex files anyway. Or make a customized texinfo-octapp that uses a brewed perl. Might be an option bc there's nothing else depending on it, so I wouldn't have to make additional -octapp variants of other formulas as a result. Plus, when installed in a regular homebrew, could conflict with plain texinfo.

brew uses texinfo --installed
octave                                          octave-app/octave-app/octave-qt5@9.0
octave-app/octave-app/octave-octapp@8.3.0       octave-app/octave-app/octave-qt5@9.0.91
octave-app/octave-app/octave-octapp@8.4.0

Though I like to minimize our number of custom formulas anyway; easier to support stuff that's standard instead of forked. Hmm. How often is texinfo updated? See history here (new) and here (old). Plus several formula-only changes in 2022 and 2023.

  • 2023-10-18 - 7.1
  • 2023-07-17 - 7.0.3_1 - formula change to remove keg_only
  • 2023-04-01 - 7.0.3
  • 2023-01-22 - 7.0.2
  • 2022-12-02 - 7.0.1
  • 2022-11-07 - 7.0
  • 2022-07-03 - 6.8
  • 2019-10-13 - 6.7

I think I'm going to avoid the customized texinfo and stick with "just install Xcode CLT if you want to run tests or other texinfo stuff", unless some users actually request doing something different.

Leaving this ticket open until I can run a couple more tests to verify that installing Xcode/CLT is what reliably supplies perl.

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

No branches or pull requests

1 participant