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

perl no longer installs un-versioned binaries #29409

Closed
vsoch opened this issue Mar 9, 2022 · 2 comments
Closed

perl no longer installs un-versioned binaries #29409

vsoch opened this issue Mar 9, 2022 · 2 comments
Labels
bug Something isn't working

Comments

@vsoch
Copy link
Member

vsoch commented Mar 9, 2022

For singularity HPC, we create recipes that can confidently say the path and name of a binary in advance. E.g., for our perl recipe we have:

aliases:
  perl: /opt/view/bin/perl
  perlbug: /opt/view/bin/perlbug
  perldoc: /opt/view/bin/perldoc
  perlivp: /opt/view/bin/perlivp
  perlthanks: /opt/view/bin/perlthanks

As of perl 5.34, this tree (and the subsequent view) turns out correctly - e.g., I have a perl / perlthanks and all the expected executables in bin.

$ ls opt/spack/linux-ubuntu20.04-skylake/gcc-9.3.0/perl-5.34.0-bvgnm2ejnajpvaruta22d5c24g6qi4zu/bin/
corelist  h2ph       perl        perlthanks  pod2text    ptardiff   xsubpp
cpan      h2xs       perl5.34.0  piconv      pod2usage   ptargrep   zipdetails
cpanm     instmodsh  perlbug     pl2pm       podchecker  shasum
enc2xs    json_pp    perldoc     pod2html    prove       splain
encguess  libnetcfg  perlivp     pod2man     ptar        streamzip

However with 5.35.0 I no longer have any un-versioned binaries. They all end in the version.

 ls opt/spack/linux-ubuntu20.04-skylake/gcc-9.3.0/perl-5.35.0-smm2auqgf4jwkvi7uzvrvjmqdxcwqtkc/bin/
corelist5.35.0   json_pp5.35.0     pl2pm5.35.0       ptardiff5.35.0
cpan5.35.0       libnetcfg5.35.0   pod2html5.35.0    ptargrep5.35.0
cpanm            perl5.35.0        pod2man5.35.0     shasum5.35.0
enc2xs5.35.0     perlbug5.35.0     pod2text5.35.0    splain5.35.0
encguess5.35.0   perldoc5.35.0     pod2usage5.35.0   streamzip5.35.0
h2ph5.35.0       perlivp5.35.0     podchecker5.35.0  xsubpp5.35.0
h2xs5.35.0       perlthanks5.35.0  prove5.35.0       zipdetails5.35.0
instmodsh5.35.0  piconv5.35.0      ptar5.35.0

I suspect this was implemented to make them install nicely alongside one another, but I consider it a bug that the install cannot output the plain binary. If this was done at the level of perl (e.g., outside of spack) I'd want to suggest that (for spack) we go ahead and create links so that the correct names are present. I think this should be the default (what is expected) and turned off with a variant if someone has issue. Thanks!

@vsoch vsoch changed the title perl no longer installs un-versioned binary perl no longer installs un-versioned binaries Mar 9, 2022
@vsoch vsoch added the bug Something isn't working label Mar 9, 2022
vsoch added a commit to vsoch/spack that referenced this issue Mar 9, 2022
it is expected behavior for a software install to generate binaries that
are naked, or not with a version. After perl 5.34.x it looks like this is not the case
for perl, and all binaries are generated with a versioned suffix. This is not ideal for
tools or people that use the install directory and expect to find, for example, just
perl. This fix will, for versions 5.35.0 and later, ensure that we do a final
pass through the install directory and given a binary that ends with the version, we
also generate a link to its version-less self (only if it does not already exist). For
some niche cache where this is not desired, a variant can be flipped to disable it.
I have made it the default because as a user I expect my binaries without a weird
version suffix. This will close spack#29409

Signed-off-by: vsoch <vsoch@users.noreply.github.com>
@vsoch
Copy link
Member Author

vsoch commented Mar 9, 2022

Please see #29413 for my suggested fix.

@alalazo
Copy link
Member

alalazo commented Apr 7, 2023

Fixed by #29456

@alalazo alalazo closed this as completed Apr 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants